Lingo.dev + .arb (Flutter)
Lingo.dev CLI traduce archivos de Flutter Application Resource Bundle (ARB) preservando metadatos, definiciones de marcadores de posición y convenciones de l10n de Flutter. La CLI funciona perfectamente con flutter gen-l10n
, mantiene las definiciones de tipo de marcador de posición para autocompletado del IDE, conserva el contexto y la documentación del desarrollador, y sigue exactamente los estándares de especificación ARB.
Configuración rápida
Configuración para la estructura estándar de archivos ARB de Flutter:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"flutter": {
"include": ["lib/l10n/app_[locale].arb"]
}
}
}
Recordatorio: [locale]
es un marcador de posición que debe permanecer literalmente en la configuración, ya que se reemplaza con la configuración regional real durante la ejecución de la CLI.
Traducir archivos ARB
npx lingo.dev@latest i18n
Preserva los metadatos ARB, las definiciones de marcadores de posición y el formato específico de Flutter mientras traduce el contenido.
Características ARB de Flutter
Marcadores de posición con tipos
{
"welcomeMessage": "Hola {name}, tienes {count} mensajes",
"@welcomeMessage": {
"description": "Welcome message with user name and count",
"placeholders": {
"name": {
"type": "String"
},
"count": {
"type": "int"
}
}
}
}
Formas plurales
{
"itemCount": "{count, plural, =0{ningún elemento} =1{un elemento} other{{count} elementos}}",
"@itemCount": {
"description": "Number of items",
"placeholders": {
"count": {
"type": "int"
}
}
}
}
Preservación de metadatos
Los metadatos ARB (entradas @key
) permanecen sin traducir:
- Descripciones: Contexto del desarrollador preservado
- Marcadores de posición: Definiciones de tipo mantenidas
- Ejemplos: Ejemplos de uso conservados intactos
- Atributos personalizados: Cualquier metadato adicional preservado
Configuración avanzada
Múltiples archivos ARB
"flutter": {
"include": [
"lib/l10n/app_[locale].arb",
"lib/l10n/errors_[locale].arb"
]
}
Bloquear claves de metadatos
"flutter": {
"include": ["lib/l10n/app_[locale].arb"],
"lockedKeys": ["@@locale", "@@last_modified"]
}