Retraduction

Mis à jour le : il y a 2 mois · 3 min de lecture

lingo push ne traduit que ce qui a changé : il compare le hachage de chaque source à celui du fichier de verrouillage et ignore tout ce qui correspond. C’est le comportement par défaut idéal, mais il peut arriver que vous souhaitiez retraduire un contenu dont le texte source est identique — après avoir changé le modèle du moteur, mis à jour ses règles ou son glossaire, ou corrigé un problème de qualité.

Il existe trois façons de le faire, avec des coûts différents : --key pour des chaînes individuelles, un push --force ciblé pour des fichiers entiers, ou purge suivi d’un push classique pour une langue entière. Privilégiez l’option la plus précise qui couvre ce que vous voulez retraduire.

Retraduire des clés spécifiques#

--key retraduit uniquement les clés que vous indiquez, les fusionne à la traduction existante et laisse toutes les autres clés strictement identiques, octet pour octet. Il ignore les différences dans la source : même si une chaîne en anglais n’a jamais changé, elle sera quand même retraduite.

bash
lingo push --key auth.login

Répétez le flag pour plusieurs clés :

bash
lingo push --key auth.login --key billing.plan

Un motif peut correspondre à une clé exacte, à un préfixe se terminant sur une frontière ., /, - ou [, ou à un glob. Ainsi, auth.login correspond aussi à auth.login.title, mais jamais à auth.login_url ; un simple auth correspond à tout le sous-arbre auth, mais jamais à authority. Mettez les globs entre guillemets, sinon votre shell les développera avant que le CLI ne les voie :

bash
lingo push --key "auth.*"

C’est de loin l’option la plus économique : vous ne payez que les clés que vous avez indiquées, et rien de plus. Elle nécessite une traduction existante dans laquelle fusionner ; une langue que vous n’avez encore jamais traduite sera donc ignorée, avec un message renvoyant vers --backfill-missing. Certains formats ne prennent tout simplement pas en charge une portée de clés — la liste des formats indique lesquels, et pourquoi.

Consultez lingo push pour le fonctionnement complet, y compris le sort réservé aux clés que vous n’avez pas indiquées.

Forcer un push ciblé#

--force retraduit chaque cible correspondante, sans tenir compte des traductions existantes ni du cache côté serveur. Limitez sa portée, sauf si vous visez réellement l’ensemble du projet : un simple lingo push --force couvre tous les motifs configurés, et seule l’invite de confirmation vous en sépare.

Un fichier#

bash
lingo push content/en/landing.mdx --force

Un sous-arbre#

bash
lingo push 'content/en/**/*.md' --force

Tout#

bash
lingo push --backfill-missing --force --yes

--force demande une confirmation avant d’écraser ; ajoutez --yes pour ignorer cette étape (CI). Voir lingo push pour la Référence complète des options.

Retraduire une seule langue#

push n’a pas d’option par langue. Pour ne régénérer qu’une seule langue, supprimez ses fichiers puis relancez le remplissage des manquants :

bash
lingo purge --locale fr
lingo push --backfill-missing

purge supprime les cibles fr ; --backfill-missing régénère ensuite uniquement ce qui manque — les autres langues restent inchangées. C’est aussi plus économique que --force, car tout sauf fr reste servi par le cache. Voir Purge.

Estimer avant de dépenser#

Toute commande push accepte --estimate, qui estime le coût de l’exécution puis s’arrête sans traduire :

bash
lingo push 'content/en/**/*.md' --force --estimate

Cette option se combine aussi avec --key : vous pouvez donc estimer le coût d’une portée de clés avant de l’exécuter :

bash
lingo push --key auth.login --estimate

Les estimations sont heuristiques, pas contractuelles — le coût final peut varier.

Quand retraduire#

SituationCommande à lancer
Le texte source a changéRien — un simple lingo push s’en charge
Quelques chaînes qui ne vous conviennent paslingo push --key auth.login --key billing.plan
Le modèle du moteur a changélingo push <scope> --force
Règles / glossaire mis à jourlingo push --key <affected keys>, ou lingo push <scope> --force
Qualité insuffisante dans une languelingo purge --locale <code> puis lingo push --backfill-missing
Repartir entièrement de zérolingo push --backfill-missing --force --yes