@Slf4j
public class LocaleInterceptor implements HandlerInterceptor {
@Value("${username:username}")
private String username;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Locale curLocale = Locale.CHINA;
String headerLanguage = request.getHeader("Accept-Language");
String uri = request.getRequestURI();
CookieUtil.setCookieDomainFromHostUrl(request.getRequestURI());
String ldap = CookieUtil.getCookieValue(request, username);
log.info("接口语言环境={},url={},operator={}", headerLanguage, uri, ldap);
if (headerLanguage != null) {
curLocale = request.getLocale();
}
if (!Locale.US.equals(curLocale)) {
curLocale = Locale.CHINA;
}
// 操作日志记录 暂时不支持国际化
if (uri.contains("/perf/api/performance/log/list") ){
curLocale = Locale.CHINA;
}
TtlLocaleContextHolder.setLocale(curLocale);
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception e) throws Exception {
}
}