- 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>
43 lines
1.9 KiB
C#
43 lines
1.9 KiB
C#
namespace ClaudeDo.Installer.Core;
|
|
|
|
public sealed class InstallContext
|
|
{
|
|
// WelcomePage / install destination
|
|
public string InstallDirectory { get; set; } = @"C:\Program Files\ClaudeDo";
|
|
|
|
// Mode + versions (set by App startup after InstallModeDetector runs)
|
|
public InstallerMode Mode { get; set; } = InstallerMode.FreshInstall;
|
|
public string? InstallerVersion { get; set; } // from this installer's assembly
|
|
public string? InstalledVersion { get; set; } // from install.json (or set by DownloadAndExtractStep)
|
|
public string? LatestVersion { get; set; } // from Gitea API (may be null if offline)
|
|
public bool LatestTagUnparseable { get; set; } // true if latest tag isn't a System.Version
|
|
|
|
// PathsPage
|
|
public string DbPath { get; set; } = "~/.todo-app/todo.db";
|
|
public string LogRoot { get; set; } = "~/.todo-app/logs";
|
|
public string SandboxRoot { get; set; } = "~/.todo-app/sandbox";
|
|
public string WorktreeRootStrategy { get; set; } = "sibling";
|
|
public string CentralWorktreeRoot { get; set; } = "~/.todo-app/worktrees";
|
|
|
|
// ServicePage
|
|
public int SignalRPort { get; set; } = 47_821;
|
|
public int QueueBackstopIntervalMs { get; set; } = 30_000;
|
|
public string ClaudeBin { get; set; } = "claude";
|
|
public bool AutoStart { get; set; } = true;
|
|
public int RestartDelayMs { get; set; } = 5000;
|
|
|
|
// UiSettingsPage
|
|
public string SignalRUrl { get; set; } = "http://127.0.0.1:47821/hub";
|
|
public string UiDbPath { get; set; } = "~/.todo-app/todo.db";
|
|
|
|
// InstallPage
|
|
public bool CreateDesktopShortcut { get; set; } = true;
|
|
|
|
// WelcomePage — register the external MCP endpoint with the Claude CLI.
|
|
public bool RegisterMcpWithClaude { get; set; } = true;
|
|
public int ExternalMcpPort { get; set; } = 47_822;
|
|
|
|
// Language selection (persisted to ui.config.json)
|
|
public string Language { get; set; } = "";
|
|
}
|