|
@@ -20,6 +20,11 @@ public class LocaleUtils
|
|
|
/** 默认语言(台湾繁体) */
|
|
/** 默认语言(台湾繁体) */
|
|
|
private static final Locale DEFAULT_LOCALE = new Locale("zh", "TW");
|
|
private static final Locale DEFAULT_LOCALE = new Locale("zh", "TW");
|
|
|
|
|
|
|
|
|
|
+ private static final Locale SIMPLIFIED_CHINESE = new Locale("zh", "CN");
|
|
|
|
|
+ private static final Locale ENGLISH = new Locale("en", "US");
|
|
|
|
|
+ private static final Locale VIETNAMESE = new Locale("vi", "VN");
|
|
|
|
|
+ private static final Locale THAI = new Locale("th", "TH");
|
|
|
|
|
+
|
|
|
/** Redis���û��������õ�keyǰ */
|
|
/** Redis���û��������õ�keyǰ */
|
|
|
private static final String USER_LANGUAGE_KEY_PREFIX = "user:language:";
|
|
private static final String USER_LANGUAGE_KEY_PREFIX = "user:language:";
|
|
|
|
|
|
|
@@ -35,34 +40,20 @@ public class LocaleUtils
|
|
|
*/
|
|
*/
|
|
|
public static Locale parseLocale(String language)
|
|
public static Locale parseLocale(String language)
|
|
|
{
|
|
{
|
|
|
- return DEFAULT_LOCALE;
|
|
|
|
|
-// if (StringUtils.isEmpty(language))
|
|
|
|
|
-// {
|
|
|
|
|
-// return DEFAULT_LOCALE;
|
|
|
|
|
-// }
|
|
|
|
|
-//
|
|
|
|
|
-// // �����»��߸�ʽ���� zh_CN��
|
|
|
|
|
-// if (language.contains("_"))
|
|
|
|
|
-// {
|
|
|
|
|
-// String[] parts = language.split("_", 2);
|
|
|
|
|
-// if (parts.length == 2)
|
|
|
|
|
-// {
|
|
|
|
|
-// return new Locale(parts[0], parts[1]);
|
|
|
|
|
-// }
|
|
|
|
|
-// else
|
|
|
|
|
-// {
|
|
|
|
|
-// return new Locale(parts[0]);
|
|
|
|
|
-// }
|
|
|
|
|
-// }
|
|
|
|
|
-//
|
|
|
|
|
-// // �������ַ���ʽ���� zh-CN��
|
|
|
|
|
-// if (language.contains("-"))
|
|
|
|
|
-// {
|
|
|
|
|
-// return Locale.forLanguageTag(language);
|
|
|
|
|
-// }
|
|
|
|
|
-//
|
|
|
|
|
-// // �����Դ��루�� zh, en, vi��
|
|
|
|
|
-// return new Locale(language);
|
|
|
|
|
|
|
+ if (StringUtils.isEmpty(language) || language.trim().isEmpty())
|
|
|
|
|
+ {
|
|
|
|
|
+ return DEFAULT_LOCALE;
|
|
|
|
|
+ }
|
|
|
|
|
+ String normalized = language.trim().replace('-', '_').toLowerCase(Locale.ROOT);
|
|
|
|
|
+ return switch (normalized)
|
|
|
|
|
+ {
|
|
|
|
|
+ case "zh", "zh_cn" -> SIMPLIFIED_CHINESE;
|
|
|
|
|
+ case "zh_tw", "tw" -> DEFAULT_LOCALE;
|
|
|
|
|
+ case "en", "en_us" -> ENGLISH;
|
|
|
|
|
+ case "vi", "vi_vn" -> VIETNAMESE;
|
|
|
|
|
+ case "th", "th_th" -> THAI;
|
|
|
|
|
+ default -> DEFAULT_LOCALE;
|
|
|
|
|
+ };
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|