i18n.lock é um lockfile que armazena impressões digitais SHA-256 do conteúdo de origem. Em cada execução, a CLI do Lingo.dev compara essas impressões digitais para identificar que strings são novas ou foram alteradas — só essas seguem para o pipeline de tradução. Tudo o resto é ignorado.
Estrutura#
O lockfile usa o formato YAML:
version: 1
checksums:
a07974ea09011daa56f9df706530e442:
title: f8692d39317193acf0e2e47172703c46
description: g9703e40428204bdf1f3f58283814d57| Campo | Descrição |
|---|---|
version | Versão do esquema do lockfile. |
checksums | Mapa das impressões digitais do conteúdo. Cada entrada associa um hash do conteúdo de origem a um hash de chave. |
A estrutura de hash duplo (hash do conteúdo + hash da chave) permite a deteção de renomeação de chaves — a CLI preserva as traduções existentes quando uma chave é renomeada, mas o conteúdo se mantém igual.
workflow#
Primeira execução — cria o lockfile com as impressões digitais de todo o conteúdo de origem:
npx lingo.dev@latest run
# Creates i18n.lockExecuções seguintes — traduzem apenas o delta:
npx lingo.dev@latest run
# Compares against i18n.lock, translates only changesForçar retradução — ignora o lockfile e retraduz tudo:
npx lingo.dev@latest run --forceRecriar o lockfile — reconstrói o lockfile a partir do estado atual dos ficheiros de origem:
npx lingo.dev@latest lockfile --forceUse lockfile --force para repor o lockfile durante a resolução de conflitos de merge. Pode executá-lo em segurança em qualquer altura.
Verificação congelada — falha se algum conteúdo precisar de tradução (concebida para CI/CD):
npx lingo.dev@latest run --frozenDesduplicação#
Ao fazer merge de branches, o YAML do lockfile pode acumular entradas duplicadas. A CLI faz a desduplicação automaticamente em cada carregamento — as chaves duplicadas no mesmo bloco de checksum são resolvidas ao manter a última ocorrência. Se forem removidos duplicados, a CLI regista a respetiva contagem.
A desduplicação é executada em todos os comandos que leem o lockfile: run, status, lockfile e outros.
Controlo de versões#
i18n.lock tem de ser incluído em commit no seu repositório, juntamente com os ficheiros de idioma. É este mecanismo que torna possível a tradução incremental — sem ele, cada execução retraduziria o projeto inteiro.
