Java struts 2国际化不起作用

Java struts 2国际化不起作用,java,internationalization,struts2,Java,Internationalization,Struts2,我正在开发struts 2和SpringWeb应用程序,它支持两种语言:英语和印地语。 我已配置国际化,但它不起作用,即当我从浏览器更改编码时,文本不会更改。 我甚至尝试通过编程更改语言环境,但仍然不起作用 RegisterAction.java public class RegisterAction extends ActionSupport { public String execute(){ return "SUCCESS"; } public Locale getL

我正在开发struts 2和SpringWeb应用程序,它支持两种语言:英语和印地语。 我已配置国际化,但它不起作用,即当我从浏览器更改编码时,文本不会更改。 我甚至尝试通过编程更改语言环境,但仍然不起作用

RegisterAction.java

    public class RegisterAction extends ActionSupport {

 public String execute(){
  return "SUCCESS";
 }

 public Locale getLocale(){
  return new Locale("hi");
 }
    }
struts.xml

<action name="register" class="com.medics.action.RegisterAction">
    <result name="SUCCESS">/Register.jsp</result>
</action>
全局消息\u hi.properties

hello=hello
Registration=Registration
Registration=\\u2354\\u2379\\u327\\u2367\\u2344\\u2381
这是该项目的快照


struts.xml和这两个消息文件位于类路径的根目录中。不幸的是,您用英语将键命名为与值相同的名称,因此您也无法真正判断是否正确加载了英语包。我的第一个猜测是Struts不知道全局消息*.properties是语言包

尝试将其添加到struts.xml中:

<constant name="struts.custom.i18n.resources" value="global-messages"/>

编辑


如果确定正在加载English bundle,则需要调试应用程序,以确认Struts2正确设置了印地语语言环境。操作中的断点应该允许您轻松检查
getLocale()

的值。不幸的是,您用英语将键命名为与值相同的名称,因此您也无法真正判断是否正确加载了英语包。我的第一个猜测是Struts不知道全局消息*.properties是语言包

尝试将其添加到struts.xml中:

<constant name="struts.custom.i18n.resources" value="global-messages"/>

编辑


如果确定正在加载English bundle,则需要调试应用程序,以确认Struts2正确设置了印地语语言环境。操作中的断点应该允许您轻松检查
getLocale()

的值。我已经在struts.properties文件中定义了全局消息资源包,自我更改该包中的值以来,English包正在正确加载,它反映在网页上我已经在struts.properties文件中定义了global messages resource bundle,English bundle正在正确加载,因为当我更改该bundle中的值时,它会反映在网页上