使用UITextChecker对Swift 5中的希伯来文文本进行拼写检查
对于任何希伯来文文本,无论文本是否包含任何真实单词,我都会返回真值:使用UITextChecker对Swift 5中的希伯来文文本进行拼写检查,swift,localization,spell-checking,hebrew,spelling,Swift,Localization,Spell Checking,Hebrew,Spelling,对于任何希伯来文文本,无论文本是否包含任何真实单词,我都会返回真值: func wordIsSpelledCorrect(word: String) -> Bool { let checker = UITextChecker() let range = NSRange(location: 0, length: word.count) let wordRange = checker.rangeOfMisspelledWord(in: word, range: range, sta
func wordIsSpelledCorrect(word: String) -> Bool {
let checker = UITextChecker()
let range = NSRange(location: 0, length: word.count)
let wordRange = checker.rangeOfMisspelledWord(in: word, range: range, startingAt: 0, wrap: false, language: "he")
return wordRange.location == NSNotFound
}
// wordIsSpelledCorrect("שלום") // which is Hebrew for "peace" returns true
// but
// wordIsSpelledCorrect("םולש") // which is not a real word, also returns true
我在我的设备上安装了希伯来语词典,我在设置>语言和地区中将希伯来语设置为“iPhone语言”和不设置希伯来语。有人知道UITextChecker是否不支持希伯来语吗?如果是这样,那么对于不受支持的语言,是否总是返回true作为预期行为
我的英语很好。如果UITextChecker是希伯来语的半身像,我有没有其他方法可以解决这个问题?无论如何,我更喜欢另一种解决方案,因为我的应用程序是通用的,而且UIKit在macOS上不起作用
[更新1]
我花了一些时间调查访问macOS语言词典的情况,结果一无所获。我看不出这是一个移动的唯一需要。例如,这不是苹果在页面和他们自己的字典应用程序中实现的吗?我想我的下一步将是开始研究多语言词典API,但调用我知道就在系统上的东西似乎效率很低。任何想法或方向都将不胜感激
[更新2]
根据我正在寻找的API不存在,因此我将不得不暂停我的通用应用程序。但是回到上面的代码,除了希伯来语,它在我尝试过的所有语言中都能很好地工作,有人能帮我让希伯来语在iOS上工作吗
[更新3]
为完整起见,以下代码适用于英语、法语、西班牙语等语言:
func wordIsSpelledCorrect(word: String) -> Bool {
if let language = NLLanguageRecognizer.dominantLanguage(for: word) {
let checker = UITextChecker()
let range = NSRange(location: 0, length: word.count)
let wordRange = checker.rangeOfMisspelledWord(in: word, range: range, startingAt: 0, wrap: false, language: language.rawValue)
return wordRange.location == NSNotFound
} else {
return false
}
}
检查语言是否在
UITextChecker.availableLanguages
中。否则,UITextChecker
将找不到拼写错误。检查UITextChecker中是否存在希伯来语。availableLanguages
Hi@paiv,我发现希伯来语未列在availableLanguages中,因此它不受支持。如果你想在回答中陈述尽可能多的内容,我想这是我最接近的答案了get@paiv,如果你的回答是可用语言可以用来查看支持哪些语言,我将奖励你,谢谢,@paiv。