Skip to content

i18n: 大量页面中文模式下仍显示英文 — 硬编码字符串未接入 AppLocalizations #138

Description

@physercoe

现状

项目已有 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

修复方向

  1. 为每个未覆盖的文件添加 AppLocalizations.of(context) 引用
  2. 新增 ARB key 覆盖所有硬编码字符串
  3. 优先修复高可见度页面: sessions → transcript/insight → team → project

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions