文章字数:191,阅读全文大约需要1分钟
https://www.jianshu.com/p/e2eae08f3255
配置参数(bean)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| @Configuration public class LocaleConfig {
@Bean public LocaleResolver localeResolver() { SessionLocaleResolver localeResolver = new SessionLocaleResolver(); localeResolver.setDefaultLocale(Locale.US); return localeResolver; }
@Bean public WebMvcConfigurer localeInterceptor() { return new WebMvcConfigurer() { @Override public void addInterceptors(InterceptorRegistry registry) { LocaleChangeInterceptor localeInterceptor = new LocaleChangeInterceptor(); localeInterceptor.setParamName("lang"); registry.addInterceptor(localeInterceptor); } }; } }
|
配置文件
1 2 3 4
| spring: messages: basename: static/i18n/messages
|
classpath:/static/i18n
目录中添加文件:
- 默认文件
messages.properties
- 美式英语
messages_en_US.properties
- 简体中文
messages_zh_CN.properties
后端使用国际化
- 编写通用国际化工具类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| @Component public class MessageUtils{
private static MessageSource messageSource;
public MessageUtils(MessageSource messageSource) { MessageUtils.messageSource = messageSource; }
public static String get(String msgKey) { try { return messageSource.getMessage(msgKey, null, LocaleContextHolder.getLocale()); } catch (Exception e) { return msgKey; } }
|
freeMarker中获取
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| <!DOCTYPE html> <html lang="en"> <head> <!--引入--> <#import "spring.ftl" as spring> <#assign arg = ["AAA","张三"]> <title><@spring.messageArgs "title" ,arg /></title> <meta charset="UTF-8"> </head> <body> <br/> <a class="changeLang" href="javascript:void(0);">english</a><br/> <a class="changeLang" href="javascript:void(0);">中文</a><br/> <!--使用--> <@spring.message code="user.loginname"/><br/> </body> <script src="${request.contextPath}/static/jquery.js"></script> <script> $(".changeLang").on("click", function () { switch ($(this).text()) { case "中文": { window.location.href = "index?_lang=zh_CN"; break; } case "english": { window.location.href = "index?_lang=en_US"; break; } } }) </script> </html>
|