快速业务通道

Java多国语言问题解决方案 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23

Java多国语言问题解决方案

时间:2010-12-10

随着经济全球化的发展,产生了众多的跨国公司,而Java语言的出现以及网 络通讯技术的飞速发展,使企业仅购买一套基于web的企业级应用软件(比如说 :OA系统,ERP系统、CRM等),通过网络就能满足整个集团共同使用该软件成为 可能。既减少了软件费用,又缩短了信息延迟,提高了企业运作效率。但因为应 用系统是面向多个国家,多种语言的,所以在设计软件时就不得不解决国际化( internationalization)问题,国际化的程序应支持多国语言,不同格式的日期 、时间、货币和其它值,还有操作界面的风格、界面个性化定制等问题.,本文着 重论述多国语言的解决方案:

Java语言是一种面向对象的语言,所以可以生成一个国际化的软件包,使由系 统自动根据区域及语言设置的属性进行判断成为可能。

解决方案主要有两种:

一是利用Java本身提供用于解决国际化问题的软件包当中的ResourceBundle 及其子类,处理在Java类中或是property文件中定义的参数;二是自定义一个类 进行存取,把相应参数放在数据库或是属性文件中。

一、 利用Java类包:

1、根据系统默认的语言设置读取参数值的类Resource:

  package i18n.article; import java.io.*; import java.util.Enumeration; import java.util.Hashtable; import java.util.Locale; import java.util.PropertyResourceBundle; import java.util.ResourceBundle;    /** * <p>Title:多国语言的后台实现类 </p> * <p>Description: 根据属性文件及区域与语言设置,得到对应的语言 </p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: Timer Corporation</p> * @author:宋兆辉 * @version 1.0 */    public class Resource {    private static final String HEAD_FILE = "ATTR"; //属性文件名的前 缀 private static final String LAST_FILE=".properties"; //属性文件名的后 缀 private static final String FILE_PATH="c://"; //定义属性文件存放的目录    public Resource() { } /*以下是根据传入的属性文件中的"键",而得到与区域与语言设置相对应 的"值"*/    public synchronized String srcStr(String disStr) { String ret = ""; try {    Locale locale = Locale.getDefault(); //获取系统的区域与语言默认设 置 System.out.println(""); String baseName = new StringBuffer() .append(HEAD_FILE).append("_").append(locale.toString()) .append(LAST_FILE).toString(); //根据local属性,前缀以及后缀生成文件名    String fileName = new StringBuffer(FILE_PATH).append(baseName) .toString(); //获取文件的完整路径    InputStream is = new FileInputStream(fileName); //生成文件输入流 PropertyResourceBundle pr = new PropertyResourceBundle(is); //根据输入 流构造PropertyResourceBundle的实例 ret = pr.getString(disStr); if(locale.equals(Locale.CHINA)){ ret = new String(ret.getBytes("ISO-8859-1"),"GB2312"); } //如果是要显示中文,则要进行内码的转换 is.close(); return ret; } catch (Exception e) { e.printStackTrace(); return disStr; } } }

Java多国语言问题解决方案(2)

时间:2010-12-10

2、对应的properties文件:ATTR.properties和ATTR_zh_CN.properties

(1)ATTR_en_US.properties:

LoginName=login name Password=password Login=login LoginTime=loginTime LogOff=logout Chinese

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号