作者:悟道山水_805 | 来源:互联网 | 2023-09-05 16:42
http:blog.sina.com.cnsblog_6c7e59770101p7w9.html一、I18N在J2EE中的应用【转载:http:blog.csdn.netchang
http://blog.sina.com.cn/s/blog_6c7e59770101p7w9.html
一、I18N 在 J2EE 中的应用
【转载:http://blog.csdn.net/changzhang/article/details/2164753】
1. 加 standard.jar 和 jstl.jar 文件到/WEB-INF/lib
2. 配置web.xml文件,加入如下内容:
javax.servlet.jsp.jstl.fmt.localizationContext
messages.page.resource
3. 编写国际化文件 resource_zh_CN.properties 并放之于/WEB-INF/classes(src) 对应的包里面
4. 将 properties 文件进行编码,cmd:native2ascii resource_zh_CN.txt resource_zh_CN.properties(.txt -> .properties,否则出现乱码)
5. 设置语言地区
(1) web.xml 内设置
javax.servlet.jsp.jstl.fmt.fallbackLocale
en
(2) 在 jsp 页面设置(locale 写入了另外的配置文件,可通过发来的请求读取 locale 值)
6. jsp文件应用
<%@ page cOntentType="text/html;charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
...
...
二、I18N 在 J2SE 中的应用
【参考:http://blog.csdn.net/haiyan0106/article/details/2257725】
1、引入必要的文件
import java.util.Locale;
import java.util.ResourceBundle;
2、将 properties 文件放置于 src 目录下(否则 Cann't find Bundle for base name)
3、Locale、ResourceBundle的设置
Locale locale = new Locale("en", "US");
ResourceBundle resb = ResourceBundle.getBundle(src, locale);
myName = resb.getString(MY_NAME_KEY).trim();
Locale 指明本地化情况,决定从"property_en.properties"中去读取配置项。若不存在,则默认从"property.properties" 中获取。
ResourceBundle在遇到“#”行(注释)时会忽略。
getString() 自动读取资源文件中相应的 key 值,读取失败的时配置项会使用缺省值。【最方便的地方】
I18N 国际化的相关教程结束。