|
Documentação
Agende uma demoPlataforma
PlataformaMCPCLIAPIWorkflows
GuiasChangelog

Localização contínua

  • Como funciona
  • Configuração

Plataformas

  • GitHub App
  • GitHub Actions
  • GitLab CI/CD
  • Bitbucket Pipelines
  • Padrões avançados

Padrões avançados

Padrões avançados de localização em CI/CD — escolha de workflow, verificação da integridade das traduções e resolução de conflitos de merge.

Escolhendo um workflow#

Quatro padrões de workflow atendem à maioria das estruturas de equipe. Cada um traz trade-offs diferentes em automação, esforço de revisão e organização das branches.

WorkflowIdeal paraTrade-off
Commit na mainEquipes pequenas, atualizações sem atritoSem etapa de revisão para traduções
PR a partir da mainEquipes que querem revisar as traduçõesExige aprovação manual do PR
Commit na feature branchFeature branches de longa duraçãoCommits de tradução no histórico da branch
PR a partir da feature branchMáximo controle por funcionalidadeVários PRs por funcionalidade para gerenciar

Se estiver em dúvida, comece com "Commit na main". É o workflow mais simples e evita totalmente conflitos de merge, já que não há divergência entre branches.

Verificando a integridade das traduções#

A flag --frozen verifica se todo o conteúdo está traduzido sem gerar novas traduções. Ela retorna um código de status diferente de zero se houver qualquer conteúdo faltando:

bash
npx lingo.dev@latest run --frozen

Use isso como gate de deploy para evitar publicar conteúdo sem tradução.

yaml
name: Check translations
on: [push, pull_request]
jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: npx lingo.dev@latest run --frozen

Resolvendo conflitos de merge#

Conflitos de merge acontecem quando o arquivo i18n.lock diverge entre branches — normalmente quando as traduções são atualizadas de forma independente em branches diferentes.

Prevenção#

Fazer commit das traduções diretamente em main (em vez de usar feature branches para traduções) elimina por completo os conflitos no lockfile.

Resolução via merge#

1

Inicie o merge

bash
git merge <branch-name>
2

Exclua o lockfile em conflito

bash
rm i18n.lock
3

Conclua o merge

bash
git add .
git merge --continue
4

Regenere o lockfile

bash
npx lingo.dev@latest lockfile --force

Isso recria o lockfile com base no estado atual dos arquivos-fonte, sem acionar novas traduções.

Resolução via rebase#

A mesma abordagem funciona com rebase — exclua i18n.lock em cada etapa de conflito, continue o rebase e depois regenere o lockfile no final:

bash
git rebase <branch-name>
# On each conflict: rm i18n.lock && git add . && git rebase --continue
npx lingo.dev@latest lockfile --force

Próximos passos#

GitHub Actions
Configure a GitHub Action oficial
i18n.lock
Como o lockfile acompanha o estado das traduções
Como funciona
O pipeline de localização em CI/CD
Configuração
Configure o CI/CD do seu projeto

Esta página foi útil?

Max PrilutskiyMax Prilutskiy·Atualizado há 4 meses·2 min de leitura