fix(client): Organizations tab renders {{count}} links / {{count}} key people literally #272
Labels
No labels
area:auth
area:ci
area:db
area:infra
area:native
area:pwa
area:service
epic
feature
foundation
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
james/carol#272
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Symptom
On the Organizations tab (
apps/client/app/(app)/network.tsx), each org row shows the literal strings{{count}} linksand{{count}} key people— the{{count}}placeholder is not interpolated. The actual link count / key-people count never renders.Root cause
The four affected catalog entries in
packages/i18n/messages/en.jsonuse double-brace{{count}}:But the universal client's i18next is configured (
apps/client/lib/i18n/setup.ts) withinterpolation: { prefix: "{", suffix: "}" }— single-brace ICU shape, matching the rest of the catalog and next-intl's syntax on the API side. With single-brace delimiters configured, i18next does not interpolate{{count}}, so the literal string passes through.The rest of the catalog correctly uses
{var}(37 single-brace occurrences vs these 4 double-brace stragglers). These four were introduced in #28 (organizations feature).Scope
{{count}}placeholders to{count}inpackages/i18n/messages/en.json.t("organizationsScreen.linkCountLabel", { count: o.linkCount })already passescountcorrectly.next-intldoes not read these keys.Pluralization (
_one/_other) works correctly already — only the interpolation is broken.Acceptance criteria
/network→ Organizations tab shows e.g.3 linksand2 key people, not{{count}} links/{{count}} key people.pnpm -F @carol/client typecheck/lint/testpass.{{occurrences remain inpackages/i18n/messages/*.json(grep clean).