
Keys intact. Nesting preserved. Interpolation variables untouched. Just translated content where your strings used to be.
You know the drill. Export your JSON locale file, open it in a spreadsheet or translation tool, carefully avoid breaking nested keys, hope nobody touches the variables, re-import, fix the broken structure, repeat for every language.
Nested keys get flattened or mangled by generic translation tools
Interpolation variables get translated or corrupted by generic tools
ICU plural rules break silently when tools don't understand MessageFormat syntax
Array indices shift, key ordering changes, formatting disappears
{
"welcome": "Welcome, {name}!",
"items": {
"count": "{count, plural, one {# item} other {# items}}",
"empty": "Your cart is empty"
},
"nav": {
"home": "Home",
"settings": "Settings"
}
}{
"welcome": "Willkommen, {name}!",
"items": {
"count": "{count, plural, one {# Artikel} other {# Artikel}}",
"empty": "Ihr Warenkorb ist leer"
},
"nav": {
"home": "Startseite",
"settings": "Einstellungen"
}
}Nested keys, dot notation, and array indices stay exactly where they are
Variables like name, count, and price placeholders are recognized and left untouched across all major i18n frameworks
Plural categories are translated correctly while the ICU MessageFormat structure stays intact
Indentation, key ordering, and JSON formatting match your source file

No manual copy-paste. No string extraction. Just translated files.
Still stuck on a TMS contract? Let's talk about migrating.