第三百五十回


我们在上一章回中介绍了"给geolocator插件提交问题"相关的内容,本章回中将介绍如何获取系统语言.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概要介绍

我们在本章回中介绍的系统语言是指en,zh,de这样的语言代码,同时还有与这些语言匹配的地区代码。我们将在本章回中介绍详细的获取方法。

2. 获取方法

获取系统语言使用Localizations组件提供的相关接口就可以。我们通常使用它的localeOf()方法,在该方法中传入BuildContext类型的参数,就可以获取Locale
类型的对象,该对象中存放着系统语言和地区,我们在后面的小节中将通过具体的示例代码来演示。

2.1 获取语言

获取系统语言使用Locale的languageCode属性就可以,它的结果是en,zh,de这样的代码。

2.2 获取地址

获取地区使用Locale的countryCode属性就可以,它的结果是en-US,zh_CN,fr_CA这样的代码。

3.示例代码

///用来获取当前系统中的语言
Locale locale = Localizations.localeOf(context);
debugPrint(locale.countryCode);
debugPrint(locale.languageCode);
debugPrint(locale.toLanguageTag());
debugPrint(locale.toString());

上面的示例代码演示了如何获取当前的系统语言和地区,建议大家自己动手试试,此外,可以修改一下手机上当前的系统语言,这样会有不同的运行结果。

3. 内容总结

我们在本章回中介绍了获取当前系统语言和地区的方法,除此之外,我们还可以通过MaterialApp组件的locale属性主动指定当前app使用的语言和地区,当然了如果
不指定的话默认为跟随系统语言.最后,我们对本章回的内容做一个全面的总结:

  • 获取地区使用Locale的countryCode属性就可以;
  • 获取系统语言使用Locale的languageCode属性就可以;
    语言的地区的代码比较多,不过它们都是由标准规定的,下面是Locale类中的关于它们的解释:
class Locale {
  /// Creates a new Locale object. The first argument is the
  /// primary language subtag, the second is the region (also
  /// referred to as 'country') subtag.
  ///
  /// For example:
  ///
  /// ```dart
  /// const Locale swissFrench = Locale('fr', 'CH');
  /// const Locale canadianFrench = Locale('fr', 'CA');
  /// ```
  ///
  /// The primary language subtag must not be null. The region subtag is
  /// optional. When there is no region/country subtag, the parameter should
  /// be omitted or passed `null` instead of an empty-string.
  ///
  /// The subtag values are _case sensitive_ and must be one of the valid
  /// subtags according to CLDR supplemental data:
  /// [language](https://github.com/unicode-org/cldr/blob/master/common/validity/language.xml),
  /// [region](https://github.com/unicode-org/cldr/blob/master/common/validity/region.xml). The
  /// primary language subtag must be at least two and at most eight lowercase
  /// letters, but not four letters. The region subtag must be two
  /// uppercase letters or three digits. See the [Unicode Language
  /// Identifier](https://www.unicode.org/reports/tr35/#Unicode_language_identifier)
  /// specification.
  ///
}

看官们,与"如何获取当前系统语言"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

  • 26
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值