Flutter之GetX之国际化
- 在GetMaterialApp中设置
GetMaterialApp(
locale: Get.deviceLocale,
translations: Messages(),
fallbackLocale: const Locale("en_US"),
)
其中设置的locale为用Get.deviceLocale
设置的设备语言
translations设置的为我们继承Translations
的类
fallbackLocale设置当配置错误时使用的语言
- 创建
Messages
类继承Translations
类
class Messages extends Translations {
@override
Map<String, Map<String, String>> get keys => {
'en_US': {
'login': 'logged in as @name with email @email',
},
'zh_CN': {
'login': '登录用户 @name, 邮箱账号 @email',
}
};
}
- 使用,直接在字符串后面加上
.tr
后缀
Text("login".tr)
- 支持带参数
在配置的Map
的value中需要用参数配置的加上前缀@
使用
Text("login"
.trParams({"name": "R1cardo", "email": "[email protected]"}));
- 全局切换多语言
Get.updateLocale(const Locale("zh_CN"));