博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring MVC 国际化和本地化
阅读量:3915 次
发布时间:2019-05-23

本文共 1376 字,大约阅读时间需要 4 分钟。

难点: 掌握 国际化/本地化的配置及使用

》国际化/本地化

        ·国际化是设计软件应用时,应用能适用于不同语言和地区

        ·本地化是添加地区特定的组件和翻译文本,使得国际化软件适合特定地区或语言

        ·国际化和本地化的目的是使软件适应不同的语言和地区

        ·简单来说:  国际化是指赋予软件可以被翻译的能力

                             本地化是指将软件进行软件翻译的过程

        ·除了语言翻译功能,国际化也可以应用在错误信息的展示

》国际化/本地化原理

    ·国际化

            Spring 通过实现MessageSource 接口,来支持国际化。如果启用了国际化配置了,SpringMVC通过前端控制器处理模型对象时会调用国际化getMessage()方法

    ·本地化

            Spring 提供了一个本地化解析器接口LocaleResolver,并且提供了很多实现类。DispatcherServlet允许使用客户端本地化信息自动解析信息。这个工作有实现LocaleResolver的对象来完成。

 

国际化/本地化的使用

  ·创建两个资源文件

  1. 中文 messages_zh_CN.properties
  2. 英文 messages_en_US.properties

  ·编码实现国际化效果(理解原理)

 

  ·配置文件添加

         1、资源文件  

         2、区域改变拦截器

         3、自定义本地化解析器

 com.kgc.resolver.MylocaleResolver

/** * 自定义本地化解析器 * @author Administrator * */public class MylocaleResolver extends AcceptHeaderLocaleResolver {	private Locale myLocale;//	解析本地化信息 返回值为本地化信息类型	public Locale resolveLocale(HttpServletRequest request) {		return myLocale;	}//	将请求中的本地化信息作为值设置进来	public void setLocale(HttpServletRequest request,			HttpServletResponse response, Locale locale) {		myLocale = locale;	}	}

   ·提供jsp页面

         ·通过请求参数:locale 来改变语言

   ·使用框架提供的本地化解析器

              1、定义消息资源

                   org.springframework.context.support.ReloadableResourceBundleMessageSource  

              2、提供一个拦截器检测地区变化

                   org.springframework.web.servlet.i18n.LocaleChangeInterceptor

              3、提供能够本地化解析器

                   1) 基于cookie:    org.springframework.web.servlet.i18n.CookieLocaleResolver

                   2) 基于session:  org.springframework.web.servlet.i18n.SessionLocaleResolver

转载地址:http://ndtrn.baihongyu.com/

你可能感兴趣的文章
被 C# 的 ThreadStatic 标记的静态变量,都存放在哪里了?
查看>>
ASP.NET Core使用HostingStartup增强启动操作
查看>>
结合控制台程序和K8S的CronJob完成定时任务
查看>>
WPF开发的实用小工具 - 快捷悬浮菜单
查看>>
.Net orm 开源项目 FreeSql 2.0.0
查看>>
IdentityServer4系列 | 简化模式
查看>>
小试YARP
查看>>
如何使用 C# 中的 HashSet
查看>>
api-hook,更轻量的接口测试工具
查看>>
一个情怀引发的生产事故(续)
查看>>
如何在 C# 中使用 RabbitMQ
查看>>
一套标准的ASP.NET Core容器化应用日志收集分析方案
查看>>
如何使用 C# 扩展方法
查看>>
C#如何回到主线程,如何在委托指定线程执行
查看>>
服务器重新部署踩坑记
查看>>
.NET应用程序安全操作概述
查看>>
C# WPF:把文件给我拖进来!!!
查看>>
.NET5发布了,腾讯招聘点名要求精通MySQL,而不是SQLServer!
查看>>
让 CefSharp.WinForms 应用程序同时支持32位(x86)和64位(x64)的解决方案
查看>>
大会线上同步直播, 来不到现场也可以线上看直播,以及参会秘籍
查看>>