frontend_nyla/docs/i18n-remaining-items.md
2026-04-09 00:11:35 +02:00

182 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# i18n — Verbleibende statische Texte
> Stand: 2026-04-08
> Diese Stellen verwenden noch hardcoded Strings in Object-Literalen, Arrays oder Hook-Defaults.
> Sie können nicht einfach mit `t()` gewrapped werden, da sie ausserhalb des React-Render-Kontexts definiert sind.
> **Lösung:** Array/Object in die Komponente verschieben oder eine Factory-Funktion `(t) => [...]` nutzen.
---
## 1. Hook-Defaults (`useConfirm`, `usePrompt`)
Diese Defaults propagieren in die gesamte App. Ein Fix hier wirkt global.
| Datei | Zeile | Property | Text |
|-------|-------|----------|------|
| `hooks/useConfirm.tsx` | 26 | `title` | `'Bestätigung'` |
| `hooks/useConfirm.tsx` | 27 | `confirmLabel` | `'Bestätigen'` |
| `hooks/useConfirm.tsx` | 28 | `cancelLabel` | `'Abbrechen'` |
| `hooks/usePrompt.tsx` | 29 | `title` | `'Eingabe'` |
| `hooks/usePrompt.tsx` | 30 | `confirmLabel` | `'OK'` |
| `hooks/usePrompt.tsx` | 31 | `cancelLabel` | `'Abbrechen'` |
---
## 2. Monatsnamen
| Datei | Zeilen | Kontext |
|-------|--------|---------|
| `pages/billing/BillingDashboard.tsx` | 182193 | Monats-Select: `'Januar'` bis `'Dezember'` (12 Einträge) |
| `components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx` | 536541 | Monats-Select: `'Januar'` bis `'Dezember'` (12 Einträge) |
---
## 3. Tab-Labels (statische Arrays ausserhalb Komponente)
| Datei | Zeilen | Labels |
|-------|--------|--------|
| `pages/Settings.tsx` | 2327 | `'Profil'`, `'Darstellung'`, `'Stimme & Sprache'`, `'Neutralisierung (lokal)'`, `'Datenschutz'` |
| `pages/views/workspace/WorkspaceSettingsPage.tsx` | 1617 | `'Generelle Einstellungen'`, `'Neutralisierung (Workspace)'` |
| `pages/views/neutralization/NeutralizationView.tsx` | 744745 | `'Configuration'`, `'Playground'` |
---
## 4. Spalten-Definitionen (Column-Arrays)
| Datei | Zeilen | Labels |
|-------|--------|--------|
| `pages/admin/AdminLanguagesPage.tsx` | 2932 | `'Code'`, `'Bezeichnung'`, `'Status'`, `'Einträge'` |
| `pages/admin/AdminSubscriptionsPage.tsx` | 1323 | `'Mandant'`, `'Plan'`, `'Status'`, `'Wiederkehrend'`, `'User'`, `'Instanzen'`, `'Revenue/Mt (CHF)'`, `'Gestartet'`, `'Periodenende'`, `'Preis/User'`, `'Preis/Instanz'` |
| `pages/admin/AdminUserMandatesPage.tsx` | 104144 | `'Benutzername'`, `'E-Mail'`, `'Vollständiger Name'`, `'Rollen'`, `'Aktiv'` |
| `pages/admin/AdminMandateRolesPage.tsx` | 106124 | `'Bezeichnung'`, `'Beschreibung'`, `'Geltungsbereich'` |
| `pages/admin/AdminInvitationsPage.tsx` | 90155 | `'Benutzername'`, `'E-Mail'`, `'Rollen'`, `'Gültig bis'`, `'Verwendet'`, `'Erstellt'` |
| `pages/admin/AdminFeatureRolesPage.tsx` | 138155 | `'Rollen-Label'`, `'Beschreibung'`, `'Feature'` |
| `pages/admin/AdminFeatureInstanceUsersPage.tsx` | 205245 | `'Benutzername'`, `'E-Mail'`, `'Vollständiger Name'`, `'Rollen'`, `'Aktiv'` |
| `pages/admin/AdminFeatureAccessPage.tsx` | 91104 | `'Name'`, `'Feature'`, `'Aktiv'` |
| `pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx` | 184235 | `'Workflow'`, `'Aktiv'`, `'Läuft'`, `'Steht bei'`, `'Erstellt'`, `'Zuletzt gestartet'`, `'Läufe'` |
| `pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx` | 174202 | `'Vorlage'`, `'Scope'`, `'Freigegeben'`, `'Erstellt von'`, `'Erstellt'` |
---
## 5. Formular-Feld-Definitionen (AttributeDefinition-Arrays)
| Datei | Zeilen | Labels |
|-------|--------|--------|
| `pages/Settings.tsx` | 5658 | `'Vollstaendiger Name'`, `'E-Mail-Adresse'`, `'Sprache'` + descriptions + placeholders |
| `pages/admin/wizards/FeatureInstanceWizard.tsx` | 7578 | `'Mandant'`, `'Feature'`, `'Bezeichnung'`, `'Aktiv'` |
| `pages/admin/InstanceDetailModal.tsx` | 186279 | `'Benutzer'`, `'Rollen'`, `'Aktiv'`, `'Einstellungen'`, `'Bezeichnung'`, `'Aktiviert'` |
| `pages/admin/AdminMandateRolesPage.tsx` | 165171 | `'Geltungsbereich'`, `'Nur dieser Mandant'`, `'Template (wird bei neuen Mandanten kopiert)'` |
| `pages/admin/AdminMandateRolePermissionsPage.tsx` | 219221 | `'Mandanten-Rollen'`, `'Alle (inkl. Templates)'`, `'Nur Templates'` |
| `pages/admin/AdminFeatureRolesPage.tsx` | 173205 | `'Rollen-Label'`, `'Beschreibung'` + descriptions |
| `pages/admin/AdminFeatureInstanceUsersPage.tsx` | 272299 | `'Benutzer'`, `'Rollen'`, `'Aktiv'` |
| `pages/admin/AdminInvitationsPage.tsx` | 181 | `'Gültigkeitsdauer (Stunden)'` |
| `pages/admin/AdminFeatureAccessPage.tsx` | 629636 | `'Bezeichnung'`, `'Aktiviert'` |
---
## 6. Status-/Option-Maps (Object-Literale)
| Datei | Zeilen | Kontext |
|-------|--------|---------|
| `pages/billing/SubscriptionTab.tsx` | 4853 | Status-Map: `'Zahlung ausstehend'`, `'Geplant'`, `'Aktiv'`, `'Testphase'`, `'Abgelaufen'` |
| `components/FlowEditor/editor/CanvasHeader.tsx` | 4042 | Status-Map: `'Entwurf'`, `'Veröffentlicht'`, `'Archiviert'` |
| `components/FlowEditor/editor/WorkflowConfigurationModal.tsx` | 1720 | Trigger-Typen: `'Manueller Trigger'`, `'Formular'`, `'Zeitplan'`, `'Immer aktiv'` |
| `components/FlowEditor/nodes/start/ScheduleStartNodeConfig.tsx` | 2249 | Schedule-Optionen: `'Täglich'`, `'Werktage'`, `'Bestimmte Tage'`, `'Intervall'`, `'Sekunden'`, `'Minuten'`, `'Stunden'`, `'Tage'`, `'Jahre'` |
| `components/RbacExportImport/RbacExportImport.tsx` | 4962 | Import-Modi: `'Zusammenführen'`, `'Nur hinzufügen'`, `'Ersetzen'` + descriptions |
| `components/AccessRules/AccessRulesEditor.tsx` | 633636 | Tab-Labels: `'Daten'`, `'Ressourcen'` |
| `hooks/useAccessRules.tsx` | 2326 | Scope-Labels: `'Keine'`, `'Eigene'`, `'Gruppe'`, `'Alle'` |
---
## 7. Action-Button `title:`-Props (in Object-Literalen)
| Datei | Zeilen | Titles |
|-------|--------|--------|
| `pages/admin/AdminUsersPage.tsx` | 200212 | `'Bearbeiten'`, `'Löschen'`, `'Passwort-Link senden'` |
| `pages/admin/AdminUserMandatesPage.tsx` | 352356 | `'Rollen bearbeiten'`, `'Aus Mandant entfernen'` |
| `pages/admin/AdminMandatesPage.tsx` | 127234 | `'Mandant deaktivieren'`, `'Deaktivieren'`, `'Hard Delete (irreversibel)'`, `'Endgültig löschen'`, `'Bearbeiten'`, `'Deaktivieren (Soft-Delete)'` |
| `pages/admin/AdminMandateRolesPage.tsx` | 430435 | `'Rolle bearbeiten'`, `'Rolle löschen'` |
| `pages/admin/AdminInvitationsPage.tsx` | 354362 | `'Einladung widerrufen'`, `'Einladungs-Link anzeigen'` |
| `pages/admin/AdminFeatureRolesPage.tsx` | 372384 | `'Rolle bearbeiten'`, `'Rolle löschen'`, `'Berechtigungen verwalten'` |
| `pages/admin/AdminFeatureInstanceUsersPage.tsx` | 535539 | `'Rollen bearbeiten'`, `'Aus Instanz entfernen'` |
| `pages/admin/AdminFeatureAccessPage.tsx` | 457471 | `'Instanz löschen'`, `'Instanz bearbeiten'`, `'Rollen synchronisieren'` |
| `pages/admin/PermissionMatrix.tsx` | 39 | `'Benutzer entfernen'` |
| `pages/basedata/ConnectionsPage.tsx` | 324347 | `'Bearbeiten'`, `'Löschen'`, `'Verbinden'`, `'Token erneuern'` |
| `pages/basedata/FilesPage.tsx` | 232458 | `'Neuer Ordner'`, `'Bearbeiten'`, `'Löschen'`, `'Herunterladen'`, `'Vorschau'` |
| `pages/basedata/PromptsPage.tsx` | 215225 | `'Duplizieren'`, `'Bearbeiten'`, `'Löschen'` |
| `pages/billing/AdminSubscriptionsPage.tsx` | 67 | `'Sofort kündigen'` |
| `pages/views/trustee/TrusteePositionsView.tsx` | 455467 | `'Bearbeiten'`, `'Löschen'`, `'In Buchhaltung synchronisieren'` |
| `pages/views/trustee/TrusteePositionDocumentsView.tsx` | 192198 | `'Verknüpfung bearbeiten'`, `'Verknüpfung entfernen'` |
| `pages/views/trustee/TrusteeDocumentsView.tsx` | 225238 | `'Bearbeiten'`, `'Löschen'`, `'Herunterladen'` |
| `pages/views/realestate/RealEstateProjectsView.tsx` | 167168 | `'Bearbeiten'`, `'Löschen'` |
| `pages/views/realestate/RealEstateParcelsView.tsx` | 186194 | `'Bearbeiten'`, `'Löschen'` |
| `pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx` | 136336 | `'Workflow umbenennen'`, `'Bearbeiten'`, `'Löschen'`, `'Umbenennen'`, `'Aktivieren'`, `'Deaktivieren'`, `'Ausführen'` |
| `pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx` | 149289 | `'Vorlage umbenennen'`, `'Im Editor öffnen'`, `'Löschen'`, `'Umbenennen'`, `'Als Workflow kopieren'`, `'Scope ändern'` |
| `pages/views/chatbot/ChatbotConversationsView.tsx` | 88 | `'Konversation löschen'` |
| `components/FlowEditor/editor/Automation2FlowEditor.tsx` | 239 | `'Workflow speichern'` |
| `components/FolderTree/FolderTree.tsx` | 384, 768 | `'Neuer Ordner'` (prompt title) |
---
## 8. Onboarding-Texte (Object-Literale)
| Datei | Zeilen | Labels |
|-------|--------|--------|
| `components/OnboardingAssistant.tsx` | 99149 | `'Mandant einrichten'`, `'Erstes Feature aktivieren'`, `'Erste Datenquelle einbinden'`, `'Ersten AI-Chat starten'` |
---
## 9. ClickUp Node Config (Feld-Optionen)
| Datei | Zeilen | Labels |
|-------|--------|--------|
| `components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx` | 786794 | `'Titel (name)'`, `'Beschreibung'`, `'Status'`, `'Priorität (14)'`, `'Fälligkeit (Datum oder ms)'`, `'Zeitschätzung (Stunden)'`, `'Zeitschätzung (ms)'`, `'Zugewiesene'`, `'Benutzerdefiniertes Feld'` |
---
## 10. Sonstige Einzel-Stellen
| Datei | Zeile | Property | Text |
|-------|-------|----------|------|
| `pages/admin/ChatbotConfigSection.tsx` | 58 | `label` | `'Althaus Preprocessor'` |
| `pages/views/trustee/TrusteePositionsView.tsx` | 167 | `label` | `'Belege'` |
| `pages/views/trustee/TrusteePositionsView.tsx` | 232 | `label` | `'Sync-Status'` |
| `pages/views/trustee/TrusteePositionsView.tsx` | 445 | `label` | `'Buchhaltung synchronisieren'` |
| `pages/views/trustee/TrusteeExpenseImportView.tsx` | 361 | `label` | `'Daily at 22:00'` |
| `pages/basedata/PromptsPage.tsx` | 81 | `label` | `'Created By'` |
| `pages/basedata/FilesPage.tsx` | 152 | `label` | `'Created By'` |
| `components/FlowEditor/nodes/start/FormStartNodeConfig.tsx` | 22 | `label` | `'Feld 1'` |
| `components/FlowEditor/nodes/start/FormStartNodeConfig.tsx` | 116 | `label` | `'Neues Feld'` |
---
## 11. Sprach-/Locale-Listen (Eigenname-Labels — evtl. NICHT übersetzen)
> Diese Listen enthalten Sprachnamen in der jeweiligen Sprache (Endonym). Sie werden typischerweise **nicht** übersetzt, da der User die Sprache in ihrer Originalbezeichnung erkennen soll.
| Datei | Zeilen | Kontext |
|-------|--------|---------|
| `pages/Settings.tsx` | 5052, 563565 | Fallback-Sprachoptionen: `'Deutsch'`, `'English'`, `'Français'` |
| `pages/views/workspace/WorkspaceInput.tsx` | 1627 | STT-Sprachliste (12 Sprachen) |
| `pages/admin/AdminLanguagesPage.tsx` | 3865 | Alle verfügbaren Sprach-Codes mit Endonymen |
| `components/UiComponents/VoiceLanguageSelect/VoiceLanguageSelect.tsx` | 2332 | Voice-Sprachliste mit Endonymen |
| `components/FormGenerator/FormGeneratorForm/FormGeneratorForm.tsx` | 672675 | Fallback-Sprachoptionen |
---
## Zusammenfassung
| Kategorie | Anzahl Stellen | Dateien |
|-----------|---------------|---------|
| Hook-Defaults | 6 | 2 |
| Monatsnamen | 24 | 2 |
| Tab-Labels | 9 | 3 |
| Spalten-Definitionen | ~55 | 10 |
| Formular-Felder | ~30 | 9 |
| Status-/Option-Maps | ~30 | 7 |
| Action-Button titles | ~65 | 23 |
| Onboarding-Texte | 4 | 1 |
| ClickUp-Felder | 9 | 1 |
| Sonstige | 9 | 5 |
| Sprach-Listen (evtl. nicht übersetzen) | ~60 | 5 |
| **Total (ohne Sprach-Listen)** | **~241** | **~45 Dateien** |