当前位置: 首页 > 知识库问答 >
问题:

使用UITextChecker对Swift 5中的希伯来文文本进行拼写检查

喻高寒
2023-03-14

对于任何希伯来文文本,无论文本是否包含任何真实单词,我都会返回真值:

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是希伯来语的半身像,我有没有其他方法可以解决这个问题?无论如何,我更喜欢另一种解决方案,因为我的应用程序是通用的,而且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
    }
}

共有1个答案

徐欣德
2023-03-14

检查语言是否在UITextChecker中。可用语言。否则,UITextChecker将不会发现拼写错误。

 类似资料:
  • 如何将用户键入的文本拼写检查到TextArea? 这个JavaFX组件可以做到这一点吗? 我可以使用标准拼写检查从JavaJavaFX?

  • 在 Dreamweaver 中将双向流量应用到阿拉伯语和希伯来语文本;使用标签编辑器、“表格”属性和 Div 属性。 在中东和北非版本的此软件中,可通过阿拉伯语和希伯来语使用新的功能和改进功能。 双向文字流 中东语言的文字大多从右向左 (RTL) 书写。但是,一般而言,最常用的形式为双向 (bidi) 文字 - 混用从左向右和从右向左书写的文字。bidi 文字的一个示例是含有阿拉伯语和英语文字的段

  • 你好,我想写一个带有HEBREW文本的CSV。它写了一些符号,而不是希伯来文。下面是我的PHP代码。 我在互联网上查了一下,添加了“fputs($fp,$bom=(chr(0xEF).chr(0xBB).chr(0xBF))”,但没有成功。谁能帮帮我吗。 下面是我得到的结果。

  • Adobe 亚洲语言书写器 借助 Adobe 亚洲语言书写器,您可以使用中东和南亚语言创建内容。您可以键入或混合键入阿拉伯语、希伯来语、英语和其他语言。 您可以在“段落”面板菜单(窗口 > 段落 > 面板菜单)中的可用书写器之间进行选择。例如,您可以使用中东和南亚语言单行书写器或中东和南亚语言逐行书写器。 有关 Illustrator 中支持的其他亚洲语言的更多信息,请参阅适用于亚洲语言文字的书写

  • 启用中东语言功能 若要在 Photoshop 界面中显示中东文字选项,请执行以下操作: 选取“编辑”>“首选项”>“文字”(Windows) 或“Photoshop”>“首选项”>“文字”(Mac OS)。 在“选取文本引擎选项”部分中,选取“中东”。 单击“确定”,并重新启动 Photoshop。 选取“文字”>“语言选项”>“中东语言功能”。 文本方向 要创建阿拉伯语和希伯来语内容,您可以将默

  • 需要一些帮助我有一个pdf,我只需要阅读它并将其内容存储在数据库中。出于某种原因,我找不到使用Itext 7实现这一点的简单示例 另一件事,内容是希伯来语的,起初我用的是iTextSharp,但我得到的内容是相反的顺序,所以我有两个选择:1。修正反向代码2。也许可以在Itext7中找到一个更正常的代码,它没有这个问题。 ConvertToHebrew函数对我来说并不完美,所以我希望能找到一些不需要