When I added localizations for shortcut keys, I added some that actually can't be shortcut keys, so I'm removing them again. These are mostly Japanese-specific keys that don't even appear on modern keyboards for the most part. Also, added menuBarMenuLabel for an accessibility label for menu bar menus. I modified the code for the localization generation scripts to add a --remove-undefined flag that will remove any localizations that don't appear in the canonical locale.
Flutter Framework localizations
This package contains the localizations used by the Flutter framework itself.
See the localization README for more detailed information about the localizations themselves.
Adding a new string to localizations
If you (someone contributing to the Flutter framework) want to add a new
string to the MaterialLocalizations, WidgetsLocalizations or the
CupertinoLocalizations objects (e.g. because you've added a new widget
and it has a tooltip), follow these steps (these instructions are for
MaterialLocalizations, but apply equally to CupertinoLocalizations
and WidgetsLocalizations, with appropriate name substitutions):
-
Add the new getter to the localizations class
MaterialLocalizations, influtter_localizations/lib/src/material_localizations.dart. -
Implement a default value in
DefaultMaterialLocalizationsinflutter_localizations/lib/src/material_localizations.dart -
Add a test to
test/material/localizations_test.dartthat verifies that this new value is implemented. -
Update the
flutter_localizationspackage. To add a new string to theflutter_localizationspackage, you must first add it to the English translations (lib/src/l10n/material_en.arb), including a description.Then you need to add new entries for the string to all of the other language locale files by running:
dart dev/tools/localization/bin/gen_missing_localizations.dartWhich will copy the English strings into the other locales as placeholders until they can be translated.
Finally you need to re-generate lib/src/l10n/localizations.dart by running:
dart dev/tools/localization/bin/gen_localizations.dart --overwriteThere is a localization README file with further information in the
lib/src/l10n/directory. -
If you are a Google employee, you should then also follow the instructions at
go/flutter-l10n. If you're not, don't worry about it.
Updating an existing string
If you or someone contributing to the Flutter framework wants to modify an existing string in the MaterialLocalizations objects, follow these steps:
-
Modify the default value of the relevant getter(s) in
DefaultMaterialLocalizationsbelow. -
Update the
flutter_localizationspackage. Modify the out-of-date English strings inlib/src/l10n/material_en.arb.You also need to re-generate
lib/src/l10n/localizations.dartby running:dart dev/tools/localization/bin/gen_localizations.dart --overwriteThis script may result in your updated getters being created in newer locales and set to the old value of the strings. This is to be expected. Leave them as they were generated, and they will be picked up for translation.
There is a localization README file with further information in the
lib/src/l10n/directory. -
If you are a Google employee, you should then also follow the instructions at
go/flutter-l10n. If you're not, don't worry about it.