美文网首页
06 国际化

06 国际化

作者: wshsdm | 来源:发表于2019-01-01 16:15 被阅读0次

2)、国际化

1)、编写国际化配置文件;

2)、使用ResourceBundleMessageSource管理国际化资源文件

3)、在页面使用fmt:message取出国际化内容

步骤:

1)、编写国际化配置文件,抽取页面需要显示的国际化消息

2)、SpringBoot自动配置好了管理国际化资源文件的组件;

@ConfigurationProperties(prefix ="spring.messages")publicclassMessageSourceAutoConfiguration{/**

* Comma-separated list of basenames (essentially a fully-qualified classpath

* location), each following the ResourceBundle convention with relaxed support for

* slash based locations. If it doesn't contain a package qualifier (such as

* "org.mypackage"), it will be resolved from the classpath root.

*/privateString basename

="messages";//我们的配置文件可以直接放在类路径下叫messages.properties;@BeanpublicMessageSourcemessageSource(){ResourceBundleMessageSource

messageSource

=newResourceBundleMessageSource();if(StringUtils.hasText(this.basename))

{//设置国际化资源文件的基础名(去掉语言国家代码的)messageSource.setBasenames(StringUtils.commaDelimitedListToStringArray(StringUtils.trimAllWhitespace(this.basename)));}if(this.encoding

!=null)

{messageSource.setDefaultEncoding(this.encoding.name());}messageSource.setFallbackToSystemLocale(this.fallbackToSystemLocale);messageSource.setCacheSeconds(this.cacheSeconds);messageSource.setAlwaysUseMessageFormat(this.alwaysUseMessageFormat);returnmessageSource;}

3)、去页面获取国际化的值;

Please sign inUsernamePassword[[#{login.remember}]]Sign in© 2017-2018中文English

效果:根据浏览器语言设置的信息切换了国际化;

原理:

​ 国际化Locale(区域信息对象);LocaleResolver(获取区域信息对象);

@Bean@ConditionalOnMissingBean@ConditionalOnProperty(prefix

="spring.mvc", name

="locale")publicLocaleResolverlocaleResolver(){if(this.mvcProperties.getLocaleResolver()

== WebMvcProperties.LocaleResolver.FIXED)

{returnnewFixedLocaleResolver(this.mvcProperties.getLocale());}AcceptHeaderLocaleResolver

localeResolver

=newAcceptHeaderLocaleResolver();localeResolver.setDefaultLocale(this.mvcProperties.getLocale());returnlocaleResolver;}默认的就是根据请求头带来的区域信息获取Locale进行国际化

4)、点击链接切换国际化

/**

* 可以在连接上携带区域信息

*/publicclassMyLocaleResolverimplementsLocaleResolver{@OverridepublicLocaleresolveLocale(HttpServletRequest

request){        String l = request.getParameter("l");        Locale

locale = Locale.getDefault();if(!StringUtils.isEmpty(l)){           

String[] split = l.split("_");            locale

=newLocale(split[0],split[1]);        }returnlocale;   

}@OverridepublicvoidsetLocale(HttpServletRequest request,

HttpServletResponse response, Locale locale){   

}}@BeanpublicLocaleResolverlocaleResolver(){returnnewMyLocaleResolver(); 

  }}

相关文章

  • 06 国际化

    2)、国际化 1)、编写国际化配置文件; 2)、使用ResourceBundleMessageSource管理国际...

  • 今日奇闻——魔幻中国

    1,海南旅游国际化水平三年行动计划(2018-2020年)https://news.sina.cn/2018-06...

  • 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需要面向不同的语...

网友评论

      本文标题:06 国际化

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