Unterstützte Engine · Gettext (.po / .mo)
Gettext ist der Weg, über den die meisten nicht-japanischen Indie-Spiele lokalisiert werden: Python- und pygame-Spiele, Solarus, SDL- und GTK-Spiele und alles, was durch Poedit, Weblate oder Crowdin läuft. Die Texte liegen in einem locale-Ordner als .po-Quellen und kompilierte .mo-Kataloge. RuneTranslate erkennt sie beim Anlegen des Projekts, übersetzt jeden String und schreibt eine funktionierende .mo zurück — genau die Datei, die das laufende Spiel liest.
Gettext-Kataloge bestehen überwiegend aus Oberfläche: Menüpunkte, Schaltflächen, Tooltips und Statuszeilen, die sich über viele Bildschirme wiederholen. Trage deine Substantive, Gegenstandsnamen und zentralen Verben einmal ins Glossar ein, dann erscheint jede Fundstelle identisch — hier noch wichtiger als im Dialog, denn ein Menü, das an einer Stelle „Speichern“ und an anderer „Sichern“ sagt, wirkt wie ein Fehler. Glossar-Grundlagen →
Richte RuneTranslate auf das Spielverzeichnis — jenes mit einem locale/-, lang/- oder i18n/-Ordner. Die Erkennung sucht Kataloge anhand ihrer tatsächlichen Bytes, nicht der Endung, sodass eine .mo, die in Wahrheit eine 3D-Szene ist, ignoriert wird. Ein Ordner mit losen .po-Dateien funktioniert ebenfalls.
Der Neues-Projekt-Dialog zeigt, wie viele Kataloge gelesen wurden, wie viele kompilierte .mo gegenüber .po-Quellen vorliegen, welche Sprachen das Spiel bereits mitbringt und wie viele Strings es insgesamt sind — bevor du das Projekt anlegst.
Wähle eine Zielsprache und einen Anbieter: kostenloses Google oder DeepL, oder deinen eigenen Schlüssel für DeepL, OpenAI, Claude oder DeepSeek. Format-Platzhalter — %s, %d, %(player)s, {count} — werden vor der Übersetzung maskiert und danach wiederhergestellt, damit kein Anbieter sie löscht oder umformuliert.
Die Strings sind nach Katalogdatei gruppiert. Jeder Eintrag behält seinen gettext-Kontext (msgctxt) — die Unterscheidung, die der Entwickler genau für diesen String geschrieben hat. So siehst du, warum dasselbe Wort zweimal auftaucht, und kannst beide korrekt übersetzen.
Der Export schreibt eine vollständige Kopie des Spiels mit einem korrekten Katalog unter locale/<deine Sprache>/LC_MESSAGES/ UND eine aktualisierte Fassung des Katalogs, den das Spiel bereits geladen hat — so erscheint die Übersetzung unabhängig davon, wie das Spiel seine Sprache wählt. Es werden .po und kompilierte .mo geschrieben.