2.9 KiB
2.9 KiB
quick_id, slug, date, status
| quick_id | slug | date | status |
|---|---|---|---|
| 260701-abc | i18n-missing-keys | 2026-07-01 | in-progress |
Quick Task: Fix i18n Missing Keys
Goal
Fix two i18n bugs found during UAT:
marketplace.accessDeniedmissing from both de.json and en.jsoncalendar-source-form.tsxuses 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:
"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:
"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.accessDeniedpresent 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