Importing translations

    In regular desktop or mobile applications, internationalized text is usually located in resource files (or .po files for GNU stuff). Games, however, can use several orders of magnitude more text than applications, so they must support efficient methods for dealing with loads of multilingual text.

    There are two approaches to generate multilingual language games and applications. Both are based on a key:value system. The first is to use one of the languages as the key (usually English), the second is to use a specific identifier. The first approach is probably easier for development if a game is released first in English, later in other languages, but a complete nightmare if working with many languages at the same time.

    Note

    If you need a more powerful file format, Godot also supports loading translations written in the gettext format. See for details.

    The “lang” tags must represent a language, which must be one of the valid locales supported by the engine. The “KEY” tags must be unique and represent a string universally (they are usually in uppercase, to differentiate from other strings). Here’s an example:

    idenesja
    GREETHello, friend!Hola, Amigo!こんにちは
    ASKHow are you?Cómo está?元気ですか
    BYEGood ByeAdiósさようなら

    Godot will treat CSV files as translations by default. It will import them and generate one or more compressed translation resource files next to it.