|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

Guia de migração

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 versões.

Este guia mostra como migrar do pacote anterior do Compiler lingo.dev para o pacote atual @lingo.dev/compiler. O novo pacote traz um nome npm com escopo, API simplificada, integração com Vite baseada em plugin e um novo diretório .lingo/ para metadados.

Resumo das mudanças#

ÁreaAntes (lingo.dev)Depois (@lingo.dev/compiler)
Nome do pacotelingo.dev@lingo.dev/compiler
Integração com Next.jsAlteração direta da configuraçãoWrapper assíncrono withLingo()
Integração com ViteConfiguração manuallingoCompilerPlugin
LingoProviderProp loadDictionary obrigatóriaNenhuma prop necessária
Diretório de metadadoslingo/.lingo/
Diretiva de ativação'use i18n' obrigatóriaOpcional (padrão: traduzir tudo)
Importsfrom "lingo.dev/react"from "@lingo.dev/compiler/react"

Migração passo a passo#

1

Substitua o pacote

Remova o pacote antigo e instale o novo:

bash
npm uninstall lingo.dev
npm install @lingo.dev/compiler
2

Atualize os imports

Substitua todos os caminhos de import:

ts
// Before
import { LingoProvider, useLingoContext } from "lingo.dev/react";

// After
import { LingoProvider, useLingoContext } from "@lingo.dev/compiler/react";
3

Atualize a configuração do Next.js (se aplicável)

A configuração do Next.js agora precisa ser uma função assíncrona:

ts
// Before
import { withLingo } from "lingo.dev/next";
const nextConfig = {};
export default withLingo(nextConfig, { /* options */ });

// After
import type { NextConfig } from "next";
import { withLingo } from "@lingo.dev/compiler/next";

const nextConfig: NextConfig = {};

export default async function (): Promise<NextConfig> {
  return await withLingo(nextConfig, {
    sourceRoot: "./app",
    sourceLocale: "en",
    targetLocales: ["es", "de", "fr"],
    models: "lingo.dev",
  });
}

O wrapper de função assíncrona é obrigatório. Uma exportação síncrona fará o build falhar. Consulte Integração com Next.js para mais detalhes.

4

Atualize a configuração do Vite (se aplicável)

Substitua qualquer configuração manual por lingoCompilerPlugin:

ts
// vite.config.ts
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import { lingoCompilerPlugin } from "@lingo.dev/compiler/vite";

export default defineConfig({
  plugins: [
    lingoCompilerPlugin({
      sourceRoot: "src",
      sourceLocale: "en",
      targetLocales: ["es", "de", "fr"],
      models: "lingo.dev",
    }),
    react(), // Must come AFTER lingoCompilerPlugin
  ],
});
5

Simplifique o LingoProvider

A prop loadDictionary não é mais necessária. O Compiler cuida do carregamento do dicionário automaticamente:

tsx
// Before
import { LingoProvider } from "lingo.dev/react";

<LingoProvider loadDictionary={loadDictionary}>
  <App />
</LingoProvider>

// After
import { LingoProvider } from "@lingo.dev/compiler/react";

<LingoProvider>
  <App />
</LingoProvider>
6

Mova o diretório de metadados

Renomeie o diretório de metadados de lingo/ para .lingo/:

bash
mv lingo/ .lingo/

Atualize seu .gitignore se ele fizer referência ao nome antigo do diretório. O diretório .lingo/ deve ser commitado no controle de versão.

7

Atualize as diretivas 'use i18n' (opcional)

No novo pacote, 'use i18n' é opcional. Por padrão, todos os arquivos em sourceRoot são traduzidos. Se você quiser manter o comportamento de ativação manual, defina useDirective: true na sua configuração:

ts
{
  useDirective: true, // Keep requiring 'use i18n' in each file
}

Se você remover useDirective (ou defini-lo como false), também poderá remover as diretivas 'use i18n' dos seus arquivos — todos os arquivos em sourceRoot serão traduzidos automaticamente.

8

Recompile e verifique

Execute o servidor de desenvolvimento e confirme se as traduções aparecem:

bash
npm run dev

Verifique se:

  • O pseudotradutor gera marcadores [!!! ... !!!] (se estiver ativado)
  • Todas as strings traduzidas anteriormente continuam funcionando
  • O arquivo .lingo/metadata.json é criado ou atualizado

Próximos passos#

Configuração
Guia completo de configuração
Referência de configuração
Todas as novas opções de configuração
Integração com Next.js
Detalhes da migração específicos do Next.js
Vite + React
Detalhes da migração específicos do Vite

Esta página foi útil?

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