SpringBoot系列—国际化(八)

个人博客:haichenyi.com。感谢关注

  所谓的国际化就是语言切换。中文切换到其他语种。

  国际化的信息,这些都是需要开发人员在配置类中配置好的。SpringBoot会自动加载这些配置类。

举个栗子:以登录界面为例,我们的登录界面输入账号、密码框的左边,会有这两个提示,我们就自动修改这两个提示。

创建配置文件

  首先,你要在你的resources目录下面新建i18n目录,当然,不是必须的,可以不创建,直接创建文件。之所以创建这个目录,只是便于管理。

  然后,在i18n目录下面创建配置文件,操作如下:

创建配置文件1.png

  在i18n的目录下面,新建一个Resources Bundle类型的文件,名字叫login

创建配置文件2.png

创建配置文件3.png

  点击+号,创建中文,英文两种语言的配置文件。中文叫 zh_CN,英文叫 en_US,这两种类型是写死的。

创建配置文件4.png

创建配置文件5.png

创建配置文件6.png

  根据如上操作,分别创建key为login.username,login.password,并且分别创建好对应的内容。这个key,页面会用到。

PS:不要忘记了,在全局配置文件中配置好,spring.messages.basename=i18n.login,这里现在是只有一个登陆页面需要国际化,如果有多个页面需要,比方说注册页面,就在后面添加。如:spring.messages.basename=i18n.login,i19n.register这样的方式,中间用逗号隔开即可。

修改页面显示内容

  按照上面的步骤,创建好了之后,在你页面需要国际化的view,分别按如下的方式获取值:

<!--th:text="#{上面命名的key}"-->
<div class="inputbox">
                <label for="user" th:text="#{login.username}">Username</label>
                <input id="user" type="text" name="username" required/>
            </div>
            <div class="inputbox">
                <label for="mima" th:text="#{login.password}">Password</label>
                <input id="mima" type="password" name="password" required/>
            </div>

自定义区域解析器

  区域解析器LocaleResolver,按如下的方式实现即可。

package com.haichenyi.springbootbill.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;

/**
 * 自定义区域解析器
 */
public class MyLocalResolver implements LocaleResolver {
    @Override
    public Locale resolveLocale(HttpServletRequest httpServletRequest) {
        String l = httpServletRequest.getParameter("l");
        Locale locale = Locale.getDefault();
        if (!StringUtils.isEmpty(l)) {
            String[] s = l.split("_");
            locale = new Locale(s[0], s[1]);
        }
        return locale;
    }

    @Override
    public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {

    }
}

  最后,在你对应的超链接的地方传 zh_CNen_US 即可实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海晨忆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值