
attranslate
CLIOffline translation sync for coding agents: hands only new strings in JSON, YAML, PO, CSV and other locale files to the agent for translation and never overwrites human-edited translations, saving tokens. Needs Node.js; calls no translation API itself.
attranslate: Translation-sync for Agents
attranslate is a CLI-tool for syncing translation files (JSON/YAML/XML) designed to assist Coding Agents in translating efficiently with minimal token-usage.
Existing translations remain unchanged; only new strings are synchronized.
As of v3, attranslate is a complete offline-tool; it does not call into any translation-APIs anymore, instead it acts as an efficiency-helper for agents that do the main work.
Preserve Manual Translations
attranslate recognizes that agentic translations are not always perfect.
Therefore, whenever you are unhappy with the produced text, attranslate allows you to simply overwrite text in your target-files.
attranslate will never overwrite any manual corrections in subsequent runs.
How It Works: Agentic Invocation
To help agents in a token-efficient way, attranslate uses a trick of making itself "double-invoked" by agents. In the first invocation, attranslate will print a list of missing sources and instructions for the agent. Example:
$ attranslate --srcFile=en.json --srcLng=English --format=json --targetFile=es.json --targetLng=Spanish --service=agent
Invoke 'agent' from 'English' to 'Spanish' with 2 inputs...
MISSING TRANSLATIONS:
- key: hello
source: Hello
- key: bye
source: Goodbye
INSTRUCTIONS FOR AGENTS:
Translate the missing sources listed above, matching the order.
Replace <translation1>, <translation2>, ... with your actual translated strings and pipe them into attranslate as follows:
echo -e "<translation1>\n<translation2>\n..." | attranslate --srcFile=en.json --srcLng=English --format=json --targetFile=es.json --targetLng=Spanish --service=agent
The agent then naturally follows those instructions to finish the job in a second invocation of attranslate:
$ echo -e "Hola\nAdiós" | attranslate --srcFile=en.json --srcLng=English --format=json --targetFile=es.json --targetLng=Spanish --service=agent
Invoke 'agent' from 'English' to 'Spanish' with 2 inputs...
Add 2 new translations
Write target '/path/to/es.json'
Note: the first (no-pipe) run exits with a non-zero code by design, which can be used in CI/CD to detect missing translations.
Installation
Install globally:
npm install --global attranslate
Or in a Node.js project:
npm install --save-dev attranslate
Prompt Examples
It is recommended to add instructions for invoking attranslate to your agentic instructions (e.g. an agent-skill). For example:
Invoke `attranslate` after adding a new translation to the English en.json:
attranslate --srcFile=translations/en.json --targetFile=translations/es.json --targetLng=Spanish --srcLng=English --format=json --service=agent
attranslate --srcFile=translations/en.json --targetFile=translations/de.json --targetLng=German --srcLng=English --format=json --service=agent
Usage Options
Run attranslate --help to see a list of available options:
Usage: attranslate [options]
Options:
--srcFile <sourceFile> The source file to be translated
--srcLng <sourceLanguage> The source language
--targetFile <targetFile> The target file for the translations
--targetLng <targetLanguage> The target language
--format <format> One of "flat-json", "nested-json", "json", "yaml", "po", "xml", "ios-strings", "arb", "csv"
--service <translationService> "agent"
-v, --version output the version number
-h, --help display help for command
Похожие ресурсы

Lingo.dev CLI
CLILingo.dev's official CLI: lingo push sends JSON, YAML, Markdown, PO, XLIFF, Android/Xcode strings and other files from your repo to its LLM localization engine, and lingo pull brings translations back; CI-ready. Needs a Lingo.dev account; usage-based pricing with a free sandbox.
lingodotdev/lingo.dev5.4k
Languine
CLIAI localization: deploy the server to your own Vercel account (Postgres and AI Gateway included; enable deployment protection afterwards), then run npx languine@selfhosted translate to translate locale files with LLMs. A GitHub Action can open PRs. Needs a Vercel account and Node.js.
languine-ai/languine2k
Crowdin CLI
CLICrowdin's official CLI: push source files and pull translations back in place, track progress, manage glossaries and TM, and run machine or AI pre-translation, with JSON output for agents. Needs a Crowdin account (free trial; free for open source) and a token; crowdin init sets up config.
crowdin/crowdin-cli321
Lokalise CLI v2
CLILokalise's official CLI (lokalise2) covering the Lokalise API v2: upload and download language files and manage keys, translations, screenshots, translation tasks and contributors. Needs a Lokalise account (paid, 14-day free trial) and an API token passed via --token.
lokalise/lokalise-cli-2-go124
SimpleLocalize CLI
CLISimpleLocalize's official CLI: upload and download translation files, trigger machine and AI auto-translation, publish translations to the CDN, and extract translation keys from source code for CI. Needs a SimpleLocalize account and project API key; paid service with a 14-day free trial.
simplelocalize/simplelocalize-cli80
locize-cli
CLILocize's official CLI: sync local translation files with the Locize platform, add, remove and look up keys, download published translations, manage versions and branches, and export JSON, XLIFF, PO, CSV or Excel for translators. Needs a Locize account, project ID and API key; free plan available.
locize/locize-cli71