A command-line tool to translate JSON-based locale files using Google Translate.
- 🔄 Translates JSON locale files while preserving structure
- 🌐 Supports multiple languages
- 🎯 Handles nested JSON objects
- 💪 Preserves original keys
- 🎨 Colorful console output for better visibility
- Keep old originale translations if alredy exist
# Using npm
npm install -g json-locale-translator
# Using locally
npm install json-locale-translator
# Using yarn
yarn add -g json-locale-translator
# Using locally yarn
yarn add json-locale-translator
Show help
json-locale-translator --help
Translate a file
json-locale-translator -s example/en.json -f en -t es
Interactive mode
json-locale-translator -i
- Then add scripts to your project's package.json:
"scripts": {
"translate": "json-locale-translator",
"translate:es": "json-locale-translator -s example/en.json -f en -t es",
"translate:fr": "json-locale-translator -s example/en.json -f en -t fr",
"translate:interactive": "json-locale-translator -i"
}
npm run translate
- use with npx
npx json-locale-translator -s example/en.json -f en -t es
- Create a Source File
mkdir locales && echo {} > locales\en.json
- Interactive Translation (Recommended)
json-locale-translator -s example/en.json -f en -t es
Input (en.json
):
{
"welcome": "Welcome to our application",
"navigation": {
"home": "Home",
"about": "About",
"contact": "Contact"
}
}
Output (es.json
):
{
"welcome": "Bienvenido a nuestra aplicación",
"navigation": {
"home": "Inicio",
"about": "Acerca de",
"contact": "Contacto"
}
}
This program translate only the new keys. If you want replacing all file content, add the --force-replace param to command line.
The tool supports all languages available in Google Translate. Some common language codes:
en
- Englishes
- Spanishfr
- Frenchde
- Germanit
- Italianpt
- Portugueseru
- Russianzh
- Chineseja
- Japaneseko
- Korean
# Clone the repository
git clone https://github.com/MhamedEl-shahawy/json-locale-translator.git
# Install dependencies
cd json-locale-translator
npm install
# Link for local development
npm link
json-locale-translator/
├── src/
│ └── index.js # Main CLI tool
├── example/
│ ├── en.json # Source example
│ └── es.json # Translated example
├── scripts/
│ └── batch-translate.js # Batch translation script
├── package.json
└── README.md
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- google-translate-api-x for translation services
- commander for CLI argument parsing
- chalk for colored console output
If you find any bugs or have feature requests, please create an issue in the GitHub repository.
⭐️ If you find this project useful, please consider giving it a star on GitHub!