flutter国际化
只写使用方法,记录一下使用步骤
第一步下载语言包,这个包包含了50多种语言,基本能满足需求
flutter_localizations:
sdk: flutter
第二步: 使用 Flutter Intl 插件,我是用的是vscode,以下是在vscode中的使用,
安装好后,查看以下使用该插件的一些指令
一般只用得到flutterIntl.initialize和flutterIntl.addLocale,
flutterIntl.initialize 用来初始化语言包配置,flutterIntl.addLocale用来新增一个其他语言的arb文件
第三步:使用插件,ctrl+shift+p出现如下窗口,输入flutterIntl.initiali指令初始化语言配置信息
执行完后会在lib目录下增加 generated 和 l10n两个包
generated包下的intl包默认存在一个messages_all.dart和messages_en.dart文件,messages开头的文件会在添加语言后自动生成
l10n包下存在一个intl_en.arb文件
第四步:使用 flutterIntl.addLocale 指令生成其他语言的arb文件
例如:zh_CN , 会在l10n包下生成Intl_zh_CN.arb文件 , 在其中填入对应的文案.
每次在arb文件下添加上对应的翻译后,保存一下,对应的dart文件就会自动添加
第五步:设置国际化语言
// 国际化
localizationsDelegates: [
// 本地化的代理类
GlobalMaterialLocalizations.delegate, //为Material组件库提供的本地化的字符串和其他值
GlobalWidgetsLocalizations.delegate, // 定义组件默认的文本方向,从左到右或从右到左
S.delegate,
],
// 应用支持的语言列表
supportedLocales: S.delegate.supportedLocales,
localeListResolutionCallback: (locales, supportedLocales) {
print('当前系统语言环境$locales');
return;
},
6.在部件中使用
在需要配置国际化的地方调用S.of(context).key即可.
没有context 时可以使用S.current.key