介绍
多语言方案:flutter_localizations 与 GetX 配合版,好处:命令行生成多语言字符串的引用常量类,缺点:切换语言以后,主界面需要手动触发setState,重绘将最新的Locale数据设置给GetMaterialApp。
目录
运行效果
一、安装
dependencies:
flutter_localizations:
sdk: flutter
intl: any
get: ^4.6.6
flutter:
uses-material-design: true
generate: true
二、使用
1.lib文件夹中新建文件夹l10n/arb,并在其中创建app_en.arb 、app_zh.arb、app_zh_HK.arb文件
app_en.arb类
{
"@@locale": "en",
"appName": "BraveComponent",
"@appName": {
"description": "备注"
},
"helloWorld": "HelloWorld",
"followerSystemLanguage": "FollowerSystemLanguage",
"simplifiedChinese": "SimplifiedChinese",
"traditionalChinese": "TraditionalChinese",
"english": "English",
"setting": "Setting",
"multiLanguage": "MultiLanguage",
"theme": "Theme"
}
app_zh.arb类
{
"@@locale": "zh",
"appName": "BraveComponent",
"@appName": {
"description": "备注"
},
"helloWorld": "你好,世界",
"followerSystemLanguage": "跟随系统语言",
"simplifiedChinese": "简体中文",
"traditionalChinese": "繁体中文",
"english": "英文",
"setting": "设置",
"multiLanguage": "多语言",
"theme": "主题"
}
app_zh.arb类
{
"@@locale": "zh_HK",
"appName": "BraveComponent",
"@appName": {
"description": "備注"
},
"helloWorld": "妳好,世界",
"followerSystemLanguage": "跟隨系統語言",
"simplifiedChinese": "簡體中文",
"traditionalChinese": "繁體中文",
"english": "英文",
"setting": "設置",
"multiLanguage": "多語言",
"theme": "主題"
}
2.项目的根目录中添加l10n.yaml,配置如下
arb-dir: lib/l10n/arb
template-arb-file: app_zh.arb
output-localization-file: app_localizations.dart
output-class: AppLocalizations
use-deferred-loa