当前位置: 首页 > news >正文

收费网站建设视频教程免费下载/建站系统cms

收费网站建设视频教程免费下载,建站系统cms,怎么做彩票网站平台,如何查网站建设时间1、创建资源文件 resources 下新建目录命名为:i18n ,然后在i18n目录文件下定义资源文件‘Resource Bundle’ 新增国际化文件 messages.properties、messages_en_US.properties、messages_zh_CN.properties 2、修改配置文件 修改配置application.yml…

1、创建资源文件

resources 下新建目录命名为:i18n ,然后在i18n目录文件下定义资源文件‘Resource Bundle’
在这里插入图片描述
新增国际化文件 messages.properties、messages_en_US.properties、messages_zh_CN.properties
在这里插入图片描述

2、修改配置文件

修改配置application.yml中的basename国际化文件,默认是i18n路径下messages文件
(比如现在国际化文件是xx_zh_CN.properties、xx_en_US.properties,那么basename配置应为是i18n/xx)

spring:# 资源信息messages:# 国际化资源文件路径basename: static/i18n/messages

3、添加配置类

两种方式,一种从参数中获取语言,另一种是从Header中获取语言

参数获取语言标识

@Configuration
public class I18nConfig extends WebMvcConfigurerAdapter {@Beanpublic LocaleResolver localeResolver() {SessionLocaleResolver slr = new SessionLocaleResolver();slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE);return slr;}@Beanpublic LocaleChangeInterceptor localeChangeInterceptor() {LocaleChangeInterceptor lci = new LocaleChangeInterceptor();lci.setParamName("lang");return lci;}@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(localeChangeInterceptor());}}

从Header中获取语言标识

@Configuration
public class I18nConfig implements LocaleResolver {@Overridepublic Locale resolveLocale(HttpServletRequest request) {Locale locale = Locale.CHINA;String language = request.getHeader("Accept-Language");if (StringUtils.isNotBlank(language)) {String[] splitLanguage = language.split("_");if (splitLanguage.length > 1) {locale = new Locale(splitLanguage[0], splitLanguage[1]);}}return locale;}@Overridepublic void setLocale(HttpServletRequest request,HttpServletResponse response,Locale locale) {//ignore}@Beanpublic LocaleResolver localeResolver() {return new I18nConfig();}
}

4、工具类

spring工具类 方便在非spring管理环境中获取bean

@Component
public final class SpringUtils implements BeanFactoryPostProcessor
{/** Spring应用上下文环境 */private static ConfigurableListableBeanFactory beanFactory;@Overridepublic void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException{SpringUtils.beanFactory = beanFactory;}/*** 获取对象** @param name* @return Object 一个以所给名字注册的bean的实例* @throws org.springframework.beans.BeansException**/@SuppressWarnings("unchecked")public static <T> T getBean(String name) throws BeansException{return (T) beanFactory.getBean(name);}/*** 获取类型为requiredType的对象** @param clz* @return* @throws org.springframework.beans.BeansException**/public static <T> T getBean(Class<T> clz) throws BeansException{T result = (T) beanFactory.getBean(clz);return result;}/*** 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true** @param name* @return boolean*/public static boolean containsBean(String name){return beanFactory.containsBean(name);}/*** 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)** @param name* @return boolean* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException**/public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException{return beanFactory.isSingleton(name);}/*** @param name* @return Class 注册对象的类型* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException**/public static Class<?> getType(String name) throws NoSuchBeanDefinitionException{return beanFactory.getType(name);}/*** 如果给定的bean名字在bean定义中有别名,则返回这些别名** @param name* @return* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException**/public static String[] getAliases(String name) throws NoSuchBeanDefinitionException{return beanFactory.getAliases(name);}/*** 获取aop代理对象* * @param invoker* @return*/@SuppressWarnings("unchecked")public static <T> T getAopProxy(T invoker){return (T) AopContext.currentProxy();}
}

5、获取i18n资源文件

根据消息键和参数 获取消息 委托给spring messageSource

public class MessageUtils
{/*** 根据消息键和参数 获取消息 委托给spring messageSource** @param code 消息键* @param args 参数* @return 获取国际化翻译值*/public static String message(String code, Object... args){MessageSource messageSource = SpringUtils.getBean(MessageSource.class);return messageSource.getMessage(code, args, LocaleContextHolder.getLocale());}
}

6、使用i18n国际化

对Resource Bundle资源文件写入翻译值

美式英语 messages_en_US.properties

user.login.username=User name
user.login.password=Password
user.login.code=Security code
user.login.remember=Remember me
user.login.submit=Sign In

中文简体 messages_zh_CN.properties

user.login.username=用户名
user.login.password=密码
user.login.code=验证码
user.login.remember=记住我
user.login.submit=登录

使用MessageUtils获取国际化

MessageUtils.message("user.login.username")
MessageUtils.message("user.login.password")
MessageUtils.message("user.login.code")
MessageUtils.message("user.login.remember")
MessageUtils.message("user.login.submit")

搭配vue项目或uniapp同步切换语言

vue
uniapp

http://www.jmfq.cn/news/4826845.html

相关文章:

  • 嘉兴 做网站 推广/市场营销方案范文5篇
  • 上海做外贸网站建设/上海百度公司地址
  • 写个网页多少钱/黑帽seo技术论坛
  • 做律师网站公司/微信营销案例
  • 汽车网站名称/百度企业网盘
  • 建设部门户网站/理发美发培训学校
  • 办一家建筑公司流程/seo chinaz
  • 网站上怎么做弹幕效果/软文案例
  • 网站域名续费多少钱/东莞网站推广运营公司
  • 专业网站制作公司排行/做一个网站要多少钱
  • 长沙网站托管哪家好/广州竞价托管代运营
  • 大连哪家网站技术开发公司好/厦门人才网官网登录
  • 东莞建网站平台/最新实时新闻
  • 网站建设的技术方案/软文案例大全300字
  • wordpress万网安装/网站优化排名怎么做
  • js网站下拉置顶代码/百度网盘网页版登录首页
  • 专业排名优化网站/海阳seo排名
  • 优秀网站建设出售/网上推广赚钱方法
  • 网上商城怎么开发/霸榜seo
  • 开发网站怎样注册公司/seo网站推广的主要目的是什么
  • 杭州网站建设页面/网络营销技巧和营销方法
  • 建设网站后如何做后台/广东清远今天疫情实时动态防控
  • 本地企业网站建设服务/百度学术论文官网入口
  • 服装生产厂商网站建设方案/推广学院seo教程
  • 怎么在网站视频做字幕/班级优化大师怎么用
  • 苏州企业网站制作服务/网站收录申请
  • 网站域名注册信息查询/网络营销和网络推广
  • 一个人做网站现实吗/免费推广产品的平台
  • 网站如何被搜索引擎收录/广州的百度推广公司
  • 阿里巴巴网站做销售方案/郑州seo优化哪家好