mirror of
https://github.com/storytold/craft-libs.git
synced 2026-11-08 08:20:15 +00:00
craft-i18n's SCOWL rel-2026.02.25 dictionaries (en-us, en-gb -ise, en-ca) are embedded by build.rs and read per English: en-US, the British-spelling Englishes (en-AU, en-NZ, en-IE...) through en-GB, en-CA. Suggestions come from the run's own dictionary; a word is right when any of the three (or en-extra.txt) knows it, unless en-variants.txt marks it as the other dialect's. en-variants.txt stays: SCOWL's size-60 lists keep one spelling per dialect and Word accepts more (organize and organise in en-GB, judgement in en-US). English lookup order: dictionaries folder (the run's own English only), [installed English pack, craft-libs#485], embedded SCOWL, system Hunspell (own English only; not searched while SCOWL is embedded), the built-in Moby list. The embedded Moby list is no longer a spelling source (the built-in list is the same list); it stays for hyphenation. The dialect policy applies to every source. The affix engine gains COMPOUNDRULE (one-character flags, * and ?), ONLYINCOMPOUND and COMPOUNDMIN, which SCOWL uses for ordinals (21st, 112th). Hostile patterns are capped (64 rules, 32 tokens, 48-byte words) and checked by a memoised walk. load_english now reads them instead of ignoring them (and keeps ONLYINCOMPOUND stems as compound parts); only flag-based compounding and OCONV are still ignored for English. scowl::notice() exposes the SCOWL/Ispell/Titze notice for About. Embedded Language data grows by 1,542,396 bytes. CI pins craft-i18n#109's merge commit efb1127. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FypgCX8LsYYE8fsj4byBm2