mxmvshnvsk / i18n-unused

The static analyze tool for finding, marking and removing unused and missing i18n translations in your JavaScript project
MIT License
127 stars 21 forks source link

Feat/add context matcher and export types #39

Closed jacobmolby closed 11 months ago

jacobmolby commented 11 months ago

Hi, this PR adds a new option translationContextMatcher.

It's purpose is to not split every key up by the contextSeperator, but only remove context suffixes.

In my code base it made the result of the CLI unusable since the keys are snaked case.

Example:

{
   "press_to_deselect": "..."
}

The translationContextMatcher defaults to a regex that should capture the context used by i18n-next in the various versions of their JSON Format. I wasn't sure if anything else existed out there, so I made it configurable.

Besides that I've moved some of the documentation from the README into the RunOptions interface and exported it, allowing users to have autocomplete when creating their config.

I also moved this part [...matchKeysSet].toString() out of the for loop, since it seemed unnecessary to compute the string every iteration.

Let me know if you have any comments.

mxmvshnvsk commented 11 months ago

Hi, thanks for your PR, it's good feature. Already in release 0.15.0.