openclaw / openclaw/openclaw-windows-node

SetupEngine first-run wizard remains English and is outside localization coverage

Open
#1,306 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

clawsweeper:needs-maintainer-review clawsweeper:needs-product-decision clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster P3 stale
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.ps1 sets its scan root to src/OpenClaw.Tray.WinUI.
  • LocalizationValidationTests likewise reads only src/OpenClaw.Tray.WinUI/Strings and 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

  1. On a Chinese Windows installation, build the current source.
  2. Run the local companion with OPENCLAW_LANGUAGE=zh-CN.
  3. Open the first-run setup window.
  4. Observe English UI, including Welcome to OpenClaw, Security notice, Set up OpenClaw, Install a local gateway (WSL), and Connect to an existing gateway.

Source evidence

The setup pages contain hard-coded visible text, for example:

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 .resw and x: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.UI as 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.