一、在application.yml配置文件中添加配置信息
spring:
messages:
basename: i18n.message
二、在src/main/resources目录中创建i18n文件夹、并创建 message_en_US.properties,message_zh_CN.properties,message.properties三个文件,如下截图:
其中
message.properties 表示默认加载信息
message_zh_CN.properties 表示中文信息
message_en_US.properties 表示英文信息
内容如下截图:
-- message.properties
login.user.loginName=请输入登录用户名
login.user.password=请输入登录密码
login.user.captcha=请输入验证码
login.user.newCaptcha=点击我更换验证码
login.user.rememberMe=记住密码
login.user.login=登录
login.user.forgetPassword=忘记密码
login.user.regist=注册
login.error.loginNameOrPassword=用户名或密码错误
login.error.captcha=验证码错误
--message_zh_CN.properties
login.user.loginName=请输入登录用户名
login.user.password=请输入登录密码
login.user.captcha=请输入验证码
login.user.newCaptcha=点击我更换验证码
login.user.rememberMe=记住密码
login.user.login=登录
login.user.forgetPassword=忘记密码
login.user.regist=注册
login.error.loginNameOrPassword=用户名或密码错误
login.error.captcha=验证码错误
--message_en_US.properties
login.user.loginName=please enter user's login name
login.user.password=please enter user's password
login.user.captcha=please enter captcha code
login.user.newCaptcha=change captcha code
login.user.rememberMe=remember me
login.user.login=log in
login.user.forgetPassword=forget password
login.user.regist=regist
login.error.loginNameOrPassword=login name or password is not correct
login.error.captcha=captcha code is not correct
三、添加控制类:I18nConfig.java
import java.util.Locale;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.i18n.CookieLocaleResolver;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
/**
* 国际化配置
*
* @author YqZhilan
*
*/
@Configuration
public class I18nConfig extends WebMvcConfigurerAdapter {
@Bean
public LocaleResolver localeResolver(){
CookieLocaleResolver localeResolver = new CookieLocaleResolver();
localeResolver.setCookieName("localeCookie"); // 将语言信息添加到Cookie中
//设置默认区域
localeResolver.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); // 默认简化汉语
localeResolver.setCookieMaxAge(86400);//设置cookie有效期.24小时
return localeResolver;
}
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
// 参数名
lci.setParamName("l");
return lci;
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
}
}
如果想在Controller中获取配置文件中的国际化信息,则如下即可:
@Resource
private MessageSource messageSource;
Locale locale = LocaleContextHolder.getLocale();
System.out.println("messageSource : " + messageSource.getMessage("login.user.loginName", null ,locale));
如上代码即可获取国际化信息值;
如果想在端面展示页面中获取:
<input id="loginName" type="text" class="form-control" value="abcd" placeholder="请输入登录用户名" th:placeholder="#{login.user.loginName}" />
即可获取;
下面再给出一个在js中使用的示例:
if(loginName == ""){ // 登录用户名判空
$("#loginName").tips({
side : 2,
msg : [[#{login.user.loginName}]],
bg : 'red',
time : 3
});
return false;
}
至此结束,谢谢 ... ...