Aller au contenu
Aller au contenu

Docs / Guides

Page traduite automatiquement

Cette page a été traduite automatiquement, elle peut donc contenir des erreurs ou se lire un peu bizarrement. La version anglaise fait foi. Lire l'original en anglais.

Ajouter une langue

Ajoute une locale cible à un projet verbatra existant avec une ligne de configuration et une exécution de translate, sans toucher à tes locales existantes.

Utilise ceci quand un projet traduit déjà vers quelques langues et que tu en veux une de plus. Il suffit d'une ligne de configuration et d'une exécution. verbatra considère que la nouvelle locale n'a aucune clé et la remplit ; tes locales existantes ne coûtent rien, car le fichier de verrouillage les enregistre toujours comme à jour.

Il te faut un projet qui fonctionne : une configuration, un fichier de locale source et une clé de fournisseur. Si tu n'en as pas encore, commence par le démarrage rapide.

Ajoute la locale à ta configuration

Ajoute le code à targetLocales dans verbatra.config.ts :

verbatra.config.ts
import { defineConfig } from "@verbatra/cli";

export default defineConfig({
  sourceLocale: "en",
  targetLocales: ["de", "fr"], 
  format: "i18next-json",
  files: { pattern: "locales/{locale}.json" },
  provider: { id: "gemini", options: { model: "gemini-2.5-flash", maxOutputTokens: 4096 } },
});

Règles des codes de locale

Écris le code sous forme BCP 47, avec un trait d'union : pt-BR, pas pt_BR. Si tes fichiers utilisent des tirets bas, écris quand même pt-BR et règle files.localeStyle sur posix ; verbatra garde le nom de fichier pt_BR.json. Le chargement de la configuration refuse un code invalide, la locale source et deux codes qui ne diffèrent que par la casse. Les règles complètes sont dans Codes de locale, et verbatra doctor te dit si un fournisseur prend en charge la nouvelle langue.

Prévisualise le travail

Regarde ce que ferait une exécution avant de dépenser quoi que ce soit :

verbatra diff --locales fr

La nouvelle locale n'a pas encore de fichier, donc chaque clé source est listée comme manquante. Retire --locales pour vérifier que tes autres locales ne listent rien. diff n'appelle aucun fournisseur et n'écrit rien. Pour une estimation du coût, lance verbatra translate --estimate ; voir Estimer le coût avant une exécution.

Traduis

verbatra translate

L'exécution traduit chaque clé source dans la nouvelle locale et écrit le fichier à ton files.pattern, ici locales/fr.json. Seule la nouvelle locale déclenche des appels au fournisseur : les autres locales n'ont aucune clé manquante ou modifiée par rapport à leur référence dans le fichier de verrouillage, donc rien n'est envoyé pour elles.

Si l'exécution ne garde rien pour la nouvelle locale, parce que chaque clé a échoué à une vérification, que ses requêtes au fournisseur ont échoué ou qu'un budget de tokens les a retenues, aucun fichier n'est créé. Les clés restent manquantes et la prochaine exécution les réessaie.

Ensuite, verbatra check se termine avec 0 quand chaque locale, la nouvelle comprise, est synchronisée.

Langues avec plus de catégories de pluriel

Certaines langues ont besoin de plus de formes de pluriel que ta source. L'anglais a one et other ; le polonais en demande quatre, l'arabe six, et le français ajoute many. Par défaut, verbatra traduit les formes présentes dans ta source et n'invente pas les autres : l'exécution réussit et signale un avis PLURAL_CATEGORIES_INCOMPLETE qui nomme ce qui manque.

Générer les formes manquantes

Si tu utilises du JSON i18next avec un fournisseur LLM, verbatra peut écrire les formes manquantes :

verbatra.config.ts
export default defineConfig({
  // ...
  generatePlurals: true,
});

Les formes générées passent les mêmes contrôles d'intégrité que toute traduction.

Formes issues de CLDR

Les formes dont une langue a besoin viennent des règles de pluriel CLDR intégrées à Node.js, pour chaque langue, ordinaux compris. Les formats ICU (next-intl et ARB) gardent un pluriel entier dans une seule valeur, ils n'ont donc besoin d'aucune génération : on demande au fournisseur exactement les branches qu'utilise la langue cible. Voir generatePlurals pour ce qui retombe sur l'avis, et Pluriels pour la façon dont verbatra décide des formes dont une langue a besoin.

Continue à maintenir seulement la source

Désormais, tu ne modifies que la locale source. Ajoutes-y une chaîne et relance translate : verbatra la remplit dans chaque cible, y compris celle que tu viens d'ajouter.

Voir aussi

Modifier sur GitHub

Sur cette page