`
su1216
  • 浏览: 671070 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
深入入门正则表达式(jav...
浏览量:71926
E60283d7-4822-3dfb-9de4-f2377e30189c
android手机的安全问...
浏览量:128777
社区版块
存档分类
最新评论

java获取系统语言(区分简体中文和繁体中文)

    博客分类:
  • java
阅读更多

之前做android应用时遇到过一个问题,就是根据语言的不同而显示不同的内容

网上很多代码都是错误的,起码无法区分简体和繁体,这里给出一种方法

不涉及android任何知识,所以就归类到java这边了

 

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/

2
1
分享到:
评论

相关推荐

    Android多语言与国际化

    例如,`values-zh_CN`代表简体中文,`values-zh_TW`代表繁体中文,`values-en`代表英文等。这些文件夹内通常包含`strings.xml`文件,用于存储各种字符串资源。 2. **字符串资源**: `strings.xml`文件是存储应用中...

    精通正则表达式-第三版-简体中文版

    2. **Java**:从Java 1.4开始引入java.util.regex包,支持正则表达式,Java 1.5和1.6增加了更多特性。 3. **PHP**:PHP在后来的版本中增加了内置的正则表达式支持,提供了preg_match系列函数。 4. **JavaScript**...

    Java统计输入字符的英文字母、空格、数字和其它

    `E1`的正则表达式`[\u4e00-\u9fa5]`定义了一个Unicode字符范围,这个范围基本上涵盖了所有简体中文汉字。而`E2`的正则表达式`[a-zA-Z]`表示匹配任何一个英文字母,不论大小写。 接下来,程序通过将输入的字符串`str...

    propertiesEditor

    在国际化过程中,每个语言版本都有对应的.properties文件,如en_US.properties代表美国英语,zh_CN.properties代表简体中文等。"propertiesEditor"可能支持这些文件的导入和导出,便于与翻译团队协作。此外,它可能...

    SourceCounter

    而".url"文件是Windows系统中的快捷方式,"金山毒霸 2008 官方简体中文正式版.url"可能是指向金山毒霸的下载链接,与SourceCounter本身无关,但可能是同时提供给用户的其他资源。"中文天下下载Www.ZwSky.Cn.url"同样...

    代码行统计工具

    1. **多语言支持**:工具应能处理各种编程语言,如Java、Python、C++、JavaScript等,并正确区分代码、注释和空行。 2. **排除指定文件或目录**:允许用户排除不希望被统计的文件或整个目录,比如第三方库或者测试...

    MySQL中文问题总结

    - `gbk`是用于简体中文的字符集,`gbk_chinese_ci`是对应的校对集,`ci`代表“case insensitive”,即不区分大小写。 3. **创建表时设置字符集**: - 表的字符集可以在创建时指定,如: ```sql CREATE TABLE ...

    小知识点i18n,关于国际化处理

    国际化(i18n)是软件开发中的一个重要概念,它指的是使软件能够适应不同语言和地区的能力。"i18n"这个名字来源于"internationalization"这个单词,其中"i"和"n"之间有18个字母。这个术语通常与本地化(l10n)一起使用,...

    Myatis中文基础手册

    - **版本国际化**:MyBatis文档提供了多种语言版本,包括英语、西班牙语、日语、韩语和简体中文等,便于不同地区的开发者学习使用。 #### 三、安装与配置 - **安装方法**: - 将`mybatis-x.x.x.jar`文件放置在项目...

    有错的.vimrc配置文件

    - `setlangmenu=zh_CN.UTF-8`:设置语言菜单为简体中文。 - `sethelplang=cn`:尽管在示例中被注释掉,但该命令用于指定帮助文档的语言为中文,这有助于非英语母语的用户更好地理解和使用Vim的内置帮助系统。 ### ...

    EditPlus_SC.zip

    这个文件可能是EditPlus的可执行程序或配置文件,SC可能是“简体中文”的缩写,意味着这个版本是针对中文用户的。 综上所述,EditPlus是一个全面的文本编辑工具,尤其适合程序员和Web开发者使用。通过其丰富的功能...

    Cookie'.docx

    3. `language`:这个Cookie保存了用户的语言设置,这里为“SIMPLIFIED”,代表简体中文。 4. `sid`:通常代表Session ID,用于跟踪用户在网站上的会话,当会话结束时,这个Cookie可能会被清除。 5. `CITY_NAME`:...

    ResourceBundle类在jsp中的国际化实现方法

    简体中文|<a href="/International/test.jsp?language=en">English ResourceBundle bund = ResourceBundle.getBundle("msg", request.getLocale()); String str = request.getParameter("language"); if (str ...

    经典Python面试题之Python基础篇.docx

    - **GBK**: 中文编码标准,主要用于简体中文。 #### 14. 字节码和机器码的区别? - **字节码**: Python 编译后的中间代码,可以跨平台运行。 - **机器码**: CPU 可以直接识别并执行的指令,特定于处理器架构。 ##...

Global site tag (gtag.js) - Google Analytics