Renomeação de chaves

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

Descontinuado

Esta documentação abrange a CLI antiga (v0). A versão atual da CLI é a v1. Ver a documentação atual da CLI

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.

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 renomeares chaves no ficheiro 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 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.

Passos seguintes#