- 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>
1.5 KiB
1.5 KiB
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 结构和逻辑