|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

Pluralização automática

Alpha

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

O Lingo.dev Compiler detecta formas de plural no seu texto JSX e as converte automaticamente em ICU MessageFormat. Em vez de escrever manualmente regras de plural para cada idioma, basta escrever texto natural com valores numéricos, e o Compiler gera as formas corretas usando um LLM.

Como funciona#

1

O Compiler detecta padrões numéricos

Durante a análise da AST, o Compiler identifica nós de texto que contêm números interpolados ao lado de palavras que variam conforme a contagem. Por exemplo, You have {count} items contém uma variável numérica ao lado de uma palavra que muda de acordo com a quantidade.

2

O LLM classifica as formas de plural

Um LLM pequeno e rápido (configurável via pluralization.model) analisa o texto e determina quais palavras precisam de flexão de plural. Ele gera as categorias de plural do CLDR apropriadas para cada idioma de destino.

3

O ICU MessageFormat é gerado

O Compiler gera uma string em ICU MessageFormat que contempla todas as categorias de plural exigidas pelo idioma de destino.

Exemplo#

JSX de origem:

tsx
<p>You have {count} items in your cart</p>

Saída gerada para o inglês:

text
{count, plural, one {You have 1 item in your cart} other {You have # items in your cart}}

Saída gerada para o russo, que tem quatro categorias de plural:

text
{count, plural, one {У вас # товар в корзине} few {У вас # товара в корзине} many {У вас # товаров в корзине} other {У вас # товаров в корзине}}

Categorias de plural do CLDR#

Cada idioma usa um subconjunto diferente das seis categorias de plural do CLDR. O Compiler gera apenas as categorias exigidas por cada idioma de destino:

CategoriaDescriçãoIdiomas de exemplo
zeroQuantidade zeroÁrabe, letão
oneSingularInglês, francês, alemão, espanhol
twoDualÁrabe, hebraico, esloveno
fewPaucal / pequena quantidadeRusso, tcheco, polonês
manyGrande quantidadeRusso, árabe, polonês
otherGeral / padrão (sempre obrigatória)Todos os idiomas

O inglês usa one e other. O russo usa one, few, many e other. O árabe usa todas as seis categorias. O Compiler cuida disso automaticamente para cada idioma.

Configuração#

A pluralização vem ativada por padrão. Configure-a nas opções do Compiler:

ts
{
  pluralization: {
    enabled: true,
    model: "groq:llama-3.1-8b-instant",
  },
}
OpçãoTipoPadrãoDescrição
pluralization.enabledbooleantrueAtiva ou desativa a detecção automática de plural.
pluralization.modelstring"groq:llama-3.1-8b-instant"Modelo de LLM para detectar formas de plural. Um modelo menor é suficiente, já que essa detecção é mais simples do que a tradução.

Para desativar totalmente a pluralização:

ts
{
  pluralization: {
    enabled: false,
  },
}

Ao desativar a pluralização, o Compiler traduz textos com números como strings simples. Nesse caso, a saída traduzida pode não ficar gramaticalmente correta para todas as quantidades em idiomas com regras de plural mais complexas.

Quando a pluralização se aplica#

O Compiler detecta padrões de plural nestes casos:

  • Texto com variáveis numéricas interpoladas: {count} items, {n} messages
  • Texto com literais numéricos: You have 5 items (menos comum em UIs dinâmicas)

O Compiler não pluraliza:

  • Texto sem referência numérica: Items in cart (sem número para definir a variação)
  • Texto em que o número não está diretamente relacionado a uma palavra que depende da contagem

Escreva texto natural no seu JSX. O Compiler e seu LLM cuidam da detecção de plural e da formatação em ICU — você não precisa aprender a sintaxe do ICU MessageFormat.

Próximos passos#

Referência de configuração
Todas as opções de pluralização
Provedores de tradução
Configure o LLM usado na tradução
Sobrescritas manuais
Substitua traduções específicas quando necessário
Boas práticas
Quando ativar ou desativar a pluralização

Esta página foi útil?

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