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语言标记,所以需要特殊处理。

相关推荐
木易 士心14 分钟前
别再只会用 drawCircle 了!一文搞懂 Android Canvas 底层机制
android
AtOR CUES2 小时前
MySQL——表操作及查询
android·mysql·adb
怣疯knight3 小时前
安卓App无法增加自定义图片作为图标功能
android
jinanwuhuaguo4 小时前
OpenClaw联邦之心——从孤岛记忆到硅基集体潜意识的拓扑学革命(第二十三篇)
android·人工智能·kotlin·拓扑学·openclaw
Gary Studio6 小时前
安卓HAL C++基础-命名域
android
诸神黄昏EX6 小时前
Android Google XTS
android
eSsO KERF7 小时前
MySQL Workbench菜单汉化为中文
android·数据库·mysql
pengyu9 小时前
【Kotlin 协程修仙录 · 筑基境 · 后阶】 | 调度器的艺术:Dispatchers 四大护法与 withContext 性能密码
android·kotlin
uElY ITER9 小时前
MySQL 中如何进行 SQL 调优
android·sql·mysql
xxjj998a9 小时前
Laravel3.x:奠定现代PHP框架的重要里程碑
android·开发语言·php