Skip to content

Traduire ​

PICKET est traduit avec Weblate. L'anglais est la langue source ; le français est fourni. Chacun peut ajouter une langue.

Fonctionnement ​

  • Les textes sont dans packages/i18n/locales/<langue>.json, un fichier par langue. Le nom du fichier est le code de langue Discord (fr, de, pt-BR, es-ES…).
  • Weblate surveille ces fichiers. Ses modifications arrivent sous forme de pull requests qui ne touchent qu'eux, et sont fusionnées automatiquement une fois les contrôles passés.
  • Une langue est prise en compte par le bot dès que son fichier existe : il n'y a rien à déclarer dans le code.
  • Une traduction manquante retombe sur l'anglais, donc une traduction partielle convient.
  • La liste de /picket settings language affiche chaque langue sous son propre nom et Discord la limite à 25 entrées, « Automatique » compris : au-delà de 24 langues, cette commande devra passer par l'autocomplétion.

Règles contrôlées par la CI ​

RèglePourquoi
Le nom du fichier est un code de langue Discord valideLes descriptions de commandes sont envoyées à Discord par langue.
Aucune clé absente de l'anglaisUne faute de frappe ne serait jamais utilisée, sans erreur visible.
Mêmes que le texte anglaisUne variable manquante ou renommée casse le message.
Descriptions de commandes, d'options et choix de 1 à 100 caractèresLimite de Discord.
Aucune valeur videUn message vide n'est jamais voulu.

Laissez les variables comme ou intactes, et gardez tels quels les noms de commandes littéraux (/picket data cancel-deletion, confirm:True).

Travailler en local ​

sh
pnpm exec jest packages/i18n     # contrôle tous les catalogues
pnpm i18n:keys                   # après avoir ajouté ou renommé une clé dans en.json

pnpm i18n:keys régénère le type MessageKey utilisé par le code, et les tests échouent s'il est périmé.

Configurer Weblate (mainteneurs) ​

Créez un composant avec :

RéglageValeur
Masque de fichierpackages/i18n/locales/*.json
Fichier de langue de base monolinguepackages/i18n/locales/en.json
Format de fichieri18next JSON file (v4)
Méthode de push (réglages du dépôt)GitHub pull request
Modules de traduction automatiqueDésactivés

Renseignez ensuite la variable de dépôt WEBLATE_BOT_LOGIN avec le compte qui ouvre les pull requests, activez Allow auto-merge dans les réglages du dépôt, et exigez les contrôles de la CI dans la protection de branche de main. Sans cette variable, rien n'est fusionné automatiquement.