Aus öffentlichen Paketdaten erstellte Orientierung.
Ein Flutter-Paket, das die Implementierung von Internationalisierung in Flutter-Anwendungen vereinfacht. Es bietet einen strukturierten Ansatz zur Verwaltung von Übersetzungen in mehreren Sprachen und ermöglicht Entwicklern, problemlos zwischen Lokalisierungen zu wechseln und eine vielfältige Benutzerbasis zu unterstützen. Das Paket integriert sich nahtlos in das Lokalisierungssystem von Flutter und unterstützt alle wichtigen Plattformen wie Android, iOS, Web, macOS, Windows und Linux. Mit klarer Konfiguration und skalierbarem Übersetzungsmanagement vereinfacht es den Prozess der Erstellung mehrsprachiger Anwendungen.
Anwendungsfälle
Multisprachige mobile und Web-Anwendungen erstellen
Unterstützung globaler Nutzergruppen
Verwaltung der dynamischen Sprachwechsel
Integration in bestehende Übersetzungsworkflows
Einfachere Entwicklung lokalisierter Benutzeroberflächen
Hauptmerkmale
Einfache Übersetzungsdateiverwaltung
Eingebaute Sprachumschaltung
Plattformübergreifende Kompatibilität
Skalierbare Übersetzungsstruktur
Nahtlose Integration mit der Flutter-Localisation-API
Geeignet für
Entwickler, die auf internationale Märkte abzielen
Apps, die mehrsprachige Unterstützung erfordern
Teams, die externe Übersetzungs-Dienste verwenden
Projekte mit häufigen Lokalisierungsaktualisierungen
Hinweise
Setup von Übersetzungsdateien erforderlich
Abhängig von konsistenter Schlüsselbenennung
Möglicherweise sind zusätzliche Werkzeuge für Übersetzungsworkflows erforderlich
Nicht geeignet für Echtzeitübersetzung
Eingeschränkte integrierte Übersetzungs-Editoren
Original-README
Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.
internationalization
A Flutter package that makes adding multi-language support to your app simple and flexible — no code generation required.
Features
✅ Load translations from local JSON asset files
✅ Inject translations at runtime from any external source (API, database, etc.)
✅ Nested keys — navigate deep JSON structures with parent or dot notation
✅ String interpolation with positional ({0}, {1}) and named (::key::) arguments
✅ Plural support — zero, one, other forms
✅ Extension methods on String and BuildContext for ergonomic usage
✅ TextIntl widget — a drop-in replacement for Text that auto-translates
✅ Re-exports NumberFormat and DateFormat from the intl package
Create one JSON file per language inside your assets folder. The default path is assets/translations/. Files must be named after the language code (e.g. en.json, pt.json).
Note: If your translations span multiple files per locale, list every file individually or use a directory entry (e.g. assets/translations/en/). The path must match exactly what you pass to translationsPath.
2. MaterialApp configuration
import'package:flutter_localizations/flutter_localizations.dart';
import'package:internationalization/internationalization.dart';
const _supportedLocales = [
Locale('en'),
Locale('pt'),
Locale('es'),
];
MaterialApp(
supportedLocales: _supportedLocales,
localizationsDelegates: [
InternationalizationDelegate(
suportedLocales: _supportedLocales,
// Default path is 'assets/translations/' — only override if needed.
translationsPath: 'assets/translations/',
// Optional: merge translations fetched at runtime (API, remote config, etc.)
addTranslations: (locale) async {
return {
'remote_key': 'Value from the network for ${locale.languageCode}',
};
},
),
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
);
InternationalizationDelegate parameters
Parameter
Type
Required
Default
Description
suportedLocales
List<Locale>
✅
—
Locales the app supports
translationsPath
String
'assets/translations/'
Path to the JSON files directory
addTranslations
Future<Map<String, dynamic>> Function(Locale)?
null
Callback to inject extra translations at load time
JSON structure
Translations are plain JSON objects. Keys can be flat or deeply nested:
TextIntl accepts all the same parameters as Text (style, textAlign, overflow, maxLines, etc.) plus the translation parameters parent, args, namedArgs, and pluralValue.
Interpolation
Positional arguments — {0}, {1}, …
JSON:
{"welcome_message":"Hello, {0}! You have {1} new messages."}
Dart:
context.translate(
'welcome_message',
args: ['Alice', '5'],
);
// → "Hello, Alice! You have 5 new messages."
{"order_ready":"Dear ::name::, your order #{0} is ready."}
Dart:
context.translate(
'order_ready',
args: ['42'],
namedArgs: {'name': 'Maria'},
);
// → "Dear Maria, your order #42 is ready."
Plurals
Define a zero, one, and other form for any key:
JSON:
{"cart":{"items":{"zero":"Your cart is empty.","one":"You have {0} item in your cart.","other":"You have {0} items in your cart."}}}
Dart:
// zero
context.translate('items', parent: ['cart'], pluralValue: 0, args: ['0']);
// → "Your cart is empty."// one
context.translate('items', parent: ['cart'], pluralValue: 1, args: ['1']);
// → "You have 1 item in your cart."// other
context.translate('items', parent: ['cart'], pluralValue: 42, args: ['42']);
// → "You have 42 items in your cart."
Plural forms can also be combined with named args:
Injected keys follow the same JSON structure and can be accessed with context.translate, the String extension, or TextIntl exactly like local keys.
Example
A full showcase example demonstrating every feature is available in the example/ directory. It covers simple strings, nested keys, interpolation, plurals, runtime injection, and NumberFormat/DateFormat — with a live language switcher between English, Portuguese, and Spanish.
cd example
flutter run
API reference
Translator
Method
Description
Translator.of(context)
Returns the Translator instance for the current locale