i18n.lock é um lockfile que armazena impressões digitais SHA-256 do seu conteúdo de origem. A CLI do Lingo.dev compara essas impressões digitais em cada execução para identificar quais strings são novas ou foram alteradas — só elas entram no pipeline de tradução. Todo 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 detecção de renomeação de chaves — a CLI preserva as traduções existentes quando uma chave é renomeada, mas o conteúdo continua o mesmo.
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 lockfile — recria o lockfile com base no estado atual dos seus arquivos de origem:
npx lingo.dev@latest lockfile --forceUse lockfile --force para resetar o lockfile durante a resolução de conflitos de merge. É seguro executar esse comando a qualquer momento.
Verificação congelada — falha se algum conteúdo precisar de tradução (feita para CI/CD):
npx lingo.dev@latest run --frozenDeduplicação#
Ao mesclar branches, o YAML do lockfile pode acumular entradas duplicadas. A CLI faz a deduplicação automaticamente sempre que o arquivo é carregado — chaves duplicadas sob o mesmo bloco de checksum são resolvidas mantendo a última ocorrência. Se duplicatas forem removidas, a CLI registra a contagem.
A deduplicação é executada em todos os comandos que leem o lockfile: run, status, lockfile e outros.
Controle de versão#
i18n.lock deve ser commitado no seu repositório junto com os arquivos de idioma. É esse mecanismo que torna a tradução incremental possível — sem ele, cada execução retraduziria o projeto inteiro.
