使用 this package 时对于本地化和在 EN 中完成的基本翻译,我希望我的第二语言显示键,如果它们存在于第二语言 json 文件中,但如果它们不存在,则使用 en.json
等效值。问题是默认情况下此包显示 JSON 文件中不存在的 key ,而不是后备翻译文件值。有没有办法覆盖它?
main.dart
文件中插件的使用
runApp(
EasyLocalization(
child: MyApp(),
useOnlyLangCode: true,
fallbackLocale: Locale('en'),
supportedLocales: [
Locale('en'),
Locale('es'),
],
path: 'lang',
),
);
当我想翻译存在于 en.json
中但不存在于 es.json
文件中的 key 时,它看起来像这样:
tr('appTitle');
预期结果是“Hello world”,但我在屏幕上看到了“appTitle”。
最佳答案
老问题,但因为我刚遇到同样的问题:
现在(?)有一个参数“useFallbackTranslations”,您必须将其设置为 true。确实有点违反直觉,因为人们会认为设置 fallbackLocale 就足够了。
EasyLocalization(
fallbackLocale: const Locale('en'),
supportedLocales: const [
Locale('en'),
Locale('es'),
Locale('de'),
],
useOnlyLangCode: true,
useFallbackTranslations: true, // <------
path: 'assets/i18n',
child: const MyApp(),
))
关于flutter - easy_localization 对其他语言的键有回退值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65098360/