A CLI da Lingo.dev detecta quando você renomeia chaves de tradução e preserva automaticamente as traduções existentes. Se o nome da chave mudar, mas o conteúdo de origem continuar o mesmo, a CLI aplica a tradução existente à nova chave — sem retradução.
Como funciona#
A CLI compara fingerprints do conteúdo, não os nomes das chaves. Quando encontra um fingerprint correspondente em uma chave diferente, a CLI identifica isso como uma renomeação.
// locales/en.json (before refactoring)
{
"welcome_msg": "Welcome to our platform",
"btn_save": "Save"
}
// locales/es.json (existing translations)
{
"welcome_msg": "Bienvenido a nuestra plataforma",
"btn_save": "Guardar"
}Depois de renomear as chaves no arquivo de origem:
// locales/en.json (after refactoring)
{
"homepage.welcome": "Welcome to our platform",
"button.save": "Save"
}Ao executar npx lingo.dev@latest run, as traduções são preservadas:
// locales/es.json (translations carried forward)
{
"homepage.welcome": "Bienvenido a nuestra plataforma",
"button.save": "Guardar"
}Regras de detecção#
A renomeação da chave é detectada quando:
- O nome da chave muda
- O conteúdo de origem permanece idêntico
- A chave existe no mesmo bucket
A renomeação da chave não é detectada quando:
- A chave e o conteúdo mudam ao mesmo tempo (é tratado como uma nova chave)
- Apenas o conteúdo muda (é tratado como uma atualização de conteúdo e dispara retradução)
Refatoração em massa#
A detecção de renomeação funciona em qualquer escala. Você pode reorganizar toda a estrutura das suas chaves — de chaves simples a namespaces aninhados — e a CLI reaproveita todas as traduções correspondentes em uma única execução.
