Repository navigation
docs(sales): 让 zh 页的线索状态名、到期日期、直属上级与区块名跟随语言包 (#801) - #825
Merged
Merged
Conversation
…d field-group headings with the locale pack (#801) The Chinese sales pages are supposed to spell every label the way `src/translations/zh-CN.ts` ships it — that pack is what the reader sees on screen. Four pages had drifted: - `crm_lead.status` ships 已确认 / 未通过 / 已转化; the leads pages said 已审核 / 不合格 / 已转换, in the status table and in every sentence downstream of it. The convert verb face follows `convert_lead` (转化线索) and `is_converted` (已转化), so 转换 becomes 转化. - `expiration_date` is 到期日期; quotes.zh-Hans called it 过期日期 in four places while already using 到期日期 in three others. - The `expired` status is 已过期; sales/index.zh-Hant said 已到期 — the same word corrected on the quotes page in #803, on a page that fix did not reach. - `reports_to` is 直属上级; the contacts prose still said 汇报对象 after #804 corrected the table cell. - Field-group headings on the leads / contacts block tables now use each object's `_sections` labels instead of independently translated ones. Verb and mechanism usages are preserved (报价到期, 每日过期扫描, 即过期的报价, 通过资格审核), and terms belonging to another object keep that object's wording. Docs follow the pack, so nothing under `src/` changed. Fixes #801 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VHrPAGEgFDoHjphqYG4BMa
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
This was referenced Aug 5, 2026
yinlianghui
marked this pull request as ready for review
August 5, 2026 22:17
This was referenced Aug 5, 2026
Merged
yinlianghui
added a commit
to yinlianghui/hotcrm
that referenced
this pull request
Aug 10, 2026
…-ai#840) (objectstack-ai#848) Customer Since 幽灵字段的最后 6 处,全在 ai-copilot 两页,换了一种更难 被搜到的拼法:en 页写 `customer-since`(带连字符)、zh 页意译成「成为 客户的日期」,所以前三轮按 `Customer Since` 的关键字搜索都没扫到。 以两个 skill 源码为唯一事实来源改写这两条 bullet: - customer_360 `get_record` 账户,故「关系快照」写实为客户分层 + 客户 负责人(都是 account.object.ts 上的真实字段); - case_triage 的评判权重首项是「customer tier and contract value」, 从未提到跟了多久,故「客户画像」写实为客户分层 + 合同金额。 两处都按 objectstack-ai#823 / objectstack-ai#824 已定口径明说账户上没有这个日期,并给读者留下真实 去处(合同的签署日期 / 开始日期),没有默默删掉这个名字。 zh 两页的 tier 字段名按语言包拼写(objectstack-ai#825 先例):客户分层 / 客戶分層。 仅文档:src/** 与 content/docs/releases/ 未动。 Claude-Session: https://claude.ai/code/session_01VHrPAGEgFDoHjphqYG4BMa Co-authored-by: Claude <noreply@anthropic.com>
yinlianghui
added a commit
to yinlianghui/hotcrm
that referenced
this pull request
Aug 10, 2026
…ectstack-ai#844) (objectstack-ai#906) The locale pack is the contract — `convert_lead.label` is 转化线索 and `is_converted` is 已转化 — so the docs say 转化 (objectstack-ai#801/objectstack-ai#825/objectstack-ai#829). Two gaps survived those passes: - 17 places on eight zh-Hant pages still said 轉換 while the Simplified line beside them already said 转化 (marketing/campaign-members, campaigns, index; analytics/cubes, dashboards, reports; reference/glossary; guides/files-and-comments). - Five pages no pass had reached, in both scripts: sales/index, administration/{setup, sandbox-and-releases, state-machines, automation}. 33 occurrences over 18 pages, judged one by one. 状态转换 (state transition) is a different word that shares the old spelling, so the state-machines page kept its ten mechanism sentences and changed only the three lead-convert ones; the contract-activation, datetime-filter and type-coercion usages are untouched for the same reason. The automation page's flow row is pinned in ROW_LABEL, which flows need because they carry no locale-pack entry — the ledger moves in this commit, not after it. Verified in both directions: doc-only change first, guard red on both Chinese pages (no "线索转换流程" row / row "线索转化流程" names no flow), then green with the ledger synced. Documentation only; nothing under src/ changed, and the English pages were already right. Claude-Session: https://claude.ai/code/session_01VHrPAGEgFDoHjphqYG4BMa Co-authored-by: Claude <noreply@anthropic.com>
yinlianghui
added a commit
to yinlianghui/hotcrm
that referenced
this pull request
Aug 10, 2026
…bjectstack-ai#923) objectstack-ai#844 的「不属于本条的」清单把 analytics 的 conversion rate 排除在 convert 动词面之外,理由是「指标名」。按基线实测这条理由的事实前提不成立,objectstack-ai#905 是账单: - 全仓 zh-Hans 没有任何一处「转换率」。两处简体孪生行本来就写「转化率」 (analytics/cubes.zh-Hans:124、analytics/reports.zh-Hans:32),所以那次排除 没有保住任何「指标名词面」,只是把繁体侧单独留在原地。 - 这个短语没有语言包 label 面可以立词面契约:全仓 src/ 零命中,它是各页自译的 散文。语言包能给的最近的锚反而同向跟「转化」—— crm_forecast.num_converted_leads.label 是「已转化线索数」,dashboard 的 open_leads.title 是「未转化线索」(src/translations/zh-CN.ts)。 - 于是两页各自内部自相矛盾:analytics/cubes.zh-Hant 在 :108 写「轉化數量」, 十六行后的 :124 写「轉換率」;analytics/reports.zh-Hant 在 :32 写「轉換率」, :59 写「轉化」——后两处都是 objectstack-ai#844 已改的那一半。正是 objectstack-ai#801 批评的半页对半错。 改动两行,都在繁体页。裸的 转换 / 轉換 一律不动,这条边界是 objectstack-ai#844 划的,本次不移: 它在 administration/state-machines 上命名状态机机制、在导入指南里是类型强制转换、 在 revenue/contracts 上是合同激活——与已退休的 convert 译法同形而不同词。 en 与 zh-Hans 零改动,src/ 零改动。 test/docs-conversion-rate-spelling.test.ts 补上这段散文缺的那道门。这个短语没有 语言包键可派生,所以检查只能落在主张所在的文本里:一遍全量扫描所有中文页拒绝 「转换率 / 轉換率」,另一条独立断言两页仍然写着这个指标——纯否定断言在句子被删掉时 会因为「什么都没产出」而变绿,配上正向断言后,删句和拼错一样红。 反向双向核验(方向先判后跑,两次都如判): - 还原两行 -> 4 条测试红 3 条,扫描断言逐行点名 content/docs/analytics/cubes.zh-Hant.mdx:124 与 content/docs/analytics/reports.zh-Hant.mdx:32,两条 carrier 断言同时红 (每页仅有的「轉化率」正是被还原的那一行)。 - 整行删除 -> 扫描断言绿(无可发现),carrier 断言红。空断言陷阱证否。 Refs objectstack-ai#801 objectstack-ai#825 objectstack-ai#829 objectstack-ai#844 objectstack-ai#802 Claude-Session: https://claude.ai/code/session_01VHrPAGEgFDoHjphqYG4BMa Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #801
src/translations/zh-CN.ts是中文读者在界面上看到的那些字,文档必须跟它,而不是反过来(contract-first,未动src/**)。本单把正文与 thread 两条追评列出的全部缺口按最新 main 逐条重核后一次扫完。甲、
sales/index.zh-Hant.mdx:44—— 与 #803 同一个错,在另一页已到期→已過期(crm_quote.status.options.expired= 「已过期」)。行内的 報價到期 是这条 bullet 的机制名(动词面),按 #793 / #794 的判据保留,只改句末的状态名。zh-Hans 的同一行本来就是对的。乙、
quotes.zh-Hans.mdx的expiration_date×4过期日期→到期日期(zh-CN.ts的expiration_date.label),四处全在案::31区块表、:65内置规则、:70每日扫描、:127销售提示。同页:112/:114/:119本来就写到期日期—— 改完这一页不再自相矛盾。保留:
:3的「自动过期」、:70的「每日过期扫描」是机制名;:65句尾的「不能创建即过期的报价」是动词。同一行里字段名要改、动词不改,正是本类的判据。丙、
leads.zh-Hans/zh-Hant.mdx—— 状态名 + convert 动词面 + 区块名crm_lead.status:已审核 → 已确认、不合格 → 未通过、已转换 → 已转化。按 #794 对presented的先例全页扫:状态表三行,加上重新开启说明、zh-Hant 的重复处理步骤、转化小节标题与第 4 步、销售提示。(zh-Hans:106在基线上已经是「未通过」,未动;zh-Hant 同一句还是「不合格」,已改 —— 两页此处原本不一致。)convert 动词面按包对齐为
转化:convert_lead= 「转化线索」、is_converted= 「已转化」,而 #804 重写的转化区块本来就写「转化客户 / 转化联系人 / 转化商机 / 转化日期」,所以页面自己内部原先就是 转换/转化 混用。区块名按
crm_lead._sections:身份 → 身份信息、联系信息 → 联系方式、资格审核 → 资格评估、转换 → 转化,zh-Hant 另有指派 → 分配。保留(动词,不是区块名):frontmatter 的「资格审核」、状态表里「应用 BANT 资格审核」、「当一条线索通过资格审核后」、「取消资格」。
丁、
contacts.zh-Hans/zh-Hant.mdxreports_to散文两处汇报对象 → 直属上级(:37建模说明、:96销售提示)—— #804 已把区块表那一格改对,散文残留让同一页自相矛盾。:46的「谁向谁汇报」是动词,保留。区块名按
crm_contact._sections:身份 → 身份信息、客户与角色 → 客户与职务、联系信息 → 联系方式。超出追评枚举的部分(请复核这一段)
追评自陈「本单标题说的『还剩两处』偏乐观」,其区块名清单也是人眼列的。按「区块名对齐
_sections」这条判据逐格重核后,leads 两页多出三格未被枚举、但同表同类的漂移:身份 → 身份信息、联系信息 → 联系方式(两页),以及 zh-Hant 的指派 → 分配。这三格与被枚举的两格在同一张表、同一份契约上;只改其中两格会留下本单正文批评的那种半对半错。未越出文件面,未新增缺陷类。各按各的包,不跨对象统一
crm_lead._sections.qualification是「资格评估」,而crm_opportunity.stage.qualification是「资格审查」—— 包里就是两个词,本单只动 lead 侧(#793 追评已定调)。验证
全量四件套 + hygiene 全绿(
validate/typecheck/build/test= 64 files, 1560 passed)。另写了一份一次性脚本(未提交)直接 importzhCN与页面对照:改后 27 项全过;把同一份断言指向origin/main的六个页面,22 项失败 —— 方向与预期一致,说明断言不是空过。唯一例外要如实说明:「quotes 页出现 到期日期」这一项在基线上也过,因为那一页原本就在
:112/:114/:119用了正确写法、同时在另外四处用错 —— 存在性断言看不出自相矛盾,真正抓住它的是「全页无过期日期」那条缺席断言(基线上失败)。未加守卫:这一类的闸挂在 #802,且该单记的两个前置设计问题(zh-Hant 没有语言包、动词/机制名如何豁免)尚未有结论。
test/docs-object-coverage.test.ts的注释也写明按语言逐词建表被刻意排除,因此本类目前无测试面 —— 不是本 PR 遗漏了测试。Generated by Claude Code