Skip to main content
AI agent network visualization

Traduzca archivos ARB de Flutter en segundos

Metadatos intactos. Marcadores de posición conservados. Formas plurales correctas según CLDR. Sus archivos ARB traducidos sin romper flutter gen-l10n.

La traducción de ARB rompe las compilaciones de Flutter

Los archivos ARB parecen JSON, pero no lo son. Contienen entradas de metadatos con prefijo @, definiciones de marcadores de posición con anotaciones de tipo y formas plurales de ICU que deben seguir exactamente las reglas CLDR. Las herramientas de traducción genéricas lo dañan todo, y flutter gen-l10n falla silenciosamente o muestra errores crípticos.

Las entradas de metadatos con prefijo @ se traducen o eliminan, lo que rompe las definiciones y descripciones de los marcadores de posición

Los nombres de los marcadores dentro de llaves se traducen, cambian de nombre o eliminan, lo que provoca bloqueos durante la ejecución

Las formas plurales de ICU necesitan categorías CLDR exactas para cada idioma, pero las herramientas genéricas las omiten o generan estructuras no válidas

La cabecera @@locale se daña o no coincide, lo que hace que flutter gen-l10n asigne las traducciones al idioma equivocado

Origen (inglés)
lib/l10n/app_en.arb
{
  "@@locale": "en",
  "appTitle": "My Flutter App",
  "@appTitle": {
    "description": "The title of the application"
  },
  "greeting": "Hello, {name}!",
  "@greeting": {
    "description": "A greeting with the user's name",
    "placeholders": {
      "name": {
        "type": "String",
        "example": "John"
      }
    }
  },
  "itemCount": "{count, plural, =0{No items} =1{1 item} other{{count} items}}",
  "@itemCount": {
    "description": "Number of items in the cart",
    "placeholders": {
      "count": {
        "type": "int"
      }
    }
  },
  "lastLogin": "Last login: {date}",
  "@lastLogin": {
    "placeholders": {
      "date": {
        "type": "DateTime",
        "format": "yMMMd"
      }
    }
  }
}
Traducido (japonés)
lib/l10n/app_ja.arb
{
  "@@locale": "de",
  "appTitle": "Meine Flutter-App",
  "@appTitle": {
    "description": "The title of the application"
  },
  "greeting": "Hallo, {name}!",
  "@greeting": {
    "description": "A greeting with the user's name",
    "placeholders": {
      "name": {
        "type": "String",
        "example": "John"
      }
    }
  },
  "itemCount": "{count, plural, =0{Keine Artikel} =1{1 Artikel} other{{count} Artikel}}",
  "@itemCount": {
    "description": "Number of items in the cart",
    "placeholders": {
      "count": {
        "type": "int"
      }
    }
  },
  "lastLogin": "Letzte Anmeldung: {date}",
  "@lastLogin": {
    "placeholders": {
      "date": {
        "type": "DateTime",
        "format": "yMMMd"
      }
    }
  }
}

Lo que conserva i18n Agent

Entradas de metadatos @

Todos los metadatos con prefijo @ —descripciones, marcadores de posición y anotaciones de tipo— se conservan exactamente como se definieron

Protección de marcadores de posición

Los marcadores con nombre como {userName}, {count} y {price} se detectan y permanecen intactos en todas las traducciones

Formas plurales CLDR

Las categorías de plural de ICU (zero, one, two, few, many y other) se generan correctamente para cada idioma de destino conforme a las reglas CLDR

Estructura JSON

El orden de las claves, el anidamiento y el formato específico de ARB coinciden con el archivo de origen para generar diferencias limpias

Funciona con su stack de Flutter

flutter gen-l10n (oficial)
Easy Localization
Internacionalización con GetX

Cómo funciona

How i18n Agent works: Install, Translate, Done
1
2
3
terminal
$translate_filesrc/messages/en.json
 --target["de", "ja", "es"]
Done.3 languages, 142 keys translated.

Sin copiar y pegar manualmente. Sin extraer cadenas. Solo archivos traducidos.

Pruebe i18n Agent ahora

Arrastre y suelte aquí su archivo de traducción

JSON, YAML, PO, XML, CSV, Markdown, Properties

o haga clic para seleccionar

Idiomas de destino

No es necesario registrarsePresupuesto al instante

Preguntas frecuentes

¿Desarrolla software?

Instale la herramienta de CLI y traduzca su primer archivo en 2 minutos.

Instalar la herramienta de CLI

¿Forma parte de un equipo empresarial?

¿Sigue atrapado en un contrato de TMS? Hablemos de la migración.