1008905-知识库右键菜单显示翻译Key.md 3.59 KB

缺陷 1008905 - 知识库右键菜单第一项显示原始翻译Key

原始需求(一字不差)

缺陷标题:这个是啥?

状态:new | 负责人:尹帮会 | 严重程度:fatal | 优先级:medium | 创建者:Ryan章桦

创建时间:2026-03-12 15:09:09 | 修改时间:2026-03-12 15:09:09

原始描述

[图片: https://file.tapd.cn//tfl/captures/2026-03/tapd_67139335_base64_1773299328_100.png]


图片理解

截图(3066 × 1826 像素)- 知识库文件列表页面右键菜单

画面内容

  • LinkMed 知识库页面,左侧为文件夹树,右侧为文件列表(「我的文档」视图)
  • 用户在左侧某文件夹(其他任务)上触发了右键菜单
  • 右键菜单弹出,包含 4 项:
    1. KnowledgeBase.open(异常!应显示「打开」)
    2. 重命名(图标:铅笔)
    3. 下载(图标:下载箭头)
    4. 删除(图标:垃圾桶,红色)
  • 右侧文件列表中可见多个文件夹和文件,知识库状态列部分显示「已完成」

关键细节

  • 第一个菜单项显示原始翻译 key KnowledgeBase.open,而非中文「打开」
  • 其他三项(重命名、下载、删除)均正常显示中文

根因分析

错误类型

i18n 翻译 key 缺失,导致 vue-i18n t() 函数返回 key 字符串本身。

为什么会这样

FileList.vue 第 284 行右键菜单第一项代码:

{{ contextMenuFile?.isFolder ? (t("KnowledgeBase.open") || "打开") : (t("KnowledgeBase.edit") || "编辑") }}
  • t("KnowledgeBase.open") 找不到对应翻译时,vue-i18n 返回 key 字符串 "KnowledgeBase.open"
  • "KnowledgeBase.open" 是非空字符串(真值),所以 || "打开" 兜底永远不会执行
  • KnowledgeBase 翻译对象中有 editrenamedownloaddelete,但缺少 open

涉及文件

  • src/locales/zh-CN.ts:KnowledgeBase 下缺少 open: "打开"
  • src/locales/en-US.ts:KnowledgeBase 下缺少 open: "Open"
  • src/components/KnowledgeBase/FileList.vue:第 284 行调用 t("KnowledgeBase.open")

修复方案

在 zh-CN 和 en-US 翻译文件的 KnowledgeBase 对象中补充 open key。

修改的文件

  • src/locales/zh-CN.ts:新增 open: "打开"
  • src/locales/en-US.ts:新增 open: "Open"

具体改动

// zh-CN.ts — KnowledgeBase 下新增
open: "打开",
edit: "编辑",   // 原有,参考位置

// en-US.ts — KnowledgeBase 下新增
open: "Open",
edit: "Edit",   // 原有,参考位置

测试结果

  • npm run type-check 通过,无 TypeScript 错误
  • npm run test:unit 通过,19 个用例全部通过

测试覆盖

单元测试(Vitest)

文件:src/test/features/locale-knowledge-base.test.ts(9 个用例)

测试组 用例
zh-CN 翻译 open=打开;edit=编辑;rename=重命名;download=下载;delete=删除
en-US 翻译 open=Open;edit=Edit
非空校验 zh-CN/en-US KnowledgeBase.open 均非空字符串(防兜底失效)

E2E 测试(Playwright)

文件:e2e/tests/knowledge-base-context-menu.spec.ts(2 个用例)

  • 右键菜单第一项不应显示翻译 key 字符串(需登录态,无数据时跳过)
  • 右键文件夹菜单应包含「打开」「重命名」「下载」「删除」完整4项

验收条件

  1. 知识库文件列表中,右键文件夹,第一个菜单项显示「打开」✅
  2. 右键文件,第一个菜单项显示「编辑」✅
  3. 切换为英文时分别显示「Open」和「Edit」✅