Springboot从入门到放弃之国际化配置

  1. 项目结构:
    在这里插入图片描述

  2. 编写国际化配置文件:
    在resourses下建立i18n文件夹——New file——取名为Login.properties
    接着相同方式new Login_en_US.properties 和 Login_ch_CN.properties
    编译器会自动帮你转化为resource Bundle文件形式。

    单击 Login_en_US.properties,在下方切换到Resource Bundle 视角:
    单击“+”——输入login.tip 等
    按照右方提示书写内容
    在这里插入图片描述
    tips: 如果中文有乱码,要在编译器的设置里设置file encoding为UTF-8

  3. 在html文件中取值:

     <!DOCTYPE html>
     <html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
     <head>
     	<meta charset="UTF-8">
     	<title>登录</title>
     	 <link rel="stylesheet"  type="text/css"  href="/static/css/loginstyle.css"/>
    
     </head>
     <body>
    
     
     	<div class="login">
     		  <div class="login-top">
        				 **<h1 th:text="#{login.tip}"></h1>**  //用的是thymeleaf ,取值
      		  </div>
     		 <div style="text-align: center">
         		<a   th:href="@{/login.html(l='ch_CN')}">中文</a>  //手动切换中文
    			 </div>
     		<div style="text-align: center">
         		<a  th:href="@{/login.html(l='en_US')}">English</a> //手动切换英文
    	    </div>
        </div>
    
     </body>
     </html>
    
  4. 建个MyLocaleResolver 类,自定义LocaleResolver

    //泛指各种组件,就是说当我们的类不属于各种归类的时候
    // (不属于@Controller、@Services等的时候),
    // 我们就可以使用@Component来标注这个类
    //可在WebMvcAutoConfiguration源码中查看的localeResolver方法
    
    @Component("localeResolver")
    public class MyLocaleResolver implements LocaleResolver {
    	 @Override
     		public Locale resolveLocale(HttpServletRequest httpServletRequest) {
    		String l = httpServletRequest.getParameter("l");
    		Locale locale = Locale.getDefault();//默认语言
    		 if(!StringUtils.isEmpty(l)){
        		String[] split =l.split("_");
       			 locale = new Locale(split[0],split[1]);//split[0]语言,
    			 }
    		 return locale;
    		
    		//根据用户浏览器的设置的语言
    		/* Locale locale = Locale.getDefault();//默认语言
    		   String getLanguage=httpServletRequest.getHeader("Accept-Language");
    			//格式为en,zh-CN;q=0.9,zh;q=0.8 split[0]=en,zh-CN
    			String[] split = getLanguage.split(";");
    			String[] split2 = split[0].split(",");
    			String[] split3 = split2[0].split("-");
    
    			 if(split3[0].equals("zh"))
    			{
         			locale = new Locale("zh", "CN");
    			}
    			else if(split3[0].equals("en"))
    			{
         			locale = new Locale("en", "US");
    			}
    		 	return locale;*/
    
     }
    
      @Override
      public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
    
      }
    }
    
  5. 路径的配置

     @Configuration
     public class MyConfig implements WebMvcConfigurer  {
    
     //该步为映射路径配置
     @Bean
      public WebMvcConfigurer webMvcConfigurer() {
    
       WebMvcConfigurer webMvcConfigurer = new WebMvcConfigurer() {
         @Override
         public void addViewControllers(ViewControllerRegistry registry) {
             registry.addViewController("/").setViewName("Login");
             registry.addViewController("/login.html").setViewName("Login");
    
         }
     };
    	 return webMvcConfigurer;
    }
    
     //该步为静态资源配置
      @Override
      public void addResourceHandlers(ResourceHandlerRegistry registry)
     {
     		registry.addResourceHandler("/static/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/static/");
       }
    
     //该步为国际化配置
     @Bean
      public LocaleResolver myLocaleResolver(){
      	 return new MyLocaleResolver();
       }
     }
    
  6. 莫忘配置要老命了

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值