之前做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/
分享到:
相关推荐
java工具类,中文简体转繁体,ZHConverter,可以对文件夹内的所有文件整体转换。
用java写的java中文繁体转中文简体程序,非常方便好用。
Java获取系统图标方法 为Action的java文件... 使用方法:直接在img标签指定src到此Action的dispalyIcon方法 !dispalyIcon.do" width="" height=""/>
可以用scala ,也可以用java,我主要的目的是用来判断汉字是否为繁体,
NULL 博文链接:https://softwarexiang120.iteye.com/blog/1452912
java 1. 使用wmic相关命令获取windows硬件相关信息。 2. 使用shell相关的dmidecode/fdisk/ifconfig命令获取Linux硬件和系统相关信息
java获取当前系统信息,获取系统信息。
linux 下用java 获取系统信息 cpu mem jvm等 用java调用系统命令得到,方便实用
此文档0分下载,只为了帮助喜欢学习JAVA的朋友们!此文档中记载了详细的JAVA获取系统时间,希望可以帮到JAVA的初学者!
java语言系统分析期末大作业客户管理系统源代码java语言系统分析期末大作业客户管理系统源代码java语言系统分析期末大作业客户管理系统源代码。java语言系统分析期末大作业客户管理系统源代码java语言系统分析期末大...
Java获取系统信息(cpu_内存_硬盘_进程等)的相关方法.doc,详细介绍程序的功能及执行
java获取系统安装字体,这是一个工具类,能实现从系统中获取本系统安装的所有字体并返回显示。
Java获取系统信息(cpu,内存,硬盘,进程等)的相关方法.pdf
获取系统参数
Java 汉字 拼音 部首 笔画 笔画数目 Java,获取汉字拼音、部首、笔画、笔画数目源文件、源码
前段时间摸索在Java中怎么获取系统信息包括cpu、内存、硬盘信息等,刚开始使用Java自带的包进行获取,但这样获取的内存信息不够准确并且容易出现找不到相应包等错误,所以后面使用sigar插件进行获取。下面列举出...
通过Java程序获取Windows/Linux系统的CPU信息、内存信息、硬盘信息、网络信息、操作系统信息等。
java繁体和简体之间转换。根目录文件夹java下src/start.java文件是例子,bin下是jar包
java获取不同操作系统的名称以及mac地址工具类,例如:windows,Linux,Unix等
java获取系统参数规格,java代码实现