Renomeação de chaves

Max PrilutskiyCEO e cofundadorAtualizado em: há 3 meses · 1 min de leitura

Obsoleto

Esta documentação cobre o CLI legado (v0). O CLI atual é o v1. Veja a documentação atual da CLI

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.

json
// 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:

json
// 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:

json
// 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.

Próximos passos#