支柱的国际化

时间:2011-07-04 17:51:55

标签: internationalization

我做了一个struts应用程序。我想在我的应用程序中支持国际化 japanese.My属性文件名是Application,它适用于Application_ja.properties文件但是 它不适用于Application_ja_JP.properties文件。我在tomcat服务器上运行一个应用程序。 请帮帮我。

2 个答案:

答案 0 :(得分:0)

我创建了支持两种语言的应用程序。我的情况下你没有粘贴一些代码,我会试着解释一下。

首先我创建Struts动作类来处理语言环境,这个类的方法有:

public ActionForward en(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response)
        throws Exception {      
    request.getSession().setAttribute(
            Globals.LOCALE_KEY, Locale.ENGLISH);
    return mapping.findForward(SUCCESS);
}

public ActionForward lt(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response)
        throws Exception {

    request.getSession().setAttribute(
            Globals.LOCALE_KEY, new Locale("lt"));

    return mapping.findForward(SUCCESS);
}

英语的一种方法和立陶宛语的一种方法。

我在struts-config.xml文件中声明了这个动作类:

<action input="/views/index.jsp" 
        parameter="method" 
        path="/locale" 
        scope="request" 
        type="lt.klc.action.LanguageSelectAction" 
        validate="false">
    <forward name="success" path="/views/index.jsp"/>
</action>

我声明了我的资源:(application.properties和application_lt.properties)

<message-resources parameter="lt/klc/resources/application_lt"/>    
<message-resources parameter="lt/klc/resources/application"/>

当我想要使用语言时,我通过提供我想要调用的方法来简单地调用此类:

    <html:link action="locale.xhtml?method=en">English</html:link>
    <html:link action="locale.xhtml?method=lt">Lietuviškai</html:link>

希望这有帮助。

答案 1 :(得分:0)

Suppose you have two properties files-
struts_en_UK.properties
common.color = colour

struts_en_US.properties
common.color = color

The following code will fetch the resource from properties file as follows-
        Locale locale = new Locale("en", "UK");
        ResourceBundle bundle = ResourceBundle.getBundle("struts",locale);

        System.out.println(bundle.getString("common.color"));

        Locale usLocale = new Locale("en", "US");
        ResourceBundle usBundle = ResourceBundle.getBundle("struts",usLocale);
        System.out.println("Us Locale : "+usBundle.getString("common.color"));