// package com.backendsys.config.Interceptor; // import com.backendsys.config.Security.utils.TokenUtil; // import jakarta.servlet.http.Cookie; // import jakarta.servlet.http.HttpServletRequest; // import jakarta.servlet.http.HttpServletResponse; // import org.springframework.beans.factory.annotation.Autowired; // import org.springframework.beans.factory.annotation.Value; // import org.springframework.data.redis.core.StringRedisTemplate; // import org.springframework.stereotype.Component; // import org.springframework.web.servlet.HandlerInterceptor; // import java.util.concurrent.TimeUnit; // @Component // public class TranslationInterceptor implements HandlerInterceptor { // @Autowired // private TokenUtil tokenService; // @Autowired // private StringRedisTemplate stringRedisTemplate; // @Value("${TOKEN_DURATION_MEMBER}") // private Long TOKEN_DURATION_MEMBER; // @Value("${DEFAULT_LANGUAGE}") // private String DEFAULT_LANGUAGE; // @Override // public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // // 获取 Cookie 中的 lang 值 // String lang = getLangFromCookie(request.getCookies()); // // 将 lang 存入线程本地变量,以便后续使用 // // LocaleContextHolder.setLocale(new Locale(lang)); // // request.setAttribute("lang", lang); // // 将 lang 存入 Redis // String langRedisKey = "lang:" + tokenService.getLoginUUID(); // System.out.println("langRedisKey = " + langRedisKey); // stringRedisTemplate.opsForValue().set(langRedisKey, lang, TOKEN_DURATION_MEMBER, TimeUnit.MILLISECONDS); // return true; // } // // 获取 Cookie 中的 lang 值 // private String getLangFromCookie(Cookie[] cookies) { // if (cookies != null) { // for (Cookie cookie : cookies) { // if ("lang".equals(cookie.getName())) { // return cookie.getValue(); // } // } // } // return DEFAULT_LANGUAGE; // 默认语言 (application.yml - DEFAULT_LANGUAGE) // } // }