Android中判断当前语言是否为繁体中文

java 复制代码
Locale locale;
if (Build.VERSION.SDK_INT >= 24) {
    locale = LocaleList.getDefault().get(0);
} else {
    locale = Locale.getDefault();
}
String systemLanguage = locale.getLanguage();
if (systemLanguage.equals("zh")) {
    String languageTag = locale.toLanguageTag();
    if (languageTag.contains("zh-Hant") ||
            languageTag.contains("zh-TW") ||
            languageTag.contains("zh-HK") ||
            languageTag.contains("zh-MO")) {
        // 繁体中文
    } else {
        // 简体中文
    }
} else {
    // 其他语言
}

说明:

  1. locale.getLanguage()接口返回当前语言类别,比如:zh表示中文,但是不会区分简体和繁体。

  2. locale.toLanguageTag()接口返回格式良好的IETF BCP 47语言标记,比如:zh-Hans-CN表示语言为简体中文(zh-Hans),地区为中国大陆(CN);zh-Hant-TW表示语言为繁体中文(zh-Hant),地区为中国台湾(TW)。

  3. 条件中添加zh-TW、zh-HK、zh-MO判断的原因是:部分老型号手机(比如:红米note5、魅族MX6),没有单独的地区设置,当这些手机设置为繁体中文后,locale.toLanguageTag()接口返回的结果不是标准的IETF BCP 47语言标记,所以需要特殊处理。

相关推荐
踢球的打工仔4 小时前
PHP面向对象(7)
android·开发语言·php
安卓理事人4 小时前
安卓socket
android
安卓理事人10 小时前
安卓LinkedBlockingQueue消息队列
android
万能的小裴同学11 小时前
Android M3U8视频播放器
android·音视频
q***577412 小时前
MySql的慢查询(慢日志)
android·mysql·adb
JavaNoober12 小时前
Android 前台服务 "Bad Notification" 崩溃机制分析文档
android
城东米粉儿13 小时前
关于ObjectAnimator
android
zhangphil14 小时前
Android渲染线程Render Thread的RenderNode与DisplayList,引用Bitmap及Open GL纹理上传GPU
android
火柴就是我15 小时前
从头写一个自己的app
android·前端·flutter
lichong95116 小时前
XLog debug 开启打印日志,release 关闭打印日志
android·java·前端