我们在这里说的国际化设置是指在App设置相关操作,这样可以让不同国家的用户使用App时呈现不同的语言。总之,就是通过相关的操作,让App支持多个国家的语言。
对多国语言的设置是通过MaterialApp组件完成的,该组件提供了相关的属性来控制App支持的语言,这些属性如下:
return MaterialApp(
//locale属性可以手动指定当前app使用的语言和地区,如果不指定,默认为跟随系统语言
// locale: Locale('zh','CN'),
locale: Locale('es'),
localizationsDelegates: [
//添加自己定义的多语言文字
AppLocalizations.delegate,
//添加这三个delegate后界面上的文字就会自动适配手机当前的语言
//这三个库包含系统自带组件中使用的文字,比如日期组件中的年月日
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
//添加多国语言和语言对应的地区,IOS的版本在info.plist中添加
supportedLocales: [
Locale('en',"US"),
Locale('zh',"CN"),
Locale('es'),
],
);
上面的示例代码是在MaterialApp组件中进行的,我们只列出了核心代码,其它代码省略了,大家可以到Github上main.dart文件中查看完整的代码。我们对代码中
的相关内容做一些解释,以方便大家了解国际化相关的内容;
//获取App当前的语言设置
Locale _locale = Localizations.localeOf(context);
Text("language code: ${_locale.languageCode}"),
Text("country code: ${_locale.countryCode}"),
//显示App支持的所有语言
Text("local all: ${_locale.toString()}"),
//使用自定义语言包中的文字:helloWorld
Text("test localization: ${AppLocalizations.of(context)!.helloWorld}"),
上面小节的内容比较零散,我们将总结一下如何给App设置国际化相关的内容,以便让大家更好地理解国际化相关的内容: