Skip to content

中文工作区:分配类站内消息未国际化,且未读状态无法清除 #3353

Description

@baozhoutao

现象

在中文(zh-CN)工作区,收到一条「分配给你」的站内消息,整条链路都是英文且未读状态无法清除。复现见截图:消息中心里显示 sys_file "repro.png" assigned to you(英文 + 裸对象 API 名),点击后进入 sys_file 详情页也是英文(FILE ID、SCOPE、Pending Upload / Committed / Deleted 状态条),且该消息点击后始终保持未读。

三个独立缺陷

  1. 协作通知标题未国际化(framework / @objectstack/plugin-audit)
    audit-writers.ts 里 assignment(collab.assignment)与 @mention(collab.mention)的铃铛标题是硬编码英文字面量,且直接拼对象 API 名(sys_file 而非显示标签)。

  2. sys_file / sys_upload_session 无翻译包(framework / @objectstack/service-storage)
    这两个对象从未提供 i18n bundle,导致文件详情页的字段标签与状态选项(待上传/已提交/已删除)在任何 locale 都渲染英文。

  3. 未读状态永远无法清除(objectui / @object-ui/app-shell)
    ADR-0103 把 sys_notification_receipt 改为引擎自持(enable.apiMethods = get/list),铃铛点击时仍用通用数据接口直接 create/update 回执,写入被拒且异常被静默吞掉,10s 轮询把行刷回未读。

预期

  • 通知标题按接收人 locale 显示(如「系统文件"repro.png" 已分配给你」),对象名用翻译后的显示标签。
  • 文件详情页字段/状态条显示中文。
  • 点击通知后未读状态持久清除。

修复落点

  • framework:plugin-audit(新增 messages.assignedToYou/mentionedYou/mentionedYouAnonymous 四语言 + 按接收人 locale 渲染)、service-storage(新增 ADR-0029 D8 翻译包,kernel:ready 注册)。
  • objectui:app-shell 铃铛已读改走 POST /api/v1/notifications/read[/all]

注:①③ 生效需新版 framework + console 一起部署;历史英文通知行不会被回写,仅新通知生效。

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions