Gerador de plurais ICU para arquivos ARB do Flutter

Escolha seus idiomas: a ferramenta mostra as categorias de plural que cada um exige, com números de exemplo, e gera a mensagem ICU pronta para colar nos seus arquivos ARB. Grátis, sem cadastro, e tudo fica no seu navegador.

Gere uma mensagem plural

Idiomas

Depois, confira se cada tradução mantém o placeholder

O LocalePilot é um app desktop que abre todos os seus arquivos ARB, compara os placeholders ICU de cada tradução com os da origem, sinaliza chaves ausentes e exporta com backup. Ele está em fase final para macOS: deixe seu e-mail para saber do lançamento.

Por que o plural muda de um idioma para outro

As categorias zero, one, two, few, many e other seguem as regras CLDR de cada idioma. Em inglês, one significa só 1; em português do Brasil e em francês, cobre 0 e 1; russo e polonês acrescentam few e many; o árabe usa as seis; o japonês tem uma só, other. Uma mensagem de dois ramos escrita para o inglês fica, portanto, incompleta assim que você a traduz.

A ferramenta lê essas regras no seu navegador (Intl.PluralRules): as categorias e os números de exemplo exibidos são os do próprio idioma, sem tabela para manter.

A armadilha do =1 com o gen-l10n

Um ramo =1 vira a categoria one no código gerado pelo flutter gen-l10n. Em português, essa categoria também se aplica ao zero: com count = 0, apareceria "1 item restante". Prefira a categoria one com o número no texto, ou adicione um ramo =0: a ferramenta oferece essa opção em uma caixa de seleção. Detalhes no guia sobre plurais e placeholders ICU.

Como usar o resultado

  1. Copie a linha "key": "{count, plural, …}" de cada idioma no arquivo app_xx.arb correspondente.
  2. Adicione os metadados @key uma única vez, no arquivo template.
  3. Rode o flutter gen-l10n: um ramo other ausente ou uma chave não fechada interrompe a geração com o nome do arquivo.

Para depois conferir se nenhuma tradução perdeu ou renomeou o placeholder, use o verificador de chaves ausentes em ARB.

Limitações da ferramenta

A ferramenta gera a estrutura, não a tradução: você escreve o texto de cada forma. Ela não trata mensagens select nem plurais aninhados, e não duplica os apóstrofos se você ativou use-escaping no l10n.yaml.

Perguntas frequentes

Quais categorias de plural preciso para o português do Brasil?

Na prática, one (0 e 1) e other. A categoria many do português só se aplica aos milhões: a ferramenta a marca como opcional.

Por que o ramo other é obrigatório?

O flutter gen-l10n recusa um plural sem ramo other e interrompe a geração, indicando o arquivo. A ferramenta sempre o adiciona.

Qual a diferença entre =1 e one?

No código gerado, =1 vira a categoria one, que em português também cobre o 0. Coloque o número no ramo one ou adicione =0.

Meu texto é enviado para um servidor?

Não. As mensagens são montadas na página a partir das regras de plural do seu navegador; nada é enviado.

Funciona para um idioma que não está na lista?

Sim: digite o código dele (por exemplo cs ou sv) no campo livre. A ferramenta aceita qualquer código reconhecido pelo seu navegador.

Qual a diferença para o LocalePilot?

Esta ferramenta escreve uma mensagem de plural. O LocalePilot é um app desktop, em fase final para macOS, que abre todos os seus arquivos ARB e verifica os placeholders ICU de cada tradução antes da exportação.

Seja avisado no lançamento

O LocalePilot está em fase final. Deixe seu e-mail para saber do lançamento.

  • macOS 12 ou posterior · Ollama ou LM Studio opcionais
  • Interface do app em inglês, francês, espanhol, italiano e português.