@authrim/setup 0.1.89 → 0.1.91

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/cli/commands/init.d.ts.map +1 -1
  2. package/dist/cli/commands/init.js +58 -11
  3. package/dist/cli/commands/init.js.map +1 -1
  4. package/dist/core/lock.d.ts +16 -16
  5. package/dist/core/wrangler.d.ts.map +1 -1
  6. package/dist/core/wrangler.js +21 -2
  7. package/dist/core/wrangler.js.map +1 -1
  8. package/dist/i18n/index.d.ts.map +1 -1
  9. package/dist/i18n/index.js +14 -3
  10. package/dist/i18n/index.js.map +1 -1
  11. package/dist/i18n/locales/de.d.ts +8 -0
  12. package/dist/i18n/locales/de.d.ts.map +1 -0
  13. package/dist/i18n/locales/de.js +894 -0
  14. package/dist/i18n/locales/de.js.map +1 -0
  15. package/dist/i18n/locales/es.d.ts +8 -0
  16. package/dist/i18n/locales/es.d.ts.map +1 -0
  17. package/dist/i18n/locales/es.js +894 -0
  18. package/dist/i18n/locales/es.js.map +1 -0
  19. package/dist/i18n/locales/fr.d.ts +8 -0
  20. package/dist/i18n/locales/fr.d.ts.map +1 -0
  21. package/dist/i18n/locales/fr.js +894 -0
  22. package/dist/i18n/locales/fr.js.map +1 -0
  23. package/dist/i18n/locales/id.d.ts +8 -0
  24. package/dist/i18n/locales/id.d.ts.map +1 -0
  25. package/dist/i18n/locales/id.js +894 -0
  26. package/dist/i18n/locales/id.js.map +1 -0
  27. package/dist/i18n/locales/ko.d.ts +8 -0
  28. package/dist/i18n/locales/ko.d.ts.map +1 -0
  29. package/dist/i18n/locales/ko.js +894 -0
  30. package/dist/i18n/locales/ko.js.map +1 -0
  31. package/dist/i18n/locales/pt.d.ts +8 -0
  32. package/dist/i18n/locales/pt.d.ts.map +1 -0
  33. package/dist/i18n/locales/pt.js +894 -0
  34. package/dist/i18n/locales/pt.js.map +1 -0
  35. package/dist/i18n/locales/ru.d.ts +8 -0
  36. package/dist/i18n/locales/ru.d.ts.map +1 -0
  37. package/dist/i18n/locales/ru.js +894 -0
  38. package/dist/i18n/locales/ru.js.map +1 -0
  39. package/dist/i18n/locales/zh-CN.d.ts +8 -0
  40. package/dist/i18n/locales/zh-CN.d.ts.map +1 -0
  41. package/dist/i18n/locales/zh-CN.js +894 -0
  42. package/dist/i18n/locales/zh-CN.js.map +1 -0
  43. package/dist/i18n/locales/zh-TW.d.ts +8 -0
  44. package/dist/i18n/locales/zh-TW.d.ts.map +1 -0
  45. package/dist/i18n/locales/zh-TW.js +894 -0
  46. package/dist/i18n/locales/zh-TW.js.map +1 -0
  47. package/dist/i18n/types.d.ts +1 -1
  48. package/dist/i18n/types.d.ts.map +1 -1
  49. package/dist/i18n/types.js +1 -0
  50. package/dist/i18n/types.js.map +1 -1
  51. package/dist/web/ui.d.ts.map +1 -1
  52. package/dist/web/ui.js +7 -2
  53. package/dist/web/ui.js.map +1 -1
  54. package/package.json +1 -1
@@ -0,0 +1,894 @@
1
+ /**
2
+ * German Translations for Authrim Setup Tool
3
+ * Deutsche Übersetzungen
4
+ */
5
+ const de = {
6
+ // Language selection
7
+ 'language.select': 'Select language / 言語を選択 / 选择语言',
8
+ 'language.selected': 'Sprache: {{language}}',
9
+ // Banner
10
+ 'banner.title': 'Authrim Einrichtung',
11
+ 'banner.subtitle': 'OIDC-Anbieter auf Cloudflare Workers',
12
+ 'banner.warning': 'WARNUNG: In Entwicklung!',
13
+ 'banner.warningDetail': 'Dieses Projekt funktioniert noch nicht korrekt.',
14
+ 'banner.adminWarning': 'Die Admin-Oberfläche ist unvollständig und unterstützt keine Anmeldung.',
15
+ 'banner.exitHint': 'Drücken Sie jederzeit Strg+C zum Beenden',
16
+ // Mode selection
17
+ 'mode.prompt': 'Wählen Sie die Einrichtungsmethode',
18
+ 'mode.quick': 'Web-Oberfläche (Empfohlen)',
19
+ 'mode.quickDesc': 'Interaktive Einrichtung in Ihrem Browser',
20
+ 'mode.advanced': 'CLI-Modus',
21
+ 'mode.advancedDesc': 'Interaktive Einrichtung im Terminal',
22
+ // Startup menu
23
+ 'startup.description': 'Richten Sie den Authrim OIDC-Anbieter auf Cloudflare Workers ein.',
24
+ 'startup.cancel': 'Abbrechen',
25
+ 'startup.cancelDesc': 'Einrichtung beenden',
26
+ 'startup.cancelled': 'Einrichtung abgebrochen.',
27
+ 'startup.resumeLater': 'Um später fortzufahren:',
28
+ // Main menu
29
+ 'menu.prompt': 'Was möchten Sie tun?',
30
+ 'menu.quick': 'Schnelleinrichtung (5 Minuten)',
31
+ 'menu.quickDesc': 'Authrim mit minimaler Konfiguration bereitstellen',
32
+ 'menu.custom': 'Benutzerdefinierte Einrichtung',
33
+ 'menu.customDesc': 'Alle Optionen Schritt für Schritt konfigurieren',
34
+ // Setup titles
35
+ 'quick.title': '⚡ Schnelleinrichtung',
36
+ 'custom.title': '🔧 Benutzerdefinierte Einrichtung',
37
+ 'menu.manage': 'Vorhandene Umgebungen anzeigen',
38
+ 'menu.manageDesc': 'Vorhandene Umgebungen anzeigen, prüfen oder löschen',
39
+ 'menu.load': 'Vorhandene Konfiguration laden',
40
+ 'menu.loadDesc': 'Einrichtung aus authrim-config.json fortsetzen',
41
+ 'menu.exit': 'Beenden',
42
+ 'menu.exitDesc': 'Einrichtung beenden',
43
+ 'menu.goodbye': 'Auf Wiedersehen!',
44
+ // Update check
45
+ 'update.checking': 'Suche nach Updates...',
46
+ 'update.available': 'Update verfügbar: {{localVersion}} → {{remoteVersion}}',
47
+ 'update.prompt': 'Was möchten Sie tun?',
48
+ 'update.continue': 'Mit aktueller Version fortfahren ({{version}})',
49
+ 'update.continueDesc': 'Vorhandenen Quellcode verwenden',
50
+ 'update.update': 'Auf neueste Version aktualisieren ({{version}})',
51
+ 'update.updateDesc': 'Neue Version herunterladen und ersetzen',
52
+ 'update.cancel': 'Abbrechen',
53
+ 'update.cancelled': 'Abgebrochen.',
54
+ 'update.current': 'Verwende Authrim-Quellcode (v{{version}})',
55
+ // Source download
56
+ 'source.downloading': 'Lade Quellcode herunter...',
57
+ 'source.downloaded': 'Quellcode heruntergeladen ({{version}})',
58
+ 'source.extracting': 'Extrahiere Quellcode...',
59
+ 'source.installing': 'Installiere Abhängigkeiten (dies kann einige Minuten dauern)...',
60
+ 'source.installed': 'Abhängigkeiten installiert',
61
+ 'source.installFailed': 'Installation der Abhängigkeiten fehlgeschlagen',
62
+ 'source.installManually': 'Sie können versuchen, manuell zu installieren:',
63
+ 'source.notInSourceDir': 'Authrim-Quellcode nicht gefunden',
64
+ 'source.downloadPrompt': 'Quellcode nach {{path}} herunterladen?',
65
+ 'source.downloadOption': 'Quellcode herunterladen',
66
+ 'source.downloadOptionDesc': 'Neueste Version herunterladen',
67
+ 'source.exitOption': 'Beenden',
68
+ 'source.exitOptionDesc': 'Einrichtung beenden',
69
+ 'source.cloneManually': 'Zum manuellen Klonen:',
70
+ 'source.directoryExists': 'Verzeichnis {{path}} existiert, ist aber kein gültiger Authrim-Quellcode',
71
+ 'source.replaceOption': 'Durch neuen Download ersetzen',
72
+ 'source.replaceOptionDesc': '{{path}} entfernen und neueste Version herunterladen',
73
+ 'source.differentOption': 'Anderes Verzeichnis verwenden',
74
+ 'source.differentOptionDesc': 'Anderen Speicherort angeben',
75
+ 'source.enterPath': 'Verzeichnispfad eingeben:',
76
+ 'source.updateFailed': 'Aktualisierung fehlgeschlagen',
77
+ 'source.downloadFailed': 'Download fehlgeschlagen',
78
+ 'source.verificationWarnings': 'Warnungen bei der Quellcode-Strukturprüfung:',
79
+ // Prerequisites
80
+ 'prereq.checking': 'Überprüfe Wrangler-Status...',
81
+ 'prereq.wranglerNotInstalled': 'Wrangler ist nicht installiert',
82
+ 'prereq.wranglerInstallHint': 'Führen Sie folgenden Befehl zur Installation aus:',
83
+ 'prereq.notLoggedIn': 'Nicht bei Cloudflare angemeldet',
84
+ 'prereq.loginHint': 'Führen Sie folgenden Befehl zur Authentifizierung aus:',
85
+ 'prereq.loggedInAs': 'Mit Cloudflare verbunden ({{email}})',
86
+ 'prereq.accountId': 'Konto-ID: {{accountId}}',
87
+ // Environment
88
+ 'env.prompt': 'Umgebungsnamen eingeben',
89
+ 'env.prod': 'Produktion',
90
+ 'env.prodDesc': 'Für den Produktiveinsatz',
91
+ 'env.staging': 'Staging',
92
+ 'env.stagingDesc': 'Für Tests vor der Produktion',
93
+ 'env.dev': 'Entwicklung',
94
+ 'env.devDesc': 'Für lokale Entwicklung',
95
+ 'env.custom': 'Benutzerdefiniert',
96
+ 'env.customDesc': 'Benutzerdefinierten Umgebungsnamen eingeben',
97
+ 'env.customPrompt': 'Benutzerdefinierten Umgebungsnamen eingeben',
98
+ 'env.customValidation': 'Nur Kleinbuchstaben, Zahlen und Bindestriche erlaubt (z.B. prod, staging, dev)',
99
+ 'env.detected': 'Erkannte Umgebungen:',
100
+ 'env.selectExisting': 'Vorhandene Umgebung auswählen',
101
+ 'env.createNew': 'Neue Umgebung erstellen',
102
+ 'env.createNewDesc': 'Eine neue Umgebung einrichten',
103
+ 'env.checking': 'Suche nach vorhandenen Umgebungen...',
104
+ 'env.alreadyExists': 'Umgebung "{{env}}" existiert bereits',
105
+ 'env.existingResources': 'Vorhandene Ressourcen:',
106
+ 'env.workers': 'Workers: {{count}}',
107
+ 'env.d1Databases': 'D1-Datenbanken: {{count}}',
108
+ 'env.kvNamespaces': 'KV-Namespaces: {{count}}',
109
+ 'env.chooseAnother': 'Bitte wählen Sie einen anderen Namen oder verwenden Sie "npx @authrim/setup manage" um sie zuerst zu löschen.',
110
+ 'env.available': 'Umgebungsname ist verfügbar',
111
+ 'env.checkFailed': 'Vorhandene Umgebungen konnten nicht überprüft werden (fahre trotzdem fort)',
112
+ 'env.noEnvFound': 'Keine Authrim-Umgebungen gefunden.',
113
+ // Region
114
+ 'region.prompt': 'Region auswählen',
115
+ 'region.auto': 'Automatisch (nächstgelegene)',
116
+ 'region.autoDesc': 'Cloudflare die nächste Region wählen lassen',
117
+ 'region.wnam': 'Nordamerika (West)',
118
+ 'region.wnamDesc': 'Westliches Nordamerika',
119
+ 'region.enam': 'Nordamerika (Ost)',
120
+ 'region.enamDesc': 'Östliches Nordamerika',
121
+ 'region.weur': 'Europa (West)',
122
+ 'region.weurDesc': 'Westeuropa',
123
+ 'region.eeur': 'Europa (Ost)',
124
+ 'region.eeurDesc': 'Osteuropa',
125
+ 'region.apac': 'Asien-Pazifik',
126
+ 'region.apacDesc': 'Asien-Pazifik-Region',
127
+ 'region.oceania': 'Ozeanien',
128
+ 'region.oceaniaDesc': 'Australien und Pazifikinseln',
129
+ 'region.euJurisdiction': 'EU-Gerichtsbarkeit (DSGVO-konform)',
130
+ 'region.euJurisdictionDesc': 'Daten werden in der EU gespeichert',
131
+ // UI deployment
132
+ 'ui.prompt': 'UI-Bereitstellungsmethode',
133
+ 'ui.pagesOption': 'Cloudflare Pages',
134
+ 'ui.pagesDesc': 'Auf Cloudflare Pages bereitstellen (empfohlen)',
135
+ 'ui.customOption': 'Benutzerdefinierte Domain',
136
+ 'ui.customDesc': 'Eigenes Hosting verwenden',
137
+ 'ui.skipOption': 'Überspringen',
138
+ 'ui.skipDesc': 'UI-Bereitstellung überspringen',
139
+ 'ui.customPrompt': 'Benutzerdefinierte UI-URL eingeben',
140
+ // Domain
141
+ 'domain.prompt': 'Benutzerdefinierte Domain konfigurieren?',
142
+ 'domain.workersDevOption': 'workers.dev-Domain verwenden',
143
+ 'domain.workersDevDesc': 'Cloudflare-Standarddomain verwenden',
144
+ 'domain.customOption': 'Benutzerdefinierte Domain konfigurieren',
145
+ 'domain.customDesc': 'Eigene Domain verwenden',
146
+ 'domain.customPrompt': 'Benutzerdefinierte Domain eingeben (z.B. auth.beispiel.de)',
147
+ 'domain.customValidation': 'Bitte geben Sie eine gültige Domain ein (z.B. auth.beispiel.de)',
148
+ 'domain.issuerUrl': 'Aussteller-URL: {{url}}',
149
+ 'domain.apiDomain': 'API-/Aussteller-Domain (z.B. auth.beispiel.de)',
150
+ 'domain.loginUiDomain': 'Login-UI-Domain (Enter zum Überspringen)',
151
+ 'domain.adminUiDomain': 'Admin-UI-Domain (Enter zum Überspringen)',
152
+ 'domain.enterDomains': 'Benutzerdefinierte Domains eingeben (leer lassen für Cloudflare-Standards)',
153
+ 'domain.singleTenantNote': 'Im Single-Tenant-Modus: Aussteller-URL = API-Domain',
154
+ 'domain.usingWorkersDev': '(verwendet Cloudflare workers.dev-Domain)',
155
+ // Database
156
+ 'db.title': 'Datenbank-Konfiguration',
157
+ 'db.regionWarning': 'Die Datenbankregion kann nach der Erstellung nicht mehr geändert werden.',
158
+ 'db.coreDescription': 'Core-DB: Speichert OAuth-Clients, Tokens, Sitzungen, Audit-Logs',
159
+ 'db.coreRegion': 'Core-Datenbank-Region',
160
+ 'db.piiDescription': 'PII-DB: Speichert Benutzerprofile, Anmeldedaten, persönliche Daten',
161
+ 'db.piiNote': 'Berücksichtigen Sie Ihre Datenschutzanforderungen.',
162
+ 'db.piiRegion': 'PII-Datenbank-Region',
163
+ 'db.creating': 'Erstelle Datenbank...',
164
+ 'db.created': 'Datenbank erstellt: {{name}}',
165
+ 'db.existing': 'Verwende vorhandene Datenbank: {{name}}',
166
+ 'db.error': 'Datenbank konnte nicht erstellt werden',
167
+ 'db.locationHints': 'Standorthinweise',
168
+ 'db.jurisdictionCompliance': 'Gerichtsbarkeit (Compliance)',
169
+ // KV
170
+ 'kv.creating': 'Erstelle KV-Namespace...',
171
+ 'kv.created': 'KV-Namespace erstellt: {{name}}',
172
+ 'kv.existing': 'Verwende vorhandenen KV-Namespace: {{name}}',
173
+ 'kv.error': 'KV-Namespace konnte nicht erstellt werden',
174
+ // Queue
175
+ 'queue.creating': 'Erstelle Warteschlange...',
176
+ 'queue.created': 'Warteschlange erstellt: {{name}}',
177
+ 'queue.existing': 'Verwende vorhandene Warteschlange: {{name}}',
178
+ 'queue.error': 'Warteschlange konnte nicht erstellt werden',
179
+ // R2
180
+ 'r2.creating': 'Erstelle R2-Bucket...',
181
+ 'r2.created': 'R2-Bucket erstellt: {{name}}',
182
+ 'r2.existing': 'Verwende vorhandenen R2-Bucket: {{name}}',
183
+ 'r2.error': 'R2-Bucket konnte nicht erstellt werden',
184
+ // Keys
185
+ 'keys.generating': 'Generiere kryptografische Schlüssel...',
186
+ 'keys.generated': 'Schlüssel generiert ({{path}})',
187
+ 'keys.existing': 'Schlüssel existieren bereits für Umgebung "{{env}}"',
188
+ 'keys.existingWarning': 'Vorhandene Schlüssel werden überschrieben.',
189
+ 'keys.error': 'Schlüssel konnten nicht generiert werden',
190
+ 'keys.regeneratePrompt': 'Schlüssel neu generieren?',
191
+ 'keys.regenerateWarning': 'Dies macht alle vorhandenen Tokens ungültig!',
192
+ // Config
193
+ 'config.saving': 'Speichere Konfiguration...',
194
+ 'config.saved': 'Konfiguration gespeichert in {{path}}',
195
+ 'config.error': 'Konfiguration konnte nicht gespeichert werden',
196
+ 'config.path': 'Konfigurationspfad',
197
+ 'config.summary': 'Konfigurationsübersicht',
198
+ 'config.infrastructure': 'Infrastruktur:',
199
+ 'config.environment': 'Umgebung:',
200
+ 'config.workerPrefix': 'Worker-Präfix:',
201
+ 'config.profile': 'Profil:',
202
+ 'config.tenantIssuer': 'Tenant & Aussteller:',
203
+ 'config.mode': 'Modus:',
204
+ 'config.multiTenant': 'Multi-Tenant',
205
+ 'config.singleTenant': 'Single-Tenant',
206
+ 'config.baseDomain': 'Basis-Domain:',
207
+ 'config.issuerFormat': 'Aussteller-Format:',
208
+ 'config.issuerUrl': 'Aussteller-URL:',
209
+ 'config.defaultTenant': 'Standard-Tenant:',
210
+ 'config.displayName': 'Anzeigename:',
211
+ 'config.publicUrls': 'Öffentliche URLs:',
212
+ 'config.apiRouter': 'API-Router:',
213
+ 'config.loginUi': 'Login-UI:',
214
+ 'config.adminUi': 'Admin-UI:',
215
+ 'config.components': 'Komponenten:',
216
+ 'config.featureFlags': 'Feature-Flags:',
217
+ 'config.emailSettings': 'E-Mail:',
218
+ 'config.oidcSettings': 'OIDC-Einstellungen:',
219
+ 'config.accessTtl': 'Access-Token-TTL:',
220
+ 'config.refreshTtl': 'Refresh-Token-TTL:',
221
+ 'config.authCodeTtl': 'Auth-Code-TTL:',
222
+ 'config.pkceRequired': 'PKCE erforderlich:',
223
+ 'config.sharding': 'Sharding:',
224
+ 'config.authCodeShards': 'Auth-Code:',
225
+ 'config.refreshTokenShards': 'Refresh-Token:',
226
+ 'config.database': 'Datenbank:',
227
+ 'config.coreDb': 'Core-DB:',
228
+ 'config.piiDb': 'PII-DB:',
229
+ 'config.enabled': 'Aktiviert',
230
+ 'config.disabled': 'Deaktiviert',
231
+ 'config.standard': '(Standard)',
232
+ 'config.notConfigured': 'Nicht konfiguriert (später konfigurieren)',
233
+ 'config.yes': 'Ja',
234
+ 'config.no': 'Nein',
235
+ 'config.shards': 'Shards',
236
+ 'config.sec': 'Sek',
237
+ 'config.automatic': 'Automatisch',
238
+ // Deploy
239
+ 'deploy.prompt': 'Einrichtung mit dieser Konfiguration starten?',
240
+ 'deploy.starting': 'Führe Einrichtung aus...',
241
+ 'deploy.building': 'Erstelle Pakete...',
242
+ 'deploy.deploying': 'Bereitstellung auf Cloudflare...',
243
+ 'deploy.success': 'Einrichtung abgeschlossen!',
244
+ 'deploy.error': 'Bereitstellung fehlgeschlagen',
245
+ 'deploy.skipped': 'Bereitstellung übersprungen',
246
+ 'deploy.component': 'Stelle {{component}} bereit...',
247
+ 'deploy.uploadingSecrets': 'Lade Geheimnisse hoch...',
248
+ 'deploy.secretsUploaded': 'Geheimnisse hochgeladen',
249
+ 'deploy.runningMigrations': 'Führe Datenbankmigrationen aus...',
250
+ 'deploy.migrationsComplete': 'Migrationen abgeschlossen',
251
+ 'deploy.deployingWorker': 'Stelle Worker {{name}} bereit...',
252
+ 'deploy.workerDeployed': 'Worker bereitgestellt: {{name}}',
253
+ 'deploy.deployingUI': 'Stelle UI bereit...',
254
+ 'deploy.uiDeployed': 'UI bereitgestellt',
255
+ 'deploy.creatingResources': 'Erstelle Cloudflare-Ressourcen...',
256
+ 'deploy.resourcesFailed': 'Ressourcen konnten nicht erstellt werden',
257
+ 'deploy.continueWithout': 'Ohne Bereitstellung fortfahren? (Sie müssen Ressourcen manuell erstellen)',
258
+ 'deploy.emailSecretsSaved': 'E-Mail-Geheimnisse gespeichert in {{path}}',
259
+ 'deploy.confirmStart': 'Bereitstellung starten?',
260
+ 'deploy.confirmDryRun': 'Bereitstellung im Testmodus ausführen?',
261
+ 'deploy.cancelled': 'Bereitstellung abgebrochen.',
262
+ 'deploy.wranglerChanged': 'Wie möchten Sie mit diesen Änderungen umgehen?',
263
+ 'deploy.wranglerKeep': '📝 Manuelle Änderungen behalten (wie vorliegend bereitstellen)',
264
+ 'deploy.wranglerBackup': '💾 Sichern und mit Master überschreiben',
265
+ 'deploy.wranglerOverwrite': '⚠️ Mit Master überschreiben (Änderungen verlieren)',
266
+ // Email provider
267
+ 'email.title': 'E-Mail-Anbieter',
268
+ 'email.description': 'E-Mail-Versand für magische Links und Bestätigungscodes konfigurieren.',
269
+ 'email.prompt': 'E-Mail-Anbieter jetzt konfigurieren?',
270
+ 'email.resendOption': 'Resend',
271
+ 'email.resendDesc': 'Moderne E-Mail-API für Entwickler',
272
+ 'email.sesOption': 'AWS SES',
273
+ 'email.sesDesc': 'Amazon Simple Email Service',
274
+ 'email.smtpOption': 'SMTP',
275
+ 'email.smtpDesc': 'Generischer SMTP-Server',
276
+ 'email.skipOption': 'Keiner (später konfigurieren)',
277
+ 'email.skipDesc': 'E-Mail-Konfiguration überspringen',
278
+ 'email.apiKeyPrompt': 'Resend API-Schlüssel',
279
+ 'email.apiKeyHint': 'Holen Sie Ihren API-Schlüssel unter: https://resend.com/api-keys',
280
+ 'email.domainHint': 'Domain einrichten unter: https://resend.com/domains',
281
+ 'email.apiKeyRequired': 'API-Schlüssel ist erforderlich',
282
+ 'email.apiKeyWarning': 'Warnung: Resend API-Schlüssel beginnen typischerweise mit "re_"',
283
+ 'email.fromAddressPrompt': 'Absender-E-Mail-Adresse',
284
+ 'email.fromAddressValidation': 'Bitte geben Sie eine gültige E-Mail-Adresse ein',
285
+ 'email.fromNamePrompt': 'Absender-Anzeigename (optional)',
286
+ 'email.domainVerificationRequired': 'Domain-Verifizierung erforderlich für Versand von eigener Domain.',
287
+ 'email.seeDocumentation': 'Siehe: https://resend.com/docs/dashboard/domains/introduction',
288
+ 'email.provider': 'Anbieter:',
289
+ 'email.fromAddress': 'Absenderadresse:',
290
+ 'email.fromName': 'Absendername:',
291
+ // SMS provider
292
+ 'sms.prompt': 'SMS-Anbieter konfigurieren?',
293
+ 'sms.twilioOption': 'Twilio',
294
+ 'sms.twilioDesc': 'SMS über Twilio',
295
+ 'sms.skipOption': 'Keiner (später konfigurieren)',
296
+ 'sms.skipDesc': 'SMS-Konfiguration überspringen',
297
+ 'sms.accountSidPrompt': 'Twilio Account SID',
298
+ 'sms.authTokenPrompt': 'Twilio Auth Token',
299
+ 'sms.fromNumberPrompt': 'Absender-Telefonnummer',
300
+ // Social providers
301
+ 'social.prompt': 'Social-Login-Anbieter konfigurieren?',
302
+ 'social.googleOption': 'Google',
303
+ 'social.googleDesc': 'Mit Google anmelden',
304
+ 'social.githubOption': 'GitHub',
305
+ 'social.githubDesc': 'Mit GitHub anmelden',
306
+ 'social.appleOption': 'Apple',
307
+ 'social.appleDesc': 'Mit Apple anmelden',
308
+ 'social.microsoftOption': 'Microsoft',
309
+ 'social.microsoftDesc': 'Mit Microsoft anmelden',
310
+ 'social.skipOption': 'Keiner (später konfigurieren)',
311
+ 'social.skipDesc': 'Social-Login-Konfiguration überspringen',
312
+ 'social.clientIdPrompt': 'Client-ID',
313
+ 'social.clientSecretPrompt': 'Client-Secret',
314
+ // Cloudflare API Token
315
+ 'cf.apiTokenPrompt': 'Cloudflare API-Token eingeben',
316
+ 'cf.apiTokenValidation': 'Bitte geben Sie einen gültigen API-Token ein',
317
+ // OIDC Profile
318
+ 'profile.prompt': 'OIDC-Profil auswählen',
319
+ 'profile.basicOp': 'Basis-OP (Standard-OIDC-Anbieter)',
320
+ 'profile.basicOpDesc': 'Standard-OIDC-Funktionen',
321
+ 'profile.fapiRw': 'FAPI Read-Write (Finanzgrad)',
322
+ 'profile.fapiRwDesc': 'FAPI 1.0 Read-Write Sicherheitsprofil-kompatibel',
323
+ 'profile.fapi2Security': 'FAPI 2.0 Sicherheitsprofil',
324
+ 'profile.fapi2SecurityDesc': 'FAPI 2.0 Sicherheitsprofil-kompatibel (höchste Sicherheit)',
325
+ // Tenant configuration
326
+ 'tenant.title': 'Tenant-Modus',
327
+ 'tenant.multiTenantPrompt': 'Multi-Tenant-Modus aktivieren? (Subdomain-basierte Tenant-Isolierung)',
328
+ 'tenant.multiTenantTitle': 'Multi-Tenant URL-Konfiguration',
329
+ 'tenant.multiTenantNote1': 'Im Multi-Tenant-Modus:',
330
+ 'tenant.multiTenantNote2': 'Jeder Tenant hat eine Subdomain: https://{tenant}.{basis-domain}',
331
+ 'tenant.multiTenantNote3': 'Die Basis-Domain zeigt auf den Router-Worker',
332
+ 'tenant.multiTenantNote4': 'Die Aussteller-URL wird dynamisch aus dem Host-Header erstellt',
333
+ 'tenant.baseDomainPrompt': 'Basis-Domain (z.B. authrim.com)',
334
+ 'tenant.baseDomainRequired': 'Basis-Domain ist für Multi-Tenant-Modus erforderlich',
335
+ 'tenant.baseDomainValidation': 'Bitte geben Sie eine gültige Domain ein (z.B. authrim.com)',
336
+ 'tenant.issuerFormat': 'Aussteller-URL-Format: https://{tenant}.{{domain}}',
337
+ 'tenant.issuerExample': 'Beispiel: https://acme.{{domain}}',
338
+ 'tenant.defaultTenantPrompt': 'Standard-Tenant-Name (Bezeichner)',
339
+ 'tenant.defaultTenantValidation': 'Nur Kleinbuchstaben, Zahlen und Bindestriche erlaubt',
340
+ 'tenant.displayNamePrompt': 'Standard-Tenant-Anzeigename',
341
+ 'tenant.singleTenantTitle': 'Single-Tenant URL-Konfiguration',
342
+ 'tenant.singleTenantNote1': 'Im Single-Tenant-Modus:',
343
+ 'tenant.singleTenantNote2': 'Aussteller-URL = API-benutzerdefinierte Domain (oder workers.dev als Fallback)',
344
+ 'tenant.singleTenantNote3': 'Alle Clients teilen denselben Aussteller',
345
+ 'tenant.organizationName': 'Organisationsname (Anzeigename)',
346
+ 'tenant.uiDomainTitle': 'UI-Domain-Konfiguration',
347
+ 'tenant.customUiDomainPrompt': 'Benutzerdefinierte UI-Domains konfigurieren?',
348
+ 'tenant.loginUiDomain': 'Login-UI-Domain (z.B. login.beispiel.de)',
349
+ 'tenant.adminUiDomain': 'Admin-UI-Domain (z.B. admin.beispiel.de)',
350
+ // Optional components
351
+ 'components.title': 'Optionale Komponenten',
352
+ 'components.note': 'Hinweis: Social Login und Policy Engine sind Standardkomponenten',
353
+ 'components.samlPrompt': 'SAML-Unterstützung aktivieren?',
354
+ 'components.vcPrompt': 'Verifizierbare Credentials aktivieren?',
355
+ 'components.saml': 'SAML:',
356
+ 'components.vc': 'VC:',
357
+ 'components.socialLogin': 'Social Login:',
358
+ 'components.policyEngine': 'Policy Engine:',
359
+ // Feature flags
360
+ 'features.title': 'Feature-Flags',
361
+ 'features.queuePrompt': 'Cloudflare Queues aktivieren? (für Audit-Logs)',
362
+ 'features.r2Prompt': 'Cloudflare R2 aktivieren? (für Avatare)',
363
+ 'features.queue': 'Warteschlange:',
364
+ 'features.r2': 'R2:',
365
+ // OIDC settings
366
+ 'oidc.configurePrompt': 'OIDC-Einstellungen konfigurieren? (Token-TTL, etc.)',
367
+ 'oidc.title': 'OIDC-Einstellungen',
368
+ 'oidc.accessTokenTtl': 'Access-Token-TTL (Sek)',
369
+ 'oidc.refreshTokenTtl': 'Refresh-Token-TTL (Sek)',
370
+ 'oidc.authCodeTtl': 'Authorization-Code-TTL (Sek)',
371
+ 'oidc.pkceRequired': 'PKCE erforderlich?',
372
+ 'oidc.positiveInteger': 'Bitte geben Sie eine positive Ganzzahl ein',
373
+ // Sharding settings
374
+ 'sharding.configurePrompt': 'Sharding konfigurieren? (für Hochlastumgebungen)',
375
+ 'sharding.title': 'Sharding-Einstellungen',
376
+ 'sharding.note': 'Hinweis: Zweierpotenz empfohlen für Shard-Anzahl (8, 16, 32, 64, 128)',
377
+ 'sharding.authCodeShards': 'Auth-Code-Shard-Anzahl',
378
+ 'sharding.refreshTokenShards': 'Refresh-Token-Shard-Anzahl',
379
+ // Infrastructure
380
+ 'infra.title': 'Infrastruktur (Automatisch generiert)',
381
+ 'infra.workersNote': 'Folgende Workers werden bereitgestellt:',
382
+ 'infra.router': 'Router:',
383
+ 'infra.auth': 'Auth:',
384
+ 'infra.token': 'Token:',
385
+ 'infra.management': 'Verwaltung:',
386
+ 'infra.otherWorkers': '... und weitere unterstützende Workers',
387
+ 'infra.defaultEndpoints': 'Standard-Endpunkte (ohne benutzerdefinierte Domain):',
388
+ 'infra.api': 'API:',
389
+ 'infra.ui': 'UI:',
390
+ 'infra.workersToDeploy': 'Bereitzustellende Workers: {{workers}}',
391
+ 'infra.defaultApi': 'Standard-API: {{url}}',
392
+ // Completion
393
+ 'complete.title': 'Einrichtung abgeschlossen!',
394
+ 'complete.summary': 'Ihr Authrim OIDC-Anbieter wurde bereitgestellt.',
395
+ 'complete.issuerUrl': 'Aussteller-URL: {{url}}',
396
+ 'complete.adminUrl': 'Admin-Panel: {{url}}',
397
+ 'complete.uiUrl': 'Login-UI: {{url}}',
398
+ 'complete.nextSteps': 'Nächste Schritte:',
399
+ 'complete.nextStep1': '1. Überprüfen Sie die Bereitstellung durch Besuch der Aussteller-URL',
400
+ 'complete.nextStep2': '2. Konfigurieren Sie OAuth-Clients im Admin-Panel',
401
+ 'complete.nextStep3': '3. Richten Sie bei Bedarf benutzerdefinierte Domains ein',
402
+ 'complete.warning': 'Denken Sie daran, Ihre Schlüssel sicher und gesichert aufzubewahren!',
403
+ 'complete.success': 'Einrichtung erfolgreich abgeschlossen!',
404
+ 'complete.urls': 'URLs:',
405
+ 'complete.configLocation': 'Konfiguration:',
406
+ 'complete.keysLocation': 'Schlüssel:',
407
+ // Resource provisioning
408
+ 'resource.provisioning': 'Stelle {{resource}} bereit...',
409
+ 'resource.provisioned': '{{resource}} erfolgreich bereitgestellt',
410
+ 'resource.failed': 'Bereitstellung von {{resource}} fehlgeschlagen',
411
+ 'resource.skipped': '{{resource}} übersprungen',
412
+ // Manage environments
413
+ 'manage.title': 'Vorhandene Umgebungen',
414
+ 'manage.loading': 'Lade...',
415
+ 'manage.detecting': 'Erkenne Umgebungen...',
416
+ 'manage.detected': 'Erkannte Umgebungen:',
417
+ 'manage.noEnvs': 'Keine Authrim-Umgebungen gefunden.',
418
+ 'manage.selectAction': 'Aktion auswählen',
419
+ 'manage.viewDetails': 'Details anzeigen',
420
+ 'manage.viewDetailsDesc': 'Detaillierte Ressourceninformationen anzeigen',
421
+ 'manage.deleteEnv': 'Umgebung löschen',
422
+ 'manage.deleteEnvDesc': 'Umgebung und Ressourcen entfernen',
423
+ 'manage.backToMenu': 'Zurück zum Hauptmenü',
424
+ 'manage.backToMenuDesc': 'Zum Hauptmenü zurückkehren',
425
+ 'manage.selectEnv': 'Umgebung auswählen',
426
+ 'manage.back': 'Zurück',
427
+ 'manage.continueManaging': 'Umgebungsverwaltung fortsetzen?',
428
+ // Load config
429
+ 'loadConfig.title': 'Vorhandene Konfiguration laden',
430
+ 'loadConfig.found': '{{count}} Konfiguration(en) gefunden:',
431
+ 'loadConfig.new': '(neu)',
432
+ 'loadConfig.legacy': '(legacy)',
433
+ 'loadConfig.legacyDetected': 'Legacy-Struktur erkannt',
434
+ 'loadConfig.legacyFiles': 'Legacy-Dateien:',
435
+ 'loadConfig.newBenefits': 'Vorteile der neuen Struktur:',
436
+ 'loadConfig.benefit1': 'Umgebungsportabilität (zip .authrim/prod/)',
437
+ 'loadConfig.benefit2': 'Versionsverfolgung pro Umgebung',
438
+ 'loadConfig.benefit3': 'Sauberere Projektstruktur',
439
+ 'loadConfig.migratePrompt': 'Möchten Sie zur neuen Struktur migrieren?',
440
+ 'loadConfig.migrateOption': 'Zur neuen Struktur migrieren (.authrim/{env}/)',
441
+ 'loadConfig.continueOption': 'Mit Legacy-Struktur fortfahren',
442
+ 'loadConfig.migrationComplete': 'Migration erfolgreich abgeschlossen!',
443
+ 'loadConfig.validationPassed': 'Validierung bestanden',
444
+ 'loadConfig.validationIssues': 'Validierungsprobleme:',
445
+ 'loadConfig.newLocation': 'Neuer Konfigurationsspeicherort:',
446
+ 'loadConfig.migrationFailed': 'Migration fehlgeschlagen:',
447
+ 'loadConfig.continuingLegacy': 'Fahre mit Legacy-Struktur fort...',
448
+ 'loadConfig.loadThis': 'Diese Konfiguration laden',
449
+ 'loadConfig.specifyOther': 'Andere Datei angeben',
450
+ 'loadConfig.noConfigFound': 'Keine Konfiguration im aktuellen Verzeichnis gefunden.',
451
+ 'loadConfig.tip': 'Tipp: Sie können eine Konfigurationsdatei angeben mit:',
452
+ 'loadConfig.specifyPath': 'Dateipfad angeben',
453
+ 'loadConfig.enterPath': 'Konfigurationsdateipfad eingeben',
454
+ 'loadConfig.pathRequired': 'Bitte geben Sie einen Pfad ein',
455
+ 'loadConfig.fileNotFound': 'Datei nicht gefunden: {{path}}',
456
+ 'loadConfig.selectConfig': 'Konfiguration zum Laden auswählen',
457
+ // Common
458
+ 'common.yes': 'Ja',
459
+ 'common.no': 'Nein',
460
+ 'common.continue': 'Weiter',
461
+ 'common.cancel': 'Abbrechen',
462
+ 'common.skip': 'Überspringen',
463
+ 'common.back': 'Zurück',
464
+ 'common.confirm': 'Bestätigen',
465
+ 'common.error': 'Fehler',
466
+ 'common.warning': 'Warnung',
467
+ 'common.success': 'Erfolg',
468
+ 'common.info': 'Info',
469
+ 'common.loading': 'Lade...',
470
+ 'common.saving': 'Speichere...',
471
+ 'common.processing': 'Verarbeite...',
472
+ 'common.done': 'Fertig',
473
+ 'common.required': 'Erforderlich',
474
+ 'common.optional': 'Optional',
475
+ // Errors
476
+ 'error.generic': 'Ein Fehler ist aufgetreten',
477
+ 'error.network': 'Netzwerkfehler',
478
+ 'error.timeout': 'Zeitüberschreitung',
479
+ 'error.invalidInput': 'Ungültige Eingabe',
480
+ 'error.fileNotFound': 'Datei nicht gefunden',
481
+ 'error.permissionDenied': 'Zugriff verweigert',
482
+ 'error.configNotFound': 'Konfiguration nicht gefunden',
483
+ 'error.configInvalid': 'Ungültige Konfiguration',
484
+ 'error.deployFailed': 'Bereitstellung fehlgeschlagen',
485
+ 'error.resourceCreationFailed': 'Ressourcenerstellung fehlgeschlagen',
486
+ // Validation
487
+ 'validation.required': 'Dieses Feld ist erforderlich',
488
+ 'validation.invalidFormat': 'Ungültiges Format',
489
+ 'validation.tooShort': 'Zu kurz',
490
+ 'validation.tooLong': 'Zu lang',
491
+ 'validation.invalidDomain': 'Ungültige Domain',
492
+ 'validation.invalidEmail': 'Ungültige E-Mail-Adresse',
493
+ 'validation.invalidUrl': 'Ungültige URL',
494
+ // Delete command
495
+ 'delete.title': 'Umgebung löschen',
496
+ 'delete.prompt': 'Ressourcen zum Löschen auswählen',
497
+ 'delete.confirm': 'Sind Sie sicher, dass Sie "{{env}}" löschen möchten?',
498
+ 'delete.confirmPermanent': '⚠️ Dies löscht dauerhaft alle Ressourcen für "{{env}}". Fortfahren?',
499
+ 'delete.confirmWarning': 'Diese Aktion kann nicht rückgängig gemacht werden!',
500
+ 'delete.deleting': 'Lösche {{resource}}...',
501
+ 'delete.deleted': '{{resource}} gelöscht',
502
+ 'delete.error': 'Löschen von {{resource}} fehlgeschlagen',
503
+ 'delete.cancelled': 'Löschung abgebrochen',
504
+ 'delete.noEnvFound': 'Keine Umgebungen gefunden',
505
+ 'delete.selectEnv': 'Zu löschende Umgebung auswählen',
506
+ 'delete.workers': 'Workers',
507
+ 'delete.databases': 'D1-Datenbanken',
508
+ 'delete.kvNamespaces': 'KV-Namespaces',
509
+ 'delete.queues': 'Warteschlangen',
510
+ 'delete.r2Buckets': 'R2-Buckets',
511
+ // Info command
512
+ 'info.title': 'Umgebungsinformationen',
513
+ 'info.loading': 'Lade Umgebungsinformationen...',
514
+ 'info.noResources': 'Keine Ressourcen gefunden',
515
+ 'info.environment': 'Umgebung',
516
+ 'info.issuer': 'Aussteller',
517
+ 'info.workers': 'Workers',
518
+ 'info.databases': 'Datenbanken',
519
+ 'info.kvNamespaces': 'KV-Namespaces',
520
+ 'info.queues': 'Warteschlangen',
521
+ 'info.r2Buckets': 'R2-Buckets',
522
+ 'info.status': 'Status',
523
+ 'info.deployed': 'Bereitgestellt',
524
+ 'info.notDeployed': 'Nicht bereitgestellt',
525
+ // Config command
526
+ 'configCmd.title': 'Konfiguration',
527
+ 'configCmd.showing': 'Zeige Konfiguration',
528
+ 'configCmd.validating': 'Validiere Konfiguration...',
529
+ 'configCmd.valid': 'Konfiguration ist gültig',
530
+ 'configCmd.invalid': 'Konfiguration ist ungültig',
531
+ 'configCmd.notFound': 'Konfiguration nicht gefunden',
532
+ 'configCmd.error': 'Fehler beim Lesen der Konfiguration',
533
+ // Migrate command
534
+ 'migrate.title': 'Zur neuen Struktur migrieren',
535
+ 'migrate.checking': 'Überprüfe Migrationsstatus...',
536
+ 'migrate.noLegacyFound': 'Keine Legacy-Struktur gefunden',
537
+ 'migrate.legacyFound': 'Legacy-Struktur erkannt',
538
+ 'migrate.prompt': 'Zur neuen Struktur migrieren?',
539
+ 'migrate.migrating': 'Migriere...',
540
+ 'migrate.success': 'Migration erfolgreich',
541
+ 'migrate.cancelled': 'Migration abgebrochen.',
542
+ 'migrate.error': 'Migration fehlgeschlagen',
543
+ 'migrate.dryRun': 'Testlauf - keine Änderungen vorgenommen',
544
+ 'migrate.backup': 'Erstelle Backup...',
545
+ 'migrate.backupCreated': 'Backup erstellt in {{path}}',
546
+ // Manage command
547
+ 'manage.commandTitle': 'Authrim Umgebungsverwaltung',
548
+ // Web UI specific
549
+ 'web.title': 'Authrim Einrichtung',
550
+ 'web.subtitle': 'OIDC-Anbieter auf Cloudflare Workers',
551
+ 'web.loading': 'Lade...',
552
+ 'web.error': 'Ein Fehler ist aufgetreten',
553
+ 'web.retry': 'Erneut versuchen',
554
+ 'web.languageSelector': 'Sprache',
555
+ 'web.darkMode': 'Dunkel',
556
+ 'web.lightMode': 'Hell',
557
+ 'web.systemMode': 'System',
558
+ // Web UI Prerequisites
559
+ 'web.prereq.title': 'Voraussetzungen',
560
+ 'web.prereq.checking': 'Überprüfe...',
561
+ 'web.prereq.checkingRequirements': 'Überprüfe Systemanforderungen...',
562
+ 'web.prereq.ready': 'Bereit',
563
+ 'web.prereq.wranglerInstalled': 'Wrangler installiert',
564
+ 'web.prereq.loggedInAs': 'Angemeldet als {{email}}',
565
+ // Web UI Top Menu
566
+ 'web.menu.title': 'Erste Schritte',
567
+ 'web.menu.subtitle': 'Wählen Sie eine Option zum Fortfahren:',
568
+ 'web.menu.newSetup': 'Neue Einrichtung',
569
+ 'web.menu.newSetupDesc': 'Neue Authrim-Bereitstellung von Grund auf erstellen',
570
+ 'web.menu.loadConfig': 'Konfiguration laden',
571
+ 'web.menu.loadConfigDesc': 'Mit vorhandener Konfiguration fortsetzen oder neu bereitstellen',
572
+ 'web.menu.manageEnv': 'Umgebungen verwalten',
573
+ 'web.menu.manageEnvDesc': 'Vorhandene Umgebungen anzeigen, prüfen oder löschen',
574
+ // Web UI Setup Mode
575
+ 'web.mode.title': 'Einrichtungsmodus',
576
+ 'web.mode.subtitle': 'Wählen Sie, wie Sie Authrim einrichten möchten:',
577
+ 'web.mode.quick': 'Schnelleinrichtung',
578
+ 'web.mode.quickDesc': 'In ~5 Minuten starten',
579
+ 'web.mode.quickEnv': 'Umgebungsauswahl',
580
+ 'web.mode.quickDomain': 'Optionale benutzerdefinierte Domain',
581
+ 'web.mode.quickDefault': 'Standardkomponenten',
582
+ 'web.mode.recommended': 'Empfohlen',
583
+ 'web.mode.custom': 'Benutzerdefinierte Einrichtung',
584
+ 'web.mode.customDesc': 'Volle Kontrolle über die Konfiguration',
585
+ 'web.mode.customComp': 'Komponentenauswahl',
586
+ 'web.mode.customUrl': 'URL-Konfiguration',
587
+ 'web.mode.customAdvanced': 'Erweiterte Einstellungen',
588
+ // Web UI Load Config
589
+ 'web.loadConfig.title': 'Konfiguration laden',
590
+ 'web.loadConfig.subtitle': 'Wählen Sie Ihre authrim-config.json Datei:',
591
+ 'web.loadConfig.chooseFile': 'Datei auswählen',
592
+ 'web.loadConfig.preview': 'Konfigurationsvorschau',
593
+ 'web.loadConfig.validationFailed': 'Konfigurationsvalidierung fehlgeschlagen',
594
+ 'web.loadConfig.valid': 'Konfiguration ist gültig',
595
+ 'web.loadConfig.loadContinue': 'Laden und fortfahren',
596
+ // Web UI Configuration
597
+ 'web.config.title': 'Konfiguration',
598
+ 'web.config.components': 'Komponenten',
599
+ 'web.config.apiRequired': 'API (erforderlich)',
600
+ 'web.config.apiDesc': 'OIDC-Anbieter-Endpunkte: authorize, token, userinfo, discovery, Verwaltungs-APIs.',
601
+ 'web.config.saml': 'SAML IdP',
602
+ 'web.config.deviceFlow': 'Device Flow / CIBA',
603
+ 'web.config.vcSdJwt': 'VC SD-JWT',
604
+ 'web.config.loginUi': 'Login-UI',
605
+ 'web.config.loginUiDesc': 'Vorgefertigte Authentifizierungs-UI auf Cloudflare Pages.',
606
+ 'web.config.adminUi': 'Admin-UI',
607
+ 'web.config.adminUiDesc': 'Verwaltungs-Dashboard für Benutzer, Clients und Einstellungen.',
608
+ // Web UI URLs
609
+ 'web.url.title': 'URL-Konfiguration',
610
+ 'web.url.apiDomain': 'API-Domain',
611
+ 'web.url.apiDomainHint': 'Leer lassen um workers.dev-Subdomain zu verwenden',
612
+ 'web.url.loginDomain': 'Login-UI-Domain',
613
+ 'web.url.loginDomainHint': 'Leer lassen um pages.dev-Subdomain zu verwenden',
614
+ 'web.url.adminDomain': 'Admin-UI-Domain',
615
+ 'web.url.adminDomainHint': 'Leer lassen um pages.dev-Subdomain zu verwenden',
616
+ // Web UI Database
617
+ 'web.db.title': 'Datenbank-Konfiguration',
618
+ 'web.db.coreTitle': 'Core-Datenbank',
619
+ 'web.db.coreSubtitle': '(Nicht-PII)',
620
+ 'web.db.coreDesc': 'Speichert Clients, Autorisierungscodes, Tokens, Sitzungen. Kann global repliziert werden.',
621
+ 'web.db.piiTitle': 'PII-Datenbank',
622
+ 'web.db.piiSubtitle': '(Personenbezogene Daten)',
623
+ 'web.db.piiDesc': 'Speichert Benutzerprofile, Anmeldedaten, PII. Sollte für Compliance in einer einzigen Gerichtsbarkeit sein.',
624
+ 'web.db.name': 'Name',
625
+ 'web.db.region': 'Region',
626
+ 'web.db.regionAuto': 'Automatisch (nächstgelegene)',
627
+ // Web UI Email
628
+ 'web.email.title': 'E-Mail-Anbieter',
629
+ 'web.email.subtitle': 'E-Mail-Dienst für Passwort-Reset und Verifizierungs-E-Mails auswählen:',
630
+ 'web.email.none': 'Keiner',
631
+ 'web.email.noneDesc': 'E-Mail-Funktionen deaktiviert',
632
+ 'web.email.resend': 'Resend',
633
+ 'web.email.resendDesc': 'Entwicklerfreundliche E-Mail-API',
634
+ 'web.email.sendgrid': 'SendGrid',
635
+ 'web.email.sendgridDesc': 'Skalierbare E-Mail-Zustellung',
636
+ 'web.email.ses': 'Amazon SES',
637
+ 'web.email.sesDesc': 'AWS Simple Email Service',
638
+ 'web.email.resendConfig': 'Resend-Konfiguration',
639
+ 'web.email.apiKey': 'API-Schlüssel',
640
+ 'web.email.apiKeyPlaceholder': 're_xxxxxxxx',
641
+ 'web.email.fromAddress': 'Absenderadresse',
642
+ 'web.email.fromAddressPlaceholder': 'noreply@ihredomain.de',
643
+ // Web UI Provision
644
+ 'web.provision.title': 'Cloudflare-Ressourcen erstellen',
645
+ 'web.provision.ready': 'Bereit zur Bereitstellung',
646
+ 'web.provision.desc': 'Folgende Ressourcen werden in Ihrem Cloudflare-Konto erstellt:',
647
+ 'web.provision.createResources': 'Ressourcen erstellen',
648
+ 'web.provision.saveConfig': 'Konfiguration speichern',
649
+ 'web.provision.continueDeploy': 'Weiter zur Bereitstellung →',
650
+ // Web UI Deploy
651
+ 'web.deploy.title': 'Bereitstellen',
652
+ 'web.deploy.desc': 'Workers und UI auf Cloudflare bereitstellen:',
653
+ 'web.deploy.startDeploy': 'Bereitstellung starten',
654
+ 'web.deploy.deploying': 'Bereitstellung läuft...',
655
+ // Web UI Complete
656
+ 'web.complete.title': 'Einrichtung abgeschlossen!',
657
+ 'web.complete.desc': 'Ihre Authrim-Bereitstellung ist bereit.',
658
+ 'web.complete.issuerUrl': 'Aussteller-URL',
659
+ 'web.complete.loginUrl': 'Login-URL',
660
+ 'web.complete.adminUrl': 'Admin-URL',
661
+ 'web.complete.nextSteps': 'Nächste Schritte:',
662
+ 'web.complete.step1': 'Schließen Sie die erste Admin-Einrichtung mit der Schaltfläche oben ab',
663
+ 'web.complete.step2': 'Konfigurieren Sie Ihren ersten OAuth-Client in der Admin-UI',
664
+ 'web.complete.step3': 'Integrieren Sie mit Ihrer Anwendung',
665
+ 'web.complete.saveConfig': 'Konfiguration speichern',
666
+ 'web.complete.backToMain': 'Zurück zur Startseite',
667
+ 'web.complete.canClose': 'Einrichtung abgeschlossen. Sie können dieses Fenster sicher schließen.',
668
+ // Web UI Environment Management
669
+ 'web.env.title': 'Umgebungen',
670
+ 'web.env.loading': 'Lade Umgebungen...',
671
+ 'web.env.noEnvFound': 'Keine Umgebungen gefunden',
672
+ 'web.env.refresh': 'Aktualisieren',
673
+ 'web.env.adminSetup': 'Admin-Ersteinrichtung',
674
+ 'web.env.adminSetupDesc': 'Klicken Sie, um ein Admin-Konto zu erstellen für',
675
+ 'web.env.openSetup': 'Einrichtung öffnen',
676
+ 'web.env.copyUrl': 'Kopieren',
677
+ 'web.env.deleteTitle': 'Umgebung löschen',
678
+ 'web.env.deleteWarning': 'Diese Aktion kann nicht rückgängig gemacht werden. Folgende Ressourcen werden dauerhaft gelöscht:',
679
+ 'web.env.confirmDelete': 'Auswahl löschen',
680
+ 'web.env.cancel': 'Abbrechen',
681
+ // Web UI Common buttons
682
+ 'web.btn.back': 'Zurück',
683
+ 'web.btn.continue': 'Weiter',
684
+ 'web.btn.cancel': 'Abbrechen',
685
+ 'web.btn.save': 'Speichern',
686
+ 'web.btn.skip': 'Überspringen',
687
+ // Web UI Save Modal
688
+ 'web.modal.saveTitle': 'Konfiguration speichern?',
689
+ 'web.modal.saveDesc': 'Speichern Sie die Konfiguration auf Ihrem lokalen Computer für zukünftige Verwendung.',
690
+ 'web.modal.skipSave': 'Überspringen',
691
+ 'web.modal.saveConfig': 'Konfiguration speichern',
692
+ // Web UI steps
693
+ 'web.step.environment': 'Umgebung',
694
+ 'web.step.region': 'Region',
695
+ 'web.step.domain': 'Domain',
696
+ 'web.step.email': 'E-Mail',
697
+ 'web.step.sms': 'SMS',
698
+ 'web.step.social': 'Social',
699
+ 'web.step.advanced': 'Erweitert',
700
+ 'web.step.review': 'Überprüfen',
701
+ 'web.step.deploy': 'Bereitstellen',
702
+ // Web UI forms
703
+ 'web.form.submit': 'Absenden',
704
+ 'web.form.next': 'Weiter',
705
+ 'web.form.previous': 'Zurück',
706
+ 'web.form.reset': 'Zurücksetzen',
707
+ 'web.form.validation': 'Bitte korrigieren Sie die Fehler oben',
708
+ // Web UI progress
709
+ 'web.progress.preparing': 'Bereite Bereitstellung vor...',
710
+ 'web.progress.creatingResources': 'Erstelle Cloudflare-Ressourcen...',
711
+ 'web.progress.generatingKeys': 'Generiere kryptografische Schlüssel...',
712
+ 'web.progress.configuringWorkers': 'Konfiguriere Workers...',
713
+ 'web.progress.deployingWorkers': 'Stelle Workers bereit...',
714
+ 'web.progress.deployingUI': 'Stelle UI bereit...',
715
+ 'web.progress.runningMigrations': 'Führe Datenbankmigrationen aus...',
716
+ 'web.progress.complete': 'Bereitstellung abgeschlossen!',
717
+ 'web.progress.failed': 'Bereitstellung fehlgeschlagen',
718
+ // Web UI Form Labels
719
+ 'web.form.envName': 'Umgebungsname',
720
+ 'web.form.envNamePlaceholder': 'z.B. prod, staging, dev',
721
+ 'web.form.envNameHint': 'Nur Kleinbuchstaben, Zahlen und Bindestriche',
722
+ 'web.form.baseDomain': 'Basis-Domain (API-Domain)',
723
+ 'web.form.baseDomainPlaceholder': 'oidc.beispiel.de',
724
+ 'web.form.baseDomainHint': 'Benutzerdefinierte Domain für Authrim. Leer lassen für workers.dev',
725
+ 'web.form.nakedDomain': 'Tenant-Namen aus URL ausschließen',
726
+ 'web.form.nakedDomainHint': 'https://beispiel.de statt https://{tenant}.beispiel.de verwenden',
727
+ 'web.form.nakedDomainWarning': 'Tenant-Subdomains erfordern eine benutzerdefinierte Domain. Workers.dev unterstützt keine Wildcard-Subdomains.',
728
+ 'web.form.tenantId': 'Standard-Tenant-ID',
729
+ 'web.form.tenantIdPlaceholder': 'default',
730
+ 'web.form.tenantIdHint': 'Bezeichner des ersten Tenants (Kleinbuchstaben, keine Leerzeichen)',
731
+ 'web.form.tenantIdWorkerNote': '(Tenant-ID wird intern verwendet. URL-Subdomain erfordert benutzerdefinierte Domain.)',
732
+ 'web.form.tenantDisplay': 'Tenant-Anzeigename',
733
+ 'web.form.tenantDisplayPlaceholder': 'Meine Firma',
734
+ 'web.form.tenantDisplayHint': 'Name auf Login-Seite und Einwilligungsbildschirm',
735
+ 'web.form.loginDomainPlaceholder': 'login.beispiel.de',
736
+ 'web.form.adminDomainPlaceholder': 'admin.beispiel.de',
737
+ // Web UI Section Headers
738
+ 'web.section.apiDomain': 'API-/Aussteller-Domain',
739
+ 'web.section.uiDomains': 'UI-Domains (Optional)',
740
+ 'web.section.uiDomainsHint': 'Benutzerdefinierte Domains für Login-/Admin-UIs. Jede kann unabhängig konfiguriert werden. Leer lassen für Cloudflare Pages Standard.',
741
+ 'web.section.corsHint': 'CORS: Cross-Origin-Anfragen von Login-/Admin-UI an API werden automatisch erlaubt.',
742
+ 'web.section.configPreview': 'Konfigurationsvorschau',
743
+ 'web.section.resourceNames': 'Ressourcennamen',
744
+ // Web UI Preview Labels
745
+ 'web.preview.components': 'Komponenten:',
746
+ 'web.preview.workers': 'Workers:',
747
+ 'web.preview.issuerUrl': 'Aussteller-URL:',
748
+ 'web.preview.loginUi': 'Login-UI:',
749
+ 'web.preview.adminUi': 'Admin-UI:',
750
+ // Web UI Component Labels
751
+ 'web.comp.loginUi': 'Login-UI',
752
+ 'web.comp.loginUiDesc': 'Benutzerorientierte Login-, Registrierungs-, Einwilligungs- und Kontoverwaltungsseiten.',
753
+ 'web.comp.adminUi': 'Admin-UI',
754
+ 'web.comp.adminUiDesc': 'Admin-Dashboard zur Verwaltung von Tenants, Clients, Benutzern und Systemeinstellungen.',
755
+ // Web UI Domain Row Labels
756
+ 'web.domain.loginUi': 'Login-UI',
757
+ 'web.domain.adminUi': 'Admin-UI',
758
+ // Web UI Database Section
759
+ 'web.db.introDesc': 'Authrim verwendet zwei separate D1-Datenbanken, um personenbezogene Daten von Anwendungsdaten zu isolieren.',
760
+ 'web.db.regionNote': 'Hinweis: Die Datenbankregion kann nach der Erstellung nicht mehr geändert werden.',
761
+ 'web.db.coreNonPii': 'Nicht-PII',
762
+ 'web.db.coreDataDesc': 'Speichert nicht-personenbezogene Anwendungsdaten einschließlich:',
763
+ 'web.db.coreData1': 'OAuth-Clients und deren Konfigurationen',
764
+ 'web.db.coreData2': 'Autorisierungscodes und Access-Tokens',
765
+ 'web.db.coreData3': 'Benutzersitzungen und Anmeldestatus',
766
+ 'web.db.coreData4': 'Tenant-Einstellungen und Konfigurationen',
767
+ 'web.db.coreData5': 'Audit-Logs und Sicherheitsereignisse',
768
+ 'web.db.coreHint': 'Diese Datenbank verarbeitet alle Authentifizierungsflüsse und sollte nahe Ihrer Hauptbenutzerbasis platziert werden.',
769
+ 'web.db.piiLabel': 'Personenbezogene Daten',
770
+ 'web.db.piiDataDesc': 'Speichert persönliche Benutzerdaten einschließlich:',
771
+ 'web.db.piiData1': 'Benutzerprofile (Name, E-Mail, Telefon)',
772
+ 'web.db.piiData2': 'Passkey-/WebAuthn-Anmeldedaten',
773
+ 'web.db.piiData3': 'Benutzereinstellungen und Präferenzen',
774
+ 'web.db.piiData4': 'Benutzerdefinierte Benutzerattribute',
775
+ 'web.db.piiHint': 'Diese Datenbank enthält personenbezogene Daten. Erwägen Sie die Platzierung in einer Region, die Ihren Datenschutzanforderungen entspricht.',
776
+ 'web.db.locationHints': 'Standorthinweise',
777
+ 'web.db.jurisdiction': 'Gerichtsbarkeit (Compliance)',
778
+ 'web.db.autoNearest': 'Automatisch (nächstgelegene)',
779
+ 'web.db.northAmericaWest': 'Nordamerika (West)',
780
+ 'web.db.northAmericaEast': 'Nordamerika (Ost)',
781
+ 'web.db.europeWest': 'Europa (West)',
782
+ 'web.db.europeEast': 'Europa (Ost)',
783
+ 'web.db.asiaPacific': 'Asien-Pazifik',
784
+ 'web.db.oceania': 'Ozeanien',
785
+ 'web.db.euJurisdiction': 'EU-Gerichtsbarkeit (DSGVO-konform)',
786
+ // Web UI Email Section
787
+ 'web.email.introDesc': 'Wird für E-Mail-OTP und E-Mail-Adressverifizierung verwendet. Sie können dies später konfigurieren, wenn Sie möchten.',
788
+ 'web.email.configureLater': 'Später konfigurieren',
789
+ 'web.email.configureLaterHint': 'Jetzt überspringen und später konfigurieren.',
790
+ 'web.email.configureResend': 'Resend konfigurieren',
791
+ 'web.email.configureResendHint': 'E-Mail-Versand mit Resend einrichten (für Produktion empfohlen).',
792
+ 'web.email.resendSetup': 'Resend-Konfiguration',
793
+ 'web.email.beforeBegin': 'Bevor Sie beginnen:',
794
+ 'web.email.step1': 'Erstellen Sie ein Resend-Konto unter',
795
+ 'web.email.step2': 'Fügen Sie Ihre Domain hinzu und verifizieren Sie sie unter',
796
+ 'web.email.step3': 'Erstellen Sie einen API-Schlüssel unter',
797
+ 'web.email.resendApiKey': 'Resend API-Schlüssel',
798
+ 'web.email.resendApiKeyHint': 'Ihr API-Schlüssel beginnt mit "re_"',
799
+ 'web.email.fromEmailAddress': 'Absender-E-Mail-Adresse',
800
+ 'web.email.fromEmailHint': 'Muss von einer verifizierten Domain in Ihrem Resend-Konto sein',
801
+ 'web.email.fromDisplayName': 'Absender-Anzeigename (optional)',
802
+ 'web.email.fromDisplayHint': 'Wird als Absendername in E-Mail-Clients angezeigt',
803
+ 'web.email.domainVerificationTitle': 'Domain-Verifizierung erforderlich',
804
+ 'web.email.domainVerificationDesc': 'Bevor Ihre Domain verifiziert ist, können E-Mails nur von onboarding@resend.dev gesendet werden (zum Testen).',
805
+ 'web.email.learnMore': 'Mehr über Domain-Verifizierung erfahren →',
806
+ // Web UI Provision Section
807
+ 'web.provision.resourcePreview': 'Ressourcennamen:',
808
+ 'web.provision.d1Databases': 'D1-Datenbanken:',
809
+ 'web.provision.kvNamespaces': 'KV-Namespaces:',
810
+ 'web.provision.cryptoKeys': 'Kryptografische Schlüssel:',
811
+ 'web.provision.initializing': 'Initialisiere...',
812
+ 'web.provision.showLog': 'Detailliertes Log anzeigen',
813
+ 'web.provision.hideLog': 'Detailliertes Log ausblenden',
814
+ 'web.provision.keysSavedTo': 'Schlüssel gespeichert in:',
815
+ 'web.provision.keepSafe': 'Bewahren Sie dieses Verzeichnis sicher auf und fügen Sie es zu .gitignore hinzu',
816
+ // Web UI Deploy Section
817
+ 'web.deploy.readyText': 'Bereit, Authrim-Workers auf Cloudflare bereitzustellen.',
818
+ // Web UI Environment List
819
+ 'web.env.detectedDesc': 'Erkannte Authrim-Umgebungen in Ihrem Cloudflare-Konto:',
820
+ 'web.env.noEnvsDetected': 'Keine Authrim-Umgebungen in diesem Cloudflare-Konto erkannt.',
821
+ 'web.env.backToList': '← Zurück zur Liste',
822
+ 'web.env.deleteEnv': 'Umgebung löschen...',
823
+ // Web UI Environment Detail
824
+ 'web.envDetail.title': 'Umgebungsdetails',
825
+ 'web.envDetail.adminNotConfigured': 'Admin-Konto nicht konfiguriert',
826
+ 'web.envDetail.adminNotConfiguredDesc': 'Der erste Administrator wurde für diese Umgebung noch nicht eingerichtet.',
827
+ 'web.envDetail.startPasskey': 'Admin-Konto-Einrichtung mit Passkey starten',
828
+ 'web.envDetail.setupUrlGenerated': 'Einrichtungs-URL generiert:',
829
+ 'web.envDetail.copyBtn': 'Kopieren',
830
+ 'web.envDetail.openSetup': 'Einrichtung öffnen',
831
+ 'web.envDetail.urlValidFor': 'Diese URL ist 1 Stunde gültig. Öffnen Sie sie in einem Browser, um das erste Admin-Konto zu registrieren.',
832
+ 'web.envDetail.workers': 'Workers',
833
+ 'web.envDetail.d1Databases': 'D1-Datenbanken',
834
+ 'web.envDetail.kvNamespaces': 'KV-Namespaces',
835
+ 'web.envDetail.queues': 'Warteschlangen',
836
+ 'web.envDetail.r2Buckets': 'R2-Buckets',
837
+ 'web.envDetail.pagesProjects': 'Pages-Projekte',
838
+ // Web UI Delete Section
839
+ 'web.delete.title': 'Umgebung löschen',
840
+ 'web.delete.warning': 'Diese Aktion ist unwiderruflich. Alle ausgewählten Ressourcen werden dauerhaft gelöscht.',
841
+ 'web.delete.environment': 'Umgebung:',
842
+ 'web.delete.selectResources': 'Zu löschende Ressourcen auswählen:',
843
+ 'web.delete.workers': 'Workers',
844
+ 'web.delete.d1Databases': 'D1-Datenbanken',
845
+ 'web.delete.kvNamespaces': 'KV-Namespaces',
846
+ 'web.delete.queues': 'Warteschlangen',
847
+ 'web.delete.r2Buckets': 'R2-Buckets',
848
+ 'web.delete.pagesProjects': 'Pages-Projekte',
849
+ 'web.delete.cancelBtn': 'Abbrechen',
850
+ 'web.delete.confirmBtn': 'Auswahl löschen',
851
+ // Web UI Save Modal
852
+ 'web.modal.saveQuestion': 'Möchten Sie Ihre Konfiguration vor dem Fortfahren in einer Datei speichern?',
853
+ 'web.modal.saveReason': 'Dies ermöglicht es Ihnen, die Einrichtung später fortzusetzen oder dieselben Einstellungen für eine andere Bereitstellung zu verwenden.',
854
+ 'web.modal.skipBtn': 'Überspringen',
855
+ 'web.modal.saveBtn': 'Konfiguration speichern',
856
+ // Web UI Error Messages
857
+ 'web.error.wranglerNotInstalled': 'Wrangler nicht installiert',
858
+ 'web.error.pleaseInstall': 'Bitte installieren Sie zuerst Wrangler:',
859
+ 'web.error.notLoggedIn': 'Nicht bei Cloudflare angemeldet',
860
+ 'web.error.runCommand': 'Bitte führen Sie diesen Befehl in Ihrem Terminal aus:',
861
+ 'web.error.thenRefresh': 'Aktualisieren Sie dann diese Seite.',
862
+ 'web.error.checkingPrereq': 'Fehler beim Überprüfen der Voraussetzungen:',
863
+ 'web.error.invalidJson': 'Ungültiges JSON:',
864
+ 'web.error.validationFailed': 'Validierungsanfrage fehlgeschlagen:',
865
+ // Web UI Status Messages
866
+ 'web.status.checking': 'Überprüfe...',
867
+ 'web.status.running': 'Wird ausgeführt...',
868
+ 'web.status.deploying': 'Bereitstellung...',
869
+ 'web.status.complete': 'Abgeschlossen',
870
+ 'web.status.error': 'Fehler',
871
+ 'web.status.scanning': 'Scanne...',
872
+ 'web.status.saving': 'Speichere...',
873
+ 'web.status.notDeployed': '(Nicht bereitgestellt)',
874
+ 'web.status.startingDeploy': 'Starte Bereitstellung...',
875
+ 'web.status.none': 'Keine',
876
+ 'web.status.loading': 'Lade...',
877
+ 'web.status.failedToLoad': 'Laden fehlgeschlagen',
878
+ 'web.status.adminNotConfigured': 'Admin nicht konfiguriert',
879
+ 'web.status.initializing': 'Initialisiere...',
880
+ 'web.status.found': '{{count}} gefunden',
881
+ // Web UI Button Labels (dynamic)
882
+ 'web.btn.reprovision': 'Neu bereitstellen (Löschen & Erstellen)',
883
+ 'web.btn.createResources': 'Ressourcen erstellen',
884
+ 'web.btn.saveConfiguration': 'Konfiguration speichern',
885
+ // Quick setup specific
886
+ 'quickSetup.title': 'Schnelleinrichtung',
887
+ // Custom setup specific
888
+ 'customSetup.title': 'Benutzerdefinierte Einrichtung',
889
+ 'customSetup.cancelled': 'Einrichtung abgebrochen.',
890
+ // Web UI starting
891
+ 'webUi.starting': 'Starte Web-Oberfläche...',
892
+ };
893
+ export default de;
894
+ //# sourceMappingURL=de.js.map