浏览代码

修改国际化I18n处理local字符串支持variant

lsh 1 年之前
父节点
当前提交
d3daf87359
共有 1 个文件被更改,包括 7 次插入1 次删除
  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) {