mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-22 17:24:27 +08:00
86 lines
4.4 KiB
Markdown
86 lines
4.4 KiB
Markdown
|
|
# 本地化修复 Spec
|
|||
|
|
|
|||
|
|
## Why
|
|||
|
|
|
|||
|
|
- 项目在中文设置下,多处 UI 仍显示英文。
|
|||
|
|
- 主要问题集中在:
|
|||
|
|
1. `MainWindow.axaml` 中任务栏头像弹窗、电源菜单、组件库等文本硬编码为英文,且未被 `ApplyLocalization()` 覆盖。
|
|||
|
|
2. `LanMountainDesktop.Launcher` 的所有视图完全没有接入本地化系统。
|
|||
|
|
3. 部分组件(BrowserWidget、WhiteboardWidget、HolidayCalendarWidget 等)存在未覆盖的硬编码英文。
|
|||
|
|
4. 少量设置页面 Tooltip 硬编码英文。
|
|||
|
|
|
|||
|
|
## What Changes
|
|||
|
|
|
|||
|
|
### 1. MainWindow.axaml 硬编码修复
|
|||
|
|
将以下硬编码文本改为由 `ApplyLocalization()` 通过 `L()` 动态设置:
|
|||
|
|
- 任务栏头像弹窗:`User` → `power.user` / `Settings` → `settings.title` / `Edit Desktop` → `button.component_library` / `Power` → `power.title`
|
|||
|
|
- 电源菜单:`Back` → `common.back` / `Power` → `power.title` / `Shutdown` → `power.shutdown` / `Restart` → `power.restart` / `Log Out` → `power.logout` / `Sleep` → `power.sleep` / `Lock Screen` → `power.lock_screen`
|
|||
|
|
- 组件库:`Widgets` → `component_library.title` / `Back` → `common.back` / `No components.` → `component_library.empty`
|
|||
|
|
- 悬浮芯片:`Widgets` → `component_library.title`
|
|||
|
|
|
|||
|
|
### 2. Launcher 视图本地化
|
|||
|
|
为 `LanMountainDesktop.Launcher/Views/` 下的窗口引入独立本地化机制(复用 `LocalizationService` 或内嵌资源字典):
|
|||
|
|
- `SplashWindow.axaml`:`LanMountain Desktop`、`Initializing...`
|
|||
|
|
- `DataLocationPromptWindow.axaml`:全部文本
|
|||
|
|
- `ErrorWindow.axaml`:全部文本
|
|||
|
|
- `LoadingDetailsWindow.axaml`:全部文本
|
|||
|
|
- `UpdateWindow.axaml`:`Update`
|
|||
|
|
|
|||
|
|
### 3. 组件硬编码修复
|
|||
|
|
- `BrowserWidget.axaml`:`Browser runtime unavailable.` → 新增键 `browser.widget.unavailable`
|
|||
|
|
- `WhiteboardWidget.axaml`:`Pen` / `Eraser` / `Clear` / `Export SVG` → 新增键 `whiteboard.tool.pen` 等
|
|||
|
|
- `HolidayCalendarWidget.axaml`:`Holiday countdown` / `Days` → 新增键 `holiday.widget.title` / `holiday.widget.days`
|
|||
|
|
- `BilibiliHotSearchWidget.axaml`:`Trending Topic` → 新增键 `bilihot.widget.trending_topic`
|
|||
|
|
- `WallpaperSettingsPage.axaml`:`Custom color` Tooltip → 复用 `settings.wallpaper.custom_color_tooltip`
|
|||
|
|
|
|||
|
|
### 4. 本地化资源文件补充
|
|||
|
|
在 `zh-CN.json` 和 `en-US.json` 中补充上述新增键值。
|
|||
|
|
|
|||
|
|
## Impact
|
|||
|
|
|
|||
|
|
- Affected code:
|
|||
|
|
- `LanMountainDesktop/Views/MainWindow.axaml`
|
|||
|
|
- `LanMountainDesktop/Views/MainWindow.SettingsHardCut.Stubs.cs`
|
|||
|
|
- `LanMountainDesktop.Launcher/Views/*.axaml`(多个文件)
|
|||
|
|
- `LanMountainDesktop/Views/Components/BrowserWidget.axaml`
|
|||
|
|
- `LanMountainDesktop/Views/Components/WhiteboardWidget.axaml`
|
|||
|
|
- `LanMountainDesktop/Views/Components/HolidayCalendarWidget.axaml`
|
|||
|
|
- `LanMountainDesktop/Views/Components/BilibiliHotSearchWidget.axaml`
|
|||
|
|
- `LanMountainDesktop/Views/SettingsPages/WallpaperSettingsPage.axaml`
|
|||
|
|
- `LanMountainDesktop/Localization/zh-CN.json`
|
|||
|
|
- `LanMountainDesktop/Localization/en-US.json`
|
|||
|
|
- Affected behavior:
|
|||
|
|
- 中文设置下上述位置将正确显示中文。
|
|||
|
|
- Launcher 各窗口将支持中英文切换。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Requirements
|
|||
|
|
|
|||
|
|
### Requirement: MainWindow 任务栏弹窗与电源菜单本地化
|
|||
|
|
系统 SHALL 在 `ApplyLocalization()` 中覆盖任务栏头像弹窗和电源菜单的所有文本。
|
|||
|
|
|
|||
|
|
#### Scenario: 中文设置下打开任务栏弹窗
|
|||
|
|
- **WHEN** 语言设置为中文
|
|||
|
|
- **THEN** 弹窗中显示"设置"、"桌面编辑"、"电源"等中文文本
|
|||
|
|
- **AND THEN** 电源菜单中显示"返回"、"关机"、"重启"、"注销"、"睡眠"、"锁定屏幕"等中文文本
|
|||
|
|
|
|||
|
|
### Requirement: Launcher 窗口本地化
|
|||
|
|
系统 SHALL 让 Launcher 的所有窗口文本通过本地化服务获取。
|
|||
|
|
|
|||
|
|
#### Scenario: 中文设置下启动应用
|
|||
|
|
- **WHEN** 语言设置为中文
|
|||
|
|
- **THEN** SplashWindow 显示中文启动文本
|
|||
|
|
- **AND THEN** 数据位置选择、错误页、加载详情页等显示中文
|
|||
|
|
|
|||
|
|
### Requirement: 组件与设置页硬编码修复
|
|||
|
|
系统 SHALL 移除或覆盖所有组件和设置页中的英文硬编码文本。
|
|||
|
|
|
|||
|
|
#### Scenario: 中文设置下查看各组件
|
|||
|
|
- **WHEN** 语言设置为中文
|
|||
|
|
- **THEN** BrowserWidget 显示"浏览器运行时不可用"
|
|||
|
|
- **AND THEN** WhiteboardWidget 工具提示显示"笔"、"橡皮擦"、"清空"、"导出 SVG"
|
|||
|
|
- **AND THEN** HolidayCalendarWidget 显示"节假日倒计时"、"天"
|
|||
|
|
- **AND THEN** BilibiliHotSearchWidget 显示"热门话题"
|
|||
|
|
- **AND THEN** 壁纸设置页自定义颜色 Tooltip 显示"自定义颜色"
|