我做了一个struts应用程序。我想在我的应用程序中支持国际化 japanese.My属性文件名是Application,它适用于Application_ja.properties文件但是 它不适用于Application_ja_JP.properties文件。我在tomcat服务器上运行一个应用程序。 请帮帮我。
答案 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"));