拼写检查器

自 Electron 8 以来已内置支持 Chromium 拼写检查器。 在 Windows 和 Linux 上,这个功能由 Hunspell 字典提供,并在 macOS 上使用本机拼写检查器 API。

如何启用拼写检查器?

对于 Electron 9 及以上,默认启用拼写检查器。 对于Electron 8,您需要在 Web 首选项 中启用它。

  1. const mywindow = new BrowserWindow(format@@
  2. webPreferences: {
  3. spellcheck: true
  4. }
  5. })

如何设置拼写检查器使用的语言?

在 macOS 上,当我们使用原生API时,无法设置拼写检查器使用的语言。 默认情况下,macOS 本机拼写检查器会自动检测您使用的语言。

对于 Windows 和 Linux,你应该使用一些 Electron API 来设置拼写检查器的语言。

  1. // 设置拼写检查器以检查英语、美国语和法语
  2. myWindow.session. etSpellCheckerLanguages(['en-US', 'fr'])
  3. // 所有可用语言代码的数组
  4. const possibleLangues(myWindow.session.available SpellCheckerLanges)

默认情况下,拼写检查器将启用匹配当前操作系统区域的语言。

如何在上下文菜单中显示拼写检查器的结果?

生成上下文菜单所需的所有信息都在 上下文菜单 每个事件 webContent 实例中提供。 下面提供了一个小的示例,如何用此信息制作上下文菜单。

  1. const { Menu, MenuItem } = require('electron')
  2. myWindow.webContents.on('context-menu', (event, params) => {
  3. const menu = new Menu()
  4. // Add each spelling suggestion
  5. for (const suggestion of params.dictionarySuggestions) {
  6. menu.append(new MenuItem({
  7. label: suggestion,
  8. click: () => mainWindow.webContents.replaceMisspelling(suggestion)
  9. }))
  10. }
  11. // Allow users to add the misspelled word to the dictionary
  12. if (params.misspelledWord) {
  13. menu.append(
  14. new MenuItem({
  15. label: 'Add to dictionary',
  16. click: () => mainWindow.webContents.session.addWordToSpellCheckerDictionary(params.misspelledWord)
  17. })
  18. )
  19. }
  20. menu.popup()
  21. })

拼写检查器是否使用任何谷歌服务?

虽然拼写检查器本身没有发送任何输入, 单词或用户输入到谷歌服务中,hunspell 字典文件默认从谷歌 CDN 下载。 如果你想要避免这种情况,你可以提供一个替代 URL 来下载字典。

  1. myWindow.session.setSpellCheckerDictionaryDownloadURL('https://example.com/dictionaries/')

Check out the docs for session.setSpellCheckerDictionaryDownloadURL for more information on where to get the dictionary files from and how you need to host them.