Documentation

Traduisez votre projet

Configure les traductions pour un projet, maintenez-les à jour via le Contrôle qualité et connaissez leur coût.

Coroid traduit votre produit avec le même moteur qu'il utilise pour ses propres treize langues. Vos catalogues restent des fichiers dans votre dépôt. Chaque modification de ceux-ci arrive sous forme de tâche normale et pull request, et seules les chaînes nouvelles, modifiées ou défectueuses sont envoyées au modèle.

Les traductions se trouvent sous Contrôle qualité → Traductions. La liste affiche chaque projet, indique si les traductions sont configurées et la dernière analyse effectuée. Ouvrez un projet pour accéder à son poste de travail.

Boutique en ligne
Configuré · source en · 4 locales cibles
AperçuConfigurationParamètresContributeursSuggestionsAutomatisations
Dernière analyseVoir les résultatsVoir l'exécution
LocaleManquantObsolète
de02
fr140
ja141
ar140
  • TraductionsContrôle qualité des tâches et demandes de fusion · uniquement les chaînes modifiéesPublié
  • Audit des traductionsProgrammé · chaque catalogue et page de localeBrouillon

Contrôle qualité → Traductions pour un projet : le dernier contrôle de traduction par locale, ainsi que les contrôles de traduction et d'audit des traductions. Données illustratives.

Ce dont votre dépôt a besoin

Coroid lit les catalogues dans ces formats :

FormatÀ utiliser pour
ICU JSONFichiers de messages avec pluriels et sélections ICU
i18next JSONCatalogues i18next et react-i18next, y compris les suffixes de pluriel
Vue i18n JSONMessages vue-i18n, y compris les messages liés et les pluriels en pipe
Rails YAMLconfig/locales/*.yml, avec %{name} interpolation et clés de pluriel
gettext PO.po fichiers et un .pot modèle, avec Plural-Forms par langue
Markdown et MDXPages de documentation dans un dossier de langue (docs/en/…): texte, descriptions d'images et champs de métadonnées choisis ; le code et la mise en forme restent tels quels
PersonnaliséTout autre format, via une petite commande adaptateur dans votre dépôt

Vous n'avez pas encore besoin de traductions. Si votre projet ne dispose pas d'i18n, Coroid peut l'introduire.

Configurer

L'onglet Configuration guide à travers trois étapes.

  1. Détecter. Coroid prépare une tâche de découverte. Il exécute le moteur de traduction verrouillé sur votre dépôt et enregistre la pile technique, les catalogues, la langue source et tout ce qui reste incertain.
  2. Choisir. Sélectionnez Adopter l'i18n existant pour conserver votre framework et vos catalogues et ajouter les vérifications et le moteur de delta de Coroid. Choisissez Introduire l'i18n pour que Coroid configure votre framework, extraie les chaînes représentatives et ajoute le routage par locale, les replis et le support du texte de droite à gauche.
  3. Créer. Coroid crée la tâche de configuration avec une Spécification et des critères d'acceptation. Elle se termine par un pull request que vous examinez comme n'importe quelle autre.
Boutique en ligne
Non configuré pour l'instant · installation en cours
AperçuConfigurationParamètresContributeursSuggestionsAutomatisations
  1. Détecter
  2. 2Choisir
  3. 3Créer
Détecté : Next.js avec next-intl · 3 catalogues JSON · source en
Adopter l'i18n existant

Conservez votre infrastructure et vos catalogues actuels, et ajoutez les contrôles de traduction et le moteur de détection des écarts de Coroid.

Introduire l'i18n

Reliez votre infrastructure, extrayez les chaînes représentatives, et ajoutez le routage par locale, les solutions de secours et le comportement RTL.

Locale source
en
Locales cibles
de, fr, ja, ar
Continuer

L'onglet Configuration après détection : adopter l'i18n existant ou l'introduire, avec les locales sources et cibles. Données illustratives.

La configuration est prête une fois que ce pull request est fusionné dans la branche par défaut ; Coroid synchronise alors les données. Jusqu'à lors, rien d'autre dans le poste de travail ne prend cette configuration en compte.

Le fichier du dépôt

La configuration écrit .coroid/i18n.json. Il décrit votre dépôt, donc il se trouve dans votre dépôt et évolue via des demandes de fusion :

{
  "version": 1,
  "cli": { "version": "1.7.0", "sha256": "…" },
  "sourceLocale": "en",
  "targetLocales": ["de", "fr", "ja", "ar"],
  "catalogs": [
    {
      "id": "ui",
      "format": "i18next-json",
      "source": "messages/{locale}.json"
    }
  ],
  "localeTier": { "ja": "escalation" }
}
  • cli verrouille la version exacte du moteur et son checksum. Coroid télécharge et vérifie cette version avant chaque exécution, afin qu'une mise à jour ne modifie jamais votre résultat de façon inattendue.
  • sourceLocale peut être n'importe quelle langue. Une source suédoise traduite en anglais et en allemand fonctionne de la même manière.
  • localeTier demande le niveau de traduction le plus élevé pour une locale. Vous choisissez un niveau, jamais un modèle.

Le fichier peut également contenir un glossaire, des termes protégés, le contexte du produit et des instructions spécifiques à chaque locale.

Pour le modifier, éditez la proposition sur l'onglet Configuration et choisissez Proposer une modification. Coroid ouvre une tâche qui applique exactement ce fichier et corrige les traductions affectées par la modification.

Le même onglet contient les paramètres appartenant à Coroid plutôt qu'à votre dépôt : quels sites peuvent ouvrir le sélecteur de suggestions, si les suggestions sont révisées par défaut et la limite de dépense pour les traductions du projet.

Vérifier chaque modification

Les traductions deviennent partie intégrante de la vérification grâce à deux contrôles qualité. Ajoutez-les depuis l'onglet Aperçu .

  • Traductions s'exécute lors de la QA de tâche et sur les demandes de fusion. Il vérifie uniquement les chaînes touchées par une modification.
  • Audit de traduction s'exécute selon un planning. Il vérifie chaque catalogue et locale et peut inclure un test dans le navigateur des pages de locale, pour le layout de droite à gauche, les débordements et les textes non traduits sur la page.

Ajouter un contrôle prépare un brouillon de politique. Examinez-le et publiez-le sous Politiques qualité pour l'activer.

Chaque problème devient une constatation avec un code d'incident :

CodeSignificationBloque par défaut
missingLa chaîne n'a pas de traductionOui
invalid_syntaxLa traduction ne se parsse pas, par exemple un ICU incorrectOui
placeholder_mismatchLes espaces réservés diffèrent de la sourceOui
plural_categoriesUne forme plurielle requise par la locale est manquanteOui
staleLa source a été modifiée après la traduction de cette chaîneNon

Vous choisissez quels codes bloquer dans les paramètres du contrôle. Le glossaire, les règles de longueur et de termes interdits indiquent leurs propres codes lorsque votre fichier les configure.

Contrôle qualité
Résultats des dernières exécutions, filtrés selon la vérification des traductions.
PolitiquesRésultats4Exécutions
  • missingui · checkout.total · frNon traduit
  • staleui · nav.deals · deLa source a changé depuis la traduction
  • placeholder_mismatchui · cart.items · jaLes espaces réservés diffèrent de la source
  • plural_categoriesui · cart.count · arFormes plurielles absentes pour cette locale

Résultats du contrôle qualité sur les traductions, un code de problème par résultat. Données illustratives.

Lorsqu'une erreur de traduction bloque une tâche, l'agent développeur la corrige toujours de la même manière : il ouvre une session de traduction pour la tâche et exécute le moteur sur les chaînes modifiées. Il n'édite jamais manuellement les catalogues cibles.

Le modèle Traducteur

La traduction occupe un rôle propre dans les profils AI, Traducteur, aux côtés d'Architecte, Développeur, QA et Réviseur. Par défaut, il utilise Hy-MT2, un modèle de traduction, avec GPT-6 Luna comme solution de repli, lorsque la politique de votre organisation le permet. Modifiez ce mappage dans un profil AI comme pour tout autre rôle.

Le moteur regroupe également les chaînes par taille, valide chaque réponse par rapport à vos espaces réservés et règles de pluriel, puis réessaie ou transfère une chaîne défaillante.

Coûts

Les traductions sont disponibles sur tous les abonnements. Les appels de traduction passent par le portail de traduction de Coroid et sont facturés en tant qu'utilisation de modèles pour votre organisation, au même titre que les exécutions d'agents. Les tâches de configuration comptent dans les heures d'agent de votre abonnement comme toute autre tâche.

Avec la route Traducteur par défaut, la traduction coûte environ deux centimes par 1 000 chaînes et par langue. La traduction d'un catalogue de 2 000 chaînes en dix langues coûte environ 0,33 $ selon nos mesures.

  • Seules les modifications entraînent des frais. Le moteur conserve un cache indexé par le texte source, afin que les chaînes inchangées ne soient jamais renvoyées.
  • Chaque tâche possède une limite de traduction. Une session s'arrête à la limite de dépense de la tâche, fixée à 1 $ par défaut. Un projet peut définir une limite inférieure sous Configuration → Accès et dépenses.
  • Les Vérifications n'effectuent aucun appel de modèle. Le contrôle Traductions et l'audit lisent vos catalogues ; ils ne traduisent pas.

Traduire en dehors de Coroid

Le moteur est un outil en ligne de commande, coroid-i18n. Votre propre CI peut exécuter la même version verrouillée avec sa propre clé OpenRouter. À l'intérieur de Coroid, les tâches utilisent toujours le portail de traduction, de sorte que les dépenses et les limites restent centralisées.