feat(i18n): localize installer with language picker and config write-through
- Init Localizer at app startup (before self-update prompt) and assign to TrExtension.Localizer - Register ILocalizer in DI; inject into WizardViewModel and SettingsViewModel - WizardViewModel: SelectedLanguage ComboBox binding with OnSelectedLanguageChanged -> SetLanguage + InstallContext.Language - WizardWindow.xaml: DockPanel wraps step chips + language ComboBox (right-aligned) - Localize all installer XAML: WizardWindow, WelcomePage, PathsPage, ServicePage, UiSettingsPage, InstallPage, SettingsWindow, SelfUpdatePromptWindow - Localize page Title properties and WizardViewModel.NextButtonText via TrExtension.Localizer - Persist chosen Language in WriteConfigStep and SettingsViewModel.Save into ui.config.json - Append installer section to en.json (nav, welcome, paths, service, uiSettings, install, settings, selfUpdate) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -262,6 +262,67 @@
|
||||
"emptyStateHint": "No report for this range yet. Click “Generate”."
|
||||
}
|
||||
},
|
||||
"installer": {
|
||||
"nav": {
|
||||
"back": "Back",
|
||||
"next": "Next →",
|
||||
"install": "Install",
|
||||
"browse": "Browse...",
|
||||
"cancel": "Cancel"
|
||||
},
|
||||
"welcome": {
|
||||
"title": "Welcome",
|
||||
"heading": "Install ClaudeDo",
|
||||
"subheading": "Choose where to install ClaudeDo, then click Next.",
|
||||
"updateSubheading": "Your tasks, config, and database will be preserved. Click Next to continue.",
|
||||
"installDirectory": "Install Directory",
|
||||
"registerMcp": "Register MCP server with Claude",
|
||||
"registerMcpHint": "Runs 'claude mcp add' so Claude can view and manage your ClaudeDo tasks. You can change this later."
|
||||
},
|
||||
"paths": {
|
||||
"title": "Data Paths",
|
||||
"subtitle": "Configure where ClaudeDo stores its data.",
|
||||
"databasePath": "Database Path",
|
||||
"logDirectory": "Log Directory",
|
||||
"sandboxRoot": "Sandbox Root",
|
||||
"worktreeStrategy": "Worktree Strategy",
|
||||
"centralWorktreeRoot": "Central Worktree Root"
|
||||
},
|
||||
"service": {
|
||||
"title": "Worker",
|
||||
"subtitle": "Configure the ClaudeDo background worker.",
|
||||
"signalRPort": "SignalR Port",
|
||||
"queueBackstopInterval": "Queue Backstop Interval (ms)",
|
||||
"claudeCliPath": "Claude CLI Path",
|
||||
"autostart": "Start worker automatically at logon",
|
||||
"autostartHint": "The worker runs as you (the logged-in user) via a per-user logon task, so it can use your Claude CLI authentication.",
|
||||
"restartDelay": "Restart Delay (ms)"
|
||||
},
|
||||
"uiSettings": {
|
||||
"title": "UI Settings",
|
||||
"subtitle": "Configure the ClaudeDo desktop UI connection settings.",
|
||||
"syncWithService": "Sync with service settings",
|
||||
"signalRUrl": "SignalR URL",
|
||||
"syncHint": "When synced, these values are derived from the Service and Paths pages."
|
||||
},
|
||||
"install": {
|
||||
"title": "Installation",
|
||||
"subtitle": "Click Install to build and deploy ClaudeDo.",
|
||||
"launch": "Launch ClaudeDo"
|
||||
},
|
||||
"settings": {
|
||||
"removeUserData": "Remove user data (tasks, logs, configs in ~/.todo-app)",
|
||||
"uninstall": "Uninstall",
|
||||
"repair": "Repair",
|
||||
"save": "Save",
|
||||
"close": "Close"
|
||||
},
|
||||
"selfUpdate": {
|
||||
"heading": "A newer installer is available",
|
||||
"update": "Update",
|
||||
"continueAnyway": "Continue anyway"
|
||||
}
|
||||
},
|
||||
"planning": {
|
||||
"conflict": {
|
||||
"windowTitle": "Merge conflict",
|
||||
|
||||
Reference in New Issue
Block a user