|
@@ -178,4 +178,251 @@ class KMPDFConvertManager: NSObject {
|
|
|
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
|
|
|
+ */
|