这是我尝试过的。
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
var countryCode = Localizations.localeOf(context);
var localization = new MyAppLocalizations(countryCode);
return new Scaffold(
appBar: new AppBar(),
body: new Center(
child:new Text(localization.title),
),
);
}
}
class MyAppLocalizations {
MyAppLocalizations(this.locale);
final Locale locale;
static MyAppLocalizations of(BuildContext context) {
return Localizations.of<MyAppLocalizations>(context,
MyAppLocalizations);
}
static Map<String, Map<String, String>> _localizedValues = localeMap();
String get title {
return _localizedValues[locale.languageCode]['title'];
}
}
Map<String, Map<String, String>> localeMap(){
Map<String, Map<String, String>> _localisedMap ={
'en': {
'title': 'Hello World',
},
'es': {
'title': 'Hola Mundo',
},
};
return _localisedMap;
}
这与颤振文档中提供的示例几乎相同。我在模拟器上尝试了这个。我将一般语言设置更改为西班牙语。但是,该应用程序仍然呈现英文标题。此外,在 window.dart 文件中,所有语言代码被贬低了。我不知道在这种情况下如何实现区域代码和国家代码的映射。如果有人对此有任何想法,请提供帮助。