javaweb国际化

本文介绍了如何使用ResourceBundle和Locale对象实现JavaWeb应用的国际化。通过创建遵循特定命名规则的.property资源文件,放置在指定路径下,然后初始化Locale对象并用其获取ResourceBundle,最后进行编码转换,实现根据不同地区显示相应语言内容的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

软件开发国际化是一个很常规的需求,实现国际化的方法也比较多,比如前端国际化方法jQuery.i18n.properties,现在介绍采用ResourceBundle和Local对象实现Javaweb国际化。
ResourceBundle是一个资源包,包含不同区域(Local)的资源集合,只要向ResouceBundle提供一个特定的Locale对象,ResouceBundle就会把相应的资源返回给你。

Locale 对象表示了特定的地理、政治和文化地区。
这里写图片描述

实现javaweb国际化步骤:
1、建立资源文件
ResourceBundle对象读取的文件是.property文件,在建立建立property文件的时候特别要注意2点:
(1)命名规则:自定义基名语言代码国别代码.properties
例resource_en_US.property(英文)

toolbar.welcome=Welcome
toolbar.modifyPassword=Reset Password
toolbar.gismap=GIS Map

resource_zh_CN.property(中文)

toolbar.welcome=欢迎
toolbar.modifyPassword=修改密码
toolbar.gismap=GIS地图

(2)property资源文件的存放位置
资源文件需要放到src的根目录下面,或者放到自己配置的classpath下面,否则ResourceBundle对象读取不到资源文件

2、初始化(获取)Local对象

request.getLocale()//根据当地的语言环境获取Local对象

或者可以利用构造函数获取自定义的Local对象,例:

Locale locale = Locale.US;
Locale locale = Locale.CHINA;

3、根据Local对象获取ResourceBundle对象
通过ResourceBundle类提供的静态方法获取对象:

ResourceBundle bundle = ResourceBundle.getBundle("resource", locale);

该方法需要两个参数,第一个参数是资源文件名,即自定义资源文件的基名,切记不要添加.property后缀名;第二个参数是一个local对象
获取到bundle对象之后,通过对象调用getString()方法便可读取资源文件
读取资源文件字符串的时候需要注意一点,由于property资源文件默认采用的是ISO-8859-1编码,而webapp界面一般采用的都是utf-8编码,需要对读取的字符串资源进行编码转换,例:

String stringData = new String(bundle.getString("toolbar.welcome").getBytes("ISO-8859-1"),"utf-8");

获取到资源文件中的字符串后,便可以利用占位符<%=stringData %>替代jsp页面中的静态写法,这样jsp文件显示的内容就会根据当地的语言环境进行中英文切换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值