Localisation de l'éditeur et de la documentation

Godot vise à rendre le développement de jeux accessible à tous, y compris aux personnes qui ne connaissent pas ou ne sont pas à l'aise avec l'anglais. C'est pourquoi nous faisons de notre mieux pour mettre à disposition les ressources les plus importantes dans de nombreuses langues, grâce à l'effort de traduction de la communauté.

Ces ressources comprennent :

  1. L'interface de l'éditeur Godot (environ 15 000 mots).
  2. La documentation en ligne (manuel de l'éditeur et tutoriels, environ 300 000 mots).
  3. La class reference, disponible en ligne et dans l'éditeur (environ 200 000 mots).

Pour gérer les traductions, nous utilisons le format de fichier GNU gettext (fichiers PO), et la plateforme de localisation web open source Weblate, qui permet une collaboration facile de nombreux contributeurs pour compléter la traduction des différents composants, et les maintenir à jour. Cliquez sur les liens en gras ci-dessus pour accéder à chaque ressource sur Weblate.

Cette page donne un aperçu du processus général de traduction sur Weblate, ainsi que des instructions spécifiques à la ressource, par exemple sur la manière de traiter certains mots clés ou la localisation d'images.

Astuce

La traduction de l'ensemble du contenu officiel de Godot est une entreprise de grande envergure, c'est pourquoi nous conseillons de classer les ressources par ordre de priorité comme elles sont énumérées ci-dessus : d'abord l'interface de l'éditeur, puis la documentation en ligne, et enfin la référence de la classe s'il y a suffisamment de traducteurs pour suivre les mises à jour.

Utilisation de Weblate pour les traductions

Bien que nos traductions résident au final dans les dépôts Git du moteur Godot et de sa documentation, toutes les mises à jour des traductions sont gérées par Weblate, et donc les demandes directes de téléchargement vers les dépôts Git ne sont pas acceptées. Les traductions sont synchronisées manuellement entre Weblate et les dépôts Godot par les mainteneurs.

Vous devez donc vous enregistrer sur Weblate pour contribuer aux traductions de Godot.

Une fois connecté, naviguez vers la ressource Godot à laquelle vous souhaitez contribuer (dans cette page, nous utiliserons la traduction de l'éditeur comme exemple) pour trouver la liste de toutes les langues :

../../_images/l10n_01_language_list.png

Voir aussi

N'hésitez pas à consulter la documentation de Weblate sur le flux de travail de traduction pour plus de détails.

Ajouter une nouvelle langue

Si votre langue figure déjà dans la liste, cliquez sur son nom pour accéder à la vue d'ensemble, et passez le reste de cette section.

Si votre langue ne figure pas dans la liste, faites défiler jusqu'au bas de la liste des langues et cliquez sur le bouton "Commencer une nouvelle traduction", puis sélectionnez la langue dans laquelle vous souhaitez traduire :

../../_images/l10n_02_new_translation.png

Important

Si votre langue est parlée dans plusieurs pays avec seulement des variations régionales limitées, veuillez envisager de l'ajouter avec sa variante générique (par exemple fr pour le français) au lieu d'une variante régionale (par exemple fr_FR pour le français (France), fr_CA pour le français (Canada), ou fr_DZ pour le français (Algérie)).

Godot a une énorme quantité de contenu à traduire, donc la duplication du travail pour les variantes régionales ne devrait être faite que si les variations linguistiques sont suffisamment importantes. En outre, si une traduction est effectuée pour une variante régionale, elle ne sera disponible automatiquement que pour les utilisateurs situés dans cette région (ou dont la langue du système est configurée pour cette région).

Lorsque les variations régionales sont suffisamment importantes pour justifier des traductions séparées, nous conseillons de se concentrer sur la réalisation d'une variante générique en premier si possible, puis de reproduire la traduction complète pour les variantes régionales et d'effectuer les révisions nécessaires. C'est généralement une bonne stratégie pour l'espagnol par exemple (travailler d'abord sur es, puis le dupliquer sur es_AR, es_ES, es_MX, etc. si nécessaire) ou le portugais (pt_BR contre pt_PT).

Interface de traduction

Une fois qu'une langue a été sélectionnée, vous verrez un aperçu de l'état de la traduction, y compris le nombre de strings qui restent à traduire ou à réviser. Chaque élément peut être cliqué et utilisé pour parcourir la liste correspondante. Vous pouvez également cliquer sur le bouton "Traduire" pour commencer sur la liste des chaînes nécessitant une action.

../../_images/l10n_03_translation_overview.png

Après avoir sélectionné une liste en cliquer sur "Traduire", vous verrez l'interface de traduction principale où tout le travail se fait :

../../_images/l10n_04_translation_interface.png

Sur cette page, vous avez :

  • Une barre d'outils qui vous permet de parcourir les strings de la liste actuelle, de passer à une autre liste prédéfinie ou de faire une recherche personnalisée, etc. Il existe également un mode d'édition "Zen" avec une interface simplifiée.
  • La chaîne réelles sur lequel vous travaillez dans le panneau "Traduction". Par défaut, il devrait y avoir la chaîne source en anglais et une zone d'édition pour votre langue. Si vous êtes familier avec d'autres langues, vous pouvez les ajouter dans vos paramètres utilisateur pour vous donner plus de contexte pour la traduction. Une fois que vous avez fini d'éditer la chaîne actuelle, appuyez sur "Enregistrer" pour confirmer les changements et passer à la chaîne suivante. Vous pouvez également utiliser le bouton "Suivant" pour passer à la chaîne suivante. La case à cocher "À vérifier" signifie que la chaîne originale a été mise à jour et que la traduction doit donc être révisée pour tenir compte de ces changements (dans le jargon de PO, il s'agit de chaînes dites "floues"). Ces chaînes ne seront pas utilisées dans la traduction tant qu'ils n'auront pas été corrigés.
  • Le panneau du bas comporte divers outils qui peuvent aider à la traduction, comme le contexte des chaînes voisines (généralement issues du même outil de l'éditeur ou de la même page de documentation, de sorte qu'elles peuvent utiliser des termes similaires), les commentaires d'autres traducteurs, les traductions automatiques et une liste de toutes les autres traductions existantes pour cet chaîne.
  • En haut à droite, le glossaire indique les termes pour lesquels une entrée a été ajoutée précédemment et qui sont inclus dans la chaîne actuelle. Par exemple, si vous avez décidé avec des collègues traducteurs d'utiliser une traduction spécifique pour le terme "node" dans Godot, vous pouvez l'ajouter au glossaire pour vous assurer que les autres traducteurs utilisent la même convention.
  • Le panneau inférieur droit contient des informations sur la chaîne source. L'élément le plus pertinent est l'"emplacement de la chaîne source", qui vous relie à la chaîne originale sur GitHub. Vous pouvez avoir besoin de rechercher la chaîne dans la page pour la localiser.

Localisation du contenu original

Les fichiers PO sont une liste ordonnée de chaînes sources (msgid) et de leur traduction (msgstr), et par défaut, Weblate présentera les chaînes dans cet ordre. Il peut donc être utile de comprendre comment le contenu est organisé dans les fichiers PO pour vous aider à localiser le contenu original et l'utiliser comme référence lors de la traduction.

Important

Il est primordial d'utiliser le contexte original comme référence lors de la traduction, car de nombreux mots ont plusieurs traductions possibles selon le contexte. L'utilisation d'une mauvaise traduction peut en fait être préjudiciable à l'utilisateur et rendre les choses plus difficiles à comprendre que si elles restaient en anglais. L'utilisation du contexte rend également l'effort de traduction beaucoup plus facile et agréable, car vous pouvez voir directement si la traduction que vous avez rédigée aura un sens dans le contexte.

  • Le modèle de traduction de l'interface de l'éditeur est généré en analysant tout le code source C++ dans l'ordre alphabétique, de sorte que toutes les chaînes définies dans un fichier donné seront regroupées. Par exemple, si l'"emplacement de la chaîne source" indique editor/code_editor.cpp, la chaîne actuelle (et les chaînes voisines) est définie dans le fichier de code editor/code_editor.cpp, et est donc liée aux éditeurs de code dans Godot (GDScript, shaders).
  • Le modèle de traduction de la documentation en ligne est généré à partir des fichiers RST sources dans le même ordre que celui de la table des matières, de sorte que, par exemple, les premières chaînes proviennent de la première page de la documentation. Le flux de travail recommandé consiste donc à trouver une chaîne unique correspondant à une page que vous souhaitez traduire, puis à traduire toutes les chaînes ayant le même emplacement de chaîne source tout en comparant avec la version en ligne de cette page en anglais. Un exemple d'emplacement de la chaîne source pourrait être getting_started/step_by_step/scenes_and_nodes.rst pour la page Des scènes et des nœuds.
  • Le modèle de traduction de la référence de classe est généré à partir des fichiers XML source dans l'ordre alphabétique, qui est également le même que l'ordre de la table des matières pour la version en ligne. Vous pouvez donc localiser la chaîne source correspondant à la brève description d'une classe donnée pour trouver la première chaîne à traduire et toutes les autres descriptions de cette classe doivent se trouver dans les chaînes suivantes sur Weblate. Par exemple, les descriptions de la classe Node2D auraient comme emplacement de la chaîne source doc/classes/Node2D.xml.

Un outil pratique pour localiser des pages/classes spécifiques consiste à utiliser la fonction de recherche avancée de Weblate, et notamment la requête "localisation de chaînes" (qui peut également être utilisée avec le jeton location:, par exemple location:scenes_and_nodes.rst) :

../../_images/l10n_05_search_location.png ../../_images/l10n_06_browse_by_location.png

Note

Lorsqu'une chaîne source donnée est utilisée dans plusieurs endroits, elles seront toutes concaténées en une seule. Par exemple, la requête location:scenes_and_nodes.rst ci-dessus aboutira d'abord sur la chaîne source "Introduction" qui est utilisée dans des dizaines de pages, y compris certaines qui précèdent scenes_and_nodes.rst dans le modèle. En cliquant sur le bouton "Suivant", nous arrivons ensuite à la chaîne de titre "Scene and nodes" affichée ci-dessus. Il peut donc arriver qu'un titre de paragraphe ou de section donné ne se trouve pas à l'endroit où vous l'attendez en lisant une page de la version en ligne.

Respect de la syntaxe de balisage

Chaque ressource de traduction provient d'un format de code source différent, et il est important d'avoir quelques notions sur le langage de balisage utilisé pour chaque ressource afin d'éviter de créer des erreurs de syntaxe dans vos traductions.

Interface de l'éditeur (C++)

Les traductions de l'éditeur proviennent de chaînes C++, et peuvent être utilisées :

  • les spécificateurs de format C tels que %s (un string) ou %d (un nombre). Ces spécificateurs sont remplacés par le contenu au moment de l'exécution, et doivent être préservés et placés dans votre traduction où cela est nécessaire pour qu'il soit significatif après la substitution. Vous pouvez avoir besoin de vous référer à l'emplacement de la chaîne source pour comprendre quel type de contenu sera substitué si la phrase n'est pas claire. Exemple (%s sera substitué par un nom de fichier ou un chemin d'accès) :

    # PO file:
    "There is no '%s' file."
    
    # Weblate:
    There is no '%s' file.
    
  • caractères d'échappement C tels que \n (saut de ligne) ou \t (tabulation). Dans l'éditeur Weblate, les caractères \n sont remplacés par (retour) et \t par . Les tabulations ne sont pas très utilisées, mais vous devez vous assurer d'utiliser les sauts de ligne de la même manière que pour la chaîne originale en anglais (Weblate émettra un avertissement si vous ne le faites pas). Les sauts de ligne peuvent parfois être utilisés pour l'espacement vertical, ou le retour à la ligne manuel de longues lignes qui seraient autrement trop longues, en particulier dans la traduction de l'éditeur). Exemple :

    # PO file:
    "Scene '%s' is currently being edited.\n"
    "Changes will only take effect when reloaded."
    
    # Weblate:
    Scene '%s' is currently being edited.↵
    Changes will only take effect when reloaded.
    

Documentation en ligne (RST)

Les traductions de la documentation proviennent de fichiers reStructuredText (RST), qui utilisent également leur propre syntaxe de balisage pour styliser le texte, créer des liens internes et externes, etc. Voici quelques exemples :

# "development" is styled bold.
# "Have a look here" is a link pointing to https://docs.godotengine.org/en/latest.
# You should translate "Have a look here", but not the URL, unless there is
# a matching URL for the same content in your language.
# Note: The `, <, >, and _ characters all have a meaning in the hyperlink
# syntax and should be preserved.

Looking for the documentation of the current **development** branch?
`Have a look here <https://docs.godotengine.org/en/latest>`_.

# "|supported|" is an inline reference to an image and should stay unchanged.
# "master" uses the markup for inline code, and will be styled as such.
# Note: Inline code in RST uses 2 backticks on each side, unlike Markdown.
# Single backticks are used for hyperlinks.

|supported| Backwards-compatible new features (backported from the ``master``
branch) as well as bug, security, and platform support fixes.

# The :ref: Sphinx "role" is used for internal references to other pages of
# the documentation.
# It can be used with only the reference name of a page (which should not be
# changed), in which case the title of that page will be displayed:

See :ref:`doc_ways_to_contribute`.

# Or it can be used with an optional custom title, which should thus be translated:

See :ref:`how to contribute <doc_ways_to_contribute>`.

# You may encounter other Sphinx roles, such as :kbd: used for shortcut keys.
# You can translate the content between backticks to match the usual key names,
# if it's different from the English one.

Save the scene. Click Scene -> Save, or press :kbd:`Ctrl + S` on Windows/Linux
or :kbd:`Cmd + S` on macOS.

Voir aussi

Voir reStructured Text primer de Sphinx pour un aperçu rapide du langage de balisage que vous pouvez trouver dans les chaînes sources. Vous pouvez rencontrer en particulier le balisage dans la ligne (gras, italique, code dans la ligne) et le balisage interne et externe des hyperliens.

Référence de classe (BBCode)

La référence de classe est documentée dans le dépôt principal de Godot à l'aide de fichiers XML, et avec un balisage de type BBCode pour le style et les références internes.

Certaines des balises utilisées sont issues du BBCode original (par exemple [b]Bold[/b] and [i]Italics[/i]), tandis que d'autres sont spécifiques à Godot et utilisées pour des fonctionnalités avancées telles que le code dans la ligne (e.``[code]true[/code]``), la liaison à une autre classe (par exemple, [Node2D]) ou à une propriété d'une classe donnée (par exemple, [member Node2D.position]), ou pour des blocs de code multilignes. Exemple :

Returns a color according to the standardized [code]name[/code] with [code]alpha[/code] ranging from 0 to 1.
[codeblock]
red = ColorN("red", 1)
[/codeblock]
Supported color names are the same as the constants defined in [Color].

Dans l'exemple ci-dessus, [code]name[/code], [code]alpha[/code], et [Color] ne doivent pas être traduits, car ils font référence respectivement à des noms d'arguments et à une classe de l'API Godot. De même, le contenu du [codeblock] ne doit pas être traduit, car ColorN est une fonction de l'API Godot et "red" est l'une des couleurs nommées qu'elle supporte. Tout au plus, vous pouvez traduire le nom de la variable qui contient le résultat (red = ...).

Notez également que dans le XML, chaque ligne est un paragraphe, vous ne devez donc pas ajouter de sauts de ligne s'ils ne font pas partie de la traduction originale.

Voir aussi

Consultez notre documentation pour les auteurs de références de classe pour la liste des balises de type BBCode qui sont utilisées dans toute la référence de classe.

Traduction et tests hors ligne

Nous vous conseillons d'utiliser l'interface Weblate pour rédiger les traductions, mais vous avez également la possibilité de télécharger le fichier PO en local pour le traduire avec votre application d'édition PO préférée, telle que Poedit ou Lokalize.

Pour télécharger le fichier PO en local, consultez l'aperçu des traductions pour votre langue et sélectionnez le premier élément dans le menu "Fichiers" :

../../_images/l10n_07_download_po_file.png

Une fois que vous avez terminé une série de modifications, utilisez l'élément "Téléverser la traduction" dans ce même menu et sélectionnez votre fichier. Choisissez "Ajouter comme traduction" pour le mode de téléchargement du fichier.

Note

Si un laps de temps important s'est écoulé entre le téléchargement du fichier PO et le téléversement de la version éditée, il existe un risque d'écraser les traductions rédigées par d'autres contributeurs dans l'intervalle. C'est pourquoi nous vous conseillons d'utiliser l'interface en ligne afin de toujours travailler sur la dernière version.

Si vous voulez tester les changements localement (en particulier pour la traduction de l'éditeur), vous pouvez utiliser le fichier PO téléchargé et compiler Godot à partir de la source.

Renommez le fichier PO de traduction de l'éditeur en <lang>.po (par exemple eo.po pour l'espéranto) et placez-le dans le dossier editor/translations/ (GitHub).

Vous pouvez également tester les changements de référence de classe de la même manière en renommant le fichier PO de la même façon et en le plaçant dans le dossier doc/translations/ (GitHub).

Localisation des images de la documentation

La documentation en ligne comprend de nombreuses images, qui peuvent être des captures d'écran de l'éditeur Godot, des graphismes personnalisés, ou tout autre type de contenu visuel. Certaines d'entre elles comprennent du texte et peuvent donc être pertinentes à localiser dans votre langue.

Cette partie n'est pas gérée via Weblate, mais directement sur le dépôt Git godot-docs-l10n où les traductions de la documentation sont synchronisées à partir de Weblate.

Note

Le flux de travail n'est pas des plus simples et nécessite une certaine connaissance de Git. Nous prévoyons de travailler sur un outil Web simplifié qui pourrait être utilisé pour gérer la localisation des images de manière pratique, en faisant abstraction de ces étapes.

Pour traduire une image, vous devez d'abord la localiser dans la documentation originale en anglais. Pour ce faire, consultez la page correspondante dans la documentation, par exemple Introduction à l'éditeur de Godot. Cliquez sur le lien "Edit on GitHub" dans le coin supérieur droit :

../../_images/l10n_08_edit_on_github.png

Sur GitHub, cliquez sur l'image que vous souhaitez traduire. Le cas échéant, cliquez sur "Download" pour la télécharger localement et l'éditer avec un outil d'édition d'images. Notez le chemin complet vers l'image car il sera nécessaire plus bas (ici getting_started/step_by_step/img/project_manager_first_open.png).

../../_images/l10n_09_path_to_image.png

Créez votre version localisée de l'image, soit en éditant la version anglaise, soit en prenant une capture d'écran de l'éditeur dans votre langue, s'il s'agit d'une capture d'écran de l'éditeur. Certaines images peuvent également avoir des fichiers sources disponibles au format SVG, vous pouvez donc parcourir le dossier img/ qui les contient pour vérifier cela.

Nommez votre image localisée comme l'image originale, mais en ajoutant le code de la langue avant l'extension, par exemple project_manager_first_open.png deviendrait project_manager_first_open.fr.png pour la localisation française.

Enfin, dans godot-docs-l10n, recréer la même structure de dossier que pour l'image originale dans le sous-dossier images (GitHub), et placer y votre image traduite. Dans notre exemple, le résultat final devrait être images/getting_started/step_by_step/img/project_manager_first_open.fr.png.

Répétez ceci pour les autres images et faites un Pull Request.