本文共 1870 字,大约阅读时间需要 6 分钟。
success_en_US.properties文件(英文)
success.name=Mr.Huang
success_zh_CN.properties(中文)
success.name=\u9EC4\u5FA1\u633A
success.properties(默认中文)
success.name=\u9EC4\u5FA1\u633A
其中success是根名 .name 是你需要中英文切换属性的属性值
spring.messages.basename=local/success
在application.properties文件中添加以上代码标识语言配置文件的位置
package handler;import java.util.Locale;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.util.StringUtils;import org.springframework.web.servlet.LocaleResolver;public class MyLocaleResolver implements LocaleResolver{ @Override public Locale resolveLocale(HttpServletRequest request) { String l = request.getParameter("l"); //没有设置的话就用系统默认的语言 Locale locale = Locale.getDefault(); if(!StringUtils.isEmpty(l)){ String[] split = l.split("_"); locale = new Locale(split[0], split[1]); System.out.println(split[0]+" "+split[1]); } return locale; } @Override public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) { // TODO Auto-generated method stub }}
创建一个MyLocaleResolver类实现LocaleResolver
其中 l 是指前端在地址栏后面的配置的参数, 值的格式是 zh_CN, zh是代表语言的, CN是代表国家的。
Locale locale = Locale.getDefault()表示如果没有相关参数就默认使用系统的语言。
但此时该方法返回的locale并没有添加到容器中, 即无法生效
@Configurationpublic class MyMvcConfig extends WebMvcConfigurerAdapter{ Logger logger = LoggerFactory.getLogger(getClass()); @Bean public LocaleResolver localeResolver(){ logger.info("语言解析器已添加..."); return new MyLocaleResolver(); }}
创建MVC配置类。
写一个方法用@Bean标识并且返回刚才写的MyLocaleResolver类的对象, 表示将该类的对象添加到容器中, 此时springboot自动配置的语言解析器就失效,转为使用我们编写的语言解析器了。
中文英文eee
这里只要点击中文或英文 , 下面的success.name就会根据参数l的值来改变语言了。
转载地址:http://xuern.baihongyu.com/