Retradução

Max PrilutskiyCEO e cofundadorUpdated há 19 dias · 3 min read

lingo push traduz apenas o que mudou: gera um hash de cada texto de origem com base no lockfile e ignora tudo o que coincidir. Este é o comportamento predefinido certo, mas, por vezes, pode querer retraduzir conteúdo cujo texto de origem é exatamente o mesmo — depois de mudar o modelo do motor, atualizar as respetivas regras ou glossário, ou corrigir um problema de qualidade.

Há três formas de o fazer, e a diferença está no que paga: --key para strings individuais, um push com --force para ficheiros completos, ou purge seguido de um push normal para um idioma completo. Opte pela mais específica que cubra o que quer refazer.

Retraduzir chaves específicas#

--key retraduz apenas as chaves que indicar, integra-as na tradução existente e deixa todas as outras chaves exatamente iguais, byte por byte. Ignora o diff da origem, por isso até uma string cujo inglês nunca mudou volta a ser feita.

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 num limite ., /, - ou [, ou a um glob. Por isso, auth.login também corresponde a auth.login.title, mas nunca a auth.login_url; auth, sem mais, corresponde a toda a subárvore auth, mas nunca a authority. Ponha os globs entre aspas, ou a sua shell expande-os antes de a CLI os ver:

bash
lingo push --key "auth.*"

Esta é, de longe, a opção mais económica — paga apenas pelas chaves que indicou, e por nada mais. Requer uma tradução existente na qual possa ser incorporada, por isso qualquer idioma que nunca tenha traduzido é ignorado, com uma mensagem a encaminhar para --backfill-missing. Alguns formatos não permitem, de todo, um âmbito de chaves — Formats indica quais e porquê.

Consulte lingo push para ver o comportamento completo, incluindo o que acontece às chaves que não indicou.

Forçar um push com âmbito limitado#

--force retraduz todos os destinos correspondentes, ignorando as traduções existentes e a cache do servidor. Defina um âmbito, a menos que queira mesmo abranger o projeto inteiro — lingo push --force, sem mais, cobre todos os padrões configurados, e só o pedido de confirmação se interpõe.

Um ficheiro#

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 substituir; use --yes para ignorar a confirmação (CI). Consulte lingo push para a referência completa das flags.

Retraduzir um único idioma#

push não tem nenhuma flag por idioma. Para refazer apenas um idioma, elimine os respetivos ficheiros e faça backfill:

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

purge remove os destinos de fr; depois, --backfill-missing regenera apenas o que falta — os outros idiomas não são afetados. Isto também fica mais barato do que --force, porque tudo, exceto fr, continua a ser um acerto de cache. Consulte Purge.

Estimar 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

Também se conjuga com --key, para que possa calcular o preço de um âmbito de chave antes de o executar:

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

As estimativas são heurísticas, não um orçamento — o custo final pode ser diferente.

Quando retraduzir#

SituaçãoO que executar
O texto de origem mudouNada — um lingo push normal trata disso
Algumas strings com que não ficou satisfeitolingo push --key auth.login --key billing.plan
Mudou o modelo do motorlingo push <scope> --force
Regras / glossário atualizadoslingo push --key <affected keys>, ou lingo push <scope> --force
Fraca qualidade num idiomalingo purge --locale <code> e depois lingo push --backfill-missing
Começar completamente do zerolingo push --backfill-missing --force --yes