Browse Source

转档-OCR语言默认选择与当前系统语言一致,若暂不支持该支持该系统语言,则默认选中English(已完成)

tangchao 1 year ago
parent
commit
ba82e8713d

+ 247 - 0
PDF Office/PDF Master/Class/PDFTools/Convert/Common/KMPDFConvertManager.swift

@@ -178,4 +178,251 @@ class KMPDFConvertManager: NSObject {
             return NSLocalizedString("SaudiArabia", comment: "")
             return NSLocalizedString("SaudiArabia", comment: "")
         }
         }
     }
     }
+    
+    //
+    func ocrLanguageIsSupport(appleLanguage: String?) -> Bool {
+        if let _ = KMPDFConvertManager.defaultManager._ocrLanguage(appleLanguage: appleLanguage) {
+            return true
+        }
+        return false
+    }
+    
+    func ocrLanguage(appleLanguage: String?) -> COCRLanguage? {
+        return KMPDFConvertManager.defaultManager._ocrLanguage(appleLanguage: appleLanguage)
+    }
+    
+    // MARK: - Private Methods
+    
+    fileprivate func _ocrLanguage(appleLanguage: String?) -> COCRLanguage? {
+        guard let _appleLanguage = appleLanguage else {
+            return nil
+        }
+        
+        if (_appleLanguage.hasPrefix("zh-Hans")) {
+            return .chinese
+        }
+        if (_appleLanguage.hasPrefix("zh-Hant")) {
+            return .chineseTraditional
+        }
+        if (_appleLanguage.hasPrefix("en")) {
+            return .english
+        }
+        if (_appleLanguage.hasPrefix("ja")) {
+            return .japanese
+        }
+        if (_appleLanguage.hasPrefix("ko")) {
+            return .korean
+        }
+ 
+        if (_appleLanguage.hasPrefix("sr")) {
+            return .serbian
+        }
+        if (_appleLanguage.hasPrefix("oc")) {
+            return .occitan
+        }
+        if (_appleLanguage.hasPrefix("da")) {
+            return .danish
+        }
+        if (_appleLanguage.hasPrefix("de")) {
+            return .german
+        }
+        if (_appleLanguage.hasPrefix("fr")) {
+            return .french
+        }
+        if (_appleLanguage.hasPrefix("it")) {
+            return .italian
+        }
+        if (_appleLanguage.hasPrefix("es")) {
+            return .spanish
+        }
+        if (_appleLanguage.hasPrefix("pt")) {
+            return .portuguese
+        }
+        if (_appleLanguage.hasPrefix("mi")) {
+            return .maori
+        }
+        if (_appleLanguage.hasPrefix("ms")) {
+            return .malay
+        }
+        
+        if (_appleLanguage.hasPrefix("mt")) {
+            return .maltese
+        }
+        if (_appleLanguage.hasPrefix("nl")) {
+            return .dutch
+        }
+        if (_appleLanguage.hasPrefix("nb")) {
+            return .norwegian
+        }
+        if (_appleLanguage.hasPrefix("pl")) {
+            return .polish
+        }
+        if (_appleLanguage.hasPrefix("ro")) {
+            return .romanian
+        }
+        if (_appleLanguage.hasPrefix("sk")) {
+            return .slovak
+        }
+        if (_appleLanguage.hasPrefix("sl")) {
+            return .slovenian
+        }
+        if (_appleLanguage.hasPrefix("sq")) {
+            return .albanian
+        }
+        if (_appleLanguage.hasPrefix("sv")) {
+            return .welsh
+        }
+        if (_appleLanguage.hasPrefix("sw")) {
+            return .swahili
+        }
+        
+        if (_appleLanguage.hasPrefix("fil")) { //  tagalog 塔加洛语 Filipino 菲律宾语
+            return .tagalog
+        }
+        if (_appleLanguage.hasPrefix("tr")) { // Turkish
+            return .turish
+        }
+        if (_appleLanguage.hasPrefix("uz")) {
+            return .uzbek
+        }
+        if (_appleLanguage.hasPrefix("vi")) {
+            return .vietnamese
+        }
+        if (_appleLanguage.hasPrefix("af")) {
+            return .afrikaans
+        }
+        if (_appleLanguage.hasPrefix("az")) {
+            return .azerbaijani
+        }
+        if (_appleLanguage.hasPrefix("bs")) {
+            return .bosnian
+        }
+        if (_appleLanguage.hasPrefix("cs")) {
+            return .czech
+        }
+        if (_appleLanguage.hasPrefix("cy")) {
+            return .welsh
+        }
+        if (_appleLanguage.hasPrefix("et")) { // eston
+            return .estonian
+        }
+        
+        if (_appleLanguage.hasPrefix("ga")) {
+            return .irish
+        }
+        if (_appleLanguage.hasPrefix("hr")) {
+            return .croatian
+        }
+        if (_appleLanguage.hasPrefix("hu")) {
+            return .hungarian
+        }
+        if (_appleLanguage.hasPrefix("id")) {
+            return .indonesian
+        }
+        if (_appleLanguage.hasPrefix("is")) {
+            return .icelandic
+        }
+        if (_appleLanguage.hasPrefix("ckb")) {
+            return .kurdish
+        }
+        if (_appleLanguage.hasPrefix("lt")) {
+            return .lithuanian
+        }
+        if (_appleLanguage.hasPrefix("lv")) {
+            return .latvian
+        }
+//        if (_appleLanguage.hasPrefix("")) {
+//
+//        }
+        
+        return nil
+    }
+    
+//    public func appleLanguagePrefix(appleLanguage: String?) -> String? {
+//        guard let _appleLanguage = appleLanguage else {
+//            return nil
+//        }
+//
+//        if _appleLanguage.hasPrefix("zh-Hans") {
+//            return "zh-Hans"
+//        } else if _appleLanguage.hasPrefix("en") {
+//            return "en"
+//        } else if let result = newValue?.hasPrefix("zh-Hant"), result {
+//            ocrLanuguageIndex = 1
+//        } else if  let result = newValue?.hasPrefix("fr"), result {
+//            ocrLanuguageIndex = 3
+//        } else if  let result = newValue?.hasPrefix("de"), result {
+//            ocrLanuguageIndex = 4
+//        } else if  let result = newValue?.hasPrefix("ht"), result { ///  海地克里奥尔语 Haitian
+//            ocrLanuguageIndex = 5
+//        } else if  let result = newValue?.hasPrefix("ja"), result {
+//            ocrLanuguageIndex = 6
+//        } else if  let result = newValue?.hasPrefix("ko"), result {
+//            ocrLanuguageIndex = 7
+//        } else if  let result = newValue?.hasPrefix("la"), result { ///  拉丁语 Latin
+//            ocrLanuguageIndex = 8
+//        } else {
+//            ocrLanuguageIndex = 2
+//        }
+//    }
 }
 }
+
+/*
+ return [.chinese, .chineseTraditional, .english, .japanese, .korean,
+         // // Latin
+         .serbian, .occitan, .danish, .german, .french, .italian, .spanish, .portuguese, .maori, .malay,
+         .maltese, .dutch, .norwegian, .polish, .romanian, .slovak, .slovenian, .albanian, .swedish, .swahili,
+         .tagalog, .turish, .uzbek, .vietnamese, .afrikaans, .azerbaijani, .bosnian, .czech, .welsh, .estonian,
+         .irish, .croatian, .hungarian, .indonesian, .icelandic, .kurdish, .lithuanian, .latvian,
+         // Devanagari
+//                .marathi, .nepali, .hindi, .bihari, .maithili, .angika, .bhojpuri, .magahi, .nagpur, .newari,
+//                .goanKonkani, .saudiArabia
+ ]
+ chinese                简体中文     zh-Hans-CN
+ chineseTraditional     繁体中文     zh-Hant-CN
+ english                英语        en-CN
+ japanese               日语        ja-CN
+ korean                 韩语        ko
+ 
+ serbian                塞尔维亚语   sr-CN sr-Latn-CN
+ occitan                奥克西坦语   oc-CN
+ danish                 丹麦语      da-CN
+ german                 德语        de-AT
+ french                 法语        fr
+ italian                意大利      it-CH
+ spanish                西班牙      es-419
+ portuguese             葡萄牙语    pt-BR
+ maori                  毛利人     mi-CN
+ malay                  马来语     ms-CN
+ 
+ maltese                马耳他语   mt-CN
+ dutch                  荷兰      nl-CN
+ norwegian              挪威语     nb-CN
+ polish                 波兰语     pl-CN
+ romanian               罗马尼亚语 ro-CN
+ slovak                 斯洛伐克 sk-CN
+ slovenian              斯洛文尼亚人 sl-CN
+ albanian               阿尔巴尼亚语 sq-CN
+ wedish                 瑞典 sv-CN s
+ swahili                斯瓦希里语 sw-CN
+ 
+ tagalog 塔加洛语 Filipino 菲律宾语 fil-CN
+ turish(Turkish)        土耳其语 tr-CN
+ uzbek              乌兹别克 uz-Cyrl-CN
+ vietnamese             越南 vi-CN
+ afrikaans          南非荷兰语 af-CN
+ azerbaijani        阿塞拜疆 az-CN
+ bosnian            波斯尼亚 bs-CN
+ czech              捷克 cs-CN
+ welsh              威尔士 cy-CN
+ estonian(eston)    爱沙尼亚 et-CN
+ 
+ irish              爱尔兰 ga-CN
+ croatian           克罗地亚 hr-CN
+ hungarian          匈牙利 hu-CN
+ indonesian         印度尼西亚 id-CN
+ icelandic          冰岛 is-CN
+ kurdish            库尔迪什语 ckb-CN
+ lithuanian         立陶宛语 lt-CN
+ latvian            拉脱维亚 lv-CN
+ */

+ 7 - 19
PDF Office/PDF Master/Class/PDFTools/Convert/View/KMConvertSettingView.swift

@@ -25,26 +25,14 @@ class KMConvertSettingView: KMConvertBaseView {
                 return
                 return
             }
             }
 
 
-            if let result = newValue?.hasPrefix("zh-Hans"), result {
-                ocrLanuguageIndex = 0
-            } else if let result = newValue?.hasPrefix("en"), result {
-                ocrLanuguageIndex = 2
-            } else if let result = newValue?.hasPrefix("zh-Hant"), result {
-                ocrLanuguageIndex = 1
-            } else if  let result = newValue?.hasPrefix("fr"), result {
-                ocrLanuguageIndex = 3
-            } else if  let result = newValue?.hasPrefix("de"), result {
-                ocrLanuguageIndex = 4
-            } else if  let result = newValue?.hasPrefix("ht"), result { ///  海地克里奥尔语 Haitian
-                ocrLanuguageIndex = 5
-            } else if  let result = newValue?.hasPrefix("ja"), result {
-                ocrLanuguageIndex = 6
-            } else if  let result = newValue?.hasPrefix("ko"), result {
-                ocrLanuguageIndex = 7
-            } else if  let result = newValue?.hasPrefix("la"), result { ///  拉丁语 Latin
-                ocrLanuguageIndex = 8
+            var language: COCRLanguage = .english
+            if let _language = KMPDFConvertManager.defaultManager.ocrLanguage(appleLanguage: self._currentLanguage) {
+                language = _language
+            }
+            if let index = KMPDFConvertManager.defaultManager.ocrLanguages.firstIndex(of: language) {
+                self.ocrLanuguageIndex = index
             } else {
             } else {
-                ocrLanuguageIndex = 2
+                self.ocrLanuguageIndex = 2
             }
             }
         }
         }
     }
     }