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() {