Repository navigation
fix(i18n): translate the Sales Home tab labels and the two public-form titles; en carries the approval flow names (#2284) - #2289
Merged
Conversation
…m titles (#2284) The Sales Home page:tabs items now carry a value (the ?tab= token and the key pages.sales_home_page.components.home_tabs.items.<value>.label is read under), and web_to_lead / web_to_case author a title, which GET /forms/:slug serves translated from objects.<o>._views.<view>.title. All four packs carry the five new keys; en also carries the approval flow and step labels the other three packs already translate. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014xanhPEmGTMTfVH4UokwJT
… add changeset (#2284) os lint --strict reports a missing locale key for each row, but not the source slot going: a tab item without a value, or a form without a title, makes the key vanish. The pin holds both authoring facts and the key in every locale. The _views orphan guard now counts a named form view as shipped, since its title is keyed under _views.<key>.title. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014xanhPEmGTMTfVH4UokwJT
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
Author
席位核对ACCEPT · Contract review of hotcrm#2284 against its Done when and the claim (
Acceptance notes
Landing authority: the maintainer's standing word in the seat thread, 「后续你按照pm-dispatch 规则审核通过的issue都可以落地」 (2026-10-23T13:14Z). Landing: Generated by Claude Code |
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 #2284
What changed
mainbefore this PRflows.<flow>.labelandflows.<flow>.approvals.<node>.labelfor all six approval flows (landed in #2274 with the 18.1.0 bump)flowsblock insrc/sales/translations/en/app.ts)page:tabsitems had novalue, so 18.1.0 emits no key (pageTabItemKeyreturns undefined, and the item gets no slot)value(my_leads,my_open_deals,my_open_tasks: the?tab=token, the key of the view it embeds); all four packs carrypages.sales_home_page.components.home_tabs.items.<value>.label, worded as the pack already words the embedded viewweb_to_lead/web_to_caseauthored notitle;translateFormTitletranslates only an authored title, so there was nothing to translateContact Us,Contact Support); all four packs carryobjects.<o>._views.<view>.title(zh-CN 联系我们 / 联系支持团队, ja-JP お問い合わせ / サポートへのお問い合わせ, es-ES Contáctenos / Contactar con Soporte)Metadata touched only where a key must be declared:
src/sales/pages/home.page.ts(threevalues),src/sales/views/lead.view.tsandsrc/service/views/case.view.ts(onetitleeach).Pin.
test/i18n-references.test.tsgets a describe block that holds the source half lint cannot see: if a tab item loses itsvalueor a form loses itstitle, the key disappears and lint stays green. The block asserts both authoring facts and the key in every locale. The existing_viewsorphan guard now counts a namedformViewskey as shipped, because the form title is keyed under it.Changeset:
.changeset/2284-locale-rows.md(patch).Measurement (installed
@objectstack/*18.1.0)os i18n checkpnpm lint(os lint --strict)i18n/missing-page×9,i18n/missing-view×6opportunity_approval.approvals.manager_review, ja-JPhome_tabs.items.my_open_deals, es-EScrm_case._views.web_to_case.title)i18n/missing-flow,i18n/missing-page,i18n/missing-viewvalueremoved from one tab,titlefromweb_to_casePlatform halves read in the installed packages:
cli/dist/utils/i18n-extract.js(approvalflows.*.approvals.*.label,page:tabsitems byvalue,pushContainerFormTitles),spectranslateView/translateFormTitle/translatePageTabItems, andrestGET /forms/:slug, which translates the matched view throughtranslateMetadataDocument('view', …)and sendsVary: Accept-Language. All of them behave as the card says. The card's measurement (that a key is reported missing) only holds once the source declares the slot.Verify
Stages run separately on
0e48756:validate0 ·typecheck0 ·lint0 ·hygiene0 ·hygiene:tokens0 ·build0 ·test(--maxWorkers=2) 0: 221 files, 4362 passed, 1 skippedFindings
value, no formtitle). Platform behaviour matches the cards: the fix was to declare the slot.🤖 Generated with Claude Code
https://claude.ai/code/session_014xanhPEmGTMTfVH4UokwJT