Godot has two ways to handle multiple languages right now:
- Putting all translations into one CSV file
- Gettext (.po files)
The CSV file way of doing things is fine if you work alone, but once you have multiple people working on translations you will get lot's of merge conflicts. Gettext is more powerful and splits translations into seperate files, but i don't like the format.
However, you can add translations in code by using the TranslationServer. My localization files are simple .txt
files. This makes translating strings really easy. The file format is very straight forward: One translation per line; then a key followed by the translation (sperated by at least one whitespace). The first key must be LANGUAGE_NAME
followed by the language's name (in that same language, not in english). Here is an example for English
:
en.txt
:
LANGUAGE_NAME English
GREETING Hello World!
SAVE Save
# This is a comment
SAVE_AS Save as.. # This is also a comment
TOOL_BRUSH Brush Tool
If you want to add more translations all you need to do is:
- Create a new translation file in
Assets/i18n/
using an external text editor - That's it. The
.txt
file will be loaded automatically.