Também disponível em: English · Español · Français · العربية
Regras de plural CLDR
Mostra em que categoria de plural cai qualquer número, em cinco línguas ao mesmo tempo, com os mesmos dados que o seu navegador usa.
O que são as regras de plural?
Se alguma vez escreveu «1 ficheiro(s) eliminado(s)», já se cruzou com o problema que estas regras resolvem. O português precisa de duas formas — ficheiro e ficheiros — e o remendo ingénuo é ver se a contagem é um. Esse remendo parte-se assim que a interface é traduzida, porque as línguas não coincidem nem em quantas formas existem nem em que números levam cada uma.
O CLDR, o repositório de dados de localização do Unicode, resolve isso dando a cada língua um conjunto de categorias com nome, escolhidas entre seis possibilidades: zero, one, two, few, many e other. Cada língua usa as de que precisa. O seu código escreve uma mensagem por categoria e o ambiente escolhe. Todos os navegadores expõem isto através do Intl.PluralRules, portanto não há nada para descarregar nem para manter.
A ferramenta acima faz essa pergunta a cinco línguas ao mesmo tempo. Escreva um número e cada uma diz em que categoria ele cai — e o interessante é a frequência com que discordam, mesmo em números que não pareceriam polémicos.
Como usar
- Escreva um número e leia a coluna. Cada língua indica a categoria em que esse número cai. Comece pelo 0: o inglês e o espanhol chamam-lhe plural, o francês e o português chamam-lhe singular, e o árabe dá-lhe uma forma própria. Três em cinco discordam do inglês acerca do nada.
- Alterne entre contar e ordenar. Cardinal é um ficheiro, dois ficheiros. Ordinal é 1.º, 2.º, 3.º. São conjuntos de regras diferentes com contagens de categorias diferentes, e mexer no interruptor é a forma mais rápida de ver como a mesma língua trata os dois de maneiras distintas.
- Experimente um intervalo. O segundo controlo usa o selectRange, que quase ninguém sabe que existe: responde que forma toma «1-2 itens». Em inglês, um intervalo de 1 a 1 não é singular, o que surpreende quase toda a gente.
A inversão: o complicado é o inglês
A ideia feita é que os plurais ingleses são simples e os das outras línguas difíceis. Para contar, é verdade: o inglês usa duas categorias onde o árabe usa as seis. O árabe tem uma forma para o zero, outra para o um, um dual próprio para exatamente dois, outra para três a dez, outra para onze a noventa e nove, e um caso geral. E ainda por cima é modular: 103 toma a mesma forma que 3, e 111 a mesma que 11.
Para ordenar, inverte-se por completo. O inglês precisa de quatro formas ordinais, porque 1st, 2nd e 3rd levam sufixos diferentes e tudo o resto leva -th, com a exceção dos teens, que nenhuma regra sobre o último algarismo sozinho consegue exprimir: é por isso que 21st é «one» e 11th é «other». O árabe precisa de exatamente uma forma ordinal. O português também, e o espanhol também; o francês precisa de duas.
Junte as duas coisas e o inglês é a única destas cinco línguas com mais categorias ordinais do que de plural. A língua que se diz simples é, neste eixo, a mais exigente do grupo — e qualquer código que fixe o sufixo ordinal inglês olhando para o último algarismo vai errar nos teens.
Há outra esquisitice que vale a pena escrever. O português, o espanhol e o francês têm uma terceira categoria que só se ativa em múltiplos exatos de um milhão. 999 999 é vulgar, 1 000 000 toma uma forma especial, e 1 000 001 volta a ser vulgar.
Limites honestos
Uma categoria de plural não é uma tradução. Saber que um número cai em «few» diz-lhe que espaço de mensagem usar; não escreve a mensagem. As regras são de concordância gramatical, e as palavras continuam a ser suas.
As categorias também não são toda a concordância. Muitas línguas flexionam ainda por caso e por género, e uma contagem pode mudar mais do que a terminação do substantivo: o árabe em particular muda a forma do substantivo e o seu caso conforme o número. As categorias do CLDR cobrem a parte que uma biblioteca de mensagens consegue automatizar, que é real mas parcial.
As tabelas mais abaixo foram calculadas quando esta página foi construída; a caixa em cima usa o seu navegador enquanto lê. Ambas bebem do CLDR, mas um navegador e um servidor de compilação podem levar versões diferentes, e o CLDR revê regras. Se alguma vez discordarem no seu ecrã, a caixa é a que acerta para si, e a discordância é em si a informação útil — é por isso que a página mostra as duas em vez de escolher uma.
Uma coisa que a API de JavaScript não consegue exprimir: o CLDR distingue 1 de 1,0, porque uma língua pode tratar «1,0 metros» como plural onde «1 metro» é singular. Em JavaScript são o mesmo número, portanto passar 1.0 dá-lhe a resposta do 1. Para obter a outra é preciso formatar o valor como texto e deixar a formatação levar a casa decimal.
Por fim, esta página compara as cinco línguas em que o site é publicado. O Intl.PluralRules conhece centenas mais, e algumas comportam-se de maneiras que nenhuma destas cinco ilustra: uma língua pode ter uma categoria a que nenhum número inteiro chega, portanto por muito que se conte para cima ela não aparece.
Porque é grátis
Porque não há nada a pagar. As regras já estão no seu navegador; esta página não inclui dados nenhuns, só pergunta e mostra. Nada é enviado e não há conta.
Os números do artigo são verificados pelo conjunto de testes contra a mesma API, portanto se o CLDR rever uma regra o texto parte a compilação em vez de se tornar falso em silêncio. Quando uma afirmação depende de uma língua fora destas cinco, os testes recorrem a essa língua em vez de a darem por boa a partir das que estão à vista.