Comment localiser (rendre multilingues) les badges et les groupes ?

Comment les badges et les groupes peuvent-ils être localisés (multilingues) ? Pendant la configuration, j’ai remarqué que les titres des badges et des groupes ne changent pas avec la langue du thème. Comment puis-je faire en sorte que les badges et les groupes suivent le changement de thème ?

3 « J'aime »

La possibilité de localiser les badges et groupes personnalisés pour un site multilingue n’existe pas encore — pour le moment, seuls les messages, les catégories et les étiquettes peuvent être localisés.

D’accord, merci. Mais pourquoi les badges sur ce site (meta.discourse.org) changent-ils de langue avec le thème ? Est-ce dû à une fonctionnalité de traduction ? Je suggère que l’équipe officielle ajoute des paramètres de personnalisation multilingues pour les badges, les groupes et les étiquettes ; sinon, les utilisateurs multilingues ne pourront pas comprendre le contenu des badges, des groupes et des étiquettes.

1 « J'aime »

Il existe des badges pré-attribués sur chaque site qui sont internationalisés (i18n) via Crowdin.

Les badges personnalisés stockent le nom/la description sous forme de texte brut dans la base de données. Lorsque I18n.t (fonctionnalité d’internationalisation) est appelé avec une clé telle que badges.my_custom_badge.name, il n’y a pas de traduction correspondante, ce qui conduit à revenir à la valeur stockée dans la base de données — le même texte pour toutes les langues.

Il existe une solution de contournement où les administrateurs peuvent ajouter manuellement des traductions pour les clés de badges personnalisés par langue.

Vous pouvez personnaliser les textes de votre site à l’adresse \u003cvotre site\u003e/admin/customize/site_texts.


Quelques étapes concrètes pour vous

  1. Créer le badge
  • Allez à /admin/badges → Nouveau Badge
  • Définissez le nom, la description, l’icône, etc. comme d’habitude
  1. Trouver la clé i18n
  • Le modèle de clé est badges.{nom_en_snake_case}.name
  • Le nom_en_snake_case est le nom du badge en minuscules avec les espaces remplacés par des tirets bas
  • Donc “Pokémon Master” → badges.pokémon_master.name
  1. Ajouter des remplacements de traduction
  • Allez à /admin/customize/site_texts
  • Recherchez badges.pokémon_master
  • Vous verrez des clés telles que :
    • badges.pokémon_master.name
    • badges.pokémon_master.description
    • badges.pokémon_master.long_description
  • Passez à la langue cible (par exemple, 简体中文), cliquez sur la clé et entrez le texte traduit
  1. Répéter par langue
  • Changez de langue dans le menu déroulant, ajoutez des traductions pour chaque langue dont vous avez besoin
    • .name - titre du badge
    • .description - courte description affichée sur les cartes de badges
    • .long_description - description complète affichée sur la page de détail du badge

english

japanese

2 « J'aime »

Salut ! Merci pour votre réponse ! Comment la deuxième étape, la recherche de la « clé i18n », est-elle mise en œuvre ? Je n’ai pas trouvé l’emplacement de la clé i18n.

Vous ne le « trouvez » pas vraiment, vous le dérivez simplement du nom que vous donnerez au badge. (Je vais mettre à jour la deuxième étape pour utiliser « dériver » au lieu de « trouver »)

Donc, si vous utilisez « Bug Finder » comme nom de badge, la clé sera badges.bug_finder.name

Je ne sais pas pourquoi, mais quelle que soit la recherche effectuée dans /admin/customize/site_texts, le message “No matching site texts found” s’affiche. Savez-vous quelle en est la cause ?