Importation de traductions

Jeux et internationalisation

Le monde regorge de marchés et de cultures différents et, pour maximiser les profits™, les jeux sont aujourd’hui disponibles en plusieurs langues. Pour résoudre ce problème, le texte internationalisé doit être pris en charge dans tout moteur de jeu moderne.

Dans les applications de bureau ou mobiles habituelles, les traductions de texte se trouvent généralement dans des fichiers de ressources (ou des fichiers .po pour les applications GNU). Les jeux, cependant, peuvent utiliser plusieurs ordres de grandeur de plus de texte que les applications, ils doivent donc supporter des méthodes efficaces pour traiter de grandes quantités de texte multilingue.

Il existe deux approches pour créer des jeux et des applications multilingues. Les deux reposent sur un principe clé : un système de valeur. La première consiste à utiliser l’une des langues comme clé (généralement l’anglais), la seconde consiste à utiliser un identifiant spécifique. La première approche est probablement plus facile pour le développement si un jeu est publié en premier en anglais puis plus tard dans d’autres langues, là où la seconde est un véritable cauchemar de travailler avec plusieurs langues en même temps.

En général, les jeux utilisent la deuxième approche et un identifiant unique est utilisé pour chaque chaîne. Cela vous permet de réviser le texte pendant qu’il est traduit dans d’autres langues. L’identifiant unique peut être un nombre, une chaîne ou une chaîne avec un numéro (il ne s’agit que d’une chaîne unique).

Note

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

Format de traduction

Pour compléter le tableau et permettre un support efficace des traductions, Godot dispose d’un importateur spécial capable de lire les fichiers CSV. Tous les éditeurs de tableurs (que ce soit Libreoffice, Microsoft Office, Google Docs, etc.) peuvent exporter vers ce format. La seule exigence est que les fichiers aient un arrangement spécial. Les fichiers CSV doivent être enregistrés au format UTF-8 et être formatés comme suit :

keys <lang1> <lang2> <langN>
KEY1 chaîne chaîne chaîne
KEY2 chaîne chaîne chaîne
KEYN chaîne chaîne chaîne

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). These keys will be replaced at runtime by the matching translated string. Note that the case is important, « KEY1 » and « Key1 » will be different keys. The top-left cell is ignored and can be left empty or having any content. Here’s an example:

keys en es ja
GREET Hello, friend! Hola, amigo! こんにちは
ASK How are you? Cómo está? 元気ですか
BYE Goodbye Adiós さようなら

The same example is shown below as a comma-separated plain text file, which should be the result of editing the above in a spreadsheet. When editing the plain text version, be sure to enclose any message that contains a comma with double quotes, so that the comma is not parsed as delimiter. Alternatively, you can select another delimiter in the import options.

keys,en,es,ja
GREET,"Hello, friend!","Hola, amigo!",こんにちは
ASK,How are you?,Cómo está?,元気ですか
BYE,Goodbye,Adiós,さようなら

Import CSV

Par défaut, Godot traitera les fichiers CSV comme des traductions. Il les importera et générera un fichier ressource ou plus de traduction.

L’importation ajoutera aussi la traduction à la liste des traduction à charger lorsque le jeu s’éxécute, spécifiée dans project.godot (ou dans les configurations du projet). Godot permet le chargement et la suppression de traduction pendant l’éxécution également.

Select the .csv file and access the « Import » dock to define import options. You can toggle the compression of the imported translations, and select the delimiter to use when parsing the CSV file.

../../../_images/import_csv.png

Be sure to click « Reimport » after any change to these options.