扑扑的国际化未如预期

时间:2018-07-11 16:40:32

标签: flutter flutter-layout flutter-dependencies

这是我尝试过的。

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;
}

这与flutter文档中提供的示例几乎相同。我在模拟器上进行了尝试。我将常规语言设置更改为Spanish。但是,该应用程序仍呈现了英文标题。文件中,所有语言代码均已描述。在这种情况下,我不确定如何实现区域代码和国家/地区代码的映射。 如果有人对此有任何想法,请提供帮助。

0 个答案:

没有答案