mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-30 20:27:39 +00:00
This was flagged years ago as a potential performance hotspot: each locale is loaded at process start for any kmcomapi-involved process, which takes quite a long time. This refactor moves the locale enumeration out of kmcomapi and into the build process, so we have a static list of locales put into locale/index.xml. This includes a minor breaking change to Keyman Engine API on Windows: `MessageFromID(id, locale)` now only allows the three ids SKUILanguageName, SKUILanguageNameWithEnglish, and SKLanguageCode, for performance reasons. At this point, only SKUILanguageNameWithEnglish is actually used anywhere in Keyman, and it is unlikely that any other consumers are requesting alternate IDs. Fixes: #14787 Build-bot: skip release:windows |
||
|---|---|---|
| .. | ||
| com | ||
| processes | ||
| util | ||
| build.sh | ||
| dialogs.rc | ||
| dialogs.RES | ||
| kbd_noicon.rc | ||
| kbd_noicon.RES | ||
| keymanapi_TLB.pas | ||
| keymancontext.pas | ||
| kmcomapi.dpr | ||
| kmcomapi.dproj | ||
| kmcomapi.res | ||
| kmcomapi.ridl | ||
| kmcomapi_Icon.ico | ||
| manifest.in | ||
| manifest.rc | ||
| version.rc | ||