- core/localization: 新增约 60 个翻译键(含参数化方法),中英双语覆盖 - shared/widgets: CommonDialog 默认参数国际化 - features/home: 完成页操作步骤指引、状态栏串口连接状态、程序列表状态标签 - features/programs: 表头状态列、表单验证提示、导入/模板操作反馈、删除确认(参数化) - features/program_detail: 步骤列表/表单标题、删除确认、速度档位显示(参数化) - features/device: run_state_provider 错误消息改为错误码 - features/settings: 升级页、密码面板、语言面板、U盘导入面板、串口配置面板全部替换 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
26 lines
1.5 KiB
Markdown
26 lines
1.5 KiB
Markdown
## Why
|
||
|
||
当前应用中大量中文字符串直接硬编码在 Dart 文件中(约 456 处,跨 53 个文件),导致:(1)无法切换为英文界面;(2)新增语言时需要逐个文件查找修改;(3)维护成本高且容易遗漏。项目虽已有 `AppLocalizations` 基础设施,但覆盖率不足,多数 UI 文本仍为字面量中文。
|
||
|
||
## What Changes
|
||
|
||
- 扫描 `lib/` 下所有硬编码的中文字符串,逐一替换为 `AppLocalizations.of(context)` 调用
|
||
- 补充所有缺失的翻译键到 `AppLocalizations`(含中英文值)
|
||
- 优化 `AppLocalizations` 类的调用方式,消除 `BuildContext` 强依赖场景(如 Snackbar、Dialog)
|
||
- 确保运行时可动态切换语言,无需重启应用
|
||
- **不涉及**:数据库种子数据、日志输出中的中文(不影响 UI 国际化)
|
||
|
||
## Capabilities
|
||
|
||
### New Capabilities
|
||
- `i18n`: 完整覆盖应用所有 UI 文本的国际化能力。支持中文(默认)和英文两种语言,所有用户可见文本均通过 `AppLocalizations.of(context)` 获取。
|
||
|
||
### Modified Capabilities
|
||
- (无现有 spec 需要修改)
|
||
|
||
## Impact
|
||
|
||
- **代码修改**:约 50+ 个 Dart 文件中的 UI 部分,将硬编码字符串替换为翻译函数的调用
|
||
- **新增翻译键**:预估新增约 100-150 个翻译键到 `AppLocalizations`
|
||
- **无外部依赖变更**:沿用现有手写翻译系统,不引入 `intl` 或 `slang` 等第三方包
|
||
- **无破坏性变更**:所有替换为纯文本替换,不改变 UI 结构和逻辑 |