2026-03-13 22:20:12 +08:00
{
2026-03-04 15:22:52 +08:00
"app.title" : "LanMountainDesktop" ,
2026-03-10 16:35:43 +08:00
"tray.tooltip" : "LanMountainDesktop" ,
2026-03-12 21:01:23 +08:00
"tray.menu.show_desktop" : "Open Desktop" ,
2026-03-10 16:35:43 +08:00
"tray.menu.settings" : "Settings" ,
2026-04-02 21:12:06 +08:00
"tray.menu.component_library" : "Fused Desktop Settings" ,
2026-03-10 16:35:43 +08:00
"tray.menu.restart" : "Restart App" ,
"tray.menu.exit" : "Exit App" ,
2026-03-02 20:02:14 +08:00
"button.back_to_windows" : "Back to Windows" ,
2026-03-19 02:02:07 +08:00
"button.back_to_platform" : "Back to {0}" ,
2026-03-02 20:02:14 +08:00
"tooltip.back_to_windows" : "Back to Windows" ,
2026-03-19 02:02:07 +08:00
"tooltip.back_to_platform" : "Back to {0}" ,
"platform.windows" : "Windows" ,
"platform.linux" : "Linux" ,
"platform.macos" : "macOS" ,
2026-03-02 20:02:14 +08:00
"tooltip.open_settings" : "Settings" ,
"settings.title" : "Settings" ,
2026-03-12 21:01:23 +08:00
"settings.shell.title" : "Settings" ,
"settings.shell.subtitle" : "LanMountainDesktop independent settings module" ,
2026-03-10 09:55:49 +08:00
"settings.shell.sidebar_hint" : "Choose a category to adjust application behavior, desktop layout, and appearance." ,
2026-03-12 21:01:23 +08:00
"settings.shell.footer_hint" : "Tray-opened settings are managed in this independent settings module." ,
2026-03-02 20:02:14 +08:00
"settings.back_to_desktop" : "Back to Desktop" ,
"settings.nav_header" : "Settings" ,
2026-03-10 09:55:49 +08:00
"settings.nav.group_desktop" : "Desktop" ,
"settings.nav.group_system" : "System" ,
"settings.nav.group_extensions" : "Extensions" ,
2026-03-02 20:02:14 +08:00
"settings.nav.wallpaper" : "Wallpaper" ,
2026-03-20 00:41:14 +08:00
"settings.nav.grid" : "Components" ,
2026-03-02 20:02:14 +08:00
"settings.nav.color" : "Color" ,
"settings.nav.status_bar" : "Status Bar" ,
2026-03-03 04:56:04 +08:00
"settings.nav.weather" : "Weather" ,
2026-03-02 20:02:14 +08:00
"settings.nav.region" : "Region" ,
2026-03-05 18:46:32 +08:00
"settings.nav.update" : "Update" ,
2026-03-15 17:08:07 +08:00
"settings.nav.privacy" : "Privacy" ,
2026-03-06 08:53:45 +08:00
"settings.nav.launcher" : "App Launcher" ,
2026-03-06 22:24:59 +08:00
"settings.nav.plugins" : "Plugins" ,
2026-03-03 04:56:04 +08:00
"settings.nav.about" : "About" ,
2026-03-02 20:02:14 +08:00
"settings.wallpaper.title" : "Wallpaper" ,
"settings.wallpaper.description" : "Pick an image or video to apply as the app window wallpaper immediately." ,
"settings.wallpaper.current_label" : "Current Wallpaper" ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"settings.wallpaper.type_label" : "Wallpaper Type" ,
"settings.wallpaper.type.image" : "Image" ,
"settings.wallpaper.type.solid_color" : "Solid Color" ,
"settings.wallpaper.type.system" : "System Wallpaper" ,
"settings.wallpaper.refresh_interval" : "Refresh Interval" ,
"settings.wallpaper.refresh_now" : "Refresh Now" ,
"settings.wallpaper.refresh.30s" : "30 seconds" ,
"settings.wallpaper.refresh.1m" : "1 minute" ,
"settings.wallpaper.refresh.5m" : "5 minutes" ,
"settings.wallpaper.refresh.10m" : "10 minutes" ,
"settings.wallpaper.refresh.15m" : "15 minutes" ,
"settings.wallpaper.refresh.30m" : "30 minutes" ,
"settings.wallpaper.refresh.1h" : "1 hour" ,
"settings.wallpaper.refresh.2h" : "2 hours" ,
"settings.wallpaper.refresh.4h" : "4 hours" ,
"settings.wallpaper.refresh.8h" : "8 hours" ,
"settings.wallpaper.refresh.12h" : "12 hours" ,
"settings.wallpaper.refresh.24h" : "24 hours" ,
"settings.wallpaper.color_label" : "Wallpaper Color" ,
"settings.wallpaper.custom_color_tooltip" : "Custom color" ,
"settings.wallpaper.custom_color_apply" : "Apply" ,
2026-03-02 20:02:14 +08:00
"settings.wallpaper.placement_label" : "Placement" ,
"settings.wallpaper.placement_desc" : "Adjust how the image fills the desktop." ,
"settings.wallpaper.pick_button" : "Browse Files" ,
"settings.wallpaper.clear_button" : "Reset to Solid Color" ,
"settings.wallpaper.no_selection" : "No wallpaper selected." ,
"settings.wallpaper.storage_unavailable" : "Storage provider is unavailable." ,
"settings.wallpaper.import_failed" : "Failed to import wallpaper file." ,
"settings.wallpaper.image_applied" : "Image wallpaper applied." ,
"settings.wallpaper.video_applied" : "Video wallpaper applied." ,
"settings.wallpaper.unsupported_file" : "Selected file type is not supported." ,
"settings.wallpaper.apply_failed_format" : "Failed to apply wallpaper: {0}" ,
"settings.wallpaper.mode_format" : "Wallpaper mode: {0}." ,
"settings.wallpaper.video_mode" : "Video wallpaper uses automatic fill mode." ,
"settings.wallpaper.cleared" : "Background reset to solid color." ,
"settings.wallpaper.default_status" : "Current background uses solid color." ,
"settings.wallpaper.saved_not_found" : "Saved wallpaper file was not found. Using solid color background." ,
"settings.wallpaper.restored" : "Wallpaper restored from saved settings." ,
"settings.wallpaper.video_restored" : "Video wallpaper restored from saved settings." ,
"settings.wallpaper.restore_failed" : "Failed to restore saved wallpaper. Using solid color background." ,
"settings.wallpaper.video_not_found" : "Video wallpaper file not found." ,
"settings.wallpaper.video_player_unavailable" : "Video player is unavailable." ,
"settings.wallpaper.video_play_failed_format" : "Failed to play video wallpaper: {0}" ,
"settings.grid.title" : "Grid Layout" ,
"settings.grid.description" : "Every component must occupy at least one cell (minimum 1x1)." ,
"settings.grid.short_side_label" : "Short Side Cells" ,
"settings.grid.spacing_label" : "Grid Spacing" ,
"settings.grid.spacing_relaxed" : "Relaxed (iOS)" ,
"settings.grid.spacing_compact" : "Compact (Android)" ,
"settings.grid.edge_inset_label" : "Screen Inset" ,
"settings.grid.edge_inset_px_format" : "≈ {0:F1}px" ,
"settings.grid.apply_button" : "Apply" ,
"settings.grid.info_format" : "Grid: {0} cols x {1} rows | cell {2:F1}px (1:1)" ,
"settings.color.title" : "Color" ,
"settings.color.description" : "Switch day/night mode and choose app accent colors." ,
"settings.color.day_night_label" : "Day/Night Mode" ,
"settings.color.day_night_on" : "Night" ,
"settings.color.day_night_off" : "Day" ,
"settings.color.recommended_label" : "Recommended Colors" ,
"settings.color.system_monet_label" : "System Monet Colors" ,
"settings.color.refresh_button" : "Refresh" ,
"settings.color.mode_night" : "Night mode enabled" ,
"settings.color.mode_day" : "Day mode enabled" ,
"settings.color.mode_status_format" : "Theme mode: {0}." ,
"settings.color.monet_refreshed" : "Monet colors refreshed." ,
"settings.color.theme_ready_format" : "Theme color ready: {0}." ,
"settings.color.theme_applied_format" : "{0} color applied: {1}." ,
"settings.color.theme_updated_wallpaper" : "Wallpaper updated. Monet colors refreshed." ,
"settings.color.theme_updated_video" : "Video wallpaper updated. Theme colors refreshed." ,
"settings.color.theme_cleared_wallpaper" : "Wallpaper cleared. Monet colors refreshed." ,
"settings.status_bar.title" : "Status Bar" ,
"settings.status_bar.description" : "Choose which components appear on the top status bar." ,
"settings.status_bar.clock_header" : "Clock Component" ,
"settings.status_bar.clock_description" : "Display a clock on the top status bar." ,
2026-03-19 00:17:21 +08:00
"settings.status_bar.clock_transparent_background_label" : "Transparent background" ,
"settings.status_bar.clock_transparent_background_desc" : "Remove the capsule background and keep only the clock text." ,
2026-03-02 20:02:14 +08:00
"settings.status_bar.spacing_header" : "Component Spacing" ,
"settings.status_bar.spacing_desc" : "Adjust spacing between status bar components." ,
"settings.status_bar.spacing_mode_compact" : "Compact" ,
"settings.status_bar.spacing_mode_relaxed" : "Relaxed" ,
"settings.status_bar.spacing_mode_custom" : "Custom" ,
"settings.status_bar.spacing_custom_label" : "Custom spacing (%)" ,
"settings.status_bar.spacing_custom_px_format" : "≈ {0:F1}px" ,
2026-03-15 17:08:07 +08:00
"settings.privacy.title" : "Privacy" ,
"settings.privacy.description" : "Manage optional anonymous uploads that help improve the app over time." ,
"settings.privacy.crash_upload_title" : "Anonymous crash data uploads" ,
"settings.privacy.crash_upload_description" : "Help us improve application stability." ,
"settings.privacy.usage_upload_title" : "Anonymous usage data uploads" ,
"settings.privacy.usage_upload_description" : "Help us improve application features." ,
2026-03-17 01:01:48 +08:00
"settings.privacy.device_id_title" : "Device ID" ,
"settings.privacy.device_id_description" : "Unique identifier for this device. Click refresh to regenerate." ,
"settings.privacy.refresh_device_id" : "Refresh" ,
"settings.privacy.policy_hint_prefix" : "For more details, please " ,
"settings.privacy.view_policy" : "view our privacy policy" ,
2026-03-03 04:56:04 +08:00
"settings.weather.title" : "Weather" ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"settings.weather.description" : "Configure weather location, weather preview, and startup positioning behavior." ,
2026-03-03 04:56:04 +08:00
"settings.weather.location_source_header" : "Location Source" ,
"settings.weather.location_source_desc" : "Choose how weather widgets resolve location." ,
"settings.weather.mode_city_search" : "City Search" ,
"settings.weather.mode_coordinates" : "Coordinates" ,
"settings.weather.auto_refresh" : "Auto refresh location on startup" ,
"settings.weather.city_search_header" : "City Search" ,
"settings.weather.city_search_desc" : "Search cities and apply one weather location." ,
"settings.weather.search_placeholder" : "e.g. Beijing" ,
"settings.weather.search_button" : "Search" ,
"settings.weather.apply_city_button" : "Apply City" ,
"settings.weather.search_hint" : "Search by city name and apply one location." ,
"settings.weather.search_required" : "Please enter a city keyword first." ,
"settings.weather.search_no_results" : "No locations were found." ,
"settings.weather.search_failed_format" : "Search failed: {0}" ,
"settings.weather.search_result_count_format" : "Found {0} locations." ,
"settings.weather.search_select_required" : "Please select one location from search results." ,
"settings.weather.search_applied_format" : "Location applied: {0}" ,
"settings.weather.coordinates_header" : "Coordinates" ,
"settings.weather.coordinates_desc" : "Set latitude/longitude and optional key/name." ,
"settings.weather.latitude_label" : "Latitude" ,
"settings.weather.longitude_label" : "Longitude" ,
"settings.weather.location_key_placeholder" : "Location key (optional)" ,
"settings.weather.location_name_placeholder" : "Display name (optional)" ,
"settings.weather.apply_coordinates_button" : "Apply Coordinates" ,
"settings.weather.coordinates_saved_format" : "Coordinates saved: {0:F4}, {1:F4}" ,
"settings.weather.coordinates_default_name_format" : "Coordinate {0:F4}, {1:F4}" ,
2026-03-14 22:45:09 +08:00
"settings.weather.location_services_header" : "Location Service" ,
"settings.weather.location_services_desc" : "Use the current Windows location and decide whether it refreshes automatically on startup." ,
"settings.weather.use_current_location" : "Use Current Location" ,
"settings.weather.location_unsupported" : "Current platform does not support retrieving the current location." ,
"settings.weather.location_ready" : "You can use the current Windows location." ,
"settings.weather.location_refreshing" : "Requesting current location..." ,
"settings.weather.location_refresh_success_format" : "Current location applied: {0}" ,
"settings.weather.location_refresh_failed_format" : "Failed to get current location: {0}" ,
2026-03-03 04:56:04 +08:00
"settings.weather.preview_header" : "Connection Test" ,
"settings.weather.preview_desc" : "Send one test request to verify current settings." ,
"settings.weather.preview_button" : "Test Fetch" ,
2026-03-10 09:55:49 +08:00
"settings.weather.preview_section" : "Weather Preview" ,
"settings.weather.settings_section" : "Settings" ,
2026-03-03 15:09:49 +08:00
"settings.weather.preview_panel_header" : "Weather Preview" ,
"settings.weather.preview_panel_desc" : "Refresh and verify current weather service status." ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"settings.weather.preview_metrics_header" : "Current conditions" ,
"settings.weather.preview_alerts_header" : "Weather alerts" ,
"settings.weather.preview_no_alerts" : "No active weather alerts." ,
"settings.weather.metric_humidity" : "Humidity" ,
"settings.weather.metric_aqi" : "AQI" ,
"settings.weather.metric_wind" : "Wind" ,
"settings.weather.metric_feels_like" : "Feels like" ,
"settings.weather.metric_precipitation" : "Precipitation" ,
"settings.weather.metric_sun" : "Sunrise / sunset" ,
"settings.weather.alert_untitled" : "Weather alert" ,
"settings.weather.alert_no_detail" : "No details were provided." ,
"settings.weather.alert_active" : "Active alert" ,
"settings.weather.alert_published_format" : "Published {0}" ,
2026-03-03 15:09:49 +08:00
"settings.weather.refresh_button" : "Refresh" ,
2026-03-14 22:45:09 +08:00
"settings.weather.preview_updated_format" : "Updated {0}" ,
2026-03-03 04:56:04 +08:00
"settings.weather.preview_hint" : "Use test fetch to verify your weather configuration." ,
"settings.weather.preview_missing_location" : "Please apply one weather location before testing." ,
"settings.weather.preview_success_format" : "Test success: {0} · {1} · {2}" ,
"settings.weather.preview_failed_format" : "Test fetch failed: {0}" ,
"settings.weather.preview_unknown" : "Unknown" ,
2026-03-03 15:09:49 +08:00
"settings.weather.alert_filter_header" : "Excluded Alerts" ,
"settings.weather.alert_filter_desc" : "Alerts containing these words will not be shown. One rule per line." ,
"settings.weather.alert_filter_placeholder" : "One keyword per line" ,
"settings.weather.icon_style_header" : "Weather Icon Style" ,
"settings.weather.icon_style_desc" : "Choose Fluent Icon style for weather symbols." ,
"settings.weather.icon_style_fluent_regular" : "Fluent Regular" ,
"settings.weather.icon_style_fluent_filled" : "Fluent Filled" ,
"settings.weather.no_tls_header" : "No TLS Weather Request" ,
"settings.weather.no_tls_desc" : "Not recommended. Enable only for incompatible network environments." ,
2026-03-03 04:56:04 +08:00
"settings.weather.status_city_empty" : "No city location is configured." ,
"settings.weather.status_city_format" : "Mode: {0} | {1} | Key: {2}" ,
"settings.weather.status_coordinates_format" : "Mode: {0} | Lat {1:F4}, Lon {2:F4} | Key: {3}" ,
2026-03-10 09:55:49 +08:00
"settings.weather.city_selection_label" : "City Selection" ,
"settings.weather.coordinates_selection_label" : "Coordinate Location" ,
"settings.weather.location_city_summary_desc" : "Select the current city used for weather queries." ,
"settings.weather.location_coordinates_summary_desc" : "Set latitude/longitude and optional location name used for weather queries." ,
"settings.weather.location_not_selected" : "No location selected" ,
"settings.weather.alert_list_label" : "Exclude List" ,
"settings.weather.alert_list_desc" : "One exclusion rule per line." ,
"settings.weather.no_tls_toggle" : "Allow non-TLS request fallback" ,
"settings.weather.footer_hint" : "Desktop weather widgets will reuse the location and alert exclusion settings configured here." ,
2026-03-30 02:40:10 +08:00
"settings.study.title" : "Study" ,
"settings.study.description" : "Configure study environment monitoring, focus timer, and alert settings." ,
2026-03-31 01:16:53 +08:00
"settings.study.master_switch_header" : "Study Feature" ,
"settings.study.master_switch_desc" : "Enable study environment monitoring and focus timer. When disabled, related components will not collect any data." ,
2026-03-30 02:40:10 +08:00
"settings.study.noise_header" : "Noise Monitoring" ,
"settings.study.noise_description" : "Configure microphone sampling rate and noise scoring sensitivity." ,
"settings.study.sampling_rate_label" : "Sampling Rate" ,
"settings.study.sampling_rate_desc" : "Time interval for microphone audio sampling. Higher frequency captures noise changes more accurately but increases power consumption." ,
"settings.study.sampling_rate_20ms" : "20ms (High)" ,
"settings.study.sampling_rate_50ms" : "50ms (Standard)" ,
"settings.study.sampling_rate_100ms" : "100ms (Power Saving)" ,
"settings.study.sampling_rate_200ms" : "200ms (Low Power)" ,
"settings.study.sensitivity_label" : "Noise Sensitivity" ,
"settings.study.sensitivity_desc" : "Scoring threshold determines what level of noise is considered interference. Stricter thresholds detect quieter noises." ,
"settings.study.sensitivity_relaxed" : "Relaxed (-45dBFS)" ,
"settings.study.sensitivity_standard" : "Standard (-50dBFS)" ,
"settings.study.sensitivity_strict" : "Strict (-55dBFS)" ,
"settings.study.sensitivity_very_strict" : "Very Strict (-60dBFS)" ,
"settings.study.current_threshold_format" : "Current scoring threshold: {0} dBFS" ,
"settings.study.timer_header" : "Focus Timer" ,
"settings.study.timer_description" : "Configure focus and break session durations." ,
"settings.study.focus_duration_label" : "Focus Duration" ,
"settings.study.focus_duration_desc" : "Duration of a single focus session (minutes)." ,
"settings.study.break_duration_label" : "Break Duration" ,
"settings.study.break_duration_desc" : "Duration of a short break session (minutes)." ,
"settings.study.long_break_duration_label" : "Long Break Duration" ,
"settings.study.long_break_duration_desc" : "Duration of a long break session (minutes)." ,
"settings.study.sessions_before_long_break_label" : "Long Break Interval" ,
"settings.study.sessions_before_long_break_desc" : "Number of focus sessions before a long break." ,
"settings.study.auto_start_break_label" : "Auto-start Break" ,
"settings.study.auto_start_break_desc" : "Automatically start break timer when focus session ends." ,
"settings.study.auto_start_focus_label" : "Auto-start Focus" ,
"settings.study.auto_start_focus_desc" : "Automatically start focus timer when break ends." ,
"settings.study.alert_header" : "Alert Settings" ,
"settings.study.alert_description" : "Configure noise interference alerts." ,
"settings.study.noise_alert_enabled_label" : "Enable Noise Alert" ,
"settings.study.noise_alert_enabled_desc" : "Show an alert when noise interference exceeds tolerance threshold." ,
"settings.study.max_interrupts_label" : "Max Tolerated Interrupts" ,
"settings.study.max_interrupts_desc" : "Maximum noise interference events per minute before triggering an alert." ,
"settings.study.display_header" : "Display Settings" ,
"settings.study.display_description" : "Configure how noise data is displayed." ,
"settings.study.show_realtime_db_label" : "Show Realtime Decibel" ,
"settings.study.show_realtime_db_desc" : "Display decibel values in real-time on components." ,
"settings.study.baseline_db_label" : "Baseline Display Decibel" ,
"settings.study.baseline_db_desc" : "Calibrated baseline decibel value for converting dBFS to user-readable dB." ,
"settings.study.avg_window_label" : "Averaging Window" ,
"settings.study.avg_window_desc" : "Time window for smoothing noise display. Larger values make display more stable but slower to respond." ,
"settings.study.footer_hint" : "These settings affect the behavior of study environment monitoring components." ,
2026-04-02 11:54:58 +08:00
"common.unit.minutes" : "minutes" ,
"common.unit.seconds" : "seconds" ,
"common.unit.times" : "times" ,
"common.error.save_failed" : "Failed to save settings, please try again later" ,
"common.error.load_failed" : "Failed to load settings, please try again later" ,
"study.alert.noise_interrupt_title" : "Noise Interrupt Alert" ,
"study.alert.noise_interrupt_message" : "Current interrupt density: {0}/min\nExceeds threshold: {1}/min" ,
"study.alert.severe_interrupt_title" : "Severe Noise Interference" ,
"study.alert.severe_interrupt_message" : "Environment is too noisy, severely affecting learning efficiency\nCurrent interrupt density: {0}/min\nSuggestion: Find a quieter study environment" ,
2026-03-03 04:56:04 +08:00
"settings.weather.location_header" : "Weather Location" ,
"settings.weather.location_desc" : "Set the location used by weather widgets." ,
"settings.weather.location_placeholder" : "e.g. Beijing" ,
"settings.weather.location_apply" : "Save" ,
"settings.weather.location_empty" : "Weather location is not set." ,
"settings.weather.location_required" : "Weather location cannot be empty." ,
"settings.weather.location_current_format" : "Current weather location: {0}" ,
"settings.weather.location_saved_format" : "Weather location saved: {0}" ,
"weather.widget.location_not_configured" : "Weather location is not configured" ,
"weather.widget.configure_hint" : "Open Settings > Weather to configure" ,
"weather.widget.loading" : "Loading..." ,
"weather.widget.fetch_failed" : "Weather fetch failed" ,
"weather.widget.retrying" : "Retrying automatically" ,
"weather.widget.location_unknown" : "Unknown location" ,
"weather.widget.condition_clear" : "Clear" ,
"weather.widget.condition_cloudy" : "Cloudy" ,
"weather.widget.condition_rain" : "Rain" ,
"weather.widget.condition_storm" : "Thunderstorm" ,
"weather.widget.condition_snow" : "Snow" ,
"weather.widget.condition_fog" : "Fog" ,
"weather.widget.condition_unknown" : "Unknown" ,
"weather.widget.range_unknown" : "-- / --" ,
"weather.widget.range_format" : "{0} / {1}" ,
2026-03-03 15:09:49 +08:00
"schedule.widget.no_source" : "ClassIsland schedule data not found" ,
"schedule.widget.no_class_today" : "No classes today" ,
"schedule.widget.layout_missing" : "Schedule time layout is missing" ,
"schedule.widget.subject_fallback" : "Untitled class" ,
"schedule.widget.detail_fallback" : "No details" ,
"schedule.settings.title" : "Schedule Import" ,
"schedule.settings.desc" : "Import ClassIsland CSES schedules and choose which one is enabled." ,
"schedule.settings.add" : "Add Schedule" ,
"schedule.settings.empty" : "No imported schedules" ,
"schedule.settings.unnamed" : "Unnamed Schedule" ,
"schedule.settings.delete" : "Delete" ,
"schedule.settings.picker_title" : "Select ClassIsland schedule file" ,
2026-03-22 04:57:19 +08:00
"schedule.settings.picker_file_type.all" : "ClassIsland Schedule Files" ,
"schedule.settings.picker_file_type.json" : "ClassIsland Profile (JSON)" ,
"schedule.settings.picker_file_type.cses" : "CSES Schedule (YAML)" ,
"schedule.settings.semester.title" : "Semester Settings" ,
"schedule.settings.semester.start_date" : "Semester Start Date" ,
"schedule.settings.semester.week_cycle" : "Week Cycle" ,
"schedule.settings.semester.week_cycle_desc" : "Set the week rotation cycle for multi-week schedules (e.g., 2 for odd/even weeks)." ,
"schedule.settings.semester.week_cycle_format" : "{0}-week rotation" ,
2026-03-05 16:34:22 +08:00
"worldclock.settings.title" : "World Clock Settings" ,
"worldclock.settings.desc" : "Choose a time zone for each of the four clocks." ,
"worldclock.settings.clock_1" : "Clock 1" ,
"worldclock.settings.clock_2" : "Clock 2" ,
"worldclock.settings.clock_3" : "Clock 3" ,
"worldclock.settings.clock_4" : "Clock 4" ,
"worldclock.settings.second_mode_label" : "Second Hand" ,
"worldclock.widget.today" : "Today" ,
"worldclock.widget.yesterday" : "Yesterday" ,
"worldclock.widget.tomorrow" : "Tomorrow" ,
"worldclock.widget.offset_same" : "0h" ,
"worldclock.widget.offset_ahead_hours" : "Ahead {0}h" ,
"worldclock.widget.offset_behind_hours" : "Behind {0}h" ,
"worldclock.widget.offset_ahead_hm" : "Ahead {0}h {1}m" ,
"worldclock.widget.offset_behind_hm" : "Behind {0}h {1}m" ,
2026-03-03 04:56:04 +08:00
"weather.widget.aqi_unknown" : "AQI --" ,
"weather.widget.aqi_format" : "AQI {0}" ,
"weather.widget.updated_format" : "Updated {0:HH:mm}" ,
"weather.hourly.now" : "Now" ,
2026-03-04 02:02:34 +08:00
"weather.hourly.sunset" : "Sunset" ,
2026-03-03 04:56:04 +08:00
"weather.multiday.today" : "Today" ,
"weather.multiday.tomorrow" : "Tomorrow" ,
"weather.multiday.aqi_format" : "Air Quality {0}" ,
"weather.multiday.aqi_unknown" : "Air --" ,
2026-03-02 20:02:14 +08:00
"settings.region.title" : "Region" ,
"settings.region.description" : "Choose language and apply immediately to settings and key UI." ,
"settings.region.language_header" : "Language" ,
"settings.region.language_label" : "Language" ,
"settings.region.language_zh" : "Chinese" ,
"settings.region.language_en" : "English" ,
2026-03-22 14:47:15 +08:00
"settings.region.language_ja" : "Japanese" ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"settings.region.language_ko" : "Korean" ,
2026-03-03 04:56:04 +08:00
"settings.region.timezone_header" : "Time Zone" ,
"settings.region.timezone_desc" : "Select a time zone. Clock and calendar widgets will follow this zone." ,
2026-03-02 20:02:14 +08:00
"settings.region.applied_format" : "Language switched to: {0}" ,
2026-03-13 22:20:12 +08:00
"settings.region.follow_system" : "Follow system default" ,
"settings.general.title" : "General" ,
"settings.general.description" : "Adjust language, time zone, and runtime behavior." ,
"settings.general.basic_header" : "Basic Settings" ,
"settings.general.runtime_header" : "Runtime" ,
"settings.general.preview_header" : "Date & Time Preview" ,
"settings.general.preview_time_label" : "Time" ,
"settings.general.preview_date_label" : "Date" ,
"settings.general.render_mode_restart_message" : "Rendering mode changes require restarting the app." ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"settings.general.fade_transition_header" : "Fade startup transition" ,
"settings.general.slide_transition_header" : "Slide startup transition" ,
"settings.general.slide_transition_desc" : "Use a slide-in startup transition on supported Windows builds. This option disables fade transition." ,
"settings.general.show_main_window_taskbar_header" : "Show main desktop window in taskbar" ,
"settings.general.show_main_window_taskbar_desc" : "Keep the main desktop host window visible in the taskbar. The independent settings window always has its own taskbar entry." ,
"settings.general.multi_instance_behavior_header" : "When opening the app again" ,
"settings.general.multi_instance_behavior_desc" : "Choose how Launcher handles repeated launches while LanMountain Desktop is already running." ,
"settings.general.multi_instance_behavior.restart" : "Restart app" ,
"settings.general.multi_instance_behavior.open_silently" : "Open desktop without prompt" ,
"settings.general.multi_instance_behavior.prompt_only" : "Show prompt only" ,
"settings.general.multi_instance_behavior.notify_and_open" : "Notify and open desktop" ,
"settings.data.title" : "Data" ,
"settings.data.description" : "Review and manage local app storage and cache." ,
2026-03-13 22:20:12 +08:00
"settings.appearance.title" : "Appearance" ,
2026-03-15 17:08:07 +08:00
"settings.appearance.description" : "Adjust theme source, system material, and window chrome." ,
2026-03-13 22:20:12 +08:00
"settings.appearance.theme_header" : "Theme" ,
Launcher fix (#6)
* fix.hy3试图修复中
* Resolve dev paths and fix splash UI thread
Compute a solutionRoot and expand development search paths (LanMountainDesktop and dev-test) in DeploymentLocator, add logging when scanning/finding hosts, and return distinct full paths. Ensure backward-compatible path checks. Fix cross-thread UI calls: invoke splashWindow.DismissAsync on the UI thread in LauncherFlowCoordinator, and make SplashWindow.DismissAsync ensure it runs on the UI thread before closing (simplified Close call). These changes improve development host discovery and prevent UI-thread access issues during shutdown.
* Add configurable data location (portable/system)
Introduce support for choosing and resolving the application's data root (system user dir vs. portable app folder). Adds DataLocationConfig model, DataLocationResolver (load/save/resolve/migrate), a UI prompt (DataLocationPromptWindow) and an OOBE step (DataLocationOobeStep) to let users pick and optionally migrate existing data. Wire the chosen data root into the launcher flow and host launch plan (forwarded via --data-root and LMD_DATA_ROOT), and add AppDataPathProvider to let runtime services read the effective data root (initialized in Program.Main). Update various services (logging, settings, DB, plugin/market, startup registry, etc.) to use the new provider/resolver and register the config type in the JSON context. This enables portable installs, safe migration, and runtime overrides via CLI or environment variable.
* Add dev/debug startup flow and launch profiles
Handle design-time initialization and add a developer debug startup path: App now skips normal startup when in design mode and shows a DevDebugWindow when running in debug (unless a preview or apply-update command). CommandContext.IsDebugMode is extended to include DOTNET_ENVIRONMENT=Development via a new IsDevelopmentEnvironment helper. Program.Main and BuildAvaloniaApp are made public to aid tooling. Added multiple launchSettings profiles for debug and preview commands that set DOTNET_ENVIRONMENT=Development to simplify IDE debugging and UI previewing.
* Simplify splash to fade; add themed about banners
Simplify splash startup visuals by removing the multi-mode/slide behavior and always using a fade animation. Update App to create SplashWindow without a StartupVisualMode parameter and remove related fields, layout configuration, slide animation, and easing helpers from SplashWindow. Clean up unused using. Replace the single about_banner asset with theme-aware variants (about_banner_dark.png and about_banner_light.png), delete the old about_banner.png, and update AboutSettingsPage to use a DynamicResource ImageBrush (AboutBannerBrush) that selects the appropriate banner per theme.
* Use AppJsonContext for startup state serialization
Switch serialization to the source-generated System.Text.Json context: add JsonSerializable(typeof(StartupAttemptRecord)) to AppJsonContext and replace the previous JsonSerializerOptions-based Serialize/Deserialize calls with AppJsonContext.Default.StartupAttemptRecord. Also remove the now-unused SerializerOptions field. Additionally, update .gitignore to exclude /test-aot-publish.
* Add OOBE redesign, theme & data location support
Introduce a redesigned OOBE flow and data-location/theme support across the launcher. Adds a new ThemeService for applying light/dark and accent colors; integrates FluentIcons.Avalonia package for icons. Overhauls OobeWindow (UX animations, typing effect, multi-step theme and data-location pages, Monet options, and final welcome step) and its code-behind to handle step navigation, accent selection, and data-location resolution. Adds DataLocation UI and handlers (DataLocationPromptWindow changes, DataLocation resolver usage) and wires a DevDebug UI for toggling/opening the data-location page. UpdateEngineService now resolves the launcher root via DataLocationResolver. Misc: update various view models, localization entries and remove TrimmerRoots.xml.
* Refactor data location paths and add background service
Refactor DataLocationResolver to centralize data path resolution (ResolveLauncherDataPath, ResolveDesktopDataPath, ResolveConfigPath, ResolveLauncherLogsPath, ResolveLauncherStatePath) and replace usages of the previous ".launcher" layout with a "Launcher" folder. Update API: LoadConfig/SaveConfig reorganized and ApplyLocationChoice now accepts an optional custom path and migration flag; migration logic updated accordingly. Update dependent services and views (Logger, DeploymentLocator, UpdateEngineService, OobeStateService, StartupAttemptRegistry, LauncherDebugSettingsStore, OobeWindow) to use the new resolver APIs and paths. Add LauncherBackgroundService to load/validate/cache a custom splash background image and wire it into SplashWindow (AXAML/Axaml.cs) with UI placeholders and overlay. Misc: minor cleanup of Oobe/Splash XAML and related code adjustments and logging improvements.
2026-04-25 18:41:26 +08:00
"settings.appearance.theme_mode_label" : "Theme mode" ,
"settings.appearance.theme_mode_desc" : "Choose light, dark, or follow system theme." ,
"settings.appearance.theme_mode.light" : "Light" ,
"settings.appearance.theme_mode.dark" : "Dark" ,
"settings.appearance.theme_mode.follow_system" : "Follow system" ,
2026-03-13 22:20:12 +08:00
"settings.color.enable_night_mode_toggle" : "Enable night mode" ,
"settings.color.use_system_chrome_toggle" : "Use system window chrome" ,
"settings.color.theme_color_label" : "Theme accent color" ,
2026-03-15 17:08:07 +08:00
"settings.appearance.theme_color_mode_label" : "Theme color source" ,
"settings.appearance.theme_color_mode.neutral" : "Default neutral" ,
"settings.appearance.theme_color_mode.user" : "User theme color Monet" ,
"settings.appearance.theme_color_mode.wallpaper" : "Wallpaper Monet" ,
"settings.appearance.theme_color_mode_desc.neutral" : "Use the default white and black neutral surfaces for light and dark mode." ,
"settings.appearance.theme_color_mode_desc.user" : "Use the selected theme color as the Monet seed for the whole shell." ,
"settings.appearance.theme_color_mode_desc.wallpaper" : "Use wallpaper colors. The app wallpaper is preferred, then the system wallpaper." ,
"settings.appearance.theme_color_preview.app" : "Currently previewing colors extracted from the app wallpaper." ,
"settings.appearance.theme_color_preview.system" : "Currently previewing colors extracted from the system wallpaper." ,
"settings.appearance.theme_color_preview.fallback" : "No usable wallpaper was found. The app is using a fallback accent." ,
2026-03-16 15:19:46 +08:00
"component.color_scheme.follow_system" : "Follow system color scheme" ,
"component.color_scheme.native" : "Use component custom color scheme" ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"component.settings.color_scheme" : "Color Scheme" ,
"settings.appearance.system_material.auto" : "Auto (recommended)" ,
2026-03-15 17:08:07 +08:00
"settings.appearance.system_material.none" : "None" ,
"settings.appearance.system_material.mica" : "Mica" ,
"settings.appearance.system_material.acrylic" : "Acrylic" ,
"settings.appearance.system_material_desc.switchable" : "Apply the selected material to windows, Dock, status bar, and component hosts." ,
"settings.appearance.system_material_desc.fixed" : "Your current system only exposes the material modes listed here." ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"settings.appearance.system_material_desc.auto" : "Auto prefers Mica on Windows 11, Acrylic on Windows 10, and falls back to no material when unavailable." ,
2026-05-31 12:12:56 +08:00
"settings.appearance.restart_message" : "Window chrome changes require restarting the app." ,
2026-03-15 17:08:07 +08:00
"settings.appearance.preview.primary" : "Primary" ,
"settings.appearance.preview.secondary" : "Secondary" ,
"settings.appearance.preview.tertiary" : "Tertiary" ,
"settings.appearance.preview.neutral" : "Neutral" ,
"settings.appearance.preview.seed" : "Seed" ,
"settings.appearance.preview.neutral_light" : "White" ,
"settings.appearance.preview.neutral_dark" : "Black" ,
"settings.appearance.preview.apply_seed" : "Apply" ,
"settings.appearance.preview.wallpaper_candidates" : "Wallpaper seed candidates" ,
"settings.appearance.preview.wallpaper_current" : "Current" ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"settings.material_color.preview.wallpaper_current" : "Current" ,
"settings.material_color.theme_color_mode.neutral" : "Default neutral" ,
"settings.material_color.theme_color_mode.user" : "User theme color Monet" ,
"settings.material_color.theme_color_mode.wallpaper" : "Wallpaper Monet" ,
"settings.material_color.system_material.auto" : "Auto (recommended)" ,
"settings.material_color.system_material.none" : "None" ,
"settings.material_color.system_material.mica" : "Mica" ,
"settings.material_color.system_material.acrylic" : "Acrylic" ,
"settings.material_color.source.fallback" : "Fallback" ,
"settings.material_color.role.accent" : "Accent" ,
"settings.material_color.role.primary" : "Primary" ,
"settings.material_color.role.secondary" : "Secondary" ,
"settings.material_color.role.surface" : "Surface" ,
"settings.material_color.role.text" : "Text" ,
"settings.material_color.role.toggle" : "Toggle" ,
"settings.material_color.surface.detail_format" : "A={0:X2} Blur={1:0}" ,
"settings.material_color.title" : "Material & Color" ,
"settings.material_color.description" : "Unify Monet, wallpaper colors, semantic roles, and material surfaces." ,
"settings.material_color.source.label" : "Color source" ,
"settings.material_color.source.description" : "Choose the single source used by app surfaces, components, and plugins." ,
"settings.material_color.custom_seed.label" : "Custom Monet seed" ,
"settings.material_color.wallpaper_source.label" : "Wallpaper color source" ,
"settings.material_color.wallpaper_seed.label" : "Seed" ,
"settings.material_color.system_material.label" : "System material" ,
"settings.material_color.system_material.description" : "Apply the selected material mode to windows and host surfaces." ,
2026-05-31 12:12:56 +08:00
"settings.material_color.system_material.restart_message" : "System material changes require restarting the app." ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"settings.material_color.native_events.label" : "Native wallpaper change events" ,
"settings.material_color.native_events.description" : "Use OS wallpaper notifications first and keep polling as fallback." ,
"settings.material_color.native_events.active" : "Native wallpaper events active" ,
"settings.material_color.native_events.polling" : "Polling fallback active" ,
"settings.material_color.native_events.inactive" : "Wallpaper monitoring inactive" ,
"settings.material_color.refresh_interval.label" : "Polling interval" ,
"settings.material_color.refresh_now" : "Refresh colors" ,
"settings.material_color.preview.header" : "Unified preview" ,
"settings.material_color.source_status.header" : "Resolved source" ,
"settings.material_color.semantic.header" : "Semantic colors" ,
"settings.material_color.surfaces.header" : "Material surfaces" ,
"settings.material_color.wallpaper_source.auto" : "Auto" ,
"settings.material_color.wallpaper_source.app" : "App wallpaper" ,
"settings.material_color.wallpaper_source.system" : "System wallpaper" ,
2026-03-13 22:20:12 +08:00
"settings.wallpaper.placement.fill" : "Fill" ,
"settings.wallpaper.placement.fit" : "Fit" ,
"settings.wallpaper.placement.stretch" : "Stretch" ,
"settings.wallpaper.placement.center" : "Center" ,
"settings.wallpaper.placement.tile" : "Tile" ,
"settings.status_bar.clock_format_label" : "Clock format" ,
"settings.status_bar.clock_format.hm" : "Hour:Minute" ,
"settings.status_bar.clock_format.hms" : "Hour:Minute:Second" ,
2026-04-03 13:14:20 +08:00
"settings.status_bar.clock_position_label" : "Clock position" ,
"settings.status_bar.clock_position.left" : "Left" ,
"settings.status_bar.clock_position.center" : "Center" ,
"settings.status_bar.clock_position.right" : "Right" ,
"settings.status_bar.text_capsule_header" : "Text Capsule" ,
"settings.status_bar.text_capsule_description" : "Display custom text on the status bar with Markdown support." ,
"settings.status_bar.text_capsule_position_label" : "Text capsule position" ,
"settings.status_bar.text_capsule_position.left" : "Left" ,
"settings.status_bar.text_capsule_position.center" : "Center" ,
"settings.status_bar.text_capsule_position.right" : "Right" ,
"settings.status_bar.text_capsule_content_label" : "Text content (Markdown supported)" ,
"settings.status_bar.text_capsule_transparent_background_label" : "Transparent background" ,
2026-04-03 21:25:15 +08:00
"settings.status_bar.network_speed_header" : "Network Speed" ,
"settings.status_bar.network_speed_description" : "Display real-time network upload and download speed on the status bar." ,
"settings.status_bar.network_speed_position_label" : "Network speed position" ,
"settings.status_bar.network_speed_position.left" : "Left" ,
"settings.status_bar.network_speed_position.center" : "Center" ,
"settings.status_bar.network_speed_position.right" : "Right" ,
"settings.status_bar.network_speed_mode_label" : "Display mode" ,
"settings.status_bar.network_speed_mode.both" : "Upload + Download" ,
"settings.status_bar.network_speed_mode.upload" : "Upload only" ,
"settings.status_bar.network_speed_mode.download" : "Download only" ,
"settings.status_bar.network_speed_transparent_background_label" : "Transparent background" ,
"settings.status_bar.show_network_type_icon_label" : "Show network type icon" ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"settings.status_bar.clock_font_size_label" : "Clock font size" ,
"settings.status_bar.network_speed_font_size_label" : "Network speed font size" ,
"settings.status_bar.font_size.small" : "Small" ,
"settings.status_bar.font_size.medium" : "Medium" ,
"settings.status_bar.font_size.large" : "Large" ,
2026-04-03 21:25:15 +08:00
"settings.status_bar.shadow_header" : "Status Bar Shadow" ,
"settings.status_bar.shadow_desc" : "Add shadow effect to the status bar for better visibility of transparent components." ,
"settings.status_bar.shadow_enabled_label" : "Enable shadow" ,
"settings.status_bar.shadow_color_label" : "Shadow color" ,
"settings.status_bar.shadow_opacity_label" : "Shadow opacity" ,
"settings.status_bar.theme_header" : "Status Bar Theme" ,
"settings.status_bar.theme_desc" : "Set the theme mode for the status bar independently." ,
"settings.status_bar.theme_mode_label" : "Theme mode" ,
"settings.status_bar.theme_mode.follow_global" : "Follow Global" ,
"settings.status_bar.theme_mode.dark" : "Dark" ,
"settings.status_bar.theme_mode.light" : "Light" ,
2026-03-13 22:20:12 +08:00
"settings.components.title" : "Components" ,
2026-03-20 00:41:14 +08:00
"settings.components.description" : "Adjust component layout and corner design." ,
"settings.components.grid_header" : "Grid Settings" ,
"settings.components.header" : "Grid Settings" ,
"settings.components.short_side_label" : "Short Side Cells" ,
"settings.components.edge_inset_label" : "Screen Inset" ,
"settings.components.spacing_label" : "Component Spacing" ,
"settings.components.spacing_compact" : "Compact" ,
"settings.components.spacing_relaxed" : "Relaxed" ,
"settings.components.corner_radius.header" : "Corner Design" ,
"settings.components.corner_radius.label" : "Component Corner Radius" ,
2026-03-20 18:05:42 +08:00
"settings.components.corner_radius.description" : "Adjust the shared corner radius from a square edge to a capsule-like shape, and expand the internal safe area with it." ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"settings.components.corner_radius.spec_tooltip" : "View Corner Radius Specification" ,
2026-03-05 18:46:32 +08:00
"settings.update.title" : "Update" ,
"settings.update.current_version_label" : "Current Version" ,
"settings.update.latest_version_label" : "Latest Release" ,
"settings.update.published_at_label" : "Published At" ,
"settings.update.options_header" : "Update Options" ,
"settings.update.options_desc" : "Configure update checks and release channel." ,
"settings.update.auto_check_toggle" : "Automatically check for updates on startup" ,
"settings.update.include_prerelease_toggle" : "Include prerelease versions" ,
"settings.update.channel_label" : "Update Channel" ,
"settings.update.channel_stable" : "Stable" ,
"settings.update.channel_preview" : "Preview" ,
"settings.update.actions_header" : "Update Actions" ,
"settings.update.actions_desc" : "Check releases, download installer, and start update." ,
"settings.update.check_button" : "Check for Updates" ,
"settings.update.download_install_button" : "Download & Install" ,
"settings.update.download_progress_idle" : "Download progress: -" ,
"settings.update.download_progress_format" : "Download progress: {0:F0}%" ,
"settings.update.status_ready" : "Ready to check for updates." ,
"settings.update.status_channel_changed" : "Update channel changed. Please check again." ,
"settings.update.status_channel_changed_format" : "Update channel switched to {0}. Please check again." ,
"settings.update.status_windows_only" : "Automatic installer update is currently available only on Windows." ,
2026-06-05 11:08:11 +08:00
"settings.update.status_checking" : "Checking update sources..." ,
2026-03-05 18:46:32 +08:00
"settings.update.status_check_failed_format" : "Update check failed: {0}" ,
"settings.update.status_up_to_date" : "You are already on the latest version." ,
"settings.update.status_asset_missing" : "A new release is available, but no compatible installer was found." ,
2026-06-05 11:08:11 +08:00
"settings.update.status_available_format" : "New version {0} is available. Download it when you are ready." ,
2026-03-05 18:46:32 +08:00
"settings.update.status_downloading" : "Downloading installer..." ,
2026-04-21 20:59:52 +08:00
"settings.update.status_downloading_delta" : "Downloading incremental update..." ,
"settings.update.status_delta_applying" : "Applying incremental update. The app will close for update." ,
"settings.update.status_delta_launch_failed" : "Failed to launch updater for incremental update." ,
"settings.update.type_label" : "Update Type" ,
"settings.update.type_delta" : "Incremental Update" ,
"settings.update.type_full" : "Full Installer" ,
2026-03-05 18:46:32 +08:00
"settings.update.status_download_failed_format" : "Download failed: {0}" ,
2026-06-05 11:08:11 +08:00
"settings.update.status_launching_installer" : "Download complete. You can install the update now." ,
2026-03-05 18:46:32 +08:00
"settings.update.status_installer_missing" : "Installer file was not found after download." ,
"settings.update.status_installer_started" : "Installer started. The app will close for update." ,
2026-03-11 09:40:36 +08:00
"settings.update.status_elevation_cancelled" : "Administrator permission was not granted. Update was cancelled." ,
2026-03-05 18:46:32 +08:00
"settings.update.status_launch_failed_format" : "Failed to start installer: {0}" ,
2026-03-03 04:56:04 +08:00
"settings.about.title" : "About" ,
"settings.about.version_format" : "Version: {0}" ,
"settings.about.codename_format" : "Code Name: {0}" ,
"settings.about.font_format" : "Font: {0}" ,
2026-03-05 12:34:39 +08:00
"settings.about.startup_header" : "Windows Startup" ,
"settings.about.startup_desc" : "Launch the app automatically when signing in to Windows." ,
"settings.about.startup_toggle" : "Launch at Windows sign-in" ,
2026-03-09 15:11:48 +08:00
"settings.about.render_mode_header" : "App Rendering Mode" ,
"settings.about.render_mode_desc" : "Choose the rendering backend. Restart the app after changing this option. Unsupported modes fall back to software." ,
"settings.about.render_mode.default" : "Default" ,
"settings.about.render_mode.software" : "Software" ,
"settings.about.render_mode.angle_egl" : "angleEgl" ,
"settings.about.render_mode.wgl" : "WGL" ,
"settings.about.render_mode.vulkan" : "Vulkan" ,
2026-03-09 17:54:49 +08:00
"settings.about.render_mode.unknown" : "Unknown" ,
"settings.about.render_mode.current_label" : "Current actual backend" ,
"settings.about.render_mode.current_format" : "Current backend: {0}" ,
"settings.about.render_mode.impl_format" : "Runtime implementation: {0}" ,
"settings.about.render_mode.impl_unavailable" : "Runtime implementation details are unavailable." ,
2026-03-15 04:35:34 +08:00
"settings.about.description" : "Application details." ,
"settings.update.description" : "Check releases, choose the update channel and download source, and control how updates are installed." ,
"settings.update.status_card_title" : "Update Status" ,
"settings.update.status_card_description" : "Check for updates, review release details, and continue with download or installation when a new version is available." ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"settings.update.release_facts_title" : "Release Facts" ,
"settings.update.release_facts_description" : "Keep the current version, published release, and update type visible without collapsing the layout while states change." ,
"settings.update.progress_title" : "Progress" ,
"settings.update.progress_description" : "Watch download, installation, verification, and recovery progress here." ,
"settings.update.actions_title" : "Actions" ,
"settings.update.actions_description" : "The buttons below stay in place while the update phase changes, so the page does not jump around." ,
"settings.update.preferences_title" : "Update Preferences" ,
2026-03-15 04:35:34 +08:00
"settings.update.preferences_description" : "Choose the release channel, installer download source, installation behavior, and download parallelism." ,
"settings.update.last_checked_label" : "Last Checked" ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"settings.update.last_checked_none" : "Not checked yet." ,
"settings.update.last_checked_format" : "Last checked: {0}" ,
2026-03-15 04:35:34 +08:00
"settings.update.source_label" : "Download Source" ,
"settings.update.source_github" : "GitHub" ,
"settings.update.source_ghproxy" : "gh-proxy" ,
"settings.update.source_github_desc" : "Download release assets directly from GitHub." ,
"settings.update.source_ghproxy_desc" : "Use the gh-proxy mirror when downloading GitHub release assets." ,
"settings.update.mode_label" : "Update Mode" ,
"settings.update.mode_manual" : "Manual Update" ,
"settings.update.mode_download_then_confirm" : "Silent Download" ,
"settings.update.mode_silent_on_exit" : "Silent Install" ,
"settings.update.mode_manual_desc" : "Only check for updates. You decide when downloads and installation happen." ,
"settings.update.mode_download_then_confirm_desc" : "Download updates in the background and ask for confirmation before installing them." ,
"settings.update.mode_silent_on_exit_desc" : "Download updates in the background and install them the next time you exit the app." ,
"settings.update.channel_stable_desc" : "Stable builds prioritize reliability and are recommended for most users." ,
"settings.update.channel_preview_desc" : "Preview builds may contain newer features but can be less stable." ,
"settings.update.download_threads_label" : "Download Threads" ,
"settings.update.download_threads_desc" : "Set the number of parallel download threads for application update packages." ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"settings.update.type_label" : "Update Type" ,
"settings.update.status_idle" : "No update check has been performed yet." ,
"settings.update.status_preferences_saved" : "Update preferences saved." ,
"settings.update.status_check_failed" : "Failed to check for updates." ,
"settings.update.status_available_summary_format" : "Update available: {0} (current: {1})" ,
"settings.update.status_up_to_date_format" : "You are up to date ({0})." ,
"settings.update.status_failed" : "The update failed." ,
"settings.update.phase_idle" : "Ready" ,
"settings.update.phase_checking" : "Checking" ,
"settings.update.phase_checked" : "Checked" ,
"settings.update.phase_downloading" : "Downloading" ,
"settings.update.phase_paused_download" : "Paused (Download)" ,
"settings.update.phase_downloaded" : "Downloaded" ,
"settings.update.phase_installing" : "Installing" ,
"settings.update.phase_paused_install" : "Paused (Install)" ,
"settings.update.phase_installed" : "Installed" ,
"settings.update.phase_verifying" : "Verifying" ,
"settings.update.phase_completed" : "Completed" ,
"settings.update.phase_failed" : "Failed" ,
"settings.update.phase_recovering" : "Recovering" ,
"settings.update.phase_rolling_back" : "Rolling Back" ,
"settings.update.phase_rolled_back" : "Rolled Back" ,
"settings.update.badge_available" : "Update available" ,
"settings.update.badge_paused" : "Paused" ,
"settings.update.paused_hint" : "Paused. Resume to continue from the current state." ,
"settings.update.check_button_short" : "Check" ,
"settings.update.download_button_short" : "Download" ,
"settings.update.install_button_short" : "Install" ,
"settings.update.pause_button_short" : "Pause" ,
"settings.update.resume_button_short" : "Resume" ,
"settings.update.rollback_button_short" : "Rollback" ,
"settings.update.cancel_button_short" : "Cancel" ,
"settings.update.progress_download_detail_format" : "{0} ({1}%)" ,
"settings.update.status_resumed" : "Resume complete." ,
"settings.update.status_resume_failed" : "Resume failed." ,
"settings.update.status_resume_state_invalid" : "The resume state is invalid. Cancel and redownload, then try again." ,
"settings.update.status_recovering" : "Recovering installation..." ,
"settings.update.status_installing" : "Installing update..." ,
"settings.update.status_rolling_back" : "Rolling back..." ,
"settings.update.status_canceled" : "Update canceled." ,
"settings.update.download_progress_idle" : "Download progress: -" ,
"settings.update.download_progress_format" : "Download progress: {0:F0}%" ,
"settings.update.actions_header" : "Update Actions" ,
"settings.update.actions_desc" : "Check releases, download installer, and start update." ,
"settings.update.check_button" : "Check for Updates" ,
"settings.update.download_install_button" : "Download & Install" ,
"settings.update.status_ready" : "Ready to check for updates." ,
"settings.update.status_channel_changed" : "Update channel changed. Please check again." ,
"settings.update.status_channel_changed_format" : "Update channel switched to {0}. Please check again." ,
"settings.update.status_windows_only" : "Automatic installer update is currently available only on Windows." ,
2026-06-05 11:08:11 +08:00
"settings.update.status_checking" : "Checking update sources..." ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"settings.update.status_check_failed_format" : "Update check failed: {0}" ,
"settings.update.status_up_to_date" : "You are already on the latest version." ,
"settings.update.status_asset_missing" : "A new release is available, but no compatible installer was found." ,
2026-06-05 11:08:11 +08:00
"settings.update.status_available_format" : "New version {0} is available. Download it when you are ready." ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"settings.update.status_downloading" : "Downloading installer..." ,
"settings.update.status_downloading_delta" : "Downloading incremental update..." ,
"settings.update.status_delta_applying" : "Applying incremental update. The app will close for update." ,
"settings.update.status_delta_launch_failed" : "Failed to launch updater for incremental update." ,
"settings.update.status_download_failed_format" : "Download failed: {0}" ,
2026-06-05 11:08:11 +08:00
"settings.update.status_launching_installer" : "Download complete. You can install the update now." ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"settings.update.status_installer_missing" : "Installer file was not found after download." ,
"settings.update.status_installer_started" : "Installer started. The app will close for update." ,
"settings.update.status_elevation_cancelled" : "Administrator permission was not granted. Update was cancelled." ,
"settings.update.status_launch_failed_format" : "Failed to start installer: {0}" ,
"settings.update.type_delta" : "Incremental Update" ,
"settings.update.type_full" : "Full Installer" ,
2026-03-15 04:35:34 +08:00
"settings.update.status_downloaded_confirm" : "Update downloaded. Review it and choose when to install." ,
"settings.update.status_downloaded_exit" : "Update downloaded. It will be installed when you exit the app." ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"settings.update.description" : "Check releases, choose the update channel and download source, and control how updates are installed." ,
"settings.update.status_card_title" : "Update Status" ,
"settings.update.status_card_description" : "Check for updates, review release details, and continue with download or installation when a new version is available." ,
"settings.update.release_facts_title" : "Release Facts" ,
"settings.update.release_facts_description" : "Keep the current version, published release, and update type visible without collapsing the layout while states change." ,
"settings.update.progress_title" : "Progress" ,
"settings.update.progress_description" : "Watch download, installation, verification, and recovery progress here." ,
"settings.update.actions_title" : "Actions" ,
"settings.update.actions_description" : "The buttons below stay in place while the update phase changes, so the page does not jump around." ,
"settings.update.preferences_title" : "Update Preferences" ,
"settings.update.preferences_description" : "Choose the release channel, installer download source, installation behavior, and download parallelism." ,
"settings.update.last_checked_label" : "Last Checked" ,
"settings.update.last_checked_none" : "Not checked yet." ,
"settings.update.last_checked_format" : "Last checked: {0}" ,
"settings.update.source_label" : "Download Source" ,
"settings.update.source_github" : "GitHub" ,
"settings.update.source_ghproxy" : "gh-proxy" ,
"settings.update.source_github_desc" : "Download release assets directly from GitHub." ,
"settings.update.source_ghproxy_desc" : "Use the gh-proxy mirror when downloading GitHub release assets." ,
"settings.update.mode_label" : "Update Mode" ,
"settings.update.mode_manual" : "Manual Update" ,
"settings.update.mode_download_then_confirm" : "Silent Download" ,
"settings.update.mode_silent_on_exit" : "Silent Install" ,
"settings.update.mode_manual_desc" : "Only check for updates. You decide when downloads and installation happen." ,
"settings.update.mode_download_then_confirm_desc" : "Download updates in the background and ask for confirmation before installing them." ,
"settings.update.mode_silent_on_exit_desc" : "Download updates in the background and install them the next time you exit the app." ,
"settings.update.channel_stable_desc" : "Stable builds prioritize reliability and are recommended for most users." ,
"settings.update.channel_preview_desc" : "Preview builds may contain newer features but can be less stable." ,
"settings.update.download_threads_label" : "Download Threads" ,
"settings.update.download_threads_desc" : "Set the number of parallel download threads for application update packages." ,
"settings.update.type_label" : "Update Type" ,
"settings.update.status_idle" : "No update check has been performed yet." ,
"settings.update.status_preferences_saved" : "Update preferences saved." ,
"settings.update.status_check_failed" : "Failed to check for updates." ,
"settings.update.status_available_summary_format" : "Update available: {0} (current: {1})" ,
"settings.update.status_up_to_date_format" : "You are up to date ({0})." ,
"settings.update.status_failed" : "The update failed." ,
"settings.update.phase_idle" : "Ready" ,
"settings.update.phase_checking" : "Checking" ,
"settings.update.phase_checked" : "Checked" ,
"settings.update.phase_downloading" : "Downloading" ,
"settings.update.phase_paused_download" : "Paused (Download)" ,
"settings.update.phase_downloaded" : "Downloaded" ,
"settings.update.phase_installing" : "Installing" ,
"settings.update.phase_paused_install" : "Paused (Install)" ,
"settings.update.phase_installed" : "Installed" ,
"settings.update.phase_verifying" : "Verifying" ,
"settings.update.phase_completed" : "Completed" ,
"settings.update.phase_failed" : "Failed" ,
"settings.update.phase_recovering" : "Recovering" ,
"settings.update.phase_rolling_back" : "Rolling Back" ,
"settings.update.phase_rolled_back" : "Rolled Back" ,
"settings.update.badge_available" : "Update available" ,
"settings.update.badge_paused" : "Paused" ,
"settings.update.paused_hint" : "Paused. Resume to continue from the current state." ,
"settings.update.check_button_short" : "Check" ,
"settings.update.download_button_short" : "Download" ,
"settings.update.install_button_short" : "Install" ,
"settings.update.pause_button_short" : "Pause" ,
"settings.update.resume_button_short" : "Resume" ,
"settings.update.rollback_button_short" : "Rollback" ,
"settings.update.cancel_button_short" : "Cancel" ,
"settings.update.progress_download_detail_format" : "{0} ({1}%)" ,
"settings.update.status_resumed" : "Resume complete." ,
"settings.update.status_resume_failed" : "Resume failed." ,
"settings.update.status_resume_state_invalid" : "The resume state is invalid. Cancel and redownload, then try again." ,
"settings.update.status_recovering" : "Recovering installation..." ,
"settings.update.status_installing" : "Installing update..." ,
"settings.update.status_rolling_back" : "Rolling back..." ,
"settings.update.status_canceled" : "Update canceled." ,
2026-03-13 22:20:12 +08:00
"settings.about.update_header" : "Updates" ,
"settings.about.version_label" : "Version" ,
2026-03-15 04:35:34 +08:00
"settings.about.codename_label" : "Codename" ,
2026-03-13 22:20:12 +08:00
"settings.about.render_backend_label" : "Render Backend" ,
"settings.about.render_backend_format" : "Render Backend: {0}" ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"settings.about.project_resources_header" : "Project resources" ,
"settings.about.link_github" : "GitHub Repository" ,
"settings.about.link_issues" : "Issue Tracker" ,
"settings.about.copyright_format" : "Copyright (c) 2024-{0} Lincube" ,
"settings.notifications.title" : "Notifications" ,
"settings.notifications.description" : "Configure global notifications, interaction behavior, limits, and send test toasts." ,
"settings.notifications.section_header" : "Notifications" ,
"settings.notifications.enable_header" : "Enable notifications" ,
"settings.notifications.enable_desc" : "Turn all notification toasts on or off." ,
"settings.notifications.behavior_header" : "Behavior" ,
"settings.notifications.hover_pause_header" : "Pause on hover" ,
"settings.notifications.hover_pause_desc" : "Pause the auto-dismiss timer while the pointer is over a notification." ,
"settings.notifications.click_close_header" : "Close on click" ,
"settings.notifications.click_close_desc" : "Dismiss a notification when it is clicked." ,
"settings.notifications.max_header" : "Max per position" ,
"settings.notifications.max_desc" : "Maximum notifications shown at once for each corner or edge." ,
"settings.notifications.test_header" : "Test" ,
"settings.notifications.test_notification_header" : "Test notification" ,
"settings.notifications.test_notification_desc" : "Pick a position and severity, then send a sample notification." ,
"settings.notifications.default_position_header" : "Default position" ,
"settings.notifications.default_position_desc" : "Where notifications appear first." ,
"settings.notifications.duration_header" : "Visible duration" ,
"settings.notifications.duration_desc" : "How long notifications stay on screen." ,
"settings.notifications.position.top_left" : "Top left" ,
"settings.notifications.position.top_right" : "Top right" ,
"settings.notifications.position.top_center" : "Top center" ,
"settings.notifications.position.bottom_left" : "Bottom left" ,
"settings.notifications.position.bottom_right" : "Bottom right" ,
"settings.notifications.position.bottom_center" : "Bottom center" ,
"settings.notifications.position.center" : "Center" ,
"settings.notifications.duration.2s" : "2 seconds" ,
"settings.notifications.duration.4s" : "4 seconds" ,
"settings.notifications.duration.6s" : "6 seconds" ,
"settings.notifications.duration.8s" : "8 seconds" ,
"settings.notifications.duration.10s" : "10 seconds" ,
"settings.notifications.severity.info" : "Info" ,
"settings.notifications.severity.success" : "Success" ,
"settings.notifications.severity.warning" : "Warning" ,
"settings.notifications.severity.error" : "Error" ,
"settings.notifications.test.title_info" : "Test notification" ,
"settings.notifications.test.message_info" : "This is an informational test notification." ,
"settings.notifications.test.title_success" : "Succeeded" ,
"settings.notifications.test.message_success" : "The task completed successfully." ,
"settings.notifications.test.title_warning" : "Warning" ,
"settings.notifications.test.message_warning" : "Please review this notice." ,
"settings.notifications.test.title_error" : "Error" ,
"settings.notifications.test.message_error" : "Something went wrong. Please try again." ,
"settings.notifications.test.title_default" : "Test notification" ,
"settings.notifications.test.message_default" : "This is a test notification." ,
"settings.privacy.policy_title" : "Privacy Policy" ,
"settings.privacy.policy_description" : "LanMountainDesktop values your privacy. We do not collect personal data without your consent." ,
"settings.privacy.policy_loading" : "Loading privacy policy..." ,
"settings.privacy.policy_error" : "Failed to load privacy policy." ,
"settings.privacy.telemetry_id_title" : "Telemetry ID" ,
"settings.dev.title" : "Developer" ,
"settings.dev.description" : "Debugging, diagnostics, and local plugin development options." ,
"settings.dev.infobar.title" : "Preview and developer features" ,
"settings.dev.infobar.message" : "These options are intended for debugging, diagnostics, and local plugin development." ,
"settings.dev.mode_header" : "Developer mode" ,
"settings.dev.mode_description" : "Enable developer-focused startup helpers and diagnostics." ,
"settings.dev.three_finger_header" : "Three-finger desktop swipe" ,
"settings.dev.three_finger_description" : "Enable desktop page switching gestures when the current platform supports them." ,
"settings.dev.fused_header" : "Fused desktop experience" ,
"settings.dev.fused_description" : "Enable the fused desktop shell and its related experimental entry points." ,
"settings.dev.main_window_desktop_layer_header" : "Prevent covering other apps" ,
"settings.dev.main_window_desktop_layer_description" : "Keep the main desktop window on the desktop layer so ordinary app windows can stay above it." ,
"settings.dev.desktop_layer_conflict_title" : "Switch desktop layer mode?" ,
"settings.dev.desktop_layer_conflict_enable_main" : "Main desktop layer mode and fused desktop cannot run at the same time. Enabling this option will turn off fused desktop." ,
"settings.dev.desktop_layer_conflict_enable_fused" : "Fused desktop and main desktop layer mode cannot run at the same time. Enabling fused desktop will turn off main desktop layer mode." ,
"settings.dev.desktop_layer_conflict_confirm" : "Switch" ,
"settings.dev.desktop_layer_conflict_cancel" : "Cancel" ,
"settings.dev.plugin_path_header" : "Development plugin path" ,
"settings.dev.plugin_path_description" : "Load a local plugin output directory for iterative debugging without packaging." ,
"settings.dev.plugin_path_placeholder" : "e.g. C:\\path\\to\\plugin\\bin\\Debug\\net10.0" ,
"settings.dev.startup_args_header" : "Developer startup arguments" ,
"settings.dev.startup_args_description" : "Use these launch arguments or environment variables to start the app in development scenarios." ,
"settings.dev.cli_label" : "Command-line arguments:" ,
"settings.dev.env_label" : "Environment variables:" ,
"settings.dev.other_args_label" : "Other arguments:" ,
"settings.dev.cli_example" : "--dev-plugin <path> or -dp <path>" ,
"settings.dev.env_example" : "LMD_DEV_PLUGIN=<path>" ,
"settings.dev.other_dev_mode" : "--dev-mode / -dev Enable developer mode startup helpers." ,
"settings.dev.other_hot_reload" : "--hot-reload / -hr Enable hot reload for development builds." ,
"settings.status_bar.text_capsule_placeholder" : "Enter Markdown text…" ,
2026-03-09 22:26:42 +08:00
"settings.restart_dialog.title" : "Restart required" ,
"settings.restart_dialog.render_mode_message" : "Restart the app to switch the rendering mode from \"{0}\" to \"{1}\". Restart now?" ,
"settings.restart_dialog.restart" : "Restart now" ,
2026-03-15 17:08:07 +08:00
"settings.restart_dialog.later" : "Later" ,
2026-03-09 22:26:42 +08:00
"settings.restart_dialog.cancel" : "Cancel" ,
"settings.restart_dock.title" : "Restart required" ,
"settings.restart_dock.description" : "Some changes will take effect after restarting the app." ,
"settings.restart_dock.button" : "Restart app" ,
2026-03-04 15:22:52 +08:00
"settings.footer" : "LanMountainDesktop Settings" ,
2026-03-02 20:02:14 +08:00
"filepicker.title" : "Select wallpaper" ,
"filepicker.image_files" : "Image files" ,
"filepicker.video_files" : "Video files" ,
"common.day" : "Day" ,
"common.night" : "Night" ,
"common.back" : "Back" ,
"common.close" : "Close" ,
2026-03-05 18:46:32 +08:00
"common.unknown" : "Unknown error" ,
2026-03-02 20:02:14 +08:00
"common.recommended" : "Recommended" ,
"common.monet" : "Monet" ,
"desktop.page_index_format" : "Desktop {0}" ,
"launcher.title" : "App Launcher" ,
2026-03-19 16:27:16 +08:00
"launcher.folder" : "Folder" ,
2026-03-02 20:02:14 +08:00
"launcher.subtitle" : "Apps and folders from Windows Start Menu" ,
2026-03-07 00:58:52 +08:00
"launcher.subtitle_linux" : "Installed apps discovered from Linux desktop entries" ,
2026-03-02 20:02:14 +08:00
"launcher.empty" : "No Start Menu entries found." ,
2026-03-07 00:58:52 +08:00
"launcher.empty_linux" : "No Linux desktop entries were found." ,
2026-03-02 20:02:14 +08:00
"launcher.empty_folder" : "This folder is empty." ,
"launcher.folder_items_format" : "{0} apps" ,
2026-03-06 08:53:45 +08:00
"launcher.context.hide_icon" : "Hide Icon" ,
2026-03-06 10:32:02 +08:00
"launcher.action.hide" : "Hide" ,
2026-03-06 08:53:45 +08:00
"settings.launcher.title" : "App Launcher" ,
2026-03-14 22:45:09 +08:00
"settings.launcher.description" : "Manage hidden apps and folders in the App Launcher." ,
2026-03-06 08:53:45 +08:00
"settings.launcher.hidden_header" : "Hidden Items" ,
"settings.launcher.hidden_desc" : "Review hidden launcher entries and show them again." ,
2026-03-06 10:32:02 +08:00
"settings.launcher.hidden_hint" : "In desktop edit mode, select a launcher icon and click Hide. Hidden entries appear here." ,
2026-03-06 08:53:45 +08:00
"settings.launcher.hidden_empty" : "No hidden items." ,
2026-03-14 22:45:09 +08:00
"settings.launcher.hidden_summary_format" : "{0} hidden items" ,
2026-03-06 08:53:45 +08:00
"settings.launcher.hidden_type_folder" : "Folder" ,
2026-03-14 22:45:09 +08:00
"settings.launcher.hidden_type_shortcut" : "App" ,
2026-03-10 21:25:47 +08:00
"settings.launcher.restore_button" : "Unhide" ,
2026-04-09 19:15:06 +08:00
"settings.launcher.appearance_header" : "Appearance" ,
"settings.launcher.appearance_desc" : "Customize the appearance of the App Launcher." ,
"settings.launcher.show_tile_background_header" : "Show tile background" ,
"settings.launcher.show_tile_background_desc" : "Display a background card behind each app icon. When turned off, only the icon is shown for a cleaner look." ,
2026-03-06 22:24:59 +08:00
"settings.plugins.title" : "Plugins" ,
"settings.plugins.runtime_header" : "Plugin Runtime" ,
2026-03-09 12:27:33 +08:00
"settings.plugins.runtime_desc" : "Review plugin runtime state and load results." ,
"settings.plugins.runtime_hint" : "This page shows discovery status, load results, and runtime diagnostics for installed plugins." ,
"settings.plugins.runtime_status" : "Plugin runtime status will appear here after plugin discovery completes." ,
2026-03-14 23:52:26 +08:00
"settings.plugins.description" : "Manage installed plugins and review their runtime state." ,
"settings.plugins.initial_status" : "Refresh plugin state to see the latest installed plugins." ,
2026-03-13 22:20:12 +08:00
"settings.plugins.refresh_button" : "Refresh Plugins" ,
2026-03-14 23:52:26 +08:00
"settings.plugins.refresh_success_installed_format" : "Loaded {0} installed plugins." ,
2026-03-13 22:20:12 +08:00
"settings.plugins.refresh_success_format" : "Loaded {0} installed plugins and {1} marketplace entries." ,
"settings.plugins.refresh_failed" : "Failed to load plugin market index." ,
"settings.plugins.marketplace_header" : "Marketplace" ,
"settings.plugins.marketplace_empty" : "No marketplace plugins are available right now." ,
"settings.plugins.delete_button_short" : "Delete" ,
"settings.plugins.install_button_short" : "Install" ,
"settings.plugins.restart_required" : "Plugin changes take effect after restart." ,
"settings.plugins.toggle_unchanged_format" : "Plugin '{0}' did not change." ,
"settings.plugins.delete_failed_name_format" : "Failed to remove plugin '{0}'." ,
"settings.plugins.install_failed_name_format" : "Failed to install '{0}'." ,
2026-03-09 12:27:33 +08:00
"settings.plugins.installed_header" : "Installed Plugins" ,
2026-03-10 21:25:47 +08:00
"settings.plugins.installed_desc" : "Review installed plugins and remove them here." ,
"settings.plugins.import_header" : "Install From Package" ,
"settings.plugins.import_desc" : "Open a .laapp package and stage it into the local plugin directory." ,
"settings.plugins.restart_hint" : "Plugin installation and deletion changes take effect after restarting the app." ,
2026-03-09 12:27:33 +08:00
"settings.plugins.empty" : "No plugins found." ,
"settings.plugins.runtime_unavailable" : "Plugin runtime is not available." ,
"settings.plugins.summary_format" : "Detected {0} plugin(s); enabled {1}; loaded {2}; settings pages {3}; widgets {4}; failures {5}." ,
"settings.plugins.summary_item_format" : "{0} v{1} | {2}" ,
"settings.plugins.state.enabled" : "Enabled" ,
"settings.plugins.state.enabled_failed" : "Enabled / failed to load" ,
"settings.plugins.state.disabled" : "Disabled" ,
"settings.plugins.state.loaded" : "Loaded" ,
"settings.plugins.state.load_failed" : "Load failed" ,
"settings.plugins.toggle_on" : "Enabled" ,
"settings.plugins.toggle_off" : "Disabled" ,
"settings.plugins.toggle_result_format" : "Plugin '{0}' was {1} for the next launch. Restart the app to apply page and widget changes." ,
"settings.plugins.toggle_state_enabled" : "enabled" ,
"settings.plugins.toggle_state_disabled" : "disabled" ,
2026-03-10 21:25:47 +08:00
"settings.plugins.toggle_failed_detail_format" : "Failed to update plugin '{0}': {1}" ,
2026-03-10 00:04:33 +08:00
"settings.plugins.install_button" : "Open .laapp package" ,
"settings.plugins.install_unavailable" : "Plugin runtime is unavailable, so .laapp packages cannot be installed right now." ,
"settings.plugins.install_hint_format" : "Open a .laapp package to install it into: {0}" ,
"settings.plugins.install_picker_title" : "Select plugin package" ,
"settings.plugins.install_file_type" : ".laapp plugin package" ,
"settings.plugins.install_picker_unavailable" : "Storage provider is unavailable." ,
"settings.plugins.install_copy_failed" : "Failed to copy the selected .laapp package." ,
"settings.plugins.install_success_format" : "Installed plugin '{0}'. Restart the app to apply newly added settings pages and widgets." ,
"settings.plugins.install_failed_format" : "Failed to install plugin package: {0}" ,
2026-03-10 21:25:47 +08:00
"settings.plugins.delete_button" : "Delete plugin" ,
"settings.plugins.delete_success_format" : "Plugin '{0}' was staged for deletion. Restart the app to finish removing it." ,
"settings.plugins.delete_failed_format" : "Failed to delete plugin: {0}" ,
"settings.plugins.delete_failed_detail_format" : "Failed to delete plugin '{0}': {1}" ,
"settings.plugins.publisher_format" : "Publisher: {0}" ,
"settings.plugins.publisher_unknown" : "Unknown publisher" ,
2026-03-09 12:27:33 +08:00
"settings.plugins.source_package" : ".laapp package" ,
"settings.plugins.source_manifest" : "Loose manifest" ,
"settings.plugins.subtitle_format" : "{0} | {1} | {2}" ,
"settings.plugins.detail_format" : "Settings pages: {0} | Widgets: {1}" ,
2026-03-25 11:27:30 +08:00
"settings.nav.plugin_catalog" : "Plugin Catalog" ,
"settings.plugin_catalog.title" : "Plugin Catalog" ,
"settings.plugin_catalog.subtitle" : "Browse plugins from the official LanAirApp source and stage installs." ,
"settings.plugin_catalog.unavailable" : "Plugin runtime is not available, so the official catalog cannot be opened right now." ,
2026-03-13 22:20:12 +08:00
"settings.update.status_idle" : "No update check has been performed yet." ,
"settings.update.status_preferences_saved" : "Update preferences saved." ,
"settings.update.status_check_failed" : "Failed to check for updates." ,
"settings.update.status_available_summary_format" : "Update available: {0} (current: {1})" ,
"settings.update.status_up_to_date_format" : "You are up to date ({0})." ,
Add update contracts, IPC progress & providers
Introduce a new update subsystem: shared contracts for manifests, messages, paths and state (LanMountainDesktop.Shared.Contracts.Update). Add IPC and reporting infrastructure for installer progress (IUpdateProgressReporter, LauncherUpdateProgressIpcServer, NullUpdateProgressReporter) and integrate progress/complete reporting into UpdateEngineService. Add multiple update service components and providers (CompositeManifestProvider, GithubReleaseManifestProvider, PlondsApiManifestProvider, UpdateDownloadEngine, UpdateOrchestrator, UpdateInstallGateway, CLI launcher bridge, launcher bridge interfaces, observable helper, state store, progress subject, JSON context). Update settings and models to support UseGhProxyMirror and PLONDS/GitHub fallback logic, plus localization strings and UI/viewmodel files for update settings and progress. Misc: installer script tweak and a small change in Plonds generator. This adds end-to-end support for checking, downloading and reporting update progress and results.
2026-05-03 19:31:04 +08:00
"settings.update.force_full_label" : "Force Full Update" ,
"settings.update.force_full_desc" : "Skip incremental update and force download the full installer. Use this if incremental update fails repeatedly." ,
"settings.update.network_accel_label" : "Network Acceleration" ,
"settings.update.network_accel_desc" : "Use gh-proxy mirror to accelerate GitHub downloads. Only applies when falling back to GitHub for full updates." ,
"settings.update.redownload_button" : "Redownload" ,
"settings.update.phase_scanning" : "Scanning update source..." ,
"settings.update.phase_force_scanning" : "Force scanning update source..." ,
"settings.update.phase_locating_resources" : "Locating update resources..." ,
"settings.update.phase_force_full" : "Forcing full update..." ,
"settings.update.phase_downloading_full" : "Downloading full installer..." ,
"settings.update.phase_downloading_delta" : "Downloading incremental update..." ,
"settings.update.status_downloading_full" : "Downloading full installer..." ,
"settings.update.status_force_full_checking" : "Checking for full installer..." ,
"settings.update.status_force_full_failed" : "No full installer available." ,
"settings.update.status_downloaded_no_hash_format" : "Update downloaded. Hash: {0}" ,
"settings.update.status_redownload_no_check" : "Please check for updates first before redownloading." ,
"settings.update.status_redownloading" : "Redownloading installer..." ,
"settings.update.status_redownload_failed_format" : "Redownload failed: {0}" ,
"settings.update.source_plonds" : "PLONDS" ,
"settings.update.source_plonds_desc" : "Prefer PLONDS distribution endpoints, then automatically fallback to GitHub." ,
"settings.update.status_check_failed_plonds" : "PLONDS update check failed, falling back to GitHub..." ,
2026-03-13 22:20:12 +08:00
"settings.window.drawer_default" : "Details" ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"settings.search.placeholder" : "Search settings" ,
"settings.search.no_results" : "No matching settings" ,
"settings.search.page_hint" : "Open settings page" ,
"settings.window.more_options" : "More options" ,
"settings.window.restart_menu_item" : "Restart app" ,
"settings.window.toggle_pane" : "Toggle navigation" ,
"settings.window.back" : "Back" ,
2026-03-10 09:55:49 +08:00
"market.toolbar.search_placeholder" : "Search plugins" ,
"market.toolbar.refresh" : "Refresh" ,
"market.status.loading" : "Loading the official plugin market..." ,
"market.status.loaded_network_format" : "Loaded {0} plugin(s) from the official source." ,
"market.status.loaded_cache_format" : "Official source unavailable. Loaded {0} plugin(s) from cache. Reason: {1}" ,
"market.status.load_failed_format" : "Failed to load the plugin market: {0}" ,
"market.status.installing_format" : "Downloading and staging plugin '{0}'..." ,
"market.status.install_success_format" : "Plugin '{0}' has been staged. Restart the app to apply it." ,
"market.status.install_failed_format" : "Failed to install plugin: {0}" ,
"market.status.host_incompatible_format" : "This host is too old. Version {0} or newer is required." ,
"market.list.empty" : "The plugin market has not been loaded yet." ,
"market.list.no_results" : "No plugins match the current search." ,
"market.card.subtitle_format" : "{0} | v{1}" ,
"market.card.loaded" : "Loaded" ,
"market.card.pending_restart" : "Restart required" ,
"market.detail.placeholder" : "Select a plugin on the left to inspect details." ,
2026-03-14 23:52:26 +08:00
"market.detail.author" : "Publisher" ,
2026-03-10 09:55:49 +08:00
"market.detail.version" : "Version" ,
"market.detail.api_version" : "API Version" ,
"market.detail.min_host_version" : "Minimum Host Version" ,
"market.detail.installed_version" : "Installed Version" ,
"market.detail.not_installed" : "Not installed" ,
2026-03-10 16:35:43 +08:00
"market.detail.readme" : "README" ,
"market.detail.plugin_information" : "Plugin Information" ,
"market.detail.author_subtitle_format" : "By {0}" ,
"market.detail.package_size" : "Package Size" ,
"market.detail.published_at" : "Published At" ,
"market.detail.updated_at" : "Updated At" ,
"market.detail.tags" : "Tags" ,
"market.detail.project" : "Project" ,
"market.detail.state" : "Install State" ,
2026-03-10 09:55:49 +08:00
"market.detail.market_source" : "Market Source" ,
"market.detail.homepage" : "Homepage" ,
"market.detail.repository" : "Repository" ,
"market.detail.release_notes" : "Release Notes" ,
2026-03-14 23:52:26 +08:00
"market.detail.dependencies" : "Dependencies" ,
"market.detail.dependencies_empty" : "No shared contract dependencies were declared by this plugin." ,
"market.detail.readme_loading" : "Loading README..." ,
"market.detail.readme_empty" : "README is empty." ,
"market.detail.readme_error_format" : "README could not be loaded: {0}" ,
2026-03-10 09:55:49 +08:00
"market.detail.state.not_installed" : "Not installed" ,
"market.detail.state.update_available" : "Update available" ,
"market.detail.state.installed" : "Installed" ,
2026-05-28 10:28:31 +08:00
"market.detail.state.restart_required" : "Restart required" ,
2026-03-10 09:55:49 +08:00
"market.detail.unknown" : "Unknown" ,
"market.button.install" : "Install" ,
"market.button.update" : "Update" ,
"market.button.installed" : "Installed" ,
"market.button.installing" : "Installing..." ,
2026-03-14 23:52:26 +08:00
"market.button.restart" : "Restart to apply" ,
2026-03-02 20:02:14 +08:00
"button.component_library" : "Edit Desktop" ,
"tooltip.component_library" : "Edit Desktop" ,
"component_library.title" : "Widgets" ,
"component_library.empty" : "Swipe to pick a category, tap to open, then drag a widget onto the desktop." ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"component_library.components_none" : "No components." ,
2026-03-02 20:02:14 +08:00
"component_library.drag_hint" : "Drag to place" ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"component_library.preview_unavailable" : "Preview unavailable" ,
2026-06-07 00:40:48 +08:00
"fused_desktop.library.title" : "Add widgets" ,
"fused_desktop.library.add_button" : "Add widget" ,
"fused_desktop.library.find_more" : "Find more widgets" ,
"fused_desktop.library.empty_selection" : "Choose a category to view widgets." ,
"fused_desktop.library.component_summary_format" : "{0} - {1} x {2}" ,
2026-03-02 20:02:14 +08:00
"component.delete" : "Delete" ,
"component.edit" : "Edit" ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"component.move" : "Move" ,
"component.resize" : "Resize" ,
2026-03-14 22:45:09 +08:00
"component.editor.instance_scope" : "Changes apply to this component instance only." ,
"component.editor.info_header" : "Component Info" ,
"component.editor.id_label" : "Component ID" ,
"component.editor.placement_label" : "Placement ID" ,
"component.editor.scope_label" : "Scope" ,
"component.editor.scope_instance" : "Instance-scoped editor" ,
2026-04-10 22:13:53 +08:00
"component_category.all" : "All" ,
2026-03-02 22:46:10 +08:00
"component_category.clock" : "Clock" ,
2026-03-02 20:02:14 +08:00
"component_category.date" : "Calendar" ,
2026-03-03 04:56:04 +08:00
"component_category.weather" : "Weather" ,
"component_category.board" : "Board" ,
2026-03-03 18:26:29 +08:00
"component_category.media" : "Media" ,
2026-03-04 02:02:34 +08:00
"component_category.info" : "Info" ,
2026-03-06 00:29:40 +08:00
"component_category.calculator" : "Calculator" ,
2026-03-04 11:28:59 +08:00
"component_category.study" : "Study" ,
2026-03-17 12:30:30 +08:00
"component_category.file" : "File" ,
2026-03-02 20:02:14 +08:00
"component.date" : "Calendar" ,
"component.month_calendar" : "Month Calendar" ,
"component.lunar_calendar" : "Lunar Calendar" ,
2026-03-02 22:46:10 +08:00
"component.desktop_clock" : "Clock" ,
2026-03-03 04:56:04 +08:00
"component.weather_clock" : "Weather Clock" ,
2026-03-05 16:34:22 +08:00
"component.world_clock" : "World Clock" ,
2026-03-02 22:46:10 +08:00
"component.desktop_timer" : "Timer" ,
2026-03-03 04:56:04 +08:00
"component.desktop_weather" : "Weather" ,
"component.hourly_weather" : "Hourly Weather" ,
"component.multiday_weather" : "Multi-day Weather" ,
2026-03-03 15:09:49 +08:00
"component.extended_weather" : "Extended Weather" ,
"component.class_schedule" : "Class Schedule" ,
2026-03-03 18:26:29 +08:00
"component.music_control" : "Music Control" ,
"component.audio_recorder" : "Recorder" ,
2026-03-04 02:02:34 +08:00
"component.daily_poetry" : "Daily Poetry" ,
"component.daily_artwork" : "Daily Artwork" ,
2026-03-05 18:46:32 +08:00
"component.daily_word" : "Daily Word" ,
2026-03-06 18:38:20 +08:00
"component.daily_word_2x2" : "Daily Word 2x2" ,
2026-03-05 18:46:32 +08:00
"component.cnr_daily_news" : "CNR Headlines" ,
2026-03-06 22:24:59 +08:00
"component.ifeng_news" : "iFeng News" ,
2026-03-06 00:29:40 +08:00
"component.bilibili_hot_search" : "Bilibili Hot Search" ,
2026-03-06 22:24:59 +08:00
"component.baidu_hot_search" : "Baidu Hot Search" ,
2026-03-06 08:53:45 +08:00
"component.stcn24_forum" : "STCN 24" ,
2026-03-06 00:29:40 +08:00
"component.exchange_rate_converter" : "Exchange Rate Converter" ,
2026-03-03 04:56:04 +08:00
"component.whiteboard" : "Blackboard (Portrait)" ,
"component.blackboard_landscape" : "Blackboard (Landscape)" ,
2026-03-04 03:41:59 +08:00
"component.browser" : "Browser" ,
2026-03-16 15:19:46 +08:00
"component.office_recent_documents" : "Recent Documents" ,
2026-03-19 16:27:16 +08:00
"whiteboard.settings.desc" : "Each blackboard keeps its own note history and saves it independently." ,
"whiteboard.settings.retention.title" : "Note retention" ,
"whiteboard.settings.retention.desc" : "Choose how long this blackboard should keep saved notes before expired data is removed automatically." ,
"whiteboard.settings.retention.option" : "{0} days" ,
"whiteboard.settings.instance_scope" : "This retention setting is stored per blackboard component instance." ,
"office_recent_documents.settings.desc" : "Choose which Windows and Office sources this widget should scan for recent documents." ,
"office_recent_documents.settings.sources_title" : "Recent document sources" ,
"office_recent_documents.settings.sources_desc" : "You can combine multiple sources. Registry selection also keeps the Office interop MRU fallback available." ,
"office_recent_documents.settings.source.registry" : "Office registry MRU" ,
"office_recent_documents.settings.source.recent_folders" : "Windows Recent folders" ,
"office_recent_documents.settings.source.jump_lists" : "Windows Jump Lists" ,
"office_recent_documents.settings.hint" : "If you disable all sources, this widget will stay empty until at least one source is enabled again." ,
2026-03-19 00:17:21 +08:00
"component.removable_storage" : "Removable Storage" ,
2026-03-02 22:46:10 +08:00
"component.holiday_calendar" : "Holiday Calendar" ,
2026-03-04 11:28:59 +08:00
"component.study_environment" : "Environment" ,
2026-03-04 20:58:17 +08:00
"component.study_session_control" : "Study Session Control" ,
2026-03-05 00:40:49 +08:00
"component.study_session_history" : "Session History" ,
2026-03-04 11:28:59 +08:00
"component.study_noise_curve" : "Noise Curve" ,
2026-03-04 20:03:14 +08:00
"component.study_noise_distribution" : "Noise Distribution" ,
2026-03-04 19:16:51 +08:00
"component.study_score_overview" : "Study Score Overview" ,
2026-03-04 20:03:14 +08:00
"component.study_deduction_reasons" : "Deduction Reasons" ,
"component.study_interrupt_density" : "Interrupt Density" ,
2026-03-05 16:34:22 +08:00
"desktop_clock.settings.title" : "Clock Settings" ,
"desktop_clock.settings.desc" : "Choose the time zone for the single clock." ,
"desktop_clock.settings.timezone_label" : "Time Zone" ,
"desktop_clock.settings.second_mode_label" : "Second Hand" ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"clock.settings.desc" : "Configure the time zone and second hand animation." ,
"clock.settings.timezone" : "Time Zone" ,
"clock.settings.second_mode_label" : "Second Hand" ,
2026-03-05 16:34:22 +08:00
"clock.second_mode.tick" : "Tick" ,
"clock.second_mode.sweep" : "Sweep" ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"clockairapp.title" : "Clock" ,
"clockairapp.subtitle" : "World clock, stopwatch and timer" ,
"clockairapp.tab.world" : "World" ,
"clockairapp.tab.stopwatch" : "Stopwatch" ,
"clockairapp.tab.timer" : "Timer" ,
"clockairapp.tab.settings" : "Settings" ,
"clockairapp.world.local" : "Local time" ,
"clockairapp.world.add" : "Add" ,
"clockairapp.world.search" : "Search city or time zone" ,
"clockairapp.world.count" : "{0} cities" ,
"clockairapp.action.start" : "Start" ,
"clockairapp.action.pause" : "Pause" ,
"clockairapp.action.reset" : "Reset" ,
"clockairapp.action.remove" : "Remove" ,
"clockairapp.action.move_up" : "Move up" ,
"clockairapp.action.move_down" : "Move down" ,
"clockairapp.stopwatch.hint" : "Lap timing stays in this window session." ,
"clockairapp.stopwatch.lap" : "Lap" ,
"clockairapp.stopwatch.lap_format" : "Lap {0} {1}" ,
"clockairapp.timer.hint" : "Choose a preset or enter custom minutes." ,
"clockairapp.timer.apply" : "Apply" ,
"clockairapp.timer.minutes" : "Minutes" ,
"clockairapp.timer.finished" : "Timer finished" ,
"clockairapp.timer.duration_status" : "Duration {0}" ,
"clockairapp.timer.invalid" : "Enter a valid minute value." ,
"clockairapp.settings.title" : "Clock settings" ,
"clockairapp.settings.time_format" : "Time format" ,
"clockairapp.settings.startup_tab" : "Startup page" ,
"clockairapp.settings.show_seconds" : "Show seconds" ,
"clockairapp.settings.activate_timer" : "Activate window when timer finishes" ,
"clockairapp.settings.time_format.system" : "Follow system" ,
"clockairapp.settings.time_format.24h" : "24-hour" ,
"clockairapp.settings.time_format.12h" : "12-hour" ,
"clockairapp.settings.startup.last" : "Last used" ,
2026-03-04 02:02:34 +08:00
"poetry.widget.loading_content" : "Loading poetry..." ,
"poetry.widget.loading_author" : "Loading..." ,
"poetry.widget.fetch_failed" : "Poetry fetch failed" ,
"poetry.widget.fallback_content" : "Daily poetry is temporarily unavailable." ,
"poetry.widget.fallback_author" : "Try again later" ,
"poetry.widget.unknown_author" : "Unknown" ,
"artwork.widget.loading" : "Loading..." ,
"artwork.widget.loading_title" : "Daily Artwork" ,
"artwork.widget.loading_subtitle" : "Fetching today's masterpiece" ,
"artwork.widget.fetch_failed" : "Artwork fetch failed" ,
"artwork.widget.fallback_title" : "Daily Artwork" ,
2026-03-04 16:43:10 +08:00
"artwork.widget.fallback_artist" : "Recommendation service unavailable" ,
2026-03-04 02:02:34 +08:00
"artwork.widget.fallback_year" : "Try again later" ,
"artwork.widget.unknown_artist" : "Unknown artist" ,
2026-03-05 18:46:32 +08:00
"dailyword.widget.loading" : "Loading..." ,
"dailyword.widget.loading_word" : "daily word" ,
"dailyword.widget.loading_pronunciation" : "Fetching pronunciation..." ,
"dailyword.widget.loading_meaning" : "Fetching meaning..." ,
"dailyword.widget.loading_example" : "Fetching example sentence..." ,
"dailyword.widget.loading_example_translation" : "Loading..." ,
"dailyword.widget.fetch_failed" : "Daily word fetch failed" ,
"dailyword.widget.fallback_word" : "daily word" ,
"dailyword.widget.fallback_pronunciation" : "Pronunciation unavailable" ,
"dailyword.widget.fallback_meaning" : "Youdao dictionary is temporarily unavailable." ,
"dailyword.widget.fallback_example" : "Tap the refresh button and try again." ,
"dailyword.widget.fallback_example_translation" : "It will retry when network recovers." ,
2026-03-06 18:38:20 +08:00
"dailyword2x2.widget.tap_to_show" : "Tap to reveal meaning" ,
2026-03-05 18:46:32 +08:00
"cnrnews.widget.loading" : "Loading..." ,
"cnrnews.widget.loading_title" : "Fetching CNR headlines" ,
"cnrnews.widget.loading_subtitle" : "Please wait" ,
"cnrnews.widget.fetch_failed" : "News fetch failed" ,
"cnrnews.widget.fallback_title" : "CNR news is temporarily unavailable" ,
"cnrnews.widget.fallback_subtitle" : "Tap refresh and try again" ,
2026-03-05 20:17:28 +08:00
"cnrnews.widget.hot_label" : "Hot" ,
2026-03-06 00:29:40 +08:00
"bilihot.widget.brand" : "bilibili hot search" ,
"bilihot.widget.top_right_label" : "bilibili热搜" ,
"bilihot.widget.search_entry" : "Search" ,
"bilihot.widget.search_placeholder" : "Search trending topics" ,
"bilihot.widget.loading" : "Loading..." ,
"bilihot.widget.loading_item" : "Loading..." ,
"bilihot.widget.fetch_failed" : "Hot search fetch failed" ,
"bilihot.widget.fallback_item" : "No hot search data" ,
"bilihot.widget.more_hot" : "More hot search" ,
2026-03-06 22:24:59 +08:00
"baiduhot.widget.brand" : "Baidu Hot Search" ,
"baiduhot.widget.loading" : "Loading..." ,
"baiduhot.widget.loading_item" : "Loading..." ,
"baiduhot.widget.fetch_failed" : "Hot search fetch failed" ,
"baiduhot.widget.fallback_item" : "No hot search data" ,
"baiduhot.widget.refresh_tooltip" : "Refresh" ,
"ifeng.widget.brand" : "iFeng News" ,
"ifeng.widget.loading" : "Loading..." ,
"ifeng.widget.loading_item" : "Loading..." ,
"ifeng.widget.fetch_failed" : "News fetch failed" ,
"ifeng.widget.fallback_item" : "No news data" ,
"ifeng.widget.refresh_tooltip" : "Refresh" ,
2026-03-06 10:32:02 +08:00
"dailyword.settings.title" : "Daily word settings" ,
"dailyword.settings.desc" : "Configure auto refresh and refresh interval." ,
"dailyword.settings.auto_refresh_label" : "Auto refresh" ,
"dailyword.settings.auto_refresh_enabled" : "Enable auto refresh" ,
"dailyword.settings.frequency_label" : "Refresh interval" ,
"bilihot.settings.title" : "Bilibili hot search settings" ,
"bilihot.settings.desc" : "Configure auto refresh and refresh interval." ,
"bilihot.settings.auto_refresh_label" : "Auto refresh" ,
"bilihot.settings.auto_refresh_enabled" : "Enable auto refresh" ,
"bilihot.settings.frequency_label" : "Refresh interval" ,
2026-03-06 22:24:59 +08:00
"baiduhot.settings.title" : "Baidu hot search settings" ,
"baiduhot.settings.desc" : "Configure source, auto refresh and refresh interval." ,
"baiduhot.settings.source_label" : "Data source" ,
"baiduhot.settings.source_official" : "Official Source" ,
"baiduhot.settings.source_rss" : "Third-party RSS" ,
"baiduhot.settings.auto_refresh_label" : "Auto refresh" ,
"baiduhot.settings.auto_refresh_enabled" : "Enable auto refresh" ,
"baiduhot.settings.frequency_label" : "Refresh interval" ,
"ifeng.settings.title" : "iFeng news settings" ,
"ifeng.settings.desc" : "Configure channel, auto refresh and refresh interval." ,
"ifeng.settings.channel_label" : "News channel" ,
"ifeng.settings.channel_comprehensive" : "Comprehensive" ,
"ifeng.settings.channel_mainland" : "China Mainland" ,
"ifeng.settings.channel_taiwan" : "Taiwan" ,
"ifeng.settings.auto_refresh_label" : "Auto refresh" ,
"ifeng.settings.auto_refresh_enabled" : "Enable auto refresh" ,
"ifeng.settings.frequency_label" : "Refresh interval" ,
2026-03-06 10:32:02 +08:00
"refresh.frequency.5m" : "5 minutes" ,
"refresh.frequency.10m" : "10 minutes" ,
"refresh.frequency.12m" : "12 minutes" ,
"refresh.frequency.15m" : "15 minutes" ,
"refresh.frequency.20m" : "20 minutes" ,
"refresh.frequency.30m" : "30 minutes" ,
"refresh.frequency.40m" : "40 minutes" ,
"refresh.frequency.1h" : "1 hour" ,
"refresh.frequency.3h" : "3 hours" ,
"refresh.frequency.6h" : "6 hours" ,
"refresh.frequency.12h" : "12 hours" ,
"refresh.frequency.24h" : "24 hours" ,
"weather.widget.settings.title" : "Weather widget settings" ,
"weather.widget.settings.desc" : "Configure auto refresh and refresh interval for all weather widgets." ,
"weather.widget.settings.auto_refresh_label" : "Auto refresh" ,
"weather.widget.settings.auto_refresh_enabled" : "Enable auto refresh" ,
"weather.widget.settings.frequency_label" : "Refresh interval" ,
"weather.widget.settings.frequency_10m" : "10 minutes" ,
"weather.widget.settings.frequency_12m" : "12 minutes" ,
"weather.widget.settings.frequency_15m" : "15 minutes" ,
"weather.widget.settings.frequency_30m" : "30 minutes" ,
"weather.widget.settings.frequency_1h" : "1 hour" ,
"weather.widget.settings.frequency_3h" : "3 hours" ,
2026-03-06 08:53:45 +08:00
"stcn24.widget.loading" : "Loading..." ,
"stcn24.widget.loading_item" : "Loading..." ,
"stcn24.widget.fetch_failed" : "Forum posts fetch failed" ,
"stcn24.widget.fallback_item" : "No posts" ,
2026-03-06 10:32:02 +08:00
"stcn24.settings.title" : "STCN 24 settings" ,
"stcn24.settings.desc" : "Configure information source, auto refresh and refresh interval." ,
"stcn24.settings.source_label" : "Information source" ,
"stcn24.settings.source_latest_created" : "Latest posts" ,
"stcn24.settings.source_latest_activity" : "Latest activity" ,
"stcn24.settings.source_most_replies" : "Most replies" ,
"stcn24.settings.source_earliest_created" : "Earliest posts" ,
"stcn24.settings.source_earliest_activity" : "Earliest activity" ,
"stcn24.settings.source_least_replies" : "Least replies" ,
"stcn24.settings.source_frontpage_latest" : "Frontpage latest" ,
"stcn24.settings.source_frontpage_earliest" : "Frontpage earliest" ,
"stcn24.settings.auto_refresh_label" : "Auto refresh" ,
"stcn24.settings.auto_refresh_enabled" : "Enable auto refresh" ,
"stcn24.settings.frequency_label" : "Refresh interval" ,
"stcn24.settings.frequency_5m" : "5 minutes" ,
"stcn24.settings.frequency_10m" : "10 minutes" ,
"stcn24.settings.frequency_20m" : "20 minutes" ,
"stcn24.settings.frequency_30m" : "30 minutes" ,
"stcn24.settings.frequency_1h" : "1 hour" ,
"stcn24.settings.frequency_3h" : "3 hours" ,
2026-03-06 00:29:40 +08:00
"exchange.widget.loading" : "Loading exchange rates..." ,
"exchange.widget.fetch_failed" : "Exchange rate fetch failed" ,
2026-03-05 21:21:03 +08:00
"cnrnews.settings.title" : "CNR Settings" ,
"cnrnews.settings.desc" : "Configure auto-rotation and refresh interval." ,
"cnrnews.settings.auto_rotate_label" : "Auto-rotation" ,
"cnrnews.settings.auto_rotate_enabled" : "Enable auto-rotation" ,
"cnrnews.settings.frequency_label" : "Rotation interval" ,
"cnrnews.settings.frequency_5m" : "5 minutes" ,
"cnrnews.settings.frequency_10m" : "10 minutes" ,
"cnrnews.settings.frequency_40m" : "40 minutes" ,
"cnrnews.settings.frequency_1h" : "1 hour" ,
"cnrnews.settings.frequency_12h" : "12 hours" ,
"cnrnews.settings.frequency_24h" : "24 hours" ,
2026-03-05 12:34:39 +08:00
"artwork.settings.title" : "Daily Artwork Settings" ,
"artwork.settings.desc" : "Switch the data source used by Daily Artwork." ,
"artwork.settings.source_label" : "Mirror Source" ,
"artwork.settings.source_domestic" : "Domestic Mirror" ,
"artwork.settings.source_overseas" : "Overseas Mirror" ,
"artwork.settings.source_status_domestic" : "Current source: Domestic mirror (optimized for China network)" ,
"artwork.settings.source_status_overseas" : "Current source: Overseas mirror (art museum recommendations)" ,
2026-03-03 18:26:29 +08:00
"music.widget.unsupported" : "Music control is not supported on this platform" ,
"music.widget.unsupported_hint" : "This widget requires Windows SMTC" ,
2026-03-04 02:02:34 +08:00
"music.widget.no_session" : "No music source" ,
"music.widget.no_session_hint" : "Install QQ Music / KuGou / NetEase Cloud Music from the app store" ,
2026-03-03 18:26:29 +08:00
"music.widget.open_player" : "Open player" ,
"music.widget.unknown_title" : "Unknown title" ,
"music.widget.unknown_artist" : "Unknown artist" ,
"music.widget.status.opened" : "Opened" ,
"music.widget.status.changing" : "Changing" ,
"music.widget.status.stopped" : "Stopped" ,
"music.widget.status.playing" : "Playing" ,
"music.widget.status.paused" : "Paused" ,
"recording.widget.title" : "Recorder" ,
"recording.widget.hint.ready" : "Tap red button to record" ,
"recording.widget.hint.recording" : "Recording" ,
"recording.widget.hint.paused" : "Paused" ,
"recording.widget.hint.unsupported" : "Microphone is unavailable" ,
"recording.widget.hint.error" : "Recording failed" ,
"recording.widget.hint.saved_format" : "Saved {0}" ,
2026-03-04 02:02:34 +08:00
"recording.widget.save_picker_title" : "Save recording file" ,
"recording.widget.save_picker_type" : "WAV audio" ,
2026-03-31 01:16:53 +08:00
"study.widget.disabled_title" : "Study Feature Disabled" ,
"study.widget.disabled_hint" : "Please enable in Settings" ,
2026-03-04 11:28:59 +08:00
"study.environment.status_label" : "Environment" ,
"study.environment.status.initializing" : "Initializing" ,
"study.environment.status.ready" : "Ready" ,
"study.environment.status.quiet" : "Quiet" ,
"study.environment.status.noisy" : "Noisy" ,
"study.environment.status.paused" : "Paused" ,
"study.environment.status.error" : "Error" ,
"study.environment.status.unsupported" : "Unsupported" ,
"study.environment.value.unavailable" : "--" ,
"study.environment.value.display_format" : "{0:F1} dB" ,
"study.environment.value.dbfs_format" : "{0:F1} dBFS" ,
"study.environment.settings.title" : "Environment Widget Settings" ,
"study.environment.settings.desc" : "Configure real-time noise value display on the right side." ,
"study.environment.settings.show_display_db" : "Show display dB" ,
"study.environment.settings.show_dbfs" : "Show dBFS" ,
"study.environment.settings.hint" : "At least one display mode must stay enabled." ,
2026-03-19 00:17:21 +08:00
"removable_storage.settings.desc" : "Show a connected USB drive with quick open and eject actions." ,
"removable_storage.settings.behavior_title" : "Behavior" ,
"removable_storage.settings.behavior_desc" : "The widget automatically watches for removable drives and switches to the newest inserted USB drive." ,
"removable_storage.action.open" : "Open" ,
"removable_storage.action.eject" : "Eject" ,
"removable_storage.widget.default_name" : "Removable Drive" ,
"removable_storage.widget.empty_title" : "No device inserted" ,
"removable_storage.widget.empty_subtitle" : "Insert a USB drive to show it here." ,
"removable_storage.widget.empty_hint" : "Buttons stay disabled until a removable device is inserted." ,
"removable_storage.widget.ready" : "Ready to open or eject." ,
"removable_storage.widget.ejecting" : "Ejecting drive..." ,
"removable_storage.widget.eject_failed" : "Could not eject this drive. Close any files on it and try again." ,
"removable_storage.widget.open_failed" : "Failed to open this drive." ,
"removable_storage.widget.refresh_failed" : "Drive list refresh failed." ,
2026-03-04 20:58:17 +08:00
"study.session_control.action.start" : "Start Study Session" ,
"study.session_control.action.stop" : "Stop Study Session" ,
"study.session_control.idle_hint" : "Tap the right button to start" ,
"study.session_control.report_preview" : "Preview Report" ,
"study.session_control.report_confirm_hint" : "Tap right button to confirm" ,
"study.session_control.running_elapsed_format" : "Elapsed {0}" ,
"study.session_control.last_session_format" : "Last {0}" ,
"study.session_control.start_failed" : "Unable to start session" ,
"study.session_control.stop_failed" : "Unable to stop session" ,
2026-03-05 00:40:49 +08:00
"study.session_history.title" : "Session History" ,
"study.session_history.empty" : "No session history" ,
"study.session_history.select_failed" : "Unable to switch session" ,
"study.session_history.rename_failed" : "Unable to rename session" ,
"study.session_history.delete_failed" : "Unable to delete session" ,
"study.session_history.rename_placeholder" : "Enter session name" ,
"study.session_history.rename_confirm" : "Confirm rename" ,
"study.session_history.rename_cancel" : "Cancel rename" ,
"study.session_history.loading" : "Loading data..." ,
"study.session_history.loaded" : "Data loaded" ,
"study.session_history.duration_format" : "{0:hh\\:mm\\:ss}" ,
"study.session_history.meta_format" : "{0} · Avg {1:F1}" ,
"study.session_history.action.view" : "View" ,
"study.session_history.action.rename" : "Rename" ,
"study.session_history.action.delete" : "Delete" ,
"study.session_history.dialog.rename_title" : "Rename Session" ,
"study.session_history.dialog.rename_message" : "Enter a new name for \"{0}\"." ,
"study.session_history.dialog.delete_title" : "Delete Session" ,
"study.session_history.dialog.delete_message" : "Delete \"{0}\"? This cannot be undone." ,
"study.session_history.dialog.delete_confirm" : "Delete" ,
2026-03-04 11:28:59 +08:00
"study.noise_curve.value_format" : "{0:F1} dB" ,
"study.noise_curve.axis.now" : "Now" ,
2026-03-04 20:03:14 +08:00
"study.noise_distribution.title" : "Noise Level Distribution" ,
"study.noise_distribution.mode.realtime" : "Realtime" ,
"study.noise_distribution.mode.session" : "Session" ,
"study.noise_distribution.summary.mainly_format" : "Mainly: {0}" ,
"study.noise_distribution.summary.latest_format" : "Latest: {0}" ,
"study.noise_distribution.summary.compact_format" : "Main {0} · New {1}" ,
"study.noise_distribution.level.quiet" : "Quiet" ,
"study.noise_distribution.level.normal" : "Normal" ,
"study.noise_distribution.level.noisy" : "Noisy" ,
"study.noise_distribution.level.extreme" : "Extreme" ,
"study.noise_distribution.axis.extreme" : "Extreme" ,
"study.noise_distribution.axis.noisy" : "Noisy" ,
"study.noise_distribution.axis.normal" : "Normal" ,
"study.noise_distribution.axis.quiet" : "Quiet" ,
"study.noise_distribution.axis.now" : "Now" ,
2026-03-04 19:16:51 +08:00
"study.score_overview.title" : "Study Score" ,
"study.score_overview.mode.realtime" : "Realtime" ,
"study.score_overview.mode.session" : "Session" ,
"study.score_overview.current" : "Current" ,
"study.score_overview.average" : "Average" ,
"study.score_overview.minimum" : "Minimum" ,
"study.score_overview.maximum" : "Maximum" ,
"study.score_overview.average_short" : "Avg" ,
"study.score_overview.minimum_short" : "Min" ,
"study.score_overview.maximum_short" : "Max" ,
"study.score_overview.unavailable" : "--" ,
2026-03-04 20:03:14 +08:00
"study.deduction.title" : "Deduction Reasons" ,
"study.deduction.mode.realtime" : "Realtime" ,
"study.deduction.mode.session" : "Session" ,
"study.deduction.reason.sustained" : "Sustained Noise" ,
"study.deduction.reason.time" : "Over-threshold Time" ,
"study.deduction.reason.segment" : "Interrupt Frequency" ,
"study.deduction.reason.sustained_short" : "Sustained" ,
"study.deduction.reason.time_short" : "Duration" ,
"study.deduction.reason.segment_short" : "Interrupt" ,
"study.deduction.metric.sustained_format" : "p50 {0:F1} dBFS" ,
"study.deduction.metric.sustained_short_format" : "p50 {0:F1}" ,
"study.deduction.metric.time_format" : "over {0:F1}%" ,
"study.deduction.metric.time_short_format" : "{0:F1}%" ,
"study.deduction.metric.segment_format" : "{0:F1}/min" ,
"study.deduction.metric.segment_short_format" : "{0:F1}/m" ,
"study.deduction.loss_format" : "-{0:F1}" ,
"study.deduction.total_loss_format" : "Total -{0:F1}" ,
"study.deduction.total_score_format" : "Score {0:F1}" ,
"study.deduction.total_loss_unavailable" : "Total {0}" ,
"study.deduction.total_score_unavailable" : "Score {0}" ,
"study.deduction.unavailable" : "--" ,
"study.interrupt_density.title" : "Interrupt Density" ,
"study.interrupt_density.mode.realtime" : "Realtime" ,
"study.interrupt_density.mode.session" : "Session" ,
"study.interrupt_density.unit" : "/min" ,
"study.interrupt_density.segment_count" : "Interrupts" ,
"study.interrupt_density.segment_count_short" : "Count" ,
"study.interrupt_density.duration" : "Duration" ,
"study.interrupt_density.duration_short" : "Time" ,
"study.interrupt_density.density_value_format" : "{0:F1}" ,
"study.interrupt_density.segment_count_value_format" : "{0}" ,
"study.interrupt_density.level_format" : "Level {0}" ,
"study.interrupt_density.level.calm" : "Calm" ,
"study.interrupt_density.level.normal" : "Normal" ,
"study.interrupt_density.level.frequent" : "Frequent" ,
"study.interrupt_density.level.severe" : "Severe" ,
"study.interrupt_density.threshold_format" : "Penalty threshold {0:F1}/min" ,
"study.interrupt_density.unavailable" : "--" ,
2026-03-02 20:02:14 +08:00
"desktop.add_page" : "Add page" ,
"desktop.delete_page" : "Delete page" ,
2026-03-23 12:14:56 +08:00
"desktop.delete_page_confirm.title" : "Confirm Delete Page" ,
"desktop.delete_page_confirm.message" : "Are you sure you want to delete the current page?\n\nThis will remove all components on this page and cannot be undone." ,
"desktop.delete_page_confirm.primary" : "Delete" ,
"desktop.delete_page_confirm.close" : "Cancel" ,
2026-03-02 20:02:14 +08:00
"placement.fill" : "Fill" ,
"placement.fit" : "Fit" ,
"placement.stretch" : "Stretch" ,
"placement.center" : "Center" ,
2026-03-11 15:14:08 +08:00
"placement.tile" : "Tile" ,
2026-03-12 12:25:22 +08:00
"single_instance.notice.title" : "App already running" ,
"single_instance.notice.description" : "The app is already running. There is no need to click multiple times to open it." ,
2026-03-17 12:30:30 +08:00
"single_instance.notice.button" : "OK" ,
2026-05-28 10:28:31 +08:00
"market.status.install_success_restart_format" : "Plugin '{0}' has been staged. Restart the app to apply it." ,
2026-03-29 15:34:17 +08:00
"market.dialog.restart_message_format" : "Plugin '{0}' has been installed successfully.\n\nTo use this plugin, you need to restart the application now.\n\nWould you like to restart?" ,
"zhijiaohub.settings.source" : "Image Source" ,
"zhijiaohub.settings.classisland" : "ClassIsland Gallery" ,
"zhijiaohub.settings.sectl" : "SECTL Gallery" ,
2026-04-04 02:13:26 +08:00
"zhijiaohub.settings.rinlit" : "Rin's Gallery" ,
"zhijiaohub.settings.jiangtokoto" : "Jiangtokoto Memes" ,
"zhijiaohub.settings.source_desc" : "Select the image source. ClassIsland Gallery contains fun moments from the ClassIsland community, SECTL Gallery contains content from the SECTL community, Rin's Gallery contains content from Rin's community, Jiangtokoto Memes contains rich meme resources." ,
2026-03-29 15:34:17 +08:00
"zhijiaohub.settings.mirror_source" : "Mirror Acceleration" ,
"zhijiaohub.settings.mirror_direct" : "Direct (GitHub)" ,
"zhijiaohub.settings.mirror_ghproxy" : "Mirror Acceleration (Recommended)" ,
"zhijiaohub.settings.mirror_source_desc" : "If images load slowly or fail, try using mirror acceleration. Mirror acceleration speeds up GitHub access through third-party proxy services." ,
"zhijiaohub.settings.refresh" : "Refresh Settings" ,
"zhijiaohub.settings.auto_refresh" : "Auto Refresh" ,
"zhijiaohub.settings.auto_refresh_desc" : "Automatically refresh the image list periodically." ,
"zhijiaohub.settings.interval" : "Refresh Interval (minutes)" ,
"zhijiaohub.settings.about" : "About" ,
2026-04-07 12:18:15 +08:00
"zhijiaohub.settings.about_desc" : "ZhiJiaoHub displays interesting images from the educational technology community. Images are fetched from GitHub repositories and cached locally." ,
"power.menu" : "Power" ,
"power.title" : "Power" ,
"power.back" : "Back" ,
"power.shutdown" : "Shutdown" ,
"power.restart" : "Restart" ,
"power.logout" : "Log Out" ,
"power.sleep" : "Sleep" ,
"power.lock_screen" : "Lock Screen" ,
"power.shutdown_confirm_title" : "Shutdown Confirmation" ,
"power.shutdown_confirm_message" : "Are you sure you want to shut down this computer? Unsaved data may be lost." ,
"power.restart_confirm_title" : "Restart Confirmation" ,
"power.restart_confirm_message" : "Are you sure you want to restart this computer? Unsaved data may be lost." ,
"power.logout_confirm_title" : "Log Out Confirmation" ,
"power.logout_confirm_message" : "Are you sure you want to log out?" ,
"power.sleep_confirm_title" : "Sleep Confirmation" ,
"power.sleep_confirm_message" : "Are you sure you want to put the computer to sleep?" ,
"power.confirm_yes" : "Yes" ,
合并对设置系统的更新 (#11)
* Add Windows system chrome patchers (Harmony)
Introduce support for toggling the system chrome on Windows using Harmony patchers. Adds Lib.Harmony.Thin to package props and project, new patcher infrastructure (ChromePatchState, PatcherEntrance) and two Harmony patches that disable FluentAvalonia's Windows chrome when configured. Program.cs now loads the chrome setting and installs patchers conditionally on Windows/x86-x64. Settings viewmodel and view updated: expose IsWindowsOs, require restart on appearance changes, migrate SettingsWindow to FAAppWindow and adapt titlebar/layout (include Windows caption placeholder and footer menu items). Also add a .gitkeep and a build log file.
* Refactor settings window UI and theming
Improve theming and layout for the Settings window and related services.
- MaterialSurfaceService: add special material parameters for SettingsWindowBackground (lower alpha, no blur) and avoid hot-switching real backdrops for non-settings windows.
- GlassEffectService: add AdaptiveSettingsWindowTintBrush + ResolveSettingsWindowTintAlpha to provide optional content tinting tied to system material mode.
- SettingsWindowService: refactor theme application into ApplyThemeVariantAndResources, ensure settings window material is applied at show/activate times, and tidy theme/resource application flow.
- SettingsWindow.axaml / .axaml.cs: restructure title bar (separate Grid.Row=0 border) and FANavigationView host, add pane-footer toggle button for :minimal layout, use dynamic corner radius resource, and update toggle/visibility/icon logic and responsive layout code.
- SettingsPages: remove some IconText usages and adjust margins; use DesignCornerRadiusLg for update card corner radius.
- Add NuGet.Config to set local globalPackagesFolder and ignore .nuget/packages in .gitignore.
These changes aim to improve visuals, avoid backdrop overdraw, and make the settings window behavior consistent across themes and layouts.
* Add localization and localize settings pages
Add many new localization keys (en-US and zh-CN) for notifications, developer tools, about page, status bar, and video wallpaper. Update Notification, Dev, About and StatusBar view models to use LocalizationService, expose localized ObservableProperties, and refresh localized text at construction. Localize selection options and test notification texts, and fix notification severity handling. Wire up XAML to the new localized properties (About/Dev/StatusBar pages) and update the settings page title for notifications. Also adjust copyright line generation and replace hardcoded placeholders with bound Watermark properties.
* Redesign settings window with fluent shell & search
Rebuild the settings window as a Fluent shell: adds a custom 48-DIP titlebar with Back, pane toggle, icon/title, search box, restart/more menu, and caption-button spacer; moves compact pane toggle into the titlebar and preserves FANavigationView as the primary navigation surface. Introduces a SettingsSearchService (with UI AutoComplete integration, search indexing, navigation-by-result, and search result highlighting) plus focused tests for search filtering and theme material normalization. Adds navigation history/back stack, updates SettingsViewModels for new bindings and localization keys, and updates General/Apearance pages to expose new strings and options. Implements an "auto" system material mode: default in AppSettingsSnapshot, new MaterialAuto constants and normalization/resolution logic in ThemeAppearanceValues, WindowMaterialService and MaterialSurfaceService adjustments to prefer Mica on Win11 and Acrylic on Win10 using TransparencyLevelHint. GlassEffectService and AppearanceThemeService updated to use effective material mode and to track live theme state changes. Adds localization entries (en-US, zh-CN), spec/tasks docs, and other UI/style tweaks to support the redesign.
* fix.修折叠与展开按钮
* Add OOBE startup presentation and settings merge
Introduce a new OOBE step for "Startup & Presentation" that exposes startup and UI preferences in OobeWindow (toggles for taskbar, slide/fade transitions, fused popup, and autostart). Add HostAppSettingsOobeMerger to read/write Host settings.json (PascalCase fields) and MergeStartupPresentation behavior, plus LauncherWindowsStartupService to sync the current Launcher into the Windows Run key on Windows. Wire UI handlers, persist choices on Next, and load defaults when entering the step. Include unit tests for the merger, adjust SettingsWindow navigation pane/toggle handling, and update docs/LAUNCHER.md to describe the new OOBE step and implementation files.
* Move whiteboard persistence to file storage
Switch whiteboard note storage from legacy DB rows to per-note JSON files and add migration support. Update WhiteboardNoteSnapshot schema (version bump, viewport, canvas, expires, PathSvgData) and change IWhiteboardNotePersistenceService.SaveNote to return bool to surface write failures (e.g. read-only files). Implement file-based WhiteboardNotePersistenceService with legacy DB migration/cleanup, retention handling, and logging. Add comprehensive unit tests for persistence, stroke path builder, SVG import and viewport helper. Also add ThirdParty/DotNetCampus.InkCanvas project and reference it in the main csproj, and bump PostHog package to 2.6.0.
* Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
* Use MaterialColorSnapshot in appearance flow
Introduce unified material/color spec and tests, and refactor appearance plumbing to use MaterialColorSnapshot as the single source of truth. Add .trae material-color-service spec/checklist/tasks and integration/unit tests for plugin mapping and appearance VM behavior. AppearanceChangedEvent extended with new appearance change flags and HasChanged logic. ComponentEditorMaterialThemeAdapter rewritten to accept MaterialColorSnapshot and derive palette from snapshot data. Simplify AppearanceSettingsPageViewModel and related view code: remove legacy preview/custom-seed UI logic, preserve material/color fields when updating theme or corner radius, and update save calls to use with-expressions. Update ComponentEditorWindow to use adapter-provided OnPrimary brush and minor docs updates.
* Add material color services, plugin DTOs, and tests
Introduce IPC wire-format appearance DTOs (PluginIsolation.Contracts) and clarify they are distinct from the runtime PluginSdk snapshot. Update PluginSdk comments to document the runtime-facing snapshot shape. Change ComponentColorSchemeHelper to use the HostMaterialColorProvider and add an overload that accepts a MaterialColorSnapshot. Add new services and pipelines (MaterialColorService, MaterialSurfaceService, WindowMaterialService, WallpaperColorPipeline) and refactor AppearanceThemeService to depend on MaterialColorService while removing legacy internal implementations. Add multiple unit tests (ComponentColorSchemeHelper, PluginAppearanceBoundary, SettingsCatalogService, WallpaperSettingsPageViewModel) and update localization resources with new material_color and wallpaper keys.
* Add CODE_WIKI and update localization
Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
* Add Data settings page and storage scanner
Introduce a new "Data" settings page to visualize and manage local app storage. Adds DataStorageService (scanning, disk info, clean operations), DataSettingsPageViewModel, XAML view and code-behind, and HexToColor/HexToBrush converters; registers converters in App.axaml. Also update localization strings for the new page and add icon mapping so the settings entry uses the Database icon. Enables per-category and global cleaning workflows and formatted size display.
* Add IPC backoff/retries and safer disposal
Introduce exponential backoff, jitter and retry logic across IPC components to improve robustness and avoid tight retry loops; make disposal idempotent and add connection guards. Key changes:
- LauncherCoordinatorIpcServer / LauncherIpcServer: add backoff constants, ComputeBackoff(), consecutive error tracking and delayed retries with jitter.
- LanMountainDesktopIpcClient / LauncherIpcClient: add connect retry loops, timeouts, delayed retries, improved error logging, and use ArrayPool for buffered async writes; ensure proper cleanup on failures.
- PublicIpcHostService: add disposed flag, guard OnPeerConnected and Dispose, and clear connected peers on dispose.
- Add many auto-generated commit analysis docs under docs/auto_commit_md and new scripts for analyzing/generating commit docs.
These changes aim to make IPC connection handling more resilient and resource-safe.
* Add preview controls and settings UI tweaks
Introduce GridPreviewControl and CornerRadiusPreviewControl for visual previews and wire them into the Components settings (add ScreenAspectRatio, CornerRadiusPreviewValue, and screen aspect init). Refactor ComponentsSettingsPage UI to show live previews. Improve DataSettingsPage layout and storage bar logic (use item percentages directly, include remaining segment, adjust visuals and visibility triggers). Simplify LauncherSettingsPage header/appearance layout. Add SECURITY_AUDIT_REPORT.md, analysis summary, mockup HTML, and a local .claude settings file.
* Add install checkpoint/resume and DDSS workflows
Introduce install checkpoint support and resume logic for updates, plus related locking and validation. Adds InstallCheckpoint model, AppJsonContext serialization, and UpdatePaths helpers for deployment lock, apply-in-progress lock and install-checkpoint path. UpdateEngineService gains checkpoint load/save/delete, incoming-state validation, resume logic for PLONDS and legacy updates, apply lock handling, and safer cleanup; ApplyPendingPlondsUpdateAsync and ApplyPendingUpdate flow updated accordingly. Add DeploymentLock contract and extend UpdateState with pause/resume/cancel helpers. Tests updated to cover stale/valid checkpoint resume and legacy/PLONDS flows. CI: enhance ddss-publish to detect release channel, validate S3 assets, prepare and atomically publish channel pointer; add ddss-rollback workflow to publish rollbacks; adjust plonds-build concurrency and release events.
* changed.更了好多
* fix.消息盒子媒体播放器组件服务修复
* change.重做天气,为回到系统提供自定义功能。
* feat.airapp与融合桌面
* feat.动画优化与更新界面
* feat.数字时钟,白板功能修复
* feat.完善了时钟轻应用,为启动器提供了多语言支持
* feat.发布与打包优化
* changed.天气选项卡更新
2026-05-19 07:55:21 +08:00
"power.confirm_cancel" : "Cancel" ,
"settings.weather.visual_style_header" : "Weather Visual Style" ,
"settings.weather.visual_style_desc" : "Choose the icon and component style used by desktop weather widgets." ,
"settings.weather.visual_style.GoogleWeatherV4" : "Google Weather v4" ,
"settings.weather.visual_style.Geometric" : "Geometric" ,
"settings.weather.visual_style.Breezy" : "Breezy Weather" ,
"settings.weather.visual_style.LemonFlutter" : "Lemon Weather Flutter" ,
"settings.general.back_to_windows_button_display_header" : "Back to platform button" ,
"settings.general.back_to_windows_button_display_desc" : "Choose whether the Dock button shows its circle icon, text, or both." ,
"settings.general.back_to_windows_button_display.icon_and_text" : "Icon and text" ,
"settings.general.back_to_windows_button_display.icon_only" : "Icon only" ,
"settings.general.back_to_windows_button_display.text_only" : "Text only" ,
"settings.general.back_to_windows_icon_source_header" : "Back button icon source" ,
"settings.general.back_to_windows_icon_source_desc" : "Choose whether the left icon slot uses a Fluent icon or short custom text." ,
"settings.general.back_to_windows_icon_source.fluent_icon" : "Fluent icon" ,
"settings.general.back_to_windows_icon_source.text" : "Text icon" ,
"settings.general.back_to_windows_fluent_icon_header" : "Fluent icon" ,
"settings.general.back_to_windows_fluent_icon_desc" : "Search and choose a built-in Fluent icon for the left icon slot." ,
"settings.general.back_to_windows_icon_text_header" : "Text icon" ,
"settings.general.back_to_windows_icon_text_desc" : "Enter up to four characters to display as the left icon." ,
"settings.general.back_to_windows_fluent_icon_search_placeholder" : "Search icon"
}