【发布时间】:2020-07-20 08:36:13
【问题描述】:
我是 Flutter 新手,我正在尝试本地化语言,但遇到错误
localizationsDelegates: <LocalizationsDelegate>[
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
EasyLocalizationDelegate(
locale: data.locale ?? Locale('en', 'US'),
path: 'resources/langs',
),
],
supportedLocales: <Locale>[
const Locale("en", "US"),
const Locale("ar", "AR"),
],
在基本屏幕文件的行中出现错误The method 'tr' was called on null. Receiver: null Tried calling: tr("Click here to continue")
Text(
AppLocalizations.of(context).tr('Click here to continue'),
// "Click here to continue",
style: _textStyle,
),
我的加载函数是
Future<bool> load() async {
// Load the language JSON file from the "lang" folder
developer.log('file name', name: 'lang/${locale.languageCode}.json');
String jsonString =
await rootBundle.loadString('lang/${locale.languageCode}.json');
//await rootBundle.loadString('lang/${locale.languageCode}-${locale.countryCode}.json');
developer.log('file text', name: jsonString);
Map<String, dynamic> jsonMap = json.decode(jsonString);
_localizedStrings = jsonMap.map((key, value) {
return MapEntry(key, value.toString());
});
return true;
}
我还在我的 pubspec.yaml 资产中添加了打击代码
- lang/
- resources/langs/en-US.json
- resources/langs/ar-AR.json
【问题讨论】:
-
问题解决了吗?
标签: android-studio flutter localization language-translation