|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

Referência de configuração

Alpha

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

O objeto de configuração do Lingo.dev Compiler define como sua aplicação React é traduzida durante o build. Esta página documenta todas as opções disponíveis, com tipos, valores padrão e exemplos de uso.

Opções principais#

OpçãoTipoPadrãoDescrição
sourceRootstring"src"Diretório que contém os componentes traduzíveis. Relativo à raiz do projeto.
lingoDirstring".lingo"Diretório para metadados de tradução e arquivos de cache.
sourceLocalestringobrigatórioCódigo do idioma do seu conteúdo de origem (por exemplo, "en").
targetLocalesstring[]obrigatórioArray com os códigos dos idiomas de destino (por exemplo, ["es", "de", "fr"]).
useDirectivebooleanfalseQuando true, apenas os arquivos com a diretiva 'use i18n' são traduzidos. Quando false, todos os arquivos em sourceRoot são traduzidos.
modelsstring | object"lingo.dev"Configuração do provedor de tradução. Uma string define o padrão para todos os pares de idioma. Um objeto mapeia pares de idioma para provedores específicos.
promptstringundefinedPrompt de sistema personalizado para o LLM de tradução. Compatível com os placeholders {SOURCE_LOCALE} e {TARGET_LOCALE}.
buildMode"translate" | "cache-only""translate"Controla se o Compiler gera novas traduções ou usa apenas as traduções em cache.

Opções de desenvolvimento#

As opções dentro da chave dev controlam o comportamento durante o desenvolvimento:

OpçãoTipoPadrãoDescrição
dev.usePseudotranslatorbooleanfalseGera traduções falsas instantâneas (por exemplo, [!!! Welcome !!!]) em vez de chamar um LLM. Não requer chave de API.
dev.translationServerStartPortnumber60000Porta inicial do servidor de tradução local. O Compiler encontra automaticamente uma porta disponível no intervalo de 60000 a 60099.
dev.translationServerUrlstringundefinedSubstitui a URL do servidor de tradução. Útil em configurações personalizadas ou com servidores de tradução remotos.

Persistência de idioma#

As opções em localePersistence controlam como o idioma selecionado pelo usuário é armazenado e recuperado:

OpçãoTipoPadrãoDescrição
localePersistence.typestring"cookie"Mecanismo de persistência. Atualmente, oferece suporte a "cookie".
localePersistence.config.namestring"locale"Nome do cookie usado para armazenar o idioma.
localePersistence.config.maxAgenumber31536000Tempo de vida máximo do cookie em segundos (o padrão é 1 ano).

Para uma lógica de persistência personalizada (localStorage, baseada em URL, headers), consulte Custom Locale Resolvers.

Pluralização#

As opções em pluralization controlam a detecção e a geração automáticas de formas no plural:

OpçãoTipoPadrãoDescrição
pluralization.enabledbooleantrueAtiva ou desativa a detecção automática de pluralização.
pluralization.modelstring"groq:llama-3.1-8b-instant"Modelo de LLM usado para detectar formas no plural no texto de origem. Recomenda-se um modelo menor e mais rápido, já que a detecção é uma tarefa mais simples do que a tradução.

Consulte Automatic Pluralization para entender em detalhes como funciona a detecção de plural.

Variáveis de ambiente#

As variáveis de ambiente substituem ou complementam a configuração:

VariávelQuando necessárioDescrição
LINGO_BUILD_MODEOpcionalSubstitui a opção de configuração buildMode. Defina como "translate" ou "cache-only".
LINGODOTDEV_API_KEYAo usar modelos "lingo.dev"Chave de API do engine de localização da Lingo.dev. Obtenha em npx lingo.dev@latest login.
OPENAI_API_KEYAo usar modelos "openai:*"Chave de API da OpenAI.
ANTHROPIC_API_KEYAo usar modelos "anthropic:*"Chave de API da Anthropic.
GOOGLE_API_KEYAo usar modelos "google:*"Chave de API do Google AI.
GROQ_API_KEYAo usar modelos "groq:*"Chave de API da Groq.
MISTRAL_API_KEYAo usar modelos "mistral:*"Chave de API da Mistral.
OPENROUTER_API_KEYAo usar modelos "openrouter:*"Chave de API da OpenRouter.

Exemplo completo#

ts
// next.config.ts
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",
    lingoDir: ".lingo",
    sourceLocale: "en",
    targetLocales: ["es", "de", "fr", "ja"],
    useDirective: false,
    models: {
      "*:*": "lingo.dev",
      "*:ja": "anthropic:claude-3-5-sonnet",
    },
    prompt: "Translate UI text from {SOURCE_LOCALE} to {TARGET_LOCALE}. Keep it concise.",
    buildMode: "translate",
    dev: {
      usePseudotranslator: true,
      translationServerStartPort: 60000,
    },
    localePersistence: {
      type: "cookie",
      config: {
        name: "locale",
        maxAge: 31536000,
      },
    },
    pluralization: {
      enabled: true,
      model: "groq:llama-3.1-8b-instant",
    },
  });
}

Próximos passos#

Provedores de tradução
Todos os provedores de LLM compatíveis e o mapeamento por par de idioma
Modos de build
Desenvolvimento, CI e workflows de produção
Custom Locale Resolvers
Implemente uma detecção de idioma personalizada
Boas práticas
Padrões recomendados para produção

Esta página foi útil?

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