当前位置:天才代写 > tutorial > JAVA 教程 > Java多国语言问题办理方案

Java多国语言问题办理方案

2017-11-10 08:00 星期五 所属: JAVA 教程 浏览:361

副标题#e#

跟着经济全球化的成长,发生了浩瀚的跨国公司,而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;
}
}
}


#p#副标题#e#

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

(1)ATTR_en_US.properties:

LoginName=login name
Password=password
Login=login
LoginTime=loginTime
LogOff=logout
ChineseVersion=English Version
MainPage=home
SoftWare=softWare
Hardware=Hardware
YourLocationMainPage=YourLocationMainPage
MyCalendar=MyCalendar
MyMails=MyMails
R&D=R&D
Forum=Forum
DeveloperProcess=DeveloperProcess
TechnologyCommunion=TechnologyCommunion

(2)ATTR_zh_CN.properties:

LoginName=用户
Password=暗码
Login=登岸
LoginTime=登岸时间
LogOff=注销登岸
ChineseVersion=中文版
MainPage=首页
SoftWare=软件
Hardware=硬件
YourLocationMainPage=当前位置:首页
MyCalendar=我的日程
MyMails=我的邮件
R&D=研发区
Forum=接头区
DeveloperProcess=开拓历程
TechnologyCommunion=技能交换

#p#副标题#e#

3、对应的jsp文件:

本例中有3个jsp页面:

(1)login.jsp:(登岸页面)

  <%@ page contentType="text/html; charset=GB2312" % >
<HTML>
<HEAD>
<TITLE></TITLE>
<link href="css/style.css" rel="stylesheet" type="text/css">
<script language = javascript>
function focusIt() {
window.document.login.loginName.focus();
}
</script>
</HEAD>
<jsp:useBean id="resource" scope="application" class="i18n.article.Resource"/>
<BODY onload="javascript:focusIt();" bgcolor="#ffffff">
<form name="login" method="post" action="main.jsp">
<table border=0 cellpadding=0 cellspacing=0 align=center>
<tr>
<td height="150"></td></tr>
<tr>
<td width=262><img alt="" border=0 src="images/cover_r1_c1.jpg"></td>
<td>&nbsp;</td>
<td>
<table border=0 cellpadding=1 cellspacing=1>
<tr>
<td>
<p align=right><%=resource.srcStr("LoginName")% ></p></td>
<td><input type=text name="loginName" ID=Text1></td></tr>
<tr>
<td>
<p align=right><%=resource.srcStr("Password")% ></p></td>
<td><input type=password name="password" ID=Password1></td></tr>
<tr>
<td>&nbsp;</td>
<td align=center>
<input class="button" type=submit value=" <%=resource.srcStr ("Login")%> " ID=Submit1></td></tr>
</table>
</td></tr>
<tr>
<td colspan=3><img alt="" border=0
src="images/cover_r2_c1.jpg"></td></tr>
<tr>
<td colspan=3><img alt="" border=0
src="images/cover_r3_c1.jpg"></td></tr>
<tr>
<td colspan=3 height=20>&nbsp;</td>
</tr>
<tr>
<td colspan=3 align=center><font color="#c0c0c0">Best Viewed In IE5.0 Or Up ,1024x768</font></td>
</tr>
<tr>
<td colspan=3><hr size=1 width="100%" color="#c0c0c0"></td>
</tr>
<tr>
<td colspan=3 align=center>&copy; 2003 Corporation. All rights reserved.</td>
</tr>
</table>
</form>
</BODY>
</HTML>

#p#副标题#e#

(2)main.jsp:

#p#分页标题#e#

<%@ page contentType="text/html; charset=GB2312" %>
<jsp:useBean id="resource" scope="application" class="i18n.article.Resource"/>
<HTML>
<HEAD>
<TITLE></TITLE>
<META NAME="GENERATOR" Content="Microsoft Visual Studio">
<META HTTP-EQUIV="Content-Type" content="text/html; charset=UTF- 8">
<LINK rel="stylesheet" href="css/style.css" type="text/css">
</HEAD>
<BODY topMargin=2 leftMargin=2 bgcolor="#ffffff">
<TABLE WIDTH="100%" HEIGHT="100%" BORDER="0" CELLSPACING="0" CELLPADDING="0">
<tr>
<td height=80>
<%
String loginName = request.getParameter("loginName");
%>
<table width=100% height=100% cellpadding=0 cellspacing=0 border=0>
<tr>
<td width=163 rowspan=3><img src="images/system_logo.jpg" border=0></td>
<td width=30 rowspan=3><img src="images/logo_linked_corner.gif" border=0></td>
<td width=140><img src="images/logo_extended_bar.jpg" border=0></td>
<td height=25 bgcolor="#95ADD3" align=right class="P1">
<%=resource.srcStr("LoginTime")%><%=new java.util.Date ().toLocaleString()%>
&nbsp;&nbsp;
<%=resource.srcStr("LoginName")%><%=loginName%> &nbsp;&nbsp;
<img src="images/logout.gif" align="absMiddle" border=0>
<a href="login.jsp"><%=resource.srcStr("LogOff")% ></a>
<img src="images/row_ender.jpg" align="absMiddle" border=0></td>
</tr>
<tr><td height=30 colspan=2><p>&nbsp;
<a href="http://www.bianceng.cn/index.php#"><%=resource.srcStr ("MainPage")%></a> | &nbsp;
<a href="http://www.bianceng.cn/index.php#"><%=resource.srcStr ("SoftWare")%></a> | &nbsp;
<a href="http://www.bianceng.cn/index.php#"><%=resource.srcStr ("Hardware")%></a> | </p></td></tr>
<tr><td height=25 colspan=2<%=resource.srcStr ("YourLocationMainPage")%>></td></tr>
</table>
</td>
</tr>
<tr>
<td>
<table width=100% height=100% cellpadding=0 cellspacing=0 border=0>
<tr>
<td width=165 valign=top>
<table width=100% cellpadding=0 cellspacing=0 border=0>
<tr><td colspan=2><img src="images/left_menu_top.jpg" border=0></td></tr>
<tr><td width=35 align=left><img src="images/left_menu_colbar.jpg" border=0></td>
<td width=130 align=left valign=top>
<table width=100% cellpadding=0 cellspacing=0 border=0>
<tr><td style="cursor:hand;"><p><% =resource.srcStr("MyCalendar")% ></p></td></tr>
<tr><td><hr size=1 width=100% color="#C6FF00"></td></tr>
<tr><td style="cursor:hand;"><p><% =resource.srcStr("MyMails")%></p></td></tr>
<tr><td><hr size=1 width=100% color="#C6FF00"></td></tr>
<tr><td style="cursor:hand;"><p><% =resource.srcStr("DeveloperProcess")% ></p></td></tr>
<tr><td><hr size=1 width=100% color="#C6FF00"></td></tr>
<tr><td style="cursor:hand;"><p><% =resource.srcStr("TechnologyCommunion")% ></p></td></tr>
<tr><td><hr size=1 width=100% color="#C6FF00"></td></tr>
<tr><td style="cursor:hand;"><p><% =resource.srcStr("Forum")%></p></td></tr>
<tr><td><hr size=1 width=100% color="#C6FF00"></td></tr>
<tr><td style="cursor:hand;"><p><% =resource.srcStr("R&D")%></p></td></tr>
<tr><td><hr size=1 width=100% color="#C6FF00"></td></tr>
</table>
</td>
</tr>
</table>
</td>
<td><IFRAME frameBorder=0 id=main name=main scrolling=auto src="version.jsp"
style="HEIGHT: 100%; VISIBILITY: inherit; WIDTH: 100%; Z-INDEX: 1"></IFRAME></td>
</tr>
</table>
</td>
</tr>
<tr>
<td height=50 valign=top>
<table width=100% cellpadding=0 cellspacing=0 border=0>
<tr><td align=center><hr size=1 width=80% color="#95ADD3"></td></tr>
<tr><td align=center>?2003 Corporation. All rights reserved.</td></tr>
</table>
</td>
</tr>
</TABLE>
</BODY>
</HTML>

#p#副标题#e#

(3)version.jsp:(主页面的中间部门)

#p#分页标题#e#

<%@ page contentType="text/html; charset=GBK" %>
<jsp:useBean id="resource" scope="application" class="i18n.article.Resource"/>
<HTML>
<HEAD>
<TITLE></TITLE>
<META HTTP-EQUIV="Content-Type" content="text/html; charset=UTF- 8">
</HEAD>
<BODY leftMargin="0" topMargin="0">
<table width="100%" height="100%" cellpadding=0 cellspacing=0 border=0>
<tr>
<td align=center valign=middle colspan=2>
<table align="center" border="0" cellspacing="3" cellpadding="5" style="filter:dropshadow (color=gray,offx=5,offy=5,positive=1);">
<tr>
<td width=400 height=100 bgcolor="#CBD3EA" align="center" style="border: 1px #0A246A solid;">
<p><font color="#5c6bac" style="font- size:30px;"><b><%=resource.srcStr("ChineseVersion")% ></b></font></p>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width=50% valign=top align=center>&nbsp;</td>
<td width=50% height=155 align=center><img src="images/internationalization.jpg"></td>
</tr>
</table>
</BODY>
</HTML>

二、 操作自界说类:

操作自界说的类,可以存取放在属性文件或是数据库中的对应的语言文字, 实现方法大抵与上述要领沟通,不外是添加一些对属性文件流或是数据库存取的 要领,对应的jsp页面可以不做窜改。在这里不再赘述.

注:以上措施在windows2000英文版及中文版,resin2.1.6上调式通过.

 

    关键字:

天才代写-代写联系方式