tomcat国际化

tomcat在运行的过程中,不同的国家输出的信息(log信息)是不同的语言,通过以下方法做到的:
根据本地化对象来实现,它封装了适用于本地环境的资源。
tomcat将一些资源配置信息写入properties文件中,这样便于读取与编辑,如果将所有类的错误信息都写在一个properties文件,优惠导致文件太大,不便于读写。为避免这种情况,tomcat将properties文件按照不同的包进行划分,每个包下都有自己的properties文件。org.apache.catalina.connector包下的properties文件包含了该包下所有的类中可能抛出的错误与配置信息。每个properties文件都由一个org.apache.catalina.util.StringManager实例来处理。在tomcat运行时,会建立很多StringManager类的实例,每个实例对应一个properties文件。
在每个类需要查找某个配置的提示信息时,会先获取对应的StringManager实例。
eg:
StandardServer.java类来说(只贴出部分代码):

public static final String Package = "org.apache.catalina.core";
//上面的这个属性来自Constants.java类里
private static Hashtable managers = new Hashtable();
/**
* The string manager for this package.
*/
private static final StringManager sm =
StringManager.getManager(Constants.Package);
public synchronized static StringManager getManager(String
packageName) {
StringManager mgr = (StringManager)managers.get(packageName);

if (mgr == null) {
mgr = new StringManager(packageName);
managers.put(packageName, mgr);
}
return mgr;
}
private StringManager(String packageName) {
String bundleName = packageName + ".LocalStrings";
try {
bundle = ResourceBundle.getBundle(bundleName);
return;
} catch( MissingResourceException ex ) {

而在StandardServer.java类中是这样使用的,

public void start() throws LifecycleException {

// Validate and update our current component state
if (started) {
log.debug(sm.getString("standardServer.start.started"));
//根据这里的key值在资源文件中查找对应的value值,LocalStrings.properties资源文件中可以找到standardServer.start.started=This server has already been started配置项
return;
}
如果本地环境为日文系统,那么通过org.apache.catalina.startup.LocalStrings键值取得的资源是org.apache.catalina.startup.LocalStrings_ja.properties中的文件信息。

最后通过bundle.getString(key);方法,即可得到本地资源信息。



ResourceBundle.getBundle("config.page");使用方法得学习一下

项目中对日志内容等进行国际化管理。并且,日志内容用两个文件处理。


日志内容资源文件是Log.properties.

那么建立两个资源束分别处理这这个本地资源。

bundle = ResourceBundle.getBundle("Log.");

使用时,只需要添加不同的本地信息即可。例如:Log_ja.properties,Log_en.properties等
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值