国际化

作者: 暮雨随风 | 来源:发表于2016-11-05 23:24 被阅读0次

一、在页面上能够根据浏览器语言设置的情况对文本(不是内容)、时间、数值进行本地化处理。解决方法是通过使用 JSTL 的 fmt 标签。

如果使用了JSTL 的 fmt 标签,需要在SpringMVC 的配置文件中配置国际化资源文件。可以根据浏览器选择的语言不通,读取不同的国际资源属性文件。(处于不同国家时,浏览器语言不同)

<!-- 配置国际化资源文件  -->

<bean id="messageSource"

class="org.springframework.context.support.ResourceBundleMessageSource">

<property name="basename" value="i18n"></property>

</bean>

在 src 目录下,创建名为 i18n.properties 的文件。内容如下:

然后在 src 目录下创建中文和美国对应的 i18n.properties 文件,i18n_zh_CN.properties(中国),内容分别为中文的 用户名 和 密码,

i18n_en_US.properties(美国)。

接着在 请求界面写一个链接:

<a href="/SpringMVC_3/testModelAndView">testModelAndView</a>

在 Controller 类中写一个方法:

@RequestMapping("/testModelAndView")

public ModelAndView testModelAndView(){

ModelAndView mav = new ModelAndView(success);

return mav;

}

在显示界面显示:(首先需要在界面中引入 fmt 标签)

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

在 HTML 中的 body 中写入:

<fmt:message key="i18n.username"></fmt:message></br>

<fmt:message key="i18n.password"></fmt:message></br>

运行项目后显示如图:

选择浏览器的 Internet 选项--语言选项,找到 英语(美国),添加,设为首选。刷新界面。

二、在 bean 中获取国际化资源文件 local 对应的消息,解决方法是在 bean 中注入 ResourceBundleMessageSource  的实例,调用其 getMessage()方法即可。

注解掉步骤一中的通过视图名直接响应。

<!-- <mvc:view-controller path="/i18n" view-name="i18n"/> -->

请求界面链接:

<a href="/SpringMVC_3/i18n">test i18n</a>

在 Handler(Controller)中写一个响应方法。

@Autowired

//注入 ResourceBundleMessageSource的实例

private ResourceBundleMessageSource messageSource; 

@RequestMapping("/i18n")

public String testI18n(Locale locale){

//调用 getMessage方法获取 i18n.username 的值,输出

String val = messageSource.getMessage("i18n.username", null, locale);

System.out.println(val);

return "i18n";

响应界面 i18n.jsp 显示信息:(首先需要在界面中引入 fmt 标签)

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

在 HTML 中的 body 中写入:

<fmt:message key="i18n.username"></fmt:message>

<fmt:message key="i18n.password"></fmt:message>

三、通过超链接切换 local ,而不再依赖与浏览器语言设置情况。解决方法是配置 LocaleResolver 和 LocaleChangeInterceptor。

在 mvc 的配置文件中配置 LocaleResolver 和 LocaleChangeInterceptor。

<!-- 配置SessionLocalResolver  -->

<bean id="localeResolver "

class="org.springframework.web.servlet.i18n.SessionLocaleResolver ">

</bean>

<!-- 配置LocaleChangeInterceptor -->

<mvc:interceptors>

<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"></bean>

</mvc:interceptors>

请求界面链接:

<a href="/SpringMVC_3/i18n?local=zh_CN">中文</a>

<a href="/SpringMVC_3/i18n?local=en_US">英文</a>

相关文章

  • App语言的国际化之跟随系统语言(一)

    本将要国际化的内容是: App国际化的配置 App名称国际化 代码中字符串国际化 国际化语言的配置 在项目中打开如...

  • 【整理】前端国际化小结

    近期在做国际化的改造,做了相应的调研,简单做下项目前端国际化的小结 国际化可以分为前端国际化和后端国际化,也可以是...

  • App语言的国际化之跟随系统语言(二)

    本将要国际化的内容是: 图片国际化 storyboard/xib国际化 (一)图片的国际化 方式一: 对于同一张图...

  • iOS-应用名称和内容国际化

    iOS应用的国际化,主要分为3个部分:Info.plist 文件的国际化.xib文件的国际化.m文件的国际化 In...

  • 东方国际化的符合高科技

    东方国际化的符合高科技东方国际化的符合高科技东方国际化的符合高科技东方国际化的符合高科技东方国际化的符合高科技东方...

  • iOS工程项目国际化

    项目国际化有两种情况,分别是应用内容国际化,还有一种是StoryBoard或Xib国际化;本文国际化(英语和简体中...

  • iOS 启动图国际化

    一、使用launchImage 国际化方法 对图片进行国际化,由于Image.xcassets无法国际化图片,所以...

  • Day18 - Flutter - 国际化

    概述 国际化的认识 国际化的适配 国际化的工具 一、国际化的认识 开发一个App,如果我们的App需要面向不同的语...

  • 国际化(i18n)

    title: vue国际化date: 2016-11-17 国际化 本文介绍vue国际化的思路与实现。 vue国际...

  • iOS国际化详解

    iOS国际化详解 对于iOS国际化,一般包括: 1. 工程项目名称国际化2. 工程内控件内容国际化3. 工程内图片...

网友评论

      本文标题:国际化

      本文链接:https://www.haomeiwen.com/subject/qdpguttx.html