一、概念
资源国际化有两个常用的术语 I18N 和 I10N 。
I18N即资源国际化,全称Internationalization;因为首字母I与末字母N之间共有18个字母,故称其为I18N。
通俗讲,资源国际化就是使产品适应国际环境,如语言、文化、习惯等。
L10N为资源本地化,全称Localization,因为首字母I与末字母N之间共有10个字母,故称其为L10N。
资源本地化就是为了使软件产品适应本地环境,如语言、文化、习惯等。
二、资源文件编码
国际化资源文件的命名规范:
<资源名><语言代码><国家/地区代码>.properties
例如:messages_zh_CN.properties
资源名:messages;语言代码(小写):zh; 国家/地区代码(大写):CN;
properties文件中保存的是key-value形式的属性对,key为索引,供程序中引用该资源,value为资源字符串,也就是需要显示的内容。properties中的资源必须经过编码,不允许出现中文、日文、法文等Unicode字符,而必须是ASCII字符。
Unicode(也叫统一码)是一种在计算机上使用的字符编码,它为每种语言的每个字符设定了统一且唯一的二进制编码,支持目前所有语言。简体中文。繁体中文、日文等字符都属于Unicode编码。Unicode字符占两个字节,而ASCII字符只占一个字节。
三、Unicode转ASCII工具
properties文件中只能包含ASCII字符,所以需要将Unicode字符转为ASCII字符。可以使用JDK自带的native2asii.exe工具转换,位于JDK安装目录的bin目录下。双击运行,输入中文,回车转化。
该工具可以将任意字符转换为ASCII字符。Unicode字符被转换为“\u”开头的一串字符。
目前主流开发工具都有相关的插件,在此只对该工具简单学习一下。