Преглед изворни кода

修复判断内置字幕是否是中文时的使用错误函数的问题,同时修复测试用例 fix #206

Signed-off-by: allan716 <[email protected]>
allan716 пре 3 година
родитељ
комит
1f358b1bd6

+ 43 - 0
internal/pkg/language/ISOLanguage.go

@@ -122,6 +122,49 @@ func IsSupportISOString(isoString string) bool {
 	return false
 }
 
+// IsSupportISOChineseString 是否是受支持的语言,中
+// 1. 支持 ISO 639-1、639-2/B、639-2/T、639-3
+// 2. 支持中文的多种变种编码
+func IsSupportISOChineseString(isoString string) bool {
+
+	lowerString := strings.ToLower(isoString)
+
+	switch lowerString {
+	case language.ISO_639_1_Chinese:
+		// 639-1
+		return true
+	}
+	switch lowerString {
+	case language.ISO_639_2B_Chinese:
+		// 639-2/B
+		return true
+	}
+	switch lowerString {
+	case language.ISO_639_2T_Chinese:
+		// 639-2/T
+		return true
+	}
+	switch lowerString {
+	case language.ISO_639_3_Chinese:
+		// 639-3
+		return true
+	}
+	switch lowerString {
+	case language.ChineseISO_Hans,
+		language.ChineseISO_Hant,
+		language.ChineseISO_CN,
+		language.ChineseISO_TW,
+		language.ChineseISO_SG,
+		language.ChineseISO_MY,
+		language.ChineseISO_HK,
+		language.ChineseISO_MO:
+		// 中文编码变种
+		return true
+	}
+
+	return false
+}
+
 // ISOSupportRegexRule 获取 ISO 匹配的 regex 表达式
 func ISOSupportRegexRule() string {
 

+ 2 - 2
internal/pkg/sub_parser_hub/subParserHub.go

@@ -157,8 +157,8 @@ func IsEmbySubChineseLangStringWanted(inLangString string) bool {
 		}
 	}
 
-	// 先判断 ISO 标准的和变种的支持列表
-	if language.IsSupportISOString(nextString) {
+	// 先判断 ISO 标准的和变种的支持列表,仅仅是中文的
+	if language.IsSupportISOChineseString(nextString) {
 		// fmt.Println("###: ERROR")
 		isWanted = true
 	}

+ 9 - 9
internal/pkg/sub_parser_hub/subParserHub_test.go

@@ -66,19 +66,19 @@ func TestIsEmbySubChineseLangStringWanted(t *testing.T) {
 		{name: "12", args: args{inLangString: "zh-mo"}, want: true},
 
 		{name: "13", args: args{inLangString: "zh"}, want: true},
-		{name: "14", args: args{inLangString: "en"}, want: true},
-		{name: "15", args: args{inLangString: "ko"}, want: true},
-		{name: "16", args: args{inLangString: "ja"}, want: true},
+		{name: "14", args: args{inLangString: "en"}, want: false},
+		{name: "15", args: args{inLangString: "ko"}, want: false},
+		{name: "16", args: args{inLangString: "ja"}, want: false},
 
 		{name: "17", args: args{inLangString: "zho"}, want: true},
-		{name: "18", args: args{inLangString: "eng"}, want: true},
-		{name: "19", args: args{inLangString: "kor"}, want: true},
-		{name: "20", args: args{inLangString: "jpn"}, want: true},
+		{name: "18", args: args{inLangString: "eng"}, want: false},
+		{name: "19", args: args{inLangString: "kor"}, want: false},
+		{name: "20", args: args{inLangString: "jpn"}, want: false},
 
 		{name: "21", args: args{inLangString: "chi"}, want: true},
-		{name: "22", args: args{inLangString: "eng"}, want: true},
-		{name: "23", args: args{inLangString: "kor"}, want: true},
-		{name: "24", args: args{inLangString: "jpn"}, want: true},
+		{name: "22", args: args{inLangString: "eng"}, want: false},
+		{name: "23", args: args{inLangString: "kor"}, want: false},
+		{name: "24", args: args{inLangString: "jpn"}, want: false},
 
 		// random text that should return false
 		{name: "25", args: args{inLangString: "chineseeng"}, want: false},