From 451934313903ce7f136443c38ab2404d27df92a3 Mon Sep 17 00:00:00 2001 From: ziin Date: Mon, 9 Mar 2026 17:39:55 +0800 Subject: [PATCH] =?UTF-8?q?refactor(utils):=20=E9=87=8D=E6=9E=84=20Request?= =?UTF-8?q?LocaleUtils=20=E8=AF=AD=E8=A8=80=E6=A0=87=E7=AD=BE=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yolo/keyborad/utils/RequestLocaleUtils.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/yolo/keyborad/utils/RequestLocaleUtils.java b/src/main/java/com/yolo/keyborad/utils/RequestLocaleUtils.java index 1ae16f8..72b7642 100644 --- a/src/main/java/com/yolo/keyborad/utils/RequestLocaleUtils.java +++ b/src/main/java/com/yolo/keyborad/utils/RequestLocaleUtils.java @@ -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() {