配置
在resources目录下面创建i18n目录,然后创建几个文件
messages.properties
i18n.language.chinese=中文
i18n.language.english=English
i18n.home=首页
i18n.about=关于我们
messages_en_US.properties
i18n.language.chinese=中文
i18n.language.english=English
i18n.home=Home
i18n.about=About Us
messages_zh_CN.properties
i18n.language.chinese=中文
i18n.language.english=English
i18n.home=首页
i18n.about=关于我们
application.yml 配置
spring:
messages:
basename: i18n/messages
注意:这里的basename 是配置的到资源文件名(不含.properties)的相对classpath路径可以配置多个,英文逗号分隔。
启动类实现WebMvcConfigurer接口
@SpringBootApplication
public class Application implements WebMvcConfigurer {
/**
* for i18n cookieLocale更智能
*/
@Bean
public LocaleResolver localeResolver(){
return new CookieLocaleResolver();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
//....其他配置.....
//i18n
LocaleChangeInterceptor localeChangeInterceptor=new LocaleChangeInterceptor();
localeChangeInterceptor.setParamName("lang");
registry.addInterceptor(localeChangeInterceptor);
}
}
Locale
切换接口
@Controller
public class LocaleController {
@GetMapping(value = "/locale")
public String localeHandler(HttpServletRequest request) {
String lastUrl = request.getHeader("referer");
return "redirect:" + lastUrl;
}
}
Locale
接口调用参考
<a class="dropdown-item" th:href="@{/locale(lang=es_ES)}"
th:text="#{i18n.language.chinese}">中文</a>
<a class="dropdown-item" th:href="@{/locale(lang=en_US)}"
th:text="#{i18n.language.english}">English</a>
Locale
本地化信息展示使用参考:
<li class="item active"><a href="/" th:text="#{i18n.home}">首页</a></li>
<li class="item"><a href="./about.html" th:text="#{i18n.about}">关于我们</a></li>
https://www.leftso.com/article/2407031532463557.html