Java项目资源国际化思路

        语言和地理环境对我们的文化产生重要影响.我们同他人之间的交流以及生活中的事件都发生在语言和地理环境所产生的一个系统里.由于语言和环境的不同,以至需要我们来制定一个适合的方式来达到向他人表述我们自己或者我们的想法的目的.为了有效地与他人交流,需要考虑对方的文化,环境以及使用对方的语言.  
    类似地,一套有实效的软件系统也要考虑用户的语言和地理区域.语言和区域形成了本地环境,描述了软件本地化的配置和上下文.在Java平台上,通过java.util.Locale对象来描述本地化.资源国际化不仅仅是语言环境的转换,还包括不同的文化差异,生活习惯,使用惯常等等。作为一个面向不同语言环境的系统,国际化是必须做的一项事情。
       Java对于读取properties文件,有自己的一套很完备的操作类,常用的有java.util.Properties和java.util.ResourceBundle类,但Properties类有个缺点是要指定相应属性文件的路径,使用起来缺乏灵活性。所以本文就详细讲讲使用ResourceBundle类得到不同语言环境的信息呈现给不同客户端环境。
      大型项目都会将不同功能块放在不同package下面,实现模块化开发。我们基于此,可以在不同功能块包下面提供相关的国际化资源文件,对于大部分环境,我们经常建立的属性文件有比如messages.properties, messages.zh_CN.properties, messages.en_US.properties,需要注意的是这些文件的命名是要遵循这种命名规范的,不然不会被搜索到相关的资源信息。我们可以利用MyEclipse提供的一项功能将相应的资源信息

提取出来:MyEclipse中源代码上右键->source->Externalize String...在弹出框中进行相关设置。在此向大家推荐一个eclipse的针对资源文件的编辑器,使用起来特别方便,叫做ResourceBundle Editor。我们在功能块中再增加一个Messages类,用于统一读取资源信息的方法封装。

       Locale确定了一种专门的语言和区域.通过使用java.util.Locale对象来为那些区域敏感型的对象定制格式化数据以及向用户的展示.Locale影响到用户界面的语言,情形映射,整理(排序),日期和时间的格式以及货币格式.Locale在很多文化背景和语言敏感型的数据操作上的要求很严格.

       在Java应用程序或Web程序中,我们可以根据情况,设置所需的Locale类型,比如中文环境时zh_CN,英文环境一般设置为en_US,默认的Locale对于应用程序是JVM通过虚拟机搜寻运行OS信息获得,而对Web应用程序是通过客户端浏览器发送请求时将客户端运行语言环境传递到服务器端,我们就可以根据需要调用Messages.getString(key, locale)获取自己设定的locale类型资源信息。

        在资源文件中,我们可以设置一些参数,然后在程序执行的时候通过将参数传进去,得到需要的信息,比如:key=你ip:{0}不在该网段! 在Messages类中写一个方法组装最后所得信息:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值