feat(sql-audit): 新增 SQL 审计中心并完善事务追踪

- 新增脱敏审计存储、筛选、保留策略、完整性校验与 JSON/CSV 导出
- 覆盖查询编辑器、事务、导入同步、对象操作、AI/MCP 与 Web 运行时入口
- 完善事务完整语句日志、Windows 快捷键映射及 SQL 分析布局
- 补充多语言、健康状态、数据目录迁移和回归测试
This commit is contained in:
Syngnat
2026-07-12 15:24:15 +08:00
parent 0b33b3a683
commit 7c8e8d8dd3
89 changed files with 11421 additions and 194 deletions

View File

@@ -8255,5 +8255,176 @@
"result_diff.preview.legend.removed": "Nur links / entfernt",
"result_diff.preview.legend.added": "Nur rechts / hinzugefügt",
"result_diff.preview.legend.changed": "Feld geändert",
"result_diff.preview.gutter": "Diff"
"result_diff.preview.gutter": "Diff",
"app.tools.entry.sql_audit.title": "SQL-Audit-Center",
"app.tools.entry.sql_audit.description": "Persistierte Datenbankaktionen, Transaktionsverläufe und Integritätsprüfungen anzeigen.",
"tab_manager.kind_badge.sql_audit": "Audit",
"tab_manager.hover.kind.sql_audit": "SQL-Audit-Center",
"sql_audit.workbench.tab_title": "SQL-Audit",
"sql_audit.workbench.title": "SQL-Audit-Center",
"sql_audit.workbench.description": "Aufbewahrte Nachweise für integrierte SQL-Editor-, Transaktions-, Datenimport-, SQL-Datei-, Synchronisierungs- und Objektaktionen verbindungsübergreifend durchsuchen.",
"sql_audit.rail.tooltip": "SQL-Audit-Center öffnen",
"sql_audit.rail.aria_label": "SQL-Audit-Center öffnen",
"sql_audit.privacy.title": "Audit-SQL wird standardmäßig maskiert",
"sql_audit.privacy.description": "Der Audit-Speicher enthält nur maskierte SQL-Strukturen oder Metadaten und keine Rohtext-/Vollaufzeichnung. SQL-Datei-, Import- und Synchronisierungseinträge sind Aufgabenzusammenfassungen; die Quelle bezeichnet den aufgerufenen Funktionseinstieg.",
"sql_audit.action.verify": "Integrität prüfen",
"sql_audit.action.export": "Exportieren",
"sql_audit.action.export_json": "JSON exportieren",
"sql_audit.action.export_csv": "CSV exportieren",
"sql_audit.action.settings": "Audit-Einstellungen",
"sql_audit.action.clear": "Einträge löschen",
"sql_audit.action.reset_filters": "Filter zurücksetzen",
"sql_audit.action.view_detail": "Audit-Details anzeigen",
"sql_audit.action.copy_json": "JSON kopieren",
"sql_audit.action.copy_sql": "SQL kopieren",
"sql_audit.filter.aria_label": "SQL-Audit-Filter",
"sql_audit.filter.search_placeholder": "SQL, Fingerabdruck, Abfrage-ID oder Fehler suchen…",
"sql_audit.filter.search_aria_label": "SQL-Audit-Einträge durchsuchen",
"sql_audit.filter.connection": "Verbindung",
"sql_audit.filter.database": "Datenbank",
"sql_audit.filter.db_type": "Datenbanktyp",
"sql_audit.filter.event_type": "Ereignistyp",
"sql_audit.filter.status": "Status",
"sql_audit.filter.source": "Quelle",
"sql_audit.filter.transaction_id": "Transaktions-ID",
"sql_audit.filter.time_range": "Zeitraum",
"sql_audit.summary.aria_label": "SQL-Audit-Zusammenfassung",
"sql_audit.summary.events": "Ereignisse",
"sql_audit.summary.success": "Erfolgreich",
"sql_audit.summary.errors": "Fehler",
"sql_audit.summary.transactions": "Transaktionen",
"sql_audit.table.aria_label": "SQL-Audit-Einträge",
"sql_audit.column.time": "Zeit",
"sql_audit.column.status": "Status",
"sql_audit.column.connection": "Verbindung",
"sql_audit.column.database": "Datenbank",
"sql_audit.column.db_type": "Datenbanktyp",
"sql_audit.column.event_type": "Ereignis",
"sql_audit.column.sql": "SQL-Nachweis",
"sql_audit.column.duration": "Dauer",
"sql_audit.column.rows": "Zeilen",
"sql_audit.column.source": "Quelle",
"sql_audit.column.action": "Aktion",
"sql_audit.empty.no_records": "Noch keine SQL-Audit-Einträge. Neue integrierte Benutzeraktionen erscheinen hier, sobald das Audit aktiviert ist.",
"sql_audit.empty.no_matches": "Keine Audit-Einträge entsprechen den aktuellen Filtern.",
"sql_audit.error.load_failed": "SQL-Audit-Einträge konnten nicht geladen werden",
"sql_audit.pagination.total": "{{count}} Einträge",
"sql_audit.pagination.aria_label": "SQL-Audit-Seitennavigation",
"sql_audit.event_type.query": "Abfrage",
"sql_audit.event_type.transaction_begin": "Transaktion gestartet",
"sql_audit.event_type.transaction_statement": "Transaktionsanweisung",
"sql_audit.event_type.transaction_commit_requested": "Commit angefordert",
"sql_audit.event_type.transaction_commit": "Transaktion bestätigt",
"sql_audit.event_type.transaction_rollback_requested": "Rollback angefordert",
"sql_audit.event_type.transaction_rollback": "Transaktion zurückgesetzt",
"sql_audit.event_type.transaction_auto_rollback": "Automatisches Rollback",
"sql_audit.status.success": "Erfolgreich",
"sql_audit.status.error": "Fehler",
"sql_audit.status.cancelled": "Abgebrochen",
"sql_audit.source.query_editor": "Abfrageeditor",
"sql_audit.source.sql_file": "SQL-Datei",
"sql_audit.source.data_grid": "Datenraster",
"sql_audit.source.sync": "Datensynchronisierung",
"sql_audit.source.mcp": "MCP",
"sql_audit.source.system": "System",
"sql_audit.detail.title": "SQL-Audit-Details",
"sql_audit.detail.metadata": "Ausführungsmetadaten",
"sql_audit.detail.timeline": "Transaktionsverlauf",
"sql_audit.detail.timeline_partial": "Der vollständige Transaktionsverlauf konnte nicht geladen werden; das ausgewählte Ereignis wird weiterhin angezeigt.",
"sql_audit.detail.timeline_page_status": "{{loaded}} von {{total}} Transaktionsereignissen angezeigt",
"sql_audit.detail.timeline_pagination_aria_label": "Seitennavigation des Transaktionsverlaufs",
"sql_audit.detail.sql": "Aufgezeichnetes SQL",
"sql_audit.detail.no_sql": "Für dieses Ereignis wurde kein SQL-Text gespeichert.",
"sql_audit.detail.redacted": "Maskiert",
"sql_audit.detail.error": "Ausführungsfehler",
"sql_audit.detail.commit_mode": "Commit-Modus",
"sql_audit.detail.query_id": "Abfrage-ID",
"sql_audit.detail.transaction_id": "Transaktions-ID",
"sql_audit.detail.connection_fingerprint": "Verbindungsfingerabdruck",
"sql_audit.detail.sql_fingerprint": "SQL-Fingerabdruck",
"sql_audit.detail.statement_position": "Anweisungsposition",
"sql_audit.detail.statement_position_value": "Anweisung {{current}} / {{total}}",
"sql_audit.detail.rows_affected": "Betroffene Zeilen",
"sql_audit.detail.rows_returned": "Zurückgegebene Zeilen",
"sql_audit.detail.integrity": "Integritätsnachweis",
"sql_audit.detail.sequence": "Sequenz",
"sql_audit.detail.prev_hash": "Vorheriger Hash",
"sql_audit.detail.hash": "Eintrags-Hash",
"sql_audit.message.sql_copied": "SQL kopiert",
"sql_audit.message.json_copied": "Audit-JSON kopiert",
"sql_audit.message.copy_failed": "Kopieren in die Zwischenablage nicht möglich",
"sql_audit.integrity.valid": "Konsistenz der Audit-Hash-Kette bestätigt",
"sql_audit.integrity.valid_partial": "Konsistenz der aufbewahrten Audit-Hash-Kette bestätigt",
"sql_audit.integrity.invalid": "Konsistenzprüfung der Audit-Hash-Kette fehlgeschlagen",
"sql_audit.integrity.verify_failed": "Konsistenz der Audit-Hash-Kette konnte nicht geprüft werden",
"sql_audit.integrity.checked_records": "{{count}} Einträge geprüft.",
"sql_audit.integrity.partial_chain": "Frühere Präfix-Einträge wurden gemäß der Aufbewahrungsrichtlinie entfernt; geprüft wurde nur die aktuell aufbewahrte Teilkette.",
"sql_audit.integrity.weak_validation": "Dies prüft nur die Konsistenz einer ungeschützten SHA-256-Hash-Kette und beweist nicht, dass Einträge nicht böswillig umgeschrieben wurden.",
"sql_audit.export.success": "{{fileName}} exportiert",
"sql_audit.export.failed": "Export fehlgeschlagen: {{detail}}",
"sql_audit.export.unavailable": "Der Browser konnte die Exportdatei nicht erstellen.",
"sql_audit.clear.title": "Alle SQL-Audit-Einträge löschen?",
"sql_audit.clear.description": "Dadurch wird der lokale Audit-Verlauf dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.",
"sql_audit.clear.confirm": "Alle Einträge löschen",
"sql_audit.clear.success": "SQL-Audit-Einträge gelöscht",
"sql_audit.clear.failed": "SQL-Audit-Einträge konnten nicht gelöscht werden: {{detail}}",
"sql_audit.settings.title": "SQL-Audit-Einstellungen",
"sql_audit.settings.enabled.label": "SQL-Audit aktivieren",
"sql_audit.settings.enabled.description": "Neue Ausführungs- und Transaktionsnachweise im lokalen Audit-Speicher persistieren.",
"sql_audit.settings.capture_mode.label": "SQL-Erfassungsmodus",
"sql_audit.settings.capture_mode.description": "Zum Schutz der Privatsphäre ist keine Rohtext-/Vollaufzeichnung verfügbar. Wählen Sie maskierte SQL-Struktur oder nur Metadaten.",
"sql_audit.settings.capture_mode.redacted": "Maskierte SQL-Struktur",
"sql_audit.settings.capture_mode.metadata": "Nur Metadaten",
"sql_audit.settings.retention_days.label": "Aufbewahrung (Tage)",
"sql_audit.settings.retention_days.description": "Ältere Einträge werden bei der Wartung entfernt.",
"sql_audit.settings.max_records.label": "Maximale Einträge",
"sql_audit.settings.max_records.description": "Bei Überschreitung werden die ältesten Einträge entfernt.",
"sql_audit.settings.message.saved": "SQL-Audit-Einstellungen gespeichert",
"sql_audit.settings.message.save_failed": "SQL-Audit-Einstellungen konnten nicht gespeichert werden: {{detail}}",
"sql_audit.settings.error.load_or_save": "SQL-Audit-Einstellungen erfordern Aufmerksamkeit",
"sql_audit.filter.time_from": "Startzeit",
"sql_audit.filter.time_to": "Endzeit",
"sql_audit.export.desktop_success": "Nach {{filePath}} exportiert",
"sql_audit.detail.boundary_mode": "Transaktionsgrenze",
"sql_audit.boundary_mode.driver_api": "Treiber-API",
"sql_audit.boundary_mode.text_sql": "SQL-Transaktionsanweisungen",
"sql_audit.boundary_mode.implicit": "Implizite Transaktion",
"sql_audit.boundary_mode.unknown": "Unbekannt",
"sql_audit.source.tab_close": "Tab geschlossen",
"sql_audit.source.app_shutdown": "Anwendung beendet",
"sql_audit.event_type.query_statement": "Abfrageanweisung",
"sql_audit.event_type.audit_gap": "Audit-Lückenmarkierung",
"sql_audit.event_type.audit_settings_change": "Audit-Einstellungsänderung",
"sql_audit.event_type.audit_clear": "Audit-Löschgrenze",
"sql_audit.health.checking.title": "Zustand des Audit-Schreibers wird geprüft",
"sql_audit.health.checking.description": "Der Zustandsbericht liegt noch nicht vor; daher wird keine Aussage zur Vollständigkeit getroffen.",
"sql_audit.health.unavailable.title": "Zustand des Audit-Schreibers kann nicht bestätigt werden",
"sql_audit.health.unavailable.description": "Die Zustandsabfrage ist fehlgeschlagen. Daraus lässt sich keine Vollständigkeit der Audit-Einträge ableiten. Aktualisieren Sie erneut.",
"sql_audit.health.disabled.title": "SQL-Audit-Erfassung ist deaktiviert",
"sql_audit.health.disabled.description": "Es werden keine neuen Anwendungs-Audit-Ereignisse erfasst. Vorhandene Einträge können weiterhin durchsucht, geprüft und exportiert werden.",
"sql_audit.health.healthy.title": "Audit-Schreibvorgang ist fehlerfrei",
"sql_audit.health.healthy.description": "Der Schreiber meldet aktuell einen fehlerfreien Zustand ohne verworfene Ereignisse. Dies ist nur ein Pipeline-Status und keine Manipulationssicherheitsgarantie.",
"sql_audit.health.degraded.title": "Audit-Schreibvorgang ist beeinträchtigt",
"sql_audit.health.degraded.description": "{{count}} verworfene Audit-Ereignisse wurden erfasst; der Audit-Verlauf enthält daher eine Lücke. Behandeln Sie ihn bis zur Wiederherstellung nicht als vollständig.",
"sql_audit.health.recovered.title": "Audit-Schreibvorgang wurde wiederhergestellt",
"sql_audit.health.recovered.description": "Zuvor wurden {{count}} Audit-Ereignisse verworfen. Nach der Wiederherstellung wurde die Lücke mit einem audit_gap-Ereignis markiert.",
"sql_audit.health.historical_gap.title": "Schreibvorgang fehlerfrei, historische Lücke vorhanden",
"sql_audit.health.historical_gap.description": "{{count}} verworfene Ereignisse sind erfasst, aber die Zeitstempel bestätigen keine audit_gap-Markierung nach dem Fehler; die Oberfläche behauptet daher keine Markierung.",
"sql_audit.health.capture_status": "Erfassungsstatus",
"sql_audit.health.capture_enabled": "Aktiviert",
"sql_audit.health.capture_disabled": "Deaktiviert",
"sql_audit.health.capture_unknown": "Unbekannt",
"sql_audit.health.capture_mode": "Erfassungsmodus",
"sql_audit.health.first_failure": "Erster Fehler",
"sql_audit.health.last_failure": "Letzter Fehler",
"sql_audit.health.last_success": "Letzter Erfolg",
"sql_audit.health.last_error": "Letzter Schreibfehler",
"sql_audit.source.data_editor": "Dateneditor",
"sql_audit.source.table_designer": "Tabellendesigner",
"sql_audit.source.object_editor": "Objekteditor",
"sql_audit.source.message_publish": "Nachrichtenveröffentlichung",
"sql_audit.source.ai_action": "KI-Aktion",
"sql_audit.source.data_import": "Datenimport",
"sql_audit.source.audit_control": "Audit-Steuerung",
"sql_audit.source.application_api": "Interne Anwendungsaktion"
}

View File

@@ -8255,5 +8255,176 @@
"result_diff.preview.legend.removed": "Left only / removed",
"result_diff.preview.legend.added": "Right only / added",
"result_diff.preview.legend.changed": "Field changed",
"result_diff.preview.gutter": "Diff"
"result_diff.preview.gutter": "Diff",
"app.tools.entry.sql_audit.title": "SQL Audit Center",
"app.tools.entry.sql_audit.description": "Review persisted database actions, transaction timelines, and integrity checks.",
"tab_manager.kind_badge.sql_audit": "Audit",
"tab_manager.hover.kind.sql_audit": "SQL audit center",
"sql_audit.workbench.tab_title": "SQL Audit",
"sql_audit.workbench.title": "SQL Audit Center",
"sql_audit.workbench.description": "Search retained evidence for integrated SQL editor, transaction, data edit/import, SQL-file, sync, and object actions across connections.",
"sql_audit.rail.tooltip": "Open SQL Audit Center",
"sql_audit.rail.aria_label": "Open SQL Audit Center",
"sql_audit.privacy.title": "Audit SQL is redacted by default",
"sql_audit.privacy.description": "The audit store keeps redacted SQL structure or metadata only and never offers raw/full capture. SQL-file, import, and sync entries are task summaries; source identifies the called feature entry point.",
"sql_audit.action.verify": "Verify integrity",
"sql_audit.action.export": "Export",
"sql_audit.action.export_json": "Export JSON",
"sql_audit.action.export_csv": "Export CSV",
"sql_audit.action.settings": "Audit settings",
"sql_audit.action.clear": "Clear records",
"sql_audit.action.reset_filters": "Reset filters",
"sql_audit.action.view_detail": "View audit details",
"sql_audit.action.copy_json": "Copy JSON",
"sql_audit.action.copy_sql": "Copy SQL",
"sql_audit.filter.aria_label": "SQL audit filters",
"sql_audit.filter.search_placeholder": "Search SQL, fingerprint, query ID, or error…",
"sql_audit.filter.search_aria_label": "Search SQL audit records",
"sql_audit.filter.connection": "Connection",
"sql_audit.filter.database": "Database",
"sql_audit.filter.db_type": "Database type",
"sql_audit.filter.event_type": "Event type",
"sql_audit.filter.status": "Status",
"sql_audit.filter.source": "Source",
"sql_audit.filter.transaction_id": "Transaction ID",
"sql_audit.filter.time_range": "Time range",
"sql_audit.summary.aria_label": "SQL audit summary",
"sql_audit.summary.events": "Events",
"sql_audit.summary.success": "Succeeded",
"sql_audit.summary.errors": "Errors",
"sql_audit.summary.transactions": "Transactions",
"sql_audit.table.aria_label": "SQL audit records",
"sql_audit.column.time": "Time",
"sql_audit.column.status": "Status",
"sql_audit.column.connection": "Connection",
"sql_audit.column.database": "Database",
"sql_audit.column.db_type": "Database type",
"sql_audit.column.event_type": "Event",
"sql_audit.column.sql": "SQL evidence",
"sql_audit.column.duration": "Duration",
"sql_audit.column.rows": "Rows",
"sql_audit.column.source": "Source",
"sql_audit.column.action": "Action",
"sql_audit.empty.no_records": "No SQL audit records yet. New integrated user actions appear here when auditing is enabled.",
"sql_audit.empty.no_matches": "No audit records match the current filters.",
"sql_audit.error.load_failed": "Unable to load SQL audit records",
"sql_audit.pagination.total": "{{count}} records",
"sql_audit.pagination.aria_label": "SQL audit pagination",
"sql_audit.event_type.query": "Query",
"sql_audit.event_type.transaction_begin": "Transaction started",
"sql_audit.event_type.transaction_statement": "Transaction statement",
"sql_audit.event_type.transaction_commit_requested": "Commit requested",
"sql_audit.event_type.transaction_commit": "Transaction committed",
"sql_audit.event_type.transaction_rollback_requested": "Rollback requested",
"sql_audit.event_type.transaction_rollback": "Transaction rolled back",
"sql_audit.event_type.transaction_auto_rollback": "Automatic rollback",
"sql_audit.status.success": "Success",
"sql_audit.status.error": "Error",
"sql_audit.status.cancelled": "Cancelled",
"sql_audit.source.query_editor": "Query editor",
"sql_audit.source.sql_file": "SQL file",
"sql_audit.source.data_grid": "Data grid",
"sql_audit.source.sync": "Data sync",
"sql_audit.source.mcp": "MCP",
"sql_audit.source.system": "System",
"sql_audit.detail.title": "SQL Audit Details",
"sql_audit.detail.metadata": "Execution metadata",
"sql_audit.detail.timeline": "Transaction timeline",
"sql_audit.detail.timeline_partial": "The complete transaction timeline could not be loaded; the selected event is still shown.",
"sql_audit.detail.timeline_page_status": "Showing {{loaded}} of {{total}} transaction events",
"sql_audit.detail.timeline_pagination_aria_label": "Transaction timeline pagination",
"sql_audit.detail.sql": "Recorded SQL",
"sql_audit.detail.no_sql": "SQL text was not retained for this event.",
"sql_audit.detail.redacted": "Redacted",
"sql_audit.detail.error": "Execution error",
"sql_audit.detail.commit_mode": "Commit mode",
"sql_audit.detail.query_id": "Query ID",
"sql_audit.detail.transaction_id": "Transaction ID",
"sql_audit.detail.connection_fingerprint": "Connection fingerprint",
"sql_audit.detail.sql_fingerprint": "SQL fingerprint",
"sql_audit.detail.statement_position": "Statement position",
"sql_audit.detail.statement_position_value": "Statement {{current}} / {{total}}",
"sql_audit.detail.rows_affected": "Rows affected",
"sql_audit.detail.rows_returned": "Rows returned",
"sql_audit.detail.integrity": "Integrity evidence",
"sql_audit.detail.sequence": "Sequence",
"sql_audit.detail.prev_hash": "Previous hash",
"sql_audit.detail.hash": "Record hash",
"sql_audit.message.sql_copied": "SQL copied",
"sql_audit.message.json_copied": "Audit JSON copied",
"sql_audit.message.copy_failed": "Unable to copy to the clipboard",
"sql_audit.integrity.valid": "Audit hash-chain consistency verified",
"sql_audit.integrity.valid_partial": "Retained audit hash-chain consistency verified",
"sql_audit.integrity.invalid": "Audit hash-chain consistency check failed",
"sql_audit.integrity.verify_failed": "Unable to check audit hash-chain consistency",
"sql_audit.integrity.checked_records": "Verified {{count}} records.",
"sql_audit.integrity.partial_chain": "Earlier prefix records were removed by retention, so this check covers only the currently retained partial chain.",
"sql_audit.integrity.weak_validation": "This only checks unkeyed SHA-256 hash-chain consistency and cannot prove records were not maliciously rewritten.",
"sql_audit.export.success": "Exported {{fileName}}",
"sql_audit.export.failed": "Export failed: {{detail}}",
"sql_audit.export.unavailable": "The browser could not create the export file.",
"sql_audit.clear.title": "Clear all SQL audit records?",
"sql_audit.clear.description": "This permanently removes the local audit history. This action cannot be undone.",
"sql_audit.clear.confirm": "Clear all records",
"sql_audit.clear.success": "SQL audit records cleared",
"sql_audit.clear.failed": "Unable to clear SQL audit records: {{detail}}",
"sql_audit.settings.title": "SQL Audit Settings",
"sql_audit.settings.enabled.label": "Enable SQL auditing",
"sql_audit.settings.enabled.description": "Persist new execution and transaction evidence in the local audit store.",
"sql_audit.settings.capture_mode.label": "SQL capture mode",
"sql_audit.settings.capture_mode.description": "Raw/full SQL capture is intentionally unavailable. Choose redacted SQL structure or metadata only.",
"sql_audit.settings.capture_mode.redacted": "Redacted SQL structure",
"sql_audit.settings.capture_mode.metadata": "Metadata only",
"sql_audit.settings.retention_days.label": "Retention period (days)",
"sql_audit.settings.retention_days.description": "Records older than this period are removed during maintenance.",
"sql_audit.settings.max_records.label": "Maximum records",
"sql_audit.settings.max_records.description": "The oldest records are removed when this limit is exceeded.",
"sql_audit.settings.message.saved": "SQL audit settings saved",
"sql_audit.settings.message.save_failed": "Unable to save SQL audit settings: {{detail}}",
"sql_audit.settings.error.load_or_save": "SQL audit settings need attention",
"sql_audit.filter.time_from": "Start time",
"sql_audit.filter.time_to": "End time",
"sql_audit.export.desktop_success": "Exported to {{filePath}}",
"sql_audit.detail.boundary_mode": "Transaction boundary",
"sql_audit.boundary_mode.driver_api": "Driver API",
"sql_audit.boundary_mode.text_sql": "SQL transaction statements",
"sql_audit.boundary_mode.implicit": "Implicit transaction",
"sql_audit.boundary_mode.unknown": "Unknown",
"sql_audit.source.tab_close": "Tab close",
"sql_audit.source.app_shutdown": "Application shutdown",
"sql_audit.event_type.query_statement": "Query statement",
"sql_audit.event_type.audit_gap": "Audit gap marker",
"sql_audit.event_type.audit_settings_change": "Audit settings change",
"sql_audit.event_type.audit_clear": "Audit clear boundary",
"sql_audit.health.checking.title": "Checking audit writer health",
"sql_audit.health.checking.description": "The health report has not returned yet, so no completeness conclusion is being made.",
"sql_audit.health.unavailable.title": "Audit writer health cannot be confirmed",
"sql_audit.health.unavailable.description": "The health request failed. This does not establish whether audit records are complete. Use Refresh to retry.",
"sql_audit.health.disabled.title": "SQL audit capture is disabled",
"sql_audit.health.disabled.description": "No new application audit events are being captured. Existing records remain available to browse, verify, and export.",
"sql_audit.health.healthy.title": "Audit writing is healthy",
"sql_audit.health.healthy.description": "The writer currently reports healthy with no dropped events. This is pipeline status, not a tamper-proof guarantee.",
"sql_audit.health.degraded.title": "Audit writing is degraded",
"sql_audit.health.degraded.description": "{{count}} dropped audit events are recorded, so the audit history contains a gap. Do not treat it as complete until writing recovers.",
"sql_audit.health.recovered.title": "Audit writing has recovered",
"sql_audit.health.recovered.description": "{{count}} audit events were previously dropped. Recovery marked that gap with an audit_gap event.",
"sql_audit.health.historical_gap.title": "Writing is healthy, with a historical gap",
"sql_audit.health.historical_gap.description": "{{count}} dropped events are recorded, but timestamps do not confirm a post-failure audit_gap marker, so this UI does not claim one was written.",
"sql_audit.health.capture_status": "Capture status",
"sql_audit.health.capture_enabled": "Enabled",
"sql_audit.health.capture_disabled": "Disabled",
"sql_audit.health.capture_unknown": "Unknown",
"sql_audit.health.capture_mode": "Capture mode",
"sql_audit.health.first_failure": "First failure",
"sql_audit.health.last_failure": "Latest failure",
"sql_audit.health.last_success": "Latest success",
"sql_audit.health.last_error": "Latest write error",
"sql_audit.source.data_editor": "Data editor",
"sql_audit.source.table_designer": "Table designer",
"sql_audit.source.object_editor": "Object editor",
"sql_audit.source.message_publish": "Message publication",
"sql_audit.source.ai_action": "AI action",
"sql_audit.source.data_import": "Data import",
"sql_audit.source.audit_control": "Audit control",
"sql_audit.source.application_api": "Internal application action"
}

View File

@@ -8255,5 +8255,176 @@
"result_diff.preview.legend.removed": "左のみ/削除",
"result_diff.preview.legend.added": "右のみ/追加",
"result_diff.preview.legend.changed": "フィールド変更",
"result_diff.preview.gutter": "差分"
"result_diff.preview.gutter": "差分",
"app.tools.entry.sql_audit.title": "SQL 監査センター",
"app.tools.entry.sql_audit.description": "永続化されたデータベース操作、トランザクションのタイムライン、整合性検証を確認します。",
"tab_manager.kind_badge.sql_audit": "監査",
"tab_manager.hover.kind.sql_audit": "SQL 監査センター",
"sql_audit.workbench.tab_title": "SQL 監査",
"sql_audit.workbench.title": "SQL 監査センター",
"sql_audit.workbench.description": "接続を横断して、統合済みの SQL エディター、トランザクション、データ編集/インポート、SQL ファイル、同期、オブジェクト操作の保持済み証跡を検索します。",
"sql_audit.rail.tooltip": "SQL 監査センターを開く",
"sql_audit.rail.aria_label": "SQL 監査センターを開く",
"sql_audit.privacy.title": "監査 SQL は既定でマスキングされます",
"sql_audit.privacy.description": "監査ストアにはマスキング済み SQL 構造またはメタデータのみを保存し、原文/完全取得は提供しません。SQL ファイル、インポート、同期はタスク要約で、ソースは呼び出された機能入口を示します。",
"sql_audit.action.verify": "整合性を検証",
"sql_audit.action.export": "エクスポート",
"sql_audit.action.export_json": "JSON をエクスポート",
"sql_audit.action.export_csv": "CSV をエクスポート",
"sql_audit.action.settings": "監査設定",
"sql_audit.action.clear": "記録を消去",
"sql_audit.action.reset_filters": "フィルターをリセット",
"sql_audit.action.view_detail": "監査詳細を表示",
"sql_audit.action.copy_json": "JSON をコピー",
"sql_audit.action.copy_sql": "SQL をコピー",
"sql_audit.filter.aria_label": "SQL 監査フィルター",
"sql_audit.filter.search_placeholder": "SQL、フィンガープリント、クエリ ID、エラーを検索…",
"sql_audit.filter.search_aria_label": "SQL 監査記録を検索",
"sql_audit.filter.connection": "接続",
"sql_audit.filter.database": "データベース",
"sql_audit.filter.db_type": "データベース種別",
"sql_audit.filter.event_type": "イベント種別",
"sql_audit.filter.status": "ステータス",
"sql_audit.filter.source": "ソース",
"sql_audit.filter.transaction_id": "トランザクション ID",
"sql_audit.filter.time_range": "期間",
"sql_audit.summary.aria_label": "SQL 監査サマリー",
"sql_audit.summary.events": "イベント",
"sql_audit.summary.success": "成功",
"sql_audit.summary.errors": "エラー",
"sql_audit.summary.transactions": "トランザクション",
"sql_audit.table.aria_label": "SQL 監査記録",
"sql_audit.column.time": "時刻",
"sql_audit.column.status": "ステータス",
"sql_audit.column.connection": "接続",
"sql_audit.column.database": "データベース",
"sql_audit.column.db_type": "データベース種別",
"sql_audit.column.event_type": "イベント",
"sql_audit.column.sql": "SQL 証跡",
"sql_audit.column.duration": "所要時間",
"sql_audit.column.rows": "行数",
"sql_audit.column.source": "ソース",
"sql_audit.column.action": "操作",
"sql_audit.empty.no_records": "SQL 監査記録はまだありません。監査を有効にすると、新しい統合済みユーザー操作がここに表示されます。",
"sql_audit.empty.no_matches": "現在のフィルターに一致する監査記録はありません。",
"sql_audit.error.load_failed": "SQL 監査記録を読み込めません",
"sql_audit.pagination.total": "{{count}} 件",
"sql_audit.pagination.aria_label": "SQL 監査ページネーション",
"sql_audit.event_type.query": "クエリ",
"sql_audit.event_type.transaction_begin": "トランザクション開始",
"sql_audit.event_type.transaction_statement": "トランザクション文",
"sql_audit.event_type.transaction_commit_requested": "コミット要求",
"sql_audit.event_type.transaction_commit": "トランザクションをコミット",
"sql_audit.event_type.transaction_rollback_requested": "ロールバック要求",
"sql_audit.event_type.transaction_rollback": "トランザクションをロールバック",
"sql_audit.event_type.transaction_auto_rollback": "自動ロールバック",
"sql_audit.status.success": "成功",
"sql_audit.status.error": "エラー",
"sql_audit.status.cancelled": "キャンセル済み",
"sql_audit.source.query_editor": "クエリエディター",
"sql_audit.source.sql_file": "SQL ファイル",
"sql_audit.source.data_grid": "データグリッド",
"sql_audit.source.sync": "データ同期",
"sql_audit.source.mcp": "MCP",
"sql_audit.source.system": "システム",
"sql_audit.detail.title": "SQL 監査詳細",
"sql_audit.detail.metadata": "実行メタデータ",
"sql_audit.detail.timeline": "トランザクションのタイムライン",
"sql_audit.detail.timeline_partial": "完全なトランザクションのタイムラインを読み込めませんでした。選択したイベントは引き続き表示されます。",
"sql_audit.detail.timeline_page_status": "トランザクションイベント {{total}} 件中 {{loaded}} 件を表示",
"sql_audit.detail.timeline_pagination_aria_label": "トランザクションタイムラインのページ切り替え",
"sql_audit.detail.sql": "記録された SQL",
"sql_audit.detail.no_sql": "このイベントでは SQL テキストが保持されていません。",
"sql_audit.detail.redacted": "マスキング済み",
"sql_audit.detail.error": "実行エラー",
"sql_audit.detail.commit_mode": "コミットモード",
"sql_audit.detail.query_id": "クエリ ID",
"sql_audit.detail.transaction_id": "トランザクション ID",
"sql_audit.detail.connection_fingerprint": "接続フィンガープリント",
"sql_audit.detail.sql_fingerprint": "SQL フィンガープリント",
"sql_audit.detail.statement_position": "文の位置",
"sql_audit.detail.statement_position_value": "文 {{current}} / {{total}}",
"sql_audit.detail.rows_affected": "影響行数",
"sql_audit.detail.rows_returned": "返却行数",
"sql_audit.detail.integrity": "整合性証跡",
"sql_audit.detail.sequence": "シーケンス",
"sql_audit.detail.prev_hash": "前のハッシュ",
"sql_audit.detail.hash": "記録ハッシュ",
"sql_audit.message.sql_copied": "SQL をコピーしました",
"sql_audit.message.json_copied": "監査 JSON をコピーしました",
"sql_audit.message.copy_failed": "クリップボードにコピーできません",
"sql_audit.integrity.valid": "監査ハッシュチェーンの一貫性を確認しました",
"sql_audit.integrity.valid_partial": "保持中の監査ハッシュチェーンの一貫性を確認しました",
"sql_audit.integrity.invalid": "監査ハッシュチェーンの一貫性検証に失敗しました",
"sql_audit.integrity.verify_failed": "監査ハッシュチェーンの一貫性を検証できません",
"sql_audit.integrity.checked_records": "{{count}} 件の記録を検証しました。",
"sql_audit.integrity.partial_chain": "保持ポリシーにより以前のプレフィックス記録が削除されたため、現在保持されている部分チェーンのみを検証しました。",
"sql_audit.integrity.weak_validation": "これは鍵なし SHA-256 ハッシュチェーンの一貫性のみを確認するもので、悪意ある書き換えがないことは証明できません。",
"sql_audit.export.success": "{{fileName}} をエクスポートしました",
"sql_audit.export.failed": "エクスポートに失敗しました: {{detail}}",
"sql_audit.export.unavailable": "ブラウザーでエクスポートファイルを作成できません。",
"sql_audit.clear.title": "すべての SQL 監査記録を消去しますか?",
"sql_audit.clear.description": "ローカル監査履歴が完全に削除されます。この操作は元に戻せません。",
"sql_audit.clear.confirm": "すべての記録を消去",
"sql_audit.clear.success": "SQL 監査記録を消去しました",
"sql_audit.clear.failed": "SQL 監査記録を消去できません: {{detail}}",
"sql_audit.settings.title": "SQL 監査設定",
"sql_audit.settings.enabled.label": "SQL 監査を有効にする",
"sql_audit.settings.enabled.description": "新しい実行およびトランザクション証跡をローカル監査ストアに永続化します。",
"sql_audit.settings.capture_mode.label": "SQL 取得モード",
"sql_audit.settings.capture_mode.description": "プライバシー保護のため原文/完全 SQL 取得は提供されません。マスキング済み SQL 構造またはメタデータのみを選択できます。",
"sql_audit.settings.capture_mode.redacted": "マスキング済み SQL 構造",
"sql_audit.settings.capture_mode.metadata": "メタデータのみ",
"sql_audit.settings.retention_days.label": "保持期間(日)",
"sql_audit.settings.retention_days.description": "この期間を超えた記録はメンテナンス時に削除されます。",
"sql_audit.settings.max_records.label": "最大記録数",
"sql_audit.settings.max_records.description": "上限を超えると古い記録から削除されます。",
"sql_audit.settings.message.saved": "SQL 監査設定を保存しました",
"sql_audit.settings.message.save_failed": "SQL 監査設定を保存できません: {{detail}}",
"sql_audit.settings.error.load_or_save": "SQL 監査設定を確認してください",
"sql_audit.filter.time_from": "開始時刻",
"sql_audit.filter.time_to": "終了時刻",
"sql_audit.export.desktop_success": "{{filePath}} にエクスポートしました",
"sql_audit.detail.boundary_mode": "トランザクション境界",
"sql_audit.boundary_mode.driver_api": "ドライバー API",
"sql_audit.boundary_mode.text_sql": "SQL トランザクション文",
"sql_audit.boundary_mode.implicit": "暗黙的トランザクション",
"sql_audit.boundary_mode.unknown": "不明",
"sql_audit.source.tab_close": "タブを閉じる",
"sql_audit.source.app_shutdown": "アプリケーション終了",
"sql_audit.event_type.query_statement": "クエリ文",
"sql_audit.event_type.audit_gap": "監査ギャップマーカー",
"sql_audit.event_type.audit_settings_change": "監査設定の変更",
"sql_audit.event_type.audit_clear": "監査消去境界",
"sql_audit.health.checking.title": "監査書き込みの状態を確認中",
"sql_audit.health.checking.description": "状態レポートがまだ返されていないため、完全性に関する判断は行いません。",
"sql_audit.health.unavailable.title": "監査書き込みの状態を確認できません",
"sql_audit.health.unavailable.description": "状態の取得に失敗しました。これだけでは監査記録が完全か判断できません。更新して再試行してください。",
"sql_audit.health.disabled.title": "SQL 監査の取得は無効です",
"sql_audit.health.disabled.description": "新しいアプリケーション監査イベントは取得されません。既存の履歴は引き続き閲覧、検証、エクスポートできます。",
"sql_audit.health.healthy.title": "監査書き込みは正常です",
"sql_audit.health.healthy.description": "現在の書き込み処理は正常で、欠落イベントは報告されていません。これはパイプラインの状態であり、改ざん防止を保証するものではありません。",
"sql_audit.health.degraded.title": "監査書き込みが低下しています",
"sql_audit.health.degraded.description": "{{count}} 件の監査イベント欠落が記録され、監査履歴にギャップがあります。復旧までは完全な履歴として扱わないでください。",
"sql_audit.health.recovered.title": "監査書き込みが復旧しました",
"sql_audit.health.recovered.description": "以前に {{count}} 件の監査イベントが欠落しました。復旧後、そのギャップは audit_gap イベントで記録されています。",
"sql_audit.health.historical_gap.title": "書き込みは正常ですが、過去のギャップがあります",
"sql_audit.health.historical_gap.description": "{{count}} 件の欠落が記録されていますが、復旧後の audit_gap マーカーを時刻から確認できないため、本画面では記録済みとは判断しません。",
"sql_audit.health.capture_status": "取得状態",
"sql_audit.health.capture_enabled": "有効",
"sql_audit.health.capture_disabled": "無効",
"sql_audit.health.capture_unknown": "不明",
"sql_audit.health.capture_mode": "取得モード",
"sql_audit.health.first_failure": "最初の失敗",
"sql_audit.health.last_failure": "直近の失敗",
"sql_audit.health.last_success": "直近の成功",
"sql_audit.health.last_error": "直近の書き込みエラー",
"sql_audit.source.data_editor": "データエディター",
"sql_audit.source.table_designer": "テーブルデザイナー",
"sql_audit.source.object_editor": "オブジェクトエディター",
"sql_audit.source.message_publish": "メッセージ送信",
"sql_audit.source.ai_action": "AI 操作",
"sql_audit.source.data_import": "データインポート",
"sql_audit.source.audit_control": "監査制御",
"sql_audit.source.application_api": "アプリ内部操作"
}

View File

@@ -8255,5 +8255,176 @@
"result_diff.preview.legend.removed": "Только слева / удалено",
"result_diff.preview.legend.added": "Только справа / добавлено",
"result_diff.preview.legend.changed": "Поле изменено",
"result_diff.preview.gutter": "Diff"
"result_diff.preview.gutter": "Diff",
"app.tools.entry.sql_audit.title": "Центр аудита SQL",
"app.tools.entry.sql_audit.description": "Просмотр сохранённых операций с базой данных, хронологии транзакций и проверок целостности.",
"tab_manager.kind_badge.sql_audit": "Аудит",
"tab_manager.hover.kind.sql_audit": "Центр аудита SQL",
"sql_audit.workbench.tab_title": "Аудит SQL",
"sql_audit.workbench.title": "Центр аудита SQL",
"sql_audit.workbench.description": "Поиск сохранённых свидетельств встроенных операций редактора SQL, транзакций, импорта данных, SQL-файлов, синхронизации и объектов по всем подключениям.",
"sql_audit.rail.tooltip": "Открыть центр аудита SQL",
"sql_audit.rail.aria_label": "Открыть центр аудита SQL",
"sql_audit.privacy.title": "SQL в аудите по умолчанию обезличен",
"sql_audit.privacy.description": "Хранилище аудита сохраняет только обезличенную структуру SQL или метаданные без исходной/полной записи. SQL-файлы, импорт и синхронизация представлены сводками задач; источник обозначает вызванную точку входа функции.",
"sql_audit.action.verify": "Проверить целостность",
"sql_audit.action.export": "Экспорт",
"sql_audit.action.export_json": "Экспорт JSON",
"sql_audit.action.export_csv": "Экспорт CSV",
"sql_audit.action.settings": "Настройки аудита",
"sql_audit.action.clear": "Очистить записи",
"sql_audit.action.reset_filters": "Сбросить фильтры",
"sql_audit.action.view_detail": "Показать детали аудита",
"sql_audit.action.copy_json": "Копировать JSON",
"sql_audit.action.copy_sql": "Копировать SQL",
"sql_audit.filter.aria_label": "Фильтры аудита SQL",
"sql_audit.filter.search_placeholder": "Поиск по SQL, отпечатку, ID запроса или ошибке…",
"sql_audit.filter.search_aria_label": "Поиск записей аудита SQL",
"sql_audit.filter.connection": "Подключение",
"sql_audit.filter.database": "База данных",
"sql_audit.filter.db_type": "Тип базы данных",
"sql_audit.filter.event_type": "Тип события",
"sql_audit.filter.status": "Статус",
"sql_audit.filter.source": "Источник",
"sql_audit.filter.transaction_id": "ID транзакции",
"sql_audit.filter.time_range": "Период времени",
"sql_audit.summary.aria_label": "Сводка аудита SQL",
"sql_audit.summary.events": "События",
"sql_audit.summary.success": "Успешно",
"sql_audit.summary.errors": "Ошибки",
"sql_audit.summary.transactions": "Транзакции",
"sql_audit.table.aria_label": "Записи аудита SQL",
"sql_audit.column.time": "Время",
"sql_audit.column.status": "Статус",
"sql_audit.column.connection": "Подключение",
"sql_audit.column.database": "База данных",
"sql_audit.column.db_type": "Тип базы данных",
"sql_audit.column.event_type": "Событие",
"sql_audit.column.sql": "Свидетельство SQL",
"sql_audit.column.duration": "Длительность",
"sql_audit.column.rows": "Строки",
"sql_audit.column.source": "Источник",
"sql_audit.column.action": "Действие",
"sql_audit.empty.no_records": "Записей аудита SQL пока нет. После включения аудита здесь появятся новые интегрированные действия пользователя.",
"sql_audit.empty.no_matches": "Нет записей аудита, соответствующих текущим фильтрам.",
"sql_audit.error.load_failed": "Не удалось загрузить записи аудита SQL",
"sql_audit.pagination.total": "Записей: {{count}}",
"sql_audit.pagination.aria_label": "Постраничная навигация аудита SQL",
"sql_audit.event_type.query": "Запрос",
"sql_audit.event_type.transaction_begin": "Транзакция начата",
"sql_audit.event_type.transaction_statement": "Оператор транзакции",
"sql_audit.event_type.transaction_commit_requested": "Запрос фиксации",
"sql_audit.event_type.transaction_commit": "Транзакция зафиксирована",
"sql_audit.event_type.transaction_rollback_requested": "Запрос отката",
"sql_audit.event_type.transaction_rollback": "Транзакция отменена",
"sql_audit.event_type.transaction_auto_rollback": "Автоматический откат",
"sql_audit.status.success": "Успешно",
"sql_audit.status.error": "Ошибка",
"sql_audit.status.cancelled": "Отменено",
"sql_audit.source.query_editor": "Редактор запросов",
"sql_audit.source.sql_file": "SQL-файл",
"sql_audit.source.data_grid": "Таблица данных",
"sql_audit.source.sync": "Синхронизация данных",
"sql_audit.source.mcp": "MCP",
"sql_audit.source.system": "Система",
"sql_audit.detail.title": "Детали аудита SQL",
"sql_audit.detail.metadata": "Метаданные выполнения",
"sql_audit.detail.timeline": "Хронология транзакции",
"sql_audit.detail.timeline_partial": "Не удалось загрузить полную хронологию транзакции; выбранное событие всё ещё отображается.",
"sql_audit.detail.timeline_page_status": "Показано событий транзакции: {{loaded}} из {{total}}",
"sql_audit.detail.timeline_pagination_aria_label": "Навигация по страницам хронологии транзакции",
"sql_audit.detail.sql": "Записанный SQL",
"sql_audit.detail.no_sql": "Текст SQL для этого события не сохранён.",
"sql_audit.detail.redacted": "Обезличено",
"sql_audit.detail.error": "Ошибка выполнения",
"sql_audit.detail.commit_mode": "Режим фиксации",
"sql_audit.detail.query_id": "ID запроса",
"sql_audit.detail.transaction_id": "ID транзакции",
"sql_audit.detail.connection_fingerprint": "Отпечаток подключения",
"sql_audit.detail.sql_fingerprint": "Отпечаток SQL",
"sql_audit.detail.statement_position": "Позиция оператора",
"sql_audit.detail.statement_position_value": "Оператор {{current}} / {{total}}",
"sql_audit.detail.rows_affected": "Затронуто строк",
"sql_audit.detail.rows_returned": "Возвращено строк",
"sql_audit.detail.integrity": "Свидетельство целостности",
"sql_audit.detail.sequence": "Последовательность",
"sql_audit.detail.prev_hash": "Предыдущий хеш",
"sql_audit.detail.hash": "Хеш записи",
"sql_audit.message.sql_copied": "SQL скопирован",
"sql_audit.message.json_copied": "JSON аудита скопирован",
"sql_audit.message.copy_failed": "Не удалось скопировать в буфер обмена",
"sql_audit.integrity.valid": "Согласованность хеш-цепочки аудита подтверждена",
"sql_audit.integrity.valid_partial": "Согласованность сохранённой хеш-цепочки аудита подтверждена",
"sql_audit.integrity.invalid": "Проверка согласованности хеш-цепочки аудита не пройдена",
"sql_audit.integrity.verify_failed": "Не удалось проверить согласованность хеш-цепочки аудита",
"sql_audit.integrity.checked_records": "Проверено записей: {{count}}.",
"sql_audit.integrity.partial_chain": "Ранние записи префикса удалены политикой хранения, поэтому проверена только сохранённая часть цепочки.",
"sql_audit.integrity.weak_validation": "Проверяется только согласованность хеш-цепочки SHA-256 без ключа; это не доказывает отсутствие злонамеренной перезаписи записей.",
"sql_audit.export.success": "Экспортирован файл {{fileName}}",
"sql_audit.export.failed": "Ошибка экспорта: {{detail}}",
"sql_audit.export.unavailable": "Браузер не смог создать файл экспорта.",
"sql_audit.clear.title": "Очистить все записи аудита SQL?",
"sql_audit.clear.description": "Локальная история аудита будет удалена без возможности восстановления.",
"sql_audit.clear.confirm": "Очистить все записи",
"sql_audit.clear.success": "Записи аудита SQL очищены",
"sql_audit.clear.failed": "Не удалось очистить записи аудита SQL: {{detail}}",
"sql_audit.settings.title": "Настройки аудита SQL",
"sql_audit.settings.enabled.label": "Включить аудит SQL",
"sql_audit.settings.enabled.description": "Сохранять новые свидетельства выполнения и транзакций в локальном хранилище аудита.",
"sql_audit.settings.capture_mode.label": "Режим сбора SQL",
"sql_audit.settings.capture_mode.description": "Для защиты конфиденциальности исходная/полная запись SQL недоступна. Выберите обезличенную структуру SQL или только метаданные.",
"sql_audit.settings.capture_mode.redacted": "Обезличенная структура SQL",
"sql_audit.settings.capture_mode.metadata": "Только метаданные",
"sql_audit.settings.retention_days.label": "Срок хранения (дни)",
"sql_audit.settings.retention_days.description": "Более старые записи удаляются при обслуживании.",
"sql_audit.settings.max_records.label": "Максимум записей",
"sql_audit.settings.max_records.description": "При превышении лимита удаляются самые старые записи.",
"sql_audit.settings.message.saved": "Настройки аудита SQL сохранены",
"sql_audit.settings.message.save_failed": "Не удалось сохранить настройки аудита SQL: {{detail}}",
"sql_audit.settings.error.load_or_save": "Настройки аудита SQL требуют внимания",
"sql_audit.filter.time_from": "Время начала",
"sql_audit.filter.time_to": "Время окончания",
"sql_audit.export.desktop_success": "Экспортировано в {{filePath}}",
"sql_audit.detail.boundary_mode": "Граница транзакции",
"sql_audit.boundary_mode.driver_api": "API драйвера",
"sql_audit.boundary_mode.text_sql": "SQL-операторы транзакции",
"sql_audit.boundary_mode.implicit": "Неявная транзакция",
"sql_audit.boundary_mode.unknown": "Неизвестно",
"sql_audit.source.tab_close": "Закрытие вкладки",
"sql_audit.source.app_shutdown": "Завершение приложения",
"sql_audit.event_type.query_statement": "Оператор запроса",
"sql_audit.event_type.audit_gap": "Маркер пробела аудита",
"sql_audit.event_type.audit_settings_change": "Изменение настроек аудита",
"sql_audit.event_type.audit_clear": "Граница очистки аудита",
"sql_audit.health.checking.title": "Проверка состояния записи аудита",
"sql_audit.health.checking.description": "Отчёт о состоянии ещё не получен, поэтому вывод о полноте не делается.",
"sql_audit.health.unavailable.title": "Не удалось подтвердить состояние записи аудита",
"sql_audit.health.unavailable.description": "Запрос состояния завершился ошибкой. Это не позволяет судить о полноте записей аудита. Обновите страницу для повтора.",
"sql_audit.health.disabled.title": "Сбор SQL-аудита отключён",
"sql_audit.health.disabled.description": "Новые события аудита приложения не собираются. Существующие записи по-прежнему доступны для просмотра, проверки и экспорта.",
"sql_audit.health.healthy.title": "Запись аудита работает нормально",
"sql_audit.health.healthy.description": "Сейчас модуль записи сообщает нормальное состояние без потерянных событий. Это состояние конвейера, а не гарантия защиты от подмены.",
"sql_audit.health.degraded.title": "Запись аудита работает с ошибками",
"sql_audit.health.degraded.description": "Зафиксирована потеря {{count}} событий аудита, поэтому в истории есть пробел. До восстановления не считайте её полной.",
"sql_audit.health.recovered.title": "Запись аудита восстановлена",
"sql_audit.health.recovered.description": "Ранее было потеряно {{count}} событий аудита. После восстановления пробел отмечен событием audit_gap.",
"sql_audit.health.historical_gap.title": "Запись работает нормально, но есть исторический пробел",
"sql_audit.health.historical_gap.description": "Зафиксирована потеря {{count}} событий, но временные метки не подтверждают маркер audit_gap после сбоя, поэтому интерфейс не утверждает, что он записан.",
"sql_audit.health.capture_status": "Состояние сбора",
"sql_audit.health.capture_enabled": "Включён",
"sql_audit.health.capture_disabled": "Отключён",
"sql_audit.health.capture_unknown": "Неизвестно",
"sql_audit.health.capture_mode": "Режим сбора",
"sql_audit.health.first_failure": "Первая ошибка",
"sql_audit.health.last_failure": "Последняя ошибка",
"sql_audit.health.last_success": "Последняя успешная запись",
"sql_audit.health.last_error": "Последняя ошибка записи",
"sql_audit.source.data_editor": "Редактор данных",
"sql_audit.source.table_designer": "Конструктор таблиц",
"sql_audit.source.object_editor": "Редактор объектов",
"sql_audit.source.message_publish": "Публикация сообщения",
"sql_audit.source.ai_action": "Действие ИИ",
"sql_audit.source.data_import": "Импорт данных",
"sql_audit.source.audit_control": "Управление аудитом",
"sql_audit.source.application_api": "Внутреннее действие приложения"
}

View File

@@ -8255,5 +8255,176 @@
"result_diff.preview.legend.removed": "仅左/删除",
"result_diff.preview.legend.added": "仅右/新增",
"result_diff.preview.legend.changed": "字段变更",
"result_diff.preview.gutter": "差异"
"result_diff.preview.gutter": "差异",
"app.tools.entry.sql_audit.title": "SQL 审计中心",
"app.tools.entry.sql_audit.description": "查看持久化的数据库操作、事务时间线与完整性校验。",
"tab_manager.kind_badge.sql_audit": "审计",
"tab_manager.hover.kind.sql_audit": "SQL 审计中心",
"sql_audit.workbench.tab_title": "SQL 审计",
"sql_audit.workbench.title": "SQL 审计中心",
"sql_audit.workbench.description": "跨连接检索已接入的 SQL 编辑器、事务、数据编辑/导入、SQL 文件、同步及对象操作证据,并查看当前保留的事务时间线。",
"sql_audit.rail.tooltip": "打开 SQL 审计中心",
"sql_audit.rail.aria_label": "打开 SQL 审计中心",
"sql_audit.privacy.title": "审计 SQL 默认脱敏",
"sql_audit.privacy.description": "审计库仅保存脱敏 SQL 结构或元数据,不提供原文/完整采集SQL 文件、导入和同步仅记录任务摘要,来源字段表示调用的功能入口。",
"sql_audit.action.verify": "校验完整性",
"sql_audit.action.export": "导出",
"sql_audit.action.export_json": "导出 JSON",
"sql_audit.action.export_csv": "导出 CSV",
"sql_audit.action.settings": "审计设置",
"sql_audit.action.clear": "清空记录",
"sql_audit.action.reset_filters": "重置筛选",
"sql_audit.action.view_detail": "查看审计详情",
"sql_audit.action.copy_json": "复制 JSON",
"sql_audit.action.copy_sql": "复制 SQL",
"sql_audit.filter.aria_label": "SQL 审计筛选条件",
"sql_audit.filter.search_placeholder": "搜索 SQL、指纹、查询 ID 或错误…",
"sql_audit.filter.search_aria_label": "搜索 SQL 审计记录",
"sql_audit.filter.connection": "连接",
"sql_audit.filter.database": "数据库",
"sql_audit.filter.db_type": "数据库类型",
"sql_audit.filter.event_type": "事件类型",
"sql_audit.filter.status": "状态",
"sql_audit.filter.source": "来源",
"sql_audit.filter.transaction_id": "事务 ID",
"sql_audit.filter.time_range": "时间范围",
"sql_audit.summary.aria_label": "SQL 审计汇总",
"sql_audit.summary.events": "事件",
"sql_audit.summary.success": "成功",
"sql_audit.summary.errors": "错误",
"sql_audit.summary.transactions": "事务",
"sql_audit.table.aria_label": "SQL 审计记录",
"sql_audit.column.time": "时间",
"sql_audit.column.status": "状态",
"sql_audit.column.connection": "连接",
"sql_audit.column.database": "数据库",
"sql_audit.column.db_type": "数据库类型",
"sql_audit.column.event_type": "事件",
"sql_audit.column.sql": "SQL 证据",
"sql_audit.column.duration": "耗时",
"sql_audit.column.rows": "行数",
"sql_audit.column.source": "来源",
"sql_audit.column.action": "操作",
"sql_audit.empty.no_records": "暂无 SQL 审计记录。启用审计后,新的已接入用户操作会显示在这里。",
"sql_audit.empty.no_matches": "没有符合当前筛选条件的审计记录。",
"sql_audit.error.load_failed": "无法加载 SQL 审计记录",
"sql_audit.pagination.total": "共 {{count}} 条",
"sql_audit.pagination.aria_label": "SQL 审计分页",
"sql_audit.event_type.query": "查询",
"sql_audit.event_type.transaction_begin": "事务开始",
"sql_audit.event_type.transaction_statement": "事务语句",
"sql_audit.event_type.transaction_commit_requested": "提交请求",
"sql_audit.event_type.transaction_commit": "事务提交",
"sql_audit.event_type.transaction_rollback_requested": "回滚请求",
"sql_audit.event_type.transaction_rollback": "事务回滚",
"sql_audit.event_type.transaction_auto_rollback": "自动回滚",
"sql_audit.status.success": "成功",
"sql_audit.status.error": "错误",
"sql_audit.status.cancelled": "取消",
"sql_audit.source.query_editor": "查询编辑器",
"sql_audit.source.sql_file": "SQL 文件",
"sql_audit.source.data_grid": "数据表格",
"sql_audit.source.sync": "数据同步",
"sql_audit.source.mcp": "MCP",
"sql_audit.source.system": "系统",
"sql_audit.detail.title": "SQL 审计详情",
"sql_audit.detail.metadata": "执行元数据",
"sql_audit.detail.timeline": "事务时间线",
"sql_audit.detail.timeline_partial": "无法加载完整事务时间线,当前仍展示所选事件。",
"sql_audit.detail.timeline_page_status": "当前显示 {{loaded}} / 共 {{total}} 条事务事件",
"sql_audit.detail.timeline_pagination_aria_label": "事务时间线分页",
"sql_audit.detail.sql": "记录的 SQL",
"sql_audit.detail.no_sql": "该事件未保留 SQL 文本。",
"sql_audit.detail.redacted": "已脱敏",
"sql_audit.detail.error": "执行错误",
"sql_audit.detail.commit_mode": "提交模式",
"sql_audit.detail.query_id": "查询 ID",
"sql_audit.detail.transaction_id": "事务 ID",
"sql_audit.detail.connection_fingerprint": "连接指纹",
"sql_audit.detail.sql_fingerprint": "SQL 指纹",
"sql_audit.detail.statement_position": "语句位置",
"sql_audit.detail.statement_position_value": "第 {{current}} / {{total}} 条",
"sql_audit.detail.rows_affected": "影响行数",
"sql_audit.detail.rows_returned": "返回行数",
"sql_audit.detail.integrity": "完整性证据",
"sql_audit.detail.sequence": "序号",
"sql_audit.detail.prev_hash": "前一条哈希",
"sql_audit.detail.hash": "记录哈希",
"sql_audit.message.sql_copied": "SQL 已复制",
"sql_audit.message.json_copied": "审计 JSON 已复制",
"sql_audit.message.copy_failed": "无法复制到剪贴板",
"sql_audit.integrity.valid": "审计哈希链一致性校验通过",
"sql_audit.integrity.valid_partial": "保留区间的审计哈希链一致性校验通过",
"sql_audit.integrity.invalid": "审计哈希链一致性校验失败",
"sql_audit.integrity.verify_failed": "无法校验审计哈希链一致性",
"sql_audit.integrity.checked_records": "已校验 {{count}} 条记录。",
"sql_audit.integrity.partial_chain": "受保留策略影响,较早的前缀记录已删除,本次仅校验当前保留的部分链。",
"sql_audit.integrity.weak_validation": "该校验仅检查无密钥 SHA-256 哈希链一致性,不能证明记录未被恶意篡改。",
"sql_audit.export.success": "已导出 {{fileName}}",
"sql_audit.export.failed": "导出失败:{{detail}}",
"sql_audit.export.unavailable": "当前浏览器无法创建导出文件。",
"sql_audit.clear.title": "清空全部 SQL 审计记录?",
"sql_audit.clear.description": "这会永久删除本地审计历史,且无法撤销。",
"sql_audit.clear.confirm": "清空全部记录",
"sql_audit.clear.success": "SQL 审计记录已清空",
"sql_audit.clear.failed": "无法清空 SQL 审计记录:{{detail}}",
"sql_audit.settings.title": "SQL 审计设置",
"sql_audit.settings.enabled.label": "启用 SQL 审计",
"sql_audit.settings.enabled.description": "将新的执行与事务证据持久化到本地审计库。",
"sql_audit.settings.capture_mode.label": "SQL 采集模式",
"sql_audit.settings.capture_mode.description": "为保护隐私,不提供原文/完整 SQL 采集;可选择脱敏 SQL 结构或仅元数据。",
"sql_audit.settings.capture_mode.redacted": "脱敏 SQL 结构",
"sql_audit.settings.capture_mode.metadata": "仅元数据",
"sql_audit.settings.retention_days.label": "保留天数",
"sql_audit.settings.retention_days.description": "维护时会删除超过该期限的记录。",
"sql_audit.settings.max_records.label": "最大记录数",
"sql_audit.settings.max_records.description": "超过上限后会优先删除最旧记录。",
"sql_audit.settings.message.saved": "SQL 审计设置已保存",
"sql_audit.settings.message.save_failed": "无法保存 SQL 审计设置:{{detail}}",
"sql_audit.settings.error.load_or_save": "SQL 审计设置需要处理",
"sql_audit.filter.time_from": "开始时间",
"sql_audit.filter.time_to": "结束时间",
"sql_audit.export.desktop_success": "已导出到 {{filePath}}",
"sql_audit.detail.boundary_mode": "事务边界",
"sql_audit.boundary_mode.driver_api": "驱动 API",
"sql_audit.boundary_mode.text_sql": "文本事务语句",
"sql_audit.boundary_mode.implicit": "隐式事务",
"sql_audit.boundary_mode.unknown": "未知",
"sql_audit.source.tab_close": "关闭标签页",
"sql_audit.source.app_shutdown": "应用退出",
"sql_audit.event_type.query_statement": "查询语句",
"sql_audit.event_type.audit_gap": "审计空洞标记",
"sql_audit.event_type.audit_settings_change": "审计设置变更",
"sql_audit.event_type.audit_clear": "审计清理边界",
"sql_audit.health.checking.title": "正在检查审计写入状态",
"sql_audit.health.checking.description": "健康状态尚未返回,当前不作完整性判断。",
"sql_audit.health.unavailable.title": "无法确认审计写入状态",
"sql_audit.health.unavailable.description": "健康状态请求失败,不能据此判断审计记录是否完整。请使用刷新重试。",
"sql_audit.health.disabled.title": "SQL 审计采集已禁用",
"sql_audit.health.disabled.description": "当前不会采集新的应用审计事件;已有历史记录仍可浏览、校验和导出。",
"sql_audit.health.healthy.title": "审计写入正常",
"sql_audit.health.healthy.description": "当前写入器报告正常且未记录丢失事件;这只是写入管道状态,不代表具备防篡改能力。",
"sql_audit.health.degraded.title": "审计写入已降级",
"sql_audit.health.degraded.description": "已记录丢失 {{count}} 条审计事件,审计历史存在空洞。恢复前请勿将该历史视为完整。",
"sql_audit.health.recovered.title": "审计写入已恢复",
"sql_audit.health.recovered.description": "此前丢失 {{count}} 条审计事件;恢复后已用 audit_gap 事件标记该空洞。",
"sql_audit.health.historical_gap.title": "当前写入正常,但存在历史空洞",
"sql_audit.health.historical_gap.description": "已记录丢失 {{count}} 条事件,但时间戳不足以确认恢复后的 audit_gap 标记,本界面不会推断其已补记。",
"sql_audit.health.capture_status": "采集状态",
"sql_audit.health.capture_enabled": "已启用",
"sql_audit.health.capture_disabled": "已禁用",
"sql_audit.health.capture_unknown": "未知",
"sql_audit.health.capture_mode": "采集模式",
"sql_audit.health.first_failure": "首次失败",
"sql_audit.health.last_failure": "最近失败",
"sql_audit.health.last_success": "最近成功",
"sql_audit.health.last_error": "最近写入错误",
"sql_audit.source.data_editor": "数据编辑器",
"sql_audit.source.table_designer": "表设计器",
"sql_audit.source.object_editor": "对象编辑器",
"sql_audit.source.message_publish": "消息发布",
"sql_audit.source.ai_action": "AI 操作",
"sql_audit.source.data_import": "数据导入",
"sql_audit.source.audit_control": "审计控制",
"sql_audit.source.application_api": "应用内部操作"
}

View File

@@ -8255,5 +8255,176 @@
"result_diff.preview.legend.removed": "僅左/刪除",
"result_diff.preview.legend.added": "僅右/新增",
"result_diff.preview.legend.changed": "欄位變更",
"result_diff.preview.gutter": "差異"
"result_diff.preview.gutter": "差異",
"app.tools.entry.sql_audit.title": "SQL 稽核中心",
"app.tools.entry.sql_audit.description": "檢視持久化的資料庫操作、交易時間線與完整性驗證。",
"tab_manager.kind_badge.sql_audit": "稽核",
"tab_manager.hover.kind.sql_audit": "SQL 稽核中心",
"sql_audit.workbench.tab_title": "SQL 稽核",
"sql_audit.workbench.title": "SQL 稽核中心",
"sql_audit.workbench.description": "跨連線搜尋已接入的 SQL 編輯器、交易、資料編輯/匯入、SQL 檔案、同步及物件操作證據,並檢視目前保留的交易時間線。",
"sql_audit.rail.tooltip": "開啟 SQL 稽核中心",
"sql_audit.rail.aria_label": "開啟 SQL 稽核中心",
"sql_audit.privacy.title": "稽核 SQL 預設脫敏",
"sql_audit.privacy.description": "稽核庫僅儲存脫敏 SQL 結構或中繼資料,不提供原文/完整擷取SQL 檔案、匯入與同步只記錄工作摘要,來源欄位表示呼叫的功能入口。",
"sql_audit.action.verify": "驗證完整性",
"sql_audit.action.export": "匯出",
"sql_audit.action.export_json": "匯出 JSON",
"sql_audit.action.export_csv": "匯出 CSV",
"sql_audit.action.settings": "稽核設定",
"sql_audit.action.clear": "清除記錄",
"sql_audit.action.reset_filters": "重設篩選",
"sql_audit.action.view_detail": "檢視稽核詳細資料",
"sql_audit.action.copy_json": "複製 JSON",
"sql_audit.action.copy_sql": "複製 SQL",
"sql_audit.filter.aria_label": "SQL 稽核篩選條件",
"sql_audit.filter.search_placeholder": "搜尋 SQL、指紋、查詢 ID 或錯誤…",
"sql_audit.filter.search_aria_label": "搜尋 SQL 稽核記錄",
"sql_audit.filter.connection": "連線",
"sql_audit.filter.database": "資料庫",
"sql_audit.filter.db_type": "資料庫類型",
"sql_audit.filter.event_type": "事件類型",
"sql_audit.filter.status": "狀態",
"sql_audit.filter.source": "來源",
"sql_audit.filter.transaction_id": "交易 ID",
"sql_audit.filter.time_range": "時間範圍",
"sql_audit.summary.aria_label": "SQL 稽核摘要",
"sql_audit.summary.events": "事件",
"sql_audit.summary.success": "成功",
"sql_audit.summary.errors": "錯誤",
"sql_audit.summary.transactions": "交易",
"sql_audit.table.aria_label": "SQL 稽核記錄",
"sql_audit.column.time": "時間",
"sql_audit.column.status": "狀態",
"sql_audit.column.connection": "連線",
"sql_audit.column.database": "資料庫",
"sql_audit.column.db_type": "資料庫類型",
"sql_audit.column.event_type": "事件",
"sql_audit.column.sql": "SQL 證據",
"sql_audit.column.duration": "耗時",
"sql_audit.column.rows": "資料列",
"sql_audit.column.source": "來源",
"sql_audit.column.action": "操作",
"sql_audit.empty.no_records": "目前沒有 SQL 稽核記錄。啟用稽核後,新的已接入使用者操作會顯示在這裡。",
"sql_audit.empty.no_matches": "沒有符合目前篩選條件的稽核記錄。",
"sql_audit.error.load_failed": "無法載入 SQL 稽核記錄",
"sql_audit.pagination.total": "共 {{count}} 筆",
"sql_audit.pagination.aria_label": "SQL 稽核分頁",
"sql_audit.event_type.query": "查詢",
"sql_audit.event_type.transaction_begin": "交易開始",
"sql_audit.event_type.transaction_statement": "交易陳述式",
"sql_audit.event_type.transaction_commit_requested": "提交請求",
"sql_audit.event_type.transaction_commit": "交易提交",
"sql_audit.event_type.transaction_rollback_requested": "回復請求",
"sql_audit.event_type.transaction_rollback": "交易回復",
"sql_audit.event_type.transaction_auto_rollback": "自動回復",
"sql_audit.status.success": "成功",
"sql_audit.status.error": "錯誤",
"sql_audit.status.cancelled": "取消",
"sql_audit.source.query_editor": "查詢編輯器",
"sql_audit.source.sql_file": "SQL 檔案",
"sql_audit.source.data_grid": "資料表格",
"sql_audit.source.sync": "資料同步",
"sql_audit.source.mcp": "MCP",
"sql_audit.source.system": "系統",
"sql_audit.detail.title": "SQL 稽核詳細資料",
"sql_audit.detail.metadata": "執行中繼資料",
"sql_audit.detail.timeline": "交易時間線",
"sql_audit.detail.timeline_partial": "無法載入完整交易時間線,目前仍顯示所選事件。",
"sql_audit.detail.timeline_page_status": "目前顯示 {{loaded}} / 共 {{total}} 筆交易事件",
"sql_audit.detail.timeline_pagination_aria_label": "交易時間線分頁",
"sql_audit.detail.sql": "記錄的 SQL",
"sql_audit.detail.no_sql": "此事件未保留 SQL 文字。",
"sql_audit.detail.redacted": "已脫敏",
"sql_audit.detail.error": "執行錯誤",
"sql_audit.detail.commit_mode": "提交模式",
"sql_audit.detail.query_id": "查詢 ID",
"sql_audit.detail.transaction_id": "交易 ID",
"sql_audit.detail.connection_fingerprint": "連線指紋",
"sql_audit.detail.sql_fingerprint": "SQL 指紋",
"sql_audit.detail.statement_position": "陳述式位置",
"sql_audit.detail.statement_position_value": "第 {{current}} / {{total}} 筆",
"sql_audit.detail.rows_affected": "受影響資料列",
"sql_audit.detail.rows_returned": "傳回資料列",
"sql_audit.detail.integrity": "完整性證據",
"sql_audit.detail.sequence": "序號",
"sql_audit.detail.prev_hash": "前一筆雜湊",
"sql_audit.detail.hash": "記錄雜湊",
"sql_audit.message.sql_copied": "已複製 SQL",
"sql_audit.message.json_copied": "已複製稽核 JSON",
"sql_audit.message.copy_failed": "無法複製到剪貼簿",
"sql_audit.integrity.valid": "稽核雜湊鏈一致性驗證通過",
"sql_audit.integrity.valid_partial": "保留區間的稽核雜湊鏈一致性驗證通過",
"sql_audit.integrity.invalid": "稽核雜湊鏈一致性驗證失敗",
"sql_audit.integrity.verify_failed": "無法驗證稽核雜湊鏈一致性",
"sql_audit.integrity.checked_records": "已驗證 {{count}} 筆記錄。",
"sql_audit.integrity.partial_chain": "受保留策略影響,較早的前綴記錄已刪除,本次僅驗證目前保留的部分鏈。",
"sql_audit.integrity.weak_validation": "此驗證僅檢查無金鑰 SHA-256 雜湊鏈一致性,無法證明記錄未遭惡意竄改。",
"sql_audit.export.success": "已匯出 {{fileName}}",
"sql_audit.export.failed": "匯出失敗:{{detail}}",
"sql_audit.export.unavailable": "目前瀏覽器無法建立匯出檔案。",
"sql_audit.clear.title": "清除全部 SQL 稽核記錄?",
"sql_audit.clear.description": "這會永久刪除本機稽核歷程,且無法復原。",
"sql_audit.clear.confirm": "清除全部記錄",
"sql_audit.clear.success": "SQL 稽核記錄已清除",
"sql_audit.clear.failed": "無法清除 SQL 稽核記錄:{{detail}}",
"sql_audit.settings.title": "SQL 稽核設定",
"sql_audit.settings.enabled.label": "啟用 SQL 稽核",
"sql_audit.settings.enabled.description": "將新的執行與交易證據持久化到本機稽核庫。",
"sql_audit.settings.capture_mode.label": "SQL 擷取模式",
"sql_audit.settings.capture_mode.description": "為保護隱私,不提供原文/完整 SQL 擷取;可選擇脫敏 SQL 結構或僅中繼資料。",
"sql_audit.settings.capture_mode.redacted": "脫敏 SQL 結構",
"sql_audit.settings.capture_mode.metadata": "僅中繼資料",
"sql_audit.settings.retention_days.label": "保留天數",
"sql_audit.settings.retention_days.description": "維護時會刪除超過此期限的記錄。",
"sql_audit.settings.max_records.label": "最大記錄數",
"sql_audit.settings.max_records.description": "超過上限後會優先刪除最舊記錄。",
"sql_audit.settings.message.saved": "SQL 稽核設定已儲存",
"sql_audit.settings.message.save_failed": "無法儲存 SQL 稽核設定:{{detail}}",
"sql_audit.settings.error.load_or_save": "SQL 稽核設定需要處理",
"sql_audit.filter.time_from": "開始時間",
"sql_audit.filter.time_to": "結束時間",
"sql_audit.export.desktop_success": "已匯出至 {{filePath}}",
"sql_audit.detail.boundary_mode": "交易邊界",
"sql_audit.boundary_mode.driver_api": "驅動程式 API",
"sql_audit.boundary_mode.text_sql": "文字交易陳述式",
"sql_audit.boundary_mode.implicit": "隱式交易",
"sql_audit.boundary_mode.unknown": "未知",
"sql_audit.source.tab_close": "關閉分頁",
"sql_audit.source.app_shutdown": "應用程式結束",
"sql_audit.event_type.query_statement": "查詢陳述式",
"sql_audit.event_type.audit_gap": "稽核空洞標記",
"sql_audit.event_type.audit_settings_change": "稽核設定變更",
"sql_audit.event_type.audit_clear": "稽核清理邊界",
"sql_audit.health.checking.title": "正在檢查稽核寫入狀態",
"sql_audit.health.checking.description": "健康狀態尚未回傳,目前不作完整性判斷。",
"sql_audit.health.unavailable.title": "無法確認稽核寫入狀態",
"sql_audit.health.unavailable.description": "健康狀態請求失敗,無法據此判斷稽核記錄是否完整。請使用重新整理重試。",
"sql_audit.health.disabled.title": "SQL 稽核擷取已停用",
"sql_audit.health.disabled.description": "目前不會擷取新的應用程式稽核事件;既有歷史記錄仍可瀏覽、驗證及匯出。",
"sql_audit.health.healthy.title": "稽核寫入正常",
"sql_audit.health.healthy.description": "目前寫入器回報正常且未記錄遺失事件;這僅是寫入管線狀態,不代表具備防竄改能力。",
"sql_audit.health.degraded.title": "稽核寫入已降級",
"sql_audit.health.degraded.description": "已記錄遺失 {{count}} 筆稽核事件,稽核歷程存在空洞。恢復前請勿將該歷程視為完整。",
"sql_audit.health.recovered.title": "稽核寫入已恢復",
"sql_audit.health.recovered.description": "先前遺失 {{count}} 筆稽核事件;恢復後已用 audit_gap 事件標記該空洞。",
"sql_audit.health.historical_gap.title": "目前寫入正常,但存在歷史空洞",
"sql_audit.health.historical_gap.description": "已記錄遺失 {{count}} 筆事件,但時間戳不足以確認恢復後的 audit_gap 標記,本介面不會推斷其已補記。",
"sql_audit.health.capture_status": "擷取狀態",
"sql_audit.health.capture_enabled": "已啟用",
"sql_audit.health.capture_disabled": "已停用",
"sql_audit.health.capture_unknown": "未知",
"sql_audit.health.capture_mode": "擷取模式",
"sql_audit.health.first_failure": "首次失敗",
"sql_audit.health.last_failure": "最近失敗",
"sql_audit.health.last_success": "最近成功",
"sql_audit.health.last_error": "最近寫入錯誤",
"sql_audit.source.data_editor": "資料編輯器",
"sql_audit.source.table_designer": "資料表設計器",
"sql_audit.source.object_editor": "物件編輯器",
"sql_audit.source.message_publish": "訊息發佈",
"sql_audit.source.ai_action": "AI 操作",
"sql_audit.source.data_import": "資料匯入",
"sql_audit.source.audit_control": "稽核控制",
"sql_audit.source.application_api": "應用程式內部操作"
}