Java语言内置有支持国际化的类。
java.util.ResourceBundleExample: // default (English language, United States)
public class MyResources extends ResourceBundle {
public Object handleGetObject(String key) {
if (key.equals("okKey")) return "Ok";
if (key.equals("cancelKey")) return "Cancel";
return null;
}
} // German language
public class MyResources_de extends MyResources {
public Object handleGetObject(String key) {
// don't need okKey, since parent level handles it.
if (key.equals("cancelKey")) return "Abbrechen";
return null;
}
}
你的问题只需要将国际化的内容放到Session中就OK.
java.util.ResourceBundleExample: // default (English language, United States)
public class MyResources extends ResourceBundle {
public Object handleGetObject(String key) {
if (key.equals("okKey")) return "Ok";
if (key.equals("cancelKey")) return "Cancel";
return null;
}
} // German language
public class MyResources_de extends MyResources {
public Object handleGetObject(String key) {
// don't need okKey, since parent level handles it.
if (key.equals("cancelKey")) return "Abbrechen";
return null;
}
}
你的问题只需要将国际化的内容放到Session中就OK.
<c:set var="localeKey" ><%=org.apache.struts.Globals.LOCALE_KEY %></c:set>
<html:form action="/ChangeLang.do" method="post">
<Table border="0" height="20" width="100%">
<Tr>
<td style="text-align: right;">
<bean:message key="jsp.login.CHOOSE_LANGUAGE"/>:
<html:select property="language" onchange="submit();" value="${sessionScope[localeKey]}">
<html:option value="en" key="global.lang.ENGLISH" />
<html:option value="zh_CN" key="global.lang.SIMPLIFIED_CHINESE" />
<html:option value="zh_TW" key="global.lang.TRADITIONAL_CHINESE" />
</html:select>
</Td>
</Tr>
</Table>
</html:form>2、control-action中部分代码:
public class ChangeLangAction extends Action { // --------------------------------------------------------- Instance
// Variables // --------------------------------------------------------- Methods /**
* Method execute
*
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
ChangeLangForm changeLangForm = (ChangeLangForm) form;
String language = changeLangForm.getLanguage();
if (language.equals("en")) {
request.getSession().setAttribute(Globals.LOCALE_KEY,
Locale.ENGLISH);
} else if (language.equals("zh_CN")) {
request.getSession().setAttribute(Globals.LOCALE_KEY,
Locale.SIMPLIFIED_CHINESE);
} else if (language.equals("zh_TW")) {
request.getSession().setAttribute(Globals.LOCALE_KEY,
Locale.TRADITIONAL_CHINESE);
}
return mapping.findForward("login");
}}3、struts-config.xml中部分代码<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"><struts-config>
<data-sources />
<!-- ================ Form Beans Dinifitions ==========-->
<form-beans>
<form-bean name="changeLangForm" type="com.jeromeliu.article.forms.ChangeLangForm" />
</form-beans><!-- ================ Global Exception Definitions =====-->
<global-exceptions /><!-- ================ Global Forward Definitions =======-->
<global-forwards /><!-- ================ Action Mapping Definitions =======-->
<action-mappings>
<action path = "/ChangeLang"
type = "com.jeromeliu.article.actions.ChangeLangAction"
name = "changeLangForm"
scope = "request"
validate = "true"
input = "/login.jsp"
>
<forward name="login" path="/login.jsp" />
</action>
</action-mappings><!-- ==============message resources Definitions ======-->
<message-resources parameter="com.jeromeliu.article.resources.ApplicationResources" /></struts-config>4、properties文件
ApplicationResources_zh_CN.properties文件:
# Resources for parameter 'com.jeromeliu.article.resources.ApplicationResources_zh_CN'
# Project P/NewArticle# -- global --
global.lang.ENGLISH = English
global.lang.SIMPLIFIED_CHINESE = 简体中文
global.lang.TRADITIONAL_CHINESE = 繁體中文global.button.SUBMIT = 确定
global.button.CANCEL = 取消
global.button.RESET = 重置
global.button.PREVIEW = 向前
global.button.FORWARD = 向后
global.button.BACK = 后退
global.button.REFRESH = 刷新
global.button.LOGIN = 登陆global.OK = 好
global.YES = 是
global.NO = 否
global.VALID = 有效
global.INVALID = 无效
global.CORRECT = 正确
global.INCORRECT = 不正确
global.ERROR = 错误
global.JUMPTO = 跳到
global.GO = 转到
global.NONE = 空
global.PREV = 前一页
global.NEXT = 后一页# -- text print --
jsp.login.CHOOSE_LANGUAGE = 选择语言
jsp.login.TITLE = 登陆文章系统
jsp.login.WELCOME = 欢迎登陆文章系统
jsp.login.ACCOUNT = 帐号
jsp.login.PASSWORD = 密码# -- error info --
error.login.account.required = 帐号必须填写
error.login.password.required = 密码必须填写
error.login.invalid = 无效的帐号或密码
# Resources for parameter 'com.jeromeliu.article.resources.ApplicationResources_en'
# Project P/NewArticle# -- global --
global.lang.ENGLISH = English
global.lang.SIMPLIFIED_CHINESE = 简体中文
global.lang.TRADITIONAL_CHINESE = 繁體中文global.button.SUBMIT = Submit
global.button.CANCEL = Cancel
global.button.RESET = Reset
global.button.PREVIEW = Preview
global.button.FORWARD = Forward
global.button.BACK = Back
global.button.REFRESH = Refresh
global.button.LOGIN = Loginglobal.OK = OK
global.YES = Yes
global.NO = No
global.VALID = Valid
global.INVALID = Invalid
global.CORRECT = Correct
global.INCORRECT = Incorrect
global.ERROR = Error
global.JUMPTO = Jump To
global.GO = Go
global.NONE = None
global.PREV = Prev
global.NEXT = Next# -- text print --
jsp.login.CHOOSE_LANGUAGE = Choose Language
jsp.login.TITLE = Login to Aticle System
jsp.login.WELCOME = Welcome to login Aticle System
jsp.login.ACCOUNT = Account
jsp.login.PASSWORD = Password
jsp.fore.default.TITLE = JeromeLiu's Aticle System# -- error info --
error.login.account.required=Account required
error.login.password.required=Password required
error.login.invalid=Invalid account or passwordApplicationResources_zh_TW.properties文件:
# Resources for parameter 'com.jeromeliu.article.resources.ApplicationResources_zh_TW'
# Project P/NewArticle# -- global --
global.lang.ENGLISH = English
global.lang.SIMPLIFIED_CHINESE = 简体中文
global.lang.TRADITIONAL_CHINESE = 繁體中文global.button.SUBMIT = 確定
global.button.CANCEL = 取消
global.button.RESET = 重置
global.button.PREVIEW = 嚮前
global.button.FORWARD = 嚮后
global.button.BACK = 后退
global.button.REFRESH = 刷新
global.button.LOGIN = 登錄global.OK = 好
global.YES = 是
global.NO = 否
global.VALID = 有傚
global.INVALID = 無傚
global.CORRECT = 正確
global.INCORRECT = 不正確
global.ERROR = 錯誤
global.JUMPTO = 跳到
global.GO = 轉到
global.NONE = 空
global.PREV = 前一頁
global.NEXT = 后一頁# -- text print --
jsp.login.CHOOSE_LANGUAGE = 選擇語言
jsp.login.TITLE = 登陸文章繫統
jsp.login.WELCOME = 歡迎登陸文章繫統
jsp.login.ACCOUNT = 帳號
jsp.login.PASSWORD = 密碼# -- error info --
error.login.account.required = 帳號必須填寫
error.login.password.required = 密碼必須填寫
error.login.invalid = 無傚的帳號或密碼