i18n.lock est un lockfile qui stocke les empreintes SHA-256 de votre contenu source. La CLI Lingo.dev compare ces empreintes à chaque exécution pour déterminer quelles chaînes sont nouvelles ou modifiées ; seules celles-ci passent dans le pipeline de traduction. Tout le reste est ignoré.
Structure#
Le lockfile utilise le format YAML :
version: 1
checksums:
a07974ea09011daa56f9df706530e442:
title: f8692d39317193acf0e2e47172703c46
description: g9703e40428204bdf1f3f58283814d57| Champ | Description |
|---|---|
version | Version du schéma du lockfile. |
checksums | Mapping des empreintes de contenu. Chaque entrée associe un hash de contenu source à un hash de clé. |
La structure à double hash (hash de contenu + hash de clé) permet la détection du renommage de clé : la CLI conserve les traductions existantes lorsqu’une clé est renommée, mais que son contenu reste identique.
workflow#
Première exécution — crée le lockfile avec les empreintes de tout le contenu source :
npx lingo.dev@latest run
# Creates i18n.lockExécutions suivantes — ne traduit que le delta :
npx lingo.dev@latest run
# Compares against i18n.lock, translates only changesRetraduction forcée — ignore le lockfile et retraduit tout :
npx lingo.dev@latest run --forceRecréer le lockfile — reconstruit le lockfile à partir de l’état actuel de vos fichiers source :
npx lingo.dev@latest lockfile --forceUtilisez lockfile --force pour réinitialiser le lockfile lors de la résolution des conflits de fusion. Vous pouvez l’exécuter sans risque à tout moment.
Vérification figée — échoue si du contenu doit être traduit (conçu pour la CI/CD) :
npx lingo.dev@latest run --frozenDéduplication#
Lors de la fusion de branches, le YAML du lockfile peut accumuler des entrées en double. La CLI déduplique automatiquement à chaque chargement : les clés dupliquées dans un même bloc de checksum sont résolues en conservant la dernière occurrence. Si des doublons sont supprimés, la CLI en consigne le nombre.
La déduplication s’exécute avec toutes les commandes qui lisent le lockfile : run, status, lockfile et d’autres.
Contrôle de version#
i18n.lock doit être validé dans votre dépôt avec vos fichiers de langue. C’est ce mécanisme qui rend la traduction incrémentielle possible ; sans lui, chaque exécution retraduirait l’intégralité du projet.
