Euspell
Tools

LibreOffice

Convert a Writer document (or selection) into Euspell from a top-level Euspell menu, using the same engine as the browser extension — ported to Python and validated 35/35 against the JavaScript reference.

The converter macro

A one-pass converter run from an Euspell menu. It does notregister a linguistic spell or grammar service, so it never touches LibreOffice's Writing Aids machinery. Install has two parts — the macro and engine go in your user profile, and an optional extension adds the menu:

It installs in two parts: the macro and engine are copied into LibreOffice's user scripts directory, and the menu arrives as an .oxt extension. The paths differ on Windows, macOS and Linux, so the commands live with the code rather than here — docs/installing-addins.md is the maintained copy.

Restart, then use Euspell ▸ Convert Document / Convert Selection, or revert to traditional (a lexicon-based reverse). You can also run it directly from Tools ▸ Macros ▸ Organize Macros ▸ Python.

Why the two-part install
LibreOffice 26.2's script provider fails to register scripts bundled inside an extension, so the menu invokes the user-profile copy (location=user). The profile install is a prerequisite for the menu.

What is and isn't handled

ContentStatus
Context-free reforms (above → abov, night → niht)Converted
NN2 | VVZ ambiguities (records, anchors), 702 plurals, 102 heteronymsConverted from context (linear SVM + POS rules)
~70 semantic homographs (read, bow, tear)Left unchanged — per-word rules not yet ported
Inline character formattingA converted paragraph resets to default run formatting

Parked: live spell / grammar services

Implementations of Euspell as a live XSpellChecker and XProofreader exist but are not shipped: on LibreOffice 26.2 a passively-registered Python linguistic component crashes the Writing Aids dialog during service enumeration. The crash is in LibreOffice's handling of the component, not the engine — so the converter macro delivers the same result as an explicit command instead.