Ferramentas de localização

testar mensagens ICUveja o texto que cada número produz

Execute uma mensagem ICU tradicional com argumentos JSON e compare sete números sem alterar a entrada.

testar mensagens ICU

Mensagem ICU

Argumentos JSON

Resultado formatado

Resultados dos valores limite

Adicione um argumento plural ou selectordinal para ver os limites.

A mensagem e os argumentos são processados apenas nesta aba; nada é enviado.

Opções de teste

As categorias de plural vêm do Intl deste navegador. A versão CLDR varia conforme o navegador e pode diferir da do app.

O resultado está desatualizado. Teste novamente antes de exportar.

Uma tradução pode funcionar para 1 e sair errada para 11. Ao testar mensagens ICU, veja lado a lado a categoria de plural e a frase pronta de cada valor, inclusive ramos exatos como =0.

Use esta página para testar mensagens ICU uma por vez antes de publicar: encontre argumentos ausentes, problemas de sintaxe e select aninhado. FormatJS executa o modelo, e o Intl do navegador fornece as regras de plural. Se o app usa outro runtime, confirme o resultado também nele.

Por que testar mensagens ICU aqui?

Uma prévia isolada não mostra todos os ramos da tradução.

Compare 11 e 21 sem editar o JSON

Ao testar mensagens ICU, o painel roda 0, 1, 2, 5, 11, 21 e 101. O ramo exato =0 ganha prioridade sobre a categoria calculada. A tabela mostra a categoria e a saída completa de cada número; os argumentos originais ficam intactos.

Uma mensagem segue ramos diferentes conforme o número e a regra do locale.

Encontre a variável que falta

O marcador {name} precisa de uma chave JSON com a mesma grafia. O teste aponta valores ausentes e a posição de erros de sintaxe. Ramos plural e select aninhados são interpretados pelo mesmo parser, sem deixar marcadores não resolvidos passarem como resultado válido.

Tokens de argumento entram no modelo, enquanto um token ausente é destacado antes do resultado.

Três passos para revisar o texto final

01

Cole uma mensagem real

Use um modelo ICU MF1 ou carregue os exemplos de plural, select e aninhamento. O exemplo inválido mostra a falta do ramo obrigatório other. Sintaxe MF2, como {$name}, não é convertida por esta página.

02

Confira chaves e locale

Informe um objeto JSON cujas chaves coincidam exatamente com os marcadores. Mude o locale BCP 47 e veja se o mesmo número escolhe outra categoria. Os dados CLDR do navegador não têm uma versão fixa aqui.

03

Leia a matriz de limites

Escolha uma variável numérica e compare sobretudo 0, 1, 11 e 21. O teste só substitui temporariamente essa variável; ele não muda o JSON. A cópia e o download ficam bloqueados quando a entrada muda.

Sintaxe e saída no mesmo teste

Um runtime FormatJS

Para testar mensagens ICU, a análise e a execução usam o mesmo FormatJS. O MF1 inclui plural, select, selectordinal, offset, aninhamento e formatação numérica básica.

Sete saídas renderizadas

Regras de pluralização fazem mais sentido com frases completas. A matriz apresenta valor, categoria e texto, inclusive as diferenças entre 11 e 21 que podem passar despercebidas em uma prévia única.

Erros com contexto

A validação de sintaxe ICU mostra linha e coluna quando o parser informa esses dados. JSON inválido, argumentos ausentes e locales indisponíveis têm mensagens distintas; saída antiga não pode ser copiada.

Exemplos reversíveis

O modo automático espera você parar de digitar. Carregar um exemplo ou limpar abre uma prévia com contagem de caracteres; após aplicar, há uma chance de desfazer entrada e resultado.

O que esta prévia não promete

Apenas MessageFormat 1
Esta ferramenta permite testar mensagens ICU no formato da mensagem ICU tradicional suportado pelo FormatJS. Não mistura nem converte automaticamente MF2, como {$name} ou .match.
CLDR do navegador
As categorias vêm do Intl.PluralRules do navegador atual. A página não consegue identificar a versão exata do CLDR e não garante saída idêntica à de ICU4J, ICU4C ou outro runtime.
Uma mensagem e um objeto JSON
Não há upload de arquivos, varredura de catálogo, comparação entre texto original e tradução nem correção silenciosa de other ausente. A raiz dos argumentos não pode ser lista, null ou valor simples.
Texto simples
Tags que dependem de callbacks de rich text são rejeitadas e a saída não vira HTML. Formatos avançados de data, hora e moeda precisam ser testados no runtime de produção.

Dúvidas frequentes ao testar mensagens ICU

Como lidar com valores dinâmicos como nomes ou contagens?

Escreva argumentos nomeados no modelo e forneça as mesmas chaves no objeto JSON. Para contagens, use plural. O painel identifica chaves ausentes e valores não numéricos quando o ramo exige um número.

Como lido com plurais?

Mantenha other e inclua as categorias necessárias para o locale. Ao testar mensagens ICU, compare a frase gerada para 0, 1, 2, 5, 11, 21 e 101; não presuma que one e other resolvem todos os idiomas.

Como lido com os gêneros?

Use select com valores explícitos como female, male e other. O teste escolhe o ramo fornecido no JSON; ele não deduz gênero pelo nome de uma pessoa.

Como trato a pluralização no Android?

Os recursos XML do Android têm um fluxo próprio. Aqui você pode pré-visualizar uma cadeia MF1 e o efeito do locale; a página não importa XML nem substitui o teste dentro do aplicativo Android.

O que é preciso para um sistema dar suporte a um locale?

Além do identificador de idioma, o sistema precisa de dados de formatação e regras adequadas. Esta página usa o suporte Intl do navegador para aquela locale; uma app com outro runtime ou pacote CLDR deve ser verificada separadamente.

Encontrou uma saída diferente da do seu app?

Comece a testar mensagens ICU

Mude count no exemplo e compare as saídas para 11 e 21.

Volte a testar mensagens ICU quando uma tradução falhar apenas para um valor específico.

Processamento local neste navegador.