| name | flutter_localizations_plus |
| description | Use when coding with flutter_localizations_plus: JSON locale assets, Translations.support, LocalizationsPlusDelegate, FallbackCupertinoLocalizationsDelegate, context.i18n/l10n, and runtime language switching. |
flutter_localizations_plus Agent Context
Use this package for JSON-backed Flutter localization with sprintf-style interpolation and runtime language switching.
Imports
import 'package:flutter_localizations_plus/flutter_localizations_plus.dart';
import 'package:flutter_localizations_plus/localization.dart';
import 'package:flutter_localizations_plus/locale_config.dart';
Assets
Locale files live under locales/ and must be declared in pubspec.yaml.
flutter:
assets:
- locales/
Locale file names use ${languageCode}_${localeCode}.json, for example en_US.json.
{
"@@locale": "en_US",
"local_time_caption": "Current local time: %s",
"flight_broadcast_test": "Hello %s from %s."
}
App Setup
Call Translations.support(...) before building the app so supportedLocales is populated.
Translations.support(
[
Localization.en_US,
Localization.zh_Hans,
Localization.fr_CA,
Localization.pt_BR,
],
selected: Platform.localeName,
fallback: Localization.en_US,
);
MaterialApp(
supportedLocales: Translations.supportedLocales,
localizationsDelegates: const [
LocalizationsPlusDelegate(),
FallbackCupertinoLocalizationsDelegate(),
],
home: const Home(),
);
Reading Text
Translations.of(context).text("local_time_caption", DateTime.now());
Translations.of(context).text(
"flight_broadcast_test",
["flutter_localizations_plus", "pub.dev"],
);
context.i18n("local_time_caption", DateTime.now());
context.l10n("flight_broadcast_test", ["flutter_localizations_plus", "pub.dev"]);
Runtime Language Switching
final allSupported = Translations.allSupported;
await Translations.changeLanguage(allSupported[index].locale);
Notes for Agents
- Do not invent ARB APIs; this package uses JSON files and
Translations.
- Use
LocalizationsPlusDelegate and FallbackCupertinoLocalizationsDelegate.
- Use sprintf-style
%s placeholders and pass a single value or a list of values.
- Keep locale constants from
Localization, e.g. Localization.en_US.