--- quick_id: 260701-abc status: complete date: 2026-07-01 commit: e5b76b7 --- # Summary: Fix i18n Missing Keys ## What was done Fixed two i18n bugs found during UAT testing. ### Bug 1: marketplace.accessDenied missing Added `"accessDenied"` to the `marketplace` section in both `de.json` and `en.json`. The marketplace page uses `useTranslations('marketplace')` and calls `t('accessDenied')` — the key existed at top level but not under the marketplace namespace. ### Bug 2: calendar-source-form.tsx hardcoded English Added 12 new translation keys to `widgets.calendar` in both locale files: `formFieldName`, `formFieldType`, `formFieldUrl`, `formFieldUsername`, `formFieldPassword`, `formFieldColor`, `formFieldExchangeMode`, `formSave`, `formSaving`, `formCancel`, `formUrlErrorHttps`, `formUrlErrorInvalid` Replaced all hardcoded English strings in `calendar-source-form.tsx` with `t()` calls. Removed the locale-detection hack on the Cancel button (`t('calendar.addSource') === 'Add source' ? 'Cancel' : 'Abbrechen'`). ## Verification - Browser confirmed: calendar form shows "Typ", "Benutzername", "Passwort", "Farbe", "Speichern", "Abbrechen" - Browser confirmed: marketplace console no longer shows MISSING_MESSAGE error - TypeScript: no errors