国际化

1.编写相关配置文件(注意命名xxx_zh_CN,xxx_zh_TW)

在这里插入图片描述
在这里插入图片描述

springboot配置文件
spring.messages.basename=i18n/login
2.增加一个配置类MainConfig,实现WebMvcConfigurer
addInterceptors方法中增加了一个国际化拦截器,
会拦截前端_lang参数,
因为localeResolver方法中实例化了CookieLocaleResolver对象,
所以language参数会存在cookie中,
所有的页面都可以从cookie中取到language参数。
你也可以使用SessionLocaleResolver将参数存到session。
@Configuration
public class MainConfig implements WebMvcConfigurer {
    @Bean
    public LocaleResolver localeResolver() {
        CookieLocaleResolver slr = new CookieLocaleResolver();
        // 默认语言,中文
        slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE);
        return slr;
    }

    @Bean
    public LocaleChangeInterceptor localeChangeInterceptor() {
        LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
        // 参数名
        lci.setParamName("language");
        return lci;
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(localeChangeInterceptor());
    }

}

3.前端代码部分

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
		<meta name="description" content="">
		<meta name="author" content="">
		<title>Signin Template for Bootstrap</title>
		<!-- Bootstrap core CSS -->
		<link href="asserts/css/bootstrap.min.css" rel="stylesheet">
		<!-- Custom styles for this template -->
		<link href="asserts/css/signin.css" rel="stylesheet">
        <script src="asserts/js/jquery-3.2.1.slim.min.js"></script>
        <script>
            $(function () {
                $("#ch").click(function () {
                    window.location.href = "index?language=zh_CN";
                })
                $("#en").click(function () {
                    window.location.href = "index?language=en_US";
                })
            })
        </script>
        //
        <#import "spring.ftl" as spring />
	</head>

	<body class="text-center">
		<form class="form-signin" action="/dashboard">
			<img class="mb-4" src="asserts/img/bootstrap-solid.svg" alt="" width="72" height="72">
			<h1 class="h3 mb-3 font-weight-normal"><@spring.message "login.tip"/></h1>
			<label class="sr-only">Username</label>
			<input type="text" class="form-control" placeholder="Username" required="" autofocus="">
			<label class="sr-only">Password</label>
			<input type="password" class="form-control" placeholder="Password" required="">
			<div class="checkbox mb-3">
				<label>
          <input type="checkbox" value="remember-me"> <@spring.message "login.remenber"/>
        </label>
			</div>
			<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
			<p class="mt-5 mb-3 text-muted">© 2017-2018</p>
			<a class="btn btn-sm" id="ch">中文</a>
			<a class="btn btn-sm" id="en">English</a>
		</form>

	</body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值