mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-01 16:06:59 +00:00
Fix Chinese and Norwegian language detection
This commit is contained in:
parent
6a5bead5bc
commit
55ff4563f7
@ -222,14 +222,24 @@ public func chatTranslationState(context: AccountContext, peerId: EnginePeer.Id)
|
||||
let hypotheses = languageRecognizer.languageHypotheses(withMaximum: 4)
|
||||
languageRecognizer.reset()
|
||||
|
||||
let filteredLanguages = hypotheses.filter { supportedTranslationLanguages.contains($0.key.rawValue) }.sorted(by: { $0.value > $1.value })
|
||||
if let language = filteredLanguages.first(where: { supportedTranslationLanguages.contains($0.key.rawValue) }) {
|
||||
let fromLang = language.key.rawValue
|
||||
func normalize(_ code: String) -> String {
|
||||
if code.contains("-") {
|
||||
return code.components(separatedBy: "-").first ?? code
|
||||
} else if code == "nb" {
|
||||
return "no"
|
||||
} else {
|
||||
return code
|
||||
}
|
||||
}
|
||||
|
||||
let filteredLanguages = hypotheses.filter { supportedTranslationLanguages.contains(normalize($0.key.rawValue)) }.sorted(by: { $0.value > $1.value })
|
||||
if let language = filteredLanguages.first {
|
||||
let fromLang = normalize(language.key.rawValue)
|
||||
fromLangs[fromLang] = (fromLangs[fromLang] ?? 0) + message.text.count
|
||||
count += 1
|
||||
}
|
||||
}
|
||||
if count >= 10 {
|
||||
if count >= 16 {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
@ -25,9 +25,6 @@ public var supportedTranslationLanguages = [
|
||||
"ca",
|
||||
"ceb",
|
||||
"zh",
|
||||
// "zh-Hant",
|
||||
// "zh-CN", "zh"
|
||||
// "zh-TW"
|
||||
"co",
|
||||
"hr",
|
||||
"cs",
|
||||
@ -168,9 +165,20 @@ public func canTranslateText(context: AccountContext, text: String, showTranslat
|
||||
supportedTranslationLanguages = ["uk", "ru"]
|
||||
}
|
||||
|
||||
let filteredLanguages = hypotheses.filter { supportedTranslationLanguages.contains($0.key.rawValue) }.sorted(by: { $0.value > $1.value })
|
||||
if let language = filteredLanguages.first(where: { supportedTranslationLanguages.contains($0.key.rawValue) }) {
|
||||
return (!dontTranslateLanguages.contains(language.key.rawValue), language.key.rawValue)
|
||||
func normalize(_ code: String) -> String {
|
||||
if code.contains("-") {
|
||||
return code.components(separatedBy: "-").first ?? code
|
||||
} else if code == "nb" {
|
||||
return "no"
|
||||
} else {
|
||||
return code
|
||||
}
|
||||
}
|
||||
|
||||
let filteredLanguages = hypotheses.filter { supportedTranslationLanguages.contains(normalize($0.key.rawValue)) }.sorted(by: { $0.value > $1.value })
|
||||
if let language = filteredLanguages.first {
|
||||
let languageCode = normalize(language.key.rawValue)
|
||||
return (!dontTranslateLanguages.contains(languageCode), languageCode)
|
||||
} else {
|
||||
return (false, nil)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user