Repository navigation
feat(admin): German API keys and webhooks cards on the Developers page - #437
Merged
Merged
Conversation
Slice 6 of the board card "Admin UI multi-language" (PVTI_lADOElDmdM4Bn50jzhCKGsA): the Developers page's API keys and webhooks cards read their copy from the catalog (forms, lists, confirm buttons, notices, errors, delivery status) and format dates in the admin language. Scope values, event names and headers stay as code. English is unchanged outside a LocaleProvider. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RPybyvsSiw29SvDYH4GVbg
This was referenced Nov 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Board card: Admin UI multi-language (PVTI_lADOElDmdM4Bn50jzhCKGsA)
Slice 6 of the card (slice 1 #432: catalog, German shell, language picker; slice 2 #433: settings tabs, Account profile and password; slice 3 #434: sign-in methods, two-factor, sessions; slice 4 #435: availability and companies; slice 5 #436: Developers page jobs API, embed widget, preview). Draft card, so no
Closes.Research
ApiKeysCard,WebhooksCard) are still fully English, so the page is mixed. Both cards also hard-codeen-USfor dates ("last used Oct 5", delivery time).Plan and scope
Approach:
apiKeys.*andwebhooks.*keys (en + de) for titles, descriptions, form labels, buttons, confirm/keep, empty states, the one-time secret notice, the queued-test notices, fallback errors, and the delivery status words (queued/delivered/failed).read,write,X-Ganek-Signature) through a smallrichText(template, nodes)helper inlib/i18n/locale.tsxthat fills{name}placeholders with React nodes.INTL_LOCALES(en-US,de-DE) inmessages.ts; both cards format dates with the admin locale (e.g. "5. Okt.").language.partial(en + de) now lists API keys and webhooks.In scope: the above. Out of scope (next slices): the other settings pages (Branding, Hiring, Privacy, Emails, Team, Billing), the other admin screens, server-side storage of the language, locale-aware dates/numbers on data screens other than these two cards, candidate surfaces (card D3). Scope values, event names, header names, URLs and server error messages stay untranslated.
Copy notes: formal "Sie"; no en or em dashes.
Acceptance (this slice):
messages.test.tsparity and placeholders).Testing
pnpm typecheckOK,pnpm lint0 errors (3 pre-existing warnings),pnpm test128 files / 1244 tests passed (+4).ApiKeysCard in German(form, list, German dates "widerrufen am 5. Okt.", "zuletzt verwendet: nie", confirm buttons, empty state, one-time secret) andWebhooksCard in German(form, events group, delivery line "application.created fehlgeschlagen (HTTP 500) · 23. Okt.", test/remove buttons, queued notice, empty state).git diff | md5sumidentical on both sides (80c94395...).🤖 Generated with Claude Code
https://claude.ai/code/session_01RPybyvsSiw29SvDYH4GVbg
Status (run 2026-11-09 15:00 UTC)
All checks green, merged by auto-merge. The card's acceptance (admin fully in German) is still not met, so the card goes back to Ready for the next slice: the other settings pages (Branding, Hiring, Privacy, Emails, Team, Billing), the other admin screens, server-side storage of the language and locale-aware dates/numbers on the remaining screens.