Supported engine · Gettext (.po / .mo)
Gettext is how most non-Japanese indie games get localized: Python and pygame games, Solarus, SDL and GTK games, and anything run through Poedit, Weblate or Crowdin. The strings live in a locale folder as .po sources and compiled .mo catalogs. RuneTranslate detects them at project creation, translates every string, and writes back a working .mo — which is the file the running game actually reads.
Gettext catalogs are mostly UI: menu items, button labels, tooltips and status lines that repeat across screens. Add your product nouns, item names and key verbs to the glossary once and every occurrence renders identically — which matters more here than in dialogue, because a menu that says “Save” in one place and “Store” in another reads as a bug. Glossary 101 →
Point RuneTranslate at the game directory — the one containing a locale/, lang/ or i18n/ folder. Detection looks for catalogs by their actual bytes, not their extension, so a stray .mo that is really a 3D scene file is ignored. A folder of loose .po files works too.
The New Project dialog reports how many catalogs were read, how many are compiled .mo versus source .po, which locales the game already ships, and the total string count — before you commit to creating the project.
Choose a target language and a provider: free Google or DeepL, or your own DeepL, OpenAI, Claude or DeepSeek key. Format placeholders — %s, %d, %(player)s, {count} — are masked before translation and restored after, so a provider cannot drop or reword them.
Strings are grouped by catalog file. Each entry keeps its gettext context (msgctxt), which is the disambiguation the developer wrote for exactly that string — so you can see why the same word appears twice and translate each correctly.
Export writes a full copy of the game with a proper locale/<your language>/LC_MESSAGES/ catalog AND an updated version of the catalog the game was already loading, so the translation appears however the game chooses its language. Both .po and compiled .mo are written.