Internationaliser des jeux

Introduction

Sería excelente que el mundo hablara solo un idioma (Ce serait formidable si le monde ne parlait qu'une seule langue). Malheureusement pour nous, développeurs, ce n'est pas le cas. Alors que les jeux indépendants ou de niche n'ont généralement pas besoin d'être localisés, les jeux ciblant un marché plus massif nécessitent souvent une localisation. Godot offre de nombreux outils pour rendre ce processus plus simple, ce tutoriel est donc plutôt une collection de trucs et astuces.

La localisation est généralement effectuée par des studios spécifiques engagés pour ce travail et, malgré l'énorme quantité de logiciels et de formats de fichiers disponibles pour cela, la façon la plus courante de faire de la localisation à ce jour est encore avec des feuilles de calcul. Le processus de création et d'importation des feuilles de calcul est déjà couvert dans le tutoriel Importation de traductions, donc celui-ci pourrait être considéré comme sa suite.

Note

Nous allons utiliser la démo officielle comme exemple ; vous pouvez la télécharger depuis la bibliothèque d'assets.

Configuration de la traduction importée

Les traductions peuvent être mises à jour et réimportées lorsqu'elles changent, mais elles doivent toujours être ajoutées au projet. Cela se fait dans Projet → Paramètres du projet → Localisation :

../../_images/localization_dialog.png

La boîte de dialogue ci-dessus permet d'ajouter ou de supprimer des traductions à l'échelle du projet.

Localisation des ressources

Il est également possible de demander à Godot d'utiliser des versions alternatives des assets (ressources) selon la langue courante. L'onglet Remaps peut être utilisé pour cela :

../../_images/localization_remaps.png

Sélectionnez la ressource à remapper, puis ajoutez des alternatives pour chaque région.

Conversion de clés en texte

Certains contrôles, tels que Button et Label, vont automatiquement chercher une traduction si leur texte correspond à une clé de traduction. Par exemple, si le texte d'une étiquette est " MAIN_SCREEN_GREETING1 " et que cette clé existe dans la traduction actuelle, le texte sera automatiquement traduit.

Dans le code, la fonction Object.tr() peut être utilisée. Cela va juste chercher le texte dans les traductions et le convertir s'il est trouvé :

level.set_text(tr("LEVEL_5_NAME"))
status.set_text(tr("GAME_STATUS_" + str(status_index)))

Rendre les contrôles redimensionnables

Le même texte dans différentes langues peut varier considérablement en longueur. Pour cela, assurez-vous de lire le tutoriel sur Taille et ancrages, car ajuster dynamiquement la taille des contrôles peut aider. Container peut être utile, ainsi que les options d'habillage de texte disponibles dans Label.

TranslationServer

Godot a un serveur qui gère la traduction de bas niveau appelé TranslationServer. Les traductions peuvent être ajoutées ou supprimées pendant l'exécution ; la langue actuelle peut également être modifiée pendant l'exécution.

Ligne de commande

Le langage peut être testé en exécutant Godot depuis la ligne de commande. Par exemple, pour tester un jeu en français, l'argument suivant peut être fourni :

godot --language fr

Traduire le nom du projet

Le nom du projet devient le nom de l'application lors de l'exportation vers différents systèmes d'exploitation et plateformes. Pour spécifier le nom du projet dans plus d'une langue, créez un nouveau paramètre application/name dans les Paramètres du projet et ajoutez-y l'identifiant régional. Par exemple, pour l'espagnol, ce serait application/name_es :

../../_images/localized_name.png

Si vous n'êtes pas sûr du code de langue à utiliser, référez-vous à la liste des codes de langue.