|
|
@@ -1,103 +0,0 @@
|
|
|
-## 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).
|