i18n.lock es un lockfile que almacena huellas digitales SHA-256 de tu contenido de origen. La CLI de Lingo.dev compara estas huellas en cada ejecución para identificar qué cadenas son nuevas o fueron modificadas; solo esas entran en el flujo de traducción. Todo lo demás se omite.
Estructura#
El lockfile usa formato YAML:
version: 1
checksums:
a07974ea09011daa56f9df706530e442:
title: f8692d39317193acf0e2e47172703c46
description: g9703e40428204bdf1f3f58283814d57| Campo | Descripción |
|---|---|
version | Versión del esquema del lockfile. |
checksums | Mapa de huellas digitales del contenido. Cada entrada asigna un hash del contenido de origen a un hash de clave. |
La estructura de hash doble (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 huellas digitales 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 traducir todo:
npx lingo.dev@latest run --forceRecrear 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 merge. Es seguro ejecutarlo en cualquier momento.
Verificación congelada: falla si algún contenido requiere traducción (diseñada para CI/CD):
npx lingo.dev@latest run --frozenDeduplicación#
Al fusionar ramas, el YAML del lockfile puede acumular entradas duplicadas. La CLI las deduplica 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 cuántos había.
La deduplicació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.
