Repository navigation
Closed
objectstack-ai/objectui
#3423Labels
bugSomething isn't workingSomething isn't workingpm:dispatchedDispatched to a dev agent by /pm-dispatchDispatched to a dev agent by /pm-dispatchpm:queueReady for the PM dispatch loopReady for the PM dispatch looprepo:objectuiSeam card: cross-repo ordering with objectui is the substance (pure objectui fixes live in objectui)Seam card: cross-repo ordering with objectui is the substance (pure objectui fixes live in objectui)
Description
Swept while implementing objectstack#5430. Same class as that issue — accessible names and visible defaults still hardcoded in English — but outside its four-string scope, so filed rather than fixed there.
| String | Site | Kind |
|---|---|---|
{count} items |
packages/components/src/renderers/layout/containers.tsx:573 — the page:tabs count badge's aria-label, built by template literal |
icon/number-only, so the label IS the badge to a screen reader; also English-pluralized by construction |
Resize drawer |
packages/components/src/custom/navigation-overlay.tsx:357 — the drag handle's aria-label on role="separator" |
handle has no visible label |
Open as full page |
packages/components/src/custom/navigation-overlay.tsx:279 — expandLabel prop default |
feeds both aria-label and title of an icon-only button; overridable by callers, but the default is what ships |
Record Detail |
packages/components/src/custom/navigation-overlay.tsx:282 — resolvedTitle = title || 'Record Detail' |
visible overlay heading, not just an a11y name |
1 reaction / {n} reactions |
packages/collaboration/src/CommentThread.tsx:520 — reaction tooltip, userIds.length === 1 ? '1 reaction' : ... |
English pluralization built in, exactly the shape #5430 replaced in ReactionPicker |
Also in the same file, three copies of the prose Record detail overlay for {resolvedTitle}. (navigation-overlay.tsx:377, :442, :526) feed SheetDescription/DialogDescription.
Notes for whoever picks this up
- The
CommentThreadone must use the repo's two-key plural convention (detail.reactionCount/detail.reactionCountOne, added to all ten packs by objectui: remaining untranslated console-chrome accessible names (Page header actions,Emoji picker, the reaction-count label,Close/Close panelin the nav overlay) #5430), not an i18next_one/_otherpair —all-locales-key-parityrejects the suffix scheme because zh/ja/ko have no separate singular form. The two keys already exist and interpolate{{emoji}}and{{count}};CommentThread's tooltip has no emoji, so it likely needs its own pair rather than reuse. {count} itemshas the same pluralization problem and needs the same two-key treatment.packages/collaborationis a different package from objectui: remaining untranslated console-chrome accessible names (Page header actions,Emoji picker, the reaction-count label,Close/Close panelin the nav overlay) #5430's three; check its i18n wiring before assuminguseSafeTranslateis available.- Watch the consumption radius:
e2e/live/inline-edit-polish-2572.spec.ts:61addresses the header toolbar by its English accessible name, andpackages/plugin-view/src/__tests__/ObjectView.test.tsxaddresses the overlay close bygetByLabelText('Close panel'). Both still pass after objectui: remaining untranslated console-chrome accessible names (Page header actions,Emoji picker, the reaction-count label,Close/Close panelin the nav overlay) #5430 (no provider means the English fallback resolves), but a locale-parameterized run would need updating.
The Record Detail default is the only visible string here; the rest are accessible names and hover tooltips.
Generated by Claude Code
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingpm:dispatchedDispatched to a dev agent by /pm-dispatchDispatched to a dev agent by /pm-dispatchpm:queueReady for the PM dispatch loopReady for the PM dispatch looprepo:objectuiSeam card: cross-repo ordering with objectui is the substance (pure objectui fixes live in objectui)Seam card: cross-repo ordering with objectui is the substance (pure objectui fixes live in objectui)
Activity
yinlianghui commentedon Aug 6, 2026
认领:objectui 分片 PM 并行批第 23 单(维护者提速指令,三单同批,文件面互不相交)
会话:
session_01GTRjn8xBqp75dk7kFupVRt分支:
claude/issue-5506-chrome-strings-i18n(代码落地 objectui 仓)Worktree:
objectui-issue-5506域:objectui 分片(components / collaboration / i18n locales)
文件面:
packages/components/src/renderers/layout/containers.tsx、packages/components/src/custom/navigation-overlay.tsx、packages/collaboration/src/CommentThread.tsx、packages/i18n/src/locales/*.ts+ 相应测试 +.changeset/*.md。同批:#3336(fields picker 面)、#3375(app-shell)—— 零相交。口径照正文 Notes:两处复数一律双 key 约定(CommentThread 无 emoji 需自己的键对,不硬套 #5430 的);collaboration 包先核 i18n 接线;
Record Detail是唯一可见串;消费半径注记(e2e 英文名定位、ObjectView 的 Close panel)照正文核对。Generated by Claude Code
yinlianghui commentedon Aug 6, 2026
验收:ACCEPT → objectui PR #3423(并行批第 23 单,会话
session_01GTRjn8xBqp75dk7kFupVRt),CI 全绿已入 auto-merge,合并后本单自动关闭。落地 5 处中的 4 处 + 三份 sr-only 描述合一(
detail.recordDetailOverlay带{{title}}):common.resizeDrawer、common.itemCount/itemCountOne(顺带修掉旧代码从无单数分支、任何语言都念 "1 items" 的缺陷)、detail.recordDetail(唯一可见串)、detail.openAsFullPage。计数徽标插值取格式化后字符串(1.2k),i18next 对 string count 跳过自身复数解析,双 key 约定不被抢——已核 i18next@26.3.6 源。反向验证 15 红 15 绿与预测一致,两处偏差(en 单数同红、no-provider 断言双向绿)均属预期方向且预先声明。第 5 处(CommentThread reaction tooltip)按 dev 上报的依赖决策,PM 裁定整包接入(方案 A 范围、C 路径),承接单 objectui#3424,裁定理由(两轴)已记录在该单,veto 窗口开放。同批派生:objectstack#5733(RecordDetailDrawer 同款
Resize drawer,等common.resizeDrawer落地后一行修)已由 dev 立单,本轮分诊。Generated by Claude Code
fix(collaboration,i18n): @object-ui/collaboration 整包接入 i18n,CommentTh…