Repository navigation
zh 文档里 crm_opportunity 的 7 个阶段名有 4 个与语言包不符(开发期/资格审核/赢单/输单),且这一组该动哪边未定 #829
Description
来源:#801(PR #825)实施时的越界发现。#801 只覆盖 quotes / leads / contacts / sales-index 四页的 lead 状态名、expiration_date、reports_to 与区块名,本条整组都在它的文件面之外,故未在该 PR 里动。基线 origin/main = 6f6ed9a。
同一缺陷类(文档里的词与 src/translations/zh-CN.ts 不符,#802 记的那一类),但这次的量级和性质都不同:漂移的不是某一页的某个词,而是一个对象的整套阶段名,在全部 zh 页上一致地用了另一套说法。
甲、crm_opportunity.stage 七个选项里四个对不上
zh-CN.ts 的 crm_opportunity.fields.stage.options:
| value | 语言包 | zh 文档写的 | |
|---|---|---|---|
prospecting |
寻找客户 | 开发期 | ❌ |
qualification |
资格审查 | 资格审核 | ❌ |
needs_analysis |
需求分析 | 需求分析 | ✅ |
proposal |
提案 | 提案 | ✅ |
negotiation |
谈判 | 谈判 | ✅ |
closed_won |
成交 | 赢单 | ❌ |
closed_lost |
失败 | 输单 | ❌ |
锚点(阶段表,改的时候从这两张表起手):
content/docs/sales/opportunities.zh-Hans.mdx:16-22、opportunities.zh-Hant.mdx:16-22content/docs/sales/pipeline-management.zh-Hans.mdx:16-22、pipeline-management.zh-Hant.mdx:16-22
散文与看板说明里还有一大片:全仓 zh 页 开发期/開發期 10 处(其中 guides/integrations.zh-Han*.mdx:132 的「开发期」指开发环境,不是阶段名,要放过)、输单/輸單 24 处。寻找客户 在 content/docs/ 里零命中 —— 也就是说文档从来没用过包里的那个词,不是某一页写错。
顺带说明 #801 为什么没顺手改:sales/leads.zh-Hans.mdx:121 / leads.zh-Hant.mdx:121(「在开发期阶段创建一个商机」)虽然落在 #801 的文件面上,但属于本条这一族。8 处里只改 2 处,正是 #801 正文批评的那种半页对半页错,所以留给本单一次扫完。
⚠️ 这一单不能直接照搬「文档跟包」——先要定方向
#793 / #794 / #801 都是文档跟包,因为那几处包里的词就是界面上的词、且明显更对。这一组不一样,值得先由维护者定夺该动哪边:
- A:文档跟包(与前几单一致,只改
content/docs/)。代价:全 zh 文档改用「寻找客户 / 资格审查 / 成交 / 失败」。 - B:包跟文档(改
src/translations/zh-CN.ts,文档不动)。理由:closed_won/closed_lost在销售语境里通行说法是「赢单/输单」,而包里的「成交/失败」把一对状态拆成了两套说法(「成交」的反义不是「失败」);prospecting的「寻找客户」也比「开发期」直白但更啰嗦。这与 zh-CN 语言包里「活动 / 活动成员 / 活动参与者」三个标签互相撞车:活动成员其实是营销活动的成员 #810 正在做的事同型 —— 那单也是判定包本身的词有问题。 - C:拆开判:
qualification「资格审查 → 资格审核」这一处两边差一个字、文档侧读起来更自然,可能与closed_won/closed_lost这一对分开定。
另外注意 crm_lead._sections.qualification 是「资格评估」,与 crm_opportunity.stage.qualification「资格审查」是包里有意分开的两个词(#793 追评「两对象同名字段各按各的包」已定调,PR #825 也按此只动了 lead 侧)。选 B 或 C 时别把这三个词并成一个。
建议:先定 A/B/C,再动手。选 B 的话文件面是语言包而不是文档,与本条的标题相反 —— 所以这单在方向定下来之前不宜直接派实施。
乙、sales-copilot.zh-Hans.mdx:63 把 convert_lead 动作叫「转换线索」
包里 crm_lead._actions.convert_lead.label 是「转化线索」:
若評分達到 70 及以上且你同意,技能会调用真实的 **转换线索** 操作
这一行直接点名一个动作按钮,而按钮上写的是另一个词。zh-Hant 版同段落没有这个写法。这一处是确定的(动作 label 白纸黑字在包里,不涉及甲的方向问题),可以独立于甲先修。
同源但性质较轻的 convert 动词面残留(转换 而非包里的 转化),也都在 #801 文件面之外,可与乙一起扫:sales/accounts.zh-Hans.mdx:62、getting-started/quick-tour.zh-Hant.mdx:52、getting-started/introduction.zh-Hant.mdx:23、customization/testing-and-ci.zh-Hant.mdx:266。
Activity
yinlianghui commentedon Aug 5, 2026
🔒 认领(修复线 PM 派单):session_01VHrPAGEgFDoHjphqYG4BMa,分支
claude/issue-829-stage-names-follow-package,worktreehotcrm-issue-829。文件面:甲组锚点两页(opportunities / pipeline-management)×3 语及散文波及页(以逐页 grep 为准,leads zh 的「开发期」族一并)、乙组五处(sales-copilot / accounts / quick-tour / introduction / testing-and-ci)、changeset。裁定已record(veto 窗口未被翻案,照 方向 A:docs 跟包 执行):七个阶段名以⚠️ 「资格审查」是 opportunity 侧的包词,与 lead 侧「资格评估」不许互串(#825 已定调)。若维护者在本单留言偏好「赢单/输单」式措辞,停工上报——那是包改名决策。
zh-CN.ts的crm_opportunity.stage为唯一事实来源,全页扫先例照 #794/#825;convert 动词面照包;Generated by Claude Code
yinlianghui commentedon Aug 5, 2026
✅ 实施完成,draft PR #842(8/8 CI 绿)。session_01VHrPAGEgFDoHjphqYG4BMa,分支
claude/issue-829-stage-names-follow-package。veto 窗口未被翻案,照 方向 A:docs 跟包 执行;语言包一字未动。前提复核结论:成立。 一次性对照脚本从
zh-CN.ts现读七个阶段名,跑origin/main基线时恰好报出每页缺失 4 个(寻找客户 / 资格审查 / 成交 / 失败),needs_analysis/提案/谈判三个未报——与本单正文的四行 ❌ 逐一吻合。「寻找客户」在 docs 零命中也已复核属实,确为全量替换。正文一处事实偏差,已修正:乙组说「zh-Hant 版同段落没有这个写法」——实测有,
sales-copilot.zh-Hant.mdx:63写作「轉換潛在客戶」,同样在点名convert_lead这个动作。已一并按包对齐。乙组另四处的共同形状是简繁不同步(简体侧早已是「转化」,繁体孪生页未跟上),故按语言对偶补齐了accounts.zh-Hant:62与quick-tour.zh-Hant:60。越界发现,均已去重后另立、未在本 PR 修:
forecast_category.best_case三种写法;其中 4 处就在本单锚点页opportunities.zh-Han{s,t}:128,134上,属隔壁选择列表,越界未动,明确挂账finding)—— 语言包内部 4 个 help 串与自己的 label 打架,含win_reason/loss_reason的 help 引号点名「赢单」/「丢单」两个阶段值。这是本单 A/B/C 之争里方向 B 唯一没被摆上台面的证据,建议 B1(help 跟 label),不产生文档返工——供维护者一并过目按派单要求未加守卫(#802 挂账)。
Generated by Claude Code
yinlianghui commentedon Aug 5, 2026
✅ 验收通过 — PR #842 已转 ready 并挂 auto-merge(CI 8/8 绿)。
判定要点:
三个新发现分诊:#844(zh-Hant convert 动词面整体滞后 20 余处 + 五页双侧未改,含 state-machines「状态转换」是机制名的防误改标注)→ 入队;#845(best_case 三种写法 + closed_amount 误称)→ 入队;#846(语言包内部自相矛盾:4 个 help 串用自己 label 不用的词)→ 入队,裁定 B1(help 跟 label——与 #810 的 intra-package 先例同源,不产生文档返工;动手时同看四个语言包,veto 窗口照例)。#829 随本 PR 关闭。
Generated by Claude Code
docs(sales): name the seven opportunity stages the way the locale pac…
fix(i18n): make five zh-CN help strings follow the labels they explain (
docs(i18n): spell the lead convert verb 转化 on every Chinese page (obj…
docs(analytics): 两页 zh-Hant 的「轉換率」跟简体侧改写为「轉化率」(objectstack-ai#905) (o…