A CLI do Lingo.dev deteta quando renomeias chaves de tradução e preserva automaticamente as traduções existentes. Se o nome da chave mudar, mas o conteúdo de origem se mantiver igual, a CLI aplica a tradução existente à nova chave — sem retradução.
Como funciona#
A CLI compara impressões digitais do conteúdo, não nomes de chaves. Quando encontra uma correspondência de impressão digital associada a uma chave diferente, a CLI reconhece-a 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 renomeares chaves no ficheiro 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 deteção#
A renomeação de chaves é detetada quando:
- O nome da chave muda
- O conteúdo de origem permanece idêntico
- A chave existe no mesmo bucket
A renomeação de chaves não é detetada quando:
- A chave e o conteúdo mudam em simultâneo (é tratada como uma nova chave)
- Apenas o conteúdo muda (é tratado como uma atualização de conteúdo, o que desencadeia retradução)
Refatoração em massa#
A deteção de renomeações funciona em qualquer escala. Podes reorganizar toda a estrutura das tuas chaves — de chaves simples a espaços de nomes aninhados — e a CLI reaproveita todas as traduções correspondentes numa única execução.
