首页 技术 正文
技术 2022年11月6日
0 收藏 409 点赞 647 浏览 1879 个字

  为什么要国际化?

  不同国家与地区语言,文化,生活习惯等差异。在数字,时间,语言,货币,日期,百分数等的不同。

  两个名词:

  I18N:即资源国际化,全称为Internationalization,因为首字母与末字母之间共18个字母,又称为I18N。

  I10N:即资源本地化,全称为Localization,国为首字母与末字母之间共10个字母,又称为I10N。

    资源文件编码

  可以使用JDK自带的native2asii工具,该工具可以将任意字符转化为ASCII字符,它还支持整个properties 文件转换。参数格式:native2ascii -[option] [inputfile [outputfile]],其中-[option]包括-encoding encoding_name与-reverse。-encoding encoding_name就将文件按照encoding_name指定的编码方式转换。-reverse是将编码后的文件还原。-encoding参数可以省略,如果指定,一定要与源文件编码方式一致,否则会产生乱码。[inputfile]是将要转化的源文件路径。[outputfile]是转化后的文件输出路径。如果缺少此参数,则输出到控制台屏幕。

  除了使用native2ascii工具,还可以使用其他的第三方工具,例如properties文本编辑器。这是一个eclipse插件,用它打开properties文件后可直接输入中文,保存时会自动转化为ASCII码在ECLIPSE的FILE-SOFTWARE UPDATES-FIND AND INSTALL的对话框中输入http://propeidt.sourceforge.jp/eclipse/updates即可安装该插件。

  对Locale的处理

  可以通过fmt:setLocale设置locale以显示特定地区的数据。

  Locale.getAvailableLocales()返回一个可用的Locale的数组。

  Locale可用的方法有:

  getDisplayName()输出名称

  getCountry()输出国家缩写

  getDisplayCountry()输出国家名称

  getLanguage()输出语言缩写

  getDisplayLanguage()输出语言名称

  getVariant()输出别名

  将语言缩写与国家缩写代码用下划线组织起来,就是该Locale的代码,假如资源名称为message,则默认的资源文件为message.properties,中国大陆资源文件为message_zh_CN.properties,美国资源文件为message_en_US.properties。如果某Locale对应的资源文件存在,则会优先显示该properties文件里的空容。如果该资源文件不存在,或者文件存在但是该key-value属性对不存在,则会显示默认资源文件里的内容。

  资源可以带参数,通过fmt:param指定参数内容。

  ResourceBundle类

  该类可以读取资源文件的内容,但不可以修改,如果要修改,可以使用Properties类。

  Servlet的资源国际化

  Servlet资源的国际化可使用Eclipse的Externalize功能。Eclipse集成了Java类的资源国际化操作。通过右击Java源文件-Source-Externalize String命令,会弹出一个对话框,设置后会生成资源文件以及读取资源文件的Messages类,会把Java源文件中的字符串提取到properties文件中。

  不同的Locale对应的数据如数字,日期,时间,百分数,货币等都可能有所不同。

  对TimeZone的处理

  可以通过fmt:timeZone设置时区

  TimeZone.getAvailableIDs()获取可用的24个时区的ID

  TimeZone可用的方法有:

  getDefault()获取默认的当前的时区

  getTimeZone(String id)获取指定ID的时区

  getDisplayName()获取时区名称

  小结:

  资源国际化是开发跨地区、跨时区系统必然遇到的问题。开发时不仅要注意语言、数据、时区的国际化,还要注意地区间的文化差异、使用习惯差异等。最好把所有可能显示的文字都提取到资源文件中,可能因地区而变的图片、颜色也可以放到资源文件中。

  注:该文是整理JAVA WEB整合开发王者归来中资源国际化部分而成。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,000
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,512
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,358
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,141
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,771
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,849