openclaw / openclaw/openclaw-windows-node
SetupEngine first-run wizard remains English and is outside localization coverage
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 2.1k
- Forks
- 295
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 99
Description
Problem
The native first-run setup wizard (OpenClaw.SetupEngine.UI) remains in English when the companion is run with Simplified Chinese selected (OPENCLAW_LANGUAGE=zh-CN). This includes the first two screens: Welcome to OpenClaw, the security notice, Set up OpenClaw, and both gateway choices.
The current localization infrastructure and strict audit only cover src/OpenClaw.Tray.WinUI:
scripts/Test-Localization.ps1sets its scan root tosrc/OpenClaw.Tray.WinUI.LocalizationValidationTestslikewise reads onlysrc/OpenClaw.Tray.WinUI/Stringsand scans only that XAML tree.- The actual first-run UI is a separate WinUI project:
src/OpenClaw.SetupEngine.UI.
As a result, Test-Localization.ps1 -StrictHardcodedXaml can pass while the first UI a Chinese user sees has hard-coded English text.
Reproduction
- On a Chinese Windows installation, build the current source.
- Run the local companion with
OPENCLAW_LANGUAGE=zh-CN. - Open the first-run setup window.
- Observe English UI, including
Welcome to OpenClaw,Security notice,Set up OpenClaw,Install a local gateway (WSL), andConnect to an existing gateway.
Source evidence
The setup pages contain hard-coded visible text, for example:
SecurityNoticePage.xaml: https://github.com/openclaw/openclaw-windows-node/blob/master/src/OpenClaw.SetupEngine.UI/Pages/SecurityNoticePage.xamlWelcomePage.xaml: https://github.com/openclaw/openclaw-windows-node/blob/master/src/OpenClaw.SetupEngine.UI/Pages/WelcomePage.xaml
SetupLocalization.cs notes that the setup UI has no own .resw files and assumes resources from the tray application's merged map. That assumption does not result in translated XAML for this hosted WinUI assembly:
Expected behavior
- The native first-run setup wizard uses the same supported locale set as the companion (
en-us,fr-fr,nl-nl,zh-cn,zh-tw). - Visible and accessibility text is localized through
.reswandx:Uid(or an equivalent tested mechanism) rather than hard-coded XAML. - The local test-language override affects both dynamic code-behind strings and setup XAML resources.
- Strict localization validation scans
OpenClaw.SetupEngine.UIas well, so this regression cannot silently recur.
Related work
#569 addressed the remaining hard-coded XAML strings in the tray project and was closed by #624. Its closing comment asks for a focused follow-up when new localization candidates are found; this is that separate SetupEngine scope.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with src/OpenClaw.SetupEngine.UI/SetupLocalization.cs and the XAML pages SecurityNoticePage.xaml and WelcomePage.xaml to understand how setup resources are loaded. Then inspect scripts/Test-Localization.ps1 and LocalizationValidationTests, and run the existing localization checks. Done means the listed setup text and accessibility text localize for supported languages, the language override affects setup XAML, and strict validation scans this project.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- desktop, localization
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100