现状
项目已有 Flutter gen-l10n + ARB 中英文系统(lib/l10n/app_en.arb / app_zh.arb),618 个 key 均已翻译。但约 88 个 screen/widget 文件完全没有引用 AppLocalizations,大量用户可见字符串直接硬编码为英文。
影响范围
1. Sessions 页面(最严重)
lib/screens/sessions/sessions_screen.dart — 零 i18n 引用
- 对话框标题/内容: "Archive N sessions?", "Stop session?", "Delete this session?", "Reset conversation?", "Rename steward", "Rename session"
- 按钮: Cancel, Archive, Stop, Delete, Save, Resume, Start session, Fork from archive
- 菜单项: "Select…", "Templates & engines", "Refresh", "View agent config", "Reset (new conversation)", "Replace steward", "Rename", "Stop session"
- 选择模式: FilterChip 标签, SelectionActionBar 按钮标签
- 所有 SnackBar 错误信息
- Category header: "General steward", "Project stewards", "Domain stewards", "Detached sessions"
- Scope 分组: "General", "Project: xxx", "Approving"
- 空状态: "Sessions failed to load"
2. Transcript / Feed / Insight(高可见度)
lib/widgets/insight_transcript.dart: "Jump", "Close", "No events yet", filter 标签, Navigator tabs (Turns/Errors/Map), "Jump to event…"
lib/widgets/transcript/feed_misc.dart: "Filter transcript", "Older match", "Newer match", "Clear filter"
lib/widgets/transcript/telemetry_strip.dart: 成本/限速 tooltip
lib/widgets/transcript/interaction_cards.dart: "Reject", "Approve"
lib/widgets/session_header.dart: "Switch view"
lib/widgets/view_switcher.dart: "Switch view"
3. Team 管理
lib/screens/team/templates_screen.dart: 对话框、按钮、错误信息、空状态全部硬编码
lib/screens/team/agent_families_screen.dart: 同上
lib/screens/team/spawn_steward_sheet.dart: 标签
lib/screens/team/team_channel_screen.dart: 错误信息
4. Project 页面组
lib/screens/projects/runs_screen.dart: "New run", "Delete run?", "Complete run", "Attach dashboard"
lib/screens/projects/spawn_agent_sheet.dart: "Save spawn preset", "Delete preset", "Presets"
lib/screens/projects/task_detail_screen.dart: "Task", "Open"
lib/screens/projects/task_edit_sheet.dart: "Save changes"
lib/screens/projects/documents_screen.dart: "New document", "Request review"
lib/screens/projects/deliverables_screen.dart: 空状态/错误状态
lib/screens/projects/acceptance_criteria_screen.dart: 同上
lib/screens/projects/plan_viewer_screen.dart: 状态更新
lib/screens/projects/schedule_create_sheet.dart / schedule_edit_sheet.dart
5. Settings
lib/screens/settings/voice_settings_screen.dart: "Voice input", "Auto-send", "DashScope API key", "Region", "Model"
lib/screens/settings/licenses_screen.dart
6. Hub 连接
lib/screens/hub/hub_bootstrap_screen.dart: "Probe URL", "Save & Connect"
lib/screens/hub/hub_profiles_screen.dart: "Rename…", "Edit connection…", "Delete"
7. Me / Approval 页面
lib/screens/me/inline_actions.dart: 全部按钮 ("Approve", "Reject", "Dismiss", "Send", "Spawn project steward")
lib/screens/me/note_editor_screen.dart: 对话框和标签
lib/screens/me/approval_detail_screen.dart: tooltip
lib/screens/me/widgets/propose_card_*.dart: 全部 propose card 按钮
8. Vault / Keys
lib/screens/keys/widgets/key_tile.dart: "Copy Public Key", "Delete"
lib/screens/vault/snippets_screen.dart: "Delete preset?"
9. Hosts
lib/screens/hosts/hub_config_screen.dart: 对话框、标签
lib/screens/hosts/hosts_screen.dart: 排序选项 ("Name (A→Z)", "Last active", "Status")
10. 通用 Widgets
lib/widgets/agent_actions_menu.dart: 全部操作标签和描述
lib/widgets/agent_config_sheet.dart: 按钮标签
lib/widgets/agent_compose.dart: hintText, tooltip
lib/widgets/steward_overlay/: 聊天输入, 附件 tooltip
lib/widgets/annotation_overlay.dart: 按钮
lib/widgets/run_report_card.dart: "Models" section header
lib/widgets/markdown_section_editor.dart: 工具栏 tooltip
lib/widgets/download_manager_sheet.dart: "Share", "Open folder", "Remove"
lib/widgets/artifact_viewers/: 查看器标签
统计数据
| 指标 |
数量 |
| 已有 ARB key(EN+ZH) |
618 |
| 引用 AppLocalizations 的文件 |
48 |
| 未引用 AppLocalizations 的 screen/widget 文件 |
~88 |
| 受影响的主要页面/功能区域 |
~10 |
修复方向
- 为每个未覆盖的文件添加
AppLocalizations.of(context) 引用
- 新增 ARB key 覆盖所有硬编码字符串
- 优先修复高可见度页面: sessions → transcript/insight → team → project
现状
项目已有 Flutter
gen-l10n+ ARB 中英文系统(lib/l10n/app_en.arb/app_zh.arb),618 个 key 均已翻译。但约 88 个 screen/widget 文件完全没有引用AppLocalizations,大量用户可见字符串直接硬编码为英文。影响范围
1. Sessions 页面(最严重)
lib/screens/sessions/sessions_screen.dart— 零 i18n 引用2. Transcript / Feed / Insight(高可见度)
lib/widgets/insight_transcript.dart: "Jump", "Close", "No events yet", filter 标签, Navigator tabs (Turns/Errors/Map), "Jump to event…"lib/widgets/transcript/feed_misc.dart: "Filter transcript", "Older match", "Newer match", "Clear filter"lib/widgets/transcript/telemetry_strip.dart: 成本/限速 tooltiplib/widgets/transcript/interaction_cards.dart: "Reject", "Approve"lib/widgets/session_header.dart: "Switch view"lib/widgets/view_switcher.dart: "Switch view"3. Team 管理
lib/screens/team/templates_screen.dart: 对话框、按钮、错误信息、空状态全部硬编码lib/screens/team/agent_families_screen.dart: 同上lib/screens/team/spawn_steward_sheet.dart: 标签lib/screens/team/team_channel_screen.dart: 错误信息4. Project 页面组
lib/screens/projects/runs_screen.dart: "New run", "Delete run?", "Complete run", "Attach dashboard"lib/screens/projects/spawn_agent_sheet.dart: "Save spawn preset", "Delete preset", "Presets"lib/screens/projects/task_detail_screen.dart: "Task", "Open"lib/screens/projects/task_edit_sheet.dart: "Save changes"lib/screens/projects/documents_screen.dart: "New document", "Request review"lib/screens/projects/deliverables_screen.dart: 空状态/错误状态lib/screens/projects/acceptance_criteria_screen.dart: 同上lib/screens/projects/plan_viewer_screen.dart: 状态更新lib/screens/projects/schedule_create_sheet.dart/schedule_edit_sheet.dart5. Settings
lib/screens/settings/voice_settings_screen.dart: "Voice input", "Auto-send", "DashScope API key", "Region", "Model"lib/screens/settings/licenses_screen.dart6. Hub 连接
lib/screens/hub/hub_bootstrap_screen.dart: "Probe URL", "Save & Connect"lib/screens/hub/hub_profiles_screen.dart: "Rename…", "Edit connection…", "Delete"7. Me / Approval 页面
lib/screens/me/inline_actions.dart: 全部按钮 ("Approve", "Reject", "Dismiss", "Send", "Spawn project steward")lib/screens/me/note_editor_screen.dart: 对话框和标签lib/screens/me/approval_detail_screen.dart: tooltiplib/screens/me/widgets/propose_card_*.dart: 全部 propose card 按钮8. Vault / Keys
lib/screens/keys/widgets/key_tile.dart: "Copy Public Key", "Delete"lib/screens/vault/snippets_screen.dart: "Delete preset?"9. Hosts
lib/screens/hosts/hub_config_screen.dart: 对话框、标签lib/screens/hosts/hosts_screen.dart: 排序选项 ("Name (A→Z)", "Last active", "Status")10. 通用 Widgets
lib/widgets/agent_actions_menu.dart: 全部操作标签和描述lib/widgets/agent_config_sheet.dart: 按钮标签lib/widgets/agent_compose.dart: hintText, tooltiplib/widgets/steward_overlay/: 聊天输入, 附件 tooltiplib/widgets/annotation_overlay.dart: 按钮lib/widgets/run_report_card.dart: "Models" section headerlib/widgets/markdown_section_editor.dart: 工具栏 tooltiplib/widgets/download_manager_sheet.dart: "Share", "Open folder", "Remove"lib/widgets/artifact_viewers/: 查看器标签统计数据
修复方向
AppLocalizations.of(context)引用