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"]
}