diff --git a/apps/platform/lang/de/baseline-compare.php b/apps/platform/lang/de/baseline-compare.php index 5f3246cc..bbc2dfd7 100644 --- a/apps/platform/lang/de/baseline-compare.php +++ b/apps/platform/lang/de/baseline-compare.php @@ -18,71 +18,71 @@ 'badge_evidence_gaps' => 'Evidence Gaps: :count', 'evidence_gaps_tooltip' => 'Wichtigste Gaps: :summary', 'evidence_gap_details_heading' => 'Evidence-Gap-Details', - 'evidence_gap_details_description' => 'Durchsuchen Sie aufgezeichnete Gap-Subjekte nach Grund, Governed Subject, Subjektklasse, Ergebnis, naechster Aktion oder Subject Key, bevor Sie Rohdiagnosen verwenden.', + 'evidence_gap_details_description' => 'Durchsuchen Sie aufgezeichnete Gap-Subjekte nach Grund, Governed Subject, Subjektklasse, Ergebnis, nächster Aktion oder Subject Key, bevor Sie Rohdiagnosen verwenden.', 'evidence_gap_search_label' => 'Gap-Details suchen', 'evidence_gap_search_placeholder' => 'Nach Grund, Typ, Klasse, Ergebnis, Aktion oder Subject Key suchen', - 'evidence_gap_search_help' => 'Filtert ueber Grund, Governed Subject, Subjektklasse, Ergebnis, naechste Aktion und Subject Key.', - 'evidence_gap_bucket_help_ambiguous_match' => 'Mehrere Inventory-Datensaetze passten zum gleichen Policy-Subjekt. Pruefen Sie das Mapping.', - 'evidence_gap_bucket_help_policy_record_missing' => 'Der erwartete Policy-Datensatz wurde im Baseline-Snapshot nicht gefunden. Pruefen Sie, ob die Policy im Tenant noch existiert.', - 'evidence_gap_bucket_help_inventory_record_missing' => 'Fuer diese Subjekte konnte kein Inventory-Datensatz gefunden werden. Pruefen Sie, ob der Inventory Sync aktuell ist.', - 'evidence_gap_bucket_help_foundation_not_policy_backed' => 'Diese Subjekte existieren in der Foundation-Schicht, sind aber nicht durch eine verwaltete Policy abgedeckt. Pruefen Sie, ob eine Policy erstellt werden sollte.', - 'evidence_gap_bucket_help_capture_failed' => 'Evidence Capture ist fuer diese Subjekte fehlgeschlagen. Wiederholen Sie den Vergleich oder pruefen Sie die Graph-Konnektivitaet.', - 'evidence_gap_bucket_help_default' => 'Diese Subjekte wurden beim Vergleich markiert. Pruefen Sie die betroffenen Zeilen.', + 'evidence_gap_search_help' => 'Filtert über Grund, Governed Subject, Subjektklasse, Ergebnis, nächste Aktion und Subject Key.', + 'evidence_gap_bucket_help_ambiguous_match' => 'Mehrere Inventory-Datensätze passten zum gleichen Policy-Subjekt. Prüfen Sie das Mapping.', + 'evidence_gap_bucket_help_policy_record_missing' => 'Der erwartete Policy-Datensatz wurde im Baseline-Snapshot nicht gefunden. Prüfen Sie, ob die Policy im Tenant noch existiert.', + 'evidence_gap_bucket_help_inventory_record_missing' => 'Für diese Subjekte konnte kein Inventory-Datensatz gefunden werden. Prüfen Sie, ob der Inventory Sync aktuell ist.', + 'evidence_gap_bucket_help_foundation_not_policy_backed' => 'Diese Subjekte existieren in der Foundation-Schicht, sind aber nicht durch eine verwaltete Policy abgedeckt. Prüfen Sie, ob eine Policy erstellt werden sollte.', + 'evidence_gap_bucket_help_capture_failed' => 'Evidence Capture ist für diese Subjekte fehlgeschlagen. Wiederholen Sie den Vergleich oder prüfen Sie die Graph-Konnektivität.', + 'evidence_gap_bucket_help_default' => 'Diese Subjekte wurden beim Vergleich markiert. Prüfen Sie die betroffenen Zeilen.', 'evidence_gap_reason' => 'Grund', 'evidence_gap_reason_affected' => ':count betroffen', 'evidence_gap_reason_recorded' => ':count aufgezeichnet', 'evidence_gap_reason_missing_detail' => ':count ohne Detail', 'evidence_gap_structural' => 'Strukturell: :count', 'evidence_gap_operational' => 'Operativ: :count', - 'evidence_gap_transient' => 'Temporaer: :count', + 'evidence_gap_transient' => 'Temporär: :count', 'evidence_gap_bucket_structural' => ':count strukturell', 'evidence_gap_bucket_operational' => ':count operativ', - 'evidence_gap_bucket_transient' => ':count temporaer', - 'evidence_gap_missing_details_title' => 'Fuer diesen Run wurden keine Detailzeilen aufgezeichnet', - 'evidence_gap_missing_details_body' => 'Evidence Gaps wurden fuer diesen Compare Run gezaehlt, aber Details auf Subjektebene wurden nicht gespeichert. Pruefen Sie Rohdiagnosen oder wiederholen Sie den Vergleich.', - 'evidence_gap_missing_reason_body' => ':count betroffene Subjekte wurden fuer diesen Grund gezaehlt, aber Detailzeilen wurden nicht aufgezeichnet.', + 'evidence_gap_bucket_transient' => ':count temporär', + 'evidence_gap_missing_details_title' => 'Für diesen Run wurden keine Detailzeilen aufgezeichnet', + 'evidence_gap_missing_details_body' => 'Evidence Gaps wurden für diesen Compare Run gezählt, aber Details auf Subjektebene wurden nicht gespeichert. Prüfen Sie Rohdiagnosen oder wiederholen Sie den Vergleich.', + 'evidence_gap_missing_reason_body' => ':count betroffene Subjekte wurden für diesen Grund gezählt, aber Detailzeilen wurden nicht aufgezeichnet.', 'evidence_gap_legacy_title' => 'Legacy-Development-Gap-Payload erkannt', 'evidence_gap_legacy_body' => 'Dieser Run verwendet noch die retired breite Grundform. Erzeugen Sie den Run neu oder bereinigen Sie alte lokale Development-Payloads.', 'evidence_gap_diagnostics_heading' => 'Baseline-Compare-Evidence', - 'evidence_gap_diagnostics_description' => 'Rohdiagnosen bleiben fuer Support und tiefere Fehlersuche nach Operator-Zusammenfassung und Detailansicht verfuegbar.', + 'evidence_gap_diagnostics_description' => 'Rohdiagnosen bleiben für Support und tiefere Fehlersuche nach Operator-Zusammenfassung und Detailansicht verfügbar.', 'evidence_gap_policy_type' => 'Governed Subject', 'evidence_gap_subject_class' => 'Subjektklasse', 'evidence_gap_outcome' => 'Ergebnis', - 'evidence_gap_next_action' => 'Naechste Aktion', + 'evidence_gap_next_action' => 'Nächste Aktion', 'evidence_gap_subject_key' => 'Subject Key', 'evidence_gap_table_empty_heading' => 'Keine aufgezeichneten Gap-Zeilen passen zu dieser Ansicht', - 'evidence_gap_table_empty_description' => 'Passen Sie Suche oder Filter an, um andere betroffene Subjekte zu pruefen.', - 'comparing_indicator' => 'Vergleich laeuft...', - 'no_findings_all_clear' => 'Kein bestaetigter Drift im letzten Vergleich', + 'evidence_gap_table_empty_description' => 'Passen Sie Suche oder Filter an, um andere betroffene Subjekte zu prüfen.', + 'comparing_indicator' => 'Vergleich läuft...', + 'no_findings_all_clear' => 'Kein bestätigter Drift im letzten Vergleich', 'no_findings_coverage_warnings' => 'Kein Drift angezeigt, aber Coverage limitiert diesen Vergleich', - 'no_findings_evidence_gaps' => 'Kein Drift angezeigt, aber Evidence Gaps muessen geprueft werden', + 'no_findings_evidence_gaps' => 'Kein Drift angezeigt, aber Evidence Gaps müssen geprüft werden', 'no_findings_default' => 'Aktuell sind keine Drift Findings sichtbar', 'coverage_warning_title' => 'Vergleich mit Warnungen abgeschlossen', - 'coverage_unproven_body' => 'Coverage Proof fehlte oder war nicht lesbar. Findings wurden aus Sicherheitsgruenden unterdrueckt.', - 'coverage_incomplete_body' => 'Findings wurden fuer :count Policy :types wegen unvollstaendiger Coverage uebersprungen.', + 'coverage_unproven_body' => 'Coverage Proof fehlte oder war nicht lesbar. Findings wurden aus Sicherheitsgründen unterdrückt.', + 'coverage_incomplete_body' => 'Findings wurden für :count Policy :types wegen unvollständiger Coverage übersprungen.', 'coverage_uncovered_label' => 'Nicht abgedeckt: :list', 'failed_title' => 'Vergleich fehlgeschlagen', - 'failed_body_default' => 'Der letzte Baseline-Vergleich ist fehlgeschlagen. Pruefen Sie die Run-Details oder wiederholen Sie ihn.', + 'failed_body_default' => 'Der letzte Baseline-Vergleich ist fehlgeschlagen. Prüfen Sie die Run-Details oder wiederholen Sie ihn.', 'critical_drift_title' => 'Kritischer Drift erkannt', 'critical_drift_body' => 'Der aktuelle Tenant-Zustand weicht von Baseline :profile ab. :count High-Severity :findings erfordern sofortige Aufmerksamkeit.', - 'empty_no_tenant' => 'Kein Tenant ausgewaehlt', + 'empty_no_tenant' => 'Kein Tenant ausgewählt', 'empty_no_assignment' => 'Keine Baseline zugewiesen', - 'empty_no_snapshot' => 'Kein Snapshot verfuegbar', + 'empty_no_snapshot' => 'Kein Snapshot verfügbar', 'findings_description' => 'Die Tenant-Konfiguration weicht vom Baseline-Profil ab.', 'rbac_summary_title' => 'Intune-RBAC-Rollendefinitionen', 'rbac_summary_description' => 'Rollenzuweisungen sind in diesem Baseline-Compare-Release nicht enthalten.', 'rbac_summary_compared' => 'Verglichen', - 'rbac_summary_unchanged' => 'Unveraendert', - 'rbac_summary_modified' => 'Geaendert', + 'rbac_summary_unchanged' => 'Unverändert', + 'rbac_summary_modified' => 'Geändert', 'rbac_summary_missing' => 'Fehlend', 'rbac_summary_unexpected' => 'Unerwartet', 'no_drift_title' => 'Kein Drift erkannt', - 'no_drift_body' => 'Der letzte Vergleich hat keinen bestaetigten Drift fuer das zugewiesene Baseline-Profil aufgezeichnet.', + 'no_drift_body' => 'Der letzte Vergleich hat keinen bestätigten Drift für das zugewiesene Baseline-Profil aufgezeichnet.', 'coverage_warnings_title' => 'Coverage-Warnungen', - 'coverage_warnings_body' => 'Der letzte Vergleich wurde mit Warnungen abgeschlossen und erzeugte keine bestaetigten Drift Findings. Aktualisieren Sie Evidence, bevor Sie dies als Entwarnung werten.', + 'coverage_warnings_body' => 'Der letzte Vergleich wurde mit Warnungen abgeschlossen und erzeugte keine bestätigten Drift Findings. Aktualisieren Sie Evidence, bevor Sie dies als Entwarnung werten.', 'idle_title' => 'Bereit zum Vergleich', 'button_view_run' => 'Run anzeigen', 'button_view_failed_run' => 'Fehlgeschlagenen Run anzeigen', 'button_view_findings' => 'Alle Findings anzeigen', - 'button_review_last_run' => 'Letzten Run pruefen', + 'button_review_last_run' => 'Letzten Run prüfen', ]; diff --git a/apps/platform/lang/de/findings.php b/apps/platform/lang/de/findings.php index 2867f68a..83ed5fa4 100644 --- a/apps/platform/lang/de/findings.php +++ b/apps/platform/lang/de/findings.php @@ -12,20 +12,20 @@ ], 'rbac' => [ 'detail_heading' => 'Intune-RBAC-Rollendefinitions-Drift', - 'detail_subheading' => 'Rollenzuweisungen sind nicht enthalten. RBAC-Restore wird nicht unterstuetzt.', - 'metadata_only' => 'Nur Metadaten geaendert', - 'permission_change' => 'Berechtigung geaendert', + 'detail_subheading' => 'Rollenzuweisungen sind nicht enthalten. RBAC-Restore wird nicht unterstützt.', + 'metadata_only' => 'Nur Metadaten geändert', + 'permission_change' => 'Berechtigung geändert', 'missing' => 'Im aktuellen Tenant fehlend', 'unexpected' => 'Unerwartet im aktuellen Tenant', - 'changed_fields' => 'Geaenderte Felder', + 'changed_fields' => 'Geänderte Felder', 'baseline' => 'Baseline', 'current' => 'Aktuell', 'absent' => 'Nicht vorhanden', 'role_source' => 'Rollenquelle', - 'permission_blocks' => 'Berechtigungsbloecke', + 'permission_blocks' => 'Berechtigungsblöcke', 'built_in' => 'Integriert', 'custom' => 'Benutzerdefiniert', 'assignments_excluded' => 'Rollenzuweisungen sind in diesem Baseline-Compare-Release nicht enthalten.', - 'restore_unsupported' => 'RBAC-Restore wird in diesem Release nicht unterstuetzt.', + 'restore_unsupported' => 'RBAC-Restore wird in diesem Release nicht unterstützt.', ], ]; diff --git a/apps/platform/lang/de/localization.php b/apps/platform/lang/de/localization.php index 8f3629e3..4827d589 100644 --- a/apps/platform/lang/de/localization.php +++ b/apps/platform/lang/de/localization.php @@ -8,50 +8,50 @@ 'de' => 'Deutsch', ], 'source' => [ - 'explicit_override' => 'Sitzungsueberschreibung', - 'user_preference' => 'persoenliche Einstellung', + 'explicit_override' => 'Sitzungsüberschreibung', + 'user_preference' => 'persönliche Einstellung', 'workspace_default' => 'Workspace-Standard', - 'workspace_override' => 'Workspace-Ueberschreibung', + 'workspace_override' => 'Workspace-Überschreibung', 'system_default' => 'Systemstandard', ], 'shell' => [ 'language' => 'Sprache', 'current_language' => 'Aktuelle Sprache', 'language_source' => 'Quelle: :source', - 'temporary_override' => 'Temporaere Ueberschreibung', + 'temporary_override' => 'Temporäre Überschreibung', 'switch_language' => 'Sprache wechseln', 'clear_override' => 'Geerbte Sprache verwenden', - 'personal_preference' => 'Persoenliche Einstellung', + 'personal_preference' => 'Persönliche Einstellung', 'save_preference' => 'Einstellung speichern', 'inherit_workspace' => 'Workspace-Standard verwenden', 'workspace' => 'Workspace', - 'choose_workspace' => 'Workspace auswaehlen', + 'choose_workspace' => 'Workspace auswählen', 'switch_workspace' => 'Workspace wechseln', 'workspace_home' => 'Workspace-Start', 'tenant_scope' => 'Tenant-Kontext', - 'select_tenant' => 'Tenant auswaehlen', - 'selected_tenant' => 'Ausgewaehlter Tenant', - 'no_tenant_selected' => 'Kein Tenant ausgewaehlt', + 'select_tenant' => 'Tenant auswählen', + 'selected_tenant' => 'Ausgewählter Tenant', + 'no_tenant_selected' => 'Kein Tenant ausgewählt', 'switch_tenant' => 'Tenant wechseln', - 'clear_tenant_scope' => 'Tenant-Kontext loeschen', - 'context_unavailable' => 'Kontext nicht verfuegbar', - 'context_unavailable_workspace' => 'Der angeforderte Kontext konnte nicht wiederhergestellt werden. Die Shell zeigt stattdessen einen gueltigen Workspace-Kontext.', - 'context_unavailable_no_workspace' => 'Waehlen Sie einen Workspace aus, um mit einem gueltigen Admin-Kontext fortzufahren.', - 'no_active_tenants' => 'In diesem Workspace sind keine aktiven Tenants fuer den Standardbetrieb verfuegbar.', + 'clear_tenant_scope' => 'Tenant-Kontext löschen', + 'context_unavailable' => 'Kontext nicht verfügbar', + 'context_unavailable_workspace' => 'Der angeforderte Kontext konnte nicht wiederhergestellt werden. Die Shell zeigt stattdessen einen gültigen Workspace-Kontext.', + 'context_unavailable_no_workspace' => 'Wählen Sie einen Workspace aus, um mit einem gültigen Admin-Kontext fortzufahren.', + 'no_active_tenants' => 'In diesem Workspace sind keine aktiven Tenants für den Standardbetrieb verfügbar.', 'view_managed_tenants' => 'Managed Tenants anzeigen', - 'workspace_wide_available' => 'Kein Tenant ausgewaehlt. Workspace-weite Seiten bleiben verfuegbar; ein Tenant setzt nur den normalen aktiven Betriebskontext.', + 'workspace_wide_available' => 'Kein Tenant ausgewählt. Workspace-weite Seiten bleiben verfügbar; ein Tenant setzt nur den normalen aktiven Betriebskontext.', 'search_tenants' => 'Tenants suchen...', - 'choose_workspace_first' => 'Waehlen Sie zuerst einen Workspace aus.', + 'choose_workspace_first' => 'Wählen Sie zuerst einen Workspace aus.', ], 'workspace' => [ 'title' => 'Workspace-Einstellungen', 'save' => 'Speichern', - 'reset' => 'Zuruecksetzen', + 'reset' => 'Zurücksetzen', 'no_manage_permission' => 'Sie haben keine Berechtigung zum Verwalten der Workspace-Einstellungen.', - 'no_workspace_override' => 'Keine Workspace-Ueberschreibung zum Zuruecksetzen vorhanden.', - 'last_modified_by' => ':description - Zuletzt geaendert von :user, :time.', + 'no_workspace_override' => 'Keine Workspace-Überschreibung zum Zurücksetzen vorhanden.', + 'last_modified_by' => ':description - Zuletzt geändert von :user, :time.', 'section' => 'Lokalisierung', - 'section_description' => 'Workspace-Standard fuer Benutzer ohne persoenliche Spracheinstellung.', + 'section_description' => 'Workspace-Standard für Benutzer ohne persönliche Spracheinstellung.', 'default_locale_label' => 'Standardsprache', 'default_locale_placeholder' => 'Nicht gesetzt (verwendet Systemstandard)', 'default_locale_helper_unset' => 'Nicht gesetzt. Effektive Sprache: :locale (:source).', @@ -79,7 +79,7 @@ 'system_title' => 'System-Dashboard', 'request_support' => 'Support anfragen', 'support_request_heading' => 'Support anfragen', - 'support_request_description' => 'Teilen Sie eine kurze Zusammenfassung. TenantAtlas fuegt redaktionell bereinigten Kontext aus bestehenden Datensaetzen hinzu.', + 'support_request_description' => 'Teilen Sie eine kurze Zusammenfassung. TenantAtlas fügt redaktionell bereinigten Kontext aus bestehenden Datensätzen hinzu.', 'submit_request' => 'Anfrage senden', 'included_context' => 'Enthaltener Kontext', 'severity' => 'Schweregrad', @@ -88,10 +88,10 @@ 'contact_name' => 'Kontaktname', 'contact_email' => 'Kontakt-E-Mail', 'support_request_submitted' => 'Supportanfrage gesendet', - 'open_support_diagnostics' => 'Supportdiagnosen oeffnen', + 'open_support_diagnostics' => 'Supportdiagnosen öffnen', 'support_diagnostics' => 'Supportdiagnosen', - 'support_diagnostics_description' => 'Redaktionell bereinigter Tenant-Kontext aus bestehenden Datensaetzen.', - 'close' => 'Schliessen', + 'support_diagnostics_description' => 'Redaktionell bereinigter Tenant-Kontext aus bestehenden Datensätzen.', + 'close' => 'Schließen', 'time_window' => 'Zeitfenster', 'window' => 'Fenster', 'enter_break_glass' => 'Break-Glass-Modus aktivieren', @@ -104,36 +104,36 @@ 'customer_reviews' => 'Kundenreviews', 'customer_review_workspace' => 'Kundenreview-Workspace', 'customer_safe_review_workspace' => 'Kundensicherer Review-Workspace', - 'customer_workspace_intro' => 'Pruefen Sie den zuletzt veroeffentlichten kundensicheren Status fuer jeden berechtigten Tenant, ohne den aktuellen Workspace-Kontext zu verlassen.', - 'customer_workspace_canonical_note' => 'Eine Zeile oeffnet die bestehende Tenant-Review-Detailseite, damit Evidence, Review-Packs und auditfaehige Nachweise auf ihren kanonischen tenantbezogenen Oberflaechen bleiben.', + 'customer_workspace_intro' => 'Prüfen Sie den zuletzt veröffentlichten kundensicheren Status für jeden berechtigten Tenant, ohne den aktuellen Workspace-Kontext zu verlassen.', + 'customer_workspace_canonical_note' => 'Eine Zeile öffnet die bestehende Tenant-Review-Detailseite, damit Evidence, Review-Packs und auditfähige Nachweise auf ihren kanonischen tenantbezogenen Oberflächen bleiben.', 'reviews' => 'Reviews', - 'clear_filters' => 'Filter loeschen', + 'clear_filters' => 'Filter löschen', 'tenant' => 'Tenant', 'latest_review' => 'Letztes Review', 'key_findings' => 'Wichtige Findings', 'accepted_risks' => 'Akzeptierte Risiken', - 'published' => 'Veroeffentlicht', + 'published' => 'Veröffentlicht', 'review_pack' => 'Review-Pack', - 'open_latest_review' => 'Letztes Review oeffnen', + 'open_latest_review' => 'Letztes Review öffnen', 'download_review_pack' => 'Review-Pack herunterladen', 'no_entitled_tenants' => 'Keine berechtigten Tenants passen zu dieser Ansicht', - 'clear_filters_description' => 'Loeschen Sie die aktuellen Filter, um zum vollstaendigen Kundenreview-Workspace fuer Ihre berechtigten Tenants zurueckzukehren.', - 'adjust_filters_description' => 'Passen Sie die Filter an, um zum vollstaendigen Kundenreview-Workspace fuer Ihre berechtigten Tenants zurueckzukehren.', - 'no_published_review' => 'Kein veroeffentlichtes Review', - 'no_published_review_available' => 'Noch kein veroeffentlichtes Review verfuegbar', - 'no_findings_recorded' => 'Im veroeffentlichten Review sind keine Findings erfasst.', - 'findings_count_summary' => ':count Findings im veroeffentlichten Review zusammengefasst.', + 'clear_filters_description' => 'Löschen Sie die aktuellen Filter, um zum vollständigen Kundenreview-Workspace für Ihre berechtigten Tenants zurückzukehren.', + 'adjust_filters_description' => 'Passen Sie die Filter an, um zum vollständigen Kundenreview-Workspace für Ihre berechtigten Tenants zurückzukehren.', + 'no_published_review' => 'Kein veröffentlichtes Review', + 'no_published_review_available' => 'Noch kein veröffentlichtes Review verfügbar', + 'no_findings_recorded' => 'Im veröffentlichten Review sind keine Findings erfasst.', + 'findings_count_summary' => ':count Findings im veröffentlichten Review zusammengefasst.', 'findings_count_with_outcomes' => ':count Findings. Terminale Ergebnisse: :outcomes.', 'no_accepted_risks_recorded' => 'Keine akzeptierten Risiken erfasst.', - 'accepted_risks_need_follow_up' => ':warnings akzeptierte Risiken benoetigen Governance-Nacharbeit (:total gesamt).', + 'accepted_risks_need_follow_up' => ':warnings akzeptierte Risiken benötigen Governance-Nacharbeit (:total gesamt).', 'accepted_risks_governed' => ':count akzeptierte Risiken sind governed.', 'accepted_risks_on_record' => ':count akzeptierte Risiken sind erfasst.', - 'unavailable' => 'Nicht verfuegbar', - 'available' => 'Verfuegbar', + 'unavailable' => 'Nicht verfügbar', + 'available' => 'Verfügbar', 'outcome_summary' => 'Ergebniszusammenfassung', 'review' => 'Review', 'review_date' => 'Review-Datum', - 'completeness' => 'Vollstaendigkeit', + 'completeness' => 'Vollständigkeit', 'evidence_snapshot' => 'Evidence-Snapshot', 'current_export' => 'Aktueller Export', 'executive_posture' => 'Executive-Status', @@ -142,42 +142,42 @@ 'export_executive_pack' => 'Executive-Pack exportieren', 'outcome' => 'Ergebnis', 'export' => 'Export', - 'next_step' => 'Naechster Schritt', + 'next_step' => 'Nächster Schritt', 'no_tenant_reviews_yet' => 'Noch keine Tenant-Reviews', - 'create_first_review_description' => 'Erstellen Sie das erste Review aus einem verankerten Evidence-Snapshot, um die wiederkehrende Review-Historie fuer diesen Tenant zu starten.', + 'create_first_review_description' => 'Erstellen Sie das erste Review aus einem verankerten Evidence-Snapshot, um die wiederkehrende Review-Historie für diesen Tenant zu starten.', 'create_first_review' => 'Erstes Review erstellen', 'create_review' => 'Review erstellen', 'evidence_basis' => 'Evidence-Basis', - 'evidence_basis_helper' => 'Waehlen Sie den verankerten Evidence-Snapshot fuer dieses Review.', + 'evidence_basis_helper' => 'Wählen Sie den verankerten Evidence-Snapshot für dieses Review.', 'unable_create_missing_context' => 'Review kann nicht erstellt werden - Kontext fehlt.', - 'select_valid_evidence_snapshot' => 'Waehlen Sie einen gueltigen Evidence-Snapshot aus.', + 'select_valid_evidence_snapshot' => 'Wählen Sie einen gültigen Evidence-Snapshot aus.', 'unable_create_review' => 'Review kann nicht erstellt werden', - 'review_already_available' => 'Review bereits verfuegbar', - 'review_already_available_body' => 'Ein passendes veraenderbares Review ist fuer diese Evidence-Basis bereits vorhanden.', + 'review_already_available' => 'Review bereits verfügbar', + 'review_already_available_body' => 'Ein passendes veränderbares Review ist für diese Evidence-Basis bereits vorhanden.', 'view_review' => 'Review anzeigen', - 'open_operation' => 'Operation oeffnen', + 'open_operation' => 'Operation öffnen', 'review_composing_background' => 'Das Review wird im Hintergrund zusammengestellt.', 'unable_export_missing_context' => 'Review kann nicht exportiert werden - Kontext fehlt.', - 'export_already_queued_body' => 'Ein Executive-Pack-Export ist fuer dieses Review bereits eingereiht oder laeuft.', - 'executive_pack_export_unavailable' => 'Executive-Pack-Export nicht verfuegbar', + 'export_already_queued_body' => 'Ein Executive-Pack-Export ist für dieses Review bereits eingereiht oder läuft.', + 'executive_pack_export_unavailable' => 'Executive-Pack-Export nicht verfügbar', 'unable_export_executive_pack' => 'Executive-Pack kann nicht exportiert werden', - 'executive_pack_already_available' => 'Executive-Pack bereits verfuegbar', - 'executive_pack_already_available_body' => 'Ein passendes Executive-Pack ist fuer dieses Review bereits vorhanden.', + 'executive_pack_already_available' => 'Executive-Pack bereits verfügbar', + 'executive_pack_already_available_body' => 'Ein passendes Executive-Pack ist für dieses Review bereits vorhanden.', 'view_pack' => 'Pack anzeigen', 'executive_pack_generating_background' => 'Das Executive-Pack wird im Hintergrund erstellt.', - 'review_explanation' => 'Review-Erklaerung', + 'review_explanation' => 'Review-Erklärung', 'reason_owner' => 'Reason Owner', 'platform_core' => 'Platform Core', 'platform_reason_family' => 'Platform-Reason-Familie', - 'compatibility' => 'Kompatibilitaet', + 'compatibility' => 'Kompatibilität', 'highlights' => 'Highlights', - 'next_actions' => 'Naechste Aktionen', + 'next_actions' => 'Nächste Aktionen', 'related_context' => 'Verwandter Kontext', - 'publication_readiness' => 'Veroeffentlichungsreife', - 'ready_for_publication' => 'Dieses Review ist bereit fuer Veroeffentlichung und Executive-Pack-Export.', - 'internal_only' => 'Dieses Review ist aktuell nur fuer interne Nutzung geeignet.', - 'needs_follow_up' => 'Dieses Review benoetigt vor der Veroeffentlichung noch Nacharbeit.', - 'key_entries' => 'Wichtige Eintraege', + 'publication_readiness' => 'Veröffentlichungsreife', + 'ready_for_publication' => 'Dieses Review ist bereit für Veröffentlichung und Executive-Pack-Export.', + 'internal_only' => 'Dieses Review ist aktuell nur für interne Nutzung geeignet.', + 'needs_follow_up' => 'Dieses Review benötigt vor der Veröffentlichung noch Nacharbeit.', + 'key_entries' => 'Wichtige Einträge', 'entry' => 'Eintrag', 'follow_up' => 'Follow-up', 'diagnostics' => 'Diagnosen', @@ -195,36 +195,36 @@ 'terminal_outcomes' => 'Terminale Ergebnisse', 'pending' => 'Ausstehend', 'operation' => 'Operation', - 'operation_description' => 'Pruefen Sie die letzte Review-Zusammenstellung oder den Aktualisierungslauf.', + 'operation_description' => 'Prüfen Sie die letzte Review-Zusammenstellung oder den Aktualisierungslauf.', 'executive_pack' => 'Executive-Pack', 'view_executive_pack' => 'Executive-Pack anzeigen', - 'executive_pack_description' => 'Oeffnet den aktuellen Export, der zu diesem Review gehoert.', + 'executive_pack_description' => 'Öffnet den aktuellen Export, der zu diesem Review gehört.', 'customer_workspace' => 'Kunden-Workspace', - 'open_customer_workspace' => 'Kunden-Workspace oeffnen', - 'customer_workspace_description' => 'Oeffnet den kundensicheren Review-Workspace mit Filter auf diesen Tenant.', + 'open_customer_workspace' => 'Kunden-Workspace öffnen', + 'customer_workspace_description' => 'Öffnet den kundensicheren Review-Workspace mit Filter auf diesen Tenant.', 'view_evidence_snapshot' => 'Evidence-Snapshot anzeigen', - 'evidence_snapshot_description' => 'Zur Evidence-Basis hinter diesem Review zurueckkehren.', + 'evidence_snapshot_description' => 'Zur Evidence-Basis hinter diesem Review zurückkehren.', ], 'findings' => [ 'all' => 'Alle', 'needs_action' => 'Handlungsbedarf', - 'overdue' => 'Ueberfaellig', + 'overdue' => 'Überfällig', 'risk_accepted' => 'Risiko akzeptiert', - 'resolved' => 'Geloest', + 'resolved' => 'Gelöst', 'actions' => 'Aktionen', - 'open_approval_queue' => 'Freigabewarteschlange oeffnen', + 'open_approval_queue' => 'Freigabewarteschlange öffnen', ], 'notifications' => [ - 'locale_override_saved' => 'Sprachueberschreibung angewendet.', - 'locale_override_cleared' => 'Sprachueberschreibung geloescht.', + 'locale_override_saved' => 'Sprachüberschreibung angewendet.', + 'locale_override_cleared' => 'Sprachüberschreibung gelöscht.', 'user_preference_saved' => 'Spracheinstellung gespeichert.', - 'user_preference_cleared' => 'Spracheinstellung geloescht.', + 'user_preference_cleared' => 'Spracheinstellung gelöscht.', 'workspace_settings_saved' => 'Workspace-Einstellungen gespeichert', - 'workspace_settings_unchanged' => 'Keine Einstellungsaenderungen zu speichern', - 'workspace_setting_reset' => 'Workspace-Einstellung auf Standard zurueckgesetzt', + 'workspace_settings_unchanged' => 'Keine Einstellungsänderungen zu speichern', + 'workspace_setting_reset' => 'Workspace-Einstellung auf Standard zurückgesetzt', 'setting_already_default' => 'Einstellung verwendet bereits den Standard', ], 'validation' => [ - 'unsupported_locale' => 'Waehlen Sie eine unterstuetzte Sprache.', + 'unsupported_locale' => 'Wählen Sie eine unterstützte Sprache.', ], ]; diff --git a/apps/platform/resources/views/filament/partials/locale-switcher.blade.php b/apps/platform/resources/views/filament/partials/locale-switcher.blade.php index 3595716e..37ba9f92 100644 --- a/apps/platform/resources/views/filament/partials/locale-switcher.blade.php +++ b/apps/platform/resources/views/filament/partials/locale-switcher.blade.php @@ -55,15 +55,16 @@ class="inline-flex items-center gap-1.5 rounded-r-lg px-2 py-1.5 text-sm transit - + + + @foreach ($localeOptions as $locale => $label) + + @endforeach + + @@ -87,16 +88,17 @@ class="fi-input fi-select-input w-full" - + + + + @foreach ($localeOptions as $locale => $label) + + @endforeach + + diff --git a/apps/platform/tests/Feature/Localization/LocalizedNotificationFormattingTest.php b/apps/platform/tests/Feature/Localization/LocalizedNotificationFormattingTest.php index 9e5217c4..00dd114c 100644 --- a/apps/platform/tests/Feature/Localization/LocalizedNotificationFormattingTest.php +++ b/apps/platform/tests/Feature/Localization/LocalizedNotificationFormattingTest.php @@ -34,7 +34,7 @@ ->withSession([WorkspaceContext::SESSION_KEY => (int) $workspace->getKey()]) ->post(route('localization.override.update'), ['locale' => 'de']) ->assertRedirect() - ->assertSessionHas('status', 'Sprachueberschreibung angewendet.'); + ->assertSessionHas('status', 'Sprachüberschreibung angewendet.'); $this->actingAs($user) ->withSession([ @@ -43,5 +43,5 @@ ]) ->delete(route('localization.override.clear')) ->assertRedirect() - ->assertSessionHas('status', 'Sprachueberschreibung geloescht.'); + ->assertSessionHas('status', 'Sprachüberschreibung gelöscht.'); });