| | |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.util.Enumeration; |
| | | import java.util.Locale; |
| | | |
| | | @Slf4j |
| | | public class MyI18nInterceptor implements HandlerInterceptor { |
| | | |
| | | @Override |
| | | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { |
| | | final String key = "language"; |
| | | String language = "en_US";//request.getHeader(key); |
| | | // 前端传递的language必须是zh-CN格式的,中间的-必须要完整,不能只传递zh或en |
| | | log.debug("当前语言={}",language); |
| | | Locale locale = new Locale(language.split("_")[0],language.split("_")[1]); |
| | | // 这样赋值以后,MessageUtils.message方法就不用修改了 |
| | | LocaleContextHolder.setLocale(locale); |
| | | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler){ |
| | | try { |
| | | final String key = "language"; |
| | | //String language = "en-US"; |
| | | //String language = "zh-CN"; |
| | | Enumeration<String> headers = request.getHeaderNames(); |
| | | String language = request.getHeader(key); |
| | | if (language == null) { |
| | | //String language = "en-US"; |
| | | language = "en-US"; |
| | | } |
| | | // 前端传递的language必须是zh-CN格式的,中间的-必须要完整,不能只传递zh或en |
| | | log.debug("当前语言={}", language); |
| | | Locale locale = new Locale(language.split("-")[0], language.split("-")[1]); |
| | | // 这样赋值以后,MessageUtils.message方法就不用修改了 |
| | | LocaleContextHolder.setLocale(locale); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | log.error(ex.getMessage()); |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | |