springboot整合国际化

此文建立于已经搭建好springboot基本项目

1、在resources文件夹下新建名为i18n的文件夹,然后在i18n文件夹下新建一个login_zh_CN.properties文件与login_en_US.properties文件,建了这两个文件后,springboot会自动将这两个文件放在同一个子目录下,如图所示1.1,然后如图1.2操作,操作完成后,进行如图1.3所示操作


1.1.png
1.2.png
1.3.png

2、打开login_en_US.properties,然后点击Resource Bundle,然后点击➕,然后添加内容如图2.1所示

2.1.png

3、在application中配置国际化,yml文件配置如图3.1所示


3.1.png

4、基于themleaf的前端页面,获取国际化名字,如图4.1所示


4.1.png

5、在登录界面,通过选择中文还是English,实现国际化,themleaf是使用小括号,然后参数按照key=value的形式设置,注意单引号;

国际化.png

6、覆盖springboot的自带配置,那么我们新建一个文件 MyLocaleResolver,用来实现 LocaleResolver 接口的作用;


文件位置.png
package  cn.bonze.springboot_curd.component;

import org.springframework.util.StringUtils;
import org.springframework.web.servlet.LocaleResolver;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;

/**
 * 可以在连接上携带区域信息
 * @author Administrator
 */
public class MyLocaleResolver implements LocaleResolver {

    @Override
    public Locale resolveLocale(HttpServletRequest request) {
        String l = request.getParameter("l");
        Locale locale = Locale.getDefault();
        if(!StringUtils.isEmpty(l)){
            String[] split = l.split("_");
            locale = new Locale(split[0],split[1]);
        }
        return locale;
    }

    @Override
    public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {

    }
}



7、为了让配置生效,将配置注入到spring中,如下代码所示

package cn.bonze.springboot_curd.config;

import cn.bonze.springboot_curd.component.MyLocaleResolver;
import org.springframework.boot.autoconfigure.web.WebMvcProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import java.util.Locale;

/**
 * @author chenb
 */
@Configuration
public class MyMvcConfig extends WebMvcConfigurerAdapter {

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

}

8、最终效果展示

刚登录.png
点击English后的效果.png
  • 本文来自尚硅谷视频教程中的内容

你可能感兴趣的:(springboot整合国际化)