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.

解决方案 »

  1.   

    对于Properties文件可以用它的子类:java.util.PropertyResourceBundle加载
      

  2.   

    这几天刚刚自己写了个国际化的东西。楼主参考部分代码:1、首先view-form中部分代码:
    <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 = 无效的帐号或密码
      

  3.   

    ApplicationResources_en.properties文件:
    # 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 = 無傚的帳號或密碼
      

  4.   

    当然你还要将资源文件转化编码成为unicode。