refactor(utils): 重构 RequestLocaleUtils 语言标签解析逻辑

This commit is contained in:
2026-03-09 17:39:55 +08:00
parent 49a58e6f87
commit 4519343139

View File

@@ -19,15 +19,13 @@ public final class RequestLocaleUtils {
return defaultLanguage();
}
int separatorIndex = preferredLanguage.indexOf('-');
if (separatorIndex < 0) {
separatorIndex = preferredLanguage.indexOf('_');
String normalizedTag = preferredLanguage.replace('_', '-');
Locale locale = Locale.forLanguageTag(normalizedTag);
String resolvedTag = locale.toLanguageTag();
if (!StringUtils.hasText(resolvedTag) || "und".equalsIgnoreCase(resolvedTag)) {
return normalizedTag;
}
String language = separatorIndex > 0
? preferredLanguage.substring(0, separatorIndex)
: preferredLanguage;
return language.toLowerCase(Locale.ROOT);
return resolvedTag;
}
private static String defaultLanguage() {