3.8 KiB
3.8 KiB
workspace i18n audit overview (zen workspace routes)
Audit objective: verify translation accuracy for customer-facing workspace management pages used to manage Zen (AI inference provider) usage, with strict terminology and brand integrity.
scope
- Routes audited:
packages/console/app/src/routes/workspace/**(all workspace TSX routes, including billing/keys/members/settings) - Locale files audited:
packages/console/app/src/i18n/ar.ts,packages/console/app/src/i18n/da.ts,packages/console/app/src/i18n/de.ts,packages/console/app/src/i18n/it.ts - Source-of-truth copy:
packages/console/app/src/i18n/en.ts - Total unique translation keys used by workspace routes: 181
deliverables
- Arabic audit and fix spec:
specs/20-workspace-i18n-audit-ar.md - Danish audit and fix spec:
specs/21-workspace-i18n-audit-da.md - German audit and fix spec:
specs/22-workspace-i18n-audit-de.md - Italian audit and fix spec:
specs/23-workspace-i18n-audit-it.md
These files are intentionally execution-ready so follow-up agents can apply string fixes without re-auditing.
non-negotiable terminology contract
- Product names and brands:
Zenmust remain exactlyZen(never translated, never lowercased).Stripe,OpenCode Black,opencode,API,/modelsremain literal.
- AI domain terms must preserve technical meaning:
model= AI model, not fashion/product model.provider= AI provider/vendor.Bring Your Own Key= BYOK concept (user-provided API credential).
- Billing/top-up language must stay financial:
reloadin billing pages means balance top-up/recharge, not page refresh.amount,cost,usage,monthly spending limitmust map to metering/billing context.
- Placeholder and interpolation safety:
- Keep placeholders unchanged (
{{provider}},{{prefix}},{{amount}}, etc). - Keep currency symbols and key ordering intact.
- Keep placeholders unchanged (
cross-locale risk summary
- Critical risk focus across locales: billing
reloadtext must consistently mean balance top-up/recharge (not page refresh), while product literals and CLI command verbs remain exact. ar(Arabic): 31 flagged keys (critical: 4, major: 23, minor: 4), with critical literals broken forZen,Stripe, andOpenCode Blackwaitlist strings.da(Danish): 33 flagged keys (critical: 8, major: 18, minor: 7), concentrated in reload/top-up semantics plus onboarding/default-label blockers.de(German): 34 flagged keys (critical: 6, major: 27, minor: 1), centered on reload/top-up semantics, onboarding command phrasing, and usage metric wording.it(Italian): 25 flagged keys (critical: 2, major: 18, minor: 5), led byZencasing and waitlist status semantics with broader API/billing wording drift.
remediation workflow for follow-up agents
- Pick one locale spec (
20/21/22/23) and apply only mapped key updates in that locale file. - Do not add/remove keys; only edit string values.
- Preserve placeholders and punctuation contracts.
- Run app typecheck:
bun run typecheckinpackages/console/app
- Run post-fix terminology sanity checks:
- Literal checks in locale files:
Zen,Stripe,OpenCode Black,opencode,API,/models. workspace.reload.*language matches top-up/recharge semantics.API keylabels are ordered naturally in target language.- Placeholders remain unchanged (
{{provider}},{{prefix}},{{plan}},{{amount}}, etc).
- Literal checks in locale files:
acceptance criteria
- All mapped critical and major issues in locale specs are fixed.
workspace.nav.zenis exactlyZenin all locales.workspace.billing.linkedToStripepreservesStripeliteral in all locales.- Workspace billing and usage terminology is technically accurate for AI inference workflows.
- No placeholder regressions.