Game localization
Godot & Unity · CSV · 46 languages · Free

Translate your game's localization CSV without breaking a single {0}

Upload one CSV — keys, en, de, ja… — and get back the same CSV with every target-language column filled in, ready for Godot's Localization tab or a Unity string table import. {0}/{1} format placeholders never move.

Translate your locale CSV → $ pip install kaeris
{0}/{1} format placeholders preserved One CSV in, one CSV out Godot Localization-tab ready Unity string-table ready No account needed
Localize your game in 3 steps
1

Upload your locale CSV

Export the sheet you already use for Godot's Translations resource or Unity's string table, or run kaeris translate translations/strings.csv --langs de,ja,pt-BR.

2

Pick target locales

46 languages, added as new columns next to your source column — nothing else in the sheet moves.

3

Ship

Import the CSV back into Godot's Localization tab, or drag it onto a Unity String Table Collection.

One CSV, every locale as its own column

Before → after

translations/strings.csv
keys,en
WELCOME,"Welcome back, {0}!"
ITEMS_LEFT,"{0} items left in stock"
SAVE,Save changes
translations.csv
keys,en,de,ja
WELCOME,"Welcome back, {0}!","Willkommen zurück, {0}!","おかえりなさい、{0}さん!"
ITEMS_LEFT,"{0} items left in stock","Noch {0} Artikel auf Lager","在庫残り{0}点"
SAVE,Save changes,Änderungen speichern,変更を保存

KAERIS keeps your keys column and source en column untouched and appends one new column per target locale — the exact shape Godot's CSV import and Unity's table CSV export/import both expect. {0}-style string.Format/tr() placeholders are protected the same way as every other format KAERIS supports.

Built for game localization CSVs

{0}/{1} placeholder-safe

Numbered format placeholders used by String.Format (Unity/C#) and tr()/String.format (Godot/GDScript) are never dropped or reordered.

Single-file, multi-locale

One CSV in, one CSV out — keys, en, de, ja, … — no per-language files to juggle across a big narrative script.

Engine-agnostic

The same key + locale-columns shape works for Godot's Translation resource, Unity's Localization package tables, or a hand-rolled I2 Localization sheet.

One CLI command

kaeris translate translations/strings.csv --langs de,ja,pt-BR — run it every time a writer adds new lines.

Why KAERIS
Placeholder-safe{0}/{1} is never dropped or mistranslated.
Format-native — real CSV out, one column per locale, not a pile of per-language files.
Verify-meaning QA — every line is back-translated to catch meaning drift before you ship.
No account needed — drag & drop free up to 10,000 characters, or use the CLI/API.

Ship your game in every market

46 languages, {0}-safe, one CSV in and out. Free to start, no account required.

$ pip install kaeris
$ kaeris translate translations/strings.csv --langs de,ja,pt-BR
Translate your locale CSV now →