0 purchases
yaml localizations
yaml_localizations #
A minimal YAML localization package for Flutter.
YAML is a human-readable, configuration file format with a minimal syntax, which allows you to represent strings as key/value pairs in addition to other types.
YAML is the format used by Flutter's pubspec.yaml file.
Install #
Add yaml_localizations and flutter_localizations as dependencies to your pubspec.yaml.
dependencies:
flutter_localizations:
sdk: flutter
yaml_localizations:
copied to clipboard
Add a YAML file per language #
Add a YAML file per language you support in an asset path and describe it in your pubspec.yaml
flutter:
assets:
- assets/yaml_translations/
copied to clipboard
The YAML file name must match the language tag described in supportedLocales.
E.g. Locale('en', 'US') must have a corresponding assetPath/en-US.yaml file.
Add localizationDelegates and supportedLocales #
Add YamlLocalizationsDelegate to MaterialApp and set supportedLocales using language/country codes.
MaterialApp(
localizationsDelegates: [
// global delegates
...GlobalMaterialLocalizations.delegates,
// yaml localizations
YamlLocalizationsDelegate(path: 'assets/yaml_translations'),
],
supportedLocales: [
Locale('en', 'GB'),
Locale('en', 'US'),
Locale('en'),
Locale('nb'),
],
}
copied to clipboard
Note on iOS #
Add supported languages to ios/Runner/Info.plist as described
here.
Example:
<key>CFBundleLocalizations</key>
<array>
<string>en-GB</string>
<string>en</string>
<string>nb</string>
</array>
copied to clipboard
YAML format #
Hi: Hi
Text: |
There once was a tall man from Ealing
Who got on a bus to Darjeeling
It said on the door
"Please don't sit on the floor"
So he carefully sat on the ceiling
Long: >
Wrapped text
will be folded
into a single
paragraph
Blank lines denote
paragraph breaks
copied to clipboard
Tip: Yaml supports several ways of expressing strings. Use the vertical bar character to indicate that a string will span several lines. Use the greater-than character to break up long lines.
API #
Translate strings using
YamlLocalizations.of(context)?.string('Hi')
copied to clipboard
We keep the API simple, but you can easily add an extension method to String like this:
extension LocalizedString on String {
String tr(BuildContext context) => YamlLocalizations.of(context)!.string(this);
}
copied to clipboard
So you can use it like this:
'Hi'.tr(context)
copied to clipboard
Example #
See example
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.