Browse Source

!121 修改国际化I18n处理local字符串支持variant
Merge pull request !121 from 大海/master

JFinal 1 year ago
parent
commit
899c5dabc6
1 changed files with 7 additions and 1 deletions
  1. 7 1
      src/main/java/com/jfinal/i18n/I18n.java

+ 7 - 1
src/main/java/com/jfinal/i18n/I18n.java

@@ -90,10 +90,16 @@ public class I18n {
 	
 	public static Locale toLocale(String locale) {
 		String[] array = locale.split("_");
+		if (array.length == 0) {
+            throw new IllegalArgumentException("Invalid locale format");
+        }
 		if (array.length == 1) {
 			return new Locale(array[0]);
+		} else if (array.length == 2) {
+			return new Locale(array[0], array[1]);
 		}
-		return new Locale(array[0], array[1]);
+        String variant = locale.substring(locale.indexOf(array[1]) + array[1].length()).replaceFirst("_", "");
+		return new Locale(array[0], array[1], variant);
 	}
 	
 	public static String toLocale(Locale locale) {