diff --git a/.gitignore b/.gitignore index b7aac00..5b66fe0 100644 --- a/.gitignore +++ b/.gitignore @@ -31,4 +31,7 @@ dist-ssr .cursorignore # Keep environment files in config/ (naming: env-.env) -!config/env-*.env \ No newline at end of file +!config/env-*.env + +tsc-errors.txt +scripts/i18n_missing_report.md \ No newline at end of file diff --git a/scripts/i18n_missing_report.md b/scripts/i18n_missing_report.md deleted file mode 100644 index 17ffe33..0000000 --- a/scripts/i18n_missing_report.md +++ /dev/null @@ -1,15027 +0,0 @@ -# i18n: vermutlich noch ohne t() - -Anzahl Einträge (heuristisch): **2146** - -Hinweis: Einige Treffer können falsch positiv sein (technische Strings). Vor `apply` prüfen. - -## `src/components/AccessRules/AccessRulesEditor.tsx`:86 - -- **Text:** 'Regel löschen' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` title="Regel löschen"` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:140 - -- **Text:** 'Delete' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Delete` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:204 - -- **Text:** 'z.B. data.feature.trustee.TrusteePosition' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` return 'z.B. data.feature.trustee.TrusteePosition';` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:206 - -- **Text:** 'z.B. ui.feature.trustee.dashboard' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` return 'z.B. ui.feature.trustee.dashboard';` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:208 - -- **Text:** 'z.B. resource.feature.trustee.documents.create' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` return 'z.B. resource.feature.trustee.documents.create';` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:220 - -- **Text:** 'Objekt auswählen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:226 - -- **Text:** '← Aus Katalog wählen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {useCustom ? '← Aus Katalog wählen' : 'Freie Eingabe →'}` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:226 - -- **Text:** 'Freie Eingabe →' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {useCustom ? '← Aus Katalog wählen' : 'Freie Eingabe →'}` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:245 - -- **Text:** '-- Global (alle Objekte) --' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:280 - -- **Text:** 'Eigene (m)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `
Eigene (m)
` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:281 - -- **Text:** 'Gruppe (g)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `
Gruppe (g)
` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:282 - -- **Text:** 'Alle (a)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `
Alle (a)
` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:289 - -- **Text:** 'Delete' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` const labels = { create: 'Create', read: 'Read', update: 'Update', delete: 'Delete' };` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:372 - -- **Text:** 'Keine Daten-Regeln definiert' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` case 'DATA': return 'Keine Daten-Regeln definiert';` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:373 - -- **Text:** 'Keine UI-Regeln definiert' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` case 'UI': return 'Keine UI-Regeln definiert';` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:374 - -- **Text:** 'Keine Ressourcen-Regeln definiert' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` case 'RESOURCE': return 'Keine Ressourcen-Regeln definiert';` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:392 - -- **Text:** 'Tabellenansicht' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` title="Tabellenansicht"` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:399 - -- **Text:** 'Kartenansicht' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` title="Kartenansicht"` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:430 - -- **Text:** 'Neue Regel' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` Klicken Sie auf "Neue Regel" um eine Berechtigung hinzuzufügen.` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:480 - -- **Text:** 'JSON muss ein Array sein' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` throw new Error('JSON muss ein Array sein');` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:605 - -- **Text:** 'Fehler beim Speichern' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Speichern');` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:631 - -- **Text:** 'Daten' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { id: 'DATA', label: 'Daten', icon: , count: groupedRules.DATA.length },` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:632 - -- **Text:** 'UI' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { id: 'UI', label: 'UI', icon: , count: groupedRules.UI.length },` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:633 - -- **Text:** 'Ressourcen' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { id: 'RESOURCE', label: 'Ressourcen', icon: , count: groupedRules.RESOURCE.length },` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:634 - -- **Text:** 'JSON' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { id: 'JSON', label: 'JSON', icon: , count: rules.length },` - -## `src/components/AccessRules/AccessRulesEditor.tsx`:642 - -- **Text:** 'Lade Berechtigungen...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Lade Berechtigungen...` - -## `src/components/AccessRules/AccessRulesTable.tsx`:112 - -- **Text:** 'Sichtbar' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` title="Sichtbar"` - -## `src/components/AccessRules/AccessRulesTable.tsx`:166 - -- **Text:** 'Regel löschen' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` title="Regel löschen"` - -## `src/components/AccessRules/AccessRulesTable.tsx`:198 - -- **Text:** 'Objekt (Dot-Notation)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Objekt (Dot-Notation)` - -## `src/components/AccessRules/AccessRulesTable.tsx`:202 - -- **Text:** 'Eigene (m)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Eigene (m)` - -## `src/components/AccessRules/AccessRulesTable.tsx`:203 - -- **Text:** 'Gruppe (g)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Gruppe (g)` - -## `src/components/AccessRules/AccessRulesTable.tsx`:204 - -- **Text:** 'Alle (a)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Alle (a)` - -## `src/components/AccessRules/AccessRulesTable.tsx`:213 - -- **Text:** 'Create' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` C` - -## `src/components/AccessRules/AccessRulesTable.tsx`:214 - -- **Text:** 'Read' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` R` - -## `src/components/AccessRules/AccessRulesTable.tsx`:215 - -- **Text:** 'Update' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` U` - -## `src/components/AccessRules/AccessRulesTable.tsx`:216 - -- **Text:** 'Delete' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` D` - -## `src/components/AccessRules/AccessRulesTable.tsx`:217 - -- **Text:** 'Create' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` C` - -## `src/components/AccessRules/AccessRulesTable.tsx`:218 - -- **Text:** 'Read' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` R` - -## `src/components/AccessRules/AccessRulesTable.tsx`:219 - -- **Text:** 'Update' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` U` - -## `src/components/AccessRules/AccessRulesTable.tsx`:220 - -- **Text:** 'Delete' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` D` - -## `src/components/AccessRules/AccessRulesTable.tsx`:221 - -- **Text:** 'Create' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` C` - -## `src/components/AccessRules/AccessRulesTable.tsx`:222 - -- **Text:** 'Read' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` R` - -## `src/components/AccessRules/AccessRulesTable.tsx`:223 - -- **Text:** 'Update' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` U` - -## `src/components/AccessRules/AccessRulesTable.tsx`:224 - -- **Text:** 'Delete' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` D` - -## `src/components/Chat/ChatInput.tsx`:20 - -- **Text:** 'Type a message...' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` placeholder = 'Type a message...',` - -## `src/components/Chat/ChatInput.tsx`:55 - -- **Text:** '1px solid var(--border-color, #e0e0e0)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` borderTop: '1px solid var(--border-color, #e0e0e0)',` - -## `src/components/Chat/ChatInput.tsx`:71 - -- **Text:** '1px solid var(--border-color, #ddd)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` border: '1px solid var(--border-color, #ddd)',` - -## `src/components/Chat/ChatMessageList.tsx`:34 - -- **Text:** 'No messages yet.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` emptyMessage = 'No messages yet.',` - -## `src/components/ContentPreview/ContentPreview.tsx`:64 - -- **Text:** 'Invalid file ID' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError('Invalid file ID');` - -## `src/components/ContentPreview/ContentPreview.tsx`:67 - -- **Text:** 'Unknown Item' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` if (!fileName || fileName === 'Unknown Item') {` - -## `src/components/ContentPreview/ContentPreview.tsx`:68 - -- **Text:** 'File name not available' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError('File name not available');` - -## `src/components/ContentPreview/ContentPreview.tsx`:96 - -- **Text:** 's text content but MIME type says PDF, we' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` // If it's text content but MIME type says PDF, we'll handle it in renderPreview` - -## `src/components/ContentPreview/ContentPreview.tsx`:98 - -- **Text:** 'Failed to load preview' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(result.error || 'Failed to load preview');` - -## `src/components/ContentPreview/ContentPreview.tsx`:101 - -- **Text:** 'An unexpected error occurred while loading the preview' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError('An unexpected error occurred while loading the preview');` - -## `src/components/ContentPreview/ContentPreview.tsx`:171 - -- **Text:** 'Failed to load PDF preview' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` onError={() => setError('Failed to load PDF preview')}` - -## `src/components/ContentPreview/ContentPreview.tsx`:197 - -- **Text:** 'JSON Preview (Fallback)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` JSON Preview (Fallback)` - -## `src/components/ContentPreview/ContentPreview.tsx`:199 - -- **Text:** 'Raw content' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Raw content` - -## `src/components/ContentPreview/ContentPreview.tsx`:204 - -- **Text:** 'No content available' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {previewContent || 'No content available'}` - -## `src/components/ContentPreview/ContentPreview.tsx`:222 - -- **Text:** 'Failed to load image preview' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` onError={() => setError('Failed to load image preview')}` - -## `src/components/ContentPreview/ContentPreview.tsx`:233 - -- **Text:** 'Failed to load HTML preview' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` onError={() => setError('Failed to load HTML preview')}` - -## `src/components/ContentPreview/ContentPreview.tsx`:243 - -- **Text:** 'Failed to load text preview' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` onError={() => setError('Failed to load text preview')}` - -## `src/components/ContentPreview/ContentPreview.tsx`:260 - -- **Text:** 'Failed to load PDF preview' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` onError={() => setError('Failed to load PDF preview')}` - -## `src/components/ContentPreview/ContentPreview.tsx`:270 - -- **Text:** 'Failed to load HTML preview' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` onError={() => setError('Failed to load HTML preview')}` - -## `src/components/ContentPreview/ContentPreview.tsx`:282 - -- **Text:** 'Preview not supported for this file type' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` onError={() => setError('Preview not supported for this file type')}` - -## `src/components/ContentPreview/UrlContentPreview.tsx`:56 - -- **Text:** 'noopener noreferrer' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` link.rel = 'noopener noreferrer';` - -## `src/components/ContentPreview/UrlContentPreview.tsx`:82 - -- **Text:** 'Failed to load PDF. This might be due to CORS restrictions. You can try downloading the file or opening it in a new tab.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError('Failed to load PDF. This might be due to CORS restrictions. You can try downloading the file or opening it in a new tab.');` - -## `src/components/ContentPreview/UrlContentPreview.tsx`:99 - -- **Text:** 'PDF lädt langsam. Sie können es auch direkt herunterladen oder in einem neuen Tab öffnen.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setWarning('PDF lädt langsam. Sie können es auch direkt herunterladen oder in einem neuen Tab öffnen.');` - -## `src/components/ContentPreview/UrlContentPreview.tsx`:110 - -- **Text:** 'PDF lädt langsam. Versuche alternative Anzeigemethode...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setWarning('PDF lädt langsam. Versuche alternative Anzeigemethode...');` - -## `src/components/ContentPreview/UrlContentPreview.tsx`:114 - -- **Text:** 'PDF lädt langsam. Bitte verwenden Sie den Download-Button oder öffnen Sie es in einem neuen Tab.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError('PDF lädt langsam. Bitte verwenden Sie den Download-Button oder öffnen Sie es in einem neuen Tab.');` - -## `src/components/ContentPreview/UrlContentPreview.tsx`:132 - -- **Text:** 'Invalid URL' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError('Invalid URL');` - -## `src/components/ContentPreview/UrlContentPreview.tsx`:161 - -- **Text:** '1px solid var(--color-border, #e5e7eb)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` borderBottom: '1px solid var(--color-border, #e5e7eb)',` - -## `src/components/ContentPreview/UrlContentPreview.tsx`:172 - -- **Text:** '1px solid var(--color-border, #e5e7eb)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` borderBottom: '1px solid var(--color-border, #e5e7eb)',` - -## `src/components/ContentPreview/UrlContentPreview.tsx`:270 - -- **Text:** '1px solid var(--color-border, #e5e7eb)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` borderBottom: '1px solid var(--color-border, #e5e7eb)',` - -## `src/components/ContentPreview/UrlContentPreview.tsx`:317 - -- **Text:** 'Preview not supported for this file type. Please download the file to view it.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Preview not supported for this file type. Please download the file to view it.

` - -## `src/components/ContentPreview/renderers/JsonRenderer.tsx`:342 - -- **Text:** 'Error: Invalid nested data' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Error: Invalid nested data` - -## `src/components/ContentPreview/renderers/JsonRenderer.tsx`:482 - -- **Text:** 'Raw Content' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` keys: ['Raw Content'],` - -## `src/components/ContentPreview/renderers/PdfJsRenderer.tsx`:65 - -- **Text:** 'Failed to load PDF' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(err instanceof Error ? err.message : 'Failed to load PDF');` - -## `src/components/ContentPreview/renderers/PdfJsRenderer.tsx`:115 - -- **Text:** 'Failed to render PDF page' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(err instanceof Error ? err.message : 'Failed to render PDF page');` - -## `src/components/ContentPreview/renderers/PdfJsRenderer.tsx`:131 - -- **Text:** 'Fehler beim Laden der PDF: {error}' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Fehler beim Laden der PDF: {error}

` - -## `src/components/ContentPreview/renderers/PdfJsRenderer.tsx`:140 - -- **Text:** 'PDF wird geladen...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

PDF wird geladen...

` - -## `src/components/ContentPreview/renderers/PdfJsRenderer.tsx`:152 - -- **Text:** '1px solid var(--color-border, #e5e7eb)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` borderBottom: '1px solid var(--color-border, #e5e7eb)',` - -## `src/components/ContentPreview/renderers/PdfJsRenderer.tsx`:197 - -- **Text:** '1px solid var(--color-border, #e5e7eb)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` border: '1px solid var(--color-border, #e5e7eb)',` - -## `src/components/ContentPreview/renderers/PdfJsRenderer.tsx`:213 - -- **Text:** '1px solid var(--color-border, #e5e7eb)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` border: '1px solid var(--color-border, #e5e7eb)',` - -## `src/components/ContentPreview/renderers/PdfJsRenderer.tsx`:232 - -- **Text:** '0 2px 8px rgba(0,0,0,0.1)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` boxShadow: '0 2px 8px rgba(0,0,0,0.1)',` - -## `src/components/ContentPreview/renderers/TextRenderer.tsx`:19 - -- **Text:** 'Text Preview' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Text Preview` - -## `src/components/FlowEditor/editor/Automation2FlowEditor.tsx`:59 - -- **Text:** 'Jetzt ausführen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` buildInvocationsForPrimaryKind('manual', [], 'Jetzt ausführen');` - -## `src/components/FlowEditor/editor/Automation2FlowEditor.tsx`:203 - -- **Text:** 'Keine Nodes im Workflow.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setExecuteResult({ success: false, error: 'Keine Nodes im Workflow.' });` - -## `src/components/FlowEditor/editor/Automation2FlowEditor.tsx`:228 - -- **Text:** 'Keine Nodes zum Speichern.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setExecuteResult({ success: false, error: 'Keine Nodes zum Speichern.' });` - -## `src/components/FlowEditor/editor/Automation2FlowEditor.tsx`:238 - -- **Text:** 'Workflow speichern' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Workflow speichern',` - -## `src/components/FlowEditor/editor/Automation2FlowEditor.tsx`:239 - -- **Text:** 'Neuer Workflow' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` defaultValue: 'Neuer Workflow',` - -## `src/components/FlowEditor/editor/Automation2FlowEditor.tsx`:240 - -- **Text:** 'Name des Workflows' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` placeholder: 'Name des Workflows',` - -## `src/components/FlowEditor/editor/Automation2FlowEditor.tsx`:247 - -- **Text:** 'Neuer Workflow' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` label: label.trim() || 'Neuer Workflow',` - -## `src/components/FlowEditor/editor/Automation2FlowEditor.tsx`:596 - -- **Text:** 'Lade Node-Typen...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Lade Node-Typen...

` - -## `src/components/FlowEditor/editor/CanvasHeader.tsx`:38 - -- **Text:** 'Entwurf' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` draft: { label: 'Entwurf', color: 'var(--warning-color, #ffc107)' },` - -## `src/components/FlowEditor/editor/CanvasHeader.tsx`:39 - -- **Text:** 'Veröffentlicht' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` published: { label: 'Veröffentlicht', color: 'var(--success-color, #28a745)' },` - -## `src/components/FlowEditor/editor/CanvasHeader.tsx`:40 - -- **Text:** 'Archiviert' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` archived: { label: 'Archiviert', color: 'var(--text-secondary, #666)' },` - -## `src/components/FlowEditor/editor/CanvasHeader.tsx`:116 - -- **Text:** 'Meine Vorlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` const SCOPE_LABELS: Record = { user: 'Meine Vorlagen', instance: 'Instanz', mandate: 'Mandant' };` - -## `src/components/FlowEditor/editor/CanvasHeader.tsx`:137 - -- **Text:** 'Klicken zum Umbenennen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title={onWorkflowRename ? 'Klicken zum Umbenennen' : undefined}` - -## `src/components/FlowEditor/editor/CanvasHeader.tsx`:151 - -- **Text:** 'Workflow-Konfiguration (Einstieg / Starts)' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` title="Workflow-Konfiguration (Einstieg / Starts)"` - -## `src/components/FlowEditor/editor/CanvasHeader.tsx`:152 - -- **Text:** 'Workflow-Konfiguration' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` aria-label="Workflow-Konfiguration"` - -## `src/components/FlowEditor/editor/CanvasHeader.tsx`:170 - -- **Text:** 'Neu aus Vorlage' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` title="Neu aus Vorlage"` - -## `src/components/FlowEditor/editor/CanvasHeader.tsx`:214 - -- **Text:** 'Als Vorlage speichern' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` title="Als Vorlage speichern"` - -## `src/components/FlowEditor/editor/CanvasHeader.tsx`:242 - -- **Text:** '— Workflow laden —' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/components/FlowEditor/editor/CanvasHeader.tsx`:268 - -- **Text:** 'Workspace-Panel (Chats, Dateien, Quellen)' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` ` - -## `src/hooks/usePrompt.tsx`:6 - -- **Text:** 'Bitte Namen eingeben:' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` * const value = await prompt('Bitte Namen eingeben:', { title: 'Umbenennen' });` - -## `src/hooks/usePrompt.tsx`:85 - -- **Text:** '1px solid var(--border-color, var(--color-border, #333))' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` border: '1px solid var(--border-color, var(--color-border, #333))',` - -## `src/hooks/usePrompt.tsx`:89 - -- **Text:** '0 8px 32px rgba(0,0,0,0.4)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` boxShadow: '0 8px 32px rgba(0,0,0,0.4)',` - -## `src/hooks/usePrompt.tsx`:119 - -- **Text:** '1px solid var(--border-color, var(--color-border, #ccc))' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` border: '1px solid var(--border-color, var(--color-border, #ccc))',` - -## `src/hooks/usePrompt.tsx`:134 - -- **Text:** '1px solid var(--color-border, #444)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` border: '1px solid var(--color-border, #444)',` - -## `src/layouts/FeatureLayout.tsx`:21 - -- **Text:** 'Lade Feature-Daten...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Lade Feature-Daten...

` - -## `src/layouts/FeatureLayout.tsx`:37 - -- **Text:** 'Zugriff nicht möglich' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Zugriff nicht möglich

` - -## `src/layouts/FeatureLayout.tsx`:81 - -- **Text:** 'Die angeforderte Feature-Instanz existiert nicht oder Sie haben keinen Zugriff.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` message="Die angeforderte Feature-Instanz existiert nicht oder Sie haben keinen Zugriff."` - -## `src/layouts/MainLayout.tsx`:63 - -- **Text:** 'Navigation schliessen' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` aria-label="Navigation schliessen"` - -## `src/layouts/MainLayout.tsx`:72 - -- **Text:** 'PowerOn' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` alt="PowerOn"` - -## `src/layouts/MainLayout.tsx`:105 - -- **Text:** 'Navigation oeffnen' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` aria-label="Navigation oeffnen"` - -## `src/layouts/MainLayout.tsx`:111 - -- **Text:** 'PowerOn' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` alt="PowerOn"` - -## `src/pages/AutomationsDashboardPage.tsx`:71 - -- **Text:** '1px solid var(--border-color, #e0e0e0)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` border: '1px solid var(--border-color, #e0e0e0)',` - -## `src/pages/AutomationsDashboardPage.tsx`:78 - -- **Text:** '1 1 180px' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` flex: '1 1 180px',` - -## `src/pages/AutomationsDashboardPage.tsx`:195 - -- **Text:** '' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: '',` - -## `src/pages/Dashboard.tsx`:72 - -- **Text:** 'Übersicht' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Übersicht

` - -## `src/pages/Dashboard.tsx`:82 - -- **Text:** 'Übersicht' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Übersicht

` - -## `src/pages/FeatureView.tsx`:67 - -- **Text:** 'Workflow Dashboard' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` ` - -## `src/pages/FeatureView.tsx`:67 - -- **Text:** 'Übersicht der Workflows' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ` - -## `src/pages/FeatureView.tsx`:71 - -- **Text:** 'Runs' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` ` - -## `src/pages/FeatureView.tsx`:71 - -- **Text:** 'Workflow-Ausführungen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ` - -## `src/pages/FeatureView.tsx`:75 - -- **Text:** 'Dateien' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` ` - -## `src/pages/FeatureView.tsx`:82 - -- **Text:** 'Chatbot Einstellungen' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` ` - -## `src/pages/FeatureView.tsx`:82 - -- **Text:** 'Konfiguration des Chatbots' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ` - -## `src/pages/FeatureView.tsx`:88 - -- **Text:** 'Seite nicht gefunden' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Seite nicht gefunden

` - -## `src/pages/FeatureView.tsx`:89 - -- **Text:** 'Diese View existiert nicht oder wurde noch nicht implementiert.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Diese View existiert nicht oder wurde noch nicht implementiert.

` - -## `src/pages/FeatureView.tsx`:95 - -- **Text:** 'Zugriff verweigert' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Zugriff verweigert

` - -## `src/pages/FeatureView.tsx`:96 - -- **Text:** 'Du hast keine Berechtigung für diese Ansicht.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Du hast keine Berechtigung für diese Ansicht.

` - -## `src/pages/GDPR.tsx`:68 - -- **Text:** 'Consent information could not be loaded.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setConsentError('Consent information could not be loaded.');` - -## `src/pages/GDPR.tsx`:91 - -- **Text:** 'Data export downloaded.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setActionMessage({ type: 'success', text: 'Data export downloaded.' });` - -## `src/pages/GDPR.tsx`:94 - -- **Text:** 'Data export failed. Please try again.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setActionMessage({ type: 'error', text: 'Data export failed. Please try again.' });` - -## `src/pages/GDPR.tsx`:109 - -- **Text:** 'Portable export downloaded.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setActionMessage({ type: 'success', text: 'Portable export downloaded.' });` - -## `src/pages/GDPR.tsx`:112 - -- **Text:** 'Portable export failed. Please try again.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setActionMessage({ type: 'error', text: 'Portable export failed. Please try again.' });` - -## `src/pages/GDPR.tsx`:121 - -- **Text:** 'Please type LOESCHEN to confirm deletion.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setActionMessage({ type: 'error', text: 'Please type LOESCHEN to confirm deletion.' });` - -## `src/pages/GDPR.tsx`:132 - -- **Text:** 'Account deleted. Redirecting to login...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setActionMessage({ type: 'success', text: 'Account deleted. Redirecting to login...' });` - -## `src/pages/GDPR.tsx`:136 - -- **Text:** 'Account deletion failed. Please try again.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setActionMessage({ type: 'error', text: 'Account deletion failed. Please try again.' });` - -## `src/pages/GDPR.tsx`:161 - -- **Text:** 'Your data rights' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Your data rights

` - -## `src/pages/GDPR.tsx`:164 - -- **Text:** 'Access (Article 15)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Access (Article 15)

` - -## `src/pages/GDPR.tsx`:165 - -- **Text:** 'Download a full export of your account data.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Download a full export of your account data.

` - -## `src/pages/GDPR.tsx`:186 - -- **Text:** 'Portability (Article 20)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Portability (Article 20)

` - -## `src/pages/GDPR.tsx`:187 - -- **Text:** 'Download a machine-readable JSON-LD export.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Download a machine-readable JSON-LD export.

` - -## `src/pages/GDPR.tsx`:208 - -- **Text:** 'Erasure (Article 17)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Erasure (Article 17)

` - -## `src/pages/GDPR.tsx`:209 - -- **Text:** 'Permanently delete your account and all associated data.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Permanently delete your account and all associated data.

` - -## `src/pages/GDPR.tsx`:229 - -- **Text:** 'LOESCHEN' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` placeholder="LOESCHEN"` - -## `src/pages/GDPR.tsx`:278 - -- **Text:** 'Processing information' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Processing information

` - -## `src/pages/GDPR.tsx`:279 - -- **Text:** 'Loading consent info...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` {isLoadingConsent &&

Loading consent info...

}` - -## `src/pages/GDPR.tsx`:284 - -- **Text:** 'Data collected' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Data collected

` - -## `src/pages/GDPR.tsx`:304 - -- **Text:** 'Your rights' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Your rights

` - -## `src/pages/InvitePage.tsx`:16 - -- **Text:** 'Einladung annehmen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` * 6. User clicks "Einladung annehmen"` - -## `src/pages/InvitePage.tsx`:56 - -- **Text:** 'Kein Einladungs-Token angegeben' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError('Kein Einladungs-Token angegeben');` - -## `src/pages/InvitePage.tsx`:71 - -- **Text:** 'Neues Konto erstellen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` // No targetUsername = new-user invitation (email only) -> only show "Neues Konto erstellen"` - -## `src/pages/InvitePage.tsx`:120 - -- **Text:** 'Not authenticated' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` } else if (result.error?.includes('401') || result.error?.includes('Not authenticated')) {` - -## `src/pages/InvitePage.tsx`:125 - -- **Text:** 'Fehler beim Annehmen der Einladung' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(result.error || 'Fehler beim Annehmen der Einladung');` - -## `src/pages/InvitePage.tsx`:162 - -- **Text:** 'Einladung wird überprüft...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Einladung wird überprüft...

` - -## `src/pages/InvitePage.tsx`:176 - -- **Text:** 'Ungültige Einladung' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Ungültige Einladung

` - -## `src/pages/InvitePage.tsx`:177 - -- **Text:** 'Diese Einladung ist nicht gültig.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** `

{validation?.reason || 'Diese Einladung ist nicht gültig.'}

` - -## `src/pages/InvitePage.tsx`:195 - -- **Text:** 'Sie wurden erfolgreich zum Mandanten hinzugefügt.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Sie wurden erfolgreich zum Mandanten hinzugefügt.

` - -## `src/pages/InvitePage.tsx`:196 - -- **Text:** 'Sie werden weitergeleitet...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Sie werden weitergeleitet...

` - -## `src/pages/InvitePage.tsx`:211 - -- **Text:** 'Falsche Anmeldung' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Falsche Anmeldung

` - -## `src/pages/InvitePage.tsx`:214 - -- **Text:** 'anderer Benutzer' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` Sie sind als {cachedUser?.username || 'anderer Benutzer'} angemeldet.` - -## `src/pages/InvitePage.tsx`:216 - -- **Text:** 'Bitte melden Sie sich ab und mit dem richtigen Konto wieder an.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Bitte melden Sie sich ab und mit dem richtigen Konto wieder an.

` - -## `src/pages/InvitePage.tsx`:229 - -- **Text:** 'Sie wurden eingeladen, einem Mandanten und einem Feature beizutreten.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ? 'Sie wurden eingeladen, einem Mandanten und einem Feature beizutreten.'` - -## `src/pages/InvitePage.tsx`:230 - -- **Text:** 'Sie wurden eingeladen, einem Mandanten beizutreten.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` : 'Sie wurden eingeladen, einem Mandanten beizutreten.';` - -## `src/pages/InvitePage.tsx`:231 - -- **Text:** 'Features mit zugewiesenen Rollen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` const rolesLabel = isFeatureInvite ? 'Features mit zugewiesenen Rollen' : 'Zugewiesene Rollen';` - -## `src/pages/InvitePage.tsx`:231 - -- **Text:** 'Zugewiesene Rollen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` const rolesLabel = isFeatureInvite ? 'Features mit zugewiesenen Rollen' : 'Zugewiesene Rollen';` - -## `src/pages/InvitePage.tsx`:241 - -- **Text:** 'Einladung annehmen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Einladung annehmen

` - -## `src/pages/InvitePage.tsx`:287 - -- **Text:** 'Einladung annehmen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` 'Einladung annehmen'` - -## `src/pages/InvitePage.tsx`:304 - -- **Text:** 'Einladung annehmen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Einladung annehmen

` - -## `src/pages/InvitePage.tsx`:333 - -- **Text:** 'Erstellen Sie ein neues Konto mit Ihrem Benutzernamen oder verlinken Sie die Einladung mit Ihrem bestehenden Account.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` : 'Erstellen Sie ein neues Konto mit Ihrem Benutzernamen oder verlinken Sie die Einladung mit Ihrem bestehenden Account.'}` - -## `src/pages/Login.tsx`:36 - -- **Text:** 'PowerOn AI Platform - Login' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` document.title = "PowerOn AI Platform - Login";` - -## `src/pages/Login.tsx`:134 - -- **Text:** 'PowerOn' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` alt="PowerOn"` - -## `src/pages/Login.tsx`:145 - -- **Text:** 'Sie haben eine ausstehende Einladung. Bitte melden Sie sich an, um diese anzunehmen.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Sie haben eine ausstehende Einladung. Bitte melden Sie sich an, um diese anzunehmen.` - -## `src/pages/Login.tsx`:155 - -- **Text:** ' ' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` placeholder=" "` - -## `src/pages/Login.tsx`:173 - -- **Text:** ' ' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` placeholder=" "` - -## `src/pages/Login.tsx`:198 - -- **Text:** 'wird geladen...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {isLoginLoading ? "wird geladen..." : "Anmelden"}` - -## `src/pages/Login.tsx`:221 - -- **Text:** 'Signing in...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {isMsalLoading ? "Signing in..." : "Mit Microsoft anmelden"}` - -## `src/pages/Login.tsx`:221 - -- **Text:** 'Mit Microsoft anmelden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {isMsalLoading ? "Signing in..." : "Mit Microsoft anmelden"}` - -## `src/pages/Login.tsx`:232 - -- **Text:** 'Signing in...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {isGoogleLoading ? "Signing in..." : "Mit Google anmelden"}` - -## `src/pages/Login.tsx`:232 - -- **Text:** 'Mit Google anmelden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {isGoogleLoading ? "Signing in..." : "Mit Google anmelden"}` - -## `src/pages/Login.tsx`:237 - -- **Text:** 'Du hast noch kein Konto?' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Du hast noch kein Konto?` - -## `src/pages/PasswordResetRequest.tsx`:18 - -- **Text:** 'PowerOn AI Platform - Passwort zurücksetzen' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` document.title = "PowerOn AI Platform - Passwort zurücksetzen";` - -## `src/pages/PasswordResetRequest.tsx`:27 - -- **Text:** 'Bitte geben Sie Ihren Benutzernamen ein.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setValidationError('Bitte geben Sie Ihren Benutzernamen ein.');` - -## `src/pages/PasswordResetRequest.tsx`:33 - -- **Text:** 'Falls ein Konto mit diesem Benutzernamen existiert, wurde ein Reset-Link an die hinterlegte E-Mail-Adresse gesendet. Bitte prüfen Sie auch Ihren Spam-Ordner.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setSuccessMessage('Falls ein Konto mit diesem Benutzernamen existiert, wurde ein Reset-Link an die hinterlegte E-Mail-Adresse gesendet. Bitte prüfen Sie auch Ihren Spam-Ordner.');` - -## `src/pages/PasswordResetRequest.tsx`:40 - -- **Text:** 'Bitte prüfen Sie Ihre E-Mail für den Passwort-Reset-Link.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` message: 'Bitte prüfen Sie Ihre E-Mail für den Passwort-Reset-Link.'` - -## `src/pages/PasswordResetRequest.tsx`:46 - -- **Text:** 'Falls ein Konto mit diesem Benutzernamen existiert, wurde ein Reset-Link an die hinterlegte E-Mail-Adresse gesendet. Bitte prüfen Sie auch Ihren Spam-Ordner.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setSuccessMessage('Falls ein Konto mit diesem Benutzernamen existiert, wurde ein Reset-Link an die hinterlegte E-Mail-Adresse gesendet. Bitte prüfen Sie auch Ihren Spam-Ordner.');` - -## `src/pages/PasswordResetRequest.tsx`:59 - -- **Text:** 'PowerOn' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` alt="PowerOn"` - -## `src/pages/PasswordResetRequest.tsx`:65 - -- **Text:** 'Passwort zurücksetzen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Passwort zurücksetzen

` - -## `src/pages/PasswordResetRequest.tsx`:80 - -- **Text:** ' ' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` placeholder=" "` - -## `src/pages/PasswordResetRequest.tsx`:100 - -- **Text:** 'Geben Sie Ihren Benutzernamen ein. Falls ein Konto existiert, erhalten Sie einen Link zum Zurücksetzen des Passworts an Ihre hinterlegte E-Mail-Adresse.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Geben Sie Ihren Benutzernamen ein. Falls ein Konto existiert, erhalten Sie einen Link zum Zurücksetzen des Passworts an Ihre hinterlegte E-Mail-Adresse.

` - -## `src/pages/PasswordResetRequest.tsx`:108 - -- **Text:** 'Wird gesendet...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {isLoading ? "Wird gesendet..." : "Reset-Link anfordern"}` - -## `src/pages/PasswordResetRequest.tsx`:108 - -- **Text:** 'Reset-Link anfordern' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {isLoading ? "Wird gesendet..." : "Reset-Link anfordern"}` - -## `src/pages/PasswordResetRequest.tsx`:114 - -- **Text:** 'Zurück zum' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Zurück zum` - -## `src/pages/Register.tsx`:40 - -- **Text:** 'PowerOn AI Platform - Registrieren' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` document.title = "PowerOn AI Platform - Registrieren";` - -## `src/pages/Register.tsx`:58 - -- **Text:** 'Bitte füllen Sie alle Pflichtfelder aus.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setValidationError('Bitte füllen Sie alle Pflichtfelder aus.');` - -## `src/pages/Register.tsx`:63 - -- **Text:** 'Bitte geben Sie eine gültige E-Mail-Adresse ein.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setValidationError('Bitte geben Sie eine gültige E-Mail-Adresse ein.');` - -## `src/pages/Register.tsx`:81 - -- **Text:** 'Username is not available' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` const errorMessage = availabilityResult.message || 'Username is not available';` - -## `src/pages/Register.tsx`:82 - -- **Text:** 'Username is already taken' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` if (errorMessage === 'Username is already taken') {` - -## `src/pages/Register.tsx`:83 - -- **Text:** 'Benutzername ist bereits vergeben' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setValidationError('Benutzername ist bereits vergeben');` - -## `src/pages/Register.tsx`:86 - -- **Text:** 'Benutzername ist nicht verfügbar' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setValidationError('Benutzername ist nicht verfügbar');` - -## `src/pages/Register.tsx`:93 - -- **Text:** 'Registrierung erfolgreich! Bitte prüfen Sie Ihre E-Mail (auch den Spam-Ordner) für den Link zum Setzen Ihres Passworts.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` let message = 'Registrierung erfolgreich! Bitte prüfen Sie Ihre E-Mail (auch den Spam-Ordner) für den Link zum Setzen Ihres Passworts.';` - -## `src/pages/Register.tsx`:95 - -- **Text:** ' Nach dem Setzen Ihres Passworts können Sie sich anmelden und Ihre Einladung annehmen.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` message += ' Nach dem Setzen Ihres Passworts können Sie sich anmelden und Ihre Einladung annehmen.';` - -## `src/pages/Register.tsx`:104 - -- **Text:** 'Registrierung erfolgreich. Bitte prüfen Sie Ihre E-Mail für den Passwort-Link.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` message: 'Registrierung erfolgreich. Bitte prüfen Sie Ihre E-Mail für den Passwort-Link.',` - -## `src/pages/Register.tsx`:116 - -- **Text:** 'Registration failed' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` if (registerError) return typeof registerError === 'string' ? registerError : 'Registration failed';` - -## `src/pages/Register.tsx`:117 - -- **Text:** 'Microsoft registration failed' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` if (msalError) return typeof msalError === 'string' ? msalError : 'Microsoft registration failed';` - -## `src/pages/Register.tsx`:118 - -- **Text:** 'Username availability check failed' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` if (availabilityError) return typeof availabilityError === 'string' ? availabilityError : 'Username availability check failed';` - -## `src/pages/Register.tsx`:128 - -- **Text:** 'PowerOn' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` alt="PowerOn"` - -## `src/pages/Register.tsx`:138 - -- **Text:** 'Sie haben eine ausstehende Einladung. Nach der Registrierung und Anmeldung können Sie diese annehmen.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Sie haben eine ausstehende Einladung. Nach der Registrierung und Anmeldung können Sie diese annehmen.` - -## `src/pages/Register.tsx`:156 - -- **Text:** ' ' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` placeholder=" "` - -## `src/pages/Register.tsx`:170 - -- **Text:** ' ' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` placeholder=" "` - -## `src/pages/Register.tsx`:184 - -- **Text:** ' ' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` placeholder=" "` - -## `src/pages/Register.tsx`:191 - -- **Text:** 'Vollständiger Name' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/Register.tsx`:195 - -- **Text:** 'Nach der Registrierung erhalten Sie eine E-Mail mit einem Link zum Setzen Ihres Passworts.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Nach der Registrierung erhalten Sie eine E-Mail mit einem Link zum Setzen Ihres Passworts.

` - -## `src/pages/Register.tsx`:209 - -- **Text:** 'Registrierung läuft...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {isLoading ? "Registrierung läuft..." : isChecking ? "Benutzername wird geprüft..." : 'Kostenlos registrieren'}` - -## `src/pages/Register.tsx`:209 - -- **Text:** 'Benutzername wird geprüft...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {isLoading ? "Registrierung läuft..." : isChecking ? "Benutzername wird geprüft..." : 'Kostenlos registrieren'}` - -## `src/pages/Register.tsx`:209 - -- **Text:** 'Kostenlos registrieren' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {isLoading ? "Registrierung läuft..." : isChecking ? "Benutzername wird geprüft..." : 'Kostenlos registrieren'}` - -## `src/pages/Register.tsx`:215 - -- **Text:** 'Bereits registriert?' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Bereits registriert?` - -## `src/pages/Reset.tsx`:26 - -- **Text:** 'PowerOn AI Platform - Neues Passwort setzen' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` document.title = "PowerOn AI Platform - Neues Passwort setzen";` - -## `src/pages/Reset.tsx`:31 - -- **Text:** 'Ungültiger Reset-Link. Bitte fordern Sie einen neuen Link an.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setTokenError('Ungültiger Reset-Link. Bitte fordern Sie einen neuen Link an.');` - -## `src/pages/Reset.tsx`:33 - -- **Text:** 'Ungültiger Reset-Link. Bitte fordern Sie einen neuen Link an.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setTokenError('Ungültiger Reset-Link. Bitte fordern Sie einen neuen Link an.');` - -## `src/pages/Reset.tsx`:44 - -- **Text:** 'Passwort muss mindestens 8 Zeichen lang sein.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setValidationError('Passwort muss mindestens 8 Zeichen lang sein.');` - -## `src/pages/Reset.tsx`:49 - -- **Text:** 'Die Passwörter stimmen nicht überein.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setValidationError('Die Passwörter stimmen nicht überein.');` - -## `src/pages/Reset.tsx`:65 - -- **Text:** 'Token fehlt. Bitte fordern Sie einen neuen Reset-Link an.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setValidationError('Token fehlt. Bitte fordern Sie einen neuen Reset-Link an.');` - -## `src/pages/Reset.tsx`:71 - -- **Text:** 'Passwort erfolgreich gesetzt! Sie werden zum Login weitergeleitet...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setSuccessMessage('Passwort erfolgreich gesetzt! Sie werden zum Login weitergeleitet...');` - -## `src/pages/Reset.tsx`:78 - -- **Text:** 'Passwort erfolgreich geändert. Bitte melden Sie sich an.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` message: 'Passwort erfolgreich geändert. Bitte melden Sie sich an.'` - -## `src/pages/Reset.tsx`:84 - -- **Text:** 'Passwort-Zurücksetzung fehlgeschlagen.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` const errorMessage = err?.response?.data?.detail || err?.message || 'Passwort-Zurücksetzung fehlgeschlagen.';` - -## `src/pages/Reset.tsx`:85 - -- **Text:** 'Ungültig' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` if (errorMessage.includes('abgelaufen') || errorMessage.includes('expired') || errorMessage.includes('Ungültig') || errorMessage.includes('invalid')) {` - -## `src/pages/Reset.tsx`:86 - -- **Text:** 'Der Reset-Link ist ungültig oder abgelaufen. Bitte fordern Sie einen neuen Link an.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setValidationError('Der Reset-Link ist ungültig oder abgelaufen. Bitte fordern Sie einen neuen Link an.');` - -## `src/pages/Reset.tsx`:101 - -- **Text:** 'PowerOn' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` alt="PowerOn"` - -## `src/pages/Reset.tsx`:107 - -- **Text:** 'Neues Passwort setzen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Neues Passwort setzen

` - -## `src/pages/Reset.tsx`:119 - -- **Text:** 'oder zurück zum' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` oder zurück zum` - -## `src/pages/Reset.tsx`:141 - -- **Text:** 'PowerOn' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` alt="PowerOn"` - -## `src/pages/Reset.tsx`:147 - -- **Text:** 'Neues Passwort setzen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Neues Passwort setzen

` - -## `src/pages/Reset.tsx`:159 - -- **Text:** 'Mindestens 8 Zeichen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `
Mindestens 8 Zeichen
` - -## `src/pages/Reset.tsx`:163 - -- **Text:** ' ' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` placeholder=" "` - -## `src/pages/Reset.tsx`:174 - -- **Text:** 'Neues Passwort' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/Reset.tsx`:181 - -- **Text:** ' ' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` placeholder=" "` - -## `src/pages/Reset.tsx`:192 - -- **Text:** 'Passwort bestätigen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/Reset.tsx`:200 - -- **Text:** 'Wird gespeichert...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {isLoading ? "Wird gespeichert..." : "Passwort setzen"}` - -## `src/pages/Reset.tsx`:200 - -- **Text:** 'Passwort setzen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {isLoading ? "Wird gespeichert..." : "Passwort setzen"}` - -## `src/pages/Reset.tsx`:206 - -- **Text:** 'Zurück zum' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Zurück zum` - -## `src/pages/Settings.tsx`:23 - -- **Text:** 'Profil' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { key: 'profile', label: 'Profil' },` - -## `src/pages/Settings.tsx`:24 - -- **Text:** 'Darstellung' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { key: 'appearance', label: 'Darstellung' },` - -## `src/pages/Settings.tsx`:25 - -- **Text:** 'Stimme & Sprache' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { key: 'voice', label: 'Stimme & Sprache' },` - -## `src/pages/Settings.tsx`:26 - -- **Text:** 'Neutralisierung (lokal)' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { key: 'neutralization', label: 'Neutralisierung (lokal)' },` - -## `src/pages/Settings.tsx`:27 - -- **Text:** 'Datenschutz' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { key: 'privacy', label: 'Datenschutz' },` - -## `src/pages/Settings.tsx`:50 - -- **Text:** 'Deutsch' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { value: 'de', label: 'Deutsch' },` - -## `src/pages/Settings.tsx`:51 - -- **Text:** 'English' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { value: 'en', label: 'English' },` - -## `src/pages/Settings.tsx`:52 - -- **Text:** 'Français' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { value: 'fr', label: 'Français' },` - -## `src/pages/Settings.tsx`:56 - -- **Text:** 'Vollstaendiger Name' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { name: 'fullName', type: 'string', label: 'Vollstaendiger Name', description: 'Ihr vollstaendiger Name', required: false, placeholder: 'Max Mustermann' },` - -## `src/pages/Settings.tsx`:56 - -- **Text:** 'Ihr vollstaendiger Name' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` { name: 'fullName', type: 'string', label: 'Vollstaendiger Name', description: 'Ihr vollstaendiger Name', required: false, placeholder: 'Max Mustermann' },` - -## `src/pages/Settings.tsx`:56 - -- **Text:** 'Max Mustermann' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` { name: 'fullName', type: 'string', label: 'Vollstaendiger Name', description: 'Ihr vollstaendiger Name', required: false, placeholder: 'Max Mustermann' },` - -## `src/pages/Settings.tsx`:57 - -- **Text:** 'E-Mail-Adresse' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { name: 'email', type: 'email', label: 'E-Mail-Adresse', description: 'Ihre E-Mail-Adresse fuer Benachrichtigungen', required: true, placeholder: 'name@example.com' },` - -## `src/pages/Settings.tsx`:57 - -- **Text:** 'Ihre E-Mail-Adresse fuer Benachrichtigungen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` { name: 'email', type: 'email', label: 'E-Mail-Adresse', description: 'Ihre E-Mail-Adresse fuer Benachrichtigungen', required: true, placeholder: 'name@example.com' },` - -## `src/pages/Settings.tsx`:58 - -- **Text:** 'Sprache' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { name: 'language', type: 'select', label: 'Sprache', description: 'Anzeigesprache der Anwendung', required: true, options: languageOptions },` - -## `src/pages/Settings.tsx`:58 - -- **Text:** 'Anzeigesprache der Anwendung' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` { name: 'language', type: 'select', label: 'Sprache', description: 'Anzeigesprache der Anwendung', required: true, options: languageOptions },` - -## `src/pages/Settings.tsx`:68 - -- **Text:** 'Fehler beim Speichern des Profils' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(err.message || 'Fehler beim Speichern des Profils');` - -## `src/pages/Settings.tsx`:80 - -- **Text:** 'Profil bearbeiten' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Profil bearbeiten

` - -## `src/pages/Settings.tsx`:137 - -- **Text:** 'Fehler beim Laden der Voice-Einstellungen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(err.message || 'Fehler beim Laden der Voice-Einstellungen');` - -## `src/pages/Settings.tsx`:184 - -- **Text:** 'Einstellungen gespeichert' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setSuccess('Einstellungen gespeichert');` - -## `src/pages/Settings.tsx`:188 - -- **Text:** 'Fehler beim Speichern' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(err.message || 'Fehler beim Speichern');` - -## `src/pages/Settings.tsx`:206 - -- **Text:** 'Stimmtest fehlgeschlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` } catch { setError('Stimmtest fehlgeschlagen'); }` - -## `src/pages/Settings.tsx`:216 - -- **Text:** 'English (US)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` { code: 'de-DE', name: 'Deutsch' }, { code: 'en-US', name: 'English (US)' },` - -## `src/pages/Settings.tsx`:230 - -- **Text:** 'STT-Sprache (Spracheingabe)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

STT-Sprache (Spracheingabe)

` - -## `src/pages/Settings.tsx`:233 - -- **Text:** 'Sprache fuer Spracherkennung' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/Settings.tsx`:234 - -- **Text:** 'Wird fuer die Sprache-zu-Text-Erkennung verwendet.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Wird fuer die Sprache-zu-Text-Erkennung verwendet.

` - -## `src/pages/Settings.tsx`:247 - -- **Text:** 'TTS-Stimmen (Sprachausgabe)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

TTS-Stimmen (Sprachausgabe)

` - -## `src/pages/Settings.tsx`:304 - -- **Text:** 'Einstellungen speichern' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {saving ? 'Speichern...' : 'Einstellungen speichern'}` - -## `src/pages/Settings.tsx`:342 - -- **Text:** 'Fehler beim Laden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(err.message || 'Fehler beim Laden');` - -## `src/pages/Settings.tsx`:355 - -- **Text:** 'Fehler beim Loeschen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(err.message || 'Fehler beim Loeschen');` - -## `src/pages/Settings.tsx`:371 - -- **Text:** 'Platzhalter-Mappings (lokal)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Platzhalter-Mappings (lokal)

` - -## `src/pages/Settings.tsx`:377 - -- **Text:** '1px solid var(--border-color, #bfdbfe)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` border: '1px solid var(--border-color, #bfdbfe)',` - -## `src/pages/Settings.tsx`:385 - -- **Text:** 'Mandant → AI-Workspace-Instanz → Einstellungen → Tab „Neutralisierung“' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Mandant → AI-Workspace-Instanz → Einstellungen → Tab „Neutralisierung“ (nicht auf dieser` - -## `src/pages/Settings.tsx`:470 - -- **Text:** 'Sprache konnte nicht gespeichert werden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` } catch { setLanguageError('Sprache konnte nicht gespeichert werden'); }` - -## `src/pages/Settings.tsx`:475 - -- **Text:** 'Nicht angemeldet' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` if (!currentUser?.id || !currentUser?.username) throw new Error('Nicht angemeldet');` - -## `src/pages/Settings.tsx`:489 - -- **Text:** 'Persoenliche Einstellungen und Praeferenzen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Persoenliche Einstellungen und Praeferenzen

` - -## `src/pages/Settings.tsx`:511 - -- **Text:** 'Profil bearbeiten' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/Settings.tsx`:512 - -- **Text:** 'Aendern Sie Ihren Namen und Ihre E-Mail-Adresse.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Aendern Sie Ihren Namen und Ihre E-Mail-Adresse.

` - -## `src/pages/Settings.tsx`:540 - -- **Text:** 'Waehlen Sie zwischen hellem und dunklem Design.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Waehlen Sie zwischen hellem und dunklem Design.

` - -## `src/pages/Settings.tsx`:555 - -- **Text:** 'Deutsch' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { code: 'de', label: 'Deutsch' },` - -## `src/pages/Settings.tsx`:556 - -- **Text:** 'English' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { code: 'en', label: 'English' },` - -## `src/pages/Settings.tsx`:557 - -- **Text:** 'Français' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { code: 'fr', label: 'Français' },` - -## `src/pages/Settings.tsx`:584 - -- **Text:** 'GDPR / Privacy' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Datenexport, Portabilität und Kontolöschung.

` - -## `src/pages/Settings.tsx`:584 - -- **Text:** 'Datenexport, Portabilität und Kontolöschung.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Datenexport, Portabilität und Kontolöschung.

` - -## `src/pages/Settings.tsx`:585 - -- **Text:** 'GDPR öffnen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `
GDPR öffnen
` - -## `src/pages/Store.tsx`:25 - -- **Text:** 'Erstelle und verwalte Automatisierungen, um wiederkehrende Aufgaben effizient zu erledigen.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` de: 'Erstelle und verwalte Automatisierungen, um wiederkehrende Aufgaben effizient zu erledigen.',` - -## `src/pages/Store.tsx`:26 - -- **Text:** 'Create and manage automations to handle recurring tasks efficiently.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` en: 'Create and manage automations to handle recurring tasks efficiently.',` - -## `src/pages/Store.tsx`:27 - -- **Text:** 'Creer et gerer des automatisations pour traiter efficacement les taches recurrentes.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` fr: 'Creer et gerer des automatisations pour traiter efficacement les taches recurrentes.',` - -## `src/pages/Store.tsx`:30 - -- **Text:** 'n8n-style Flow-Automatisierung mit grafischem Editor, RAG und Tools.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` de: 'n8n-style Flow-Automatisierung mit grafischem Editor, RAG und Tools.',` - -## `src/pages/Store.tsx`:31 - -- **Text:** 'n8n-style flow automation with visual editor, RAG and tools.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` en: 'n8n-style flow automation with visual editor, RAG and tools.',` - -## `src/pages/Store.tsx`:32 - -- **Text:** 'Automatisation de flux style n8n avec editeur visuel, RAG et outils.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` fr: 'Automatisation de flux style n8n avec editeur visuel, RAG et outils.',` - -## `src/pages/Store.tsx`:35 - -- **Text:** 'Integriere einen AI-Bot in deine Microsoft Teams Meetings und Channels.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` de: 'Integriere einen AI-Bot in deine Microsoft Teams Meetings und Channels.',` - -## `src/pages/Store.tsx`:36 - -- **Text:** 'Integrate an AI bot into your Microsoft Teams meetings and channels.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` en: 'Integrate an AI bot into your Microsoft Teams meetings and channels.',` - -## `src/pages/Store.tsx`:37 - -- **Text:** 'Integrez un bot IA dans vos reunions et canaux Microsoft Teams.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` fr: 'Integrez un bot IA dans vos reunions et canaux Microsoft Teams.',` - -## `src/pages/Store.tsx`:40 - -- **Text:** 'Nutze den gemeinsamen AI Workspace: Chats, Tools und Kontext pro Instanz.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` de: 'Nutze den gemeinsamen AI Workspace: Chats, Tools und Kontext pro Instanz.',` - -## `src/pages/Store.tsx`:41 - -- **Text:** 'Use the shared AI workspace: chats, tools, and context per instance.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` en: 'Use the shared AI workspace: chats, tools, and context per instance.',` - -## `src/pages/Store.tsx`:42 - -- **Text:** "Utilisez l'espace de travail IA partage: chats, outils et contexte par instance." -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` fr: 'Utilisez l\'espace de travail IA partage: chats, outils et contexte par instance.',` - -## `src/pages/Store.tsx`:45 - -- **Text:** 'CommCoach: Kommunikation trainieren mit KI-gestütztem Coaching und Feedback.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` de: 'CommCoach: Kommunikation trainieren mit KI-gestütztem Coaching und Feedback.',` - -## `src/pages/Store.tsx`:46 - -- **Text:** 'CommCoach: practice communication with AI-assisted coaching and feedback.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` en: 'CommCoach: practice communication with AI-assisted coaching and feedback.',` - -## `src/pages/Store.tsx`:47 - -- **Text:** 'CommCoach: entrainer la communication avec un coaching assiste par IA.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` fr: 'CommCoach: entrainer la communication avec un coaching assiste par IA.',` - -## `src/pages/Store.tsx`:140 - -- **Text:** 'Wird aktiviert...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ? (language === 'de' ? 'Wird aktiviert...' : 'Activating...')` - -## `src/pages/Store.tsx`:160 - -- **Text:** 'Feature Store' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** `

{currentLanguage === 'de' ? 'Feature Store' : currentLanguage === 'fr' ? 'Feature Store' : 'Feature Store'}

` - -## `src/pages/Store.tsx`:163 - -- **Text:** 'Aktiviere Features fuer dein Konto. Deine Daten sind isoliert und nur fuer dich sichtbar.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ? 'Aktiviere Features fuer dein Konto. Deine Daten sind isoliert und nur fuer dich sichtbar.'` - -## `src/pages/Store.tsx`:165 - -- **Text:** 'Activez des fonctionnalites pour votre compte. Vos donnees sont isolees et visibles uniquement par vous.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ? 'Activez des fonctionnalites pour votre compte. Vos donnees sont isolees et visibles uniquement par vous.'` - -## `src/pages/Store.tsx`:166 - -- **Text:** 'Activate features for your account. Your data is isolated and only visible to you.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` : 'Activate features for your account. Your data is isolated and only visible to you.'}` - -## `src/pages/Store.tsx`:186 - -- **Text:** 'AI budget' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {currentLanguage === 'de' ? 'AI-Budget' : 'AI budget'}: {subscriptionInfo.budgetAiCHF} CHF` - -## `src/pages/Store.tsx`:191 - -- **Text:** 'Trial endet' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {currentLanguage === 'de' ? 'Trial endet' : 'Trial ends'}: {new Date(subscriptionInfo.trialEndsAt).toLocaleDateString()}` - -## `src/pages/Store.tsx`:191 - -- **Text:** 'Trial ends' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {currentLanguage === 'de' ? 'Trial endet' : 'Trial ends'}: {new Date(subscriptionInfo.trialEndsAt).toLocaleDateString()}` - -## `src/pages/Store.tsx`:201 - -- **Text:** 'Lade Features...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {currentLanguage === 'de' ? 'Lade Features...' : 'Loading features...'}` - -## `src/pages/Store.tsx`:201 - -- **Text:** 'Loading features...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {currentLanguage === 'de' ? 'Lade Features...' : 'Loading features...'}` - -## `src/pages/Store.tsx`:206 - -- **Text:** 'Keine Features im Store verfuegbar.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ? 'Keine Features im Store verfuegbar.'` - -## `src/pages/Store.tsx`:207 - -- **Text:** 'No features available in the store.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` : 'No features available in the store.'}` - -## `src/pages/admin/AccessManagementHub.tsx`:147 - -- **Text:** 'Rollen synchronisiert' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` 'Rollen synchronisiert',` - -## `src/pages/admin/AccessManagementHub.tsx`:152 - -- **Text:** 'Synchronisierung fehlgeschlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Synchronisierung fehlgeschlagen', result.error || 'Fehler beim Synchronisieren');` - -## `src/pages/admin/AccessManagementHub.tsx`:152 - -- **Text:** 'Fehler beim Synchronisieren' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Synchronisierung fehlgeschlagen', result.error || 'Fehler beim Synchronisieren');` - -## `src/pages/admin/AccessManagementHub.tsx`:155 - -- **Text:** 'Rollen konnten nicht synchronisiert werden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', 'Rollen konnten nicht synchronisiert werden');` - -## `src/pages/admin/AccessManagementHub.tsx`:308 - -- **Text:** 'Fehler: {error}' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Fehler: {error}

` - -## `src/pages/admin/AccessManagementHub.tsx`:342 - -- **Text:** '-- Mandant wählen --' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/AccessManagementHub.tsx`:431 - -- **Text:** 'Kein Mandant ausgewählt' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Kein Mandant ausgewählt

` - -## `src/pages/admin/AccessManagementHub.tsx`:463 - -- **Text:** 'Rollen (max)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Rollen (max)` - -## `src/pages/admin/AccessManagementHub.tsx`:496 - -- **Text:** 'Lade Instanzen...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Lade Instanzen...` - -## `src/pages/admin/AccessManagementHub.tsx`:501 - -- **Text:** 'Keine Feature-Instanzen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Keine Feature-Instanzen

` - -## `src/pages/admin/AccessManagementHub.tsx`:526 - -- **Text:** 'f.code === inst.featureCode) || { code: inst.featureCode, label: inst.featureCode })}' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` {getFeatureLabel(features.find((f) => f.code === inst.featureCode) || { code: inst.featureCode, label: inst.featureCode })}` - -## `src/pages/admin/AccessManagementHub.tsx`:543 - -- **Text:** 'Rollen synchronisieren' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` title="Rollen synchronisieren"` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:87 - -- **Text:** 'Name' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { key: 'label', label: 'Name', type: 'string' as const, sortable: true, filterable: true, searchable: true, width: 200 },` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:88 - -- **Text:** 'Feature' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { key: 'featureCode', label: 'Feature', type: 'string' as const, sortable: true, filterable: true, width: 150,` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:100 - -- **Text:** 'Aktiv' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { key: 'enabled', label: 'Aktiv', type: 'boolean' as const, sortable: true, filterable: true, width: 80 },` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:123 - -- **Text:** 'Label ist erforderlich.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', 'Label ist erforderlich.');` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:133 - -- **Text:** 'System Prompt ist erforderlich für Chatbot-Instanzen.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', 'System Prompt ist erforderlich für Chatbot-Instanzen.');` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:177 - -- **Text:** 'Feature-Instanz erstellt' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Feature-Instanz erstellt', `Die Instanz "${createLabel}" wurde erfolgreich erstellt.`);` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:179 - -- **Text:** 'Fehler beim Erstellen der Feature-Instanz' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Erstellen der Feature-Instanz');` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:229 - -- **Text:** 'System Prompt ist erforderlich für Chatbot-Instanzen.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', 'System Prompt ist erforderlich für Chatbot-Instanzen.');` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:271 - -- **Text:** 'Feature-Instanz aktualisiert' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Feature-Instanz aktualisiert', `Die Instanz "${data.label}" wurde erfolgreich aktualisiert.`);` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:273 - -- **Text:** 'Fehler beim Aktualisieren der Feature-Instanz' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Aktualisieren der Feature-Instanz');` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:286 - -- **Text:** 'Instanz gelöscht' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Instanz gelöscht', 'Die Feature-Instanz wurde gelöscht.');` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:286 - -- **Text:** 'Die Feature-Instanz wurde gelöscht.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Instanz gelöscht', 'Die Feature-Instanz wurde gelöscht.');` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:289 - -- **Text:** 'Fehler beim Löschen der Feature-Instanz' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Löschen der Feature-Instanz');` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:302 - -- **Text:** 'Rollen synchronisiert' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` 'Rollen synchronisiert',` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:306 - -- **Text:** 'Synchronisierung fehlgeschlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Synchronisierung fehlgeschlagen', result.error || 'Fehler beim Synchronisieren der Rollen');` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:306 - -- **Text:** 'Fehler beim Synchronisieren der Rollen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Synchronisierung fehlgeschlagen', result.error || 'Fehler beim Synchronisieren der Rollen');` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:338 - -- **Text:** 'Fehler: {error}' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Fehler: {error}

` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:352 - -- **Text:** 'Verwalten Sie Feature-Instanzen für jeden Mandanten' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Verwalten Sie Feature-Instanzen für jeden Mandanten

` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:368 - -- **Text:** '-- Mandant wählen --' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:390 - -- **Text:** 'Keine Features verfügbar. Bitte laden Sie die Seite neu oder prüfen Sie die Konsole auf Fehler.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title={features.length === 0 ? 'Keine Features verfügbar. Bitte laden Sie die Seite neu oder prüfen Sie die Konsole auf Fehler.' : undefined}` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:402 - -- **Text:** 'Verfügbare Features:' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Verfügbare Features: ` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:415 - -- **Text:** ' Die API hat keine Features zurückgegeben.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {error ? ` Fehler: ${error}` : ' Die API hat keine Features zurückgegeben.'}` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:432 - -- **Text:** 'Kein Mandant ausgewählt' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Kein Mandant ausgewählt

` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:453 - -- **Text:** 'Instanz löschen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Instanz löschen',` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:461 - -- **Text:** 'Instanz bearbeiten' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Instanz bearbeiten',` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:467 - -- **Text:** 'Rollen synchronisieren' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Rollen synchronisieren',` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:477 - -- **Text:** 'Keine Feature-Instanzen gefunden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` emptyMessage="Keine Feature-Instanzen gefunden"` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:487 - -- **Text:** 'Neue Feature-Instanz erstellen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Neue Feature-Instanz erstellen

` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:497 - -- **Text:** 'Keine Features verfügbar. Bitte wenden Sie sich an den System-Administrator.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Keine Features verfügbar. Bitte wenden Sie sich an den System-Administrator.

` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:501 - -- **Text:** 'Lade Formular...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Lade Formular...` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:528 - -- **Text:** 'Feature auswählen (erforderlich)' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` placeholder="Feature auswählen (erforderlich)"` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:555 - -- **Text:** 'Instanz-Bezeichnung eingeben...' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` placeholder="Instanz-Bezeichnung eingeben..."` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:611 - -- **Text:** 'Feature-Instanz bearbeiten' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Feature-Instanz bearbeiten

` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:625 - -- **Text:** 'Bezeichnung' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Bezeichnung',` - -## `src/pages/admin/AdminFeatureAccessPage.tsx`:632 - -- **Text:** 'Aktiviert' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Aktiviert',` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:201 - -- **Text:** 'Benutzername' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Benutzername',` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:210 - -- **Text:** 'E-Mail' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'E-Mail',` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:219 - -- **Text:** 'Vollständiger Name' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Vollständiger Name',` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:228 - -- **Text:** 'Rollen' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Rollen',` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:241 - -- **Text:** 'Aktiv' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Aktiv',` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:268 - -- **Text:** 'Benutzer' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Benutzer',` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:275 - -- **Text:** 'Rollen' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Rollen',` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:288 - -- **Text:** 'Rollen' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Rollen',` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:295 - -- **Text:** 'Aktiv' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Aktiv',` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:312 - -- **Text:** 'Benutzer hinzugefügt' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Benutzer hinzugefügt', 'Der Benutzer wurde erfolgreich zur Feature-Instanz hinzugefügt.');` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:312 - -- **Text:** 'Der Benutzer wurde erfolgreich zur Feature-Instanz hinzugefügt.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Benutzer hinzugefügt', 'Der Benutzer wurde erfolgreich zur Feature-Instanz hinzugefügt.');` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:314 - -- **Text:** 'Fehler beim Hinzufügen des Benutzers' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Hinzufügen des Benutzers');` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:336 - -- **Text:** 'Eintrag aktualisiert' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Eintrag aktualisiert', 'Rollen und Aktiv-Status wurden erfolgreich aktualisiert.');` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:336 - -- **Text:** 'Rollen und Aktiv-Status wurden erfolgreich aktualisiert.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Eintrag aktualisiert', 'Rollen und Aktiv-Status wurden erfolgreich aktualisiert.');` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:338 - -- **Text:** 'Fehler beim Aktualisieren' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Aktualisieren');` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:352 - -- **Text:** 'Benutzer entfernt' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Benutzer entfernt', `"${user.username}" wurde aus der Feature-Instanz entfernt.`);` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:354 - -- **Text:** 'Fehler beim Entfernen des Benutzers' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Entfernen des Benutzers');` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:396 - -- **Text:** 'Fehler: {error}' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Fehler: {error}

` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:409 - -- **Text:** 'Feature Instanz Benutzer' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Feature Instanz Benutzer

` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:410 - -- **Text:** 'Verwalten Sie Benutzerzugriffe auf Feature-Instanzen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Verwalten Sie Benutzerzugriffe auf Feature-Instanzen

` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:427 - -- **Text:** '-- Mandant / Feature-Instanz wählen --' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:485 - -- **Text:** 'Verfügbare Rollen:' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Verfügbare Rollen: ` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:499 - -- **Text:** 'Diese Instanz hat noch keine Rollen. Bitte synchronisieren Sie die Rollen zuerst unter "Feature-Instanzen".' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Diese Instanz hat noch keine Rollen. Bitte synchronisieren Sie die Rollen zuerst unter "Feature-Instanzen".` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:507 - -- **Text:** 'Keine Feature-Instanz ausgewählt' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Keine Feature-Instanz ausgewählt

` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:510 - -- **Text:** 'Es gibt noch keine Feature-Instanzen. Erstellen Sie zuerst Feature-Instanzen unter "Feature-Instanzen".' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ? 'Es gibt noch keine Feature-Instanzen. Erstellen Sie zuerst Feature-Instanzen unter "Feature-Instanzen".'` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:511 - -- **Text:** 'Wählen Sie eine Feature-Instanz aus, um deren Benutzer zu verwalten.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` : 'Wählen Sie eine Feature-Instanz aus, um deren Benutzer zu verwalten.'}` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:531 - -- **Text:** 'Rollen bearbeiten' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Rollen bearbeiten',` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:535 - -- **Text:** 'Aus Instanz entfernen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Aus Instanz entfernen',` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:552 - -- **Text:** 'Keine Benutzer gefunden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` emptyMessage="Keine Benutzer gefunden"` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:562 - -- **Text:** 'Benutzer zur Feature-Instanz hinzufügen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Benutzer zur Feature-Instanz hinzufügen

` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:572 - -- **Text:** 'Alle Benutzer haben bereits Zugriff auf diese Feature-Instanz.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Alle Benutzer haben bereits Zugriff auf diese Feature-Instanz.

` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:574 - -- **Text:** 'Diese Feature-Instanz hat keine Rollen. Bitte synchronisieren Sie zuerst die Rollen.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Diese Feature-Instanz hat keine Rollen. Bitte synchronisieren Sie zuerst die Rollen.

` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:581 - -- **Text:** 'Hinzufügen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` submitButtonText="Hinzufügen"` - -## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:595 - -- **Text:** 'Rollen bearbeiten: {editingUser.username}' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Rollen bearbeiten: {editingUser.username}

` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:69 - -- **Text:** 'Fehler beim Laden der Features' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError('Fehler beim Laden der Features');` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:111 - -- **Text:** 'Fehler beim Laden der Feature-Rollen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError('Fehler beim Laden der Feature-Rollen');` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:134 - -- **Text:** 'Rollen-Label' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Rollen-Label',` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:143 - -- **Text:** 'Beschreibung' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Beschreibung',` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:151 - -- **Text:** 'Feature' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Feature',` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:169 - -- **Text:** 'Rollen-Label' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Rollen-Label',` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:172 - -- **Text:** 'Eindeutiger Bezeichner der Rolle (z.B. trustee-admin)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` description: 'Eindeutiger Bezeichner der Rolle (z.B. trustee-admin)'` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:176 - -- **Text:** 'Beschreibung' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Beschreibung',` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:179 - -- **Text:** 'Mehrsprachige Beschreibung der Rolle' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` description: 'Mehrsprachige Beschreibung der Rolle'` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:190 - -- **Text:** 'Rollen-Label' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Rollen-Label',` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:194 - -- **Text:** 'Eindeutiger Bezeichner der Rolle' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` description: 'Eindeutiger Bezeichner der Rolle'` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:198 - -- **Text:** 'Beschreibung' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Beschreibung',` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:201 - -- **Text:** 'Mehrsprachige Beschreibung der Rolle' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` description: 'Mehrsprachige Beschreibung der Rolle'` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:221 - -- **Text:** 'Fehler beim Erstellen der Rolle' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', err.response?.data?.detail || 'Fehler beim Erstellen der Rolle');` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:240 - -- **Text:** 'Fehler beim Aktualisieren der Rolle' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', err.response?.data?.detail || 'Fehler beim Aktualisieren der Rolle');` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:253 - -- **Text:** 'Fehler beim Löschen der Rolle' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', err.response?.data?.detail || 'Fehler beim Löschen der Rolle');` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:283 - -- **Text:** 'Feature Rollen & Rechte' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Feature Rollen & Rechte

` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:284 - -- **Text:** 'Template-Rollen und deren Berechtigungen für Feature-Instanzen verwalten' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Template-Rollen und deren Berechtigungen für Feature-Instanzen verwalten

` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:300 - -- **Text:** '-- Feature wählen --' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:346 - -- **Text:** 'Kein Feature ausgewählt' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Kein Feature ausgewählt

` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:368 - -- **Text:** 'Rolle bearbeiten' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Rolle bearbeiten',` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:372 - -- **Text:** 'Rolle löschen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Rolle löschen',` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:380 - -- **Text:** 'Berechtigungen verwalten' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Berechtigungen verwalten',` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:389 - -- **Text:** 'Keine Feature-Rollen gefunden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` emptyMessage="Keine Feature-Rollen gefunden"` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:399 - -- **Text:** 'Neue Feature-Rolle erstellen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Neue Feature-Rolle erstellen

` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:417 - -- **Text:** 'Rolle erstellen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` submitButtonText={isSubmitting ? 'Erstelle...' : 'Rolle erstellen'}` - -## `src/pages/admin/AdminFeatureRolesPage.tsx`:430 - -- **Text:** 'Feature-Rolle bearbeiten' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Feature-Rolle bearbeiten

` - -## `src/pages/admin/AdminInvitationsPage.tsx`:86 - -- **Text:** 'Benutzername' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Benutzername',` - -## `src/pages/admin/AdminInvitationsPage.tsx`:95 - -- **Text:** 'E-Mail' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'E-Mail',` - -## `src/pages/admin/AdminInvitationsPage.tsx`:104 - -- **Text:** 'Email wurde gesendet' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ` - -## `src/pages/admin/AdminInvitationsPage.tsx`:104 - -- **Text:** 'Email nicht gesendet' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ` - -## `src/pages/admin/AdminInvitationsPage.tsx`:112 - -- **Text:** 'Rollen' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Rollen',` - -## `src/pages/admin/AdminInvitationsPage.tsx`:127 - -- **Text:** 'Gültig bis' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Gültig bis',` - -## `src/pages/admin/AdminInvitationsPage.tsx`:143 - -- **Text:** 'Verwendet' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Verwendet',` - -## `src/pages/admin/AdminInvitationsPage.tsx`:151 - -- **Text:** 'Erstellt' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Erstellt',` - -## `src/pages/admin/AdminInvitationsPage.tsx`:177 - -- **Text:** 'Gültigkeitsdauer (Stunden)' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` fields.push({ name: 'expiresInHours', label: 'Gültigkeitsdauer (Stunden)', type: 'number',` - -## `src/pages/admin/AdminInvitationsPage.tsx`:200 - -- **Text:** 'Fehler beim Erstellen der Einladung' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Erstellen der Einladung');` - -## `src/pages/admin/AdminInvitationsPage.tsx`:213 - -- **Text:** 'Fehler beim Widerrufen der Einladung' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Widerrufen der Einladung');` - -## `src/pages/admin/AdminInvitationsPage.tsx`:248 - -- **Text:** 'Fehler: {error}' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Fehler: {error}

` - -## `src/pages/admin/AdminInvitationsPage.tsx`:262 - -- **Text:** 'Erstellen und verwalten Sie Einladungen für neue Benutzer' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Erstellen und verwalten Sie Einladungen für neue Benutzer

` - -## `src/pages/admin/AdminInvitationsPage.tsx`:278 - -- **Text:** '-- Mandant wählen --' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/AdminInvitationsPage.tsx`:329 - -- **Text:** 'Kein Mandant ausgewählt' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Kein Mandant ausgewählt

` - -## `src/pages/admin/AdminInvitationsPage.tsx`:350 - -- **Text:** 'Einladung widerrufen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Einladung widerrufen',` - -## `src/pages/admin/AdminInvitationsPage.tsx`:358 - -- **Text:** 'Einladungs-Link anzeigen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Einladungs-Link anzeigen',` - -## `src/pages/admin/AdminInvitationsPage.tsx`:366 - -- **Text:** 'Keine Einladungen gefunden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` emptyMessage="Keine Einladungen gefunden"` - -## `src/pages/admin/AdminInvitationsPage.tsx`:376 - -- **Text:** 'Neue Einladung erstellen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Neue Einladung erstellen

` - -## `src/pages/admin/AdminInvitationsPage.tsx`:388 - -- **Text:** 'Lade Rollen...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Lade Rollen...` - -## `src/pages/admin/AdminInvitationsPage.tsx`:393 - -- **Text:** 'Lade Formular...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Lade Formular...` - -## `src/pages/admin/AdminInvitationsPage.tsx`:401 - -- **Text:** 'Einladung erstellen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` submitButtonText="Einladung erstellen"` - -## `src/pages/admin/AdminInvitationsPage.tsx`:438 - -- **Text:** 'In Zwischenablage kopieren' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` title="In Zwischenablage kopieren"` - -## `src/pages/admin/AdminInvitationsPage.tsx`:441 - -- **Text:** ' Kopiert!' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {copySuccess ? ' Kopiert!' : ' Kopieren'}` - -## `src/pages/admin/AdminInvitationsPage.tsx`:441 - -- **Text:** ' Kopieren' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {copySuccess ? ' Kopiert!' : ' Kopieren'}` - -## `src/pages/admin/AdminLanguagesPage.tsx`:22 - -- **Text:** 'Code' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { key: 'id', label: 'Code', type: 'text', sortable: true, filterable: true, width: 90 },` - -## `src/pages/admin/AdminLanguagesPage.tsx`:23 - -- **Text:** 'Bezeichnung' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { key: 'label', label: 'Bezeichnung', type: 'text', sortable: true, filterable: true, width: 160 },` - -## `src/pages/admin/AdminLanguagesPage.tsx`:24 - -- **Text:** 'Status' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { key: 'status', label: 'Status', type: 'text', sortable: true, filterable: true, width: 120 },` - -## `src/pages/admin/AdminLanguagesPage.tsx`:25 - -- **Text:** 'Keys' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { key: 'keysCount', label: 'Keys', type: 'number', sortable: true, width: 90 },` - -## `src/pages/admin/AdminLanguagesPage.tsx`:29 - -- **Text:** 'it — Italiano' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { value: 'it', label: 'it — Italiano' },` - -## `src/pages/admin/AdminLanguagesPage.tsx`:30 - -- **Text:** 'es — Español' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { value: 'es', label: 'es — Español' },` - -## `src/pages/admin/AdminLanguagesPage.tsx`:31 - -- **Text:** 'pt — Português' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { value: 'pt', label: 'pt — Português' },` - -## `src/pages/admin/AdminLanguagesPage.tsx`:32 - -- **Text:** 'nl — Nederlands' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { value: 'nl', label: 'nl — Nederlands' },` - -## `src/pages/admin/AdminLanguagesPage.tsx`:33 - -- **Text:** 'pl — Polski' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { value: 'pl', label: 'pl — Polski' },` - -## `src/pages/admin/AdminLanguagesPage.tsx`:34 - -- **Text:** 'cs — Čeština' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { value: 'cs', label: 'cs — Čeština' },` - -## `src/pages/admin/AdminLanguagesPage.tsx`:35 - -- **Text:** 'sk — Slovenčina' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { value: 'sk', label: 'sk — Slovenčina' },` - -## `src/pages/admin/AdminLanguagesPage.tsx`:36 - -- **Text:** 'sv — Svenska' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { value: 'sv', label: 'sv — Svenska' },` - -## `src/pages/admin/AdminLanguagesPage.tsx`:37 - -- **Text:** 'no — Norsk' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { value: 'no', label: 'no — Norsk' },` - -## `src/pages/admin/AdminLanguagesPage.tsx`:38 - -- **Text:** 'da — Dansk' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { value: 'da', label: 'da — Dansk' },` - -## `src/pages/admin/AdminLanguagesPage.tsx`:65 - -- **Text:** 'Laden fehlgeschlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(e.response?.data?.detail || e.message || 'Laden fehlgeschlagen');` - -## `src/pages/admin/AdminLogsPage.tsx`:49 - -- **Text:** 'Fehler beim Laden der Logs' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(err.response?.data?.detail || 'Fehler beim Laden der Logs');` - -## `src/pages/admin/AdminLogsPage.tsx`:81 - -- **Text:** 'Fehler beim Download' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(err.response?.data?.detail || 'Fehler beim Download');` - -## `src/pages/admin/AdminLogsPage.tsx`:107 - -- **Text:** 'Gateway Logs' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Gateway Logs

` - -## `src/pages/admin/AdminLogsPage.tsx`:111 - -- **Text:** 'Keine Logs geladen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` : 'Keine Logs geladen'}` - -## `src/pages/admin/AdminLogsPage.tsx`:112 - -- **Text:** '— {logDir}' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` {logDir && — {logDir}}` - -## `src/pages/admin/AdminLogsPage.tsx`:120 - -- **Text:** 'Log herunterladen' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` title="Log herunterladen"` - -## `src/pages/admin/AdminLogsPage.tsx`:139 - -- **Text:** 'Einträge' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/AdminLogsPage.tsx`:182 - -- **Text:** 'Keine Logs geladen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Keine Logs geladen

` - -## `src/pages/admin/AdminLogsPage.tsx`:191 - -- **Text:** 'Logs werden geladen...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Logs werden geladen...` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:14 - -- **Text:** 'Cleanup Duplicates' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` * Includes a "Cleanup Duplicates" tool to find and remove duplicate AccessRules.` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:180 - -- **Text:** 'Fehler beim Laden der Duplikate' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setCleanupError(err?.response?.data?.detail || err?.message || 'Fehler beim Laden der Duplikate');` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:200 - -- **Text:** 'Fehler beim Bereinigen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setCleanupError(err?.response?.data?.detail || err?.message || 'Fehler beim Bereinigen');` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:215 - -- **Text:** 'Mandanten-Rollen' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { value: 'mandate', label: 'Mandanten-Rollen' },` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:216 - -- **Text:** 'Alle (inkl. Templates)' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { value: 'all', label: 'Alle (inkl. Templates)' },` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:217 - -- **Text:** 'Nur Templates' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { value: 'global', label: 'Nur Templates' },` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:225 - -- **Text:** 'Fehler beim Laden: {error}' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Fehler beim Laden: {error}

` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:252 - -- **Text:** 'Doppelte Regeln finden und bereinigen' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` title="Doppelte Regeln finden und bereinigen"` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:313 - -- **Text:** 'Lade Rollen...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Lade Rollen...` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:321 - -- **Text:** 'Keine Rollen gefunden' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Keine Rollen gefunden

` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:324 - -- **Text:** 'Es gibt noch keine Mandanten-Rollen. System-Rollen werden bei der Mandant-Erstellung automatisch kopiert.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ? 'Es gibt noch keine Mandanten-Rollen. System-Rollen werden bei der Mandant-Erstellung automatisch kopiert.'` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:326 - -- **Text:** 'Es gibt noch keine Rollen-Templates.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ? 'Es gibt noch keine Rollen-Templates.'` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:327 - -- **Text:** 'Es gibt noch keine Rollen für diesen Mandanten.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` : 'Es gibt noch keine Rollen für diesen Mandanten.'}` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:402 - -- **Text:** 'Analysiere Duplikate...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {cleanupPhase === 'idle' ? 'Analysiere Duplikate...' : 'Bereinige Duplikate...'}` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:402 - -- **Text:** 'Bereinige Duplikate...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {cleanupPhase === 'idle' ? 'Analysiere Duplikate...' : 'Bereinige Duplikate...'}` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:436 - -- **Text:** 'Zu loeschen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {cleanupPhase === 'done' ? 'Geloescht' : 'Zu loeschen'}` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:445 - -- **Text:** 'doppelte Regeln wurden erfolgreich entfernt.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` {cleanupResult.deletedCount} doppelte Regeln wurden erfolgreich entfernt.` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:452 - -- **Text:** 'Keine Duplikate gefunden. Alles sauber!' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Keine Duplikate gefunden. Alles sauber!` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:515 - -- **Text:** 'Zu reparieren' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {cleanupPhase === 'done' ? 'Repariert' : 'Zu reparieren'}` - -## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:566 - -- **Text:** 'Keine fehlerhaften Template-Rollen-Zuweisungen.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Keine fehlerhaften Template-Rollen-Zuweisungen.` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:102 - -- **Text:** 'Bezeichnung' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Bezeichnung',` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:111 - -- **Text:** 'Beschreibung' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Beschreibung',` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:120 - -- **Text:** 'Geltungsbereich' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Geltungsbereich',` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:161 - -- **Text:** 'Geltungsbereich' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Geltungsbereich',` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:166 - -- **Text:** 'Nur dieser Mandant' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { value: 'mandate', label: 'Nur dieser Mandant' },` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:167 - -- **Text:** 'Template (wird bei neuen Mandanten kopiert)' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { value: 'global', label: 'Template (wird bei neuen Mandanten kopiert)' },` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:216 - -- **Text:** 'Fehler beim Erstellen der Rolle' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Erstellen der Rolle');` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:220 - -- **Text:** 'Fehler beim Erstellen der Rolle' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', err.message || 'Fehler beim Erstellen der Rolle');` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:255 - -- **Text:** 'Fehler beim Aktualisieren der Rolle' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Aktualisieren der Rolle');` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:259 - -- **Text:** 'Fehler beim Aktualisieren der Rolle' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', err.message || 'Fehler beim Aktualisieren der Rolle');` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:268 - -- **Text:** 'Nicht erlaubt' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showWarning('Nicht erlaubt', 'System-Rollen können nicht gelöscht werden.');` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:268 - -- **Text:** 'System-Rollen können nicht gelöscht werden.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showWarning('Nicht erlaubt', 'System-Rollen können nicht gelöscht werden.');` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:277 - -- **Text:** 'Fehler beim Löschen der Rolle' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Löschen der Rolle');` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:300 - -- **Text:** 'Fehler: {error}' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Fehler: {error}

` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:314 - -- **Text:** 'Verwalten Sie System-, globale und mandantenspezifische Rollen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Verwalten Sie System-, globale und mandantenspezifische Rollen

` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:346 - -- **Text:** '-- Mandant wählen --' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:364 - -- **Text:** 'Alle (inkl. Templates)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:365 - -- **Text:** 'Nur Templates' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:404 - -- **Text:** 'Kein Mandant ausgewählt' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Kein Mandant ausgewählt

` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:426 - -- **Text:** 'Rolle bearbeiten' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Rolle bearbeiten',` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:427 - -- **Text:** 'System-Rollen können nicht bearbeitet werden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` disabled: (row: Role) => row.isSystemRole ? { disabled: true, message: 'System-Rollen können nicht bearbeitet werden' } : false` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:431 - -- **Text:** 'Rolle löschen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Rolle löschen',` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:432 - -- **Text:** 'System-Rollen können nicht gelöscht werden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` disabled: (row: Role) => row.isSystemRole ? { disabled: true, message: 'System-Rollen können nicht gelöscht werden' } : false` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:441 - -- **Text:** 'Keine Rollen gefunden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` emptyMessage="Keine Rollen gefunden"` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:451 - -- **Text:** 'Neue Rolle erstellen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Neue Rolle erstellen

` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:463 - -- **Text:** 'Lade Formular...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Lade Formular...` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:471 - -- **Text:** 'Rolle erstellen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` submitButtonText={isSubmitting ? 'Erstelle...' : 'Rolle erstellen'}` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:485 - -- **Text:** 'Rolle bearbeiten: {editingRole.roleLabel}' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Rolle bearbeiten: {editingRole.roleLabel}

` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:497 - -- **Text:** 'Lade Formular...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Lade Formular...` - -## `src/pages/admin/AdminMandateRolesPage.tsx`:504 - -- **Text:** 'Template (global)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` Geltungsbereich: {editingRole.mandateId ? 'Mandanten-Instanz' : 'Template (global)'}` - -## `src/pages/admin/AdminMandatesPage.tsx`:76 - -- **Text:** 'Abrechnungseinstellungen konnten nicht geladen werden. Nur Mandantendaten sind sicher bearbeitbar.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` 'Abrechnungseinstellungen konnten nicht geladen werden. Nur Mandantendaten sind sicher bearbeitbar.'` - -## `src/pages/admin/AdminMandatesPage.tsx`:88 - -- **Text:** 'Mandant inkl. Abrechnungseinstellungen gespeichert.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Erstellt', 'Mandant inkl. Abrechnungseinstellungen gespeichert.');` - -## `src/pages/admin/AdminMandatesPage.tsx`:92 - -- **Text:** 'Mandant erstellt' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` 'Mandant erstellt',` - -## `src/pages/admin/AdminMandatesPage.tsx`:93 - -- **Text:** 'Abrechnungseinstellungen konnten nicht gespeichert werden. Bitte unter Administration → Abrechnung nachpflegen.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` 'Abrechnungseinstellungen konnten nicht gespeichert werden. Bitte unter Administration → Abrechnung nachpflegen.'` - -## `src/pages/admin/AdminMandatesPage.tsx`:108 - -- **Text:** 'Mandant und Abrechnung aktualisiert.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Gespeichert', 'Mandant und Abrechnung aktualisiert.');` - -## `src/pages/admin/AdminMandatesPage.tsx`:111 - -- **Text:** 'Teilweise gespeichert' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showWarning('Teilweise gespeichert', 'Mandant gespeichert, Abrechnung konnte nicht aktualisiert werden.');` - -## `src/pages/admin/AdminMandatesPage.tsx`:111 - -- **Text:** 'Mandant gespeichert, Abrechnung konnte nicht aktualisiert werden.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showWarning('Teilweise gespeichert', 'Mandant gespeichert, Abrechnung konnte nicht aktualisiert werden.');` - -## `src/pages/admin/AdminMandatesPage.tsx`:123 - -- **Text:** 'Mandant deaktivieren' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` { title: 'Mandant deaktivieren', confirmLabel: 'Deaktivieren', variant: 'danger', placeholder: mandate.name },` - -## `src/pages/admin/AdminMandatesPage.tsx`:127 - -- **Text:** 'Der eingegebene Name stimmt nicht überein.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showWarning('Abgebrochen', 'Der eingegebene Name stimmt nicht überein.');` - -## `src/pages/admin/AdminMandatesPage.tsx`:135 - -- **Text:** 'Nicht erlaubt' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showWarning('Nicht erlaubt', 'System-Mandanten können nicht gelöscht werden.');` - -## `src/pages/admin/AdminMandatesPage.tsx`:135 - -- **Text:** 'System-Mandanten können nicht gelöscht werden.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showWarning('Nicht erlaubt', 'System-Mandanten können nicht gelöscht werden.');` - -## `src/pages/admin/AdminMandatesPage.tsx`:140 - -- **Text:** 'Hard Delete (irreversibel)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` { title: 'Hard Delete (irreversibel)', confirmLabel: 'Endgültig löschen', variant: 'danger', placeholder: mandate.name },` - -## `src/pages/admin/AdminMandatesPage.tsx`:140 - -- **Text:** 'Endgültig löschen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` { title: 'Hard Delete (irreversibel)', confirmLabel: 'Endgültig löschen', variant: 'danger', placeholder: mandate.name },` - -## `src/pages/admin/AdminMandatesPage.tsx`:144 - -- **Text:** 'Der eingegebene Name stimmt nicht überein.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showWarning('Abgebrochen', 'Der eingegebene Name stimmt nicht überein.');` - -## `src/pages/admin/AdminMandatesPage.tsx`:149 - -- **Text:** 'Gelöscht' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Gelöscht', `Mandant "${mandate.name}" wurde endgültig gelöscht.`);` - -## `src/pages/admin/AdminMandatesPage.tsx`:158 - -- **Text:** 'Fehler beim Laden der Mandanten: {error}' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Fehler beim Laden der Mandanten: {error}

` - -## `src/pages/admin/AdminMandatesPage.tsx`:172 - -- **Text:** 'Verwalten Sie alle Mandanten im System' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Verwalten Sie alle Mandanten im System

` - -## `src/pages/admin/AdminMandatesPage.tsx`:220 - -- **Text:** 'Deaktivieren (Soft-Delete)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Deaktivieren (Soft-Delete)',` - -## `src/pages/admin/AdminMandatesPage.tsx`:222 - -- **Text:** 'System-Mandanten können nicht gelöscht werden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ? { disabled: true, message: 'System-Mandanten können nicht gelöscht werden' }` - -## `src/pages/admin/AdminMandatesPage.tsx`:230 - -- **Text:** 'Hard Delete (irreversibel)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Hard Delete (irreversibel)',` - -## `src/pages/admin/AdminMandatesPage.tsx`:232 - -- **Text:** 'System-Mandanten können nicht gelöscht werden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ? { disabled: true, message: 'System-Mandanten können nicht gelöscht werden' }` - -## `src/pages/admin/AdminMandatesPage.tsx`:244 - -- **Text:** 'Keine Mandanten gefunden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` emptyMessage="Keine Mandanten gefunden"` - -## `src/pages/admin/AdminMandatesPage.tsx`:253 - -- **Text:** 'Neuer Mandant' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Neuer Mandant

` - -## `src/pages/admin/AdminMandatesPage.tsx`:269 - -- **Text:** 'Lade Formular...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Lade Formular...` - -## `src/pages/admin/AdminMandatesPage.tsx`:299 - -- **Text:** 'Mandant bearbeiten' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Mandant bearbeiten

` - -## `src/pages/admin/AdminMandatesPage.tsx`:330 - -- **Text:** 'Lade Formular...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Lade Formular...` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:105 - -- **Text:** 'Failed to fetch users' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(err?.response?.data?.detail || err?.message || 'Failed to fetch users');` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:133 - -- **Text:** 'Failed to fetch overview' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(err?.response?.data?.detail || err?.message || 'Failed to fetch overview');` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:200 - -- **Text:** 'Dieser Benutzer ist SysAdmin und hat vollen Systemzugriff.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {overview.sysAdminNote || 'Dieser Benutzer ist SysAdmin und hat vollen Systemzugriff.'}` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:207 - -- **Text:** 'Keine Mandate-Zuordnungen vorhanden.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Keine Mandate-Zuordnungen vorhanden.

` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:231 - -- **Text:** 'Keine Rollen direkt am Mandanten.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Keine Rollen direkt am Mandanten.

` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:256 - -- **Text:** 'Keine Feature-Instanzen zugewiesen.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Keine Feature-Instanzen zugewiesen.

` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:358 - -- **Text:** 'UI-Zugriffsrechte bestimmen, welche Seiten und Views der Benutzer sehen kann.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` UI-Zugriffsrechte bestimmen, welche Seiten und Views der Benutzer sehen kann.` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:364 - -- **Text:** 'Keine UI-Berechtigungen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Keine UI-Berechtigungen

` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:375 - -- **Text:** 'Gewährt durch' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Gewährt durch` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:383 - -- **Text:** '1px solid var(--border-color)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` borderBottom: '1px solid var(--border-color)',` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:425 - -- **Text:** 'Keine Daten-Berechtigungen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Keine Daten-Berechtigungen

` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:438 - -- **Text:** 'Löschen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Löschen` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:439 - -- **Text:** 'Gewährt durch' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Gewährt durch` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:447 - -- **Text:** '1px solid var(--border-color)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` borderBottom: '1px solid var(--border-color)',` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:521 - -- **Text:** 'Ressourcen-Zugriffsrechte bestimmen, welche System-Ressourcen (z.B. AI-Modelle) der Benutzer verwenden kann.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Ressourcen-Zugriffsrechte bestimmen, welche System-Ressourcen (z.B. AI-Modelle) der Benutzer verwenden kann.` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:527 - -- **Text:** 'Keine Ressourcen-Berechtigungen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Keine Ressourcen-Berechtigungen

` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:538 - -- **Text:** 'Gewährt durch' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Gewährt durch` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:546 - -- **Text:** '1px solid var(--border-color)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` borderBottom: '1px solid var(--border-color)',` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:577 - -- **Text:** 'Fehler: {error}' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Fehler: {error}

` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:593 - -- **Text:** 'Benutzer-Zugriffsübersicht' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Benutzer-Zugriffsübersicht

` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:594 - -- **Text:** 'Zeigt alle Berechtigungen eines Benutzers an' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Zeigt alle Berechtigungen eines Benutzers an

` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:612 - -- **Text:** '-- Benutzer wählen --' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:616 - -- **Text:** ' [SysAdmin]' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {user.isSysAdmin && ' [SysAdmin]'}` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:637 - -- **Text:** 'Benutzer auswählen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Benutzer auswählen

` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:645 - -- **Text:** 'Lade Zugriffsübersicht...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Lade Zugriffsübersicht...` - -## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:669 - -- **Text:** '1px solid var(--border-color)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` borderBottom: '1px solid var(--border-color)',` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:100 - -- **Text:** 'Benutzername' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Benutzername',` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:109 - -- **Text:** 'E-Mail' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'E-Mail',` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:118 - -- **Text:** 'Vollständiger Name' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Vollständiger Name',` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:127 - -- **Text:** 'Rollen' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Rollen',` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:140 - -- **Text:** 'Aktiv' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Aktiv',` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:211 - -- **Text:** 'Fehler beim Hinzufügen des Benutzers' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Hinzufügen des Benutzers');` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:228 - -- **Text:** 'Fehler beim Aktualisieren der Rollen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Aktualisieren der Rollen');` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:240 - -- **Text:** 'Fehler beim Entfernen des Benutzers' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Entfernen des Benutzers');` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:263 - -- **Text:** 'Fehler: {error}' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Fehler: {error}

` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:277 - -- **Text:** 'Verwalten Sie, welche Benutzer Zugriff auf welche Mandanten haben' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Verwalten Sie, welche Benutzer Zugriff auf welche Mandanten haben

` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:293 - -- **Text:** '-- Mandant wählen --' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:326 - -- **Text:** 'Kein Mandant ausgewählt' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Kein Mandant ausgewählt

` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:348 - -- **Text:** 'Rollen bearbeiten' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Rollen bearbeiten',` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:352 - -- **Text:** 'Aus Mandant entfernen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Aus Mandant entfernen',` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:369 - -- **Text:** 'Keine Mitglieder gefunden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` emptyMessage="Keine Mitglieder gefunden"` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:379 - -- **Text:** 'Benutzer zum Mandanten hinzufügen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Benutzer zum Mandanten hinzufügen

` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:389 - -- **Text:** 'Alle Benutzer sind bereits diesem Mandanten zugewiesen.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Alle Benutzer sind bereits diesem Mandanten zugewiesen.

` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:393 - -- **Text:** 'Lade Rollen...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Lade Rollen...` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:401 - -- **Text:** 'Hinzufügen...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` submitButtonText={isSubmitting ? 'Hinzufügen...' : 'Hinzufügen'}` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:401 - -- **Text:** 'Hinzufügen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` submitButtonText={isSubmitting ? 'Hinzufügen...' : 'Hinzufügen'}` - -## `src/pages/admin/AdminUserMandatesPage.tsx`:415 - -- **Text:** 'Rollen bearbeiten: {editingUser.username}' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Rollen bearbeiten: {editingUser.username}

` - -## `src/pages/admin/AdminUsersPage.tsx`:131 - -- **Text:** 'Fehler beim Laden der Benutzer: {error}' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Fehler beim Laden der Benutzer: {error}

` - -## `src/pages/admin/AdminUsersPage.tsx`:145 - -- **Text:** 'Verwalten Sie alle Benutzer im System' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Verwalten Sie alle Benutzer im System

` - -## `src/pages/admin/AdminUsersPage.tsx`:200 - -- **Text:** 'Löschen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Löschen',` - -## `src/pages/admin/AdminUsersPage.tsx`:208 - -- **Text:** 'Passwort-Link senden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Passwort-Link senden',` - -## `src/pages/admin/AdminUsersPage.tsx`:221 - -- **Text:** 'Keine Benutzer gefunden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` emptyMessage="Keine Benutzer gefunden"` - -## `src/pages/admin/AdminUsersPage.tsx`:230 - -- **Text:** 'Neuer Benutzer' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Neuer Benutzer

` - -## `src/pages/admin/AdminUsersPage.tsx`:242 - -- **Text:** 'Lade Formular...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Lade Formular...` - -## `src/pages/admin/AdminUsersPage.tsx`:264 - -- **Text:** 'Benutzer bearbeiten' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Benutzer bearbeiten

` - -## `src/pages/admin/AdminUsersPage.tsx`:276 - -- **Text:** 'Lade Formular...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Lade Formular...` - -## `src/pages/admin/ChatbotConfigSection.tsx`:14 - -- **Text:** 'Anthropic (Claude)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` anthropic: 'Anthropic (Claude)',` - -## `src/pages/admin/ChatbotConfigSection.tsx`:15 - -- **Text:** 'OpenAI (GPT)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` openai: 'OpenAI (GPT)',` - -## `src/pages/admin/ChatbotConfigSection.tsx`:17 - -- **Text:** 'Tavily (Web Search)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` tavily: 'Tavily (Web Search)',` - -## `src/pages/admin/ChatbotConfigSection.tsx`:18 - -- **Text:** 'Private LLM' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` privatellm: 'Private LLM',` - -## `src/pages/admin/ChatbotConfigSection.tsx`:57 - -- **Text:** 'Althaus Preprocessor' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { id: 'preprocessor', label: 'Althaus Preprocessor', value: 'preprocessor' }` - -## `src/pages/admin/ChatbotConfigSection.tsx`:113 - -- **Text:** 'Web Research aktivieren (Tavily)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Web Research aktivieren (Tavily)` - -## `src/pages/admin/ChatbotConfigSection.tsx`:158 - -- **Text:** 'Benutzerdefinierter System-Prompt für den Chatbot...' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` placeholder="Benutzerdefinierter System-Prompt für den Chatbot..."` - -## `src/pages/admin/InstanceDetailModal.tsx`:115 - -- **Text:** 'Benutzer hinzugefügt' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Benutzer hinzugefügt', 'Der Benutzer wurde der Instanz hinzugefügt.');` - -## `src/pages/admin/InstanceDetailModal.tsx`:115 - -- **Text:** 'Der Benutzer wurde der Instanz hinzugefügt.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Benutzer hinzugefügt', 'Der Benutzer wurde der Instanz hinzugefügt.');` - -## `src/pages/admin/InstanceDetailModal.tsx`:117 - -- **Text:** 'Fehler beim Hinzufügen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Hinzufügen');` - -## `src/pages/admin/InstanceDetailModal.tsx`:126 - -- **Text:** 'Benutzer entfernt' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Benutzer entfernt', `"${user.username}" wurde entfernt.`);` - -## `src/pages/admin/InstanceDetailModal.tsx`:128 - -- **Text:** 'Fehler beim Entfernen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Entfernen');` - -## `src/pages/admin/InstanceDetailModal.tsx`:146 - -- **Text:** 'Rollen und Status wurden gespeichert.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Aktualisiert', 'Rollen und Status wurden gespeichert.');` - -## `src/pages/admin/InstanceDetailModal.tsx`:148 - -- **Text:** 'Fehler beim Speichern' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Speichern');` - -## `src/pages/admin/InstanceDetailModal.tsx`:160 - -- **Text:** 'Rollen synchronisiert' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` 'Rollen synchronisiert',` - -## `src/pages/admin/InstanceDetailModal.tsx`:164 - -- **Text:** 'Synchronisierung fehlgeschlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Synchronisierung fehlgeschlagen');` - -## `src/pages/admin/InstanceDetailModal.tsx`:175 - -- **Text:** 'Instanz aktualisiert' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Instanz aktualisiert', 'Einstellungen wurden gespeichert.');` - -## `src/pages/admin/InstanceDetailModal.tsx`:175 - -- **Text:** 'Einstellungen wurden gespeichert.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Instanz aktualisiert', 'Einstellungen wurden gespeichert.');` - -## `src/pages/admin/InstanceDetailModal.tsx`:177 - -- **Text:** 'Fehler beim Speichern' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Speichern');` - -## `src/pages/admin/InstanceDetailModal.tsx`:185 - -- **Text:** 'Benutzer' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Benutzer',` - -## `src/pages/admin/InstanceDetailModal.tsx`:195 - -- **Text:** 'Rollen' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Rollen',` - -## `src/pages/admin/InstanceDetailModal.tsx`:208 - -- **Text:** 'Rollen' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Rollen',` - -## `src/pages/admin/InstanceDetailModal.tsx`:215 - -- **Text:** 'Aktiv' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Aktiv',` - -## `src/pages/admin/InstanceDetailModal.tsx`:226 - -- **Text:** 'Benutzer' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Benutzer',` - -## `src/pages/admin/InstanceDetailModal.tsx`:232 - -- **Text:** 'Lade Benutzer...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Lade Benutzer...` - -## `src/pages/admin/InstanceDetailModal.tsx`:248 - -- **Text:** 'Rollen' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Rollen',` - -## `src/pages/admin/InstanceDetailModal.tsx`:272 - -- **Text:** 'Einstellungen' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Einstellungen',` - -## `src/pages/admin/InstanceDetailModal.tsx`:277 - -- **Text:** 'Bezeichnung' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { name: 'label', type: 'string' as const, label: 'Bezeichnung', required: true, editable: true },` - -## `src/pages/admin/InstanceDetailModal.tsx`:278 - -- **Text:** 'Aktiviert' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { name: 'enabled', type: 'boolean' as const, label: 'Aktiviert', required: false, editable: true },` - -## `src/pages/admin/InstanceDetailModal.tsx`:302 - -- **Text:** 'Schließen' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` ` - -## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:461 - -- **Text:** 'Einladungen hinzufügen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Einladungen hinzufügen

` - -## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:487 - -- **Text:** 'E-Mail (optional)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:493 - -- **Text:** 'beispiel@firma.com' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` placeholder="beispiel@firma.com"` - -## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:497 - -- **Text:** 'Benutzername (optional)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:504 - -- **Text:** 'z. B. vorname.nachname' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` placeholder="z. B. vorname.nachname"` - -## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:512 - -- **Text:** "Rolle{inviteType === 'featureInstance' ? ' (pro Instanz)' : ''} *" -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:512 - -- **Text:** ' (pro Instanz)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ` - -## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:552 - -- **Text:** 'Bestehender Benutzer *' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:559 - -- **Text:** '-- Benutzer wählen --' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:566 - -- **Text:** 'Keine weiteren Benutzer verfügbar.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` {availableExistingUsers.length === 0 &&

Keine weiteren Benutzer verfügbar.

}` - -## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:570 - -- **Text:** 'Rolle *' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:644 - -- **Text:** 'Noch keine Einladungen hinzugefügt.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Noch keine Einladungen hinzugefügt.

` - -## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:649 - -- **Text:** 'setStep(2)}>← Zurück' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:666 - -- **Text:** 'Einladung zum Mandanten' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` Art: {inviteType === 'mandate' ? 'Einladung zum Mandanten' : 'Einladung zur Feature-Instanz'}` - -## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:666 - -- **Text:** 'Einladung zur Feature-Instanz' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` Art: {inviteType === 'mandate' ? 'Einladung zum Mandanten' : 'Einladung zur Feature-Instanz'}` - -## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:677 - -- **Text:** 'Einladungen ({invitees.length}):' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Einladungen ({invitees.length}):` - -## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:689 - -- **Text:** 'setStep(3)}>← Zurück' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:695 - -- **Text:** 'Wird versendet...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {isLoading ? 'Wird versendet...' : `${invitees.length} Einladungen versenden`}` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:84 - -- **Text:** '' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` const [instanceForm, setInstanceForm] = useState({ label: '', enabled: true });` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:136 - -- **Text:** 'Fehler beim Laden der Mandanten' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError('Fehler beim Laden der Mandanten');` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:230 - -- **Text:** 'Mandant erstellt' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` 'Mandant erstellt',` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:231 - -- **Text:** 'Abrechnungseinstellungen konnten nicht gespeichert werden. Bitte unter Administration → Abrechnung nachpflegen.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` 'Abrechnungseinstellungen konnten nicht gespeichert werden. Bitte unter Administration → Abrechnung nachpflegen.',` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:237 - -- **Text:** 'Mandant inkl. Abrechnung gespeichert' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Erstellt', 'Mandant inkl. Abrechnung gespeichert');` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:243 - -- **Text:** 'Fehler beim Erstellen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(e?.response?.data?.detail || e?.message || 'Fehler beim Erstellen');` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:267 - -- **Text:** 'Hinzugefügt' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Hinzugefügt', `${ok} Benutzer zum Mandanten hinzugefügt`);` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:272 - -- **Text:** 'Teilweise fehlgeschlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` 'Teilweise fehlgeschlagen',` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:287 - -- **Text:** 'Benutzer aus Mandant entfernt' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Entfernt', 'Benutzer aus Mandant entfernt');` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:290 - -- **Text:** 'Fehler beim Entfernen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(result.error || 'Fehler beim Entfernen');` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:306 - -- **Text:** '' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` setInstanceForm({ label: '', enabled: true });` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:307 - -- **Text:** 'Instance erstellt' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Erstellt', 'Instance erstellt');` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:310 - -- **Text:** 'Fehler beim Erstellen (Limit erreicht?)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(result.error || 'Fehler beim Erstellen (Limit erreicht?)');` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:321 - -- **Text:** 'Gelöscht' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Gelöscht', 'Instance gelöscht');` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:321 - -- **Text:** 'Instance gelöscht' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Gelöscht', 'Instance gelöscht');` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:324 - -- **Text:** 'Fehler beim Löschen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(result.error || 'Fehler beim Löschen');` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:346 - -- **Text:** 'Hinzugefügt' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Hinzugefügt', `${ok} Benutzer zur Feature-Instanz hinzugefügt`);` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:351 - -- **Text:** 'Teilweise fehlgeschlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` 'Teilweise fehlgeschlagen',` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:368 - -- **Text:** 'Rollen aktualisiert' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Gespeichert', 'Rollen aktualisiert');` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:373 - -- **Text:** 'Rollen konnten nicht gespeichert werden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', r.error || 'Rollen konnten nicht gespeichert werden');` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:389 - -- **Text:** 'Rollen aktualisiert' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Gespeichert', 'Rollen aktualisiert');` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:394 - -- **Text:** 'Rollen konnten nicht gespeichert werden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', r.error || 'Rollen konnten nicht gespeichert werden');` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:403 - -- **Text:** 'Benutzer aus Feature-Instanz entfernt' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Entfernt', 'Benutzer aus Feature-Instanz entfernt');` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:406 - -- **Text:** 'Fehler beim Entfernen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(result.error || 'Fehler beim Entfernen');` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:483 - -- **Text:** '1px solid var(--border-color, #e5e7eb)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` border: '1px solid var(--border-color, #e5e7eb)',` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:535 - -- **Text:** 'Benutzer * (mehrfach möglich)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:540 - -- **Text:** '1px solid var(--border-color, #e5e7eb)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` border: '1px solid var(--border-color, #e5e7eb)',` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:576 - -- **Text:** 'Rollen (für alle ausgewählten Benutzer)' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:604 - -- **Text:** 'Hinzufügen...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {isLoading ? 'Hinzufügen...' : 'Hinzufügen'}` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:604 - -- **Text:** 'Hinzufügen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {isLoading ? 'Hinzufügen...' : 'Hinzufügen'}` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:633 - -- **Text:** 'background 0.2s' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` transition: 'background 0.2s',` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:657 - -- **Text:** '1px solid var(--border-color, #e5e7eb)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` border: '1px solid var(--border-color, #e5e7eb)',` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:671 - -- **Text:** 'Schritt-für-Schritt Wizard zur Mandanten-Konfiguration' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Schritt-für-Schritt Wizard zur Mandanten-Konfiguration

` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:679 - -- **Text:** '1px solid var(--danger-color, #fecaca)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` border: '1px solid var(--danger-color, #fecaca)',` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:691 - -- **Text:** 'Mandant auswählen oder erstellen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Mandant auswählen oder erstellen

` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:726 - -- **Text:** 'Formular wird geladen...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Formular wird geladen...` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:734 - -- **Text:** 'Mandant erstellen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` submitButtonText={isLoading ? 'Erstellen...' : 'Mandant erstellen'}` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:786 - -- **Text:** '1px solid var(--border-color, #e5e7eb)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` border: '1px solid var(--border-color, #e5e7eb)',` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:836 - -- **Text:** 'setStep(1)}>← Zurück' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:858 - -- **Text:** 'Feature filtern:' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:864 - -- **Text:** 'Alle Features' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:875 - -- **Text:** '1px solid var(--border-color, #e5e7eb)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` border: '1px solid var(--border-color, #e5e7eb)',` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:914 - -- **Text:** 'Feature *' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:921 - -- **Text:** '-- Feature wählen --' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:933 - -- **Text:** 'z.B. Kunde A' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` placeholder="z.B. Kunde A"` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:954 - -- **Text:** 'setStep(2)}>← Zurück' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:1003 - -- **Text:** '1px solid var(--border-color, #e5e7eb)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` border: '1px solid var(--border-color, #e5e7eb)',` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:1058 - -- **Text:** 'setStep(3)}>← Zurück' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:1060 - -- **Text:** 'Konfiguration abgeschlossen!' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Fertig', 'Konfiguration abgeschlossen!');` - -## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:36 - -- **Text:** 'Instanz erstellen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` { id: 'create', title: 'Instanz erstellen' },` - -## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:38 - -- **Text:** 'Benutzer (optional)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` { id: 'users', title: 'Benutzer (optional)' },` - -## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:74 - -- **Text:** 'Mandant' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { name: 'mandateId', label: 'Mandant', type: 'enum' as const, required: true, options: mandateOptions },` - -## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:75 - -- **Text:** 'Feature' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { name: 'featureCode', label: 'Feature', type: 'enum' as const, required: true, options: featureOptions },` - -## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:76 - -- **Text:** 'Bezeichnung' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { name: 'label', label: 'Bezeichnung', type: 'string' as const, required: true, editable: true },` - -## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:77 - -- **Text:** 'Aktiv' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { name: 'enabled', label: 'Aktiv', type: 'boolean' as const, required: false, editable: true },` - -## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:104 - -- **Text:** 'Instanz konnte nicht erstellt werden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', result.error || 'Instanz konnte nicht erstellt werden');` - -## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:152 - -- **Text:** 'Feature-Instanz wurde erstellt und Benutzer zugewiesen.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Fertig', 'Feature-Instanz wurde erstellt und Benutzer zugewiesen.');` - -## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:155 - -- **Text:** 'Einige Benutzer konnten nicht zugewiesen werden.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler', 'Einige Benutzer konnten nicht zugewiesen werden.');` - -## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:175 - -- **Text:** 'Neue Feature-Instanz' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Neue Feature-Instanz

` - -## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:176 - -- **Text:** 'Schließen' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` ` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:362 - -- **Text:** 'Wird archiviert...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {coach.actionLoading === 'archiving' ? 'Wird archiviert...' : 'Archivieren'}` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:387 - -- **Text:** 'Starte eine neue Coaching-Session zu diesem Thema.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Starte eine neue Coaching-Session zu diesem Thema.

` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:390 - -- **Text:** 'Gesprächspartner wählen:' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` ` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:408 - -- **Text:** 'Wird gestartet...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ? 'Wird gestartet...'` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:411 - -- **Text:** 'Session starten' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` : 'Session starten'}` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:418 - -- **Text:** 'Session aktiv' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Session aktiv` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:432 - -- **Text:** 'Stummschaltung aufheben' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title={voice.muted ? 'Stummschaltung aufheben' : 'Stummschalten'}` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:434 - -- **Text:** '\\u{1F507} Stumm' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {voice.muted ? '\u{1F507} Stumm' : '\u{1F3A4} Ton an'}` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:434 - -- **Text:** '\\u{1F3A4} Ton an' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {voice.muted ? '\u{1F507} Stumm' : '\u{1F3A4} Ton an'}` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:437 - -- **Text:** 'Wird abgeschlossen...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {coach.actionLoading === 'completing' ? 'Wird abgeschlossen...' : 'Abschliessen'}` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:440 - -- **Text:** 'Wird abgebrochen...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {coach.actionLoading === 'cancelling' ? 'Wird abgebrochen...' : 'Abbrechen'}` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:469 - -- **Text:** 'Coach denkt nach' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** `
{coach.streamingStatus || 'Coach denkt nach'}...
` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:489 - -- **Text:** 'Tool-Aufrufe vorhanden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {coach.streamingStatus || (coach.agentToolCalls.length > 0 ? 'Tool-Aufrufe vorhanden' : 'Warte auf Agent')}` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:489 - -- **Text:** 'Warte auf Agent' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {coach.streamingStatus || (coach.agentToolCalls.length > 0 ? 'Tool-Aufrufe vorhanden' : 'Warte auf Agent')}` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:513 - -- **Text:** 'läuft' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {toolCall.success === true ? 'fertig' : toolCall.success === false ? 'fehler' : 'läuft'}` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:539 - -- **Text:** 'Stumm – Mikrofon aus' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ? 'Stumm – Mikrofon aus'` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:541 - -- **Text:** 'Coach spricht...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ? (coach.streamingStatus || 'Coach spricht...')` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:543 - -- **Text:** 'Coach denkt nach...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ? (coach.streamingStatus || 'Coach denkt nach...')` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:545 - -- **Text:** 'Unterbrochen – Mikrofon an' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ? 'Unterbrochen – Mikrofon an'` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:547 - -- **Text:** 'Mikrofon an – bitte sprechen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` ? (voice.liveTranscript ? 'Spricht...' : 'Mikrofon an – bitte sprechen')` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:548 - -- **Text:** 'Mikrofon wird gestartet...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` : 'Mikrofon wird gestartet...'}` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:602 - -- **Text:** 'Nachricht eingeben...' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` placeholder="Nachricht eingeben..."` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:616 - -- **Text:** 'Datei anhängen' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` title="Datei anhängen"` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:641 - -- **Text:** 'Dateien anhängen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `
Dateien anhängen
` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:671 - -- **Text:** 'Datenquellen anhängen' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` title="Datenquellen anhängen"` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:698 - -- **Text:** 'Persönliche Quellen' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `
Persönliche Quellen
` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:775 - -- **Text:** 'Neue Aufgabe...' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** ` placeholder="Neue Aufgabe..."` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:781 - -- **Text:** 'Wird hinzugefügt...' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {coach.actionLoading === 'addingTask' ? 'Wird hinzugefügt...' : 'Hinzufügen'}` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:781 - -- **Text:** 'Hinzufügen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {coach.actionLoading === 'addingTask' ? 'Wird hinzugefügt...' : 'Hinzufügen'}` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:785 - -- **Text:** 'Noch keine Aufgaben. Der Coach schlägt während Sessions Aufgaben vor.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `
Noch keine Aufgaben. Der Coach schlägt während Sessions Aufgaben vor.
` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:814 - -- **Text:** 'Noch keine abgeschlossenen Sessions.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `
Noch keine abgeschlossenen Sessions.
` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:824 - -- **Text:** 'Score: {Math.round(s.competenceScore)}' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` {s.competenceScore != null && Score: {Math.round(s.competenceScore)}}` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:831 - -- **Text:** '| Persona' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` {s.personaId && | Persona}` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:849 - -- **Text:** 'Noch keine Bewertungen. Schliesse eine Session ab, um Scores zu erhalten.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `
Noch keine Bewertungen. Schliesse eine Session ab, um Scores zu erhalten.
` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:899 - -- **Text:** 'Coaching (aktiv)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` case 'coaching': return coach.session ? 'Coaching (aktiv)' : 'Coaching';` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:925 - -- **Text:** 'Einfühlungsvermögen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` empathy: 'Einfühlungsvermögen', clarity: 'Klarheit',` - -## `src/pages/views/commcoach/CommcoachDossierView.tsx`:926 - -- **Text:** 'Zuhören' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` assertiveness: 'Durchsetzung', listening: 'Zuhören',` - -## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:5 - -- **Text:** 'Stimme & Sprache' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` * Voice/language settings are in user-level settings (/settings -> "Stimme & Sprache").` - -## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:45 - -- **Text:** 'Fehler beim Laden' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(err.message || 'Fehler beim Laden');` - -## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:65 - -- **Text:** 'Einstellungen gespeichert' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setSuccess('Einstellungen gespeichert');` - -## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:68 - -- **Text:** 'Fehler beim Speichern' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` setError(err.message || 'Fehler beim Speichern');` - -## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:75 - -- **Text:** 'Einstellungen werden geladen...' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` return
Einstellungen werden geladen...
;` - -## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:86 - -- **Text:** 'Stimme & Sprache' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Stimme & Sprache

` - -## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:91 - -- **Text:** 'Stimme & Sprache' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` Benutzereinstellungen oeffnen (Tab "Stimme & Sprache")` - -## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:121 - -- **Text:** 'Sessions gesamt' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `
{profile.totalSessions}Sessions gesamt
` - -## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:122 - -- **Text:** 'Minuten gesamt' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `
{profile.totalMinutes}Minuten gesamt
` - -## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:123 - -- **Text:** 'Aktueller Streak' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `
{profile.streakDays}Aktueller Streak
` - -## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:124 - -- **Text:** 'Laengster Streak' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `
{profile.longestStreak}Laengster Streak
` - -## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:130 - -- **Text:** 'Einstellungen speichern' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` {saving ? 'Speichern...' : 'Einstellungen speichern'}` - -## `src/pages/views/graphicalEditor/GraphicalEditorPage.tsx`:105 - -- **Text:** 'Graphical Editor' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Graphical Editor

` - -## `src/pages/views/graphicalEditor/GraphicalEditorPage.tsx`:106 - -- **Text:** 'Keine Feature-Instanz gefunden.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Keine Feature-Instanz gefunden.

` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:80 - -- **Text:** 'Fehler beim Laden der Vorlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler beim Laden der Vorlagen');` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:95 - -- **Text:** 'Vorlage gelöscht' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Vorlage gelöscht');` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:99 - -- **Text:** 'Löschen fehlgeschlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError(`Fehler: ${e?.message || 'Löschen fehlgeschlagen'}`);` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:112 - -- **Text:** 'Vorlage als Workflow kopiert' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Vorlage als Workflow kopiert');` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:114 - -- **Text:** 'Kopieren fehlgeschlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError(`Fehler: ${e?.message || 'Kopieren fehlgeschlagen'}`);` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:131 - -- **Text:** 'Scope-Änderung fehlgeschlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError(`Fehler: ${e?.message || 'Scope-Änderung fehlgeschlagen'}`);` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:144 - -- **Text:** 'Neuer Name:' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` const newLabel = await promptInput('Neuer Name:', {` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:145 - -- **Text:** 'Vorlage umbenennen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Vorlage umbenennen',` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:152 - -- **Text:** 'Vorlage umbenannt' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Vorlage umbenannt');` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:155 - -- **Text:** 'Umbenennen fehlgeschlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError(`Fehler: ${e?.message || 'Umbenennen fehlgeschlagen'}`);` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:170 - -- **Text:** 'Vorlage' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { key: 'label', label: 'Vorlage', type: 'string', width: 220, sortable: true },` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:173 - -- **Text:** 'Scope' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Scope',` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:180 - -- **Text:** 'Freigegeben' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Freigegeben',` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:192 - -- **Text:** 'Erstellt von' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Erstellt von',` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:198 - -- **Text:** 'Erstellt' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Erstellt',` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:208 - -- **Text:** 'Keine Feature-Instanz gefunden.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Keine Feature-Instanz gefunden.

` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:259 - -- **Text:** 'Im Editor öffnen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Im Editor öffnen',` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:264 - -- **Text:** 'Löschen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Löschen',` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:278 - -- **Text:** 'Als Workflow kopieren' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Als Workflow kopieren',` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:285 - -- **Text:** 'Scope ändern' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Scope ändern',` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:293 - -- **Text:** 'Keine Vorlagen gefunden. Erstelle eine Vorlage aus einem bestehenden Workflow.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` emptyMessage="Keine Vorlagen gefunden. Erstelle eine Vorlage aus einem bestehenden Workflow."` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:310 - -- **Text:** 'translate(-50%, -50%)' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` position: 'fixed', top: '50%', left: '50%', transform: 'translate(-50%, -50%)',` - -## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:316 - -- **Text:** 'Scope ändern' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Scope ändern

` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:71 - -- **Text:** 'Fehler beim Laden der Workflows' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError('Fehler beim Laden der Workflows');` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:86 - -- **Text:** 'Workflow gelöscht' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Workflow gelöscht');` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:90 - -- **Text:** 'Löschen fehlgeschlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError(`Fehler: ${e?.message || 'Löschen fehlgeschlagen'}`);` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:117 - -- **Text:** 'Workflow aktiviert' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess(next ? 'Workflow aktiviert' : 'Workflow deaktiviert');` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:117 - -- **Text:** 'Workflow deaktiviert' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess(next ? 'Workflow aktiviert' : 'Workflow deaktiviert');` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:120 - -- **Text:** 'Status-Update fehlgeschlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError(`Fehler: ${e?.message || 'Status-Update fehlgeschlagen'}`);` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:131 - -- **Text:** 'Neuer Name:' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` const newLabel = await promptInput('Neuer Name:', {` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:132 - -- **Text:** 'Workflow umbenennen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Workflow umbenennen',` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:139 - -- **Text:** 'Workflow umbenannt' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Workflow umbenannt');` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:142 - -- **Text:** 'Umbenennen fehlgeschlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError(`Fehler: ${e?.message || 'Umbenennen fehlgeschlagen'}`);` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:162 - -- **Text:** 'Workflow gestartet und bei Human Task pausiert. Öffne Workflows & Tasks.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Workflow gestartet und bei Human Task pausiert. Öffne Workflows & Tasks.');` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:164 - -- **Text:** 'Workflow ausgeführt' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Workflow ausgeführt');` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:168 - -- **Text:** 'Ausführung fehlgeschlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError(result?.error || 'Ausführung fehlgeschlagen');` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:171 - -- **Text:** 'Ausführung fehlgeschlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError(`Fehler: ${e?.message || 'Ausführung fehlgeschlagen'}`);` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:180 - -- **Text:** 'Workflow' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` { key: 'label', label: 'Workflow', type: 'string', width: 200, sortable: true },` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:183 - -- **Text:** 'Aktiv' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Aktiv',` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:195 - -- **Text:** 'Läuft' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Läuft',` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:207 - -- **Text:** 'Steht bei' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Steht bei',` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:217 - -- **Text:** 'Erstellt' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Erstellt',` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:224 - -- **Text:** 'Zuletzt gestartet' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Zuletzt gestartet',` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:231 - -- **Text:** 'Läufe' -- **Art:** string_literal -- **Kontext:** object property label: (e.g. table column) -- **Zeile:** ` label: 'Läufe',` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:247 - -- **Text:** 'Keine Feature-Instanz gefunden.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Keine Feature-Instanz gefunden.

` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:256 - -- **Text:** 'Gespeicherte Workflows' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Gespeicherte Workflows

` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:303 - -- **Text:** 'Löschen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Löschen',` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:332 - -- **Text:** 'Ausführen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` title: 'Ausführen',` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:340 - -- **Text:** 'Keine Workflows gefunden. Erstelle einen im Editor.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` emptyMessage="Keine Workflows gefunden. Erstelle einen im Editor."` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:34 - -- **Text:** 'input.upload' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` 'input.upload': 'Upload',` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:34 - -- **Text:** 'Upload' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` 'input.upload': 'Upload',` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:36 - -- **Text:** 'Prüfung' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` 'input.review': 'Prüfung',` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:38 - -- **Text:** 'Bestätigung' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` 'input.confirmation': 'Bestätigung',` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:159 - -- **Text:** 'Workflow gestartet und bei Human Task pausiert.' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Workflow gestartet und bei Human Task pausiert.');` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:161 - -- **Text:** 'Workflow gestartet' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showSuccess('Workflow gestartet');` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:165 - -- **Text:** 'Ausführung fehlgeschlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` showError(result?.error || 'Ausführung fehlgeschlagen');` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:169 - -- **Text:** 'Ausführung fehlgeschlagen' -- **Art:** string_literal -- **Kontext:** string literal -- **Zeile:** ` (e as { message?: string })?.message ?? 'Ausführung fehlgeschlagen';` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:185 - -- **Text:** 'Keine Feature-Instanz gefunden.' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Keine Feature-Instanz gefunden.

` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:194 - -- **Text:** 'Lade Tasks…' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Lade Tasks…

` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:212 - -- **Text:** 'Keine offenen Tasks' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Keine offenen Tasks

` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:236 - -- **Text:** 'Erledigte Tasks' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** ` Erledigte Tasks` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:244 - -- **Text:** 'Keine erledigten Tasks' -- **Art:** jsx_text -- **Kontext:** between tags, user-visible text node -- **Zeile:** `

Keine erledigten Tasks

` - -## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:291 - -- **Text:** 'Workflows starten' -- **Art:** string_literal -- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt) -- **Zeile:** `