|Labs
Agende uma demoPlataforma
React (Lingo Compiler)
Alpha
React (MCP)React (i18n)CLI legado (v0)
Descontinuado

Lingo.dev Compiler

  • Como funciona
  • Configuração
  • Primeiros passos com o Compiler

Frameworks

  • Integração com Next.js
  • Vite + React

Guias

  • Troca de idioma
  • Pluralização automática
  • Overrides manuais
  • Modos de build
  • Estrutura do Projeto
  • Provedores de tradução
  • Resolvedores personalizados de idioma
  • Ferramentas de desenvolvimento

Referência

  • Boas práticas
  • Referência de configuração
  • Solução de problemas
  • Guia de migração
  • Otimização
  • Formatos de saída

Modos de build

Alpha

O Compiler da Lingo.dev está em alpha. Ele é instável, não é recomendado para uso em produção e as APIs podem mudar entre releases.

O Compiler da Lingo.dev opera em dois modos de build que determinam se novas traduções serão geradas durante o build. Entender esses modos é essencial para configurar um pipeline confiável de desenvolvimento, CI e produção.

Os dois modos#

ModoComportamentoQuando usar
"translate"Gera traduções ausentes chamando o provedor de LLM configurado. Traduções em cache são reutilizadas.Desenvolvimento e CI — quando textos novos ou alterados precisam ser traduzidos.
"cache-only"Usa apenas as traduções de .lingo/metadata.json. Falha se alguma tradução estiver ausente.Builds de produção — saída determinística, sem chamadas externas de API.

Como o modo translate funciona#

No modo translate, o Compiler verifica cada string traduzível em relação a .lingo/metadata.json. Se já existir uma tradução em cache e o texto-fonte não tiver mudado, a versão em cache será usada. Se a string for nova ou tiver sido modificada, o Compiler chama o provedor de tradução configurado para gerar uma tradução e atualiza o cache.

ts
{
  buildMode: "translate",
}

Este é o modo padrão. Ele funciona tanto com o pseudotradutor (para traduções fictícias instantâneas) quanto com provedores reais de LLM.

Como o modo cache-only funciona#

No modo cache-only, o Compiler lê as traduções exclusivamente de .lingo/metadata.json. Nenhuma chamada à LLM é feita. Se qualquer string traduzível estiver ausente no cache, o build falhará com um erro listando as strings ausentes.

.lingo/metadata.json precisa ser commitado no controle de versão. Os builds de produção no modo cache-only dependem de esse arquivo estar presente no repositório — não apenas de ter sido gerado localmente.

ts
{
  buildMode: "cache-only",
}

Este modo produz builds determinísticos — o mesmo código-fonte e cache sempre geram a mesma saída. Ele também elimina dependências de APIs externas durante builds de produção.

workflow recomendado#

1

Desenvolvimento — pseudotradutor

Ative o pseudotradutor para ter feedback instantâneo, sem chamadas de API:

ts
{
  buildMode: "translate",
  dev: {
    usePseudotranslator: true,
  },
}

As pseudotraduções aparecem como [!!! Welcome !!!], facilitando identificar strings não traduzidas e testar o layout com diferentes comprimentos de texto.

2

CI — modo translate

Execute com buildMode: "translate" e um provedor real de LLM. O job de CI gera traduções para qualquer string nova ou alterada e faz commit do .lingo/metadata.json atualizado de volta no repositório.

bash
# CI environment
LINGO_BUILD_MODE=translate npm run build
3

Produção — modo cache-only

Faça o deploy com buildMode: "cache-only" para usar apenas traduções pré-geradas. Nenhuma chave de API é necessária no ambiente de produção.

bash
# Production environment
LINGO_BUILD_MODE=cache-only npm run build

Substituição por variável de ambiente#

A variável de ambiente LINGO_BUILD_MODE substitui a opção de configuração buildMode. Assim, você pode usar o mesmo arquivo de configuração em diferentes ambientes:

bash
# Override in any environment
LINGO_BUILD_MODE=cache-only npm run build

A variável de ambiente tem precedência sobre o valor definido no arquivo de configuração.

Exemplos de CI#

yaml
# .github/workflows/translate.yml
name: Generate Translations
on:
  push:
    branches: [main]

jobs:
  translate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: 20

      - run: npm ci

      - run: npm run build
        env:
          LINGO_BUILD_MODE: translate
          LINGODOTDEV_API_KEY: ${{ secrets.LINGODOTDEV_API_KEY }}

      - uses: stefanzweifel/git-auto-commit-action@v5
        with:
          commit_message: "chore: update translations"
          file_pattern: ".lingo/metadata.json"

Sempre faça commit de .lingo/metadata.json no controle de versão. Os builds de produção no modo cache-only dependem desse arquivo. Se ele estiver ausente ou incompleto, o build falhará.

Próximos passos#

Provedores de tradução
Configure provedores de LLM para o modo translate
Ferramentas de desenvolvimento
Pseudotradutor e servidor de tradução
Estrutura do projeto
O diretório .lingo/ e os metadados
Solução de problemas
Problemas comuns com modos de build

Esta página foi útil?

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