
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
{
"@@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"
}
}
}
}{
"@@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
Cómo funciona

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