首页 > 其他分享 >SpringBoot-中英文页面切换(国际化)

SpringBoot-中英文页面切换(国际化)

时间:2023-01-12 20:15:25浏览次数:57  
标签:SpringBoot 配置文件 Locale 中英文 import login properties 页面

目录


1. 设置项目编码UTF8

英文界面搜索File Encodings,
中文界面搜索文件编码

2. 在resources目录下新建i18n文件夹及语言配置文件

在i18n文件夹下新建三个properties配置文件

注意,中文配置文件要带zh_CN,英文配置文件要带en_US,idea可以自动识别。

login.properties

btn-login=登录
pwd=密码
remember=记住我
tip=请登录
username=用户名

login_en_US.properties

btn-login=login
pwd=password
remember=remember me
tip=Please Login
username=username

login_zh_CN.properties

btn-login=登录
pwd=密码
remember=记住我
tip=请登录
username=用户名

从图中红框部分可以看到idea可以在login.properties文件中可以同时配置三个语言的属性。

3. 指出国际化相关文件的位置

在application.properties配置文件中添加

spring.messages.basename=i18n.login

4. 展示页面

<h1 th:text="#{tip}"></h1>

效果图:

5. 使用按钮切换中英文页面

5.1 新建html页面

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

5.2 实现LocaleResolver 接口

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

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

//国际化
public class MyLocalResolver implements LocaleResolver {
    @Override
    public Locale resolveLocale(HttpServletRequest request) {
//        获取语言参数
        String language = request.getParameter("lang");
        System.out.println("DeBug===>"+language);
//        如果链接为空使用默认
        Locale locale = Locale.getDefault();

//        如果不为空
        if (!StringUtils.isEmpty(language)) {
            String[] sp = language.split("_");
            locale=new Locale(sp[0], sp[1]);
        }
        return locale;
    }
    @Override
    public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
    }
}

5.3 放入Bean

在 MyMvcConfig 类中,放入Bean。(方法名也就是Bean的名字,必须为localeResolver)

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

标签:SpringBoot,配置文件,Locale,中英文,import,login,properties,页面
From: https://www.cnblogs.com/cnleika/p/17044679.html

相关文章

  • SpringBoot简单整合JPA
    SpringBoot简单整合JPAhttps://blog.csdn.net/qq_41378597/article/details/103444889最近帮朋友写个小项目,用惯了Mybatis,有机会想用下SpringBoot整合JPA,发现使用JPA......
  • Springboot简单整合JPA示例
    Springboot整合JPAhttps://blog.csdn.net/wdy00000/article/details/123588201文章目录JPA技术常用注解Springboot整合JPA1.引入JPA依赖2.配置3.启动类4.实体类5.......
  • springboot 自动配置 自动监控demo
    1、注解定义@Target({java.lang.annotation.ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic@interfaceUmp{publicabstractSt......
  • IDEA的Services中添加SpringBoot启动和npm启动
    1、添加SpringBoot启动点击页面最下方Services,在弹出框中点击左上角最右侧的+,在点击RunConfigurationType,在弹出框AddConfigurationType中找到SpringBoot点击......
  • 【SpringBoot】配置篇
      POM.XML<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"......
  • 使用虚拟 dom 渲染页面 《vue.js 设计与实现》
     使用js对象描述ui更加灵活。假如我们要根据级别不同采用不同的标签。js对象描述的话,只需要一个变量代表h标签即可。//当变量改变时,标签也会变化。letlevel=......
  • 视频直播源码,uniapp页面跳转的几种方法和区别
    视频直播源码,uniapp页面跳转的几种方法和区别在讲它们的差异之前,我们先引入一个概念:页面栈 1.栈是一种连续储存的数据结构,具有先进后出的性质。2.页面栈就是用来储......
  • SpringBoot不同环境的配置文件讲解
    前言​ 源于工作中发现项目中的的application.yml有多样的application.yml,如下图所示:​ 了解过后发现是因为测试环境和生产环境一些配置可能会有差异,比如数据库的地址、......
  • springboot集成minio
    1、docker安装miniosudodockerrun-d--nameminio--restart=always-p9000:9000-p9001:9001-e"MINIO_ROOT_USER=minioroot"-e"MINIO_ROOT_PASSWORD=minioroot......
  • SpringBoot系列之Redis实现消息队列
    1前言本教程主要讲解的是如何在SpringBoot中用Redis实现消息队列。学习本教程的前提知识点是有SpringBoot、Redis、消息队列等基础。所以默认各位大佬已经掌握以上知识点。......