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
- 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.
- 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.
- 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.