Spring Boot入门(十五) 之 国际化操作(页面的中英文相互切换)

简介: Spring Boot入门(十五) 之 国际化操作(页面的中英文相互切换)

页面国际化要实现的是,语言之前的来回切换

现在是英文页面,我是要实现如果浏览器默认语言是英文,那么就是英文,如果是中文,那么久是中文页面,当然我们也可以点击中英文切换来换中英文页面

首先我们在resources里边新建一个名字叫做i18n的国际化配置文件 (i18n全称为internationalization, i和n分别为首字母和尾字母,中间省略18个字母 , 滑稽)

我们在i18n里边新建login.properties和login_zh_CN.properties两个配置文件,第一个是默认配置文件,第二个是中文配置文件


这个时候,系统会检测到我们在做国际化,会给你一个Resource Bundle,我们直接在Resource bundle上边右击新建

输入en_US系统会自动给你配置好国际化配置文件

我们随便点开一个语言配置文件,可以看到下边有个Resource Bundle

由于properties文件默认编码为ascii所以我们调整一下

打开settings搜索file encodings,然后找到Properties files, 我们改为UTF-8 后边的transparent xxxxxx打上勾

这样我们在properties文件里边写的汉字就不会乱码

我们点开Resource Bundle

点击加号,我们输入login.tip(名字无所谓) 右边就会有三个框框,分别是默认的登录,中文的 还有英文的, 分别写上对应的文字

除了请登录,我们还有很多地方要修改如下

分别写上对应的文字

可以看到配置文件里自动帮我们写好了配置,

我们回到application.properties配置文件夹中,指定国际化内容


然后我们回到首页,国际化的内容我们都用#{}这个标签来表示

利用thymeleaf填入国际化内容,发现这里会给出提示

我们启动服务器,来访问

上边这个是谷歌浏览器默认语言是英文,所以显示英文

下边的这个是火狐浏览器,默认语言设置换成了中文,于是就显示了中文


如果我们想通过点几下边的中文和English来切换呢?

我们分别给中文和English传入不同的参数,l = 'zh_CN'和l='en_US'

然后我们在controller同济的文件夹下新建一个文件夹component 里边写一个叫做MyLocaleResolver的类


后边加上implements LocaleResolver然后按alt + enter补全下边的两个函数

package com.zhanshen.springbootweb.component;
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 MyLocaleResolver implements LocaleResolver {
    @Override
    public Locale resolveLocale(HttpServletRequest httpServletRequest) {
        //获取l的值
        String l = httpServletRequest.getParameter("l");
        //获取locale对象  getDefault是获取系统默认的
        Locale locale = Locale.getDefault();
        //检查l的值是否为空
        if(!StringUtils.isEmpty(l)) {
            //en_US  表示语言为English   地区为US  我们把这俩参数分隔开, 分别传给Locale
            String[] s = l.split("_");
            locale = new Locale(s[0], s[1]);
        }
        return locale;
    }
    @Override
    public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
    }
}

里边写上判断的逻辑并返回确认的语言类型

然后我们把它添加到容器中,在MyConfig里边写入如下

重启springboot

我们点击中文,就可以发现变成了中文,并且路径上就是我们刚刚穿的参数zh_CN

相关文章
|
20天前
|
前端开发 Java 数据库
SpringBoot入门 - 对Hello world进行MVC分层
SpringBoot入门 - 对Hello world进行MVC分层
39 3
SpringBoot入门 - 对Hello world进行MVC分层
|
20天前
|
Java 数据库连接 测试技术
SpringBoot入门 - 添加内存数据库H2
SpringBoot入门 - 添加内存数据库H2
32 3
SpringBoot入门 - 添加内存数据库H2
|
1月前
|
Java 应用服务中间件 数据库连接
SpringBoot入门(2) - SpringBoot HelloWorld
SpringBoot入门(2) - SpringBoot HelloWorld
39 2
SpringBoot入门(2) - SpringBoot HelloWorld
|
1月前
|
前端开发 Java 数据库
SpringBoot入门(3) - 对Hello world进行MVC分层
SpringBoot入门(3) - 对Hello world进行MVC分层
33 4
|
14天前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
31 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
20天前
|
Java 应用服务中间件 数据库连接
SpringBoot入门 - SpringBoot HelloWorld
SpringBoot入门 - SpringBoot HelloWorld
SpringBoot入门 - SpringBoot HelloWorld
|
20天前
|
Java Spring
SpringBoot入门 - 定制自己的Banner
SpringBoot入门 - 定制自己的Banner
15 2
SpringBoot入门 - 定制自己的Banner
|
20天前
|
缓存 IDE Java
SpringBoot入门(7)- 配置热部署devtools工具
SpringBoot入门(7)- 配置热部署devtools工具
38 1
SpringBoot入门(7)- 配置热部署devtools工具
|
25天前
|
前端开发 Java 数据库
SpringBoot入门(3) - 对Hello world进行MVC分层
SpringBoot入门(3) - 对Hello world进行MVC分层
15 1
 SpringBoot入门(3) - 对Hello world进行MVC分层
|
11天前
|
Java 数据库连接 数据库
从入门到精通---深入剖析Spring DAO
在Java企业级开发中,Spring框架以其强大的功能和灵活性,成为众多开发者的首选。Spring DAO(Data Access Object)作为Spring框架中处理数据访问的重要模块,对JDBC进行了抽象封装,极大地简化了数据访问异常的处理,并能统一管理JDBC事务。本文将从概述、功能点、背景、业务点、底层原理等多个方面深入剖析Spring DAO,并通过多个Java示例展示其应用实践,同时指出对应实践的优缺点。
17 1