unused-i18n
v0.1.29
Published
Simplifies managing and cleaning up unused translation keys in localization files
Downloads
1,680
Maintainers
Readme
Unused i18n
Simplifies managing and cleaning up unused translation keys in localization files
Features
- Analyzes source files to identify used and unused translation keys.
- Supports multiple scoped translation functions.
- Can display or remove unused translation keys.
- Configurable through a JSON, CJS, or JS config file.
Installation
You can install unused-i18n
via npm:
npm install -g unused-i18n
or
npm install -D unused-i18n
Configuration
Create a unused-i18n.config.json or unused-i18n.config.js file in the root of your project. Here's an example configuration:
module.exports = {
paths: [
{
srcPath: ['src/pages/products'],
localPath: 'src/pages/products/locales',
},
],
localesExtensions: 'ts',
localesNames: 'en',
scopedNames: ['scopedT', 'scopedTOne'],
ignorePaths: ['src/pages/products/ignoreThisFolder'],
excludeKey: ['someKey'],
}
| Option | Type | Default | Required | Description |
| ------------------- | ---------------- | ------- | -------- | ---------------------------------------------------------------------------- |
| paths
| Array of Objects | []
| Yes | An array of objects defining the source paths and local paths to be checked. |
| paths.srcPath
| Array of Strings | []
| Yes | Source paths to search for translations. |
| paths.localPath
| Strings | ""
| Yes | Path to the translation files. |
| localesExtensions
| String | js
| No | Extension of the locale files. |
| localesNames
| String | en
| No | Name of the locale files without the extension. |
| scopedNames
| Array of Strings | []
| No | Names of the scoped translation functions used in your project. |
| ignorePaths
| Array of Strings | []
| No | Paths to be ignored during the search. |
| excludeKey
| Array of Strings | []
| No | Specific translation keys to be excluded from the removal process. |
Usage
Using with Config File
To use unused-i18n with your config file, simply run:
npx unused-i18n display
Using with Command Line Options
You can also specify the source and local paths directly in the command line:
Display Unused Translations
npx unused-i18n display --srcPath="src/folders/bla" --localPath="src/folders/bla/locales"
Remove Unused Translations
npx unused-i18n remove --srcPath="src/folders/bla" --localPath="src/folders/bla/locales"
API
processTranslations(paths, action)
Processes translations based on the specified paths and action.
- paths: Array of objects containing srcPath and localPath.
- action: Action to perform, either 'display' or 'remove'.
Development
Building the Project
To build the project, run:
npm run build
Running Tests
To run the tests, use:
npm run test
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Please open an issue or submit a pull request if you have any improvements or suggestions.
Acknowledgements
- Vite - Next Generation Frontend Tooling.
- TypeScript - Typed JavaScript used in this project.
- Vitest - Testing framework used in this project.
- Commander - Node.js command-line interfaces.