论坛首页 入门技术论坛

java用static和hashmap高效处理汉化的问题

浏览 2933 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-08-25  
本人刚入行1年,在javaeye呆过半年多吧,看到这么多牛人在技术上的认识和见解,深表佩服;
进来在做项目的时候碰到一个英文汉化的问题,也没有什么例子可以参考,就自己弄了一个方法,自我感觉良好,特分享出来,希望老鸟能提出点意见,当然如果能有更好的处理方法,请不吝赐教!

需求是这样的:公司是做j2ee服务器的,web容器,ejb容器都已经完成了,但是在对这些容器监控的时候,后台提供的数据都是英文,不可能再该,而页面则为了服务更多的中国客户,需要中文显示;

本人的实现:新建一个类,在该类中包含一个hashmap(在数据查找方面没有比这个容器更有效率的),声明一个静态块,将所有英文和中文转化的名值对放入该map中,源码:
public class NameConvert {

public  static  Map<String, String> nameMap = new HashMap<String, String>();
static{
nameMap.put("CreateCount", "创建的EJB实例数(个)");
nameMap.put("RemoveCount", "销毁的EJB实例数(个)");
nameMap.put("JSPCount", "已加载的jsp个数");
nameMap.put("milliseconds", "微秒");
nameMap.put("JMSMaxMessagesLoad", "JMS会话装载的最大消息数");
}

public NameConvert() {

}

public Map getNameMap() {
return nameMap;
}

public void setNameMap(Map nameMap) {
this.nameMap = nameMap;
}
}

注:转化个数比较多,本人只放了5个,
把hashmap放到static的好处是:这个类用的太频繁,如果每点用一次就要创建一个类的话,将是一个大的内存消耗,虽然java有垃圾回收机制,但是就像《effective java》中说的那样,不敢太相信它
用这个hashmap的话,只要将英文传进来,即可以得到相对应的中文信息
   发表时间:2008-08-25  
struts有个东西叫i18n
0 请登录后投票
   发表时间:2008-08-25  
farryu 写道
本人刚入行1年,在javaeye呆过半年多吧,看到这么多牛人在技术上的认识和见解,深表佩服;进来在做项目的时候碰到一个英文汉化的问题,也没有什么例子可以参考,就自己弄了一个方法,自我感觉良好,特分享出来,希望老鸟能提出点意见,当然如果能有更好的处理方法,请不吝赐教! 需求是这样的:公司是做j2ee服务器的,web容器,ejb容器都已经完成了

看来你公司的技术实力很强。这些服务器能自己开发不是一般的公司。。关注中...

 

0 请登录后投票
   发表时间:2008-08-25  
i18n确实不错,可是它还要把别的框架加进来,而我们的页面是纯jsf的,
jsf也要自己的国际化解决方案,和struct类似,不过他不能形成很好的映射,只能给property文件制定一个静态的key,得到一个静态的value
例如:message.properties里面有一条:
CreateCount=创建的EJB实例数(个)

在页面引用的时候就只能写message['CreateCount']得到右面的值,而我的需求则是一个可通过bean改变key值得方式
0 请登录后投票
   发表时间:2008-08-25  

farryu 写道
本人刚入行1年,在javaeye呆过半年多吧,看到这么多牛人在技术上的认识和见解,深表佩服;进来在做项目的时候碰到一个英文汉化的问题,也没有什么例子可以参考,就自己弄了一个方法,自我感觉良好,特分享出来,希望老鸟能提出点意见,当然如果能有更好的处理方法,请不吝赐教! 需求是这样的:公司是做j2ee服务器的,web容器,ejb容器都已经完成了,

看来你公司的技术实力很强。这些服务器能自己开发不是一般的公司。。关注中...

呵呵,比较一般化的
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics