[Localization Audit] fix(loc): wire x:Uid for 5 hard-coded XAML strings (safe subset) - #617
[Localization Audit] fix(loc): wire x:Uid for 5 hard-coded XAML strings (safe subset)#617github-actions[bot] wants to merge 1 commit into
Conversation
…resource keys - SkillsPage: add x:Uid='SkillsPage_Enabled' / 'SkillsPage_Disabled' to EnabledHeaderText / DisabledHeaderText (keys existed in all 5 locales) - HubWindow: add x:Uid='HubWindow_Disconnected' to TitleStatusText (key existed in all 5 locales) - VoiceSettingsPage: add x:Uid to PiperPreviewLabel and PreviewVoiceLabel; add corresponding *.Text keys to all 5 locale resw files, reusing the translated values from the existing PiperPreviewButton.Content and PreviewVoiceButton.Content entries Reduces Test-Localization.ps1 candidate count from 69 → 64. Remaining 64 candidates (CronPage.xaml ~58, SessionsPage.xaml 3, AgentEventsPage.xaml 2, SandboxPage.xaml 1) tracked separately. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Codex review: needs changes before merge. Reviewed June 1, 2026, 2:24 AM ET / 06:24 UTC. Summary Reproducibility: Source-reproducible rather than runtime-reproduced: current main shows the touched XAML labels are later overwritten by code-behind assignments. A Windows UI run under a non-English display language would provide the final visual confirmation. Review metrics: 2 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Mantis proof suggestion Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Keep the safe x:Uid/resource additions, then localize the code-behind assignments that own the live Skills header counts and Hub title status text. Do we have a high-confidence way to reproduce the issue? Source-reproducible rather than runtime-reproduced: current main shows the touched XAML labels are later overwritten by code-behind assignments. A Windows UI run under a non-English display language would provide the final visual confirmation. Is this the best way to solve the issue? No. x:Uid wiring is the right static-XAML mechanism, but the PR also needs LocalizationHelper-backed runtime strings for the code paths that mutate those labels. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against 1d58d59673c9. Label changesLabel changes:
Label justifications:
Evidence reviewedAcceptance criteria:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
This PR is superseded by #558 which covers these localization changes and more. |
|
Closing as superseded by #558, which covers these localization fixes as part of the broader XAML and code-behind localization pass. |
Summary
Localization audit (
Test-Localization.ps1) found 69 candidate hard-coded XAML strings. This PR fixes the 5 safest items — those where resource keys already existed in all 5 locales (en-us,fr-fr,nl-nl,zh-cn,zh-tw) or could be populated from existing translated values.Candidate count: 69 → 64.
Changes
SkillsPage.xamlEnabledHeaderTextSkillsPage_EnabledSkillsPage.xamlDisabledHeaderTextSkillsPage_DisabledHubWindow.xamlTitleStatusTextHubWindow_DisconnectedVoiceSettingsPage.xamlPiperPreviewLabelVoiceSettingsPage_PiperPreviewLabel.Textkeys added, values copied from existingPiperPreviewButton.ContenttranslationsVoiceSettingsPage.xamlPreviewVoiceLabelVoiceSettingsPage_PreviewVoiceLabel.Textkeys added, values copied from existingPreviewVoiceButton.ContenttranslationsRemaining debt
64 candidates still remain — the bulk (~58) are in
CronPage.xaml(new feature, fully un-localized). Those require fresh translations and broader review before fixing. Also pending:SessionsPage.xaml(3),AgentEventsPage.xaml(2),SandboxPage.xaml(1).