国际化

作者:神秘网友 发布时间:2020-09-21 14:44:49

国际化

国际化
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"          <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>

国际化相关教程

  1. JavaWeb:国际化
  2. Boot引导程序初体验
  3. java实现乘法表的打印
  4. Ubuntu20.04下实现jupyter中C++代码编写
  5. shell脚本编写时的必备命令之控制语句和简单运算
  6. 使用STM32编写一个简单的RTOS:5.内核同步(一、信号量)
  7. VSCODE 配置C++项目编写环境(使用cmake)详细教程
  8. 一个数如果恰好等于它的因子之和,这个数就称为完数。编写应用程