A JSON Translation CLI Built With i18n In Mind
Use the JTranslate CLI to pull your web projects language files, and keep your translations up to date, all from your development environment.
Push & pull
Upload source files and download translations with simple commands.
CI/CD ready
Ready to use in automation workflows.
Secure project keys
Project-scoped keys keep access controlled and safe for teams.
Commands You're Already Familiar With
No need to learn anything new here, these are commands you likely already know from git - but this time used to manage your translations. See the commands more in depth
jtranslate init
Triggers the setup wizard and links your local directory to your remote web project. You only need to run this once per project.
jtranslate init <cli_key>jtranslate status
Compares your local source and target languages with your web project. Shows which targets are due an update.
jtranslate statusjtranslate push
Uploads your source JSON and initiates the update wizard.
jtranslate pushjtranslate pull
Pulls the target languages from your JTranslate web project.
jtranslate pullWhere the CLI fits into real workflows
Whether you use the CLI as a localization companion whilst you develop, or only run it once as part of your CI pipeline - the goal remains the same: keep target languages up to date and in sync with the source as effortlessly as possible.
A localization companion
Keep your target languages up to date as you work on your next feature.
Pipeline automation
Sync locale files as part of your build & deploy pipelines, so releases always ship with the latest translations.
Built With Security In Mind
The CLI is designed to be used securely, with project-scoped access and keychain support so you can integrate with peace of mind.
Project-scoped keys
CLI access is tied to a specific project, your key includes both your project identifer as well as your user authentication token.
Keychain by default
On developer machines, keys can be stored in the OS keychain instead of any plaintext config or .env files.
Secrets for CI
Build servers can authenticate via secrets, keeping your key in your CI provider's vault.
A GitHub Actions Example
Automate your translation on push to main. Here's a ready-to-use example workflow:
https://docs.jtranslate.dev/cli/ci-cd
name: Translate all locales
on:
push:
branches: [ main ]
jobs:
jtranslate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Sync translations
env:
JTRANSLATE_CLI_KEY: $JTRANSLATE_CLI_KEY
run: |
npx jtranslate-cli push \
--locales ./locales \
--source ./locales/en.json \
--all \
--approve-cost
- name: Commit changes
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add locales .jtranslate.config.json
git commit -m "chore(i18n): update translations" || exit 0
git pushCLI FAQ
Start with 375 free translation keys
Try it free now, then upgrade any time for projects, change detection, CLI sync, and more.