|Labs
Marcar uma demonstraçãoPlataforma
React (Lingo Compiler)
Alpha
React (MCP)React (i18n)CLI antiga (v0)
Descontinuado

Lingo.dev Compiler

  • Como funciona
  • Configuração
  • Introdução rápida ao Compiler

Frameworks

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

Guias

  • Alternância de idioma
  • Pluralização automática
  • Substituições manuais
  • Modos de build
  • Estrutura do Projeto
  • Fornecedores de Tradução
  • Resolvers personalizados de idioma
  • Ferramentas de desenvolvimento

Referência

  • Boas práticas
  • Referência de Configuração
  • Resolução de problemas
  • Guia de migração
  • Otimização
  • Formatos de Saída

Referência de Configuração

Alfa

O Compiler da Lingo.dev está em alfa. É instável, não é recomendado para utilização em produção e as APIs podem mudar entre versões.

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

Opções principais#

OpçãoTipoPredefinidoDescriçã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 ficheiros de cache.
sourceLocalestringobrigatórioCódigo do idioma do seu conteúdo de origem (por exemplo, "en").
targetLocalesstring[]obrigatórioArray de códigos dos idiomas de destino (por exemplo, ["es", "de", "fr"]).
useDirectivebooleanfalseQuando true, só são traduzidos os ficheiros com a diretiva 'use i18n'. Quando false, são traduzidos todos os ficheiros em sourceRoot.
modelsstring | object"lingo.dev"Configuração do fornecedor de tradução. Uma string define o valor predefinido para todos os pares de idiomas. Um objeto mapeia pares de idiomas para fornecedores específicos.
promptstringundefinedPrompt de sistema personalizado para o LLM de tradução. Suporta os marcadores {SOURCE_LOCALE} e {TARGET_LOCALE}.
buildMode"translate" | "cache-only""translate"Controla se o Compiler gera novas traduções ou se usa apenas traduções em cache.

Opções de desenvolvimento#

As opções na chave dev controlam o comportamento em desenvolvimento:

OpçãoTipoPredefinidoDescrição
dev.usePseudotranslatorbooleanfalseGera instantaneamente traduções fictícias (por exemplo, [!!! Welcome !!!]) em vez de chamar um LLM. Não é necessária nenhuma chave de API.
dev.translationServerStartPortnumber60000Porta inicial para o servidor local de tradução. O Compiler encontra automaticamente uma porta disponível no intervalo 60000-60099.
dev.translationServerUrlstringundefinedSubstitui o URL do servidor de tradução. Útil para configurações personalizadas ou servidores de tradução remotos.

Persistência do idioma#

As opções em localePersistence controlam a forma como o idioma selecionado pelo utilizador é armazenado e recuperado:

OpçãoTipoPredefinidoDescrição
localePersistence.typestring"cookie"Mecanismo de persistência. Atualmente, suporta "cookie".
localePersistence.config.namestring"locale"Nome do cookie usado para guardar o idioma.
localePersistence.config.maxAgenumber31536000Tempo de vida máximo do cookie, em segundos (o valor predefinido é 1 ano).

Para lógica de persistência personalizada (localStorage, baseada em URL, headers), consulte Resolvedores de Idioma Personalizados.

Pluralização#

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

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

Consulte Pluralização Automática para saber mais sobre o funcionamento da deteção de plural.

Variáveis de ambiente#

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

VariávelQuando é obrigatóriaDescrição
LINGO_BUILD_MODEOpcionalSubstitui a opção de configuração buildMode. Defina-a como "translate" ou "cache-only".
LINGODOTDEV_API_KEYAo usar modelos "lingo.dev"Chave de API para o motor de localização da Lingo.dev. Obtenha-a 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#

Fornecedores de Tradução
Todos os fornecedores de LLM suportados e o mapeamento por pares de idiomas
Modos de Build
Workflows de desenvolvimento, CI e produção
Resolvedores de Idioma Personalizados
Implemente a deteção personalizada de idioma
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