O comando run processa tarefas de tradução em simultâneo, distribuindo-as por um conjunto de workers. Cada combinação de idioma/ficheiro torna-se uma tarefa independente, e os workers tratam-nas em paralelo.
consumo#
# Default concurrency (10 workers)
npx lingo.dev@latest run
# Custom concurrency
npx lingo.dev@latest run --concurrency 20Como funciona#
- Criação de tarefas — a CLI analisa o seu
i18n.jsone cria tarefas individuais para cada combinação de idioma/ficheiro - Distribuição pelos workers — as tarefas são atribuídas aos workers disponíveis com balanceamento de carga
- Processamento em simultâneo — os workers traduzem em paralelo, enquanto os bloqueios do sistema de ficheiros evitam conflitos de escrita
- Agregação de resultados — as traduções concluídas são escritas com segurança nos ficheiros de destino
Opções de segmentação#
Todas as opções de segmentação do comando run funcionam com o processamento paralelo:
| Opção | Descrição |
|---|---|
--target-locale es | Processar idiomas de destino específicos |
--source-locale en | Substituir o idioma de origem |
--bucket json | Processar tipos de bucket específicos |
--file components/header | Processar ficheiros específicos (suporta padrões glob) |
--key welcome.title | Processar chaves específicas (suporta padrões glob) |
--force | Ignorar o ficheiro de bloqueio e retraduzir tudo |
--frozen | Falhar se existir conteúdo por traduzir |
--concurrency 20 | Definir o número de workers em simultâneo |
Cache automática#
Ao utilizar a API do Lingo.dev, ficheiros de idioma de grande dimensão são divididos em blocos. Os ficheiros de destino são preenchidos de forma incremental à medida que cada bloco regressa da API. Se o processo for interrompido, a execução seguinte retoma a partir do ponto onde ficou.
Para retraduzir, utilize primeiro purge e depois run sem --force. Isto tira partido do mecanismo de cache integrado para um processamento mais eficiente do que run --force.
Segurança#
O conjunto de workers evita a corrupção de ficheiros através de:
- Sincronização de I/O — as operações do sistema de ficheiros são serializadas por ficheiro
- Proteção do ficheiro de bloqueio — operações atómicas evitam a corrupção simultânea de
i18n.lock - Processamento transacional — cada tarefa é concluída na totalidade ou falha de forma controlada
