Files
dk-sass-server/ruoyi-admin/src/main/java/com/ruoyi/web/config/I18nConfig.java
2024-05-20 12:32:57 +08:00

98 lines
3.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.ruoyi.web.config;
import com.ruoyi.dk.service.HomeSettingService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;
/**
* i18n配置用于处理语言本地化设置。
*
* @author liuyanqiang
* @version 1.0.0
* @since 2023/06/15 09:41
**/
@Configuration
public class I18nConfig implements LocaleResolver {
@Autowired
private HomeSettingService homeSettingService;
/**
* 根据请求中的Accept-Language头部解析出语言设置。
* 如果没有指定语言或语言设置不完整,则默认为中文设置。
*
* @param request HTTP请求对象
* @return {@link Locale } 解析后的语言设置Locale对象
* @author liuyanqiang
* @since 2023/06/15 09:42
**/
@Override
public Locale resolveLocale(HttpServletRequest request) {
return Locale.CHINA;
/*// 默认语言设置为中文
String defaultLocal = homeSettingService.getHomeSetting().getDefaultLocal();
Locale locale = null;
// 从请求的头部获取Accept-Language标头该标头指定了客户端期望的语言
String language = request.getHeader("Sass-Language");
String lang = request.getParameter("lang");
if (StringUtils.isNotBlank(lang)) {
language = lang;
}
if(StringUtils.isBlank(language)){
language = defaultLocal;
}
// 检查请求的语言是否非空
if (StringUtils.isNotBlank(language)) {
// 将语言字符串拆分为语言和国家/地区代码
String[] splitLanguage = language.split("_");
// 检查是否有语言和国家/地区代码
if (splitLanguage.length > 1) {
// 根据语言和国家/地区代码创建新的Locale对象
locale = new Locale(splitLanguage[0], splitLanguage[1]);
}
}
if(locale == null){
locale = Locale.CHINA;
}
// 返回解析得到的Locale对象作为解析后的语言设置
return locale;*/
}
/**
* 设置语言设置时的回调方法。
* 在此实现中,不执行任何操作,忽略对语言设置的更改。
* @param request HTTP请求对象
* @param response HTTP响应对象
* @param locale 语言设置的Locale对象
* @author liuyanqiang
* @since 2023/06/15 09:43
**/
@Override
public void setLocale(
HttpServletRequest request,
HttpServletResponse response,
Locale locale) {
// 此方法不执行任何操作,忽略对语言设置的更改
}
/**
* 创建LocaleResolver bean用于处理语言设置。
*
* @return {@link LocaleResolver }
* @author liuyanqiang
* @since 2023/06/15 09:44
**/
@Bean
public LocaleResolver localeResolver() {
// 返回当前类作为LocaleResolver的实例
return new I18nConfig();
}
}