Generador de plurales ICU para archivos ARB de Flutter

Elige tus idiomas: la herramienta muestra las categorías de plural que exige cada uno, con números de ejemplo, y genera el mensaje ICU listo para pegar en tus archivos ARB. Gratis, sin registro, y todo se queda en tu navegador.

Genera un mensaje plural

Idiomas

Después, verifica que cada traducción conserva su placeholder

LocalePilot es una app de escritorio que abre todos tus archivos ARB, compara los placeholders ICU de cada traducción con el origen, señala las claves faltantes y exporta con copia de seguridad. Se está terminando para macOS: deja tu correo para enterarte del lanzamiento.

Por qué un plural cambia de un idioma a otro

Las categorías zero, one, two, few, many y other siguen las reglas CLDR de cada idioma. En inglés y en español, one solo significa 1; en francés cubre el 0 y el 1; el ruso y el polaco añaden few y many; el árabe usa las seis; el japonés tiene una sola, other. Un mensaje de dos ramas escrito para el inglés queda incompleto en cuanto lo traduces.

La herramienta lee estas reglas en tu navegador (Intl.PluralRules): las categorías y los números de ejemplo que se muestran son los del propio idioma, sin ninguna tabla que mantener.

La trampa del =1 con gen-l10n

Una rama =1 se convierte en la categoría one en el código que genera flutter gen-l10n. En francés esa categoría también se aplica al cero: con count = 0, se mostraría "1 article restant" (1 artículo restante). Es preferible la categoría one con el número en el texto, o añadir una rama =0: la herramienta la ofrece como casilla. Los detalles están en la guía sobre plurales y placeholders ICU.

Cómo usar el resultado

  1. Copia la línea "key": "{count, plural, …}" de cada idioma en el archivo app_xx.arb correspondiente.
  2. Añade los metadatos @key una sola vez, en el archivo de plantilla.
  3. Ejecuta flutter gen-l10n: una rama other que falta o una llave sin cerrar detiene la generación con el nombre del archivo.

Para verificar después que ninguna traducción ha omitido o renombrado su placeholder, usa el verificador de claves faltantes ARB.

Limitaciones de la herramienta

La herramienta genera la estructura; el texto de cada forma lo escribes tú. No gestiona mensajes select ni plurales anidados, y no duplica los apóstrofos si activaste use-escaping en l10n.yaml.

Preguntas frecuentes

¿Qué categorías de plural necesito para el español?

En la práctica one (solo el 1) y other. La categoría many del español solo afecta a los millones: la herramienta la marca como opcional.

¿Por qué es obligatoria la rama other?

flutter gen-l10n rechaza un plural sin rama other y detiene la generación indicando el archivo. La herramienta siempre la añade.

¿Qué diferencia hay entre =1 y one?

En el código generado, =1 se convierte en la categoría one, que en algunos idiomas (francés, portugués de Brasil) también cubre el 0. Pon el número en la rama one o añade =0.

¿Se envía mi texto a un servidor?

No. Los mensajes se arman en la página a partir de las reglas de plural de tu navegador; no se envía nada.

¿Funciona con un idioma que no está en la lista?

Sí: escribe su código (por ejemplo cs o sv) en el campo libre. La herramienta acepta cualquier código que tu navegador reconozca.

¿En qué se diferencia de LocalePilot?

Esta herramienta escribe un mensaje de plural. LocalePilot es una app de escritorio, en fase final para macOS, que abre todos tus archivos ARB y verifica los placeholders ICU de cada traducción antes de exportar.

Recibe un aviso en el lanzamiento

LocalePilot está en su fase final. Deja tu correo para enterarte del lanzamiento.

  • macOS 12 o posterior · Ollama o LM Studio opcionales
  • Interfaz de la app en inglés, francés, español, italiano y portugués.