如何解决如何使用GetX包获取Flutter中的当前语言环境?
示例https://pub.dev/packages/get/example仅显示手动设置字符串的语言环境:
-1
如果我不使用“ locale:Locale('pt','BR')“,则Text(” title“ .tr)之类的代码不起作用。 因此,我需要将当前语言环境设置为“ locale”属性,但是如何获取当前语言环境?
解决方法
该软件包的作者在自述文件(https://pub.dev/packages/get#internationalization)中添加了有关此信息:
要读取系统区域设置,可以使用window.locale。
import 'dart:ui' as ui;
return GetMaterialApp(
locale: ui.window.locale,);
,
您可以使用Get.locale
的{{1}}扩展名内定义的LocalesIntl
只读属性
package:get/get_utils/src/extensions/internacionalization.dart
如果要使用当前系统语言环境,请final locale = Get.locale;
并添加window.locale
如果 BuildContext 可用,我们可以通过这种方式获取当前语言环境
Locale myLocale = Localizations.localeOf(context);
根据文档https://flutter.dev/docs/development/accessibility-and-localization/internationalization
另一种选择是使用官方的 intl 库
import 'package:intl/intl.dart';
String locale = Intl.getCurrentLocale(); // returns language tag,such as en_US
,
返回 GetMaterialApp( 语言环境:Get.deviceLocale, );
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。