spiegel-keyman/common/windows/delphi/tools/devtools
Marc Durdin ad9ab53c72 feat(windows): improve startup time by caching locale names
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
2025-09-19 14:11:37 +02:00
..
build.sh maint(common): consolidate builder scripts 2025-08-02 08:11:24 +10:00
DevCheckGitStatus.pas chore(windows): move devtools to common 2022-06-10 07:26:21 +10:00
DevIncludePaths.pas chore(windows): move devtools to common 2022-06-10 07:26:21 +10:00
DevInstallPackages.pas chore(windows): move devtools to common 2022-06-10 07:26:21 +10:00
DevReleaseBuildCheck.pas chore(windows): move devtools to common 2022-06-10 07:26:21 +10:00
devtools.dpr feat(windows): improve startup time by caching locale names 2025-09-19 14:11:37 +02:00
devtools.dproj feat(windows): improve startup time by caching locale names 2025-09-19 14:11:37 +02:00
devtools.res chore(windows): move devtools to common 2022-06-10 07:26:21 +10:00
DevUtils.pas feat(windows): improve startup time by caching locale names 2025-09-19 14:11:37 +02:00
Keyman.System.DevTools.BuildLocaleIndex.pas feat(windows): improve startup time by caching locale names 2025-09-19 14:11:37 +02:00
Keyman.System.DevTools.BuildMessageConstants.pas chore(windows): move devtools to common 2022-06-10 07:26:21 +10:00
Keyman.System.DevTools.BuildSetupStringTranslations.pas chore(windows): move devtools to common 2022-06-10 07:26:21 +10:00
SourceRootPath.pas chore(windows): move devtools to common 2022-06-10 07:26:21 +10:00