Android获取系统语言(区分简体中文和繁体中文) .
来源:互联网 发布:网络发射器和接收器 编辑:程序博客网 时间:2024/05/31 19:43
之前做android应用时遇到过一个问题,就是根据语言的不同而显示不同的内容
网上很多代码都是错误的,起码无法区分简体和繁体,这里给出一种方法
不涉及android任何知识,所以就归类到java这边了
- Locale locale = Locale.getDefault();
- System.out.println(locale.getLanguage());
- System.out.println(locale.getCountry());
- Locale locale = Locale.getDefault();
- System.out.println(locale.getLanguage());
- System.out.println(locale.getCountry());
这里我们关注两个方法
public String getLanguage()
Since: API Level 1
Returns the language code for this Locale or the empty string if no language was set.
public String getCountry()
Since: API Level 1
Returns the country code for this locale, or "" if this locale doesn't correspond to a specific country.
返回的都是代码(code),需要解释下语言代码和国家代码
语言代码(或语言编码)是一组用来代表语言的代码。语言代码是由字母或数字组成的短字串,用于分类图书馆典藏、电脑程式上的本地化和翻译等用途。(转自中文维基百科)
国家代码(或国家编码)是一组用来代表国家和境外领土的地理代码。国家代码是由字母或数字组成的短字串,方便用于数据处理和通讯。世界上有许多不同的国家代码标准,其中最广为人知是为国际标准化组织的ISO 3166-1。国家代码也可以指国际长途电话国家号码,即国际电信联盟的国际电话区号(E.164)。(转自中文维基百科)(这里指的是前者)
那么语言代码和国家代码的对应关系是什么呢,我们可以参考下面两个文献
ISO 639:Codes for the representation of names of languages
ISO 3166:Codes for the representation of names of countries and their subdivisions
如果系统使用的是汉语,那么getLanguage()返回的字符串为zh,然后根据getCountry()返回结果可以判断出简体还是繁体了。如果是TW,那么就是繁体了,返回CN则是简体,如果返回了HK,这个自己看着办吧。。。
在android中,切换系统语言后,这两个函数的返回值就都会做出相应的改变
在android中,简体中文和繁体中文字符串资源要分别放到res/values-zh-rCN和res/values-zh-rTW下,这里为什么会有个r,我也不清楚
ps:在ISO 3166-1 alpha-2中,TW的说明为:Taiwan, Province of China,还是有些令人欣慰的
转贴请保留以下链接
本人blog地址
http://su1216.iteye.com/
http://blog.csdn.net/su1216/
- Android获取系统语言(区分简体中文和繁体中文) .
- java获取系统语言(区分简体中文和繁体中文)
- java获取系统语言(区分简体中文和繁体中文) .
- 快速区分简体中文和繁体中文
- ios 判断系统语言是简体中文还是繁体中文
- 简体中文和繁体中文转换方法
- 简体中文和繁体中文的转换
- 【Unity3D游戏开发】Application.systemLanguage无法区分简体中文和繁体中文 (二六)
- 【Unity3D游戏开发】Application.systemLanguage无法区分IOS简体中文和繁体中文
- 整站简体中文和繁体中文转换
- 使用 cconv 转换简体中文和繁体中文
- Android系统语言默认设置为简体中文
- Android系统语言默认设置为简体中文
- Android初始化系统语言为简体中文
- Android定制系统语言为简体中文
- Android定制系统语言为简体中文
- Android系统语言默认设置为简体中文
- win10系统下怎么将繁体中文切换成简体中文
- 单例模式
- Android 让焦点控件一直停留在某个控件上
- dbms_stats
- 算是开通博客的通告吧
- VS调试问题,程序无法正常启动 (使用openFlight_API中遇到的问题)
- Android获取系统语言(区分简体中文和繁体中文) .
- 注册欧盟商标
- D - Colour sequence
- java异常处理机制
- STM32 硬件IIC操作
- Decode Ways
- 设计模式系列之代理
- Vs2010中删除空行
- 单例运用的范围