Edit translation JSON in a table
Add JSON objects for each language, compare translations for the same key in a table, and edit them manually. Create a translation CSV and load the edited CSV. Copy all languages and keys from the table or as CSV, and save your edits as JSON for 1 language or ZIP for multiple languages. New keys in the CSV are applied after you confirm their addition. Display filters do not change the output scope, and numbers, arrays, and other values are preserved. No automatic translation is performed.
What you can do
Compare the same key across languages
Lines up the strings from each JSON by the same key. You can filter for missing values or edited rows.
Exchange translations using CSV
Create a translation CSV and load the edited CSV. Values are matched using keys and the relevant language columns.
Create JSON while preserving its structure
Applies string edits to the original JSON. Download JSON for one language, or a ZIP containing the JSON files for multiple languages.
How to use
Add JSON for each language
Choose JSON files or add them from a folder. Check the language names and the language used as the comparison reference.
Edit translations for the same key
Use search or status filters, and enter text in the relevant language. Check placeholder mismatches and missing values.
Exchange using CSV if needed
Use Exchange using CSV to create a translation CSV. Loading an edited CSV applies the values for the languages and keys it contains.
Create and save JSON for each language
Create JSON by language applies edits to all keys. If the CSV has introduced new keys, confirm whether to include the additions.
Useful when
Fill gaps across multiple languages
Compare the same key across languages and enter translations for languages where they are missing.
Exchange translations in a table
Exchange translations using CSV and apply them to the original JSON without editing the JSON structure directly.
How keys, values and CSV are handled
Keys identify locations within JSON
Keys in the table are JSON Pointers. / separates levels, while / in a key itself is represented as ~1, and ~ as ~0. Keys containing dots and nested keys are kept distinct.
Distinguish missing values from empty strings
A value is missing when a string key does not exist in that language's JSON. An existing empty string is not counted as missing. Numbers, booleans and arrays are retained and cannot be edited in the table.
Reference language and placeholders
Compares the names in {name} and {{name}} with the reference language. You can check mismatches, but formats such as ICU plurals and select are left marked as unsupported. This feature does not automatically generate or correct translations.
Display filters and output scope
Search, status filters and changing pages only change the display. JSON and CSV are created using edits to all loaded languages and all keys.
New keys in CSV
If the CSV contains keys that are not in any loaded JSON, you are asked to confirm their addition before creating JSON. This is distinguished from edits that fill a missing value for a key that exists in another language.
Frequently asked questions
Does it translate automatically?
No automatic translation is performed. This tool lets you compare values across languages and edit them manually.
What happens to numbers, arrays and other values?
Only strings in objects are extracted into the table. Numbers, booleans, arrays and null are retained, and strings inside arrays are not editable either.
Which columns do I edit in CSV?
The key column contains JSON Pointers, and the columns named after languages contain translations. Use column names that match the languages you have loaded. The comment column is skipped and is also blank when exported again.
How are blank CSV cells handled?
If the key already exists in that language, its value is changed to an empty string. A blank cell for a nonexistent key does not add the key, and edited values for languages not in the CSV are retained.
Can I create the files with placeholder warnings still present?
Yes. Warnings help you review translations; they do not guarantee that translations are correct. Check mismatches and unsupported formats before using the result.
Are only the filtered rows saved?
No. Edits to all keys are exported regardless of the search, filters or displayed page.
What if edits conflict with the original JSON structure?
Edits that replace numbers or arrays with strings, or create a new level beneath a string, cannot be applied. Check the keys changed or added in the input or CSV.
Input and results
- Input
- JSON objects for each language. CSV is used to exchange translations after the JSON files are loaded.
- Editing
- Strings in objects are matched to keys. The original input files are not overwritten.
- JSON output
- For one language: language-name.json. For multiple languages: JSON files for each language are packaged in translations.zip.
- CSV output
- translations.csv. Creates a UTF-8 CSV with a BOM and key, language-name and comment columns.