Compare commits

..

4 Commits

Author SHA1 Message Date
08aab8d5a9 add TimiSpring.getLanguageRaw 2025-11-07 23:38:50 +08:00
f887079a62 catch multilingualHeader exception 2025-11-07 16:56:40 +08:00
3283c678db fix TimiSpring.getLanguage fail on Chrome 2025-11-07 16:55:59 +08:00
3eb6bd7df5 log for not prod env 2025-11-07 15:15:41 +08:00
3 changed files with 21 additions and 8 deletions

View File

@ -20,6 +20,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Locale;
/**
@ -344,6 +345,10 @@ public class TimiSpring {
return TimiJava.firstNotEmpty(getHeader("Token"), getHeader("token"), getRequestArg("token"), getRequestArg("Token"));
}
public static String getLanguageRaw() {
return getHeader("Accept-Language");
}
/**
*
* @return 客户端地区语言
@ -351,14 +356,17 @@ public class TimiSpring {
public static Language getLanguage() {
String name = getRequestArg("lang");
if (TimiJava.isEmpty(name)) {
name = getHeader("Accept-Language");
List<Locale.LanguageRange> rangeList = Locale.LanguageRange.parse(getLanguageRaw());
for (Locale.LanguageRange item : rangeList) {
if (item.getRange().contains("-")) {
name = item.getRange();
break;
}
}
}
if (TimiJava.isNotEmpty(name)) {
name = name.replace("-", "_");
}
if (TimiJava.isEmpty(name)) {
name = getLocale().toString();
}
if (TimiJava.isEmpty(name)) { // use for not support
return Language.zh_CN;
}

View File

@ -89,7 +89,7 @@ public class GlobalExceptionHandler {
@ExceptionHandler(Throwable.class)
public TimiResponse<?> error(Throwable e) {
if (e instanceof TimiException timiE) {
if (env.startsWith("dev") || log.isDebugEnabled()) {
if (!env.startsWith("prod") || log.isDebugEnabled()) {
log.error(timiE.getMessage(), e);
}
// 一般异常

View File

@ -55,9 +55,14 @@ public class GlobalReturnHandler implements ResponseBodyAdvice<Object> {
} else {
result = new TimiResponse<>(TimiCode.SUCCESS, body);
}
if (multilingualHeader != null && TimiJava.isNotEmpty(result.getMsgKey())) {
result.setMsg(multilingualHeader.handler(result));
} else if (TimiJava.isEmpty(result.getMsg())) {
try {
if (multilingualHeader != null && TimiJava.isNotEmpty(result.getMsgKey())) {
result.setMsg(multilingualHeader.handler(result));
} else if (TimiJava.isEmpty(result.getMsg())) {
result.setMsg(TimiCode.fromCode(result.getCode()).toString());
}
} catch (Exception e) {
log.error("multilingual response error", e);
result.setMsg(TimiCode.fromCode(result.getCode()).toString());
}
if (30000 < result.getCode()) {