Retradução

Max PrilutskiyCEO e cofundadorAtualizado em: há 27 dias · 3 min de leitura

lingo push traduz apenas o que mudou: ele gera um hash de cada texto-fonte com base no lockfile e ignora tudo o que corresponder. Esse é o padrão ideal, mas às vezes você precisa retraduzir um conteúdo cujo texto-fonte é idêntico — depois de trocar o modelo do engine, atualizar as regras ou o glossário, ou corrigir um problema de qualidade.

Há três formas de fazer isso, e o custo varia entre elas: --key para strings individuais, um push com --force para arquivos inteiros, ou purge seguido de um push normal para um idioma inteiro. Prefira a opção mais específica que cubra o que você quer refazer.

Retraduza chaves específicas#

--key retraduz apenas as chaves que você informar, mescla o resultado à tradução existente e mantém todas as outras chaves byte a byte idênticas. Ele ignora o diff da fonte, então mesmo uma string cujo inglês nunca mudou ainda é refeita.

bash
lingo push --key auth.login

Repita a flag para várias chaves:

bash
lingo push --key auth.login --key billing.plan

Um padrão pode corresponder exatamente a uma chave, a um prefixo que termina em um limite de ., /, - ou [, ou a um glob. Assim, auth.login também corresponde a auth.login.title, mas nunca a auth.login_url; já auth, sem nada mais, corresponde à subárvore inteira de auth, mas nunca a authority. Coloque os globs entre aspas, ou o seu shell os expande antes que a CLI os veja:

bash
lingo push --key "auth.*"

Esta é, de longe, a opção mais econômica: você paga apenas pelas chaves que indicou, sem nenhum custo a mais. Ela precisa de uma tradução existente para fazer a mesclagem, então um idioma que você ainda não traduziu será ignorado, com uma mensagem direcionando para --backfill-missing. Alguns formatos simplesmente não aceitam escopo por chave — Formats mostra quais são e o motivo.

Veja lingo push para entender o comportamento completo, inclusive o que acontece com as chaves que você não informou.

Forçar um push com escopo#

--force retraduz todos os destinos correspondentes, ignorando as traduções existentes e o cache no servidor. Defina um escopo, a menos que você realmente queira o projeto inteiro — lingo push --force sozinho cobre todos os padrões configurados, e só o prompt de confirmação fica no caminho.

Um arquivo#

bash
lingo push content/en/landing.mdx --force

Uma subárvore#

bash
lingo push 'content/en/**/*.md' --force

Tudo#

bash
lingo push --backfill-missing --force --yes

--force pede confirmação antes de sobrescrever; use --yes para pular essa etapa (CI). Consulte lingo push para ver a referência completa de flags.

Retraduzir um único idioma#

push não tem uma flag por idioma. Para refazer apenas um idioma, exclua os arquivos dele e faça um backfill:

bash
lingo purge --locale fr
lingo push --backfill-missing

purge remove os destinos de fr; em seguida, --backfill-missing regenera apenas o que estiver faltando — os outros idiomas permanecem intocados. Isso também sai mais barato do que --force, porque tudo, exceto fr, continua sendo um acerto de cache. Consulte Purge.

Estime antes de gastar#

Qualquer push aceita --estimate, que estima o custo da execução e sai sem traduzir:

bash
lingo push 'content/en/**/*.md' --force --estimate

Isso também funciona com --key, então você pode calcular o custo de um escopo de chave antes de executá-lo:

bash
lingo push --key auth.login --estimate

As estimativas são heurísticas, não uma cotação — o custo final pode variar.

Quando retraduzir#

SituaçãoO que executar
O texto-fonte mudouNada — um lingo push normal já resolve
Algumas strings de que você não gostoulingo push --key auth.login --key billing.plan
Troca no modelo do enginelingo push <scope> --force
Regras / glossário atualizadoslingo push --key <affected keys> ou lingo push <scope> --force
Qualidade ruim em um idiomalingo purge --locale <code> e depois lingo push --backfill-missing
Recomeçando do zerolingo push --backfill-missing --force --yes