Files
Developer 3d849bd468 feat(i18n): 完成全量 UI 文本国际化,替换所有硬编码中文为 AppLocalizations 调用
- 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>
2026-06-12 15:09:47 +08:00

1.5 KiB
Raw Permalink Blame History

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
  • 无外部依赖变更:沿用现有手写翻译系统,不引入 intlslang 等第三方包
  • 无破坏性变更:所有替换为纯文本替换,不改变 UI 结构和逻辑