Skip to content

docs(i18n): re-sync six pages changed by #410 and #413 in zh-Hans, zh-Hant and ja (#414) - #415

Merged
zhuangjianguo merged 25 commits into
mainfrom
claude/project-thread-u7eoxi
Oct 31, 2026
Merged

zhuangjianguo merged 25 commits into
mainfrom
claude/project-thread-u7eoxi

Conversation

@zhuangjianguo

Copy link
Copy Markdown
Collaborator

Requested by Steedos · project thread
Fixes #414
Clause-②: no
Metadata-protocol: none

维护者速读

  • 改了什么:把 docs(cloud): manage subscription, change AI seats, Paddle on the statement, credit packs on Paddle #410 和 docs: buying pages name sales@objectos.ai, not sales@objectstack.ai #413 改过的 6 个英文页面同步到 zh-Hans 和 ja,只译改动的部分,12 页全部重新盖章,并用 gen:zh-hant 重新生成 6 个 zh-Hant 页面。
    • cloud/plans-and-seats 新增三节:管理订阅、更改 AI 席位、付款/发票/退款。
    • cloud/ai-credits-and-limits 的「购买 AI 点数」一节改写。
    • 其余 4 页只把 sales@objectstack.ai 换成 sales@objectos.ai。
  • 为什么改:zh-Hans 和 ja 各有 6 页过期。
  • 风险与回滚:只改了译文文件。Paddle、邮箱和 URL 与英文逐字节一致。回滚即 revert。
  • 先看:content/docs/cloud/plans-and-seats.ja.mdx 的三个新章节。
  • 两分钟验证:打开 /ja/docs/cloud/plans-and-seats,右侧目录应显示「サブスクリプションを管理する」「AI シートを変更する」「支払い、請求書、返金」。
  • 需要你做的:无,席位落地。

What changes

Page (zh-Hans, ja; zh-Hant generated) Change
cloud/plans-and-seats New description. "changeable later" now links #change-ai-seats. Three new sections, with the English ids: #manage-your-subscription, #change-ai-seats and #payment-invoices-and-refunds.
cloud/ai-credits-and-limits "Buy AI credits" rewritten: per-environment top-up, one-time purchase sold by Paddle, the 7-day pack lifetime, packs being paid-plan only, and the pre-launch button naming sales@objectos.ai.
editions/license 6 × sales@objectstack.ai → sales@objectos.ai.
resources/support 3 × the same. security@objectstack.ai is unchanged, as in the English.
resources/faq 1 × the same.
start/enterprise 1 × the same.

Terms used:

  • zh-Hans: 订阅, 客户门户, 记录商户(Merchant of Record), 经销商.
  • ja: サブスクリプション, カスタマーポータル, 再販業者, Merchant of Record.

Console labels stay in English, for example Manage subscription, Next charge: and Cancels at period end:.

The branch carries one -s ours merge of the landed #405 branch head so the push fast-forwards. The diff against main (392b72c) is only these 18 files.

Tests

  • check-translations: zh-Hans 0 stale, 0 missing, ja 0 stale, 0 missing. Each was 6 stale before.

  • check-translation-output --files <list file of all 18>: no findings.

  • gen-zh-hant.mjs --check: 115 generated files match their zh-Hans sources.

  • check-positioning.mjs passes.

  • Structure. For both cloud pages, the sorted list of link targets and the ## heading count are identical across en, zh-Hans and ja: 9 headings for plans-and-seats and 8 for ai-credits-and-limits.

  • Rendered check. I ran a production build and next start. These five pages return 200 in their own language with 0 console errors:

    • /ja, /zh-Hans and /zh-Hant /docs/cloud/plans-and-seats
    • /ja and /zh-Hans /docs/cloud/ai-credits-and-limits

    On plans-and-seats, both ja and zh-Hans render the ids manage-your-subscription, change-ai-seats and payment-invoices-and-refunds, 2 mailto:sales@objectos.ai links and the refunds policy link. The ja table of contents lists the three new sections.

Acceptance notes


Generated by Claude Code

zhuangjianguo and others added 25 commits October 29, 2026 10:17
…ions, use)

Phase 1 of the other-locale plan. Adds ja translations of the 19
entry-path pages (index, why, start/*, editions/*, use/*) and the ja
sidebar labels for start/ and editions/. Every heading keeps its
English id, fences match the English byte for byte, terms follow the
glossary's ja column, and each page carries a --stamp.

check-translations: ja 0 stale, 79 missing (was 98).

Fixes #386

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
Phase 2 of the other-locale plan, first batch: ja for the build/ top
level (index, agents, ai-builder, ai-skills, extend-existing-systems,
marketplace, packages, reports, templates) and build/data/ (index,
relationships, formulas, validation-rules). Same rules as #386: English
heading ids, fences byte for byte, glossary ja column, UI labels in
English, one line per paragraph, each page stamped.

check-translations: ja 0 stale, 66 missing (was 79).

Refs #388

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
…388, PR 2 of 7)

Adds ja translations for the 11 automation and interface pages:
build/automation/{index,flows,workflows,approvals} and
build/interface/{index,apps,views,forms,dashboards,pages,actions}.
Both sections' meta.ja.json already match the English pages list.

Refs #388

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
…tput (#393)

/api/search kept every locale's Orama index (30-40 MB each) and every
page module page.data.load() imported, so one Worker isolate grew from
58 MB after its first locale to 283 MB after all eight, and #390's ja
pages tipped it past 128 MB into 503s.

- scripts/gen-search-data.mjs computes each page's structuredData before
  next build with fumadocs-mdx's own remark chain and writes one gzipped
  module per locale to apps/docs/.search/; the route reads that instead
  of importing page modules.
- The route keeps the most recently used locale's index only.
- check-search-heap.mjs asks the built route in every locale twice and
  fails above 100 MB or when the second pass keeps growing; it runs in
  ci.yml after check-search-locales and its --self-test is in SELF_TESTED.

Measured on the built route: levels at 50-54 MB across both passes.

Fixes #393

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
The tree is unchanged: the diff against main is the #393 commit only.

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
…388, PR 2 of 7)

Reverts #392, which reverted #390 because /api/search ran out of Worker
memory. #394 (#393) fixed that, so the same 11 ja pages come back
unchanged.

Refs #388

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
The tree is unchanged: the diff against main is the re-landed ja pages only.

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
Six route handlers (search, og, sitemap, llms.txt, llms-full.txt,
llms.mdx) import lib/source.ts, whose fumadocs-mdx collection holds a
lazy import() of every compiled page. Turbopack compiles route handlers
as their own module graph, so the Worker carried a second copy of every
page module: ~20 MB of upload, and each translated page cost ~170-235 KiB
instead of ~86. #388's PR 3 would have gone over the 61,440 KiB budget.

- scripts/gen-route-data.mjs (was gen-search-data.mjs) also writes
  .route-data/collection.ts: .source/server.ts with each page's body
  import replaced by a read of generated data, and markdown.ts, the
  English pages' processed Markdown the llms routes serve. With --dev it
  re-exports the full collection so next dev sees new pages.
- lib/source.ts builds its loader on that collection; the page route
  loads bodies through lib/page-body.ts, the only module that imports
  the full collection.
- lib/packed.ts unpacks the generated gzip+base64 strings.
- The Worker budget step prints a per-page projection from the bundle's
  metafile (check-worker-page-cost.mjs, in SELF_TESTED).

Measured, same machine: main f7e4a57 59,173 KiB, this change 38,909 KiB;
with every ja page filled in, 43,700 KiB.

Fixes #395

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
The tree is unchanged: the diff against main is the #395 commit only.

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
Adds ja translations for the 14 configure/ pages: index, ai, api-access,
authentication, data-sources, email, localization, mcp, notifications,
runtime, storage, system-settings, users and webhooks. configure/
meta.ja.json already matches the English pages list. Same rules as the
earlier batches: English heading ids, fences byte for byte, glossary ja
column, UI labels in English, one line per paragraph, each page stamped.

check-translations: ja 0 stale, 41 missing (was 55).

Refs #388

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
… PR 4 of 7)

Adds ja translations for the 7 configure/permissions/ pages (index,
managing-access, permission-sets, positions, record-access,
field-level-security, hierarchy-visibility) and the 8 cloud/ pages
(organization, environments, plans-and-seats, ai-credits-and-limits,
storage-and-limits, domains, apps, cloud-connection), plus a new
cloud/meta.ja.json whose pages match the English. configure/permissions/
meta.ja.json already matched. Same rules as the earlier batches.

check-translations: ja 0 stale, 26 missing (was 41).

Refs #388

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
Adds ja translations for the 4 deploy/ pages (index, docker, kubernetes,
air-gapped) and the 7 operate/ pages. Both sections' meta.ja.json
already match the English pages list. Same rules as the earlier batches.

check-translations: ja 0 stale, 15 missing (was 26).

Refs #388

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
…388, PR 6 of 7)

Adds ja translations for the 9 reference/ pages and the two root pages,
architecture and ontology. reference/meta.ja.json already matches the
English pages list; the root sidebar has only meta.json. Same rules as
the earlier batches.

check-translations: ja 0 stale, 4 missing (was 15).

Refs #388

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
… PR 7 of 7)

Adds ja translations for the 4 resources/ pages: changelog, faq,
glossary and support. resources/meta.ja.json already matches the
English pages list. Same rules as the earlier batches.

With this batch every English page has a ja translation.
check-translations: ja 0 stale, 0 missing (was 4).

Fixes #388

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
#403 changed step 1 of "Start on ObjectOS Cloud" to link the console's
register and sign-in pages instead of www.objectos.ai. This carries the
same change into zh-Hans and ja, restamps both, and regenerates zh-Hant
with gen:zh-hant.

check-translations: zh-Hans and ja 0 stale, 0 missing.

Fixes #404

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
…-Hant and ja (#414)

#410 added subscription management, AI seat changes and Paddle as the
seller to cloud/plans-and-seats and cloud/ai-credits-and-limits. #413
moved the sales contact to sales@objectos.ai on editions/license,
resources/support, resources/faq and start/enterprise. This carries only
the changed parts into zh-Hans and ja, restamps all twelve pages, and
regenerates zh-Hant with gen:zh-hant. Paddle, emails and URLs are copied
byte for byte.

check-translations: zh-Hans and ja 0 stale, 0 missing.

Fixes #414

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
@zhuangjianguo zhuangjianguo self-assigned this Oct 31, 2026
@objectstack-fleet

Copy link
Copy Markdown
Contributor

席位核对 · ACCEPT · 2026-10-31T12:32Z · session_01QsR2jTaZ2GeyfjANMwstiw · seat repo:docs.objectos.ai#1

  1. Shape. Draft PR against main 392b72c, head 470446b. 18 locale files, +141/−68. The body says Fixes #414. Claim 6543341434, branch claude/project-thread-u7eoxi. The changes stay within the claimed surface: the zh-Hans, zh-Hant and ja siblings of the six pages.
  2. Structure, seat check on all 12 hand-translated files. Heading counts match the English: plans-and-seats 9, ai-credits-and-limits 8, license 15, faq 47, support 6, enterprise 3. The ja ids match the zh-Hans siblings one for one. Fenced code is byte-identical to the English in both locales.
  3. Links. In five pages, the sorted mailto: and http(s) targets are identical across en, zh-Hans and ja, including mailto:sales@objectos.ai and the Paddle and refunds links. faq's only difference is the seat's extraction regex catching the punctuation after http://localhost:3000, which is unchanged from main.
  4. Gates, seat re-run at 470446b.
    • check-translations: zh-Hans 0/0 and ja 0/0, each down from 6 stale.
    • check-translation-output --files with a list file: blocking on 18, passed, 0 findings.
    • gen-zh-hant.mjs --check: 115 files match.
    • Check-runs: Ownership & freshness success · Node floor success · build must pass.
  5. The dev's rendered check. plans-and-seats in ja, zh-Hans and zh-Hant, plus ai-credits-and-limits in ja and zh-Hans, return 200 in their own language and render the new sections.
  6. Landing. Tier none. This is a translation routine (Run the zh-Hans translation pass as a routine (on merge to main touching English pages, or weekly), stamped with --stamp, so coverage converges without a hand-run pass #379) re-sync. It lands through the merge queue under the standing go-ahead.

@zhuangjianguo
zhuangjianguo marked this pull request as ready for review October 31, 2026 12:34
@zhuangjianguo
zhuangjianguo added this pull request to the merge queue Oct 31, 2026
Merged via the queue into main with commit 98607a9 Oct 31, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Re-sync six pages in zh-Hans and ja after #410 and #413 (Cloud billing via Paddle, AI seats, sales contact)

1 participant