tf_code/specs/21-workspace-i18n-audit-da.md

14 KiB

workspace i18n audit - da

Danish translation audit for workspace routes with emphasis on AI-provider, billing, and workspace-management accuracy.


coverage

  • Route scope: packages/console/app/src/routes/workspace/**
  • Locale file: packages/console/app/src/i18n/da.ts
  • Source reference: packages/console/app/src/i18n/en.ts
  • Unique locale keys used in scope: 181
  • Flagged keys: 33 (critical: 8, major: 18, minor: 7)

glossary decisions (da)

  • Zen: keep exactly Zen
  • Stripe: keep exactly Stripe
  • OpenCode Black: keep exactly OpenCode Black
  • opencode: keep exactly opencode
  • API: keep exactly API
  • /models: keep exactly /models
  • API key: API-nøgle
  • billing: fakturering
  • reload in wallet context: genopfyldning (top-up), never page refresh wording

required key updates

key current da replace with severity reason
workspace.newUser.step.login.before Løbe Kør critical Wrong verb for CLI instruction (opencode auth login).
workspace.settings.defaultName Misligholdelse Standard critical Wrong meaning for default-label UI text.
workspace.reload.title Automatisk genindlæsning Automatisk genopfyldning critical reload here is balance top-up, not page reload.
workspace.reload.disabled.before Automatisk genindlæsning er Automatisk genopfyldning er critical Same billing top-up semantic issue.
workspace.reload.enabled.before Automatisk genindlæsning er Automatisk genopfyldning er critical Same billing top-up semantic issue.
workspace.reload.enableAutoReload Aktiver automatisk genindlæsning Aktiver automatisk genopfyldning critical Same billing top-up semantic issue.
workspace.reload.reloadAmount Genindlæs $ Genopfyld $ critical Top-up amount label, not page reload action.
workspace.reload.failedAt Genindlæsning mislykkedes kl Genopfyldning mislykkedes kl critical Error refers to failed recharge event.
workspace.reload.disabled.after Aktiver for automatisk at genindlæse, når balancen er lav. Aktiver for automatisk at genopfylde, når saldoen er lav. major Must describe low-balance auto top-up behavior.
workspace.reload.enabled.middle Vi genindlæser Vi genopfylder major Must describe automatic recharge action.
workspace.reload.disabled.state handicappet deaktiveret major Wrong/off-tone toggle-state wording.
workspace.members.save Spare Gem major Current word means monetary savings, not save changes.
workspace.providers.save Spare Gem major Current word means monetary savings, not save changes.
workspace.reload.save Spare Gem major Current word means monetary savings, not save changes.
workspace.settings.save Spare Gem major Current word means monetary savings, not save changes.
workspace.keys.copyApiKey Kopiér nøglen API Kopiér API-nøgle major Incorrect technical phrase order.
workspace.newUser.copyApiKey Kopiér nøglen API Kopiér API-nøgle major Incorrect technical phrase order.
workspace.providers.placeholder Indtast nøglen {{provider}} API ({{prefix}}...) Indtast {{provider}} API-nøgle ({{prefix}}...) major Technical phrase is malformed; placeholders must be preserved exactly.
workspace.newUser.feature.tested.body Vi har benchmarket og testet modeller specifikt til kodningsmidler for at sikre den bedste ydeevne. Vi har benchmarket og testet modeller specifikt til kodningsagenter for at sikre den bedste ydeevne. major Wrong domain noun (kodningsmidler != coding agents).
workspace.payments.table.receipt Modtagelse Kvittering major Wrong payment term for receipt column.
workspace.payments.view Udsigt Vis major Wrong CTA meaning for “View” action.
workspace.black.waitlist.left Venstre Forladt major Wrong meaning (“left” direction vs status).
workspace.usage.table.output Produktion Output major Wrong AI metering term in token table.
workspace.usage.breakdown.output Produktion Output major Wrong AI metering term in token breakdown.
workspace.usage.table.cost Koste Omkostning major Wrong part of speech for metric label.
workspace.cost.title Koste Omkostninger major Wrong part of speech for section heading.
workspace.members.edit Redigere Rediger minor Use imperative CTA form.
workspace.providers.edit Redigere Rediger minor Use imperative CTA form.
workspace.reload.edit Redigere Rediger minor Use imperative CTA form.
workspace.settings.edit Redigere Rediger minor Use imperative CTA form.
workspace.billing.addAction Tilføje Tilføj minor Use imperative CTA form.
workspace.billing.manage Styre Administrer minor Better management CTA wording in product UI.
workspace.black.waitlist.enroll Indskrive Tilmeld minor Better enrollment CTA for subscription/waitlist flow.

implementation batches

  1. Critical blockers: onboarding + default + reload semantics
    • workspace.newUser.step.login.before
    • workspace.settings.defaultName
    • workspace.reload.title
    • workspace.reload.disabled.before
    • workspace.reload.enabled.before
    • workspace.reload.enableAutoReload
    • workspace.reload.reloadAmount
    • workspace.reload.failedAt
  2. Billing top-up and save-action correctness
    • Remaining workspace.reload.* in table
    • workspace.members.save, workspace.providers.save, workspace.reload.save, workspace.settings.save
  3. API and provider terminology cleanup
    • workspace.keys.copyApiKey, workspace.newUser.copyApiKey, workspace.providers.placeholder
  4. Usage/payments/workspace label fixes
    • workspace.newUser.feature.tested.body
    • workspace.payments.table.receipt, workspace.payments.view
    • workspace.black.waitlist.left
    • workspace.usage.table.output, workspace.usage.breakdown.output, workspace.usage.table.cost, workspace.cost.title
  5. CTA polish (minor imperative consistency)
    • all *.edit, workspace.billing.addAction, workspace.billing.manage, workspace.black.waitlist.enroll

acceptance checks for follow-up fix agent

  • Preserve literals exactly: Zen, Stripe, OpenCode Black, opencode, API, /models.
  • Preserve placeholders exactly (eg {{provider}}, {{prefix}}, {{plan}}, {{amount}}).
  • All workspace.reload.* labels must mean balance top-up/recharge (genopfyld*), never page refresh (genindlæs*).
  • Save CTAs must reflect saving changes (Gem / Gemmer...), not savings-money wording.
  • AI metering labels in usage tables remain technically correct (Input, Output, cost nouns).