| # Localization |
| |
| ## Creating New Locale Messages |
| |
| When adding new strings to be localized, update `intl_en.arb`, which |
| is used by this project as the template. When creating new entries, they |
| have to be in the following format: |
| |
| ```arb |
| "dartGetterVariableName": "english translation of the message", |
| "@dartGetterVariableName": { |
| "description": "description that the localizations delegate will use." |
| }, |
| ``` |
| |
| In this example, `dartGetterVariableName` should be the Dart method/property |
| name that you will be using in your localizations delegate. |
| |
| After adding the new message in `intl_en.arb`, it can be used in the app by |
| regenerating the GalleryLocalizations delegate. |
| This allows use of the English message through your localizations delegate in |
| the application code immediately without having to wait for the translations |
| to be completed. |
| |
| ## Generating GalleryLocalizations |
| |
| Running the application for the first time should generate a synthetic package |
| containing the app's localizations through importing |
| `package:flutter_gen/gen_l10n/`. The code is generated will be generated in |
| `.dart_tool/flutter_gen/gen_l10n/`. |
| |
| The generated localizations code is updated every time `flutter run` |
| is called, and during hot reload and restart. This means that updates to |
| existing arb files can be made and seen in real time during app development. |
| |
| ### Generating GalleryLocalizations in the command line |
| |
| From the root directory, run: |
| |
| ```bash |
| flutter gen-l10n \ |
| --template-arb-file=intl_en.arb \ |
| --output-localization-file=gallery_localizations.dart \ |
| --output-class=GalleryLocalizations |
| ``` |
| |
| ## Obtaining Translations (for Flutter org members) |
| |
| From the root directory, run `flutter pub run grinder l10n`, which |
| will generate `intl_en_US.xml`. This will be used by the internal translation |
| console to generate messages in the different locales. |
| |
| > Note that the filename for `intl_en_US.xml` is used by the internal |
| > translation console and changing the filename may require manually updating |
| > already translated messages to point to the new file. Therefore, avoid doing so |
| > unless necessary. |
| |
| See `/third_party/dart/flutter_gallery/README.md` for how to import this file and export translations. |