Repository navigation
fix(plugin-list): translate the synthetic "All records" user-filter tab (objectui#13405) - #13423
Merged
objectstack-fleet[bot] merged 2 commits intoOct 23, 2026
Merged
Conversation
…ab (objectui#13405) A tabs-mode user-filter bar with showAllRecords appended a tab labelled with the literal English string 'All records', so a zh-CN list showed it beside translated tabs. TabFilters now reads the label through useSafeTranslate from the new list.userFilters.allRecords key (inline fallback 'All records'), added to all ten locale packs. The __all__ id and tab behaviour are unchanged. Claude-Session: https://claude.ai/code/session_01WJozybDmRH8z2c5SD7vJkj Co-authored-by: Claude <noreply@anthropic.com>
…nt readiness probe Claude-Session: https://claude.ai/code/session_01WJozybDmRH8z2c5SD7vJkj Co-authored-by: Claude <noreply@anthropic.com>
Contributor
✅ Console Performance Budget
The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it. 📦 Bundle Size Report
Size Limits
|
Contributor
Author
席位核对ACCEPT — objectui#13405 (p3, S), head Seat: domain:ui#1 · Clause-②: no
|
objectstack-fleet
Bot
deleted the
claude/issue-13405-all-records-tab-label
branch
October 23, 2026 20:19
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.
Closes #13405
Clause-②: no
What changed
A tabs-mode user-filter bar with
showAllRecordsappends a synthetic trailing tab,{ id: '__all__', … }, whose label was the literal English string'All records', so a zh-CN list showed it beside translated tabs.packages/plugin-list/src/UserFilters.tsx(TabFilters): the label is now read throughuseSafeTranslate()(the hookDropdownFiltersin the same file already uses) astt('list.userFilters.allRecords', 'All records'). The translated value is read into a string before theallTabsmemo, so the memo keys on that string and not on the per-render identity oftt(AGENTS.md [WIP] Enhance every detail of the designer #10).TabFiltersis a component, so the hook path needed no workaround.list.userFilters.allRecords, in all ten packs underpackages/i18n/src/locales/: enAll records, zh全部记录, jaすべてのレコード, ko전체 레코드, deAlle Datensätze, esTodos los registros, frTous les enregistrements, ptTodos os registros, ruВсе записи, arجميع السجلات. No other key is touched.__all__id and the tab's behaviour (no conditions, reported as_tab: __all__) are unchanged..changeset/user-filters-all-records-label-13405.md: patch for@object-ui/plugin-listand@object-ui/i18n.Why a new key rather than the existing
list.allRecords: that key's en value is Title Case (All Records). Reusing it would change the English tab label, and the card asks for en to keep readingAll records. Its translations match the new key's values in every non-en pack.Tests
New file
packages/plugin-list/src/__tests__/UserFilters.allRecordsLabel-13405.test.tsx:filter-tab-__all__tab reads全部记录, and noAll recordstext is drawn.All records. With no provider, the inline fallback also readsAll records.[]and{ _tab: ['__all__'] }.t('common.more')), not through the tab label, so they do not depend on the fix.Results at head
2fbb3b2033:pnpm exec vitest run --maxWorkers=2 packages/plugin-list/ packages/i18n/(under the verify lock):Test Files 243 passed (243),Tests 2945 passed | 13 skipped (2958), VERDICT command-exit 0.all-locales-key-parity+en-zh-key-parityrun explicitly:Test Files 2 passed (2),Tests 48 passed (48).pnpm check:i18n-keys,check:i18n-drift(reports "0 en value(s) changed (1 key(s) added, 0 removed)"),check:i18n-dead-keys(the new key is not listed), andcheck:i18n-designer-parity: all exit 0.turbo run type-check --filter=@object-ui/plugin-list --filter=@object-ui/i18n:Tasks: 15 successful, 15 total, 0error TS. Both packages rantsc --noEmit && tsc -p tsconfig.test.json. Dependents were not type-checked.no-explicit-anywarnings, none on the changed lines.node scripts/check-changeset-presence.mjs: ✅, 1 changeset declared.pnpm check:new-line-citations: 0 new citations.Ablation. The fix was committed first. Then the label was set back to the literal
'All records'(on-disk check: injected=1,allRecordsLabeluses left=0) and the new file was run. Result:Tests 1 failed | 4 passed (5). Only the zh pin went red; the en, no-provider and both control cases stayed green, as expected. The file was restored withgit checkout HEAD --:git diff HEADis empty and the blob hash matches HEAD.Acceptance notes
Noted, not filed: the same tab strip's
allowAddTabaffordances are also English literals (title="Remove tab", theRemove tab …aria-label,title="Add filter tab",placeholder="Tab name"and theAdd tabbutton text inTabFilters). They are outside this card's surface and their reach was not measured. Carrier: none.Adds no product-specific widget, dialog, hook or string (see AGENTS.md › Product-neutral renderer)
Session:
https://claude.ai/code/session_01WJozybDmRH8z2c5SD7vJkj🤖 Generated with Claude Code
https://claude.ai/code/session_01WJozybDmRH8z2c5SD7vJkj