Files
schalli f6173bbe35
Tessera CI/CD / Lint & Type Check (push) Successful in 45s
Tessera CI/CD / Tests (push) Has been cancelled
Tessera CI/CD / Build & Publish Images (push) Has been cancelled
docs(quick-260701-abc): fix i18n missing keys — summary and state update
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-01 12:06:32 +02:00

88 lines
2.9 KiB
Markdown

---
quick_id: 260701-abc
slug: i18n-missing-keys
date: 2026-07-01
status: in-progress
---
# Quick Task: Fix i18n Missing Keys
## Goal
Fix two i18n bugs found during UAT:
1. `marketplace.accessDenied` missing from both de.json and en.json
2. `calendar-source-form.tsx` uses hardcoded English strings instead of translations
## Tasks
### T-01: Add marketplace.accessDenied to de.json
Add `"accessDenied": "Zugriff verweigert"` to the `marketplace` section in de.json.
**File:** `apps/web/src/messages/de.json`
**Location:** After `"detailStatusInactive"` (line ~448), before closing `}`
### T-02: Add marketplace.accessDenied to en.json
Add `"accessDenied": "Access denied"` to the `marketplace` section in en.json.
**File:** `apps/web/src/messages/en.json`
**Location:** Same position as de.json
### T-03: Add calendar form translation keys to de.json
Add to `widgets.calendar` section in de.json:
```json
"formFieldName": "Name",
"formFieldType": "Typ",
"formFieldUrl": "URL",
"formFieldUsername": "Benutzername",
"formFieldPassword": "Passwort",
"formFieldColor": "Farbe",
"formFieldExchangeMode": "Exchange-Modus",
"formSave": "Speichern",
"formSaving": "Wird gespeichert...",
"formCancel": "Abbrechen",
"formUrlErrorHttps": "URL muss HTTPS verwenden",
"formUrlErrorInvalid": "Ungültiges URL-Format"
```
### T-04: Add calendar form translation keys to en.json
Add to `widgets.calendar` section in en.json:
```json
"formFieldName": "Name",
"formFieldType": "Type",
"formFieldUrl": "URL",
"formFieldUsername": "Username",
"formFieldPassword": "Password",
"formFieldColor": "Color",
"formFieldExchangeMode": "Exchange Mode",
"formSave": "Save",
"formSaving": "Saving...",
"formCancel": "Cancel",
"formUrlErrorHttps": "URL must use HTTPS protocol",
"formUrlErrorInvalid": "Invalid URL format"
```
### T-05: Fix calendar-source-form.tsx
Replace all hardcoded English strings with `t()` calls. Remove hack on line 298.
**File:** `apps/web/src/components/settings/calendar-source-form.tsx`
Changes:
- `"Name *"` → `\`${t('calendar.formFieldName')} *\``
- `"Type *"` → `\`${t('calendar.formFieldType')} *\``
- `"URL *"` → `\`${t('calendar.formFieldUrl')} *\``
- `"Username"` → `t('calendar.formFieldUsername')`
- `"Password"` → `t('calendar.formFieldPassword')`
- `"Color"` → `t('calendar.formFieldColor')`
- `"Exchange Mode"` → `t('calendar.formFieldExchangeMode')`
- `'Saving...'` → `t('calendar.formSaving')`
- `'Save'` → `t('calendar.formSave')`
- Cancel button hack → `t('calendar.formCancel')`
- `'URL must use HTTPS protocol'` → `t('calendar.formUrlErrorHttps')`
- `'Invalid URL format'` → `t('calendar.formUrlErrorInvalid')`
## Must Haves
- [ ] `marketplace.accessDenied` present in de.json and en.json marketplace sections
- [ ] All 12 `formField*` / `form*` keys present in widgets.calendar for both locales
- [ ] No hardcoded English strings in calendar-source-form.tsx
- [ ] Hack on line 298 removed
- [ ] No TypeScript errors introduced