Docs / Guides
Page traduite automatiquement
Confier avec Excel ou CSV
Exporte les chaînes non traduites vers un classeur Excel ou des fichiers CSV pour un traducteur, puis réimporte le résultat avec les mêmes contrôles de sûreté.
Utilise ceci quand une personne doit traduire certaines chaînes : textes marketing, textes juridiques ou langues qui comptent le plus. Tu exportes les chaînes à traduire, un traducteur les remplit, et tu importes le fichier dans tes fichiers de locale.
L'export choisit exactement les clés qu'une exécution automatisée traduirait (les nouvelles et les modifiées), et l'import applique les mêmes contrôles d'intégrité que translate, donc une valeur saisie à la main qui casse un placeholder est retenue et signalée au lieu d'être écrite. Aucune des deux commandes n'appelle de fournisseur ni n'a besoin de clé d'API.
Il te faut un projet verbatra avec au moins une locale cible.
L'aller-retour
# 1. Export the strings that need translating
verbatra export
# 2. A translator fills the Translation column and sends the file back
# 3. Import the filled workbook
verbatra import verbatra-translations.xlsxL'export écrit verbatra-translations.xlsx dans le répertoire de travail. L'import valide chaque ligne remplie, écrit les valeurs qui passent et fait avancer le fichier de verrouillage exactement pour les clés acceptées, comme le ferait une exécution translate.
Ce qui atterrit dans le classeur
Le classeur s'ouvre sur une feuille Instructions, puis une feuille par locale cible, nommée d'après sa locale (de, fr, ...). Chaque feuille de locale a les mêmes colonnes :
| Colonne | Modifiable | Rôle |
|---|---|---|
Key | non | le chemin de clé ; la seule chose qui relie une ligne à une chaîne |
Source | non | la valeur de la locale source |
Current translation | non | la valeur cible existante, le cas échéant |
Status | non | new, changed (la source a changé depuis la traduction) ou unchanged (seulement avec --include-unchanged) |
Translation | oui | la seule cellule que le traducteur remplit |
Source hash | non | masquée ; détecte une source modifiée après l'export |
Context | non | la description de la clé, quand le format source en porte une ; jamais importée |
Review status | non | ok, ou review quand un signalement de relecture suggère un second regard |
Review reasons | non | les raisons de relecture derrière un statut review |
Chaque colonne sauf Translation est verrouillée par la protection de feuille, et Translation utilise le format texte d'Excel, donc une valeur comme 007 ou commençant par = reste du texte littéral. Les colonnes de relecture sont consultatives : l'import ne les lit jamais.
La remise
Donne ces règles au traducteur (la feuille Instructions les répète) :
- Remplis la colonne
Translation, rien d'autre. - Ne renomme, ne supprime et ne réordonne pas les onglets de langue. Chaque onglet est associé à une locale par son nom exact, donc un onglet renommé ou manquant fait échouer cette locale.
- Trier et filtrer les lignes ne pose aucun problème, car les lignes sont reliées par
Key. Les colonnes doivent rester à leur place. - Laisse une cellule vide pour "pas encore traduit". Un classeur à moitié rempli peut revenir maintenant et le reste plus tard.
- Pour vider volontairement une valeur existante, tape exactement
[[CLEAR]].
Ce que l'import accepte
Chaque ligne remplie est jugée par rapport au projet tel qu'il est, avant toute écriture :
- Dérive de la source : si la chaîne source a changé après l'export, la ligne est retenue, donc la traduction d'une ancienne source n'atterrit jamais.
- Intégrité : les placeholders, le balisage inline et la structure ICU doivent correspondre à la source, comme à chaque exécution. Voir la barrière d'intégrité.
- Valeurs dégénérées : une boucle de répétition, une longueur qui s'emballe ou une valeur vide pour une source non vide est retenue.
- Clés inconnues : une ligne remplie dont la clé n'existe ni dans la source ni dans la cible fait échouer la feuille de cette locale. Une clé qui n'existe que dans la cible n'est pas écrite.
- Lignes inchangées (à partir de 0.13.0) : dans un fichier CSV, TSV ou xlsx, une ligne remplie égale à la valeur d'une clé à jour est laissée telle quelle et signalée comme inchangée, une fois qu'elle passe la même barrière.
Une ligne retenue ou vide garde sa référence de verrouillage, donc la clé est exportée à nouveau jusqu'à ce qu'elle soit résolue ; une ligne vide dont la source a dérivé déclenche en plus BLANK_. Une ligne illisible ou une clé en double est signalée sans faire échouer la feuille. Chaque feuille correspond à une locale dans le résumé de l'exécution, et l'import utilise les mêmes codes de sortie que translate, donc une remise s'intègre aux mêmes contrôles CI qu'une exécution automatisée. verbatra import donne les détails.
D'abord en dry run
Prévisualise ce qu'un classeur renvoyé écrirait, sans toucher à un fichier :
verbatra import verbatra-translations.xlsx --dry-runCSV et TSV plutôt qu'un classeur
Si un prestataire ou un pipeline veut du texte brut, --format csv ou --format tsv écrit les mêmes colonnes sous forme d'un fichier par locale :
# write handoff/de.csv and handoff/fr.csv
verbatra export --format csv --out handoff
# import every locale file in the directory back
verbatra import handoff --format csvLa locale vient du nom du fichier, donc garde les fichiers nommés comme à l'export. Par rapport au classeur :
- Rien n'est protégé. Chaque colonne est modifiable et
Source hashest visible. Un hash modifié n'est jamais pris pour argent comptant : la ligne est comparée à la source actuelle et retenue comme dérive. - Il n'y a pas de feuille Instructions. Transmets toi-même les règles ci-dessus au traducteur.
- Les formules sont désamorcées. Une valeur qui commence par
=,+,-,@, une tabulation ou un retour chariot est écrite avec une apostrophe en tête, pour qu'un tableur la garde comme texte ; l'import retire à nouveau l'apostrophe. Traite quand même un fichier renvoyé comme une entrée non fiable. - Un nouvel export plus étroit met à la retraite les anciens fichiers. Un fichier resté d'un export antérieur plus large est refusé à l'import au lieu d'être appliqué. Rien n'est supprimé.
XLIFF pour un outil de TAO
Si une agence travaille dans un outil de TAO comme Trados, memoQ ou OmegaT, exporte plutôt du XLIFF : voir Confier à une agence.
TMX, l'autre chemin
Une remise transporte les chaînes en attente de chaque locale vers une personne. verbatra tmx déplace toute la mémoire de traduction entre outils sous forme d'un seul fichier multilingue, ce n'est donc pas une valeur de export --format.
Choisir quoi exporter
Par défaut, l'export n'inclut que les chaînes manquantes et modifiées :
# Only the German and French sheets
verbatra export --locales de,fr
# Also include strings that are already up to date
verbatra export --include-unchanged
# Write to a specific path
verbatra export --out handoff/round-2.xlsxUtilise --include-unchanged quand un traducteur veut une locale entière pour le contexte. --out doit rester dans le projet et ne doit pas désigner un fichier dont le projet dépend. Voir verbatra export pour chaque option et chaque règle.
Les colonnes de relecture
Les deux colonnes sont calculées à l'export à partir de la source et des valeurs actuelles, donc une ligne sans traduction est toujours ok. Review reasons écrit chaque raison en minuscules avec des tirets (length-ratio-outlier), sauf les deux que seule une exécution peut voir (provider-degraded, fuzzy-cache-reuse), qui n'apparaissent jamais. Elle ajoute icu-arms avec les branches manquantes ou en trop quand les branches ICU d'une valeur ne conviennent pas à la langue cible ; la barrière d'intégrité refuse cette valeur, donc corrige-la avant le retour de la ligne. Pour effacer un signalement, corrige la traduction.
Depuis le SDK
Les deux commandes enveloppent exportWorkbook et importWorkbook :
import { exportWorkbook, importWorkbook, loadConfig } from "@verbatra/sdk";
const config = await loadConfig();
await exportWorkbook({ config, format: "csv", out: "handoff" });
const summary = await importWorkbook({ config, workbook: "handoff", format: "csv" });importWorkbook renvoie le même RunSummary que translate.
Voir aussi
verbatra exportetverbatra import: chaque option, les chemins de sortie et les codes de sortie.- Sûreté de la traduction : la barrière d'intégrité derrière chaque écriture.
- Travailler sans traduction automatique : un projet où chaque traduction vient d'une personne.