Lingo.dev + .arb (Flutter)

Lingo.dev CLI übersetzt Flutter Application Resource Bundle (ARB)-Dateien unter Beibehaltung von Metadaten, Platzhalter-Definitionen und Flutter's l10n-Konventionen. Die CLI arbeitet nahtlos mit flutter gen-l10n zusammen, behält Platzhalter-Typdefinitionen für IDE-Autovervollständigung bei, bewahrt Entwicklerkontext und Dokumentation und folgt exakt den ARB-Spezifikationsstandards.

Schnelle Einrichtung

Konfiguration für Flutter's Standard-ARB-Dateistruktur:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "flutter": {
      "include": ["lib/l10n/app_[locale].arb"]
    }
  }
}

Hinweis: [locale] ist ein Platzhalter, der wörtlich in der Konfiguration verbleiben sollte, da er während der CLI-Ausführung durch die tatsächliche Locale ersetzt wird.

ARB-Dateien übersetzen

npx lingo.dev@latest i18n

Bewahrt ARB-Metadaten, Platzhalter-Definitionen und Flutter-spezifische Formatierung bei der Übersetzung des Inhalts.

Flutter ARB-Funktionen

Platzhalter mit Typen

{
  "welcomeMessage": "Hallo {name}, Sie haben {count} Nachrichten",
  "@welcomeMessage": {
    "description": "Welcome message with user name and count",
    "placeholders": {
      "name": {
        "type": "String"
      },
      "count": {
        "type": "int"
      }
    }
  }
}

Pluralformen

{
  "itemCount": "{count, plural, =0{keine Elemente} =1{ein Element} other{{count} Elemente}}",
  "@itemCount": {
    "description": "Number of items",
    "placeholders": {
      "count": {
        "type": "int"
      }
    }
  }
}

Metadaten-Erhaltung

ARB-Metadaten (@key-Einträge) bleiben unübersetzt:

  • Beschreibungen: Entwicklerkontext wird beibehalten
  • Platzhalter: Typdefinitionen werden beibehalten
  • Beispiele: Verwendungsbeispiele bleiben erhalten
  • Benutzerdefinierte Attribute: Alle zusätzlichen Metadaten werden beibehalten

Erweiterte Konfiguration

Mehrere ARB-Dateien

"flutter": {
  "include": [
    "lib/l10n/app_[locale].arb",
    "lib/l10n/errors_[locale].arb"
  ]
}

Metadaten-Schlüssel sperren

"flutter": {
  "include": ["lib/l10n/app_[locale].arb"],
  "lockedKeys": ["@@locale", "@@last_modified"]
}