spring boot之国际化管理使用

//MessageSourceAutoConfiguration类的配置
//springboot默认国际化配置文件:classpath:message.properties
@Bean
@ConfigurationProperties(prefix = "spring.messages")//前缀名

public MessageSourceProperties messageSourceProperties() {
   return new MessageSourceProperties();
}
//MessageSourceProperties类
public String getBasename() {
   return this.basename;
}
@Bean
public MessageSource messageSource(MessageSourceProperties properties) {
   ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();

使用
在resource中写一个自己的配置
在这里插入图片描述
设置属性
在这里插入图片描述
application.properties中配置spring.messages.basename=i18n/login
最后在html页面进行提取
使用#{…}提取国际化属性,使用[[…]]进行行内提取,比如

Hello, [[${session.user.name}]]!

//WebMvcAutoConfiguration类中的有关区域配置的相关信息
@Bean
//没有这个bean时使用自己的LocaleResolver
@ConditionalOnMissingBean
@ConditionalOnProperty(prefix = "spring.mvc", name = "locale")
public LocaleResolver localeResolver() {
   if (this.mvcProperties.getLocaleResolver() == WebMvcProperties.LocaleResolver.FIXED) {
      return new FixedLocaleResolver(this.mvcProperties.getLocale());
   }
   AcceptHeaderLocaleResolver localeResolver = new AcceptHeaderLocaleResolver();
   localeResolver.setDefaultLocale(this.mvcProperties.getLocale());
   return localeResolver;
}

实现页面点击切换中英文效果
在html页面中配置区域信息

<a class="btn btn-sm" th:href="@{/index.html(head='zh_CN')}">中文</a>
<a class="btn btn-sm" th:href="@{/index.html(head='en_US')}">English</a>

实现LocaleResolve类

public class MyLocaleResolver implements LocaleResolver {
    @Override
    public Locale resolveLocale(HttpServletRequest request) {
        String head = request.getParameter("head");//获取请求头信息,比如zh_CN
        Locale locale = Locale.getDefault();
        if(!StringUtils.isEmpty(head)){
            String[] split = head.split("_");
            locale = new Locale(split[0], split[1]);//语言代码,国家代码
        }
        return locale;
    }
    @Override
    public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {

    }
}

将自己的LocalResolve类放到springmvc配置中

@Bean
public LocaleResolver localResolver(){
    return new MyLocaleResolver();
}

问题:重新写了MyLocaleResolver类页面生效。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值