工作圈 Feed 内容翻译产品方案
版本:v0.5
创建日期:2026-07-22
需求来源:需求池、需求反馈、用户调研截图、竞品官方资料、本地代码
优先级:待确认
文档状态:草稿
当前阶段:已完成需求背景、竞品与场景分析,并形成协同富文本字段级手动/自动阅读翻译产品方案;已补充译文完成态菜单与操作埋点,交互设计细节后续迭代
交互 Demo:[工作圈 Feed 协同富文本翻译交互 Demo](工作圈Feed协同富文本翻译_交互Demo_20260724.html)
需求变更记录
| 变更日期 | 变更人 | 变更内容 |
|---|---|---|
| 2026-07-24 | 孙浩 / Codex | 基于协同富文本在新建编辑、Feed、列表、快速详情和管理后台的现状,补充字段级翻译插件方案;明确“字段配置控制能否翻译、个人设置控制翻译成什么语言”,首期采用手动按需翻译 |
依赖需求 Story 列表
无已确认依赖。已读取 TAPD Story 1154330609001410368 及技术负责人评论,其内容作为富文本处理约束和研发方案参考,不构成本需求的前置依赖。
一、需求概述
1.1 客户反馈
客户反馈结论: 当前需求池实时关联 3 条反馈。反馈入口分别是工作圈日志、销售记录文本和英文日志,但共同诉求都是:用户在业务对象中写入一种语言的文本后,其他语言用户能够直接看懂内容。以下业务场景为 CRM 原文承载,未进行改写。
| 需求反馈编号 | 反馈客户 | 客户级别 | 反馈人 | 客户业务场景原文 | 示意图与证据说明 |
|---|---|---|---|---|---|
fb_2025-12-03_060212 | 广州万孚生物技术股份有限公司 | VIP | 马小玉 | 客户的角色是什么:管理员 客户的业务场景是什么:工作圈的内容可以支持翻译,比如日志的内容 客户的操作步骤是什么:××× 这个场景下遇到的问题是什么:××× | ![]() 图中证明: 日志/工作总结正文同时存在中文字段标题和俄语富文本内容,且包含表格与多段内容。 不能证明: 客户要求手动还是自动翻译,以及译文是否作为正式业务数据保存。 |
fb_2026-01-28_061607 | 深圳市远邦进出口有限公司 | VIP | 周润Eric | 客户的角色是什么:管理员 客户的业务场景是什么:购买多语后,除销售记录文本内容未翻译外,页面上所有内容都做了翻译,希望线索记录文本也同步翻译 客户的操作步骤是什么:客户购买多语后,除销售记录文本内容未翻译外,页面上所有内容都做了翻译 这个场景下遇到的问题是什么:国外用户不能直接看到翻译文本 | ![]() 图中证明: 英文页面中,客户详情侧边的销售记录仍显示中文“跟进内容/结果”。 不能证明: 所有销售记录字段都需要翻译,以及译文需要参与搜索、报表或导出。 |
fb_2026-05-29_063997 | 瑞斯康达科技发展股份有限公司 | VIP | 曾子秦Zoey | 客户的角色是什么:系统管理员 客户的业务场景是什么:外国同事写的英文日志,中国老板查看的时候,想要自动翻译成中文。 | ![]() 图中证明: 中文用户查看由海外同事填写的日志时,正文仍直接显示英文。 不能证明: 客户是否接受机器翻译误差,以及自动翻译是否应对所有历史日志默认执行。 |
| GBC国际业务部目前正在实施的【北斗星通】,【新希望】等客户也有反馈该诉求 |
来源:2026-07-22 通过 CRM 实时回查需求池 2026-01-14-19292 及其关联反馈;原始回查结果保存在 raw/。
1.2 系统现状
1.2.1 已有能力
- 已有个人翻译目标语言设置。 人员设置服务保存
translateContentAs;Web 企信翻译直接读取该值,未设置时回退到当前界面语言。依据:fs-social-feeds/fs-social-organization/src/main/java/com/facishare/social/organization/predefine/service/PersonnelRestService.java:347、Qixin/src/js/qx/message/ai-translate/ai-translate.js:48。 - 已有个人级自动翻译模块配置。 当前代码按
translation_qixin、translation_service_workbench判断企信和客服工作台是否自动翻译,说明该配置表达“在哪个模块自动触发”,而不是“哪个对象字段允许翻译”。依据:Qixin/src/js/qx/helper.js:5649、fs-social-feeds/fs-social-organization/src/main/java/com/facishare/social/organization/predefine/service/PersonnelRestService.java:351。 - 已有企信消息翻译能力。 企信翻译接口以
sessionId + messageIdList + targetLanguage为输入,属于会话消息模型。依据:fs-android/lib/qixinlib/src/com/fxiaoke/lib/qixin/client/impl/translation/TranslateMessagesClient.java:58、fs-android/lib/pluginapi_account/src/com/facishare/fs/pluginapi/Account.java:461。 - 协同富文本已经是可配置对象字段,并在 Feed 中复用。 对象表单将
rich_text映射为协同富文本组件;Feed 服务把RichTextFieldDescribe转换为FeedXTTextCmpt,其中包含纯文本、结构化文本块和附件信息。依据:crm/crm2/modules/action/field/view/view.js:322、fs-feeds/fs-feeds-render/src/main/java/com/facishare/feeds/render/converter/impl/DefaultRichTextFieldConverter.java:23、fs-feeds/fs-feeds-render/src/main/java/com/facishare/feeds/render/component/cmpt/standard/FeedXTTextCmpt.java:18。 - 列表摘要与详情全量内容不是同一读取形态。 列表按富文本摘要值格式化;单字段编辑/详情在缺少全量值时重新调用详情接口拉取。这意味着列表不适合逐行发起长内容翻译。依据:
crm/crm2/modules/components/edittable/format.js:358、crm/crm2/modules/action/field/singleedit/singleedit.js:418。
1.2.2 当前缺口
- 当前已找到的翻译调用以企信会话和消息 ID 为身份,不能直接覆盖对象记录、字段和 Feed 内容块。
- Feed 正文可能包含段落、列表、表格、链接、@人员、图片等结构,不是一个普通字符串。
- 同一内容可能同时出现在 列表页、工作圈Feed 流、对象详情协同富文本字段、动态侧栏和评论区,翻译单位及状态尚未定义。
- 内容长度跨度大,可能达到数万字符(5W 字符上线);外部翻译服务存在请求长度、超时和限流边界。
- “阅读者临时看懂内容”与“把语言值维护为正式业务数据”尚未区分,容易把两种能力混成一个方案。
1.2.3 翻译场景形态对比
| 场景 | 典型内容 | 内容与使用特征 | 译文是否是正式业务数据 | 适用的翻译机制特征 |
|---|---|---|---|---|
| IM 即时消息 | 单聊、群聊、客服即时对话 | 单条较短、频率高、快速滚动、上下文强 | 否,主要帮助当前用户看懂 | 阅读者按需或自动翻译;快速返回;可查看原文;不改原消息 |
| Feed/Post 协同内容 | 日志、销售记录、日程说明、评论、Activity Stream | 中长文本或富文本;异步阅读;挂载业务对象;可能编辑 | 通常否,机器译文属于阅读辅助 | 以正文/评论等内容节点为单位;保留富文本结构;短内容快速返回,长内容需要考虑异步和部分失败 |
| 业务对象主属性 | 客户名称、产品名称、标准描述、分类名称 | 稳定、被列表/搜索/报表/API/导入导出持续引用 | 是 | 维护正式多语言字段值;可编辑、可审计;有默认值与回退规则;机器翻译只能辅助起稿 |
场景判断: 当前 3 条客户反馈均更接近“Feed/Post 协同内容的阅读时翻译”,不是业务对象主属性的正式数据多语,也不是作者发布前维护语言版本的正式内容翻译。但日志正文可能很长,不能直接照搬 IM 的整条消息同步翻译形态。
1.2.4 核心产品形态判断:为什么是翻译插件,而不是多语言内容维护
核心结论: 日志、销售记录、日程说明、评论等普通 Feed/Post 内容,应保留一份作者原文作为唯一权威内容,再由阅读者通过翻译插件按需获得译文。不应要求作者在发布 Post 时维护多个语言值,也不应将机器译文直接写成该 Post 的正式多语言数据。
本文所说的“翻译插件”是产品能力形态:翻译能力附着在富文本字段或 Feed 内容节点上,在阅读时调用翻译服务并展示派生译文。它不特指需要单独安装的技术插件。
| 判断维度 | 阅读时翻译插件 | 维护多语言内容 | Feed/Post 的选择依据 |
|---|---|---|---|
| 业务目的 | 帮助当前阅读者快速理解原文 | 形成可独立发布、审核和引用的正式语言版本 | 日志、销售记录作为过程跟进数据,首要目标是跟进过程中支持多人协同阅读多语言版本,确保推进效率,但在推进之后,价值将降低,因此长期维护多语言值(筛选、搜索、导出、统计)的诉求较低 |
| 内容生产成本 | 作者只写一次原文;只在需要时生成目标语言译文 | 作者或翻译人员需按目标语言逐份维护 | 【发布责任与阅读责任的解耦】 1. Feed 协同富文本内容高频、分散且数量大,要求每条内容维护 N 个语言会直接破坏发布效率(影响时效性); 2. 同时由于内容创建者没有维护好多语言就会导致查看着无法快速查看到对应的翻译语言值 3. Feed 一般仅允许创建者进行编辑,如果查看者需要查看翻译值,则无法自己维护 |
| 长富文本处理 | 可仅在阅读需要时发起,并设计分段、异步、局部失败、缓存和原文兜底 | 每个长内容都要为每种语言保存完整副本,并承担同步维护成本 | 【模型现实问题】 协同富文本的字符上限对模型长度、超时和限流问题的挑战极大 |
因此,这个判断直接决定后续产品形态:
- 产品入口应附着在协同富文本字段或 Feed 正文、评论、回复等内容节点上,而不是在 Post 编辑器中新增多语言录入页签。
- 作者原文是唯一权威内容;阅读者可查看译文、切回原文,但不直接编辑机器译文。
- 译文可按“源内容版本 + 目标语言”缓存,但属于派生阅读数据;原文编辑后,对应译文失效。
1.3 竞品现状
1.3.1 竞品能力总览
| 竞品 | 竞品分类 | 竞品现状 | 证据来源 |
|---|---|---|---|
| Microsoft Teams | IM / Channel Post 动态翻译 | 阅读者对单条消息或 Post 发起翻译;译文替换原文,可查看原始消息 | Microsoft Support、用户实测截图 |
| 飞书公司圈 | Feed/Post 动态翻译 | Post 和评论支持手动/自动翻译;用户设置目标语言及译文展示方式 | 飞书帮助中心、帮助页截图 |
| Zoho Connect | Feed/Post 动态翻译 | Post、评论、回复可翻译为默认显示语言;译文显示在原文下方 | Zoho Connect Help、用户实测截图 |
| ServiceNow Dynamic Translation | 对象字段 / Activity Stream 动态翻译 | 管理员按字段启用;表单字段、评论、活动项由阅读者触发翻译 | ServiceNow Docs、官方视频截图 |
| Viva Engage | 作者维护多语言 Post | 发布者为同一 Post 维护最多 10 种语言;阅读者按偏好查看或切换 | Microsoft Support、帮助页截图 |
| ServiceNow Localization Framework | 受治理内容翻译 | 通过任务、机器翻译/TMS、导入导出、审核和发布维护正式语言版本 | ServiceNow Docs |
1.3.2 Microsoft Teams:阅读者对单条 Post 动态翻译
| 竞品截图 | 证据说明 |
|---|---|
![]() | 来源: 用户在 Microsoft Teams 中的实测截图。 图中证明: Channel Post 的更多操作中提供“翻译”,翻译单位是当前 Post。 不能证明: 译文是否持久化、缓存多久,以及长富文本如何处理。 对当前任务的意义: Post 可以采用阅读者侧的单条动态翻译,不要求作者维护语言版本。 |
![]() | 来源: 用户在 Microsoft Teams 中的实测截图。 图中证明: 翻译后正文显示译文,并提供“查看原始消息”。 不能证明: 原文编辑后旧译文如何失效,以及译文是否进入检索或导出。 对当前任务的意义: 原文不被改写,译文只是当前阅读状态。 |
1.3.3 飞书公司圈:动态翻译与个人展示偏好
| 竞品截图 | 证据说明 |
|---|---|
![]() | 来源: 飞书公司圈帮助中心页面截图。 图中证明: 用户可设置目标语言、自动翻译,以及“仅显示译文/显示原文和译文”。 不能证明: 自动翻译的调用时机、缓存策略、租户成本和长内容限制。 对当前任务的意义: 目标语言和展示方式可以属于阅读者个人偏好,不必由内容作者决定。 |
![]() | 来源: 飞书公司圈帮助中心页面截图。 图中证明: 帖子和评论分别从更多操作中触发翻译,是独立内容单元。 不能证明: 正文与全部评论可以一次性批量翻译。 对当前任务的意义: Feed 正文、评论和回复需要分别定义翻译入口及状态。 |
补充边界:飞书官方帮助资料说明,纯图片/视频、话题、表情和纯链接等不属于普通文本翻译范围。该事实说明富文本字段不能作为一个不区分节点的整体直接处理。
1.3.4 Zoho Connect:原文下方追加译文
| 竞品截图 | 证据说明 |
|---|---|
![]() | 来源: 用户在 Zoho Connect 中的实测截图。 图中证明: Feed Post 正文区域直接提供 Translate 入口。 不能证明: 入口是否受管理员配置、版本许可或文本长度影响。 对当前任务的意义: Feed 卡片可以把翻译作为正文阅读动作,而不是对象编辑动作。 |
![]() | 来源: 用户在 Zoho Connect 中的实测截图。 图中证明: 原文保留,译文在下方独立区域展示,并标识 Translated 状态。 不能证明: 关闭后再次打开是否复用译文,以及复杂富文本节点是否均被保留。 对当前任务的意义: 原译文并显便于核对业务术语,但会增加长日志在 Feed 中的纵向占用。 |
1.3.5 ServiceNow:平台字段与 Activity Stream 动态翻译
| 竞品截图 | 证据说明 |
|---|---|
![]() | 来源: ServiceNow Dynamic Translation 公开视频截图。 图中证明: 字段旁提供翻译入口,原文保留,译文显示在字段下方并标识翻译服务。 不能证明: 所有字段默认支持,以及译文被写回原字段。 对当前任务的意义: 动态翻译可以抽象为字段能力,再落到不同业务对象。 |
![]() | 来源: ServiceNow Dynamic Translation 公开视频截图。 图中证明: 管理员通过字段字典属性 dynamic_translation_enabled=true 启用翻译。不能证明: 该配置在所有表、所有字段类型和所有许可中均可用。 对当前任务的意义: 平台型能力应有明确的对象/字段开通范围,而不是所有文本默认开放。 |
![]() | 来源: ServiceNow Dynamic Translation 公开视频截图。 图中证明: 客户门户中的单条评论可独立翻译,译文附着在原评论内。 不能证明: 整段会话或全部历史评论支持批量翻译。 对当前任务的意义: 评论与正文应作为不同内容节点处理。 |
![]() | 来源: ServiceNow Dynamic Translation 公开视频截图。 图中证明: 工单 Activity Stream 中的活动项可以逐条翻译并保留原文。 不能证明: Activity Stream 中所有活动类型都支持翻译。 对当前任务的意义: 与纷享销售记录/对象动态的呈现形态接近,具有直接参考价值。 |
![]() | 来源: ServiceNow Dynamic Translation 公开视频截图。 图中证明: 同一动态翻译机制可出现在邮件/富内容阅读场景中。 不能证明: 完整邮件 HTML、附件和所有模板变量都会被翻译。 对当前任务的意义: 能力可以跨展示载体复用,但每种内容结构仍需定义独立边界。 |
ServiceNow 官方资料进一步确认:Dynamic Translation 支持 String、Full UTF-8、多行短文本、Wide Text 和 HTML 等字段类型;表单字段、评论和 Activity Stream 可作为翻译单元。官方错误文档还列出“超过翻译服务最大长度”和超时等失败类型。字段配置、动态翻译属性、字段翻译错误
视频参考:Dynamic Translation on forms and activity streams、Dynamic Translation overview
1.3.6 Viva Engage:作者维护正式多语言 Post
| 竞品截图 | 证据说明 |
|---|---|
![]() | 来源: Microsoft Viva Engage 官方帮助页面截图。 图中证明: 发布者在 Post 编辑器中添加翻译,设置默认语言并选择目标语言。 不能证明: 系统会自动为作者生成并发布机器译文。 对当前任务的意义: 这属于作者侧正式语言版本维护,与阅读者临时翻译不是同一种产品机制。 |
![]() | 来源: Microsoft Viva Engage 官方帮助页面截图。 图中证明: 同一 Post 最多维护 10 种语言,发布者可切换、设为默认或移除翻译。 不能证明: 超过 10 种语言的处理方式,以及普通日志适合承担同样的作者维护成本。 对当前任务的意义: 正式公告类 Post 可以维护有限、明确的语言版本,但不适合直接覆盖高频日志。 |
![]() | 来源: Microsoft Viva Engage 官方帮助页面截图。 图中证明: 发布后,阅读者通过 Show translations 选择作者已提供的语言版本。 不能证明: 按钮会实时调用机器翻译生成缺失语言。 对当前任务的意义: 阅读者切换的是已发布版本,而不是临时机器翻译结果。 |
官方资料还说明,每个语言版本可以配置不同的图片、视频或 GIF,进一步表明 Viva Engage 维护的是完整内容版本,而不只是一个文本字符串。Microsoft Support
1.3.7 竞品机制对比
| 产品 | 内容单位 | 触发/维护角色 | 译文展示 | 目标语言 | 结果性质 | 对本需求的可借鉴点 |
|---|---|---|---|---|---|---|
| Teams | 单条消息/Post | 阅读者按需触发 | 译文替换原文,可查看原文 | 用户偏好语言 | 阅读辅助 | 最轻量的单条动态翻译 |
| 飞书公司圈 | Post、评论 | 阅读者手动或系统自动触发 | 仅译文或原译文并显 | 个人设置 | 阅读辅助 | 个人目标语言、自动翻译和展示偏好 |
| Zoho Connect | Post、评论、回复 | 阅读者按需触发 | 原文下方追加译文 | 默认显示语言 | 阅读辅助 | Feed 内保留原文参照 |
| ServiceNow Dynamic Translation | 对象字段、评论、Activity Stream | 管理员启用;阅读者触发 | 原文附近显示译文 | 用户首选语言 | 阅读辅助,受字段/表配置治理 | 通用字段能力跨对象和载体复用 |
| Viva Engage | 完整 Post 语言版本 | 作者发布前维护 | 按已发布语言版本切换 | 区域设置或手动选择 | 正式发布内容 | 面向公告/全球传播的作者维护机制 |
| ServiceNow Localization Framework | 正式内容/翻译任务 | 翻译人员、审批者 | 发布后的正式语言版本 | 任务指定语言 | 受治理内容 | 机器翻译、审核和发布分层 |
竞品结论
- Teams、飞书、Zoho 和 ServiceNow Dynamic Translation 均采用“原文不变、阅读者获得译文”的动态翻译范式。
- Feed/Post 的翻译单位通常落到正文、评论或活动项,而不是一次处理整个业务对象。
- 上述动态翻译产品均把目标语言和翻译动作交给阅读者侧,与 Feed/Post 发布者只维护一份原文的产品形态一致。
- Viva Engage 与 ServiceNow Localization Framework 面向正式内容语言版本,其作者维护、审核和发布成本可以被公告/知识等权威内容承担,但不适合高频普通 Feed。
- ServiceNow 最接近对象平台思路:管理员按字段/表开通,再在表单和 Activity Stream 中复用。
- 当前未找到竞品公开证据证明数万字符富文本可以整段同步翻译;ServiceNow 官方错误说明反而确认了长度上限和超时是产品必须处理的异常。这决定了翻译插件需要分段、异步和部分失败处理,而不是改用多语言数据维护。
1.4 产品价值
- 让跨语言团队无需离开业务对象复制文本到外部工具,即可理解日志、销售记录等协同内容。
- 将诉求从单一日志入口抽象为可复用的对象 Feed 文本能力,避免日志、销售记录、日程等模块分别建设重复机制。
- 在进入具体方案前先区分动态翻译、正式数据多语和正式内容翻译,避免将机器结果错误写成权威业务数据。
1.5 需求目标
- 让有权限的阅读者在 Feed、对象详情和快速详情中,按个人目标语言翻译单个协同富文本字段,并可随时查看原文。
- 作者始终只维护一份原文;机器译文不写回对象字段,不要求作者维护多语言版本,也不改变现有搜索、筛选、导出和 API 的业务数据口径。
- 在协同富文本最长 50000 字符及复杂结构场景下,保证原文结构和业务节点不被破坏,并通过分段、异步、缓存、失败兜底控制等待与模型风险。
二、产品方案
2.1 产品细节说明
| 序号 | 场景、现状与方案效果 | 产品方案 |
|---|---|---|
| 1 | 所有对象的新建/编辑布局(包括 Feed 和标准对象) | 不展示“翻译”阅读入口,即不做任何改造 |
| 2 | 工作圈 Feed列表页![]() ![]() 来源:Figma《协同敏捷开发 周》 | 1. 翻译入口附着在单个协同富文本字段的右上角操作区域,需要由用户点击触发Google 翻译的接口调用;接口文档: wiki.firstshare.cn/pages/viewpage.action?pageId=351011051 2. 译文在原文位置进行展示,即仅展示译文 3. 译文完成后,展示翻译后的 icon图标,点击后提供“查看原文”和“设置”;点击“设置”进入个人设置-语言及时区设置界面。 4. “内容翻译为”作为协同富文本目标语言。 5. 本次翻译功能 仅适用于web端,移动端先不纳入本期。 6. 只做富文本 2.0,不影响 1.0 7. 预置对象、自定义对象、Feed 对象的详情页 8. 如果翻译前是折叠的,点击翻译后,期望是自动展开的。 |
| 4 | 对象列表 | 列表单元格暂不支持翻译、不自动翻译。 避免逐行拉全量内容、并发翻译和行高变化;用户进入快速详情后再翻译。 |

2.2.6 翻译内容与状态规则
| 规则类型 | 产品规则 |
|---|---|
| 翻译单位 | 单个协同富文本字段的完整内容。即使当前处于折叠态,也必须从字段数据源读取完整内容,不能只翻译当前可见 DOM。 |
| 可翻译节点 | 普通文字 |
| 保留文字的样式结构不变 | 文字(加粗、斜体、删除线、字号、颜色、有序/无序列表、段落换行) |
| 保护非文字的内容(不被翻译) | 表情、 |
| 排除系统 UI | “展开全文(共 N 字)”、业务类型、复制/翻译按钮等系统文案由产品多语言 Key 展示,不进入正文翻译任务。 |
| 同语言内容 | 不识别原文是否和目标语言一致,点击【翻译】后都需要触发翻译 |
| 原文切换 | 译文展示后可点击icon,点击“查看原文”;切回原文不重新请求。 |
| 设置入口 | 翻译入口或译文状态区提供“设置”,进入个人语言及时区设置并定位目标语言和“协同富文本”自动翻译选项;不在字段内维护独立语言偏好。 |
2.2.8 搜索、筛选、导出等规则
| 使用场景 | 规则说明 |
|---|---|
| 字段搜索/筛选 | 翻译译文不在检索范围内 |
| 导出 | 译文不参与导出 |
三、规范检查项
3.1 业务文案多语言 Key
以下为产品文案草案,研发实现时需在各端统一 Key,不得按页面重复创建:
| 场景 | 中文 | 英文 | 多语言 Key |
|---|---|---|---|
| 阅读操作 | 翻译 | Translate | 待研发确定 |
| 原文切换 | 查看原文 | View original | 待研发确定 |
| 设置入口 | 设置 | Settings | 待研发确定 |
3.2 需求埋点
本期新增 3 个用户操作埋点;翻译服务耗时、分段、缓存命中、错误分类和资源消耗仍属于研发运行监控,不作为产品埋点。
| 事件 | 触发时机 | 关键属性 |
|---|---|---|
| 翻译 | 用户点击“翻译”发起手动翻译,或自动翻译任务首次发起 | 对象/记录/字段标识、入口场景(Feed/详情/快速详情)、触发方式(手动/自动)、源语言、目标语言、结果(成功/失败/同语言/缓存命中) |
| 查看原文 | 用户在译文完成态点击翻译图标菜单中的“查看原文” | 对象/记录/字段标识、入口场景、当前目标语言 |
| 设置 | 用户从译文完成态菜单点击“设置”并进入个人语言及时区设置 | 对象/记录/字段标识、入口场景、设置来源(翻译完成态菜单) |
3.3 沙盒/更改集能力
需要。若“支持内容翻译”作为字段元数据新增属性,应随对象字段定义进入沙盒、变更集、打包和系统迁移;迁移到目标环境后仍需校验目标租户是否具备翻译产品能力。个人目标语言属于用户偏好,不进入沙盒或更改集。
3.4 PaaS 国际化兼容检查
| ID | 多语接入事项 | 是否需要 | 注意事项 |
|---|---|---|---|
| 1 | 接入翻译工作台 | 否 | 本期不维护正式语言值;底层翻译服务选型不等于接入数据多语翻译工作台 |
| 2 | CRM 提醒 | 否 | 本期只覆盖 Feed、详情和快速详情阅读场景 |
| 3 | 企信消息提醒 | 否 | 企信继续使用已有消息翻译能力,本期不改 |
| 4 | 修改记录 | 否(译文本身) | 机器译文不写入对象字段;只记录原文字段的正常修改,源文变更触发缓存失效 |
| 5 | 审计日志 | 是(管理员配置) | 字段“支持内容翻译”的开关变更需要记录;用户每次阅读翻译不进入业务对象操作日志 |
| 6 | 支持快捷翻译能力 | 是 | Feed、详情和快速详情提供阅读时翻译入口 |
| 7 | 支持数据多语能力 | 否(针对动态译文) | 动态机器译文不应自动成为正式多语言字段值 |
| 8 | 预置配置多语 | 是 | 字段配置名称、帮助文案、阅读入口和状态文案需要多语言 |
| 9 | 预置示例数据多语 | 不涉及 | 本阶段未新增示例数据 |
3.5 新对象/新字段 BI 分析申请
无需新增业务对象或业务数据字段。若翻译缓存进入独立技术存储,不作为客户可分析的业务字段;是否需要内部容量与成本 BI 由研发方案补充。
3.6 操作日志说明
- 管理员开启或关闭字段“支持内容翻译”需要进入管理后台审计日志,记录操作者、时间、对象、字段和前后值。
- 用户手动点击“翻译/查看原文”或由个人偏好自动触发翻译,均属于阅读状态,不写入对象修改记录;服务调用日志按安全与合规要求留存,不展示为业务操作日志。
3.7 需求风险点检测
| ID | 风险分组 | 风险类型 | 有无该风险 | 涉及风险的功能点 | 影响的企业数 | 是否报备 | 响应策略 |
|---|---|---|---|---|---|---|---|
| 1 | 对现逻辑有影响的风险点 | 交互体验有变化 | 有 | Feed/详情新增翻译与查看原文 | 待确认 | 待确认 | 字段级轻量入口;明确翻译状态、查看原文和设置,移动端暂不纳入首期 |
| 2 | 对现逻辑有影响的风险点 | 功能有减少 | 无 | 本阶段不调整现有能力 | 无 | 不涉及 | 无 |
| 3 | 对现逻辑有影响的风险点 | 功能逻辑调整 | 有 | 复用个人目标语言,新增字段准入和自动翻译模块选项 | 待确认 | 待确认 | 新增“协同富文本”独立选项且默认不勾选,不改变企信、CRM 提醒和客服工作台既有选择值 |
| 4 | 新能力风险点 | 逻辑不完善 | 有 | 复杂富文本结构、源文修改、部分失败 | 待确认 | 待确认 | 节点白名单、受保护占位符、源版本失效;部分失败时整体保留原文 |
| 5 | 新能力风险点 | 有性能压力 | 有 | 数万字符富文本、Feed 自动触发、并发和缓存 | 待确认 | 待确认 | 仅实际可见字段触发;列表与离屏内容不翻译;同源版本去重并命中缓存;研发阶段通过压测确定服务参数,不作为产品验收项 |
| 6 | 新能力风险点 | 安全与合规 | 有 | 敏感字段内容发送至翻译服务 | 待确认 | 待确认 | 企业能力门禁 + 字段默认关闭 + 查看权限校验;服务选型前完成数据出境评估 |
3.8 上线策略
3.8.1 收费标准
- [X] 不单独拆分 License、资源包或翻译额度
- [ ] 另行收费
作为灰度产品能力提供,不单独拆分 License、资源包或翻译额度;翻译模型费用由厂商承包或纳入既有能力成本口径。客户侧最终商业化口径不在本期新增需求中。
3.8.2 上线节奏
- [ ] 全网
- [X] 灰度
首期按灰度产品能力开放;具体灰度对象、企业范围和合规校验待确认,性能参数由研发压测确定,不作为产品验收项。
3.8.3 适用版本
| 资源名称 | 标准版 | 专业版 | 旗舰版 | 无限版 | 扩展资源包 |
|---|---|---|---|---|---|
| 对象 Feed/协同富文本翻译 | 随灰度能力开放 | 随灰度能力开放 | 随灰度能力开放 | 随灰度能力开放 | 不单独拆分 |
四、资料来源
4.1 CRM 与用户材料
- 需求池:
2026-01-14-19292 工作圈日志能够支持翻译,实时回查日期 2026-07-22。 - 关联反馈:
fb_2025-12-03_060212、fb_2026-01-28_061607、fb_2026-05-29_063997。 - CRM 原始回查:
raw/需求池实时回查_20260722.json、raw/关联反馈实时回查_20260722.json及 3 份反馈实时详情。 - 用户提供的 Teams、ServiceNow、飞书公司圈、Zoho Connect、Viva Engage 竞品截图,以及协同富文本在新建编辑、Feed、列表、快速详情、字段配置和个人语言设置中的现状截图。
- TAPD Story:协同富文本字段的富文本 2.0 协议支持翻译,用于确认协议缺少 SSE、模型可能改动关键节点及业务参数、全量翻译耗时不可控等技术约束。
- Figma:《协同敏捷开发 周》协同富文本翻译交互,本版只确认字段级入口和译文原位展示方向,设计细节后续优化。
4.2 竞品官方资料
- Microsoft Teams:Translate a message
- 飞书公司圈:使用翻译功能
- Zoho Connect:Language and translation support
- Zoho Connect:Feed rich-text posts
- ServiceNow:Configure field translation
- ServiceNow:Dynamic Translation properties
- ServiceNow:Field translation errors
- ServiceNow:Localization Framework task
- Viva Engage:Multi-language posts
4.3 本地代码依据
fs-social-feeds/fs-social-organization/src/main/java/com/facishare/social/organization/predefine/service/PersonnelRestService.javaQixin/src/js/qx/message/ai-translate/ai-translate.jsQixin/src/js/qx/helper.jsfs-android/lib/pluginapi_account/src/com/facishare/fs/pluginapi/Account.javafs-android/lib/qixinlib/src/com/fxiaoke/lib/qixin/client/impl/translation/TranslateMessagesClient.javacrm/crm2/modules/action/field/view/view.jscrm/crm2/modules/action/field/singleedit/singleedit.jscrm/crm2/modules/components/edittable/format.jsfs-feeds/fs-feeds-render/src/main/java/com/facishare/feeds/render/converter/impl/DefaultRichTextFieldConverter.javafs-feeds/fs-feeds-render/src/main/java/com/facishare/feeds/render/component/cmpt/standard/FeedXTTextCmpt.javafs-social-feeds/fs-social-feeds-provider/src/main/java/com/facishare/social/feeds/adapter/converter/WorkReportRichTextFieldConverter.javafs-social-feeds/fs-social-feeds-provider/src/main/java/com/facishare/social/feeds/adapter/renderer/JournalDetailedFeedRenderer.javafs-android/fxiaoke/src/com/facishare/fs/biz_feed/newfeed/render/presenter/FeedContentRender.java


















