Verificador de claves faltantes para archivos ARB de Flutter

Suelta tus archivos .arb: la herramienta compara cada idioma con el archivo de plantilla y lista las claves faltantes, las claves sobrantes, los valores vacíos y los placeholders que ya no coinciden. Gratis, sin registro, y tus archivos nunca salen de tu navegador.

Compara tus archivos ARB

O pega el contenido de dos archivos

Se compara en tu navegador: no se sube ningún archivo.

Corrígelos sin editar cada archivo a mano

LocalePilot es una app de escritorio que abre toda tu carpeta de localización: detecta las claves faltantes, verifica los placeholders, traduce con IA local si quieres y luego exporta con copia de seguridad. Se está terminando para macOS: deja tu correo para enterarte del lanzamiento.

Qué busca el verificador

  • Claves faltantes: están en la plantilla pero no en un idioma. La app compila, pero tus usuarios ven el texto del idioma de la plantilla en lugar del suyo.
  • Claves sobrantes: están en una traducción pero ya no en la plantilla, a menudo restos de una función eliminada.
  • Valores vacíos: la clave existe pero su traducción está en blanco, algo que una simple comparación de claves no detecta.
  • Placeholders incoherentes: {name} convertido en {nombre}, u omitido. También se leen los placeholders dentro de los plurales y selects ICU.

Las claves que empiezan por @ (metadatos y @@locale) se ignoran. El archivo de referencia es el que define template-arb-file en l10n.yaml, normalmente app_en.arb: la herramienta lo deduce y puedes elegir otro.

Encontrar las claves faltantes en una app Flutter

  1. Reúne los archivos de tu carpeta arb-dir (lib/l10n por defecto).
  2. Suéltalos todos a la vez, plantilla incluida.
  3. Abre cada idioma para ver sus problemas y copia las claves faltantes en formato ARB: reutilizan el texto de la plantilla, listas para traducir.

Para una verificación automática en cada build, la opción untranslated-messages-file de flutter gen-l10n y un pequeño script de CI se explican en la guía para encontrar claves faltantes en archivos ARB. Los errores de placeholders ICU se explican en la guía sobre plurales y placeholders.

Limitaciones del verificador

La herramienta compara claves y nombres de placeholders: no valida la sintaxis ICU completa (eso es tarea de flutter gen-l10n), no juzga la calidad de la traducción y nunca modifica tus archivos. Para importar un proyecto completo, traducir y exportar con copia de seguridad, necesitas un editor de localización como LocalePilot.

Preguntas frecuentes

¿Se suben mis archivos ARB a un servidor?

No. La comparación se hace en tu navegador: no se envía ningún archivo ni ninguna clave. Puedes comprobarlo en la pestaña Red de tus herramientas de desarrollo.

¿Qué archivo sirve de referencia para encontrar las claves faltantes?

El archivo de plantilla, al que apunta template-arb-file en l10n.yaml (a menudo app_en.arb). La herramienta lo elige a partir de @@locale o del nombre del archivo, y puedes seleccionar otro.

¿La herramienta modifica mis archivos?

No, es de solo lectura. Solo te ofrece copiar las claves faltantes en formato ARB, con el texto de la plantilla, para que las traduzcas.

¿Cómo informa Flutter de las traducciones faltantes?

Con la opción untranslated-messages-file en l10n.yaml, flutter gen-l10n escribe en un archivo JSON las claves de la plantilla que faltan en cada idioma. La guía dedicada explica esa opción y un script de comparación para CI.

¿Se admiten los plurales y selects ICU?

Para los placeholders, sí: los que están dentro de las ramas plural o select se comparan con la plantilla. La herramienta no valida la sintaxis ICU en sí.

¿En qué se diferencia de LocalePilot?

Esta herramienta verifica los archivos que pegas o sueltas, sin guardarlos. LocalePilot es una app de escritorio, en fase final para macOS, que abre el proyecto completo, revisa, traduce con IA local o en la nube y exporta con copia de seguridad.

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.