Partager les traductions de thèmes (composants)

:information_source: Résumé Facilitez le partage des traductions de thèmes et de composants de thème effectuées dans l’interface Discourse
:eyeglasses: Aperçu Le partage de thèmes sur le créateur de thèmes n’est actuellement pas possible
:hammer_and_wrench: Dépôt GitHub - moin-Jana/share-theme-translations
:question: Guide d’installation Comment installer un thème ou un composant de thème
:open_book: Nouveau sur les thèmes Discourse ? Guide de démarrage pour l’utilisation des thèmes Discourse

Installer ce composant de thème

Discourse facilite la traduction des thèmes et des composants de thème. Cependant, ces traductions restent souvent limitées à votre site local.
Ce composant vous aide à partager vos traductions avec la communauté et l’auteur, soit via une demande de tirage (pull request) vers le dépôt, soit en les publiant dans le sujet correspondant sur Meta.


Fonctionnement

Ce composant ajoute une section sous l’interface de traduction lorsqu’un thème ou un composant distant contient des textes traduisibles. Depuis cette section, vous pouvez ouvrir une fenêtre modale qui vous aide à partager vos traductions de différentes manières.

:warning: Remarque sur les branches par défaut
Le composant suppose que la branche par défaut du dépôt est nommée main. Si le dépôt utilise un autre nom (comme master), certains liens peuvent ne pas fonctionner correctement et nécessiter une modification manuelle.

Créer de nouveaux fichiers de traduction sur GitHub

Si le thème est hébergé sur GitHub et qu’aucun fichier de traduction n’existe encore pour la langue concernée, le bouton :

  • ouvrira l’éditeur GitHub avec le chemin correct (par exemple locales/de.yml)
  • pré-remplira l’éditeur avec vos traductions, correctement formatées
  • inclura les descriptions du thème et ses paramètres (optionnel)

Les descriptions ne peuvent pas être traduites dans l’interface Discourse, mais vous pouvez les modifier directement dans l’éditeur GitHub avant d’enregistrer. Si vous ne souhaitez pas les traduire, vous pouvez décocher la case correspondante pour les exclure.

Étapes détaillées
  1. Après avoir traduit, cliquez sur le bouton pour ouvrir la fenêtre modale
  2. Cliquez sur « Créer une demande de tirage »
  3. Forkez le dépôt
  4. L’éditeur s’ouvrira avec vos traductions pré-remplies. Si vous le souhaitez, vous pouvez traduire les descriptions directement dans le fichier.

    Lorsque vous avez désactivé la case pour exclure les descriptions, celles-ci ne seront pas incluses, ce qui simplifie le texte dans l’éditeur.
  5. Une fois prêt, cliquez sur « Enregistrer les modifications… », puis sur « Proposer les modifications », et enfin sur « Créer une demande de tirage » (deux fois).
  6. :partying_faceC’est fait — vous avez partagé vos traductions !

Améliorer et ajouter des traductions sur GitHub

Même si une traduction pour votre langue existe déjà, vous pouvez l’améliorer et ajouter les traductions manquantes. Ce processus est un peu moins fluide. Le bouton :

  • ouvrira l’éditeur GitHub avec le chemin correct (par exemple locales/en_GB.yml)
  • au lieu de pré-remplir l’éditeur GitHub, les traductions seront copiées dans votre presse-papiers pour que vous puissiez les coller facilement.
  • l’inclusion d’informations supplémentaires comme la description du thème et ses paramètres est possible si la langue de votre interface correspond à celle des traductions que vous éditez. Sinon, le composant ne peut pas récupérer les descriptions dans la langue correcte et elles sont exclues ; vous ne copierez alors que les textes traduits. Dans ce cas, assurez-vous de ne pas écraser les descriptions lors du collage de vos modifications. Le composant vous en avertira préalablement, vous permettant ainsi de changer facilement la langue de votre interface et d’inclure les descriptions.
Étapes détaillées
  1. Si la langue de votre interface ne correspond pas à la langue de traduction (dans cet exemple, ma langue d’interface est l’anglais américain et je traduis en anglais britannique), vous avez deux options :

    A. Changez la langue de votre interface avant d’ouvrir la fenêtre modale
    B. Continuez et ouvrez la fenêtre modale sans changer la langue.
  2. Vous verrez la fenêtre modale mettant en évidence vos modifications
    A. Si la langue de votre interface correspond également à la langue vers laquelle vous traduisez, vous pouvez choisir d’exclure les descriptions en utilisant la case à cocher

    B. Sinon, la case à cocher sera désactivée.
  3. Cliquez sur « Copier & ouvrir GitHub » et forkez le dépôt
  4. Vous verrez l’éditeur avec les traductions actuellement enregistrées sur GitHub.
    A. Si les descriptions ont été incluses, vous pouvez simplement remplacer tout le contenu du fichier.

    B. Si vous n’avez pas changé votre locale ou si vous avez décoché la case, seules les traductions du thème ont été copiées. Remplacez donc uniquement celles-ci par vos traductions. Veillez à ce que tout soit correctement indenté.
  5. Vous pouvez également modifier les descriptions. Une fois prêt, cliquez sur « Enregistrer les modifications… », puis sur « Proposer les modifications », et enfin sur « Créer une demande de tirage » (deux fois).
  6. :partying_faceC’est fait — vous avez partagé vos traductions !

:warningCertains composants de thème utilisent une plateforme de traduction pour les traductions. Par exemple, de nombreux composants official sont traduits sur Crowdin. Ces fichiers contiennent un avertissement en haut indiquant où vous pouvez contribuer à vos traductions.

Partager les traductions sur Meta

Si vous n’avez pas de compte GitHub et que le lien vers le sujet Meta est disponible, vous pouvez également publier vos traductions là-bas et demander à l’auteur de les inclure dans la prochaine mise à jour. En cliquant sur « Copier & ouvrir Meta », vos traductions seront formatées, copiées dans votre presse-papiers et le sujet Meta s’ouvrira dans un nouvel onglet. Ensuite, cliquez simplement sur Répondre et collez les traductions formatées qui ont été copiées pour vous.

Étapes détaillées
  1. Après avoir traduit, cliquez sur le bouton pour ouvrir la fenêtre modale.
  2. Cliquez sur « Copier & ouvrir Meta ».
  3. Cliquez sur « Répondre » pour ouvrir l’éditeur et coller vos traductions.
  4. Si vous n’avez pas exclu les descriptions, vous pouvez les modifier directement avant de publier vos traductions.
  5. :partying_faceVous avez partagé vos traductions

Si aucun lien vers un sujet Meta n’a été fourni, vous pouvez copier les traductions et rechercher manuellement le sujet pertinent. N’oubliez pas de conserver la mise en forme de votre publication dans ce cas.

Partager les traductions sur d’autres plateformes

Si le thème est hébergé sur GitLab ou une autre plateforme, vos traductions seront copiées dans votre presse-papiers et le dépôt s’ouvrira dans un nouvel onglet. Contrairement à GitHub, GitLab ne prend pas en charge le contenu pré-rempli dans l’URL pour l’éditeur de fichiers. Vous devrez donc coller manuellement les traductions, même pour les nouveaux fichiers.
Je n’ai pas recherché comment les liens pour modifier les fichiers sont construits sur d’autres plateformes. Dans ce cas, vous serez redirigé vers le fichier ou le répertoire dans le dépôt et devrez trouver vous-même comment créer ou modifier un fichier.

Paramètres

Ce composant inclut un seul paramètre : hide_texts
Il masque l’explication introductive et affiche un message plus court lorsque la langue de votre interface ne correspond pas à la langue vers laquelle vous traduisez.

Perspectives d’avenir

Actuellement, le composant ne peut pas détecter si un thème est traduit en externe — par exemple, via Crowdin. Cela serait techniquement possible si le fichier about.json incluait un champ facultatif translation_url, tout comme il peut déjà inclure une licence ou un lien vers un sujet Meta. Par exemple :

"translation_url": "https://discourse.crowdin.com/discotoc"

Avec cela en place, le composant pourrait :

  • masquer le bouton de partage lorsque les traductions sont gérées ailleurs
  • afficher un message expliquant où contribuer à la place
  • éviter les demandes de tirage inutiles ou la confusion

Cela ne serait pas seulement utile pour ce composant — cela serait également utile en général pour que les administrateurs puissent trouver où contribuer aux traductions.

11 « J'aime »

Excellent travail Moin. Merci d’avoir construit cela. :astronaut: :clap:

6 « J'aime »