Zum Hauptteil springen

Rechtschreibprüfung

Electron bietet seit Electron 8 integrierte Unterstützung für die Rechtschreibprüfung von Chromium. Unter Windows und Linux wird dies von Hunspell-Wörterbüchern unterstützt, unter macOS werden die nativen Rechtschreibprüfungs-APIs verwendet.

Wie aktiviere ich die Rechtschreibprüfung?

Für Electron 9 und höher ist die Rechtschreibprüfung standardmäßig aktiviert. Für Electron 8 musst du es in webPreferences aktivieren.

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

Wie kann man die Sprachen einstellen, die die Rechtschreibprüfung verwendet?

Da wir unter macOS die nativen APIs verwenden, gibt es keine Möglichkeit, die Sprache einzustellen, die die Rechtschreibprüfung verwendet. Standardmäßig erkennt die native Rechtschreibprüfung unter macOS automatisch die verwendete Sprache für dich.

Für Windows und Linux gibt es ein paar Electron-APIs, die du benutzen solltest, um die Sprachen für die Rechtschreibprüfung einzustellen.

// Setzt die Rechtschreibprüfung auf Englisch-US und Französisch
myWindow.webContents.session.setSpellCheckerLanguages(['en-US', 'fr'])

// Ein Array mit allen verfügbaren Sprachcodes
const possibleLanguages = myWindow.webContents.session.availableSpellCheckerLanguages

Standardmäßig aktiviert die Rechtschreibprüfung die Sprache, die dem aktuellen Betriebssystem entspricht.

Wie kann ich die Ergebnisse der Rechtschreibprüfung in mein Kontextmenü aufnehmen?

Alle für die Erstellung eines Kontextmenüs erforderlichen Informationen werden im context-menu-Ereignis für jedewebContents-Instanz bereitgestellt. Ein kleines Beispiel für das Erstellen eines Kontextmenüs mit diesen Informationen ist unten angegeben.

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

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

// Fügt jeden Vorschlag hinzu
for (const suggestion of params.dictionarySuggestions) {
menu.append(new MenuItem({
label: suggestion,
click: () => myWindow.webContents.replaceMisspelling(suggestion)
}))
}

// Erlaubt Nutzern, das Wort zum Wörterbuch hinzuzufügen
if (params.misspelledWord) {
menu.append(
new MenuItem({
label: 'Add to dictionary',
click: () => myWindow.webContents.session.addWordToSpellCheckerDictionary(params.misspelledWord)
})
)
}

menu.popup()
})

Verwendet die Rechtschreibprüfung irgendwelche Google-Dienste?

Obwohl die Rechtschreibprüfung selbst keine Eingaben, Wörter oder Nutzereingaben an Google-Dienste sendet, werden die hunspell-Wörterbuchdateien standardmäßig von einem Google CDN heruntergeladen. Wenn du dies vermeiden möchtest, kannst du eine alternative URL angeben, von der du die Wörterbücher herunterladen kannst.

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

In der Dokumentation zu session.setSpellCheckerDictionaryDownloadURL findest du weitere Informationen darüber, woher du die Wörterbuchdateien beziehen und wie du sie hosten müsst.