前言
Flutter 项目需要支持国际化,就是在 app 内实时切换不同的语言,满足不同用户的需求。Flutter 默认支持英文的文本和组件,如果需要添加本地的支持,直接在 Plugins 引入插件 Flutter Intl,就可以初始化 intl 和添加添加我们想添加的每一种语言。 接下来我简单总结一下在vsocde中的 Flutter 项目中如何实现国际化。
- 下载语言包,这个包包含了50多种语言,基本能满足需求
flutter_localizations:
sdk: flutter
-
使用 Flutter Intl 插件,我是用的是vscode,以下是在vscode中的使用
安装好后,查看以下使用该插件的一些指令
-
使用插件,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文件就会自动添加。
intl_en.arb
{
"title": "Home",
"setting_language": "Set Language",
"english": "English",
"chinese": "Chinese"
}
intl_zh.arb
{
"title": "首页",
"setting_language": "设置语言",
"english": "英文",
"chinese": "中文"
}
- 设置 MaterialApp 语言环境
MaterialApp