translation-key-purge
v1.0.13
Published
A tool to check and manage translation keys in JSON files
Downloads
117
Maintainers
Readme
Translation Key Purge
A tool to automatically detect and remove unused translation keys from i18n files across multiple projects, helping maintain clean and efficient localization in React.js and Next.js.
Features
- Detect unused translation keys in your project
- Remove unused translation keys from JSON files
- Find untranslated text in your source files
- Support for:
- Array strings
- Object values
- Template literals (backtick strings)
- JSX text content
- Translation function calls
- Supports React.js and Next.js projects
- Interactive CLI interface
Installation
You can install the package using npm:
npm install translation-key-purgeOr using yarn:
yarn add translation-key-purgeConfiguration
Create a sumit.config.json file in your project root:
{
"srcDir": "src",
"jsonPaths": ["src/**/*.json"],
"searchPaths": ["src/**/*.{js,jsx,ts,tsx}"],
"fileExtensions": [".js", ".jsx", ".ts", ".tsx"],
"recursive": true,
"translationFunctions": ["t", "i18n", "translate"]
}Configuration Options
srcDir: Base directory for scanning (default: "src")jsonPaths: Glob patterns for JSON files to checksearchPaths: Glob patterns for source files to scanfileExtensions: File extensions to processrecursive: Whether to scan subdirectoriestranslationFunctions: Translation function names to detect
Usage
- Add the script to your
package.json:
{
"scripts": {
"check-translations": "translation-key-purge"
}
}- Run the tool:
npm run check-translations- Choose from the available options:
- Check and clean unused JSON keys
- Check for untranslated text in files
- Check and add missing translations to JSON
- Exit
Features in Detail
1. Clean Unused Keys
- Scans JSON files for unused translation keys
- Interactive prompts to delete unused keys
- Safe deletion with confirmation
2. Find Untranslated Text
- Detects hardcoded text in:
- JSX content
- Array strings
- Object values
- Template literals
- Shows file locations for each instance
3. Add Missing Translations
- Interactive workflow to add translations
- Supports nested JSON structures
- Multiple JSON file support
Examples
Detecting Untranslated Text
The tool will detect text in various formats:
const Component = () => {
const array = ["Text 1", "Text 2"]; // ✓ Detected
const obj = { key: "Text 3" }; // ✓ Detected
const text = `Text 4`; // ✓ Detected
return (
<div>
Hardcoded text {/* ✓ Detected */}
{t("translated.key")} {/* ✓ Checked against JSON */}
</div>
);
};License
This project is licensed under the MIT License. See the LICENSE file for details.
Author
Sumit Mayani
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
