i18n.lock es un lockfile que almacena huellas SHA-256 de tu contenido de origen. La CLI de Lingo.dev compara estas huellas en cada ejecución para determinar qué cadenas son nuevas o se han modificado; solo esas entran en el flujo de traducción. Todo lo demás se omite.
Estructura#
El lockfile utiliza formato YAML:
version: 1
checksums:
a07974ea09011daa56f9df706530e442:
title: f8692d39317193acf0e2e47172703c46
description: g9703e40428204bdf1f3f58283814d57| Campo | Descripción |
|---|---|
version | Versión del esquema del lockfile. |
checksums | Mapa de huellas de contenido. Cada entrada asocia un hash de contenido de origen a un hash de clave. |
La estructura de doble hash (hash de contenido + hash de clave) permite la detección de cambio de nombre de claves: la CLI conserva las traducciones existentes cuando se cambia el nombre de una clave, pero su contenido sigue siendo el mismo.
Flujo de trabajo#
Primera ejecución: crea el lockfile con las huellas de todo el contenido de origen:
npx lingo.dev@latest run
# Creates i18n.lockEjecuciones posteriores: traducen solo el delta:
npx lingo.dev@latest run
# Compares against i18n.lock, translates only changesForzar retraducción: omite el lockfile y vuelve a traducirlo todo:
npx lingo.dev@latest run --forceRecrear el lockfile: reconstruye el lockfile a partir del estado actual de tus archivos de origen:
npx lingo.dev@latest lockfile --forceUsa lockfile --force para restablecer el lockfile durante la resolución de conflictos de fusión. Puedes ejecutarlo con seguridad en cualquier momento.
Verificación congelada: falla si hay contenido que requiere traducción (pensada para CI/CD):
npx lingo.dev@latest run --frozenDesduplicación#
Al fusionar ramas, el YAML del lockfile puede acumular entradas duplicadas. La CLI las elimina automáticamente cada vez que lo carga: las claves duplicadas dentro del mismo bloque de checksum se resuelven conservando la última aparición. Si se eliminan duplicados, la CLI registra la cantidad.
La desduplicación se ejecuta en todos los comandos que leen el lockfile: run, status, lockfile y otros.
Control de versiones#
i18n.lock debe confirmarse en tu repositorio junto con tus archivos de idioma. Es el mecanismo que hace posible la traducción incremental; sin él, cada ejecución volvería a traducir todo el proyecto.
