FreeToGenerate.com

El inglés tiene menos formas de plural que estos otros cuatro idiomas y más formas ordinales. El árabe es justo lo contrario. No se sube nada.

Prueba

Prueba con 0: tres de estos cinco idiomas discrepan del inglés al respecto. Luego prueba 1000000.

Lo que dice tu navegador

InglésotherEl recurso general. Todos los idiomas la tienen, y algunos no tienen ninguna más.
EspañolotherEl recurso general. Todos los idiomas la tienen, y algunos no tienen ninguna más.
PortuguésoneEl singular, aunque qué números cuentan como singular no es igual en todas partes.
FrancésoneEl singular, aunque qué números cuentan como singular no es igual en todas partes.
ÁrabezeroUna forma para la nada, que la mayoría de los idiomas no tiene.

Calculado aquí y ahora por tu propio navegador. Es la única respuesta que puede afectar a tu código.

dea

La parte de la API que casi nadie sabe que existe. En inglés, un intervalo de 1 a 1 no es singular.

La misma pregunta sobre un intervalo

Inglésother
Españolother
Portuguésone
Francésone
Árabeother

Todas las categorías que usa cada idioma

Ingléscontar (un archivo, dos archivos)oneother2 categorías
ordenar (1.º, 2.º, 3.º)onetwofewother4 categorías
Españolcontar (un archivo, dos archivos)onemanyother3 categorías
ordenar (1.º, 2.º, 3.º)other1 categorías
Portuguéscontar (un archivo, dos archivos)onemanyother3 categorías
ordenar (1.º, 2.º, 3.º)other1 categorías
Francéscontar (un archivo, dos archivos)onemanyother3 categorías
ordenar (1.º, 2.º, 3.º)oneother2 categorías
Árabecontar (un archivo, dos archivos)zeroonetwofewmanyother6 categorías
ordenar (1.º, 2.º, 3.º)other1 categorías

Estas tablas se calcularon al construir la página. Si no coinciden con el recuadro de arriba, tu navegador tiene datos CLDR distintos, lo cual ya es interesante de por sí.

Qué números caen en qué categoría

Inglés
one1
other0, 2, 3, 4
Español
one1
many1.000.000, 2.000.000, 10.000.000, 1.000.000.000
other0, 2, 3, 4
Portugués
one0, 1, 0,5, 1,5
many1.000.000, 2.000.000, 10.000.000, 1.000.000.000
other2, 3, 4, 5
Francés
one0, 1, 0,5, 1,5
many1.000.000, 2.000.000, 10.000.000, 1.000.000.000
other2, 3, 4, 5
Árabe
zero0
one1
two2
few3, 4, 5, 6
many11, 12, 13, 14
other100, 101, 102, 200

También disponible en: English · Português · Français · العربية

Reglas de plural CLDR

Muestra en qué categoría de plural cae cualquier número, en cinco idiomas a la vez, con los mismos datos que usa tu navegador.

¿Qué son las reglas de plural?

Si alguna vez has escrito «1 archivo(s) eliminado(s)», ya te has topado con el problema que resuelven estas reglas. El español necesita dos formas —archivo y archivos— y el arreglo ingenuo es comprobar si la cuenta vale uno. Ese arreglo se rompe en cuanto la interfaz se traduce, porque los idiomas no coinciden ni en cuántas formas hay ni en qué números llevan cada una.

CLDR, el repositorio de datos de localización de Unicode, lo zanja dando a cada idioma un conjunto de categorías con nombre, escogidas entre seis posibilidades: zero, one, two, few, many y other. Cada idioma usa las que necesita. Tu código escribe un mensaje por categoría y el entorno elige. Todos los navegadores lo exponen mediante Intl.PluralRules, así que no hay nada que descargar ni que mantener.

La herramienta de arriba le hace esa pregunta a cinco idiomas a la vez. Escribe un número y cada uno dice en qué categoría cae; y lo interesante es la frecuencia con la que discrepan, incluso en números que no parecerían polémicos.

Cómo usarlo

  1. Escribe un número y lee la columna. Cada idioma informa de la categoría en la que cae ese número. Empieza por 0: el inglés y el español lo llaman plural, el francés y el portugués lo llaman singular, y el árabe le da una forma propia. Tres de cinco discrepan del inglés sobre la nada.
  2. Cambia entre contar y ordenar. Cardinal es un archivo, dos archivos. Ordinal es 1.º, 2.º, 3.º. Son conjuntos de reglas distintos con cuentas de categorías distintas, y mover el interruptor es la forma más rápida de ver lo distinto que trata un mismo idioma a cada uno.
  3. Prueba un intervalo. El segundo control usa selectRange, que casi nadie sabe que existe: responde qué forma toma «1-2 elementos». En inglés, un intervalo de 1 a 1 no es singular, cosa que sorprende a casi todo el mundo.

La inversión: el complicado es el inglés

La idea recibida es que los plurales ingleses son sencillos y los de otros idiomas difíciles. Para contar, es cierto: el inglés usa dos categorías donde el árabe usa las seis. El árabe tiene una forma para el cero, otra para el uno, un dual propio para exactamente dos, otra para tres a diez, otra para once a noventa y nueve, y un caso general. Y encima es modular: 103 toma la misma forma que 3, y 111 la misma que 11.

Para ordenar, se invierte por completo. El inglés necesita cuatro formas ordinales, porque 1st, 2nd y 3rd llevan sufijos distintos y todo lo demás lleva -th, con la excepción de la decena de los teens, que ninguna regla sobre el último dígito por sí sola puede expresar: por eso 21st es «one» y 11th es «other». El árabe necesita exactamente una forma ordinal. El español también, y el portugués también; el francés necesita dos.

Junta las dos cosas y el inglés resulta ser el único de estos cinco idiomas con más categorías ordinales que de plural. El idioma que se considera simple es, en este eje, el más exigente del grupo, y cualquier código que fije el sufijo ordinal inglés mirando el último dígito se equivocará con los teens.

Hay otra rareza que merece la pena teclear. El español, el portugués y el francés tienen una tercera categoría que solo se activa en múltiplos exactos de un millón. 999.999 es corriente, 1.000.000 toma una forma especial, y 1.000.001 vuelve a ser corriente.

Límites honestos

Una categoría de plural no es una traducción. Saber que un número cae en «few» te dice qué hueco de mensaje usar; no escribe el mensaje. Las reglas van de concordancia gramatical, y las palabras siguen siendo tuyas.

Las categorías tampoco son toda la concordancia. Muchos idiomas flexionan también por caso y por género, y una cuenta puede cambiar más que la terminación del sustantivo: el árabe en particular cambia la forma del sustantivo y su caso según el número. Las categorías de CLDR cubren la parte que una biblioteca de mensajes puede automatizar, que es real pero parcial.

Las tablas de más abajo se calcularon al construir esta página; el recuadro de arriba usa tu navegador mientras lees. Ambos beben de CLDR, pero un navegador y un servidor de compilación pueden llevar versiones distintas, y CLDR revisa reglas. Si alguna vez discrepan en tu pantalla, el recuadro es el que acierta para ti, y la discrepancia es en sí misma la información útil: por eso la página enseña las dos cosas en vez de elegir una.

Algo que la API de JavaScript no puede expresar: CLDR distingue 1 de 1,0, porque un idioma puede tratar «1,0 metros» como plural donde «1 metro» es singular. En JavaScript son el mismo número, así que pasar 1.0 te da la respuesta del 1. Para obtener la otra hay que formatear el valor como cadena y dejar que el formato lleve el decimal.

Por último, esta página compara los cinco idiomas en los que se publica el sitio. Intl.PluralRules conoce cientos más, y algunos se comportan de maneras que ninguno de estos cinco ilustra: un idioma puede tener una categoría a la que no llega ningún número entero, así que por mucho que cuentes hacia arriba no aparecerá.

¿Por qué es gratis?

Porque no hay nada que pagar. Las reglas ya están en tu navegador; esta página no incluye datos, solo pregunta y muestra. No se sube nada y no hay cuenta.

Las cifras del artículo las comprueba el conjunto de pruebas contra la misma API, así que si CLDR revisa una regla el texto rompe la compilación en vez de volverse falso en silencio. Cuando una afirmación depende de un idioma ajeno a estos cinco, las pruebas recurren a ese idioma en vez de darla por buena desde los que están a la vista.