问题描述
在程序启动时在Application.java的start方法里重新设置了系统的默认语言,比如:Locale.setDefault(Locale.US) ;这时系统的显示都是英文的。在设置Locale.US之前,如果系统的默认语言是中文,在设置为英文之后,从plugin.properties(plugin_zh.properties)里面获取的name="%navigationView.title"这个标题的显示还是中文。但其它地方的显示都已经改变成英文了。解决方法是什么呢?大家给个思路!Application.java的start方法应该是程序的入口,为什么在这里设置了系统的语言依然不能改变显示?难道plugin.properties的读取在这个start方法之前?
解决方案
增加一个管理plugin信息的方法,获取语言类型后读plugin 用ResourceBundle
解决方案二:
增加程序启动参数:-nlzh
解决方案三:
应该是的。你可以package com.jin;import java.util.Locale;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class LocaleChangeListener implements ServletContextListener{public void contextInitialized(ServletContextEvent sce) {Locale locale = Locale.ENGLISH;Locale.setDefault(locale);}public void contextDestroyed(ServletContextEvent sce) {// TODO Auto-generated method stub}}或者是<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"> <property name="defaultLocale" value="en"/> </bean>