学而实习之 不亦乐乎

Android 区分中文简体和繁体

2023-08-07 07:44:31

Android 和 IOS 系统语言都遵守 ISO 639,但在 Android 下简体和繁体语言都是 "zh",无论手机切换到中文繁体还是选择简体中文得到的语言代码都是 "zh",因此想要区简体还是繁体,需要使用其他方法配合使用。

方法一

首先根据:Locale.getDefault().language 判断如果是zh ,可以借助:

Locale.getDefault().toLanguageTag()

Locale.getDefault().toLanguageTag() 获取的数据:

  • 香港:zh-Hant-HK
  • 台湾:zh-Hant-TW
  • 澳门:zh-Hant-MO
  • 大陆:zh-Hans-CN
var languages = Locale.getDefault().language
var languageTag = Locale.getDefault().toLanguageTag()

if (languages=="zh"){
    when(languageTag){
        "zh-Hant-TW"->{
            //繁体 台湾
        }

            "zh-Hant-HK"->{
            //繁体 香港
        }

        "zh-Hant-MO"->{
            //繁体 澳门
        }

        "zh-Hans-CN"->{
            //简体 大陆
        }
    }
}

方法二

首先根据:Locale.getDefault().language 判断如果是否为 zh

然后使用:Locale.getDefault().country 获取地区进行判断,如下:

  • 香港:HK
  • 台湾:TW
  • 澳门:MO
  • 大陆:CN
var languages = Locale.getDefault().language
var country = Locale.getDefault().country

if (languages=="zh"){
    when(country){
        "TW"->{
            //繁体 台湾
        }
            "HK"->{
            //繁体 香港
        }

        "MO"->{
            //繁体 澳门
        }

        "CN"->{
            //简体 大陆
        }
    }
}