Every version counts
A translation is never overwritten. Every change keeps its author, its date and its reason: you compare, you roll back, you know why a text changed.
Translation repository for applications
BabelPen keeps every version of every text, in every language, with its author and its reason. AI proposes, a judge reviews, and you validate by hand what matters. And for each language, you choose the model that translates.
order_ready_notice
To review · English
Already the translation repository of Foound and Sitodit.
A language file does not know who changed what, or why. BabelPen is built to remember, and to let a person decide.
A translation is never overwritten. Every change keeps its author, its date and its reason: you compare, you roll back, you know why a text changed.
AI translates, and the status tells you where things stand: translated, to review, validated, outdated. Human validation is a separate step, and it teaches BabelPen how reliable each engine is, language by language.
Where the text appears, what it means, the screenshot, the project brief and the glossary: everything goes to the engine with the string. An “order” never again turns into a “command”.
Claude for Japanese, a local model for German, DeepSeek for Thai: you choose, and you change your mind without losing anything. Proposals from every engine stay visible.
From the key created by the developer to the text published in the application, in four steps.
Through the API, by scanning your code or by importing files. The coding AI creates the key and its context at the same time, and BabelPen checks that a reused key really keeps the same meaning.
The project brief (tone, register, things to avoid), the meaning of the key, the screen where it appears, the glossary and the plural forms of the target language: the engine gets all of it, not just the sentence.
The engine chosen for the language translates. A judge reviews each batch and gives reasons for its rejections; an arbiter settles disagreements. The mechanical checks (variables, punctuation, register, script) are not negotiable.
Review by status, validation by hand, publication per target: one JSON file per language for each application, or the API with ETag to reload only what has changed.
From Claude Code
BabelPen has an MCP server (Model Context Protocol). One command and an API token are all it takes to install it in Claude Code, Codex, Gemini CLI or any other MCP client. Your assistant then creates keys, adds languages to the project, gives every key its context and gets it translated, without leaving the code.
Create a token on the “API tokens” page of your BabelPen account. You choose its scope: all your projects, or just one. Then, in your application’s repository:
claude mcp add --transport http babelpen https://app.babelpen.videomark.dev/mcp --header "Authorization: Bearer <your token>"
Codex, Gemini CLI and any MCP client: same address, same token. Permissions are those of your account in the team; the token can be revoked in one click.
check_key create_keyadd_languageset_key_context add_key_placeadd_translation translate_keytranslate_key
BabelPen translates with the engine chosen for each language, the judge reviews, the mechanical checks run. The assistant does not wait: the translation is queued.
add_translation
Your assistant sends the translation made by its own model (Claude, Gemini, GPT…). It is attributed to that engine and tracked like the others: history, status, reliability per language.
Either way, a translation validated by a person is never overwritten without a reason.
list_projectsThe projects your token can see.get_projectLanguages, translation brief, targets.add_languageAdd a target language to the project, and start translating into it if you wish.check_keyBefore creating: the keys with the same text, and the engine’s opinion.create_keyA key with its text, its meaning and its places.set_key_contextRefine the context of an existing key.add_key_placeDeclare that a key is used in a new place.get_keyReference, translations, statuses, history.translate_keyBabelPen translates with the engine chosen for each language.get_proposalsThe engines’ proposals, right away.add_translationYour translation, made with your own model.retire_keyRetire a key the code no longer reads.project_progressProgress per language, who translated what.The same rules as in the interface: no two keys for the same text without saying so, a context written by a person is never silently overwritten, a key the code still reads cannot be retired.
Each language has its own engine, and you can switch whenever you like: for one language, without losing a single version.
| Languages | Engine | Why |
|---|---|---|
| Japanese, Korean, Arabic | Claude Sonnet 5.5 · your API key | Quality first, for languages where another engine falters. |
| Thai | DeepSeek v4 · cloud model | An engine picked for this language only. |
| German, Spanish, Italian, Dutch… | Model hosted by BabelPen | A solid first pass; the judge sorts it out. |
| All | Azure Translator · as a second opinion | When two engines disagree, that is a signal: the key goes to “to review”. |
Self-service sign-up: a first project, a first API token, and your coding assistant can create your first keys right away.