科技资讯眺望|Boot 12 国际化,Spring
建立多语言网站 , 可以获得更多用户流量 。 多语言网站被称为国际化(i18n),与本地化相反 。
你比如京东、淘宝这类电商网站就是国际化的电商网站 , 它支持多国语言 。
注意:国际化是一个由18个字符组成的单词 , 第一个字符为i , 最后一个字符为n , 因此通常缩写为i18n 。
Spring通过为不同的语言环境使用Spring拦截器 , 语言环境解析器和资源包 , 为国际化(i18n)提供了广泛的支持 。 在本文中 , 我将知道您使用SpringBoot构建了一个简单的多语言网站 。
你可以预览一下示例:
在示例中 , 语言环境信息位于URL的参数上 。 语言环境信息将存储在Cookie中 , 并且用户不会在接下来的页面中重新选择语言 。
http://localhost:8080/SomeContextPath/login1?lang=zhhttp://localhost:8080/SomeContextPath/login1?lang=enURL上的语言环境信息的另一个示例:
http://localhost:8080/SomeContextPath/zh/login2http://localhost:8080/SomeContextPath/en/login212.1创建SpringBoot项目
label.password=密码label.submit=登陆label.title=登陆页面label.userName=用户名如果你的eclipse中显示如下编码形式:
label.password=u5BC6u7801label.submit=u767Bu9646label.title=u767Bu9646u9875u9762label.userName=u7528u6237u540D修改首选项中的contentTypes下的:
12.2拦截器和LocaleResolver
MessageResource将加载属性文件内容
packageme.laocat.i18n.config;importorg.springframework.context.MessageSource;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.context.support.ReloadableResourceBundleMessageSource;importorg.springframework.web.servlet.LocaleResolver;importorg.springframework.web.servlet.config.annotation.InterceptorRegistry;importorg.springframework.web.servlet.config.annotation.WebMvcConfigurer;importorg.springframework.web.servlet.i18n.CookieLocaleResolver;importorg.springframework.web.servlet.i18n.LocaleChangeInterceptor;@ConfigurationpublicclassWebMvcConfigimplementsWebMvcConfigurer{@Bean(name=“localeResolver”)publicLocaleResolvergetLocaleResolver(){//Cookie本地化解析器CookieLocaleResolverresolver=newCookieLocaleResolver();resolver.setCookieDomain(“myAppLocaleCookie”);//60分钟resolver.setCookieMaxAge(60*60);returnresolver;}@Bean(name=“messageSource”)publicMessageSourcegetMessageResource(){//可重新加载的资源包消息源ReloadableResourceBundleMessageSourcemessageResource=newReloadableResourceBundleMessageSource();//读i18n/messages_xxx.propertiesfile.//例如:i18n/messages_en.propertiesmessageResource.setBasename(“classpath:i18n/messages”);messageResource.setDefaultEncoding(“UTF-8”);returnmessageResource;}@OverridepublicvoidaddInterceptors(InterceptorRegistryregistry){//本地化修改拦截器LocaleChangeInterceptorlocaleInterceptor=newLocaleChangeInterceptor();localeInterceptor.setParamName(“lang”);registry.addInterceptor(localeInterceptor).addPathPatterns(“/*”);}}12.3控制器和视图
- 无趣科技谈|X2凭实力拿下冠军,京东手机周销量榜单出炉,Find
- 毛毛科技说|三星S20+出现“小米价”,总算等到了,三星扛不住了
- 简简科技|余承东称鸿蒙体验已达安卓7成多,鸿蒙手机新进展
- ITheat热点科技|2020 | 坚持创新 舒尔带来MXA710音频解决方案,SSOT
- 空心|招聘丨山西千沐云物联科技有限公司
- LeoGo科技|科沃斯除菌地宝N8和米家扫拖机器人横评——两款解放双手的精品
- 小绿叶子科技|半年跌1000元,适合捡漏,iPhoneSE2扛不住了
- 电科技|“吃鸡”手游老是瞄不准?不妨选这款游戏外设配件
- 科技日日说|realme真我X7全方位评测:不一样的颜值,不一样的体验!,原创
- 硅谷聊科技|就不愿再用华为、小米了?,答案确认了!为啥很多人用了iPhone后