9.5 KiB
9.5 KiB
workspace i18n audit - de
German translation audit for workspace routes with focus on CLI onboarding clarity, AI metric terminology, and billing top-up semantics.
coverage
- Route scope:
packages/console/app/src/routes/workspace/** - Locale file:
packages/console/app/src/i18n/de.ts - Source reference:
packages/console/app/src/i18n/en.ts - Unique keys in scope: 181
- Flagged keys: 34 (critical: 6, major: 27, minor: 1)
glossary decisions (de)
- Preserve literals exactly:
Zen,Stripe,OpenCode Black,opencode,API,/models - Preserve placeholders exactly (
{{provider}},{{amount}},{{plan}},{{prefix}}, etc.) API key:API-Schlüsselusage:Nutzungcost:Kosten; payments columnBetragbilling:Abrechnung- Billing
reloadsemantics:Aufladung/aufladen(neverNeuladen) - AI cost metrics: keep
Input,Output,Reasoning
required key updates
| key | replace with | severity | reason |
|---|---|---|---|
| workspace.newUser.step.login.before | Führe | critical | Wrong CLI verb in onboarding instruction. |
| workspace.monthlyLimit.set | Festlegen | critical | CTA mistranslated as noun (Satz). |
| workspace.reload.title | Automatische Aufladung | critical | Billing top-up semantics, not page reload. |
| workspace.reload.disabled.after | Aktivieren Sie diese Option, damit bei niedrigem Kontostand automatisch aufgeladen wird. | critical | Uses neu laden; must use billing top-up phrasing. |
| workspace.reload.enableAutoReload | Automatische Aufladung aktivieren | critical | Primary toggle must follow billing top-up semantics. |
| workspace.black.subscription.message | Sie haben OpenCode Black für ${{plan}} pro Monat abonniert. | critical | Missing $ before {{plan}}. |
| workspace.newUser.step.models.before | Starte opencode und führe | major | Unidiomatic command phrasing before /models. |
| workspace.newUser.copyApiKey | API-Schlüssel kopieren | major | Broken technical term word order. |
| workspace.keys.copyApiKey | API-Schlüssel kopieren | major | Broken technical term word order. |
| workspace.models.table.enabled | Aktiviert | major | Wrong toggle-state label. |
| workspace.providers.saving | Wird gespeichert... | major | Sparen... means saving money, not save state. |
| workspace.members.inviting | Wird eingeladen... | major | Incorrect invite loading state wording. |
| workspace.members.saving | Wird gespeichert... | major | Sparen... means saving money, not save state. |
| workspace.monthlyLimit.setting | Wird gesetzt... | major | In-progress state should be verbal action. |
| workspace.payments.table.amount | Betrag | major | Financial column mistranslated as quantity. |
| workspace.payments.view | Anzeigen | major | CTA mistranslated as noun (Sicht). |
| workspace.usage.table.input | Input | major | AI billing metric should remain technical term. |
| workspace.usage.table.output | Output | major | AI billing metric should remain technical term. |
| workspace.usage.breakdown.input | Input | major | AI billing metric should remain technical term. |
| workspace.usage.breakdown.output | Output | major | AI billing metric should remain technical term. |
| workspace.usage.breakdown.reasoning | Reasoning | major | AI billing metric should remain technical term. |
| workspace.reload.disabled.before | Automatische Aufladung ist | major | Should use top-up semantics instead of Nachladen. |
| workspace.reload.enabled.before | Automatische Aufladung ist | major | Should use top-up semantics instead of Nachladen. |
| workspace.reload.enabled.state | aktiviert | major | ermöglicht is wrong state adjective for toggle. |
| workspace.reload.enabled.middle | Wir laden auf | major | Should be account top-up verb (aufladen). |
| workspace.reload.enabled.after | sobald der Kontostand | major | Gleichgewicht is wrong meaning for account balance. |
| workspace.reload.reloadAmount | Aufladebetrag $ | major | Label should reflect top-up amount semantics. |
| workspace.reload.whenBalanceReaches | Wenn der Kontostand $ erreicht | major | Use account-balance term Kontostand. |
| workspace.reload.failedAt | Aufladung fehlgeschlagen am | major | Error copy should use top-up semantics. |
| workspace.reload.saving | Wird gespeichert... | major | Sparen... means saving money, not save state. |
| workspace.black.waitlist.left | Verlassen | major | Links is incorrect meaning. |
| workspace.black.waitlist.joined | Sie stehen auf der Warteliste für den OpenCode Black Tarif für ${{plan}} pro Monat. | major | Product name order/phrase is broken. |
| workspace.black.waitlist.ready | Wir können Sie jetzt in den OpenCode Black Tarif für ${{plan}} pro Monat aufnehmen. | major | Product name order/phrase is broken. |
| workspace.black.subscription.resetsIn | Zurückgesetzt in | minor | Improve pre-duration label grammar. |
implementation batches
- Critical blockers first
workspace.newUser.step.login.before,workspace.monthlyLimit.set,workspace.reload.title,workspace.reload.disabled.after,workspace.reload.enableAutoReload,workspace.black.subscription.message
- Reload semantics sweep
- All
workspace.reload.*keys listed above (state labels, helper text, error text, amount labels)
- All
- Onboarding + API key wording
workspace.newUser.step.models.before,workspace.newUser.copyApiKey,workspace.keys.copyApiKey
- Async/CTA quality fixes
workspace.providers.saving,workspace.members.inviting,workspace.members.saving,workspace.monthlyLimit.setting,workspace.payments.view,workspace.reload.saving
- AI usage/payments terminology
- usage
Input/Output/Reasoningkeys +workspace.payments.table.amount
- usage
- OpenCode Black waitlist copy
workspace.black.waitlist.left,workspace.black.waitlist.joined,workspace.black.waitlist.ready,workspace.black.subscription.resetsIn
acceptance checks for follow-up fix agent
- Flagged totals align with this spec: 34 (
critical6,major27,minor1). workspace.nav.zenremains exactlyZen.- Literals remain exact where present:
Stripe,OpenCode Black,opencode,API,/models. - Billing top-up copy consistently uses
Aufladung/aufladen(notNeuladen/Nachladen). - Usage metrics remain technical terms:
Input,Output,Reasoning. - Placeholders remain unchanged in all updated strings.