Projetos de grande escala

Max PrilutskiyCEO e cofundadorUpdated há 3 meses · 2 min read

As execuções de tradução decorrem no servidor, por isso a escala é sobretudo um problema do motor, não seu. lingo push submete o trabalho e o motor trata do resto — não tem de configurar pools de workers nem concorrência. O que controla é quanto envia de cada vez e como recupera.

Envie apenas o que mudou#

Por predefinição, lingo push faz o hash de cada origem face ao lockfile e submete apenas o que mudou. Num repositório de grande dimensão, esta é a via mais económica — um corpus inalterado não faz nada e nem sequer implica uma ida ao servidor. Deixe o delta fazer o trabalho; evite --force indiscriminados.

Delimite alterações de grande dimensão#

Quando precisar mesmo de voltar a traduzir, limite o âmbito a uma subárvore em vez do projeto inteiro:

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

Isto mantém uma execução grande controlada e previsível. Consulte Retradução.

Estime antes de grandes execuções#

Calcule o custo de uma execução grande antes de avançar:

bash
lingo push --backfill-missing --estimate

Mostra o custo estimado e termina. Útil antes de uma primeira tradução completa ou de uma mudança de modelo em muitos idiomas.

Não fique à espera da execução#

Em execuções grandes, não tem de ficar preso ao comando. push regista a execução no estado da execução, para que possa recolher os resultados mais tarde ou a partir de CI:

bash
# kick it off
lingo push --backfill-missing

# later, or in CI
lingo pull

Recupere em vez de recomeçar#

Se uma execução grande falhar a meio, não volte a enviar tudo — lingo resume volta a emitir resultados em cache sem voltar a gastar, e depois --backfill-missing preenche as lacunas que faltarem.

Automatize#

Para manter um projeto de grande dimensão sempre atualizado, deixe o CI traduzir após o merge e abrir um PR com os resultados. Consulte CI/CD.

Vem da CLI antiga?

A CLI antiga expunha controlos de concorrência do lado do cliente (pools de workers, flags de paralelização) porque traduzia na sua máquina. A CLI atual traduz no servidor, por isso esses controlos desapareceram — a escala é tratada por si. Delimitar o âmbito, preencher incrementalmente e retomar são agora as alavancas.