Custom WiX dialogs (the Agent Tunnel dialog and the base dialog titles)
displayed raw localization keys such as "AgentTunnelDlgTitle" instead of
translated text. light.exe only emits !(loc.X)-referenced strings into the
MSI localization tables, and the custom "[Key]" labels are never referenced
that way, so they fell back to the raw key name in both en-US and fr-FR.
Load the embedded .wxl into the managed UI runtime localization table
(MsiRuntime.UIText via InitFromWxl) when the UI initializes, so the custom
dialogs resolve their [Key] labels through MsiRuntime.Localize. The
pre-flight message boxes read from the same table.
Split out of #1831 (draft tracker — the
TODO(agent-tunnel)marker is placed at the exact code site; not fixed yet).Custom installer dialog labels show raw localization keys
Symptom: The Agent Tunnel dialog (and the base dialog title) render literal keys —
AgentTunnelDlgTitle,AgentTunnelDlgEnrollmentStringLabel,AgentDlg_Title, … — instead of the translated text.Root cause: The strings exist correctly in
Strings_*.jsonandDevolutionsAgent_*.wxl. At runtimeProject_UIInitializedloads the embedded.wxlinto a local dict that only feeds the pre-flight MessageBoxes. The custom dialogs resolve[Key]viaMsiRuntime.Localize, which is not populated from these custom strings —light.exeonly emits strings referenced via!(loc.X)into the MSI, and the custom[Key]labels are never!(loc.X)-referenced (verified viadark.exe: the strings are absent from the built MSI's localization tables). Standard dialogs (Welcome/InstallDir) work only because WixSharp's built-in UI references those standard IDs via!(loc.X).Suggested fix: wire the loaded
stringsdict into the ManagedUI runtime localization (or back the custom dialogs with a sharedI18nthat reads it).TODO(agent-tunnel)marker inProgram.cs.