Electron 拼寫檢查器

2023-02-16 17:15 更新

自 Electron 8 以來已內(nèi)置支持 Chromium 拼寫檢查器。 在 Windows 和 Linux 上,這由 Hunspell 字典提供支持;而在 macOS 上,它使用本機拼寫檢查器的 API。

如何啟用拼寫檢查器?

對于 Electron 9 及以上,默認啟用拼寫檢查器。 對于 Electron 8,您需要在 webPreferences 中啟用它。

const myWindow = new BrowserWindow({
  webPreferences: {
    spellcheck: true
  }
})

如何設置拼寫檢查器使用的語言??

在 macOS 上,由于我們使用本機 API,因此無法設置拼寫檢查器所使用的語言。 默認情況下,macOS 本機拼寫檢查器會自動檢測您使用的語言。

對于 Windows 和 Linux,你應該使用一些 Electron API 來設置拼寫檢查器的語言。

// 設置拼寫檢查器以檢查英語 和 法語
myWindow.session.setSpellCheckerLanguages(['en-US', 'fr'])

// 所有可用語言代碼的數(shù)組
const possibleLanguages = myWindow.session.availableSpellCheckerLanguages

默認情況下,拼寫檢查器將啟用與當前操作系統(tǒng)區(qū)域匹配的語言。

如何將拼寫檢查器的結(jié)果放在上下文菜單中?

生成上下文菜單所需的所有信息都在每個 webContents 實例的 context-menu 事件中提供。 下面提供了一個小的示例,如何用此信息制作上下文菜單。

const { Menu, MenuItem } = require('electron')

myWindow.webContents.on('context-menu', (event, params) => {
  const menu = new Menu()

  // 添加每個拼寫建議
  for (const suggestion of params.dictionarySuggestions) {
    menu.append(new MenuItem({
      label: suggestion,
      click: () => mainWindow.webContents.replaceMisspelling(suggestion)
    }))
  }

  // 允許用戶 將拼錯的單詞添加到字典中
  if (params.misspelledWord) {
    menu.append(
      new MenuItem({
        label: 'Add to dictionary',
        click: () => mainWindow.webContents.session.addWordToSpellCheckerDictionary(params.misspelledWord)
      })
    )
  }

  menu.popup()
})

拼寫檢查器是否使用任何谷歌服務??

雖然拼寫檢查器本身沒有發(fā)送任何輸入, 單詞或用戶輸入到谷歌服務中,hunspell 字典文件默認從谷歌 CDN 下載。 如果你想要避免這種情況,你可以提供一個替代 URL 來下載字典。

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


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號