限制可选语言环境的数量

Limit the number of selectable locales

这里是 a line of code,returns 语言环境:

// lib/data/gallery_options.dart

Locale get locale => _locale ?? deviceLocale;

... 可以像这样访问:

// lib\studies\shrine\app.dart

locale: GalleryOptions.of(context).locale,

问题是语言环境的选项,即 supportedLocales 来自这个文件:

.dart_tool/flutter_gen/gen_l10n/gallery_localizations.dart

... 它看起来 不是 存储库的一部分并且是自动生成的。它不可编辑并重新加载并丢弃所有更改。

如何限制用户可选择的语言环境数量?

更新

这种方法不稳定。区域设置再次重新生成。


去除语言环境的方法是使用:

Tools > Flutter Intl > Remove Locale

或者只是简单地删除不需要的 *.arb 文件:

已解决! settings 页面支持的语言环境在文件 lib/pages/settings.dart 中,可以通过使用此补丁修改 this line 来限制:

-    var supportedLocales =
-        List<Locale>.from(GalleryLocalizations.supportedLocales);
+    var supportedLocales = [
+      const Locale('en'),
+      const Locale('he'),
+    ];
     supportedLocales.removeWhere((locale) => locale == deviceLocale);