Skip to content

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

Closed

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 一起部署;历史英文通知行不会被回写,仅新通知生效。

Activity

  1. self-assigned this
    on Jul 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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