springboot国际化 支持多国语言展示 1、自动式国际化:通过浏览器发送请求头携带的信息自动使用国际化 2、手动式国际化:通过点击按钮,动态更改国际化 由于springboot自动配置中已集成国际化,直接使用即可 1、创建语言包:(文件编码为:ascii) 2、配置文件内容:(可以为空,但key不能不写) 3、初始化配置: 4、取国际化内容: 注: 此种方法是根据浏览器请求中的Accept-Language决定的 Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4 切换语言: 谷歌–设置–高级–语言–等 2.1 通过点击按钮,动态更改国际化 1、增加自定义区域解析器 2、将自定义区域解析器注入容器 3、通过点击,使用对应的国际化 存在的问题一: 存在iframe跳转时,请求中的Accept-Language会改变原来解析,利用session转存即可 问题二: jstl在单独的js文件中,获取不到国际化的值 原因: jstl、el的标签会转化为服务器端的代码执行,而js代码则在客户端执行 如果是单独的js文件,jstl、el表达式是不起作用的, jstl、EL表达式是在服务端执行的,服务端执行完成后再传给客户端的,js是在客户端执行的,el在js前就被执行了 解决办法: 将单独的js合并至对应的jsp页面即可
/src/main/resources/ static/i18n/messages.properties 默认配置 static/i18n/messages_zh_CN.properties 中文配置 static/i18n/messages_en_US.properties 英文配置 static/i18n/messages_zh_TW.properties 中文繁体
messages_zh_CN.properties user.title=用户登录 user.welcome=欢迎使用 messages_en_US.properties user.title=User Login user.welcome=Welcome
spring.messages.basename=static/i18n/messages
<%@ taglib uri="https://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <fmt:message key="user.welcome" />
import java.util.Locale; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.util.StringUtils; import org.springframework.web.servlet.LocaleResolver; /** * @title: 自定义区域解析器 * @time: 2019年11月19日 * * <msg> * SpringBoot默认的Locale解析器是根据请求头的区域信息进行解析的(浏览器语言) * 使用自定义的Locale解析器对url的区域信息进行解析达到点击切换区域效果 * 一旦我们自定义的区域解析器注册到Spring容器中,则SpringBoot提供的将不自动注册 * </msg> * */ public class LocaleResolverConfig implements LocaleResolver { /** * 获取页面传输信息,执行对应的国际化 */ @Override public Locale resolveLocale(HttpServletRequest request) { String lang = request.getParameter("lang"); if (!StringUtils.isEmpty(lang)) { String[] langSplit = lang.split("_"); return new Locale(langSplit[0],langSplit[1]); } return Locale.getDefault();//使用默认配置 } @Override public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) { // 增加新语言时使用 //SessionLocaleResolver localeResolver = new SessionLocaleResolver(); //localeResolver.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); } }
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.LocaleResolver; /** * * @title: 初始化自定义bean * @time: 2019年11月19日 * */ @Configuration public class InitLocalConfig { /** * 注入-自定义区域解析器 * @return */ @Bean public LocaleResolver localeResolver() { return new LocaleResolverConfig(); } }
<a href="<%=request.getContextPath()%>/?lang=zh_CN" >中文简体</a> <a href="<%=request.getContextPath()%>/?lang=zh_TW" >中文繁体</a> <a href="<%=request.getContextPath()%>/?lang=en_US" >English</a>
import java.util.Locale; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.util.StringUtils; import org.springframework.web.servlet.LocaleResolver; import com.axa.pricingplatform.constants.CommonConstant; /** * * @title: 自定义区域解析器 * @time: 2019年11月19日 * * <msg> * SpringBoot默认的Locale解析器是根据请求头的区域信息进行解析的(浏览器语言) * 使用自定义的Locale解析器对url的区域信息进行解析达到点击切换区域效果 * 一旦我们自定义的区域解析器注册到Spring容器中,则SpringBoot提供的将不自动注册 * </msg> * */ public class LocaleResolverConfig implements LocaleResolver { /** * 获取页面传输信息,执行对应的国际化 */ @Override public Locale resolveLocale(HttpServletRequest request) { String lang = request.getParameter("lang"); if (!StringUtils.isEmpty(lang)) { request.getSession().setAttribute(CommonConstant.LOGIN_LANG, lang); String[] langSplit = lang.split("_"); return new Locale(langSplit[0],langSplit[1]); } lang = (String) request.getSession().getAttribute(CommonConstant.LOGIN_LANG); if(!StringUtils.isEmpty(lang)){ String[] langSplit = lang.split("_"); return new Locale(langSplit[0],langSplit[1]); } return Locale.getDefault();//使用默认配置 } }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算