项目国际化
一、 项目国际化的方法
在一般的项目中若需要国际化,主要需要实现以下几个模块的修改,分为后台类国际化,前台界面国际化,还有是js文件的国际化。
1. 后台类的国际化
通过读写Property文件实现,项目加载时向session存入一个语言信息,通过读写这个语言信息决定读写那个语言的Propery文件。
2. 前台的国际化主要通过框架的国际化功能如Spring的国际化。
3. Js文件的国际化通过DWR动态访问后台获得,同样需要session中事先存入的国际化标示
注意:在js文件中可以通过document.write(“”);方法向前台输入引入js文件的信息已保证dwr所需js文件的正确引入。
Dwr在映射方法时若第一个参数为Session类型,dwr在使用该方法时不需再次传入该session对象,只需将其他参数传入,后台可以自动获取该参数,方法中可直接使用。
   
Spring 国际化使用
Spring实现项目国际化
一、 导入Spring jar 包
二、 在l 中配置Spring
        <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/l</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>*.do</url-pattern>
</servlet-mapping>
三、 创建 l 并进行配置
//配置HanderMapping 来决定请求由哪个Control处理
    <bean id="urlMapping"
          class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        spring怎么读多个文件<property name="mappings">
            <props>
                <prop key="/index.do">indexController</prop>
            </props>
        </property>
    </bean>
 
//配置视图解析器
    <bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
//配置国际化相关
    <bean id="messageSource"
          class="t.support.ResourceBundleMessageSource">
        <property name="basename" value="messages"/>
    </bean>
  //配置Control
    <bean id="indexController"
                class="org.springframework.web.servlet.mvc.ParameterizableViewController">
        <property name="viewName" value="index"/>
</bean>
四、 src 下加入对应的国际化文件,文件名于messageSource bean basename属性值相同
五、 配置jsp 页面
加入
<%@taglib prefix="spring” uri="/tags" %>引用
使用message 标签配置需要显示的国际化文本
<spring:message code="welcome" arguments="test,ss"/></h1>
code  对应国际化文件中对应的键的名称,arguments 对应国际化属性文件中的参数。
国际化文件如下
welcome=Hello, {0} {1} .
六、 注意
国际化文件编写完成后需将所有的中文转化问unicode 编码,否则在前台jsp 页面上无法显示。
将国际化文件编写好后在控制台运行 native2asccii 国际化文件路径 转化后的国际化路径
即可得到对应的unicode编码的国际化文件
七、 使用
发布项目访问index.do 即可看到index.jsp 页面,注意使用国际化必须通过请求控制对象方式访问页面,直接访问页面不能实现国际化。
八、 后台动态改变语言
1. Spring 的配置文件中加入
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"> </bean>
2. 通过改变session中的值改变界面语言
        Locale locale = null;
            if(language == null || language.equals("zh_CN")){
                locale=new Locale("zh","CN");
            }else if(language.equals("en_US")){
                locale=new Locale("en","US");
            }else{
                locale=new Locale("zh","CN");
            }
//以上内容是根据配置文件的配置信息实例化Locale对象。
            Session().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, locale);
//将实例化的locale对象放入sessionSessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME 变量中。即可实现在线切换界面语言。
3. 语言属性文件的命名规则
  Spring配置下的messageSourcebasename的名称就是src下的属性文件的名称开头让后是 _ 国家的代码 _ 语言的代码
messages_US_en.properties 可以在
    <bean id="messageSource"
          class="t.support.ResourceBundleMessageSource">
        <property name="basename" value="messages_ch_zh.properites"/>
        <property name="basename" value="messages_en_US.properites"/>
    </bean>
加入多个属性文件。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。