fast_i18n 1.1.2 fast_i18n: ^1.1.2 copied to clipboard
Lightweight i18n solution. Use JSON files to create typesafe translations.
Example #
Step 1: Add dependencies #
dependencies:
fast_i18n: ^1.1.2
dev_dependencies:
build_runner: any
Step 2: Create JSON files #
Create these files inside your lib
directory. Preferably in one common package like lib/i18n
.
strings.i18n.json
{
"hello": "Hello $name",
"save": "Save",
"login": {
"success": "Logged in successfully",
"fail": "Logged in failed"
}
}
strings_de.i18n.json
{
"hello": "Hallo $name",
"save": "Speichern",
"login": {
"success": "Login erfolgreich",
"fail": "Login fehlgeschlagen"
}
}
Step 3: Generate the dart code #
flutter packages pub run build_runner build
Step 4: Initialize #
Widget build(BuildContext context) {
// a: use device locale (StatefulWidget for rerendering)
LocaleSettings.useDeviceLocale().then((_) {
setState((){});
});
// b: use specific locale
LocaleSettings.setLocale('de');
// c: use default locale
// *do nothing*
return MaterialApp(
// [...]
);
Step 5: Use your translations #
// raw string
String translated = t.hello(name: 'Tom');
// inside component
Text(t.login.success)
Useful functions #
When the dart code has been generated, you will see some useful classes and functions
t
- the most important translate variable
LocaleSettings.useDeviceLocale()
- use the locale of the device
LocaleSettings.setLocale('de')
- change the locale
LocaleSettings.currentLocale
- get the current locale