JAVA WEB开发中的资源国际化
为什么要国际化?
不同国家与地区语言,文化,生活习惯等差异。在数字,时间,语言,货币,日期,百分数等的不同。
两个名词:
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整合开发王者归来中资源国际化部分而成。
JAVA WEB开发中的资源国际化的更多相关文章
- Java Web开发中路径问题小结
Java Web开发中,路径问题是个挺麻烦的问题,本文小结了几个常见的路径问题,希望能对各位读者有所帮助. (1) Web开发中路径的几个基本概念 假设在浏览器中访问了如下的页面,如图1所示: 图1 ...
- Java Web 开发中路径相关问题小结
Java Web开发中路径问题小结 (1) Web开发中路径的几个基本概念 假设在浏览器中访问了如下的页面,如图1所示: 图1 Eclipse中目录结构如图2所示: 图2 那么针对这个站点的几个基本概 ...
- java web项目中打开资源文件中文乱码
1 java web项目中经常使用多模块管理.在某一个模块中添加了一些资源文件.但不是启动项目.有时候需要在程序中读取资源文件内容,打包后放到容器中就不能正常运行了.需要将所有资源文件放到启动项目的 ...
- java web开发中常用的协议的使用和java-web 常见的缓冲技术
一.DNS协议 作用将域名解析为IP 类似于我们只需要知道中央一台,中央二台,而不需要知道它的频率,方便记忆. java dns 域名解析协议实现 1 域名解析,将域名可转换为ip地址InetAd ...
- 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践
提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...
- Java Web开发中MVC设计模式简介
一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条 ...
- Java Web开发中路径问题小结(getRequestUrl getContextUrl getServletUrl)
看以博客感觉不错,分享一下http://www.cnblogs.com/tianguook/archive/2012/08/31/2665755.html (1) Web开发中路径的几个基本概念 假设 ...
- Java Web开发中的名词解释
1.JVM Java虚拟机,class文件的运行时环境,就好比软件运行在操作系统一样,java要运行在JVM中才行,这也是Java之所以支持扩平台的基础. 2.Servlet/JSP 是满足一定接口需 ...
- JAVA WEB开发中的会话跟踪
常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份. Http协议是一种无状态的协议,一旦数据交换完毕,客 ...
随机推荐
- 针对 FastAdmin 2018-01-19 号的升级 SQL (废)
FastAdmin 在 2018-01-19 升级增加了以下功能. 新增前台会员模块和API会员模块 新增后台会员管理.会员规则和会员分组管理 新增短信发送的行为事件 新增前台Token.短信.日志模 ...
- 箭头函数中的 this
JS 每一个 function 都有自己独立的运行上下文,但箭头函数不属于普通的 function,所以没有独立的上下文. 所以在箭头函数里写的 this 其实是包含该箭头函数最近的一个 functi ...
- asp.net 退出登陆(解决退出后点击浏览器后退问题仍然可回到页面问题)
代码如下: Session.Abandon(); Response.Redirect("Login.aspx"); 但是这样点点击浏览器的后退仍然可以回到刚才的页面,这可不行,在网 ...
- 学习 ASP.NET MVC
http://www.cnblogs.com/gaoweipeng/category/203080.html http://blog.csdn.net/liu_ben_qian/article/det ...
- java学习之路之javaSE基础1
<h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...
- 码出高效,阿里巴巴JAVA开发手册1.4.0
码出高效,阿里巴巴JAVA开发手册1.4.0阅读笔记 一.编程规约(三) 代码格式// 关键词if与括号之间必须有一个空格,括号内的f与左括号,0与右括号不需要空格 if (flag == 0) { ...
- phonegap 2.9 IOS Xcode 搭建环境
一:下载phoneGap2.9和安装Xcode5(目前最新版) 选择2.9是因为3.0以上坑爹版本编译神马的要在有网络情况. 二: 下载phonegap后解压到你的指定文件夹中,解压后找到create ...
- 知识点查缺补漏贴03:单机最大进程数,线程数和Socket连接数
前言: 参加Unix/Linux相关高级研发职位时,是否经常会被文档,单机允许最大进程数.线程数和Socket连接数,而你却感到束手无措呢?本文给你一个最为详细的答案. 一.最大进程数 运行Linux ...
- ASP.NET Web Pages:C# 和 VB 实例
ylbtech-.Net-ASP.NET Web Pages:C# 和 VB 实例 1.返回顶部 1. ASP.NET Web Pages - C# 和 VB 实例 通过 C# 和 Visual Ba ...
- 杂项-性能测试工具:LoadRunner
ylbtech-杂项-性能测试工具:LoadRunner LoadRunner,是一种预测系统行为和性能的负载测试工具.通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadR ...