mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-06-28 17:31:32 +08:00
✨ feat(i18n): 完善多模块多语言适配与发版验证
扩展前后端多语言文案与共享词典。增加多模块 i18n 回归测试与 guard。收口外部 SQL 菜单和弹窗多语言文案。
This commit is contained in:
@@ -470,6 +470,35 @@
|
||||
"app.theme.ui_version.legacy.description": "Die aktuelle stabile Oberfläche, in der alle Funktionen vollständig verfügbar sind.",
|
||||
"app.theme.ui_version.legacy.label": "Alte UI",
|
||||
"app.theme.ui_version.platform_hint": "Windows, macOS und Linux können alle wechseln. Änderungen werden sofort wirksam; einige Modals verwenden den neuen Stil beim nächsten Öffnen.",
|
||||
"app.theme.ui_version.sidebar_search.command": "Neue Befehlssuche",
|
||||
"app.theme.ui_version.sidebar_search.filter": "Alter Seitenleistenfilter",
|
||||
"app.theme.ui_version.sidebar_search.hint": "Die neue Befehlssuche eignet sich zum Wechseln zu Verbindungen, Tabellen und Aktionen. Aktivieren Sie die Synchronisierung im Panel, um den linken Baum fortlaufend zu filtern; der alte Seitenleistenfilter zeigt das Eingabefeld direkt an und behält den Filtertext bei.",
|
||||
"app.theme.ui_version.sidebar_search.title": "Neuer Suchmodus der linken Seitenleiste",
|
||||
"app.theme.tab_display.title": "Tab-Beschriftung",
|
||||
"app.theme.tab_display.description": "Passe die Anzeigereihenfolge von Verbindungsname, Objekttyp, Objektname, Datenbank, Schema und Host/IP an. Im zweizeiligen Modus kann Kontext in die Nebenzeile gelegt werden.",
|
||||
"app.theme.tab_display.layout.single": "Einzeilig",
|
||||
"app.theme.tab_display.layout.double": "Zweizeilig",
|
||||
"app.theme.tab_display.badge.current": "Aktuell",
|
||||
"app.theme.tab_display.row.primary": "Hauptzeile",
|
||||
"app.theme.tab_display.row.secondary": "Nebenzeile",
|
||||
"app.theme.tab_display.action.move_up": "Nach oben",
|
||||
"app.theme.tab_display.action.move_down": "Nach unten",
|
||||
"app.theme.tab_display.preview.prefix": "Aktuelle Vorschau: ",
|
||||
"app.theme.tab_display.preview.default_label": "Standardbeschriftung",
|
||||
"app.theme.tab_display.preview.secondary": ", Nebenzeile {{labels}}",
|
||||
"app.theme.tab_display.preview.focused": "; aktuell ausgewählt {{label}}",
|
||||
"app.theme.tab_display.element.connection.label": "Verbindung",
|
||||
"app.theme.tab_display.element.connection.description": "Verbindungsalias oder Umgebungsname, zum Beispiel DEV",
|
||||
"app.theme.tab_display.element.kind.label": "Objekttyp",
|
||||
"app.theme.tab_display.element.kind.description": "Typkennzeichen wie SQL / TABLE / VIEW",
|
||||
"app.theme.tab_display.element.object.label": "Objektname",
|
||||
"app.theme.tab_display.element.object.description": "Kernnamen wie Tabellen-, Abfrage- oder Ressourcennamen",
|
||||
"app.theme.tab_display.element.database.label": "Datenbank",
|
||||
"app.theme.tab_display.element.database.description": "Aktueller DB- / catalog-Name",
|
||||
"app.theme.tab_display.element.schema.label": "Schema",
|
||||
"app.theme.tab_display.element.schema.description": "schema / owner-Präfix",
|
||||
"app.theme.tab_display.element.host.label": "Host/IP",
|
||||
"app.theme.tab_display.element.host.description": "Zusammenfassung der Zieladresse der Verbindung",
|
||||
"app.theme.ui_version.title": "Oberflächenversion",
|
||||
"app.theme.ui_version.v2.badge": "Beta",
|
||||
"app.theme.ui_version.v2.description": "Eine neu gestaltete kompakte Oberfläche mit stärkerem AI-Einstieg und Tabellenübersicht.",
|
||||
@@ -493,6 +522,10 @@
|
||||
"app.window_zoom.message.windows_only": "Diese Funktion ist nur unter Windows verfügbar",
|
||||
"app.tools.entry.shortcuts.description": "Globale Tastenkürzelbindungen anzeigen und anpassen.",
|
||||
"app.tools.entry.shortcuts.title": "Tastenkürzelverwaltung",
|
||||
"app.tools.entry.schema_compare.description": "Vergleicht Strukturunterschiede zwischen Quell- und Zieltabellen, nur als Vorschau ohne Ausführung.",
|
||||
"app.tools.entry.schema_compare.title": "Schemavergleich",
|
||||
"app.tools.entry.data_compare.description": "Analysiert eingefügte, aktualisierte, gelöschte und unveränderte Zeilen anhand des Primärschlüssels.",
|
||||
"app.tools.entry.data_compare.title": "Datenvergleich",
|
||||
"app.tools.entry.sync.description": "Workflow für quellenübergreifende Synchronisierung öffnen.",
|
||||
"app.tools.entry.sync.title": "Datensynchronisierung",
|
||||
"app.tools.title": "Toolcenter",
|
||||
@@ -527,6 +560,18 @@
|
||||
"app.browser_mock.export_sql_unsupported": "Browser-Mock unterstützt den Export von SQL-Dateien nicht",
|
||||
"app.browser_mock.import_connection_package_unsupported": "Browser-Mock unterstützt den Import von Wiederherstellungspaketen nicht; nur historische JSON-Verbindungsarrays werden unterstützt",
|
||||
"app.browser_mock.export_connection_package_unsupported": "Browser-Mock unterstützt den Export von Wiederherstellungspaketen nicht",
|
||||
"app.browser_mock.mcp_http.not_running": "Der GoNavi MCP HTTP-Dienst läuft nicht",
|
||||
"app.browser_mock.mcp_http.started": "Der GoNavi MCP HTTP-Dienst wurde gestartet",
|
||||
"app.browser_mock.mcp_http.stopped": "Der GoNavi MCP HTTP-Dienst wurde gestoppt",
|
||||
"app.browser_mock.mcp_server.command_required": "MCP-Befehl darf nicht leer sein",
|
||||
"app.browser_mock.mcp_server.test_success": "MCP-mock-Test erfolgreich",
|
||||
"app.browser_mock.mcp_tool.unavailable": "Browser-Mock ist nicht mit einem echten MCP-Dienst verbunden",
|
||||
"app.browser_mock.mcp_client.claude_code.installed": "Die MCP-Konfiguration auf Benutzerebene für Claude Code wurde geschrieben. Starten Sie Claude CLI neu; GoNavi erscheint dann unter User MCPs in /mcp.",
|
||||
"app.browser_mock.mcp_client.claude_code.not_detected": "Keine GoNavi MCP-Konfiguration auf Benutzerebene für Claude Code erkannt",
|
||||
"app.browser_mock.mcp_client.codex.installed": "Die MCP-Konfiguration auf Benutzerebene für Codex wurde geschrieben. Starten Sie Codex CLI oder die Desktop-App neu, um GoNavi zu sehen.",
|
||||
"app.browser_mock.mcp_client.codex.path_mismatch": "In Codex wurde ein GoNavi MCP-Eintrag erkannt, der nicht zum aktuellen GoNavi-Installationspfad passt. Eine Aktualisierung wird empfohlen.",
|
||||
"app.browser_mock.provider.test_failed_detail": "Verbindungstest fehlgeschlagen: {{detail}}",
|
||||
"app.browser_mock.provider.test_success": "Endpunkt-Verbindungstest erfolgreich",
|
||||
"app.update.action.hide_to_background": "In den Hintergrund ausblenden",
|
||||
"app.update.action.install_update": "Update installieren",
|
||||
"app.update.action.open_install_directory": "Installationsverzeichnis öffnen",
|
||||
@@ -596,7 +641,66 @@
|
||||
"query.new": "Neue Abfrage",
|
||||
"query.run": "Ausführen",
|
||||
"query.save": "Abfrage speichern",
|
||||
"saved_query.default_name": "Abfrage {{index}}",
|
||||
"query.stop": "Stoppen",
|
||||
"message_publish_modal.title": "Nachricht testweise senden",
|
||||
"message_publish_modal.title_with_connection": "Nachricht testweise senden · {{connectionName}}",
|
||||
"message_publish_modal.action.send": "Senden",
|
||||
"message_publish_modal.error.build_command_failed": "Sende-Befehl konnte nicht erstellt werden",
|
||||
"message_publish_modal.error.send_failed_detail": "Senden fehlgeschlagen: {{detail}}",
|
||||
"message_publish_modal.error.unknown_error": "Unbekannter Fehler",
|
||||
"message_publish_modal.field.exchange.label": "Exchange (optional)",
|
||||
"message_publish_modal.field.exchange.extra": "Leer lassen, um den Standard-Exchange zu verwenden. Wenn Sie einen eigenen Exchange eingeben, stellen Sie sicher, dass die Ziel-Queue ein binding hat.",
|
||||
"message_publish_modal.field.exchange.placeholder": "Beispiel: events.topic",
|
||||
"message_publish_modal.field.routing_key.label": "Routing Key (optional)",
|
||||
"message_publish_modal.field.routing_key.extra": "Leer lassen, um standardmäßig den aktuellen Queue-Namen zu verwenden.",
|
||||
"message_publish_modal.field.routing_key.placeholder": "Beispiel: orders.queue",
|
||||
"message_publish_modal.field.qos.extra": "0 ist at most once, 1 ist at least once und 2 ist exactly once.",
|
||||
"message_publish_modal.field.retain.label": "Retain-Nachricht",
|
||||
"message_publish_modal.field.tag.label": "Tag (optional)",
|
||||
"message_publish_modal.field.tag.extra": "Leer lassen, um nicht nach Tag zu filtern oder keinen Tag zu schreiben.",
|
||||
"message_publish_modal.field.delay_level.label": "Delay Level (optional)",
|
||||
"message_publish_modal.field.delay_level.extra": "RocketMQ verwendet feste Verzögerungsstufen. 0 sendet sofort.",
|
||||
"message_publish_modal.field.body_mode.label": "Nachrichtentext-Typ",
|
||||
"message_publish_modal.field.body.label": "Nachrichtentext",
|
||||
"message_publish_modal.field.body.required": "Nachrichtentext eingeben",
|
||||
"message_publish_modal.field.body.extra": "Im JSON-Modus ist gültiges JSON erforderlich. Der Textmodus sendet den Inhalt unverändert.",
|
||||
"message_publish_modal.field.body.placeholder": "Nachrichtentext eingeben",
|
||||
"message_publish_modal.field.headers.label": "Headers (optional)",
|
||||
"message_publish_modal.field.headers.extra": "Muss ein JSON-Objekt sein, zum Beispiel {{example}}.",
|
||||
"message_publish_modal.field.properties.label": "Properties (optional)",
|
||||
"message_publish_modal.field.properties.extra": "Muss ein JSON-Objekt sein, zum Beispiel {{example}}.",
|
||||
"message_publish_modal.option.no_delay": "Keine Verzögerung",
|
||||
"message_publish_modal.option.text": "Text",
|
||||
"message_publish_modal.footer.success_prefix": "Nach erfolgreichem Senden wird",
|
||||
"message_publish_modal.footer.success_suffix": " zurückgegeben, um zu bestätigen, ob diese Testnachricht übermittelt wurde.",
|
||||
"message_publish.field.body": "Nachrichtentext",
|
||||
"message_publish.field.message_key": "Nachrichten-Key",
|
||||
"message_publish.error.destination_required": "Ziel-Topic / Queue eingeben",
|
||||
"message_publish.error.required_field": "{{field}} ist erforderlich",
|
||||
"message_publish.error.invalid_json_detail": "{{field}} ist kein gültiges JSON: {{detail}}",
|
||||
"message_publish.error.json_object_required": "{{field}} muss ein JSON-Objekt sein",
|
||||
"message_publish.error.mqtt_wildcard_topic": "MQTT publish Topic darf keine Platzhalter + oder # enthalten",
|
||||
"message_publish.error.unsupported_type": "Die aktuelle Datenquelle unterstützt das Testen des Nachrichtenversands nicht: {{type}}",
|
||||
"message_publish.presentation.rabbitmq.destination_placeholder": "Beispiel: orders.queue",
|
||||
"message_publish.presentation.rabbitmq.destination_required": "Queue eingeben",
|
||||
"message_publish.presentation.rabbitmq.alert": "Dieses Formular erstellt automatisch einen RabbitMQ publish JSON-Befehl und sendet eine Testnachricht über die Management API.",
|
||||
"message_publish.presentation.rabbitmq.success_hint": "Wenn Exchange leer ist, wird der Standard-Exchange verwendet und der Queue-Name als routing key genutzt.",
|
||||
"message_publish.presentation.rocketmq.destination_placeholder": "Beispiel: orders.events",
|
||||
"message_publish.presentation.topic_required": "Topic eingeben",
|
||||
"message_publish.presentation.rocketmq.alert": "Dieses Formular erstellt automatisch einen RocketMQ publish JSON-Befehl und sendet eine Testnachricht über NameServer/Broker.",
|
||||
"message_publish.presentation.rocketmq.success_hint": "Tag, Keys, Delay Level und Properties werden in die RocketMQ-Nachrichtenattribute geschrieben.",
|
||||
"message_publish.presentation.keys_label": "Nachrichten-Keys (optional)",
|
||||
"message_publish.presentation.rocketmq.key_placeholder": "Mehrere Key-Werte durch Kommas getrennt eingeben",
|
||||
"message_publish.presentation.rocketmq.tag_placeholder": "Beispiel: TagA",
|
||||
"message_publish.presentation.mqtt.destination_placeholder": "Beispiel: devices/device-001/telemetry",
|
||||
"message_publish.presentation.mqtt.alert": "Dieses Formular erstellt automatisch einen MQTT publish JSON-Befehl und sendet eine Testnachricht direkt über den broker.",
|
||||
"message_publish.presentation.mqtt.success_hint": "QoS und retain können separat angegeben werden. Leere Felder verwenden die Standardwerte der aktuellen Verbindung.",
|
||||
"message_publish.presentation.kafka.destination_placeholder": "Beispiel: orders.events",
|
||||
"message_publish.presentation.kafka.alert": "Dieses Formular erstellt automatisch einen Kafka publish JSON-Befehl und ruft das Backend für eine Testsendung auf.",
|
||||
"message_publish.presentation.kafka.success_hint": "Headers werden als Kafka Record Headers mitgesendet.",
|
||||
"message_publish.presentation.key_label": "Nachrichten-Key (optional)",
|
||||
"message_publish.presentation.kafka.key_placeholder": "Optional. Im JSON-Modus eine gültige JSON-Zeile eingeben.",
|
||||
"connection_modal.action.browse": "Durchsuchen...",
|
||||
"connection_modal.action.disable": "Deaktivieren",
|
||||
"connection_modal.action.discover_members": "Mitglieder erkennen",
|
||||
@@ -644,6 +748,7 @@
|
||||
"connection_modal.field.tunnel_password_optional": "HTTP Tunnel-Passwort (optional)",
|
||||
"connection_modal.field.tunnel_username_optional": "HTTP Tunnel-Benutzername (optional)",
|
||||
"connection_modal.field.username": "Benutzername",
|
||||
"connection_modal.field.username.optional_placeholder": "Leer lassen, wenn keine Authentifizierung aktiviert ist",
|
||||
"connection_modal.help.additional_hosts": "Optionale MongoDB-Mitglieder, getrennt durch Komma, Semikolon oder Leerzeichen.",
|
||||
"connection_modal.help.additional_srv_hosts": "Optionale zusätzliche SRV-Hosts für die MongoDB-Erkennung.",
|
||||
"connection_modal.help.connection_timeout": "Gilt für Verbindungstests und das Laden von Metadaten. Bereich: 1-300 Sekunden.",
|
||||
@@ -707,6 +812,66 @@
|
||||
"connection_modal.jvm.read_only_first": "Nur-Lese-Operationen bevorzugen",
|
||||
"connection_modal.jvm.security_policy": "Sicherheitsrichtlinie",
|
||||
"connection_modal.message.srv_with_ssh_dns_warning": "SRV mit SSH Tunnel kann von lokaler DNS-Auflösung abhängen. Wenn die Auflösung fehlschlägt, verwenden Sie Standard-Hosts.",
|
||||
"connection_modal.messageQueue.kafka.defaultTopic.label": "Standard-Topic (optional)",
|
||||
"connection_modal.messageQueue.kafka.defaultTopic.help": "Wenn leer, muss das Topic in SQL explizit angegeben werden. Danach können SHOW, CONSUME oder SELECT direkt eine Vorschau liefern.",
|
||||
"connection_modal.messageQueue.kafka.defaultTopic.placeholder": "Beispiel: orders.events",
|
||||
"connection_modal.messageQueue.rocketmq.defaultTopic.label": "Standard-Topic (optional)",
|
||||
"connection_modal.messageQueue.rocketmq.defaultTopic.help": "Wenn leer, muss das Topic in SQL explizit angegeben werden. Verbindungsparameter können weiterhin groupId, namespace, tag, pullBatchSize und startOffset ergänzen.",
|
||||
"connection_modal.messageQueue.rocketmq.defaultTopic.placeholder": "Beispiel: orders.events",
|
||||
"connection_modal.messageQueue.mqtt.defaultTopicFilter.label": "Standard-Topic / Filter (optional)",
|
||||
"connection_modal.messageQueue.mqtt.defaultTopicFilter.help": "Wenn leer, muss das Topic in SQL explizit angegeben werden. Danach können SHOW, CONSUME oder SELECT direkt eine Vorschau liefern. /, + und # werden unterstützt.",
|
||||
"connection_modal.messageQueue.mqtt.defaultTopicFilter.placeholder": "Beispiel: devices/+/telemetry",
|
||||
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.label": "Standard-Virtual Host (optional)",
|
||||
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.help": "Wenn leer, wird standardmäßig / verwendet. Danach nutzt der Query-Editor den aktuellen vhost als Kontext für Queue-Browsing und Testversand.",
|
||||
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.placeholder": "Beispiel: / oder orders-vhost",
|
||||
"connection_modal.messageQueue.topology.cluster.label": "Clustermodus",
|
||||
"connection_modal.messageQueue.kafka.topology.single.label": "Einzelner Broker",
|
||||
"connection_modal.messageQueue.kafka.topology.single.description": "Konfiguriert einen bootstrap broker für lokale oder einfache Umgebungen.",
|
||||
"connection_modal.messageQueue.kafka.topology.cluster.description": "Konfiguriert mehrere bootstrap broker, um Discovery und Failover-Erfolg zu verbessern.",
|
||||
"connection_modal.messageQueue.rocketmq.topology.single.label": "Einzelner NameServer",
|
||||
"connection_modal.messageQueue.rocketmq.topology.single.description": "Konfiguriert einen NameServer für lokale oder einfache Umgebungen.",
|
||||
"connection_modal.messageQueue.rocketmq.topology.cluster.description": "Konfiguriert mehrere NameServer, um Routenerkennung und Failover-Erfolg zu verbessern.",
|
||||
"connection_modal.messageQueue.mqtt.topology.single.label": "Einzelner Broker",
|
||||
"connection_modal.messageQueue.mqtt.topology.single.description": "Konfiguriert einen broker für lokale oder einfache Umgebungen.",
|
||||
"connection_modal.messageQueue.mqtt.topology.cluster.description": "Konfiguriert mehrere broker, um Verbindungserkennung und Failover-Erfolg zu verbessern.",
|
||||
"connection_modal.messageQueue.kafka.extraBrokers.label": "Zusätzliche Broker-Adressen",
|
||||
"connection_modal.messageQueue.kafka.extraBrokers.help": "Mehrere broker-Adressen im Format host:port eingeben und mit Enter bestätigen.",
|
||||
"connection_modal.messageQueue.kafka.extraBrokers.placeholder": "Beispiel: 10.10.0.12:9092, 10.10.0.13:9092",
|
||||
"connection_modal.messageQueue.rocketmq.extraNameServers.label": "Zusätzliche NameServer-Adressen",
|
||||
"connection_modal.messageQueue.rocketmq.extraNameServers.help": "Mehrere NameServer-Adressen im Format host:port eingeben und mit Enter bestätigen.",
|
||||
"connection_modal.messageQueue.rocketmq.extraNameServers.placeholder": "Beispiel: 10.10.0.12:9876, 10.10.0.13:9876",
|
||||
"connection_modal.messageQueue.mqtt.extraBrokers.label": "Zusätzliche Broker-Adressen",
|
||||
"connection_modal.messageQueue.mqtt.extraBrokers.help": "Mehrere broker-Adressen im Format host:port eingeben und mit Enter bestätigen.",
|
||||
"connection_modal.messageQueue.mqtt.extraBrokers.placeholder": "Beispiel: 10.10.0.12:1883, 10.10.0.13:1883",
|
||||
"connection_modal.redis.topology.single.label": "Standalone-Modus",
|
||||
"connection_modal.redis.topology.single.description": "Verbindet sich mit einem Redis-Knoten.",
|
||||
"connection_modal.redis.topology.cluster.label": "Clustermodus",
|
||||
"connection_modal.redis.topology.cluster.description": "Redis Cluster mit mehreren Seed-Knoten.",
|
||||
"connection_modal.redis.topology.sentinel.label": "Sentinel-Modus",
|
||||
"connection_modal.redis.topology.sentinel.description": "Ermittelt den primären Knoten über Sentinel für Primär-Replikat-Hochverfügbarkeit.",
|
||||
"connection_modal.redis.hosts.sentinel.label": "Zusätzliche Sentinel-Knotenadressen",
|
||||
"connection_modal.redis.hosts.sentinel.help": "Der obige Host wird als erster Sentinel verwendet. Weitere Sentinel-Knoten hier im Format host:port eingeben.",
|
||||
"connection_modal.redis.hosts.sentinel.placeholder": "Beispiel: 10.10.0.12:26379, 10.10.0.13:26379",
|
||||
"connection_modal.redis.hosts.cluster.label": "Zusätzliche Cluster-Knotenadressen",
|
||||
"connection_modal.redis.hosts.cluster.help": "Der obige Host wird als primärer Knoten verwendet. Weitere Seed-Knoten hier im Format host:port eingeben.",
|
||||
"connection_modal.redis.hosts.cluster.placeholder": "Beispiel: 10.10.0.12:6379, 10.10.0.13:6379",
|
||||
"connection_modal.redis.sentinel.master.label": "Sentinel master-Name",
|
||||
"connection_modal.redis.sentinel.master.help": "Den monitor-Namen aus der Sentinel-Konfiguration eingeben, zum Beispiel mymaster.",
|
||||
"connection_modal.redis.sentinel.master.required": "Sentinel master-Name eingeben",
|
||||
"connection_modal.redis.sentinel.master.placeholder": "Beispiel: mymaster",
|
||||
"connection_modal.redis.credentials.primary.label": "Passwort (optional)",
|
||||
"connection_modal.redis.credentials.primary.placeholder.empty": "Redis-Passwort, wenn requirepass gesetzt ist",
|
||||
"connection_modal.redis.credentials.primary.placeholder.retained": "Gespeichertes Redis-Passwort",
|
||||
"connection_modal.redis.credentials.sentinelUser.label": "Sentinel-Benutzername (optional)",
|
||||
"connection_modal.redis.credentials.sentinelUser.placeholder": "Leer lassen, wenn Sentinel keinen ACL-Benutzernamen verwendet",
|
||||
"connection_modal.redis.credentials.sentinelPassword.label": "Sentinel-Passwort (optional)",
|
||||
"connection_modal.redis.credentials.sentinelPassword.placeholder.empty": "Authentifizierungspasswort für Sentinel selbst. Leer lassen, um keines zu senden.",
|
||||
"connection_modal.redis.credentials.sentinelPassword.placeholder.retained": "Gespeichertes Sentinel-Passwort",
|
||||
"connection_modal.redis.credentials.sentinelPassword.clear": "Gespeichertes Sentinel-Passwort löschen",
|
||||
"connection_modal.redis.credentials.sentinelPassword.description": "Ein Sentinel-Passwort ist derzeit gespeichert. Leer lassen, um es weiterzuverwenden, oder einen neuen Wert zum Ersetzen eingeben.",
|
||||
"connection_modal.redis.databaseScope.label": "Anzuzeigende Datenbanken (leer zeigt alle)",
|
||||
"connection_modal.redis.databaseScope.help": "Nach erfolgreichem Verbindungstest auswählbar",
|
||||
"connection_modal.redis.databaseScope.placeholder": "Anzuzeigende Datenbanken auswählen",
|
||||
"connection_modal.mongodb.auth.auto": "Automatisch",
|
||||
"connection_modal.mongodb.auth.auto_description": "Der Treiber wählt den Authentifizierungsmechanismus.",
|
||||
"connection_modal.mongodb.auth.aws_iam_description": "AWS IAM-Authentifizierung verwenden. AWS IAM-Zugangsdaten in der Laufzeitumgebung bereitstellen.",
|
||||
@@ -715,6 +880,35 @@
|
||||
"connection_modal.mongodb.auth.scram_sha1_description": "SCRAM-SHA-1-Authentifizierung verwenden.",
|
||||
"connection_modal.mongodb.auth.scram_sha256_description": "SCRAM-SHA-256-Authentifizierung verwenden.",
|
||||
"connection_modal.mongodb.auth_mechanism": "Authentifizierungsmechanismus",
|
||||
"connection_modal.mongodb.topology.single.label": "Standalone-Modus",
|
||||
"connection_modal.mongodb.topology.replica.label": "Replikatset / mehrere Knoten",
|
||||
"connection_modal.mongodb.discovery.standard.label": "Standardadresse",
|
||||
"connection_modal.mongodb.discovery.standard.description": "Direkt mit host:port verbinden oder eine Replikatset-Knotenliste verwenden.",
|
||||
"connection_modal.mongodb.discovery.srv.label": "SRV-Adresse",
|
||||
"connection_modal.mongodb.discovery.srv.description": "mongodb+srv verwenden und Zielknoten per DNS erkennen lassen.",
|
||||
"connection_modal.mongodb.discovery.current": "Aktuell",
|
||||
"connection_modal.mongodb.discovery.srv_ssh_warning": "Wenn SRV und SSH-Tunnel gleichzeitig aktiv sind, kann lokale DNS-Auflösung erforderlich sein.",
|
||||
"connection_modal.mongodb.replica.hosts.srv.label": "Zusätzliche SRV-Hosts (optional)",
|
||||
"connection_modal.mongodb.replica.hosts.srv.help": "Mehrere Kandidaten-Hostnamen im Format host eingeben. Leer lassen, um nur den obigen Host zu verwenden.",
|
||||
"connection_modal.mongodb.replica.hosts.srv.placeholder": "Beispiel: cluster-a.example.com, cluster-b.example.com",
|
||||
"connection_modal.mongodb.replica.hosts.standard.label": "Zusätzliche Knotenadressen",
|
||||
"connection_modal.mongodb.replica.hosts.standard.help": "Mehrere Knotenadressen im Format host:port eingeben und mit Enter bestätigen.",
|
||||
"connection_modal.mongodb.replica.hosts.standard.placeholder": "Beispiel: 10.10.0.12:27017, 10.10.0.13:27017",
|
||||
"connection_modal.mongodb.replica.set.label": "Replikatset-Name (optional)",
|
||||
"connection_modal.mongodb.replica.set.placeholder": "Beispiel: rs0",
|
||||
"connection_modal.mongodb.replica.user.label": "Replikatset-Benutzername (optional)",
|
||||
"connection_modal.mongodb.replica.user.placeholder": "Leer lassen, um den primären Benutzernamen zu verwenden",
|
||||
"connection_modal.mongodb.replica.password.label": "Replikatset-Passwort (optional)",
|
||||
"connection_modal.mongodb.replica.password.placeholder.empty": "Leer lassen, um das primäre Passwort zu verwenden",
|
||||
"connection_modal.mongodb.replica.password.placeholder.retained": "Gespeichertes Replikatset-Passwort",
|
||||
"connection_modal.mongodb.replica.password.clear": "Gespeichertes Replikatset-Passwort löschen",
|
||||
"connection_modal.mongodb.replica.password.description": "Ein Replikatset-Passwort ist derzeit gespeichert. Leer lassen, um es weiterzuverwenden, oder einen neuen Wert zum Ersetzen eingeben.",
|
||||
"connection_modal.mongodb.members.role": "Rolle",
|
||||
"connection_modal.mongodb.members.health": "Zustand",
|
||||
"connection_modal.mongodb.members.health.ok": "Normal",
|
||||
"connection_modal.mongodb.members.health.error": "Fehlerhaft",
|
||||
"connection_modal.mongodb.policy.auth_source.label": "Authentifizierungsdatenbank (authSource)",
|
||||
"connection_modal.mongodb.policy.auth_source.placeholder": "Standardmäßig database oder admin",
|
||||
"connection_modal.mongodb.read_preference": "readPreference",
|
||||
"connection_modal.mongodb.read_preference.nearest": "Lesezugriffe zum nächsten Mitglied leiten.",
|
||||
"connection_modal.mongodb.read_preference.primary": "Nur vom primary lesen.",
|
||||
@@ -878,6 +1072,9 @@
|
||||
"connection_modal.message.save_security_refresh_failed": "Vorgang fehlgeschlagen",
|
||||
"connection_modal.message.save_failed": "Vorgang fehlgeschlagen",
|
||||
"connection_modal.message.test_requires_new_password": "Geben Sie vor dem Test das neue Verbindungspasswort ein.",
|
||||
"connection_modal.secret.blocking.redis_sentinel": "Geben Sie vor dem Test ein neues Sentinel-Passwort ein oder brechen Sie das Löschen des gespeicherten Sentinel-Passworts ab",
|
||||
"connection_modal.test.redis_database_list_timeout": "Verbunden, aber das Laden der Redis-Datenbankliste ist abgelaufen (>{{seconds}} Sekunden)",
|
||||
"connection_modal.test.redis_database_list_failure": "Verbunden, aber die Redis-Datenbankliste konnte nicht geladen werden: {{detail}}",
|
||||
"connection_modal.message.test_requires_new_ssh_password": "Geben Sie vor dem Test das neue SSH-Passwort ein.",
|
||||
"connection_modal.message.test_requires_new_proxy_password": "Geben Sie vor dem Test das neue Proxy-Passwort ein.",
|
||||
"connection_modal.message.test_requires_new_tunnel_password": "Geben Sie vor dem Test das neue HTTP Tunnel-Passwort ein.",
|
||||
@@ -1018,20 +1215,32 @@
|
||||
"sidebar.message.export_failed": "Export fehlgeschlagen: {{error}}",
|
||||
"sidebar.message.backing_up_database": "Datenbank {{database}} wird gesichert...",
|
||||
"sidebar.message.exporting_database_schema": "Datenbankstruktur {{database}} wird exportiert...",
|
||||
"sidebar.message.exporting_database_backup": "{{database}} wird gesichert (Struktur und Daten)...",
|
||||
"sidebar.message.schema_export_target_missing": "Das Ziel-Schema wurde nicht gefunden. Der Export kann nicht fortgesetzt werden.",
|
||||
"sidebar.message.exporting_schema_structure": "Struktur von Schema {{schema}} wird exportiert...",
|
||||
"sidebar.message.exporting_schema_backup": "Schema {{schema}} wird gesichert (Struktur und Daten)...",
|
||||
"sidebar.message.export_tables_same_database_required": "Wählen Sie Tabellen aus derselben Datenbank aus.",
|
||||
"sidebar.message.backing_up_selected_tables": "Ausgewählte Tabellen werden gesichert: {{count}}...",
|
||||
"sidebar.message.exporting_selected_table_schema": "Struktur der ausgewählten Tabellen wird exportiert: {{count}}...",
|
||||
"sidebar.message.load_database_list_failed": "Datenbanken konnten nicht geladen werden: {{error}}",
|
||||
"sidebar.message.load_table_list_failed": "Tabellen konnten nicht geladen werden: {{error}}",
|
||||
"sidebar.message.locate_external_sql_file_not_found": "SQL-Datei wurde in den externen SQL-Verzeichnissen nicht gefunden: {{path}}",
|
||||
"sidebar.message.locate_connection_not_found_for_object": "Die Verbindung für das aktuelle Objekt wurde nicht gefunden",
|
||||
"sidebar.message.locate_connection_not_in_tree": "Die aktuelle Verbindung wurde im linken Baum nicht gefunden",
|
||||
"sidebar.message.locate_database_loading": "Der Datenbankknoten wird noch geladen: {{database}}. Bitte später erneut versuchen",
|
||||
"sidebar.message.locate_database_not_found": "Die Datenbank wurde im linken Baum nicht gefunden: {{database}}",
|
||||
"sidebar.message.locate_object_loading": "Die Datenbankobjekte für {{object}} in {{database}} werden noch geladen. Bitte später erneut versuchen",
|
||||
"sidebar.message.locate_object_not_found": "{{object}} wurde im linken Baum nicht gefunden: {{name}}. Bitte den Datenbankknoten aktualisieren und erneut versuchen",
|
||||
"sidebar.message.select_object_required": "Wählen Sie mindestens ein Objekt aus.",
|
||||
"sidebar.message.backing_up_selected_objects": "Ausgewählte Objekte werden gesichert: {{count}}...",
|
||||
"sidebar.message.exporting_selected_object_data": "Daten von {{count}} ausgewählten Objekten werden exportiert...",
|
||||
"sidebar.message.exporting_selected_object_data": "{{format}}-Daten von {{count}} ausgewählten Objekten werden exportiert...",
|
||||
"sidebar.message.exporting_selected_object_schema": "Struktur der ausgewählten Objekte wird exportiert: {{count}}...",
|
||||
"sidebar.message.export_success_skipped_views": "Export abgeschlossen. {{count}} Ansichten wurden beim Datenexport übersprungen.",
|
||||
"sidebar.modal.confirm_clear_selected_tables.title": "Ausgewählte Tabellen leeren",
|
||||
"sidebar.modal.confirm_clear_selected_tables.content": "Daten der ausgewählten Objekte unter {{connection}} / {{database}} leeren? Dies kann nicht rückgängig gemacht werden.",
|
||||
"sidebar.action.continue": "Fortfahren",
|
||||
"sidebar.action.cancel": "Abbrechen",
|
||||
"sidebar.action.delete": "Löschen",
|
||||
"sidebar.message.clearing_selected_tables": "{{count}} ausgewählte Tabellen werden geleert...",
|
||||
"sidebar.message.clear_success": "Leeren erfolgreich.",
|
||||
"sidebar.message.clear_failed": "Leeren fehlgeschlagen: {{error}}",
|
||||
@@ -1048,7 +1257,30 @@
|
||||
"sidebar.message.operation_create_failed": "Erstellen fehlgeschlagen: {{error}}",
|
||||
"sidebar.sql_file.default_name": "SQL-Datei",
|
||||
"sidebar.message.sql_file_context_incomplete": "SQL-Dateikontext unvollständig.",
|
||||
"sidebar.message.sql_file_path_incomplete": "Der Pfad der SQL-Datei ist unvollständig und kann nicht geöffnet werden.",
|
||||
"sidebar.message.select_host_before_large_sql_file": "Wählen Sie einen Host aus, bevor Sie eine große SQL-Datei ausführen.",
|
||||
"sidebar.message.read_sql_file_failed": "SQL-Datei konnte nicht gelesen werden: {{error}}",
|
||||
"sidebar.message.external_sql_file_parent_missing": "Das Verzeichnis zum Erstellen der SQL-Datei wurde nicht gefunden.",
|
||||
"sidebar.message.external_sql_file_rename_target_missing": "Die umzubenennende SQL-Datei wurde nicht gefunden.",
|
||||
"sidebar.message.external_sql_file_delete_target_missing": "Die zu löschende SQL-Datei wurde nicht gefunden.",
|
||||
"sidebar.message.external_sql_directory_parent_missing": "Der Speicherort zum Erstellen des Verzeichnisses wurde nicht gefunden.",
|
||||
"sidebar.message.external_sql_directory_rename_target_missing": "Das umzubenennende Verzeichnis wurde nicht gefunden.",
|
||||
"sidebar.message.external_sql_directory_delete_target_missing": "Das zu löschende SQL-Verzeichnis wurde nicht gefunden.",
|
||||
"sidebar.message.sql_file_name_required": "Der SQL-Dateiname ist erforderlich.",
|
||||
"sidebar.message.sql_directory_name_required": "Der Verzeichnisname ist erforderlich.",
|
||||
"sidebar.message.create_sql_file_failed": "SQL-Datei konnte nicht erstellt werden: {{error}}",
|
||||
"sidebar.message.sql_file_created": "SQL-Datei erstellt.",
|
||||
"sidebar.message.rename_sql_file_failed": "SQL-Datei konnte nicht umbenannt werden: {{error}}",
|
||||
"sidebar.message.sql_file_renamed": "SQL-Datei umbenannt.",
|
||||
"sidebar.message.delete_sql_file_failed": "SQL-Datei konnte nicht gelöscht werden: {{error}}",
|
||||
"sidebar.message.sql_file_deleted": "SQL-Datei gelöscht.",
|
||||
"sidebar.message.create_sql_directory_failed": "Verzeichnis konnte nicht erstellt werden: {{error}}",
|
||||
"sidebar.message.sql_directory_created": "Verzeichnis erstellt.",
|
||||
"sidebar.message.rename_sql_directory_failed": "Verzeichnis konnte nicht umbenannt werden: {{error}}",
|
||||
"sidebar.message.external_sql_directory_rename_sync_failed": "Das Verzeichnis wurde umbenannt, aber die externe SQL-Verzeichnisliste konnte nicht synchronisiert werden. Fügen Sie das Verzeichnis erneut hinzu.",
|
||||
"sidebar.message.sql_directory_renamed": "Verzeichnis umbenannt.",
|
||||
"sidebar.message.delete_sql_directory_failed": "SQL-Verzeichnis konnte nicht gelöscht werden: {{error}}",
|
||||
"sidebar.message.sql_directory_deleted": "SQL-Verzeichnis gelöscht.",
|
||||
"sidebar.message.add_sql_directory_database_required": "Wählen Sie eine Datenbank aus, bevor Sie ein SQL-Verzeichnis hinzufügen.",
|
||||
"sidebar.message.select_sql_directory_failed": "SQL-Verzeichnis konnte nicht ausgewählt werden: {{error}}",
|
||||
"sidebar.message.sql_directory_path_invalid": "Pfad des SQL-Verzeichnisses ist ungültig.",
|
||||
@@ -1062,6 +1294,10 @@
|
||||
"sidebar.message.create_failed": "Erstellen fehlgeschlagen: {{error}}",
|
||||
"sidebar.modal.confirm_delete_database.title": "Datenbank löschen",
|
||||
"sidebar.modal.confirm_delete_database.content": "{{name}} löschen? Dies kann nicht rückgängig gemacht werden.",
|
||||
"sidebar.modal.confirm_delete_sql_file.title": "SQL-Datei löschen",
|
||||
"sidebar.modal.confirm_delete_sql_file.content": "\"{{name}}\" löschen? Dadurch wird die lokale Datei vom Datenträger gelöscht und kann nicht wiederhergestellt werden.",
|
||||
"sidebar.modal.confirm_delete_sql_directory.title": "SQL-Verzeichnis löschen",
|
||||
"sidebar.modal.confirm_delete_sql_directory.content": "\"{{name}}\" löschen? Dadurch wird das lokale Verzeichnis vom Datenträger gelöscht; es können nur leere Verzeichnisse gelöscht werden.",
|
||||
"sidebar.modal.confirm_delete_table.title": "Tabelle löschen",
|
||||
"sidebar.modal.confirm_delete_table.content": "{{name}} löschen? Dies kann nicht rückgängig gemacht werden.",
|
||||
"sidebar.modal.confirm_table_data_action.title": "{{action}} bestätigen",
|
||||
@@ -1088,8 +1324,14 @@
|
||||
"sidebar.message.delete_connection_failed": "Verbindung konnte nicht gelöscht werden.",
|
||||
"sidebar.modal.confirm_delete_saved_query.content": "Gespeicherte Abfrage \"{{name}}\" löschen? Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||
"sidebar.search.placeholder": "Suchen...",
|
||||
"sidebar.punctuation.list_separator": ", ",
|
||||
"sidebar.command_search.label": "Tabellen, Verbindungen, Aktionen suchen",
|
||||
"sidebar.command_search.placeholder": "Tabellen, Verbindungen, Aktionen suchen... oder KI fragen",
|
||||
"sidebar.command_search.sync_to_filter_tooltip": "Eingabe mit dem linken Filter synchronisieren",
|
||||
"sidebar.command_search.sync_to_filter_aria": "Mit linkem Filter synchronisieren",
|
||||
"sidebar.command_search.reset_filter": "Seitenleistenfilter zurücksetzen",
|
||||
"sidebar.command_search.no_synced_filter": "Kein synchronisierter Seitenleistenfilter",
|
||||
"sidebar.command_search.no_filter_content": "Kein Filtertext",
|
||||
"sidebar.command_search.object_kind.all": "Alle",
|
||||
"sidebar.command_search.object_kind.tables": "Tabellen",
|
||||
"sidebar.command_search.object_kind.views": "Sichten",
|
||||
@@ -1135,6 +1377,13 @@
|
||||
"sidebar.v2_table_menu.view_in_er": "Im ER-Diagramm anzeigen",
|
||||
"sidebar.v2_table_menu.copy_section": "Kopieren",
|
||||
"sidebar.v2_table_menu.copy_table_name": "Tabellennamen kopieren",
|
||||
"sidebar.copy_object_name.label.table": "Tabellenname",
|
||||
"sidebar.copy_object_name.label.view": "Ansichtsname",
|
||||
"sidebar.copy_object_name.label.materialized_view": "Name der materialisierten Ansicht",
|
||||
"sidebar.copy_object_name.label.event": "Ereignisname",
|
||||
"sidebar.copy_object_name.empty": "{{label}} ist leer und kann nicht kopiert werden",
|
||||
"sidebar.copy_object_name.copied": "{{label}} wurde in die Zwischenablage kopiert",
|
||||
"sidebar.copy_object_name.failed": "{{label}} konnte nicht kopiert werden: {{error}}",
|
||||
"sidebar.v2_table_menu.copy_table_as_insert": "Gesamte Tabelle als {{keyword}} kopieren",
|
||||
"sidebar.v2_table_menu.maintenance_section": "Wartung",
|
||||
"sidebar.v2_table_menu.rename_compact": "Umbenennen...",
|
||||
@@ -1151,6 +1400,11 @@
|
||||
"sidebar.v2_table_group_menu.sort_frequency": "Nutzungshäufigkeit",
|
||||
"sidebar.v2_table_group_menu.meta": "{{database}} · {{count}} Tabellen · nach {{sort}} sortiert",
|
||||
"sidebar.message.locate_current_table_unavailable": "Im aktuellen Tab gibt es keine lokalisierbare Tabelle",
|
||||
"sidebar.locate.object.table": "Tabelle",
|
||||
"sidebar.locate.object.view": "Ansicht",
|
||||
"sidebar.locate.object.materialized_view": "Materialisierte Ansicht",
|
||||
"sidebar.locate.object.routine": "Funktion/Prozedur",
|
||||
"sidebar.locate.object.trigger": "Trigger",
|
||||
"sidebar.active_connection.current_host_database": "Aktueller Host und Datenbank",
|
||||
"sidebar.active_connection.no_database_selected": "Keine Datenbank ausgewählt",
|
||||
"sidebar.active_connection.no_host_selected": "Kein Host ausgewählt",
|
||||
@@ -1251,6 +1505,11 @@
|
||||
"sidebar.search.scope.host": "Rechner",
|
||||
"sidebar.search.scope.tag": "Markierung",
|
||||
"sidebar.tree.saved_queries": "Gespeicherte Abfragen",
|
||||
"sidebar.tree.untitled_query": "Unbenannte Abfrage",
|
||||
"sidebar.tree.default_database": "Standarddatenbank",
|
||||
"sidebar.tree.unknown_connection": "Unbekannte Verbindung",
|
||||
"sidebar.tree.unmatched_saved_queries": "Nicht zugeordnet",
|
||||
"sidebar.tree.all_saved_queries": "Alle gespeicherten Abfragen",
|
||||
"sidebar.tree.default_schema": "Standardschema",
|
||||
"sidebar.object_group.tables": "Tabellen",
|
||||
"sidebar.object_group.views": "Ansichten",
|
||||
@@ -1274,6 +1533,8 @@
|
||||
"sidebar.tab.new_table": "Neue Tabelle - {{database}}",
|
||||
"sidebar.tab.table_overview": "Tabellenübersicht - {{database}}{{schema}}",
|
||||
"sidebar.tab.trigger": "Trigger: {{name}}",
|
||||
"sidebar.tab.event": "Ereignis: {{name}}",
|
||||
"sidebar.tab.edit_event": "Ereignis bearbeiten: {{name}}",
|
||||
"sidebar.tab.materialized_view_definition": "Materialisierte Ansicht: {{name}}",
|
||||
"sidebar.tab.view_definition": "Ansicht: {{name}}",
|
||||
"sidebar.tab.edit_view": "Ansicht bearbeiten: {{name}}",
|
||||
@@ -1343,9 +1604,13 @@
|
||||
"tab_manager.hover.label.object": "Objekt",
|
||||
"tab_manager.hover.label.type": "Typ",
|
||||
"sidebar.message.no_visible_databases": "Es wurden keine sichtbaren Datenbanken oder Schemas zurückgegeben. Prüfen Sie die Berechtigungen oder aktualisieren Sie über das Kontextmenü.",
|
||||
"sidebar.message.visual_new_table_unsupported": "Diese Datenquelle unterstützt das visuelle Erstellen von Tabellen noch nicht.",
|
||||
"sidebar.message.jvm_resources_backend_unavailable": "JVM-Ressourcen können in diesem Build nicht durchsucht werden.",
|
||||
"sidebar.message.external_sql_directory_read_failed": "SQL-Verzeichnis {{name}} konnte nicht gelesen werden: {{error}}",
|
||||
"sidebar.message.sphinx_unsupported_objects": "Diese Sphinx-Instanz stellt diese Objektfunktionen nicht bereit: {{objects}}. Der Kompatibilitätsmodus wurde angewendet.",
|
||||
"sidebar.message.sidebar_filter_sync_enabled": "Synchronisierung des linken Filters aktiviert.",
|
||||
"sidebar.message.sidebar_filter_sync_disabled": "Synchronisierung des linken Filters deaktiviert.",
|
||||
"sidebar.message.sidebar_filter_reset": "Seitenleistenfilter zurückgesetzt.",
|
||||
"sidebar.message.database_name_required": "Datenbankname ist erforderlich.",
|
||||
"sidebar.message.database_name_unchanged": "Datenbankname ist unverändert.",
|
||||
"sidebar.message.database_renamed": "Datenbank umbenannt.",
|
||||
@@ -1394,6 +1659,9 @@
|
||||
"sidebar.menu.close_database": "Datenbank schließen",
|
||||
"sidebar.menu.browse_view_data": "Ansichtsdaten durchsuchen",
|
||||
"sidebar.menu.view_definition": "Ansichtsdefinition",
|
||||
"sidebar.menu.browse_materialized_view_data": "Daten der materialisierten Ansicht durchsuchen",
|
||||
"sidebar.menu.materialized_view_definition": "Definition der materialisierten Ansicht",
|
||||
"sidebar.menu.view_object_definition": "Definition anzeigen",
|
||||
"sidebar.menu.edit_view": "Ansicht bearbeiten",
|
||||
"sidebar.menu.rename_view": "Ansicht umbenennen",
|
||||
"sidebar.menu.delete_view": "Ansicht löschen",
|
||||
@@ -1420,6 +1688,15 @@
|
||||
"sidebar.menu.refresh_directory": "Verzeichnis aktualisieren",
|
||||
"sidebar.menu.remove_directory": "Verzeichnis entfernen",
|
||||
"sidebar.menu.open_sql_file": "SQL-Datei öffnen",
|
||||
"sidebar.menu.new_sql_file": "Neue SQL-Datei",
|
||||
"sidebar.menu.new_sql_directory": "Neues Verzeichnis",
|
||||
"sidebar.menu.rename_sql_directory": "Verzeichnis umbenennen",
|
||||
"sidebar.menu.delete_local_directory": "Lokales Verzeichnis löschen",
|
||||
"sidebar.menu.delete_sql_directory": "Verzeichnis löschen",
|
||||
"sidebar.menu.rename_sql_file": "SQL-Datei umbenennen",
|
||||
"sidebar.menu.new_sql_file_in_directory": "Neue SQL-Datei in diesem Verzeichnis",
|
||||
"sidebar.menu.new_sql_directory_in_directory": "Neues Verzeichnis in diesem Verzeichnis",
|
||||
"sidebar.menu.delete_sql_file": "SQL-Datei löschen",
|
||||
"sidebar.batch.group.tables": "Tabellen",
|
||||
"sidebar.batch.group.views": "Ansichten",
|
||||
"sidebar.batch.no_matching_objects": "Keine passenden Objekte",
|
||||
@@ -1433,6 +1710,22 @@
|
||||
"connection_modal.network.ssl_mode.skip_verify": "Prüfung überspringen",
|
||||
"sidebar.external_sql.root": "Externe SQL-Dateien",
|
||||
"sidebar.external_sql.directory_fallback": "SQL-Verzeichnis",
|
||||
"sidebar.external_sql_modal.title.create_file": "Neue SQL-Datei",
|
||||
"sidebar.external_sql_modal.title.rename_file": "SQL-Datei umbenennen",
|
||||
"sidebar.external_sql_modal.title.create_directory": "Neues Verzeichnis",
|
||||
"sidebar.external_sql_modal.title.rename_directory": "Verzeichnis umbenennen",
|
||||
"sidebar.external_sql_modal.action.create": "Erstellen",
|
||||
"sidebar.external_sql_modal.action.rename": "Umbenennen",
|
||||
"sidebar.external_sql_modal.field.directory_name": "Verzeichnisname",
|
||||
"sidebar.external_sql_modal.field.sql_file_name": "SQL-Dateiname",
|
||||
"sidebar.external_sql_modal.validation.directory_name_required": "Verzeichnisnamen eingeben",
|
||||
"sidebar.external_sql_modal.validation.sql_file_name_required": "SQL-Dateinamen eingeben",
|
||||
"sidebar.external_sql_modal.validation.directory_name_no_separator": "Der Verzeichnisname darf keine Pfadtrennzeichen enthalten",
|
||||
"sidebar.external_sql_modal.validation.sql_file_name_no_separator": "Der Dateiname darf keine Pfadtrennzeichen enthalten",
|
||||
"sidebar.external_sql_modal.help.directory": "Das Verzeichnis wird nur im externen SQL-Verzeichnisbaum angezeigt; Nicht-SQL-Dateien bleiben ausgeblendet",
|
||||
"sidebar.external_sql_modal.help.sql_file": "Wenn die Endung .sql fehlt, wird sie automatisch ergänzt",
|
||||
"sidebar.external_sql_modal.placeholder.directory_name": "z. B. reports",
|
||||
"sidebar.external_sql_modal.placeholder.sql_file_name": "z. B. report.sql",
|
||||
"sidebar.jvm.action.monitoring": "Kontinuierliche Überwachung",
|
||||
"sidebar.jvm.action.diagnostic": "Diagnoseerweiterung",
|
||||
"sidebar.jvm.tab.overview": "JVM-Überblick",
|
||||
@@ -1871,14 +2164,34 @@
|
||||
"query_editor.action.ai_explain_sql_menu": "SQL erklären",
|
||||
"query_editor.action.ai_optimize_sql_menu": "SQL optimieren",
|
||||
"query_editor.action.ai_schema_analysis": "Schema-Analyse",
|
||||
"query_editor.action.show_results_panel": "Ergebnisbereich anzeigen",
|
||||
"query_editor.action.hide_results_panel": "Ergebnisbereich ausblenden",
|
||||
"query_editor.action.show_results_panel_with_shortcut": "Ergebnisbereich anzeigen ({{shortcut}})",
|
||||
"query_editor.action.hide_results_panel_with_shortcut": "Ergebnisbereich ausblenden ({{shortcut}})",
|
||||
"query_editor.action.results": "Ergebnisse",
|
||||
"query_editor.transaction.delay.immediate": "Sofort",
|
||||
"query_editor.transaction.mode.tooltip": "Wie in DBeaver: Wenn der SQL-Editor DML wie INSERT/UPDATE/DELETE/MERGE/REPLACE ausführt, öffnet GoNavi zuerst eine verwaltete Transaktion. Im manuellen Modus müssen Sie commit/rollback ausführen; im automatischen Modus wird nach erfolgreicher Ausführung automatisch COMMIT ausgeführt.",
|
||||
"query_editor.transaction.mode.manual": "Manuell",
|
||||
"query_editor.transaction.mode.auto": "Automatisch",
|
||||
"query_editor.transaction.status.auto_commit_countdown": "Automatischer Commit in {{seconds}}s",
|
||||
"query_editor.transaction.status.auto_committing": "Automatischer Commit läuft",
|
||||
"query_editor.transaction.action.commit": "Commit",
|
||||
"query_editor.transaction.action.commit_with_count": "Commit ({{count}})",
|
||||
"query_editor.transaction.action.rollback": "Rollback",
|
||||
"query_editor.transaction.message.pending_managed_transaction": "Im SQL-Editor ist bereits eine nicht festgeschriebene Transaktion offen. Führen Sie zuerst Commit oder Rollback aus, bevor Sie eine weitere DML-Anweisung starten.",
|
||||
"query_editor.action.show_object_info": "Objektinformationen anzeigen",
|
||||
"query_editor.action.rename_query": "Abfrage umbenennen",
|
||||
"query_editor.action.export_sql_file": "SQL-Datei exportieren",
|
||||
"query_editor.format.keyword_upper": "Schlüsselwörter großschreiben",
|
||||
"query_editor.format.keyword_lower": "Schlüsselwörter kleinschreiben",
|
||||
"query_editor.format.restore_last_format": "Letzte Formatierung zurücknehmen",
|
||||
"query_editor.format.snippet_settings": "Snippet-Einstellungen...",
|
||||
"query_editor.format.shortcut_settings": "Tastenkürzel-Einstellungen...",
|
||||
"query_editor.message.format_failed": "Formatierung fehlgeschlagen: Die SQL-Syntax ist möglicherweise ungültig.",
|
||||
"query_editor.message.no_format_restore_snapshot": "Es ist kein SQL-Stand vor der Formatierung zum Wiederherstellen verfügbar.",
|
||||
"query_editor.message.format_restore_success": "Der SQL-Stand vor der Formatierung wurde wiederhergestellt.",
|
||||
"query_editor.message.page_query_failed": "Seitenabfrage fehlgeschlagen: {{error}}",
|
||||
"query_editor.message.page_query_empty": "Die Seitenabfrage hat keine Ergebnismenge zurückgegeben.",
|
||||
"query_editor.message.refresh_failed": "Aktualisierung fehlgeschlagen: {{error}}",
|
||||
"query_editor.message.select_database_first": "Wählen Sie zuerst eine Datenbank aus.",
|
||||
"query_editor.message.connection_not_found": "Verbindung nicht gefunden.",
|
||||
@@ -1896,6 +2209,7 @@
|
||||
"query_editor.message.read_only_no_safe_locator": "Es wurde weder ein Primärschlüssel noch ein verwendbarer eindeutiger Index erkannt, daher können Änderungen nicht sicher gespeichert werden.",
|
||||
"query_editor.message.read_only_index_metadata_unavailable": "Die Metadaten des eindeutigen Indexes konnten nicht geladen werden, daher können Änderungen nicht sicher gespeichert werden.",
|
||||
"query_editor.message.read_only_table_locator_metadata_unavailable": "Die Metadaten des Primärschlüssels/eindeutigen Indexes für {{table}} konnten nicht geladen werden, daher können Änderungen nicht sicher gespeichert werden.",
|
||||
"query_editor.message.read_only_system_metadata": "Abfrageergebnisse aus Systemmetadaten bleiben schreibgeschützt.",
|
||||
"query_editor.message.read_only_oracle_rowid_injection_unavailable": "Die Oracle-Abfrage verwendet *, daher konnte die ROWID-Lokatorspalte nicht automatisch eingefügt werden. Das Ergebnis bleibt schreibgeschützt.",
|
||||
"query_editor.message.read_only_warning_with_detail": "Abfrageergebnisse bleiben schreibgeschützt: {{detail}}",
|
||||
"query_editor.message.object_info_target_not_found": "Der Cursor befindet sich auf keiner erkannten Tabelle oder Spalte.",
|
||||
@@ -1904,6 +2218,7 @@
|
||||
"query_editor.message.saved": "Abfrage gespeichert.",
|
||||
"query_editor.message.sql_file_saved": "SQL-Datei gespeichert.",
|
||||
"query_editor.message.save_sql_file_failed": "SQL-Datei konnte nicht gespeichert werden: {{error}}",
|
||||
"query_editor.message.save_query_failed": "Abfrage konnte nicht gespeichert werden: {{error}}",
|
||||
"query_editor.message.export_sql_file_success": "SQL-Datei exportiert.",
|
||||
"query_editor.message.export_sql_file_failed": "SQL-Datei konnte nicht exportiert werden: {{error}}",
|
||||
"query_editor.message.save_first_before_rename": "Speichern Sie die Abfrage, bevor Sie sie umbenennen.",
|
||||
@@ -1917,6 +2232,18 @@
|
||||
"query_editor.result.affected_rows": "Betroffene Zeilen: {{count}}",
|
||||
"query_editor.result.execution_failed": "Ausführung fehlgeschlagen",
|
||||
"query_editor.result.ai_diagnose": "AI-Diagnose",
|
||||
"query_editor.results_panel.tooltip.hide": "Ergebnisbereich ausblenden",
|
||||
"query_editor.results_panel.tooltip.hide_with_shortcut": "Ergebnisbereich ausblenden ({{shortcut}})",
|
||||
"query_editor.results_panel.menu.close_other": "Andere Tabs schließen",
|
||||
"query_editor.results_panel.menu.close_left": "Tabs links schließen",
|
||||
"query_editor.results_panel.menu.close_right": "Tabs rechts schließen",
|
||||
"query_editor.results_panel.menu.close_all": "Alle Tabs schließen",
|
||||
"query_editor.results_panel.action.hide": "Ausblenden",
|
||||
"query_editor.results_panel.aria.hide": "Ergebnisbereich ausblenden",
|
||||
"query_editor.results_panel.tab.message": "Meldung {{index}}",
|
||||
"query_editor.results_panel.tab.result": "Ergebnis {{index}}",
|
||||
"query_editor.results_panel.message.title": "Ausführungsmeldungen",
|
||||
"query_editor.results_panel.panel.title": "Ergebnisbereich",
|
||||
"query_editor.save_modal.title": "Abfrage speichern",
|
||||
"query_editor.save_modal.rename_title": "Abfrage umbenennen",
|
||||
"query_editor.save_modal.rename_ok": "Umbenennen",
|
||||
@@ -2165,6 +2492,7 @@
|
||||
"data_grid.context_menu.edit_section": "Bearbeiten",
|
||||
"data_grid.context_menu.edit_row": "Diese Zeile bearbeiten",
|
||||
"data_grid.context_menu.copy_row_as_new": "Diese Zeile als neue Zeile kopieren",
|
||||
"data_grid.context_menu.undo_cell_change": "Änderung dieser Zelle zurücknehmen",
|
||||
"data_grid.context_menu.export_as_csv": "Als CSV exportieren",
|
||||
"data_grid.context_menu.export_as_excel": "Als Excel exportieren",
|
||||
"data_grid.context_menu.export_as_html": "Als HTML exportieren",
|
||||
@@ -2200,6 +2528,7 @@
|
||||
"data_grid.error_boundary.title": "Renderfehler",
|
||||
"data_grid.export.all_data": "Alle Daten exportieren",
|
||||
"data_grid.export.all_rows": "Alle Zeilen exportieren ({{count}} Zeilen)",
|
||||
"data_grid.export.all_rows_requery": "Alles exportieren (Abfrage erneut ausführen)",
|
||||
"data_grid.export.current_page": "Aktuelle Seite exportieren ({{count}} Zeilen)",
|
||||
"data_grid.export.current_page_rows": "Aktuelle Seite exportieren ({{count}} Zeilen)",
|
||||
"data_grid.export.group_filtered_results": "Gefilterte Ergebnisse",
|
||||
@@ -2274,7 +2603,12 @@
|
||||
"data_grid.message.column_quick_find_not_found": "Feldspalte nicht gefunden: {{query}}",
|
||||
"data_grid.message.column_quick_find_not_rendered": "Die Feldspalte \"{{column}}\" wird derzeit nicht gerendert und kann daher nicht gefunden werden.",
|
||||
"data_grid.message.column_visibility_reset": "Alle Spalten wiederhergestellt",
|
||||
"data_grid.message.auto_commit_failed": "Automatische Übernahme fehlgeschlagen: {{detail}}",
|
||||
"data_grid.message.auto_commit_success": "Automatisch übernommen",
|
||||
"data_grid.message.commit_failed": "Übernahme fehlgeschlagen: {{detail}}",
|
||||
"data_grid.message.undo_added_row_hint": "Neue Zeilen lassen sich über „Auswahl löschen“ oder einen Rollback der ganzen Tabelle zurücknehmen.",
|
||||
"data_grid.message.undo_cell_original_missing": "Die ursprünglichen Daten dieser Zelle wurden nicht gefunden, daher kann die Änderung nicht zurückgenommen werden.",
|
||||
"data_grid.message.undo_cell_success": "Zelländerung zurückgenommen",
|
||||
"data_grid.message.copied_columns": "{{count}} Spalten kopiert. Du kannst sie in Zielzeilen einfügen.",
|
||||
"data_grid.message.copied_rows": "{{count}} Zeilen kopiert. Du kannst sie als neue Zeilen einfügen.",
|
||||
"data_grid.message.copied_to_clipboard": "In die Zwischenablage kopiert",
|
||||
@@ -2463,6 +2797,8 @@
|
||||
"data_grid.secondary.er_diagram": "ER-Diagramm",
|
||||
"data_grid.secondary.jump_column": "Zur Spalte springen",
|
||||
"data_grid.secondary.live": "live",
|
||||
"data_grid.secondary.object_design": "Objektdesign",
|
||||
"data_grid.embedded_designer.title": "Tabelle entwerfen ({{tableName}})",
|
||||
"data_grid.secondary.pending_changes": "{{count}} ausstehend",
|
||||
"data_grid.secondary.row_count": "{{count}} Zeilen",
|
||||
"data_grid.secondary.view_ddl": "DDL anzeigen",
|
||||
@@ -2478,6 +2814,11 @@
|
||||
"data_grid.toolbar.cell_editor": "Zelleditor",
|
||||
"data_grid.toolbar.commit": "Transaktion übernehmen ({{count}})",
|
||||
"data_grid.toolbar.commit_label": "Transaktion übernehmen",
|
||||
"data_grid.toolbar.commit_delay.seconds": "{{seconds}}s",
|
||||
"data_grid.toolbar.commit_mode.auto": "Automatisch übernehmen",
|
||||
"data_grid.toolbar.commit_mode.auto_countdown": "Übernahme in {{seconds}}s",
|
||||
"data_grid.toolbar.commit_mode.manual": "Manuell übernehmen",
|
||||
"data_grid.toolbar.commit_mode.tooltip": "Steuert, wie Änderungen an Tabellendaten übernommen werden. Manuelles Übernehmen ist sicherer; automatisches Übernehmen startet nach der gewählten Verzögerung seit der letzten Änderung.",
|
||||
"data_grid.toolbar.copied_columns_count": "{{count}} kopierte Spalten",
|
||||
"data_grid.toolbar.copy": "Kopieren",
|
||||
"data_grid.toolbar.copy_row": "Zeile kopieren",
|
||||
@@ -2794,6 +3135,7 @@
|
||||
"redis_viewer.hint.switch_auto_to_edit": "Zum Bearbeiten in den Auto-Modus wechseln",
|
||||
"redis_viewer.label.encoding": "Kodierung: {{encoding}}",
|
||||
"redis_viewer.label.keys_count": "{{count}} Schlüssel",
|
||||
"redis_viewer.label.node_count": "{{count}} Knoten",
|
||||
"redis_viewer.label.length": "Länge: {{count}}",
|
||||
"redis_viewer.label.original_key": "Ursprünglicher Key: {{key}}",
|
||||
"redis_viewer.message.add_failed": "Hinzufügen fehlgeschlagen: {{detail}}",
|
||||
@@ -2850,6 +3192,9 @@
|
||||
"redis_viewer.placeholder.value": "Wert",
|
||||
"redis_viewer.search.exact": "Exakt",
|
||||
"redis_viewer.search.fuzzy": "Unscharf",
|
||||
"redis_viewer.topology.cluster": "Cluster",
|
||||
"redis_viewer.topology.sentinel": "Sentinel",
|
||||
"redis_viewer.topology.single": "Einzelinstanz",
|
||||
"redis_viewer.state.connection_not_found": "Verbindung nicht gefunden",
|
||||
"redis_viewer.state.empty_selection": "Wählen Sie einen Key aus, um Details anzuzeigen",
|
||||
"redis_viewer.table.action": "Aktionen",
|
||||
@@ -2988,6 +3333,7 @@
|
||||
"ai_chat.input.slash.sql.prompt": "Erzeuge SQL aus den folgenden Anforderungen:",
|
||||
"ai_chat.input.tooltip.attach_table_context": "Datenbanktabellenkontext anhängen",
|
||||
"ai_chat.input.tooltip.upload_image": "Bild oder Screenshot hochladen",
|
||||
"ai_chat.tools.mcp_fallback_description": "MCP-Tool {{toolName}} von {{serverName}}",
|
||||
"ai_chat.composer_notice.missing_model.description": "Öffnen Sie unten die Modellauswahl und wählen Sie ein Modell. Wenn die Liste leer ist, prüfen Sie Anbieter-Endpunkt und API Key.",
|
||||
"ai_chat.composer_notice.missing_model.title": "Zuerst ein Modell auswählen",
|
||||
"ai_chat.composer_notice.missing_provider.description": "Fügen Sie zuerst in den AI-Einstellungen einen Modellanbieter hinzu und aktivieren Sie ihn.",
|
||||
@@ -3234,9 +3580,47 @@
|
||||
"ai_settings.context.with_results.label": "Mit Abfrageergebnissen",
|
||||
"ai_settings.context.with_results.desc": "Sendet aktuelle Abfrageergebnisse als Kontext",
|
||||
"ai_settings.prompts.description": "Dies sind die schreibgeschützten Systemprompts der aktuellen GoNavi-Version. Sie werden je nach Szenario dynamisch in den Anfragekontext eingefügt.",
|
||||
"ai_settings.prompts.message.saved": "Benutzerdefinierte Prompts gespeichert",
|
||||
"ai_settings.prompts.message.save_failed": "Benutzerdefinierte Prompts konnten nicht gespeichert werden",
|
||||
"ai_settings.mcp_server.message.saved": "MCP-Dienst gespeichert",
|
||||
"ai_settings.mcp_server.message.save_failed": "MCP-Dienst konnte nicht gespeichert werden",
|
||||
"ai_settings.mcp_server.message.deleted": "MCP-Dienst gelöscht",
|
||||
"ai_settings.mcp_server.message.delete_failed": "MCP-Dienst konnte nicht gelöscht werden",
|
||||
"ai_settings.mcp_server.message.test_success": "MCP-Dienstverbindung erfolgreich",
|
||||
"ai_settings.mcp_server.message.test_failed": "MCP-Diensttest fehlgeschlagen",
|
||||
"ai_settings.mcp_server.message.test_request_failed": "MCP-Dienst konnte nicht getestet werden",
|
||||
"ai_settings.clipboard.error.unsupported": "Kopieren in die Zwischenablage wird in dieser Umgebung nicht unterstützt",
|
||||
"ai_settings.mcp_http.error.control_unsupported_runtime": "Die aktuelle Laufzeit unterstützt keine Steuerung des MCP HTTP-Dienstes",
|
||||
"ai_settings.mcp_http.error.start_unsupported_version": "Diese Version unterstützt das Starten des MCP HTTP-Dienstes nicht",
|
||||
"ai_settings.mcp_http.error.stop_unsupported_version": "Diese Version unterstützt das Stoppen des MCP HTTP-Dienstes nicht",
|
||||
"ai_settings.mcp_http.message.started": "GoNavi MCP HTTP-Dienst gestartet",
|
||||
"ai_settings.mcp_http.message.stopped": "GoNavi MCP HTTP-Dienst gestoppt",
|
||||
"ai_settings.mcp_http.message.toggle_failed": "GoNavi MCP HTTP-Dienst konnte nicht umgeschaltet werden",
|
||||
"ai_settings.mcp_http.message.url_unavailable": "Keine MCP HTTP-URL zum Kopieren verfügbar",
|
||||
"ai_settings.mcp_http.message.url_copied": "MCP HTTP-URL kopiert",
|
||||
"ai_settings.mcp_http.message.authorization_header_required": "Starten Sie zuerst den MCP HTTP-Dienst, um den Authorization Header zu erzeugen",
|
||||
"ai_settings.mcp_http.message.authorization_header_copied": "Authorization Header kopiert",
|
||||
"ai_settings.mcp_http.status.not_running": "GoNavi MCP HTTP-Dienst läuft nicht",
|
||||
"ai_settings.skill.message.saved": "Skill gespeichert",
|
||||
"ai_settings.skill.message.save_failed": "Skill konnte nicht gespeichert werden",
|
||||
"ai_settings.skill.message.deleted": "Skill gelöscht",
|
||||
"ai_settings.skill.message.delete_failed": "Skill konnte nicht gelöscht werden",
|
||||
"ai_settings.tools.description": "Bei Datenbankfragen kann der AI-Assistent diese integrierten Tools automatisch aufrufen, um echte Daten ohne manuelle Eingriffe abzurufen.",
|
||||
"ai_settings.tools.workflow": "💡 Ablauf: get_connections → get_databases → get_tables → get_columns → SQL erzeugen",
|
||||
"ai_settings.tools.params_label": "Parameter:",
|
||||
"ai_settings.tools.builtin_tool_label": "Integriertes Tool",
|
||||
"ai_settings.tools.search.aria_label": "Integrierte Tools suchen",
|
||||
"ai_settings.tools.search.placeholder": "Tools, Abläufe oder Parameter suchen, z. B. mcp / lineLimit / allowMutating / transaction",
|
||||
"ai_settings.tools.search.clear": "Löschen",
|
||||
"ai_settings.tools.summary": "{{flowVisible}}/{{flowTotal}} empfohlene Abläufe und {{toolVisible}}/{{toolTotal}} integrierte Tools werden angezeigt.",
|
||||
"ai_settings.tools.empty.no_matches": "Keine passenden integrierten Tools. Versuchen Sie allgemeinere Stichwörter wie mcp, logs, connection, transaction, shortcuts oder schema.",
|
||||
"ai_settings.tools.parameters.hint_title": "Parameterhinweise",
|
||||
"ai_settings.tools.parameters.type_label": "Typ: {{type}}",
|
||||
"ai_settings.tools.parameters.required": "Pflichtfeld",
|
||||
"ai_settings.tools.parameters.optional": "Optional",
|
||||
"ai_settings.tools.parameters.enum_values": "Zulässige Werte: {{values}}",
|
||||
"ai_settings.tools.parameters.default_value": "Standard: {{value}}",
|
||||
"ai_settings.tools.parameters.example": "Beispiel:",
|
||||
"ai_settings.tools.params.none": "Keine Parameter",
|
||||
"ai_settings.tools.get_connections.desc": "Alle verfügbaren Datenbankverbindungen abrufen",
|
||||
"ai_settings.tools.get_connections.detail": "Gibt Verbindungs-ID, Name, Typ (MySQL/PostgreSQL usw.) und Host-Adresse zurück. AI entscheidet anhand dieser Informationen, welche Verbindung zuerst untersucht wird.",
|
||||
@@ -3521,6 +3905,38 @@
|
||||
"data_sync.action.previous": "Zurück",
|
||||
"data_sync.action.start_sync": "Synchronisierung starten",
|
||||
"data_sync.action.view": "Ansehen",
|
||||
"data_sync.compare_entry.action.return_to_compare": "Zurück zum Vergleich",
|
||||
"data_sync.compare_entry.alert.data": "Dies ist der Datenvergleich. Er analysiert nur zeilenweise Unterschiede nach Primärschlüssel und schreibt keine Daten.",
|
||||
"data_sync.compare_entry.alert.schema": "Dies ist der Strukturvergleich. Er analysiert nur Strukturunterschiede und erzeugt prüfbares SQL, ohne Änderungen auszuführen.",
|
||||
"data_sync.compare_entry.option.auto_add_columns": "Kompatibles Änderungs-SQL für fehlende Zielspalten erzeugen (nur Vorschau, keine Ausführung)",
|
||||
"data_sync.compare_entry.option.source_dataset.query": "Nach SQL-Ergebnismenge vergleichen",
|
||||
"data_sync.compare_entry.option.source_dataset.table": "Nach Tabelle vergleichen",
|
||||
"data_sync.compare_entry.preview.selection_hint": "Die Zeilenauswahl wirkt sich nur auf den SQL-Vorschaubereich aus und schreibt keine Daten.",
|
||||
"data_sync.compare_entry.preview.sql.data_help": "Die SQL-Vorschau wird aus den ausgewählten Einfüge-, Aktualisierungs-, Lösch- und Zeilenbereichen erzeugt und dient nur der Differenzprüfung.",
|
||||
"data_sync.compare_entry.preview.sql.schema_help": "Die SQL-Vorschau zeigt empfohlene Anweisungen für Strukturunterschiede und dient nur der Prüfung.",
|
||||
"data_sync.compare_entry.result.completed": "Vergleich abgeschlossen",
|
||||
"data_sync.compare_entry.result.failed": "Vergleich fehlgeschlagen",
|
||||
"data_sync.compare_entry.result.running": "Vergleich läuft",
|
||||
"data_sync.compare_entry.result.running_description": "Aktuelle Phase: {{stage}}{{table}}",
|
||||
"data_sync.compare_entry.result.stage_fallback": "Wird ausgeführt",
|
||||
"data_sync.compare_entry.result.success_summary": "{{tables}} Tabellen erfolgreich verglichen.",
|
||||
"data_sync.compare_entry.result.table_suffix": ", Tabelle: {{table}}",
|
||||
"data_sync.compare_entry.title.analysis_log": "Analyseprotokoll",
|
||||
"data_sync.compare_entry.workflow_help": "Dieser Einstieg analysiert nur Unterschiede und zeigt Vorschauen. Er synchronisiert nicht, erstellt keine Tabellen, ergänzt keine Spalten und löscht keine Daten.",
|
||||
"data_sync.entry_mode.compare.action.start": "Vergleich starten",
|
||||
"data_sync.entry_mode.compare.option_title": "Vergleichsoptionen",
|
||||
"data_sync.entry_mode.compare.result_title": "Vergleichsergebnis",
|
||||
"data_sync.entry_mode.data_compare.badge": "Datenvergleich",
|
||||
"data_sync.entry_mode.data_compare.description": "Vergleicht Datenunterschiede zwischen Quell- und Zieltabelle nach Primärschlüssel und zeigt Einfügungen, Aktualisierungen und Löschungen.",
|
||||
"data_sync.entry_mode.data_compare.hero_description": "Geeignet zum Prüfen der Datenkonsistenz. Es werden nur Unterschiede analysiert und Zeilen angezeigt, ohne Daten zu schreiben.",
|
||||
"data_sync.entry_mode.data_compare.table_select_label": "Tabellen für den Datenvergleich auswählen:",
|
||||
"data_sync.entry_mode.data_compare.title": "Datenvergleich",
|
||||
"data_sync.entry_mode.schema_compare.badge": "Strukturvergleich",
|
||||
"data_sync.entry_mode.schema_compare.description": "Erzeugt Strukturunterschiede, Kompatibilitätsrisiken und prüfbares SQL zwischen Quell- und Zieltabelle.",
|
||||
"data_sync.entry_mode.schema_compare.hero_description": "Geeignet vor Releases, um Strukturunterschiede zu prüfen. Es wird nur analysiert und angezeigt, ohne Strukturänderungen auszuführen.",
|
||||
"data_sync.entry_mode.schema_compare.table_select_label": "Tabellen für den Strukturvergleich auswählen:",
|
||||
"data_sync.entry_mode.schema_compare.title": "Tabellenstrukturvergleich",
|
||||
"data_sync.entry_mode.sync.hero_description": "Geeignet, wenn Zieltabellen bereits vorhanden sind. Zuerst Unterschiede analysieren, dann ausgewählte Einfügungen, Aktualisierungen oder Löschungen ausführen.",
|
||||
"data_sync.alert.auto_create_scope": "Automatisches Erstellen von Tabellen unterstützt derzeit nur MySQL nach Kingbase. Spalten, Primärschlüssel, normale Indizes, eindeutige Indizes und zusammengesetzte Indizes werden migriert; Volltext-, räumliche, Präfix- und Funktionsindizes werden ausdrücklich übersprungen.",
|
||||
"data_sync.alert.auto_create_planner_scope": "Automatisches Erstellen von Tabellen unterstützt derzeit nur MySQL nach Kingbase. Spalten, Primärschlüssel, normale Indizes, eindeutige Indizes und zusammengesetzte Indizes werden migriert; Volltext-, räumliche, Präfix- und Funktionsindizes werden ausdrücklich übersprungen.",
|
||||
"data_sync.alert.existing_target_only": "Die Datensynchronisierung arbeitet standardmäßig mit vorhandenen Zieltabellen. Wechseln Sie zur datenbankübergreifenden Migration, wenn Tabellen erstellt und Daten importiert werden sollen.",
|
||||
@@ -4373,6 +4789,11 @@
|
||||
"app.theme.font_family.loading_ui_hint": "Installierte Schriften des aktuellen Systems werden in Echtzeit geladen. Tippen Sie zum Suchen. Leeren setzt auf die Standard-UI-Schrift zurück.",
|
||||
"app.theme.font_family.mono_fallback_hint": "Häufige Code-Schriftvorgaben werden verwendet. Gilt für Monospace-Inhalte wie SQL-Editor, AI-Codeblöcke, Logs, DDL und Datentabellen.",
|
||||
"app.theme.font_family.mono_hint": "Installierte Systemschriften werden zuerst angezeigt; Namen nahe Mono/Code/Console werden höher eingestuft. Gilt für Monospace-Inhalte wie SQL-Editor, AI-Codeblöcke, Logs, DDL und Datentabellen.",
|
||||
"app.theme.font_family.linux_cjk_install_prefix": "Ubuntu/Linux hat keine chinesischen CJK-Schriften erkannt; die Oberfläche kann fehlende Glyphen als Kästchen anzeigen. Installieren Sie: ",
|
||||
"app.theme.font_family.linux_cjk_install_suffix": ", und starten Sie GoNavi danach neu.",
|
||||
"app.linux_cjk_font_banner.title": "Linux-CJK-Schriften fehlen",
|
||||
"app.linux_cjk_font_banner.description": "Chinesischer Text kann als Kästchen für fehlende Glyphen erscheinen. Installieren Sie die Schriften und starten Sie GoNavi danach neu: ",
|
||||
"app.linux_cjk_font_banner.action.open_font_settings": "Schrifteinstellungen",
|
||||
"app.theme.data_table.density": "Tabellendichte",
|
||||
"app.theme.data_table.density.comfortable": "Komfortabel",
|
||||
"app.theme.data_table.density.standard": "Standard",
|
||||
|
||||
@@ -470,6 +470,35 @@
|
||||
"app.theme.ui_version.legacy.description": "The current stable interface with all features fully available.",
|
||||
"app.theme.ui_version.legacy.label": "Old UI",
|
||||
"app.theme.ui_version.platform_hint": "Windows, macOS, and Linux can all switch versions. Changes take effect immediately, and some modals use the new style the next time they open.",
|
||||
"app.theme.ui_version.sidebar_search.command": "New Command Search",
|
||||
"app.theme.ui_version.sidebar_search.filter": "Legacy Sidebar Filter",
|
||||
"app.theme.ui_version.sidebar_search.hint": "New Command Search is better for jumping to connections, tables, and actions. Enable sync in the panel to keep filtering the left tree; Legacy Sidebar Filter shows the input directly and keeps the filter text.",
|
||||
"app.theme.ui_version.sidebar_search.title": "New Left Sidebar Search Mode",
|
||||
"app.theme.tab_display.title": "Tab Label Display",
|
||||
"app.theme.tab_display.description": "Customize the display order for connection name, object type, object name, database, Schema, and Host/IP. In double-line mode, context can be placed on the secondary row.",
|
||||
"app.theme.tab_display.layout.single": "Single line",
|
||||
"app.theme.tab_display.layout.double": "Double line",
|
||||
"app.theme.tab_display.badge.current": "Current",
|
||||
"app.theme.tab_display.row.primary": "Primary row",
|
||||
"app.theme.tab_display.row.secondary": "Secondary row",
|
||||
"app.theme.tab_display.action.move_up": "Move up",
|
||||
"app.theme.tab_display.action.move_down": "Move down",
|
||||
"app.theme.tab_display.preview.prefix": "Current preview: ",
|
||||
"app.theme.tab_display.preview.default_label": "Default label",
|
||||
"app.theme.tab_display.preview.secondary": ", secondary row {{labels}}",
|
||||
"app.theme.tab_display.preview.focused": "; selected {{label}}",
|
||||
"app.theme.tab_display.element.connection.label": "Connection",
|
||||
"app.theme.tab_display.element.connection.description": "Connection alias or environment name, for example DEV",
|
||||
"app.theme.tab_display.element.kind.label": "Object type",
|
||||
"app.theme.tab_display.element.kind.description": "Type labels such as SQL / TABLE / VIEW",
|
||||
"app.theme.tab_display.element.object.label": "Object name",
|
||||
"app.theme.tab_display.element.object.description": "Core names such as table, query, or resource names",
|
||||
"app.theme.tab_display.element.database.label": "Database",
|
||||
"app.theme.tab_display.element.database.description": "Current DB / catalog name",
|
||||
"app.theme.tab_display.element.schema.label": "Schema",
|
||||
"app.theme.tab_display.element.schema.description": "schema / owner prefix",
|
||||
"app.theme.tab_display.element.host.label": "Host/IP",
|
||||
"app.theme.tab_display.element.host.description": "Connection target address summary",
|
||||
"app.theme.ui_version.title": "Interface Version",
|
||||
"app.theme.ui_version.v2.badge": "Beta",
|
||||
"app.theme.ui_version.v2.description": "A redesigned compact interface with stronger AI entry points and table overview.",
|
||||
@@ -493,6 +522,10 @@
|
||||
"app.window_zoom.message.windows_only": "This feature is only available on Windows",
|
||||
"app.tools.entry.shortcuts.description": "View and adjust global shortcut bindings.",
|
||||
"app.tools.entry.shortcuts.title": "Shortcut Manager",
|
||||
"app.tools.entry.schema_compare.description": "Compare structural differences between source and target tables, preview only without execution.",
|
||||
"app.tools.entry.schema_compare.title": "Schema Compare",
|
||||
"app.tools.entry.data_compare.description": "Analyze inserted, updated, deleted, and unchanged rows by primary key.",
|
||||
"app.tools.entry.data_compare.title": "Data Compare",
|
||||
"app.tools.entry.sync.description": "Open the cross-source sync workflow.",
|
||||
"app.tools.entry.sync.title": "Data Sync",
|
||||
"app.tools.title": "Tools Center",
|
||||
@@ -527,6 +560,18 @@
|
||||
"app.browser_mock.export_sql_unsupported": "Browser mock does not support SQL file export",
|
||||
"app.browser_mock.import_connection_package_unsupported": "Browser mock does not support recovery package import; only legacy JSON connection arrays are supported",
|
||||
"app.browser_mock.export_connection_package_unsupported": "Browser mock does not support recovery package export",
|
||||
"app.browser_mock.mcp_http.not_running": "GoNavi MCP HTTP service is not running",
|
||||
"app.browser_mock.mcp_http.started": "GoNavi MCP HTTP service has started",
|
||||
"app.browser_mock.mcp_http.stopped": "GoNavi MCP HTTP service has stopped",
|
||||
"app.browser_mock.mcp_server.command_required": "MCP command cannot be empty",
|
||||
"app.browser_mock.mcp_server.test_success": "MCP mock test succeeded",
|
||||
"app.browser_mock.mcp_tool.unavailable": "Browser mock is not connected to a real MCP service",
|
||||
"app.browser_mock.mcp_client.claude_code.installed": "Claude Code user-level MCP configuration has been written. Restart Claude CLI, then GoNavi will appear under User MCPs in /mcp.",
|
||||
"app.browser_mock.mcp_client.claude_code.not_detected": "No Claude Code user-level GoNavi MCP configuration was detected",
|
||||
"app.browser_mock.mcp_client.codex.installed": "Codex user-level MCP configuration has been written. Restart Codex CLI or the desktop app to see GoNavi.",
|
||||
"app.browser_mock.mcp_client.codex.path_mismatch": "A GoNavi MCP record was detected in Codex, but it does not match the current GoNavi installation path. Updating is recommended.",
|
||||
"app.browser_mock.provider.test_failed_detail": "Connection test failed: {{detail}}",
|
||||
"app.browser_mock.provider.test_success": "Endpoint connectivity test succeeded",
|
||||
"app.update.action.hide_to_background": "Hide to Background",
|
||||
"app.update.action.install_update": "Install Update",
|
||||
"app.update.action.open_install_directory": "Open Install Directory",
|
||||
@@ -596,7 +641,66 @@
|
||||
"query.new": "New Query",
|
||||
"query.run": "Run",
|
||||
"query.save": "Save Query",
|
||||
"saved_query.default_name": "Query {{index}}",
|
||||
"query.stop": "Stop",
|
||||
"message_publish_modal.title": "Test message publish",
|
||||
"message_publish_modal.title_with_connection": "Test message publish · {{connectionName}}",
|
||||
"message_publish_modal.action.send": "Send",
|
||||
"message_publish_modal.error.build_command_failed": "Failed to build the publish command",
|
||||
"message_publish_modal.error.send_failed_detail": "Send failed: {{detail}}",
|
||||
"message_publish_modal.error.unknown_error": "Unknown error",
|
||||
"message_publish_modal.field.exchange.label": "Exchange (optional)",
|
||||
"message_publish_modal.field.exchange.extra": "Leave empty to use the default exchange. If you enter a custom exchange, make sure the target Queue has a binding.",
|
||||
"message_publish_modal.field.exchange.placeholder": "Example: events.topic",
|
||||
"message_publish_modal.field.routing_key.label": "Routing Key (optional)",
|
||||
"message_publish_modal.field.routing_key.extra": "Leave empty to use the current Queue name by default.",
|
||||
"message_publish_modal.field.routing_key.placeholder": "Example: orders.queue",
|
||||
"message_publish_modal.field.qos.extra": "0 is at most once, 1 is at least once, and 2 is exactly once.",
|
||||
"message_publish_modal.field.retain.label": "Retain message",
|
||||
"message_publish_modal.field.tag.label": "Tag (optional)",
|
||||
"message_publish_modal.field.tag.extra": "Leave empty to skip filtering or writing a Tag.",
|
||||
"message_publish_modal.field.delay_level.label": "Delay Level (optional)",
|
||||
"message_publish_modal.field.delay_level.extra": "RocketMQ uses fixed delay levels. 0 sends immediately.",
|
||||
"message_publish_modal.field.body_mode.label": "Message body type",
|
||||
"message_publish_modal.field.body.label": "Message body",
|
||||
"message_publish_modal.field.body.required": "Enter the message body",
|
||||
"message_publish_modal.field.body.extra": "JSON mode requires valid JSON. Text mode sends the content as-is.",
|
||||
"message_publish_modal.field.body.placeholder": "Enter the message body",
|
||||
"message_publish_modal.field.headers.label": "Headers (optional)",
|
||||
"message_publish_modal.field.headers.extra": "Must be a JSON object, for example {{example}}.",
|
||||
"message_publish_modal.field.properties.label": "Properties (optional)",
|
||||
"message_publish_modal.field.properties.extra": "Must be a JSON object, for example {{example}}.",
|
||||
"message_publish_modal.option.no_delay": "No delay",
|
||||
"message_publish_modal.option.text": "Text",
|
||||
"message_publish_modal.footer.success_prefix": "A successful send returns",
|
||||
"message_publish_modal.footer.success_suffix": " to confirm whether this test message was submitted.",
|
||||
"message_publish.field.body": "Message body",
|
||||
"message_publish.field.message_key": "Message Key",
|
||||
"message_publish.error.destination_required": "Enter a target Topic / Queue",
|
||||
"message_publish.error.required_field": "{{field}} is required",
|
||||
"message_publish.error.invalid_json_detail": "{{field}} is not valid JSON: {{detail}}",
|
||||
"message_publish.error.json_object_required": "{{field}} must be a JSON object",
|
||||
"message_publish.error.mqtt_wildcard_topic": "MQTT publish Topic cannot contain + or # wildcards",
|
||||
"message_publish.error.unsupported_type": "The current data source does not support test message publishing: {{type}}",
|
||||
"message_publish.presentation.rabbitmq.destination_placeholder": "Example: orders.queue",
|
||||
"message_publish.presentation.rabbitmq.destination_required": "Enter a Queue",
|
||||
"message_publish.presentation.rabbitmq.alert": "This form builds a RabbitMQ publish JSON command and sends a test message through the Management API.",
|
||||
"message_publish.presentation.rabbitmq.success_hint": "When Exchange is empty, the default exchange is used and the Queue name is used as the routing key.",
|
||||
"message_publish.presentation.rocketmq.destination_placeholder": "Example: orders.events",
|
||||
"message_publish.presentation.topic_required": "Enter a Topic",
|
||||
"message_publish.presentation.rocketmq.alert": "This form builds a RocketMQ publish JSON command and sends a test message through the NameServer/Broker.",
|
||||
"message_publish.presentation.rocketmq.success_hint": "Tag, Keys, Delay Level, and Properties are written into the RocketMQ message attributes.",
|
||||
"message_publish.presentation.keys_label": "Message Keys (optional)",
|
||||
"message_publish.presentation.rocketmq.key_placeholder": "Enter multiple Key values separated by commas",
|
||||
"message_publish.presentation.rocketmq.tag_placeholder": "Example: TagA",
|
||||
"message_publish.presentation.mqtt.destination_placeholder": "Example: devices/device-001/telemetry",
|
||||
"message_publish.presentation.mqtt.alert": "This form builds an MQTT publish JSON command and sends a test message directly through the broker.",
|
||||
"message_publish.presentation.mqtt.success_hint": "QoS and retain can be set separately. Empty fields use the defaults from the current connection.",
|
||||
"message_publish.presentation.kafka.destination_placeholder": "Example: orders.events",
|
||||
"message_publish.presentation.kafka.alert": "This form builds a Kafka publish JSON command and calls the backend to send a test message.",
|
||||
"message_publish.presentation.kafka.success_hint": "Headers are sent as Kafka Record Headers.",
|
||||
"message_publish.presentation.key_label": "Message Key (optional)",
|
||||
"message_publish.presentation.kafka.key_placeholder": "Optional. In JSON mode, enter one valid JSON line.",
|
||||
"connection_modal.action.browse": "Browse...",
|
||||
"connection_modal.action.disable": "Disable",
|
||||
"connection_modal.action.discover_members": "Discover members",
|
||||
@@ -644,6 +748,7 @@
|
||||
"connection_modal.field.tunnel_password_optional": "HTTP Tunnel password (optional)",
|
||||
"connection_modal.field.tunnel_username_optional": "HTTP Tunnel username (optional)",
|
||||
"connection_modal.field.username": "Username",
|
||||
"connection_modal.field.username.optional_placeholder": "Leave empty when authentication is disabled",
|
||||
"connection_modal.help.additional_hosts": "Optional MongoDB members, separated by comma, semicolon, or space.",
|
||||
"connection_modal.help.additional_srv_hosts": "Optional additional SRV hosts for MongoDB discovery.",
|
||||
"connection_modal.help.connection_timeout": "Applies to connection tests and metadata loading. Range: 1-300 seconds.",
|
||||
@@ -707,6 +812,66 @@
|
||||
"connection_modal.jvm.read_only_first": "Prefer read-only operations",
|
||||
"connection_modal.jvm.security_policy": "Security policy",
|
||||
"connection_modal.message.srv_with_ssh_dns_warning": "SRV with SSH Tunnel may depend on local DNS resolution. If resolution fails, use standard hosts.",
|
||||
"connection_modal.messageQueue.kafka.defaultTopic.label": "Default Topic (optional)",
|
||||
"connection_modal.messageQueue.kafka.defaultTopic.help": "Specify a Topic in SQL when this is empty. After it is set, SHOW, CONSUME, or SELECT can preview data directly.",
|
||||
"connection_modal.messageQueue.kafka.defaultTopic.placeholder": "For example: orders.events",
|
||||
"connection_modal.messageQueue.rocketmq.defaultTopic.label": "Default Topic (optional)",
|
||||
"connection_modal.messageQueue.rocketmq.defaultTopic.help": "Specify a Topic in SQL when this is empty. Connection parameters can still add groupId, namespace, tag, pullBatchSize, and startOffset.",
|
||||
"connection_modal.messageQueue.rocketmq.defaultTopic.placeholder": "For example: orders.events",
|
||||
"connection_modal.messageQueue.mqtt.defaultTopicFilter.label": "Default Topic / Filter (optional)",
|
||||
"connection_modal.messageQueue.mqtt.defaultTopicFilter.help": "Specify a Topic in SQL when this is empty. After it is set, SHOW, CONSUME, or SELECT can preview data directly. Supports /, +, and #.",
|
||||
"connection_modal.messageQueue.mqtt.defaultTopicFilter.placeholder": "For example: devices/+/telemetry",
|
||||
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.label": "Default Virtual Host (optional)",
|
||||
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.help": "When empty, / is used by default. After it is set, the query editor uses the current vhost as the Queue browsing and test publishing context.",
|
||||
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.placeholder": "For example: / or orders-vhost",
|
||||
"connection_modal.messageQueue.topology.cluster.label": "Cluster mode",
|
||||
"connection_modal.messageQueue.kafka.topology.single.label": "Single Broker",
|
||||
"connection_modal.messageQueue.kafka.topology.single.description": "Configure one bootstrap broker for local or simple environments.",
|
||||
"connection_modal.messageQueue.kafka.topology.cluster.description": "Configure multiple bootstrap brokers to improve discovery and failover success.",
|
||||
"connection_modal.messageQueue.rocketmq.topology.single.label": "Single NameServer",
|
||||
"connection_modal.messageQueue.rocketmq.topology.single.description": "Configure one NameServer for local or simple environments.",
|
||||
"connection_modal.messageQueue.rocketmq.topology.cluster.description": "Configure multiple NameServers to improve route discovery and failover success.",
|
||||
"connection_modal.messageQueue.mqtt.topology.single.label": "Single Broker",
|
||||
"connection_modal.messageQueue.mqtt.topology.single.description": "Configure one broker for local or simple environments.",
|
||||
"connection_modal.messageQueue.mqtt.topology.cluster.description": "Configure multiple brokers to improve connection discovery and failover success.",
|
||||
"connection_modal.messageQueue.kafka.extraBrokers.label": "Additional Broker addresses",
|
||||
"connection_modal.messageQueue.kafka.extraBrokers.help": "Enter multiple broker addresses in host:port format and press Enter to confirm.",
|
||||
"connection_modal.messageQueue.kafka.extraBrokers.placeholder": "For example: 10.10.0.12:9092, 10.10.0.13:9092",
|
||||
"connection_modal.messageQueue.rocketmq.extraNameServers.label": "Additional NameServer addresses",
|
||||
"connection_modal.messageQueue.rocketmq.extraNameServers.help": "Enter multiple NameServer addresses in host:port format and press Enter to confirm.",
|
||||
"connection_modal.messageQueue.rocketmq.extraNameServers.placeholder": "For example: 10.10.0.12:9876, 10.10.0.13:9876",
|
||||
"connection_modal.messageQueue.mqtt.extraBrokers.label": "Additional Broker addresses",
|
||||
"connection_modal.messageQueue.mqtt.extraBrokers.help": "Enter multiple broker addresses in host:port format and press Enter to confirm.",
|
||||
"connection_modal.messageQueue.mqtt.extraBrokers.placeholder": "For example: 10.10.0.12:1883, 10.10.0.13:1883",
|
||||
"connection_modal.redis.topology.single.label": "Standalone mode",
|
||||
"connection_modal.redis.topology.single.description": "Connect to one Redis node.",
|
||||
"connection_modal.redis.topology.cluster.label": "Cluster mode",
|
||||
"connection_modal.redis.topology.cluster.description": "Redis Cluster with multiple seed nodes.",
|
||||
"connection_modal.redis.topology.sentinel.label": "Sentinel mode",
|
||||
"connection_modal.redis.topology.sentinel.description": "Discover the primary node through Sentinel for primary-replica high availability.",
|
||||
"connection_modal.redis.hosts.sentinel.label": "Additional Sentinel node addresses",
|
||||
"connection_modal.redis.hosts.sentinel.help": "The host above is used as the first Sentinel. Enter other Sentinel nodes here in host:port format.",
|
||||
"connection_modal.redis.hosts.sentinel.placeholder": "For example: 10.10.0.12:26379, 10.10.0.13:26379",
|
||||
"connection_modal.redis.hosts.cluster.label": "Additional cluster node addresses",
|
||||
"connection_modal.redis.hosts.cluster.help": "The host above is used as the primary node. Enter other seed nodes here in host:port format.",
|
||||
"connection_modal.redis.hosts.cluster.placeholder": "For example: 10.10.0.12:6379, 10.10.0.13:6379",
|
||||
"connection_modal.redis.sentinel.master.label": "Sentinel master name",
|
||||
"connection_modal.redis.sentinel.master.help": "Enter the monitor name from the Sentinel configuration, for example mymaster.",
|
||||
"connection_modal.redis.sentinel.master.required": "Enter the Sentinel master name",
|
||||
"connection_modal.redis.sentinel.master.placeholder": "For example: mymaster",
|
||||
"connection_modal.redis.credentials.primary.label": "Password (optional)",
|
||||
"connection_modal.redis.credentials.primary.placeholder.empty": "Redis password if requirepass is set",
|
||||
"connection_modal.redis.credentials.primary.placeholder.retained": "Saved Redis password",
|
||||
"connection_modal.redis.credentials.sentinelUser.label": "Sentinel username (optional)",
|
||||
"connection_modal.redis.credentials.sentinelUser.placeholder": "Leave empty when Sentinel does not use an ACL username",
|
||||
"connection_modal.redis.credentials.sentinelPassword.label": "Sentinel password (optional)",
|
||||
"connection_modal.redis.credentials.sentinelPassword.placeholder.empty": "Sentinel authentication password. Leave empty to send none.",
|
||||
"connection_modal.redis.credentials.sentinelPassword.placeholder.retained": "Saved Sentinel password",
|
||||
"connection_modal.redis.credentials.sentinelPassword.clear": "Clear saved Sentinel password",
|
||||
"connection_modal.redis.credentials.sentinelPassword.description": "A Sentinel password is currently saved. Leave this empty to keep it, or enter a new value to replace it.",
|
||||
"connection_modal.redis.databaseScope.label": "Databases to show (empty shows all)",
|
||||
"connection_modal.redis.databaseScope.help": "Selectable after the connection test succeeds",
|
||||
"connection_modal.redis.databaseScope.placeholder": "Select databases to show",
|
||||
"connection_modal.mongodb.auth.auto": "Auto",
|
||||
"connection_modal.mongodb.auth.auto_description": "Let the driver choose the authentication mechanism.",
|
||||
"connection_modal.mongodb.auth.aws_iam_description": "Use AWS IAM authentication. Keep AWS IAM credentials in the runtime environment.",
|
||||
@@ -715,6 +880,35 @@
|
||||
"connection_modal.mongodb.auth.scram_sha1_description": "Use SCRAM-SHA-1 authentication.",
|
||||
"connection_modal.mongodb.auth.scram_sha256_description": "Use SCRAM-SHA-256 authentication.",
|
||||
"connection_modal.mongodb.auth_mechanism": "Authentication mechanism",
|
||||
"connection_modal.mongodb.topology.single.label": "Standalone mode",
|
||||
"connection_modal.mongodb.topology.replica.label": "Replica set / multi-node",
|
||||
"connection_modal.mongodb.discovery.standard.label": "Standard address",
|
||||
"connection_modal.mongodb.discovery.standard.description": "Connect directly with host:port or use a replica set node list.",
|
||||
"connection_modal.mongodb.discovery.srv.label": "SRV address",
|
||||
"connection_modal.mongodb.discovery.srv.description": "Use mongodb+srv and let DNS discover target nodes.",
|
||||
"connection_modal.mongodb.discovery.current": "Current",
|
||||
"connection_modal.mongodb.discovery.srv_ssh_warning": "When SRV and SSH tunnel are both enabled, local DNS resolution may be required.",
|
||||
"connection_modal.mongodb.replica.hosts.srv.label": "Additional SRV hosts (optional)",
|
||||
"connection_modal.mongodb.replica.hosts.srv.help": "Enter multiple candidate host names in host format. Leave empty to use only the host above.",
|
||||
"connection_modal.mongodb.replica.hosts.srv.placeholder": "For example: cluster-a.example.com, cluster-b.example.com",
|
||||
"connection_modal.mongodb.replica.hosts.standard.label": "Additional node addresses",
|
||||
"connection_modal.mongodb.replica.hosts.standard.help": "Enter multiple node addresses in host:port format and press Enter to confirm.",
|
||||
"connection_modal.mongodb.replica.hosts.standard.placeholder": "For example: 10.10.0.12:27017, 10.10.0.13:27017",
|
||||
"connection_modal.mongodb.replica.set.label": "Replica set name (optional)",
|
||||
"connection_modal.mongodb.replica.set.placeholder": "For example: rs0",
|
||||
"connection_modal.mongodb.replica.user.label": "Replica set username (optional)",
|
||||
"connection_modal.mongodb.replica.user.placeholder": "Leave empty to reuse the primary username",
|
||||
"connection_modal.mongodb.replica.password.label": "Replica set password (optional)",
|
||||
"connection_modal.mongodb.replica.password.placeholder.empty": "Leave empty to reuse the primary password",
|
||||
"connection_modal.mongodb.replica.password.placeholder.retained": "Saved replica set password",
|
||||
"connection_modal.mongodb.replica.password.clear": "Clear saved replica set password",
|
||||
"connection_modal.mongodb.replica.password.description": "A replica set password is currently saved. Leave this empty to keep it, or enter a new value to replace it.",
|
||||
"connection_modal.mongodb.members.role": "Role",
|
||||
"connection_modal.mongodb.members.health": "Health",
|
||||
"connection_modal.mongodb.members.health.ok": "Healthy",
|
||||
"connection_modal.mongodb.members.health.error": "Unhealthy",
|
||||
"connection_modal.mongodb.policy.auth_source.label": "Auth database (authSource)",
|
||||
"connection_modal.mongodb.policy.auth_source.placeholder": "Defaults to database or admin",
|
||||
"connection_modal.mongodb.read_preference": "readPreference",
|
||||
"connection_modal.mongodb.read_preference.nearest": "Route reads to the nearest member.",
|
||||
"connection_modal.mongodb.read_preference.primary": "Read only from the primary.",
|
||||
@@ -878,6 +1072,9 @@
|
||||
"connection_modal.message.save_security_refresh_failed": "Configuration saved, but security metadata could not be refreshed",
|
||||
"connection_modal.message.save_failed": "Failed to save connection",
|
||||
"connection_modal.message.test_requires_new_password": "Enter the new connection password before testing.",
|
||||
"connection_modal.secret.blocking.redis_sentinel": "Enter a new Sentinel password before testing, or cancel clearing the saved Sentinel password",
|
||||
"connection_modal.test.redis_database_list_timeout": "Connected, but loading the Redis database list timed out (>{{seconds}} seconds)",
|
||||
"connection_modal.test.redis_database_list_failure": "Connected, but failed to load the Redis database list: {{detail}}",
|
||||
"connection_modal.message.test_requires_new_ssh_password": "Enter the new SSH password before testing.",
|
||||
"connection_modal.message.test_requires_new_proxy_password": "Enter the new proxy password before testing.",
|
||||
"connection_modal.message.test_requires_new_tunnel_password": "Enter the new HTTP Tunnel password before testing.",
|
||||
@@ -1018,20 +1215,32 @@
|
||||
"sidebar.message.export_failed": "Export failed: {{error}}",
|
||||
"sidebar.message.backing_up_database": "Backing up {{database}}...",
|
||||
"sidebar.message.exporting_database_schema": "Exporting schema for {{database}}...",
|
||||
"sidebar.message.exporting_database_backup": "Backing up {{database}} (schema and data)...",
|
||||
"sidebar.message.schema_export_target_missing": "Target schema was not found, so export cannot continue.",
|
||||
"sidebar.message.exporting_schema_structure": "Exporting structure for schema {{schema}}...",
|
||||
"sidebar.message.exporting_schema_backup": "Backing up schema {{schema}} (structure and data)...",
|
||||
"sidebar.message.export_tables_same_database_required": "Select tables from the same database.",
|
||||
"sidebar.message.backing_up_selected_tables": "Backing up {{count}} selected tables...",
|
||||
"sidebar.message.exporting_selected_table_schema": "Exporting schema for {{count}} selected tables...",
|
||||
"sidebar.message.load_database_list_failed": "Failed to load databases: {{error}}",
|
||||
"sidebar.message.load_table_list_failed": "Failed to load tables: {{error}}",
|
||||
"sidebar.message.locate_external_sql_file_not_found": "SQL file was not found in external SQL directories: {{path}}",
|
||||
"sidebar.message.locate_connection_not_found_for_object": "The connection for the current object was not found",
|
||||
"sidebar.message.locate_connection_not_in_tree": "Current connection was not found in the left tree",
|
||||
"sidebar.message.locate_database_loading": "Database node is still loading: {{database}}. Try again later",
|
||||
"sidebar.message.locate_database_not_found": "Database was not found in the left tree: {{database}}",
|
||||
"sidebar.message.locate_object_loading": "Database objects for {{object}} are still loading in {{database}}. Try again later",
|
||||
"sidebar.message.locate_object_not_found": "{{object}} was not found in the left tree: {{name}}. Refresh the database node and try again",
|
||||
"sidebar.message.select_object_required": "Select at least one object.",
|
||||
"sidebar.message.backing_up_selected_objects": "Backing up {{count}} selected objects...",
|
||||
"sidebar.message.exporting_selected_object_data": "Exporting data for {{count}} selected objects...",
|
||||
"sidebar.message.exporting_selected_object_data": "Exporting {{format}} data for {{count}} selected objects...",
|
||||
"sidebar.message.exporting_selected_object_schema": "Exporting schema for {{count}} selected objects...",
|
||||
"sidebar.message.export_success_skipped_views": "Export succeeded. {{count}} views were skipped for data export.",
|
||||
"sidebar.modal.confirm_clear_selected_tables.title": "Confirm clear selected tables",
|
||||
"sidebar.modal.confirm_clear_selected_tables.content": "Clear data in selected objects under {{connection}} / {{database}}? This cannot be undone.",
|
||||
"sidebar.action.continue": "Continue",
|
||||
"sidebar.action.cancel": "Cancel",
|
||||
"sidebar.action.delete": "Delete",
|
||||
"sidebar.message.clearing_selected_tables": "Clearing {{count}} selected tables...",
|
||||
"sidebar.message.clear_success": "Clear completed.",
|
||||
"sidebar.message.clear_failed": "Clear failed: {{error}}",
|
||||
@@ -1048,7 +1257,30 @@
|
||||
"sidebar.message.operation_create_failed": "Create failed: {{error}}",
|
||||
"sidebar.sql_file.default_name": "SQL file",
|
||||
"sidebar.message.sql_file_context_incomplete": "SQL file context is incomplete.",
|
||||
"sidebar.message.sql_file_path_incomplete": "SQL file path is incomplete, so it cannot be opened.",
|
||||
"sidebar.message.select_host_before_large_sql_file": "Select a Host before running a large SQL file.",
|
||||
"sidebar.message.read_sql_file_failed": "Failed to read SQL file: {{error}}",
|
||||
"sidebar.message.external_sql_file_parent_missing": "Could not find the directory for creating an SQL file.",
|
||||
"sidebar.message.external_sql_file_rename_target_missing": "Could not find the SQL file to rename.",
|
||||
"sidebar.message.external_sql_file_delete_target_missing": "Could not find the SQL file to delete.",
|
||||
"sidebar.message.external_sql_directory_parent_missing": "Could not find the location for creating a directory.",
|
||||
"sidebar.message.external_sql_directory_rename_target_missing": "Could not find the directory to rename.",
|
||||
"sidebar.message.external_sql_directory_delete_target_missing": "Could not find the SQL directory to delete.",
|
||||
"sidebar.message.sql_file_name_required": "SQL file name is required.",
|
||||
"sidebar.message.sql_directory_name_required": "Directory name is required.",
|
||||
"sidebar.message.create_sql_file_failed": "Failed to create SQL file: {{error}}",
|
||||
"sidebar.message.sql_file_created": "SQL file created.",
|
||||
"sidebar.message.rename_sql_file_failed": "Failed to rename SQL file: {{error}}",
|
||||
"sidebar.message.sql_file_renamed": "SQL file renamed.",
|
||||
"sidebar.message.delete_sql_file_failed": "Failed to delete SQL file: {{error}}",
|
||||
"sidebar.message.sql_file_deleted": "SQL file deleted.",
|
||||
"sidebar.message.create_sql_directory_failed": "Failed to create directory: {{error}}",
|
||||
"sidebar.message.sql_directory_created": "Directory created.",
|
||||
"sidebar.message.rename_sql_directory_failed": "Failed to rename directory: {{error}}",
|
||||
"sidebar.message.external_sql_directory_rename_sync_failed": "Directory was renamed, but the external SQL directory list could not be synchronized. Add the directory again.",
|
||||
"sidebar.message.sql_directory_renamed": "Directory renamed.",
|
||||
"sidebar.message.delete_sql_directory_failed": "Failed to delete SQL directory: {{error}}",
|
||||
"sidebar.message.sql_directory_deleted": "SQL directory deleted.",
|
||||
"sidebar.message.add_sql_directory_database_required": "Select a database before adding an SQL directory.",
|
||||
"sidebar.message.select_sql_directory_failed": "Failed to select SQL directory: {{error}}",
|
||||
"sidebar.message.sql_directory_path_invalid": "SQL directory path is invalid.",
|
||||
@@ -1062,6 +1294,10 @@
|
||||
"sidebar.message.create_failed": "Create failed: {{error}}",
|
||||
"sidebar.modal.confirm_delete_database.title": "Delete database",
|
||||
"sidebar.modal.confirm_delete_database.content": "Delete {{name}}? This cannot be undone.",
|
||||
"sidebar.modal.confirm_delete_sql_file.title": "Delete SQL file",
|
||||
"sidebar.modal.confirm_delete_sql_file.content": "Delete \"{{name}}\"? This will delete the local file from disk and cannot be undone.",
|
||||
"sidebar.modal.confirm_delete_sql_directory.title": "Delete SQL directory",
|
||||
"sidebar.modal.confirm_delete_sql_directory.content": "Delete \"{{name}}\"? This will delete the local directory from disk, and only empty directories can be deleted.",
|
||||
"sidebar.modal.confirm_delete_table.title": "Delete table",
|
||||
"sidebar.modal.confirm_delete_table.content": "Delete {{name}}? This cannot be undone.",
|
||||
"sidebar.modal.confirm_table_data_action.title": "Confirm {{action}}",
|
||||
@@ -1088,8 +1324,14 @@
|
||||
"sidebar.message.delete_connection_failed": "Failed to delete connection.",
|
||||
"sidebar.modal.confirm_delete_saved_query.content": "Delete saved query \"{{name}}\"? This action cannot be undone.",
|
||||
"sidebar.search.placeholder": "Search...",
|
||||
"sidebar.punctuation.list_separator": ", ",
|
||||
"sidebar.command_search.label": "Search tables, connections, actions",
|
||||
"sidebar.command_search.placeholder": "Search tables, connections, actions... or ask AI",
|
||||
"sidebar.command_search.sync_to_filter_tooltip": "Sync input to the left-side filter",
|
||||
"sidebar.command_search.sync_to_filter_aria": "Sync to left-side filter",
|
||||
"sidebar.command_search.reset_filter": "Reset sidebar filter",
|
||||
"sidebar.command_search.no_synced_filter": "No synced sidebar filter",
|
||||
"sidebar.command_search.no_filter_content": "No filter text",
|
||||
"sidebar.command_search.object_kind.all": "All",
|
||||
"sidebar.command_search.object_kind.tables": "Tables",
|
||||
"sidebar.command_search.object_kind.views": "Views",
|
||||
@@ -1135,6 +1377,13 @@
|
||||
"sidebar.v2_table_menu.view_in_er": "View in ER diagram",
|
||||
"sidebar.v2_table_menu.copy_section": "Copy",
|
||||
"sidebar.v2_table_menu.copy_table_name": "Copy table name",
|
||||
"sidebar.copy_object_name.label.table": "Table name",
|
||||
"sidebar.copy_object_name.label.view": "View name",
|
||||
"sidebar.copy_object_name.label.materialized_view": "Materialized view name",
|
||||
"sidebar.copy_object_name.label.event": "Event name",
|
||||
"sidebar.copy_object_name.empty": "{{label}} is empty and cannot be copied",
|
||||
"sidebar.copy_object_name.copied": "{{label}} copied to clipboard",
|
||||
"sidebar.copy_object_name.failed": "Failed to copy {{label}}: {{error}}",
|
||||
"sidebar.v2_table_menu.copy_table_as_insert": "Copy entire table as {{keyword}}",
|
||||
"sidebar.v2_table_menu.maintenance_section": "Maintenance",
|
||||
"sidebar.v2_table_menu.rename_compact": "Rename...",
|
||||
@@ -1159,6 +1408,11 @@
|
||||
"sidebar.v2_database_menu.export_all_table_schema_sql": "Export all table schemas · SQL",
|
||||
"sidebar.v2_database_menu.backup_all_tables_sql": "Back up all tables · schema + data SQL",
|
||||
"sidebar.message.locate_current_table_unavailable": "The current tab has no table to locate",
|
||||
"sidebar.locate.object.table": "Table",
|
||||
"sidebar.locate.object.view": "View",
|
||||
"sidebar.locate.object.materialized_view": "Materialized view",
|
||||
"sidebar.locate.object.routine": "Function/procedure",
|
||||
"sidebar.locate.object.trigger": "Trigger",
|
||||
"sidebar.active_connection.current_host_database": "Current host and database",
|
||||
"sidebar.active_connection.no_database_selected": "No database selected",
|
||||
"sidebar.active_connection.no_host_selected": "No host selected",
|
||||
@@ -1259,6 +1513,11 @@
|
||||
"sidebar.search.scope.host": "Host",
|
||||
"sidebar.search.scope.tag": "Tag",
|
||||
"sidebar.tree.saved_queries": "Saved queries",
|
||||
"sidebar.tree.untitled_query": "Untitled query",
|
||||
"sidebar.tree.default_database": "Default database",
|
||||
"sidebar.tree.unknown_connection": "Unknown connection",
|
||||
"sidebar.tree.unmatched_saved_queries": "Unmatched",
|
||||
"sidebar.tree.all_saved_queries": "All saved queries",
|
||||
"sidebar.tree.default_schema": "Default schema",
|
||||
"sidebar.object_group.tables": "Tables",
|
||||
"sidebar.object_group.views": "Views",
|
||||
@@ -1282,6 +1541,8 @@
|
||||
"sidebar.tab.new_table": "New table - {{database}}",
|
||||
"sidebar.tab.table_overview": "Table overview - {{database}}{{schema}}",
|
||||
"sidebar.tab.trigger": "Trigger: {{name}}",
|
||||
"sidebar.tab.event": "Event: {{name}}",
|
||||
"sidebar.tab.edit_event": "Edit event: {{name}}",
|
||||
"sidebar.tab.materialized_view_definition": "Materialized view: {{name}}",
|
||||
"sidebar.tab.view_definition": "View: {{name}}",
|
||||
"sidebar.tab.edit_view": "Edit view: {{name}}",
|
||||
@@ -1351,9 +1612,13 @@
|
||||
"tab_manager.hover.label.object": "Object",
|
||||
"tab_manager.hover.label.type": "Type",
|
||||
"sidebar.message.no_visible_databases": "No visible databases or schemas were returned. Check account permissions or refresh from the context menu.",
|
||||
"sidebar.message.visual_new_table_unsupported": "This data source does not support visual table creation yet.",
|
||||
"sidebar.message.jvm_resources_backend_unavailable": "JVM resource browsing is not available in this build.",
|
||||
"sidebar.message.external_sql_directory_read_failed": "Failed to read SQL directory {{name}}: {{error}}",
|
||||
"sidebar.message.sphinx_unsupported_objects": "This Sphinx instance does not expose these object capabilities: {{objects}}. Compatibility mode was applied.",
|
||||
"sidebar.message.sidebar_filter_sync_enabled": "Left-side filter sync enabled.",
|
||||
"sidebar.message.sidebar_filter_sync_disabled": "Left-side filter sync disabled.",
|
||||
"sidebar.message.sidebar_filter_reset": "Sidebar filter reset.",
|
||||
"sidebar.message.database_name_required": "Database name is required.",
|
||||
"sidebar.message.database_name_unchanged": "Database name is unchanged.",
|
||||
"sidebar.message.database_renamed": "Database renamed.",
|
||||
@@ -1404,6 +1669,9 @@
|
||||
"sidebar.menu.close_database": "Close database",
|
||||
"sidebar.menu.browse_view_data": "Browse view data",
|
||||
"sidebar.menu.view_definition": "View definition",
|
||||
"sidebar.menu.browse_materialized_view_data": "Browse materialized view data",
|
||||
"sidebar.menu.materialized_view_definition": "Materialized view definition",
|
||||
"sidebar.menu.view_object_definition": "View definition",
|
||||
"sidebar.menu.edit_view": "Edit view",
|
||||
"sidebar.menu.rename_view": "Rename view",
|
||||
"sidebar.menu.delete_view": "Delete view",
|
||||
@@ -1430,6 +1698,15 @@
|
||||
"sidebar.menu.refresh_directory": "Refresh directory",
|
||||
"sidebar.menu.remove_directory": "Remove directory",
|
||||
"sidebar.menu.open_sql_file": "Open SQL file",
|
||||
"sidebar.menu.new_sql_file": "New SQL file",
|
||||
"sidebar.menu.new_sql_directory": "New directory",
|
||||
"sidebar.menu.rename_sql_directory": "Rename directory",
|
||||
"sidebar.menu.delete_local_directory": "Delete local directory",
|
||||
"sidebar.menu.delete_sql_directory": "Delete directory",
|
||||
"sidebar.menu.rename_sql_file": "Rename SQL file",
|
||||
"sidebar.menu.new_sql_file_in_directory": "New SQL file in this directory",
|
||||
"sidebar.menu.new_sql_directory_in_directory": "New directory in this directory",
|
||||
"sidebar.menu.delete_sql_file": "Delete SQL file",
|
||||
"sidebar.batch.group.tables": "Tables",
|
||||
"sidebar.batch.group.views": "Views",
|
||||
"sidebar.batch.no_matching_objects": "No matching objects",
|
||||
@@ -1443,6 +1720,22 @@
|
||||
"connection_modal.network.ssl_mode.skip_verify": "Skip Verify",
|
||||
"sidebar.external_sql.root": "External SQL files",
|
||||
"sidebar.external_sql.directory_fallback": "SQL directory",
|
||||
"sidebar.external_sql_modal.title.create_file": "New SQL file",
|
||||
"sidebar.external_sql_modal.title.rename_file": "Rename SQL file",
|
||||
"sidebar.external_sql_modal.title.create_directory": "New directory",
|
||||
"sidebar.external_sql_modal.title.rename_directory": "Rename directory",
|
||||
"sidebar.external_sql_modal.action.create": "Create",
|
||||
"sidebar.external_sql_modal.action.rename": "Rename",
|
||||
"sidebar.external_sql_modal.field.directory_name": "Directory name",
|
||||
"sidebar.external_sql_modal.field.sql_file_name": "SQL file name",
|
||||
"sidebar.external_sql_modal.validation.directory_name_required": "Enter a directory name",
|
||||
"sidebar.external_sql_modal.validation.sql_file_name_required": "Enter a SQL file name",
|
||||
"sidebar.external_sql_modal.validation.directory_name_no_separator": "Directory name cannot contain path separators",
|
||||
"sidebar.external_sql_modal.validation.sql_file_name_no_separator": "File name cannot contain path separators",
|
||||
"sidebar.external_sql_modal.help.directory": "This directory only appears in the external SQL tree; non-SQL files still stay hidden",
|
||||
"sidebar.external_sql_modal.help.sql_file": "The .sql suffix is added automatically when omitted",
|
||||
"sidebar.external_sql_modal.placeholder.directory_name": "e.g. reports",
|
||||
"sidebar.external_sql_modal.placeholder.sql_file_name": "e.g. report.sql",
|
||||
"sidebar.jvm.action.monitoring": "Continuous monitoring",
|
||||
"sidebar.jvm.action.diagnostic": "Diagnostic enhancement",
|
||||
"sidebar.jvm.tab.overview": "JVM overview",
|
||||
@@ -1881,14 +2174,34 @@
|
||||
"query_editor.action.ai_explain_sql_menu": "Explain SQL",
|
||||
"query_editor.action.ai_optimize_sql_menu": "Optimize SQL",
|
||||
"query_editor.action.ai_schema_analysis": "Schema analysis",
|
||||
"query_editor.action.show_results_panel": "Show results panel",
|
||||
"query_editor.action.hide_results_panel": "Hide results panel",
|
||||
"query_editor.action.show_results_panel_with_shortcut": "Show results panel ({{shortcut}})",
|
||||
"query_editor.action.hide_results_panel_with_shortcut": "Hide results panel ({{shortcut}})",
|
||||
"query_editor.action.results": "Results",
|
||||
"query_editor.transaction.delay.immediate": "Immediately",
|
||||
"query_editor.transaction.mode.tooltip": "Like DBeaver: when the SQL editor runs DML such as INSERT/UPDATE/DELETE/MERGE/REPLACE, GoNavi first opens a managed transaction. Manual mode requires commit/rollback; auto mode automatically runs COMMIT after successful execution.",
|
||||
"query_editor.transaction.mode.manual": "Manual",
|
||||
"query_editor.transaction.mode.auto": "Auto",
|
||||
"query_editor.transaction.status.auto_commit_countdown": "Auto commit in {{seconds}}s",
|
||||
"query_editor.transaction.status.auto_committing": "Auto committing",
|
||||
"query_editor.transaction.action.commit": "Commit",
|
||||
"query_editor.transaction.action.commit_with_count": "Commit ({{count}})",
|
||||
"query_editor.transaction.action.rollback": "Rollback",
|
||||
"query_editor.transaction.message.pending_managed_transaction": "The SQL editor already has a pending transaction. Commit or roll it back before running another DML statement.",
|
||||
"query_editor.action.show_object_info": "Show Object Info",
|
||||
"query_editor.action.rename_query": "Rename query",
|
||||
"query_editor.action.export_sql_file": "Export SQL file",
|
||||
"query_editor.format.keyword_upper": "Uppercase keywords",
|
||||
"query_editor.format.keyword_lower": "Lowercase keywords",
|
||||
"query_editor.format.restore_last_format": "Restore last format",
|
||||
"query_editor.format.snippet_settings": "Snippet settings...",
|
||||
"query_editor.format.shortcut_settings": "Shortcut settings...",
|
||||
"query_editor.message.format_failed": "Format failed: SQL syntax may be invalid.",
|
||||
"query_editor.message.no_format_restore_snapshot": "No pre-format SQL snapshot is available to restore.",
|
||||
"query_editor.message.format_restore_success": "Restored the pre-format SQL snapshot.",
|
||||
"query_editor.message.page_query_failed": "Page query failed: {{error}}",
|
||||
"query_editor.message.page_query_empty": "The page query returned no result set.",
|
||||
"query_editor.message.refresh_failed": "Refresh failed: {{error}}",
|
||||
"query_editor.message.select_database_first": "Select a database first.",
|
||||
"query_editor.message.connection_not_found": "Connection not found.",
|
||||
@@ -1906,6 +2219,7 @@
|
||||
"query_editor.message.read_only_no_safe_locator": "No primary key or usable unique index was detected, so changes cannot be committed safely.",
|
||||
"query_editor.message.read_only_index_metadata_unavailable": "Unable to load unique index metadata, so changes cannot be committed safely.",
|
||||
"query_editor.message.read_only_table_locator_metadata_unavailable": "Unable to load primary key/unique index metadata for {{table}}, so changes cannot be committed safely.",
|
||||
"query_editor.message.read_only_system_metadata": "System metadata query results remain read-only.",
|
||||
"query_editor.message.read_only_oracle_rowid_injection_unavailable": "The Oracle query uses *, so the ROWID locator column could not be injected automatically. Results remain read-only.",
|
||||
"query_editor.message.read_only_warning_with_detail": "Query results remain read-only: {{detail}}",
|
||||
"query_editor.message.object_info_target_not_found": "The cursor is not on a recognized table or column.",
|
||||
@@ -1914,6 +2228,7 @@
|
||||
"query_editor.message.saved": "Query saved.",
|
||||
"query_editor.message.sql_file_saved": "SQL file saved.",
|
||||
"query_editor.message.save_sql_file_failed": "Failed to save SQL file: {{error}}",
|
||||
"query_editor.message.save_query_failed": "Failed to save query: {{error}}",
|
||||
"query_editor.message.export_sql_file_success": "SQL file exported.",
|
||||
"query_editor.message.export_sql_file_failed": "Export SQL file failed: {{error}}",
|
||||
"query_editor.message.save_first_before_rename": "Save the query before renaming it.",
|
||||
@@ -1927,6 +2242,18 @@
|
||||
"query_editor.result.affected_rows": "Affected rows: {{count}}",
|
||||
"query_editor.result.execution_failed": "Execution failed",
|
||||
"query_editor.result.ai_diagnose": "AI diagnose",
|
||||
"query_editor.results_panel.tooltip.hide": "Hide results panel",
|
||||
"query_editor.results_panel.tooltip.hide_with_shortcut": "Hide results panel ({{shortcut}})",
|
||||
"query_editor.results_panel.menu.close_other": "Close other tabs",
|
||||
"query_editor.results_panel.menu.close_left": "Close tabs to the left",
|
||||
"query_editor.results_panel.menu.close_right": "Close tabs to the right",
|
||||
"query_editor.results_panel.menu.close_all": "Close all tabs",
|
||||
"query_editor.results_panel.action.hide": "Hide",
|
||||
"query_editor.results_panel.aria.hide": "Hide results panel",
|
||||
"query_editor.results_panel.tab.message": "Message {{index}}",
|
||||
"query_editor.results_panel.tab.result": "Result {{index}}",
|
||||
"query_editor.results_panel.message.title": "Execution messages",
|
||||
"query_editor.results_panel.panel.title": "Results panel",
|
||||
"query_editor.save_modal.title": "Save query",
|
||||
"query_editor.save_modal.rename_title": "Rename query",
|
||||
"query_editor.save_modal.rename_ok": "Rename",
|
||||
@@ -2175,6 +2502,7 @@
|
||||
"data_grid.context_menu.edit_section": "Edit",
|
||||
"data_grid.context_menu.edit_row": "Edit this row",
|
||||
"data_grid.context_menu.copy_row_as_new": "Copy this row as a new row",
|
||||
"data_grid.context_menu.undo_cell_change": "Undo this cell change",
|
||||
"data_grid.context_menu.export_as_csv": "Export as CSV",
|
||||
"data_grid.context_menu.export_as_excel": "Export as Excel",
|
||||
"data_grid.context_menu.export_as_html": "Export as HTML",
|
||||
@@ -2210,6 +2538,7 @@
|
||||
"data_grid.error_boundary.title": "Render error",
|
||||
"data_grid.export.all_data": "Export all data",
|
||||
"data_grid.export.all_rows": "Export all rows ({{count}} rows)",
|
||||
"data_grid.export.all_rows_requery": "Export all (rerun query)",
|
||||
"data_grid.export.current_page": "Export current page ({{count}} rows)",
|
||||
"data_grid.export.current_page_rows": "Export current page ({{count}} rows)",
|
||||
"data_grid.export.group_filtered_results": "Filtered results",
|
||||
@@ -2284,7 +2613,12 @@
|
||||
"data_grid.message.column_quick_find_not_found": "Field column not found: {{query}}",
|
||||
"data_grid.message.column_quick_find_not_rendered": "Field column \"{{column}}\" is not currently rendered, so it cannot be located.",
|
||||
"data_grid.message.column_visibility_reset": "All columns restored",
|
||||
"data_grid.message.auto_commit_failed": "Auto commit failed: {{detail}}",
|
||||
"data_grid.message.auto_commit_success": "Auto commit succeeded",
|
||||
"data_grid.message.commit_failed": "Commit failed: {{detail}}",
|
||||
"data_grid.message.undo_added_row_hint": "For new rows, use Delete selected or full-table rollback to undo.",
|
||||
"data_grid.message.undo_cell_original_missing": "The original data for this cell was not found, so it cannot be undone.",
|
||||
"data_grid.message.undo_cell_success": "Cell change undone",
|
||||
"data_grid.message.copied_columns": "Copied {{count}} columns. You can paste them to target rows.",
|
||||
"data_grid.message.copied_rows": "Copied {{count}} rows. You can paste them as new rows.",
|
||||
"data_grid.message.copied_to_clipboard": "Copied to clipboard",
|
||||
@@ -2473,6 +2807,8 @@
|
||||
"data_grid.secondary.er_diagram": "ER diagram",
|
||||
"data_grid.secondary.jump_column": "Jump column",
|
||||
"data_grid.secondary.live": "live",
|
||||
"data_grid.secondary.object_design": "Object design",
|
||||
"data_grid.embedded_designer.title": "Design table ({{tableName}})",
|
||||
"data_grid.secondary.pending_changes": "Pending {{count}}",
|
||||
"data_grid.secondary.row_count": "{{count}} rows",
|
||||
"data_grid.secondary.view_ddl": "View DDL",
|
||||
@@ -2488,6 +2824,11 @@
|
||||
"data_grid.toolbar.cell_editor": "Cell editor",
|
||||
"data_grid.toolbar.commit": "Commit transaction ({{count}})",
|
||||
"data_grid.toolbar.commit_label": "Commit transaction",
|
||||
"data_grid.toolbar.commit_delay.seconds": "{{seconds}}s",
|
||||
"data_grid.toolbar.commit_mode.auto": "Auto commit",
|
||||
"data_grid.toolbar.commit_mode.auto_countdown": "Commit in {{seconds}}s",
|
||||
"data_grid.toolbar.commit_mode.manual": "Manual commit",
|
||||
"data_grid.toolbar.commit_mode.tooltip": "Controls how table edits are committed. Manual commit is safer; auto commit runs after the selected delay following the last edit.",
|
||||
"data_grid.toolbar.copied_columns_count": "{{count}} copied columns",
|
||||
"data_grid.toolbar.copy": "Copy",
|
||||
"data_grid.toolbar.copy_row": "Copy row",
|
||||
@@ -2804,6 +3145,7 @@
|
||||
"redis_viewer.hint.switch_auto_to_edit": "Switch to Auto mode to edit",
|
||||
"redis_viewer.label.encoding": "Encoding: {{encoding}}",
|
||||
"redis_viewer.label.keys_count": "{{count}} Keys",
|
||||
"redis_viewer.label.node_count": "{{count}} nodes",
|
||||
"redis_viewer.label.length": "Length: {{count}}",
|
||||
"redis_viewer.label.original_key": "Original Key: {{key}}",
|
||||
"redis_viewer.message.add_failed": "Add failed: {{detail}}",
|
||||
@@ -2860,6 +3202,9 @@
|
||||
"redis_viewer.placeholder.value": "Value",
|
||||
"redis_viewer.search.exact": "Exact",
|
||||
"redis_viewer.search.fuzzy": "Fuzzy",
|
||||
"redis_viewer.topology.cluster": "Cluster",
|
||||
"redis_viewer.topology.sentinel": "Sentinel",
|
||||
"redis_viewer.topology.single": "Single",
|
||||
"redis_viewer.state.connection_not_found": "Connection not found",
|
||||
"redis_viewer.state.empty_selection": "Select a Key to view details",
|
||||
"redis_viewer.table.action": "Actions",
|
||||
@@ -2998,6 +3343,7 @@
|
||||
"ai_chat.input.slash.sql.prompt": "Generate SQL from the following requirements:",
|
||||
"ai_chat.input.tooltip.attach_table_context": "Attach database table context",
|
||||
"ai_chat.input.tooltip.upload_image": "Upload image or screenshot",
|
||||
"ai_chat.tools.mcp_fallback_description": "MCP tool {{toolName}} provided by {{serverName}}",
|
||||
"ai_chat.composer_notice.missing_model.description": "Open the model dropdown below and select a model. If the list is empty, check the provider endpoint and API Key.",
|
||||
"ai_chat.composer_notice.missing_model.title": "Select a model first",
|
||||
"ai_chat.composer_notice.missing_provider.description": "Add and enable a model provider in AI settings first.",
|
||||
@@ -3244,9 +3590,47 @@
|
||||
"ai_settings.context.with_results.label": "With query results",
|
||||
"ai_settings.context.with_results.desc": "Send recent query results as context",
|
||||
"ai_settings.prompts.description": "These are the read-only system prompts preset by the current GoNavi version. They are injected dynamically into request context for matching scenarios.",
|
||||
"ai_settings.prompts.message.saved": "Custom prompts saved",
|
||||
"ai_settings.prompts.message.save_failed": "Failed to save custom prompts",
|
||||
"ai_settings.mcp_server.message.saved": "MCP server saved",
|
||||
"ai_settings.mcp_server.message.save_failed": "Failed to save MCP server",
|
||||
"ai_settings.mcp_server.message.deleted": "MCP server deleted",
|
||||
"ai_settings.mcp_server.message.delete_failed": "Failed to delete MCP server",
|
||||
"ai_settings.mcp_server.message.test_success": "MCP server connection succeeded",
|
||||
"ai_settings.mcp_server.message.test_failed": "MCP server test failed",
|
||||
"ai_settings.mcp_server.message.test_request_failed": "Failed to test MCP server",
|
||||
"ai_settings.clipboard.error.unsupported": "Copying to the clipboard is not supported in this environment",
|
||||
"ai_settings.mcp_http.error.control_unsupported_runtime": "The current runtime does not support MCP HTTP server control",
|
||||
"ai_settings.mcp_http.error.start_unsupported_version": "This version does not support starting the MCP HTTP server",
|
||||
"ai_settings.mcp_http.error.stop_unsupported_version": "This version does not support stopping the MCP HTTP server",
|
||||
"ai_settings.mcp_http.message.started": "GoNavi MCP HTTP server started",
|
||||
"ai_settings.mcp_http.message.stopped": "GoNavi MCP HTTP server stopped",
|
||||
"ai_settings.mcp_http.message.toggle_failed": "Failed to switch GoNavi MCP HTTP server",
|
||||
"ai_settings.mcp_http.message.url_unavailable": "No MCP HTTP URL is available to copy",
|
||||
"ai_settings.mcp_http.message.url_copied": "MCP HTTP URL copied",
|
||||
"ai_settings.mcp_http.message.authorization_header_required": "Start the MCP HTTP server first to generate the Authorization Header",
|
||||
"ai_settings.mcp_http.message.authorization_header_copied": "Authorization Header copied",
|
||||
"ai_settings.mcp_http.status.not_running": "GoNavi MCP HTTP server is not running",
|
||||
"ai_settings.skill.message.saved": "Skill saved",
|
||||
"ai_settings.skill.message.save_failed": "Failed to save Skill",
|
||||
"ai_settings.skill.message.deleted": "Skill deleted",
|
||||
"ai_settings.skill.message.delete_failed": "Failed to delete Skill",
|
||||
"ai_settings.tools.description": "When handling database questions, the AI assistant can call these built-in tools automatically to fetch real data without manual intervention.",
|
||||
"ai_settings.tools.workflow": "💡 Workflow: get_connections -> get_databases -> get_tables -> get_columns -> generate SQL",
|
||||
"ai_settings.tools.params_label": "Parameters:",
|
||||
"ai_settings.tools.builtin_tool_label": "Built-in tool",
|
||||
"ai_settings.tools.search.aria_label": "Search built-in tools",
|
||||
"ai_settings.tools.search.placeholder": "Search tools, flows, or parameters, for example mcp / lineLimit / allowMutating / transaction",
|
||||
"ai_settings.tools.search.clear": "Clear",
|
||||
"ai_settings.tools.summary": "Showing {{flowVisible}}/{{flowTotal}} recommended flows and {{toolVisible}}/{{toolTotal}} built-in tools.",
|
||||
"ai_settings.tools.empty.no_matches": "No matching built-in tools. Try broader keywords such as mcp, logs, connection, transaction, shortcuts, or schema.",
|
||||
"ai_settings.tools.parameters.hint_title": "Parameter hints",
|
||||
"ai_settings.tools.parameters.type_label": "Type: {{type}}",
|
||||
"ai_settings.tools.parameters.required": "Required",
|
||||
"ai_settings.tools.parameters.optional": "Optional",
|
||||
"ai_settings.tools.parameters.enum_values": "Allowed values: {{values}}",
|
||||
"ai_settings.tools.parameters.default_value": "Default: {{value}}",
|
||||
"ai_settings.tools.parameters.example": "Example:",
|
||||
"ai_settings.tools.params.none": "None",
|
||||
"ai_settings.tools.get_connections.desc": "Get all available database connections",
|
||||
"ai_settings.tools.get_connections.detail": "Returns connection ID, name, type (MySQL/PostgreSQL, etc.), and Host address. AI uses the returned information to decide which connection to explore first.",
|
||||
@@ -3531,6 +3915,38 @@
|
||||
"data_sync.action.previous": "Previous",
|
||||
"data_sync.action.start_sync": "Start Sync",
|
||||
"data_sync.action.view": "View",
|
||||
"data_sync.compare_entry.action.return_to_compare": "Back to Comparison",
|
||||
"data_sync.compare_entry.alert.data": "You are in Data Compare. It only analyzes row-level differences by primary key and does not write data.",
|
||||
"data_sync.compare_entry.alert.schema": "You are in Schema Compare. It only analyzes schema differences and generates reviewable SQL without applying changes.",
|
||||
"data_sync.compare_entry.option.auto_add_columns": "Generate compatible change SQL for missing target columns (preview only, not executed)",
|
||||
"data_sync.compare_entry.option.source_dataset.query": "Compare by SQL Result Set",
|
||||
"data_sync.compare_entry.option.source_dataset.table": "Compare by Table",
|
||||
"data_sync.compare_entry.preview.selection_hint": "Row selection only affects the SQL preview scope and does not write data.",
|
||||
"data_sync.compare_entry.preview.sql.data_help": "SQL preview is generated from the selected insert, update, delete, and row ranges for difference review only.",
|
||||
"data_sync.compare_entry.preview.sql.schema_help": "SQL preview shows suggested schema-difference statements for review only.",
|
||||
"data_sync.compare_entry.result.completed": "Comparison Completed",
|
||||
"data_sync.compare_entry.result.failed": "Comparison Failed",
|
||||
"data_sync.compare_entry.result.running": "Comparing",
|
||||
"data_sync.compare_entry.result.running_description": "Current stage: {{stage}}{{table}}",
|
||||
"data_sync.compare_entry.result.stage_fallback": "Running",
|
||||
"data_sync.compare_entry.result.success_summary": "Successfully compared {{tables}} tables.",
|
||||
"data_sync.compare_entry.result.table_suffix": ", table: {{table}}",
|
||||
"data_sync.compare_entry.title.analysis_log": "Analysis Log",
|
||||
"data_sync.compare_entry.workflow_help": "This entry only analyzes differences and previews results. It does not sync, create tables, add columns, or delete data.",
|
||||
"data_sync.entry_mode.compare.action.start": "Start Comparison",
|
||||
"data_sync.entry_mode.compare.option_title": "Comparison Options",
|
||||
"data_sync.entry_mode.compare.result_title": "Comparison Result",
|
||||
"data_sync.entry_mode.data_compare.badge": "Data Compare",
|
||||
"data_sync.entry_mode.data_compare.description": "Compare source and target table data by primary key, including inserts, updates, and deletes.",
|
||||
"data_sync.entry_mode.data_compare.hero_description": "Use this to verify data consistency. It only analyzes differences and previews rows without writing data.",
|
||||
"data_sync.entry_mode.data_compare.table_select_label": "Select tables to compare data:",
|
||||
"data_sync.entry_mode.data_compare.title": "Data Compare",
|
||||
"data_sync.entry_mode.schema_compare.badge": "Schema Compare",
|
||||
"data_sync.entry_mode.schema_compare.description": "Generate schema differences, compatibility risks, and reviewable SQL between source and target tables.",
|
||||
"data_sync.entry_mode.schema_compare.hero_description": "Use this before release to check schema differences. It only analyzes and previews without applying schema changes.",
|
||||
"data_sync.entry_mode.schema_compare.table_select_label": "Select tables to compare schema:",
|
||||
"data_sync.entry_mode.schema_compare.title": "Schema Compare",
|
||||
"data_sync.entry_mode.sync.hero_description": "Use this when target tables already exist. Analyze differences first, then apply selected inserts, updates, or deletes.",
|
||||
"data_sync.alert.auto_create_scope": "Automatic table creation currently supports only MySQL to Kingbase. It migrates columns, primary keys, regular indexes, unique indexes, and composite indexes, and skips full-text, spatial, prefix, and function indexes explicitly.",
|
||||
"data_sync.alert.auto_create_planner_scope": "Automatic table creation currently supports only MySQL to Kingbase. It migrates columns, primary keys, regular indexes, unique indexes, and composite indexes, and skips full-text, spatial, prefix, and function indexes explicitly.",
|
||||
"data_sync.alert.existing_target_only": "Data sync runs against existing target tables by default. Switch to cross-database migration when you need table creation and import.",
|
||||
@@ -4383,6 +4799,11 @@
|
||||
"app.theme.font_family.loading_ui_hint": "Loads installed fonts from the current system in real time. Type to search and match. Clear the field to fall back to the default UI font.",
|
||||
"app.theme.font_family.mono_fallback_hint": "Common code font presets are being used. Applies to monospace content such as the SQL editor, AI code blocks, logs, DDL, and data tables.",
|
||||
"app.theme.font_family.mono_hint": "Installed system fonts are shown first, with names close to Mono/Code/Console ranked earlier. Applies to monospace content such as the SQL editor, AI code blocks, logs, DDL, and data tables.",
|
||||
"app.theme.font_family.linux_cjk_install_prefix": "Ubuntu/Linux did not detect Chinese CJK fonts, so the interface may show missing glyph boxes. Install: ",
|
||||
"app.theme.font_family.linux_cjk_install_suffix": ", then restart GoNavi.",
|
||||
"app.linux_cjk_font_banner.title": "Linux CJK fonts missing",
|
||||
"app.linux_cjk_font_banner.description": "Chinese text may render as missing glyph boxes. Install fonts, then restart GoNavi: ",
|
||||
"app.linux_cjk_font_banner.action.open_font_settings": "Font Settings",
|
||||
"app.theme.data_table.density": "Table Density",
|
||||
"app.theme.data_table.density.comfortable": "Comfortable",
|
||||
"app.theme.data_table.density.standard": "Standard",
|
||||
|
||||
@@ -470,6 +470,35 @@
|
||||
"app.theme.ui_version.legacy.description": "現在の安定版インターフェースで、すべての機能を完全に利用できます。",
|
||||
"app.theme.ui_version.legacy.label": "旧版 UI",
|
||||
"app.theme.ui_version.platform_hint": "Windows、macOS、Linux のいずれでも切り替えできます。変更はすぐに反映され、一部のモーダルは次回表示時に新しいスタイルを使用します。",
|
||||
"app.theme.ui_version.sidebar_search.command": "新しいコマンド検索",
|
||||
"app.theme.ui_version.sidebar_search.filter": "従来のサイドバーフィルター",
|
||||
"app.theme.ui_version.sidebar_search.hint": "新しいコマンド検索は接続、テーブル、アクションへの移動に適しています。パネルで同期スイッチを有効にすると左側ツリーを継続的に絞り込めます。従来のサイドバーフィルターは入力欄を直接表示し、フィルター内容を保持します。",
|
||||
"app.theme.ui_version.sidebar_search.title": "新しい左サイドバー検索モード",
|
||||
"app.theme.tab_display.title": "Tab ラベル表示",
|
||||
"app.theme.tab_display.description": "接続名、オブジェクト種別、オブジェクト名、データベース、Schema、Host/IP の表示順をカスタマイズします。2 行モードではコンテキストを副行に配置できます。",
|
||||
"app.theme.tab_display.layout.single": "1 行",
|
||||
"app.theme.tab_display.layout.double": "2 行",
|
||||
"app.theme.tab_display.badge.current": "現在",
|
||||
"app.theme.tab_display.row.primary": "主行",
|
||||
"app.theme.tab_display.row.secondary": "副行",
|
||||
"app.theme.tab_display.action.move_up": "上へ",
|
||||
"app.theme.tab_display.action.move_down": "下へ",
|
||||
"app.theme.tab_display.preview.prefix": "現在のプレビュー: ",
|
||||
"app.theme.tab_display.preview.default_label": "既定ラベル",
|
||||
"app.theme.tab_display.preview.secondary": "、副行 {{labels}}",
|
||||
"app.theme.tab_display.preview.focused": "、現在選択中 {{label}}",
|
||||
"app.theme.tab_display.element.connection.label": "接続名",
|
||||
"app.theme.tab_display.element.connection.description": "接続の短縮名または環境名。例: DEV",
|
||||
"app.theme.tab_display.element.kind.label": "オブジェクト種別",
|
||||
"app.theme.tab_display.element.kind.description": "SQL / TABLE / VIEW などの種別ラベル",
|
||||
"app.theme.tab_display.element.object.label": "オブジェクト名",
|
||||
"app.theme.tab_display.element.object.description": "テーブル名、クエリ名、リソース名などの主要な名前",
|
||||
"app.theme.tab_display.element.database.label": "データベース",
|
||||
"app.theme.tab_display.element.database.description": "現在の DB / catalog 名",
|
||||
"app.theme.tab_display.element.schema.label": "Schema",
|
||||
"app.theme.tab_display.element.schema.description": "schema / owner プレフィックス",
|
||||
"app.theme.tab_display.element.host.label": "Host/IP",
|
||||
"app.theme.tab_display.element.host.description": "接続先アドレスの要約",
|
||||
"app.theme.ui_version.title": "インターフェース版",
|
||||
"app.theme.ui_version.v2.badge": "Beta",
|
||||
"app.theme.ui_version.v2.description": "AI 入口とテーブル概要を強化した、再設計されたコンパクトなインターフェースです。",
|
||||
@@ -493,6 +522,10 @@
|
||||
"app.window_zoom.message.windows_only": "この機能は Windows でのみ利用できます",
|
||||
"app.tools.entry.shortcuts.description": "グローバルショートカットの割り当てを確認、調整します。",
|
||||
"app.tools.entry.shortcuts.title": "ショートカット管理",
|
||||
"app.tools.entry.schema_compare.description": "ソース表とターゲット表の構造差分を比較します。プレビューのみで実行はしません。",
|
||||
"app.tools.entry.schema_compare.title": "表構造比較",
|
||||
"app.tools.entry.data_compare.description": "主キーに基づいて追加、更新、削除、同一行を分析します。",
|
||||
"app.tools.entry.data_compare.title": "データ比較",
|
||||
"app.tools.entry.sync.description": "複数ソース間の同期ワークフローを開きます。",
|
||||
"app.tools.entry.sync.title": "データ同期",
|
||||
"app.tools.title": "ツールセンター",
|
||||
@@ -527,6 +560,18 @@
|
||||
"app.browser_mock.export_sql_unsupported": "ブラウザ mock は SQL ファイルのエクスポートをサポートしていません",
|
||||
"app.browser_mock.import_connection_package_unsupported": "ブラウザ mock はリカバリーパッケージのインポートをサポートしていません。履歴 JSON 接続配列のみ対応しています",
|
||||
"app.browser_mock.export_connection_package_unsupported": "ブラウザ mock はリカバリーパッケージのエクスポートをサポートしていません",
|
||||
"app.browser_mock.mcp_http.not_running": "GoNavi MCP HTTP サービスは起動していません",
|
||||
"app.browser_mock.mcp_http.started": "GoNavi MCP HTTP サービスを起動しました",
|
||||
"app.browser_mock.mcp_http.stopped": "GoNavi MCP HTTP サービスを停止しました",
|
||||
"app.browser_mock.mcp_server.command_required": "MCP コマンドは空にできません",
|
||||
"app.browser_mock.mcp_server.test_success": "MCP mock テストに成功しました",
|
||||
"app.browser_mock.mcp_tool.unavailable": "ブラウザ mock は実際の MCP サービスに接続されていません",
|
||||
"app.browser_mock.mcp_client.claude_code.installed": "Claude Code のユーザーレベル MCP 設定を書き込みました。Claude CLI を再起動すると、/mcp の User MCPs に GoNavi が表示されます。",
|
||||
"app.browser_mock.mcp_client.claude_code.not_detected": "Claude Code のユーザーレベル GoNavi MCP 設定は検出されませんでした",
|
||||
"app.browser_mock.mcp_client.codex.installed": "Codex のユーザーレベル MCP 設定を書き込みました。Codex CLI またはデスクトップアプリを再起動すると GoNavi が表示されます。",
|
||||
"app.browser_mock.mcp_client.codex.path_mismatch": "Codex 内に GoNavi MCP レコードが検出されましたが、現在の GoNavi インストールパスと一致しません。更新を推奨します。",
|
||||
"app.browser_mock.provider.test_failed_detail": "接続テストに失敗しました: {{detail}}",
|
||||
"app.browser_mock.provider.test_success": "エンドポイント接続テストに成功しました",
|
||||
"app.update.action.hide_to_background": "バックグラウンドに隠す",
|
||||
"app.update.action.install_update": "更新をインストール",
|
||||
"app.update.action.open_install_directory": "インストールディレクトリを開く",
|
||||
@@ -596,7 +641,66 @@
|
||||
"query.new": "新規クエリ",
|
||||
"query.run": "実行",
|
||||
"query.save": "クエリを保存",
|
||||
"saved_query.default_name": "クエリ {{index}}",
|
||||
"query.stop": "停止",
|
||||
"message_publish_modal.title": "メッセージ送信テスト",
|
||||
"message_publish_modal.title_with_connection": "メッセージ送信テスト · {{connectionName}}",
|
||||
"message_publish_modal.action.send": "送信",
|
||||
"message_publish_modal.error.build_command_failed": "送信コマンドの作成に失敗しました",
|
||||
"message_publish_modal.error.send_failed_detail": "送信に失敗しました: {{detail}}",
|
||||
"message_publish_modal.error.unknown_error": "不明なエラー",
|
||||
"message_publish_modal.field.exchange.label": "Exchange(任意)",
|
||||
"message_publish_modal.field.exchange.extra": "空のままにすると既定の exchange を使用します。カスタム exchange を入力する場合は、対象 Queue に binding があることを確認してください。",
|
||||
"message_publish_modal.field.exchange.placeholder": "例:events.topic",
|
||||
"message_publish_modal.field.routing_key.label": "Routing Key(任意)",
|
||||
"message_publish_modal.field.routing_key.extra": "空のままにすると現在の Queue 名を既定で使用します。",
|
||||
"message_publish_modal.field.routing_key.placeholder": "例:orders.queue",
|
||||
"message_publish_modal.field.qos.extra": "0 は at most once、1 は at least once、2 は exactly once です。",
|
||||
"message_publish_modal.field.retain.label": "Retain メッセージ",
|
||||
"message_publish_modal.field.tag.label": "Tag(任意)",
|
||||
"message_publish_modal.field.tag.extra": "空のままにすると Tag によるフィルタや書き込みを行いません。",
|
||||
"message_publish_modal.field.delay_level.label": "Delay Level(任意)",
|
||||
"message_publish_modal.field.delay_level.extra": "RocketMQ は固定の遅延レベルを使用します。0 は即時送信です。",
|
||||
"message_publish_modal.field.body_mode.label": "メッセージ本文タイプ",
|
||||
"message_publish_modal.field.body.label": "メッセージ本文",
|
||||
"message_publish_modal.field.body.required": "メッセージ本文を入力してください",
|
||||
"message_publish_modal.field.body.extra": "JSON モードでは有効な JSON が必要です。テキストモードでは内容をそのまま送信します。",
|
||||
"message_publish_modal.field.body.placeholder": "メッセージ本文を入力してください",
|
||||
"message_publish_modal.field.headers.label": "Headers(任意)",
|
||||
"message_publish_modal.field.headers.extra": "JSON オブジェクトである必要があります。例:{{example}}。",
|
||||
"message_publish_modal.field.properties.label": "Properties(任意)",
|
||||
"message_publish_modal.field.properties.extra": "JSON オブジェクトである必要があります。例:{{example}}。",
|
||||
"message_publish_modal.option.no_delay": "遅延なし",
|
||||
"message_publish_modal.option.text": "テキスト",
|
||||
"message_publish_modal.footer.success_prefix": "送信に成功すると",
|
||||
"message_publish_modal.footer.success_suffix": " が返り、このテストメッセージが送信されたか確認できます。",
|
||||
"message_publish.field.body": "メッセージ本文",
|
||||
"message_publish.field.message_key": "メッセージ Key",
|
||||
"message_publish.error.destination_required": "送信先 Topic / Queue を入力してください",
|
||||
"message_publish.error.required_field": "{{field}}を入力してください",
|
||||
"message_publish.error.invalid_json_detail": "{{field}} は有効な JSON ではありません:{{detail}}",
|
||||
"message_publish.error.json_object_required": "{{field}} は JSON オブジェクトである必要があります",
|
||||
"message_publish.error.mqtt_wildcard_topic": "MQTT 送信 Topic に + または # ワイルドカードは使用できません",
|
||||
"message_publish.error.unsupported_type": "現在のデータソースはテストメッセージ送信に対応していません:{{type}}",
|
||||
"message_publish.presentation.rabbitmq.destination_placeholder": "例:orders.queue",
|
||||
"message_publish.presentation.rabbitmq.destination_required": "Queue を入力してください",
|
||||
"message_publish.presentation.rabbitmq.alert": "このフォームは RabbitMQ publish JSON コマンドを自動生成し、Management API 経由でテスト送信します。",
|
||||
"message_publish.presentation.rabbitmq.success_hint": "Exchange が空の場合は既定の exchange を使用し、Queue 名を routing key として使用します。",
|
||||
"message_publish.presentation.rocketmq.destination_placeholder": "例:orders.events",
|
||||
"message_publish.presentation.topic_required": "Topic を入力してください",
|
||||
"message_publish.presentation.rocketmq.alert": "このフォームは RocketMQ publish JSON コマンドを自動生成し、NameServer/Broker 経由でテスト送信します。",
|
||||
"message_publish.presentation.rocketmq.success_hint": "Tag、Keys、Delay Level、Properties は RocketMQ メッセージ属性に一緒に書き込まれます。",
|
||||
"message_publish.presentation.keys_label": "メッセージ Keys(任意)",
|
||||
"message_publish.presentation.rocketmq.key_placeholder": "複数の Key をカンマ区切りで入力できます",
|
||||
"message_publish.presentation.rocketmq.tag_placeholder": "例:TagA",
|
||||
"message_publish.presentation.mqtt.destination_placeholder": "例:devices/device-001/telemetry",
|
||||
"message_publish.presentation.mqtt.alert": "このフォームは MQTT publish JSON コマンドを自動生成し、broker 経由で直接テスト送信します。",
|
||||
"message_publish.presentation.mqtt.success_hint": "QoS と retain は個別に指定できます。未入力の場合は現在の接続の既定値を使用します。",
|
||||
"message_publish.presentation.kafka.destination_placeholder": "例:orders.events",
|
||||
"message_publish.presentation.kafka.alert": "このフォームは Kafka publish JSON コマンドを自動生成し、バックエンドを直接呼び出してテスト送信します。",
|
||||
"message_publish.presentation.kafka.success_hint": "Headers は Kafka Record Headers として一緒に送信されます。",
|
||||
"message_publish.presentation.key_label": "メッセージ Key(任意)",
|
||||
"message_publish.presentation.kafka.key_placeholder": "空でもかまいません。JSON モードでは有効な JSON を 1 行で入力してください。",
|
||||
"connection_modal.action.browse": "参照...",
|
||||
"connection_modal.action.disable": "無効化",
|
||||
"connection_modal.action.discover_members": "メンバーを自動検出",
|
||||
@@ -644,6 +748,7 @@
|
||||
"connection_modal.field.tunnel_password_optional": "HTTP Tunnel パスワード(任意)",
|
||||
"connection_modal.field.tunnel_username_optional": "HTTP Tunnel ユーザー名(任意)",
|
||||
"connection_modal.field.username": "ユーザー名",
|
||||
"connection_modal.field.username.optional_placeholder": "認証を有効にしていない場合は空のままにできます",
|
||||
"connection_modal.help.additional_hosts": "任意の MongoDB メンバーをカンマ、セミコロン、空白で区切って入力します。",
|
||||
"connection_modal.help.additional_srv_hosts": "MongoDB 検出に使う任意の追加 SRV ホストです。",
|
||||
"connection_modal.help.connection_timeout": "接続テストとメタデータ読み込みに適用されます。範囲は 1-300 秒です。",
|
||||
@@ -707,6 +812,66 @@
|
||||
"connection_modal.jvm.read_only_first": "読み取り専用操作を優先",
|
||||
"connection_modal.jvm.security_policy": "セキュリティポリシー",
|
||||
"connection_modal.message.srv_with_ssh_dns_warning": "SRV と SSH Tunnel を同時に使う場合、ローカル DNS 解決に依存することがあります。解決できない場合は標準ホストを使用してください。",
|
||||
"connection_modal.messageQueue.kafka.defaultTopic.label": "既定 Topic(任意)",
|
||||
"connection_modal.messageQueue.kafka.defaultTopic.help": "空の場合は SQL 内で Topic を明示する必要があります。設定すると SHOW、CONSUME、SELECT で直接プレビューできます。",
|
||||
"connection_modal.messageQueue.kafka.defaultTopic.placeholder": "例:orders.events",
|
||||
"connection_modal.messageQueue.rocketmq.defaultTopic.label": "既定 Topic(任意)",
|
||||
"connection_modal.messageQueue.rocketmq.defaultTopic.help": "空の場合は SQL 内で Topic を明示する必要があります。接続パラメーターには groupId、namespace、tag、pullBatchSize、startOffset を追加できます。",
|
||||
"connection_modal.messageQueue.rocketmq.defaultTopic.placeholder": "例:orders.events",
|
||||
"connection_modal.messageQueue.mqtt.defaultTopicFilter.label": "既定 Topic / Filter(任意)",
|
||||
"connection_modal.messageQueue.mqtt.defaultTopicFilter.help": "空の場合は SQL 内で Topic を明示する必要があります。設定すると SHOW、CONSUME、SELECT で直接プレビューできます。/、+、# を使用できます。",
|
||||
"connection_modal.messageQueue.mqtt.defaultTopicFilter.placeholder": "例:devices/+/telemetry",
|
||||
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.label": "既定 Virtual Host(任意)",
|
||||
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.help": "空の場合は既定で / を使用します。設定すると、クエリエディターは現在の vhost を Queue 参照とテスト送信のコンテキストとして使用します。",
|
||||
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.placeholder": "例:/ または orders-vhost",
|
||||
"connection_modal.messageQueue.topology.cluster.label": "クラスターモード",
|
||||
"connection_modal.messageQueue.kafka.topology.single.label": "単一 Broker",
|
||||
"connection_modal.messageQueue.kafka.topology.single.description": "ローカルまたは単純な環境向けに、bootstrap broker を 1 つだけ設定します。",
|
||||
"connection_modal.messageQueue.kafka.topology.cluster.description": "複数の bootstrap broker を設定し、検出とフェイルオーバーの成功率を高めます。",
|
||||
"connection_modal.messageQueue.rocketmq.topology.single.label": "単一 NameServer",
|
||||
"connection_modal.messageQueue.rocketmq.topology.single.description": "ローカルまたは単純な環境向けに、NameServer を 1 つだけ設定します。",
|
||||
"connection_modal.messageQueue.rocketmq.topology.cluster.description": "複数の NameServer を設定し、ルート検出とフェイルオーバーの成功率を高めます。",
|
||||
"connection_modal.messageQueue.mqtt.topology.single.label": "単一 Broker",
|
||||
"connection_modal.messageQueue.mqtt.topology.single.description": "ローカルまたは単純な環境向けに、broker を 1 つだけ設定します。",
|
||||
"connection_modal.messageQueue.mqtt.topology.cluster.description": "複数の broker を設定し、接続検出とフェイルオーバーの成功率を高めます。",
|
||||
"connection_modal.messageQueue.kafka.extraBrokers.label": "追加 Broker アドレス",
|
||||
"connection_modal.messageQueue.kafka.extraBrokers.help": "複数の broker アドレスを host:port 形式で入力し、Enter で確定できます。",
|
||||
"connection_modal.messageQueue.kafka.extraBrokers.placeholder": "例:10.10.0.12:9092、10.10.0.13:9092",
|
||||
"connection_modal.messageQueue.rocketmq.extraNameServers.label": "追加 NameServer アドレス",
|
||||
"connection_modal.messageQueue.rocketmq.extraNameServers.help": "複数の NameServer アドレスを host:port 形式で入力し、Enter で確定できます。",
|
||||
"connection_modal.messageQueue.rocketmq.extraNameServers.placeholder": "例:10.10.0.12:9876、10.10.0.13:9876",
|
||||
"connection_modal.messageQueue.mqtt.extraBrokers.label": "追加 Broker アドレス",
|
||||
"connection_modal.messageQueue.mqtt.extraBrokers.help": "複数の broker アドレスを host:port 形式で入力し、Enter で確定できます。",
|
||||
"connection_modal.messageQueue.mqtt.extraBrokers.placeholder": "例:10.10.0.12:1883、10.10.0.13:1883",
|
||||
"connection_modal.redis.topology.single.label": "スタンドアロンモード",
|
||||
"connection_modal.redis.topology.single.description": "1 つの Redis ノードに接続します。",
|
||||
"connection_modal.redis.topology.cluster.label": "クラスターモード",
|
||||
"connection_modal.redis.topology.cluster.description": "Redis Cluster として複数のシードノードを設定します。",
|
||||
"connection_modal.redis.topology.sentinel.label": "Sentinel モード",
|
||||
"connection_modal.redis.topology.sentinel.description": "Sentinel でプライマリノードを検出し、主従高可用性に適用します。",
|
||||
"connection_modal.redis.hosts.sentinel.label": "追加 Sentinel ノードアドレス",
|
||||
"connection_modal.redis.hosts.sentinel.help": "上のホストアドレスを最初の Sentinel として使用します。ここには他の Sentinel ノードを host:port 形式で入力します。",
|
||||
"connection_modal.redis.hosts.sentinel.placeholder": "例:10.10.0.12:26379、10.10.0.13:26379",
|
||||
"connection_modal.redis.hosts.cluster.label": "追加クラスターノードアドレス",
|
||||
"connection_modal.redis.hosts.cluster.help": "上のホストアドレスを主ノードとして使用します。ここには他のシードノードを host:port 形式で入力します。",
|
||||
"connection_modal.redis.hosts.cluster.placeholder": "例:10.10.0.12:6379、10.10.0.13:6379",
|
||||
"connection_modal.redis.sentinel.master.label": "Sentinel master 名",
|
||||
"connection_modal.redis.sentinel.master.help": "Sentinel 設定の monitor 名を入力します。例:mymaster。",
|
||||
"connection_modal.redis.sentinel.master.required": "Sentinel master 名を入力してください",
|
||||
"connection_modal.redis.sentinel.master.placeholder": "例:mymaster",
|
||||
"connection_modal.redis.credentials.primary.label": "パスワード (任意)",
|
||||
"connection_modal.redis.credentials.primary.placeholder.empty": "requirepass が設定されている場合の Redis パスワード",
|
||||
"connection_modal.redis.credentials.primary.placeholder.retained": "保存済み Redis パスワード",
|
||||
"connection_modal.redis.credentials.sentinelUser.label": "Sentinel ユーザー名(任意)",
|
||||
"connection_modal.redis.credentials.sentinelUser.placeholder": "Sentinel が ACL ユーザー名を使わない場合は空のままにします",
|
||||
"connection_modal.redis.credentials.sentinelPassword.label": "Sentinel パスワード(任意)",
|
||||
"connection_modal.redis.credentials.sentinelPassword.placeholder.empty": "Sentinel 自身の認証パスワード。空の場合は送信しません",
|
||||
"connection_modal.redis.credentials.sentinelPassword.placeholder.retained": "保存済み Sentinel パスワード",
|
||||
"connection_modal.redis.credentials.sentinelPassword.clear": "保存済み Sentinel パスワードをクリア",
|
||||
"connection_modal.redis.credentials.sentinelPassword.description": "現在 Sentinel パスワードが保存されています。空のままなら継続使用し、新しい値を入力すると置き換えます。",
|
||||
"connection_modal.redis.databaseScope.label": "表示するデータベース (空ならすべて表示)",
|
||||
"connection_modal.redis.databaseScope.help": "接続テスト成功後に選択できます",
|
||||
"connection_modal.redis.databaseScope.placeholder": "表示するデータベースを選択",
|
||||
"connection_modal.mongodb.auth.auto": "自動",
|
||||
"connection_modal.mongodb.auth.auto_description": "ドライバーに認証メカニズムを選択させます。",
|
||||
"connection_modal.mongodb.auth.aws_iam_description": "AWS IAM 認証を使用します。AWS IAM 認証情報は実行環境に配置してください。",
|
||||
@@ -715,6 +880,35 @@
|
||||
"connection_modal.mongodb.auth.scram_sha1_description": "SCRAM-SHA-1 認証を使用します。",
|
||||
"connection_modal.mongodb.auth.scram_sha256_description": "SCRAM-SHA-256 認証を使用します。",
|
||||
"connection_modal.mongodb.auth_mechanism": "認証メカニズム",
|
||||
"connection_modal.mongodb.topology.single.label": "スタンドアロンモード",
|
||||
"connection_modal.mongodb.topology.replica.label": "レプリカセット / 複数ノード",
|
||||
"connection_modal.mongodb.discovery.standard.label": "標準アドレス",
|
||||
"connection_modal.mongodb.discovery.standard.description": "host:port で直接接続するか、レプリカセットのノード一覧を使用します。",
|
||||
"connection_modal.mongodb.discovery.srv.label": "SRV アドレス",
|
||||
"connection_modal.mongodb.discovery.srv.description": "mongodb+srv を使用し、DNS で対象ノードを検出します。",
|
||||
"connection_modal.mongodb.discovery.current": "現在",
|
||||
"connection_modal.mongodb.discovery.srv_ssh_warning": "SRV と SSH Tunnel を同時に有効にすると、ローカル DNS 解決に依存する場合があります。",
|
||||
"connection_modal.mongodb.replica.hosts.srv.label": "追加 SRV ホスト(任意)",
|
||||
"connection_modal.mongodb.replica.hosts.srv.help": "複数の候補ホスト名を host 形式で入力できます。空の場合は上のホストのみを使用します。",
|
||||
"connection_modal.mongodb.replica.hosts.srv.placeholder": "例:cluster-a.example.com、cluster-b.example.com",
|
||||
"connection_modal.mongodb.replica.hosts.standard.label": "追加ノードアドレス",
|
||||
"connection_modal.mongodb.replica.hosts.standard.help": "複数のノードアドレスを host:port 形式で入力し、Enter で確定できます。",
|
||||
"connection_modal.mongodb.replica.hosts.standard.placeholder": "例:10.10.0.12:27017、10.10.0.13:27017",
|
||||
"connection_modal.mongodb.replica.set.label": "レプリカセット名(任意)",
|
||||
"connection_modal.mongodb.replica.set.placeholder": "例:rs0",
|
||||
"connection_modal.mongodb.replica.user.label": "レプリカセットユーザー名(任意)",
|
||||
"connection_modal.mongodb.replica.user.placeholder": "空の場合はメインユーザー名を再利用します",
|
||||
"connection_modal.mongodb.replica.password.label": "レプリカセットパスワード(任意)",
|
||||
"connection_modal.mongodb.replica.password.placeholder.empty": "空の場合はメインパスワードを再利用します",
|
||||
"connection_modal.mongodb.replica.password.placeholder.retained": "保存済みレプリカセットパスワード",
|
||||
"connection_modal.mongodb.replica.password.clear": "保存済みレプリカセットパスワードをクリア",
|
||||
"connection_modal.mongodb.replica.password.description": "現在レプリカセットパスワードが保存されています。空のままなら継続使用し、新しい値を入力すると置き換えます。",
|
||||
"connection_modal.mongodb.members.role": "ロール",
|
||||
"connection_modal.mongodb.members.health": "ヘルス",
|
||||
"connection_modal.mongodb.members.health.ok": "正常",
|
||||
"connection_modal.mongodb.members.health.error": "異常",
|
||||
"connection_modal.mongodb.policy.auth_source.label": "認証 DB (authSource)",
|
||||
"connection_modal.mongodb.policy.auth_source.placeholder": "既定では database または admin を使用",
|
||||
"connection_modal.mongodb.read_preference": "readPreference",
|
||||
"connection_modal.mongodb.read_preference.nearest": "最も近いメンバーへ読み取りを送ります。",
|
||||
"connection_modal.mongodb.read_preference.primary": "primary からのみ読み取ります。",
|
||||
@@ -878,6 +1072,9 @@
|
||||
"connection_modal.message.save_security_refresh_failed": "設定は保存されましたが、セキュリティ情報を更新できませんでした",
|
||||
"connection_modal.message.save_failed": "接続の保存に失敗しました",
|
||||
"connection_modal.message.test_requires_new_password": "テスト前に新しい接続パスワードを入力してください。",
|
||||
"connection_modal.secret.blocking.redis_sentinel": "テスト接続の前に新しい Sentinel パスワードを入力するか、保存済み Sentinel パスワードのクリアを取り消してください",
|
||||
"connection_modal.test.redis_database_list_timeout": "接続には成功しましたが、Redis データベース一覧の取得がタイムアウトしました(>{{seconds}} 秒)",
|
||||
"connection_modal.test.redis_database_list_failure": "接続には成功しましたが、Redis データベース一覧の取得に失敗しました:{{detail}}",
|
||||
"connection_modal.message.test_requires_new_ssh_password": "テスト前に新しい SSH パスワードを入力してください。",
|
||||
"connection_modal.message.test_requires_new_proxy_password": "テスト前に新しいプロキシパスワードを入力してください。",
|
||||
"connection_modal.message.test_requires_new_tunnel_password": "テスト前に新しい HTTP Tunnel パスワードを入力してください。",
|
||||
@@ -1018,20 +1215,32 @@
|
||||
"sidebar.message.export_failed": "エクスポートに失敗しました: {{error}}",
|
||||
"sidebar.message.backing_up_database": "データベース {{database}} をバックアップしています...",
|
||||
"sidebar.message.exporting_database_schema": "{{database}} のスキーマをエクスポートしています...",
|
||||
"sidebar.message.exporting_database_backup": "{{database}} をバックアップしています(スキーマとデータ)...",
|
||||
"sidebar.message.schema_export_target_missing": "対象のスキーマが見つからないため、エクスポートできません。",
|
||||
"sidebar.message.exporting_schema_structure": "スキーマ {{schema}} の構造をエクスポートしています...",
|
||||
"sidebar.message.exporting_schema_backup": "スキーマ {{schema}} をバックアップしています(構造とデータ)...",
|
||||
"sidebar.message.export_tables_same_database_required": "同じデータベースのテーブルを選択してください。",
|
||||
"sidebar.message.backing_up_selected_tables": "選択した {{count}} 件のテーブルをバックアップしています...",
|
||||
"sidebar.message.exporting_selected_table_schema": "選択した {{count}} 件のテーブルのスキーマをエクスポートしています...",
|
||||
"sidebar.message.load_database_list_failed": "データベースの読み込みに失敗しました: {{error}}",
|
||||
"sidebar.message.load_table_list_failed": "テーブルの読み込みに失敗しました: {{error}}",
|
||||
"sidebar.message.locate_external_sql_file_not_found": "外部 SQL ディレクトリで SQL ファイルが見つかりません: {{path}}",
|
||||
"sidebar.message.locate_connection_not_found_for_object": "現在のオブジェクトに対応する接続が見つかりません",
|
||||
"sidebar.message.locate_connection_not_in_tree": "左側ツリーで現在の接続が見つかりません",
|
||||
"sidebar.message.locate_database_loading": "データベースノードはまだ読み込み中です: {{database}}。しばらくしてから再試行してください",
|
||||
"sidebar.message.locate_database_not_found": "左側ツリーでデータベースが見つかりません: {{database}}",
|
||||
"sidebar.message.locate_object_loading": "{{database}} の {{object}} オブジェクトはまだ読み込み中です。しばらくしてから再試行してください",
|
||||
"sidebar.message.locate_object_not_found": "左側ツリーで {{object}} が見つかりません: {{name}}。データベースノードを更新して再試行してください",
|
||||
"sidebar.message.select_object_required": "オブジェクトを 1 件以上選択してください。",
|
||||
"sidebar.message.backing_up_selected_objects": "選択した {{count}} 件のオブジェクトをバックアップしています...",
|
||||
"sidebar.message.exporting_selected_object_data": "選択した {{count}} 件のオブジェクトのデータをエクスポートしています...",
|
||||
"sidebar.message.exporting_selected_object_data": "選択した {{count}} 件のオブジェクトのデータ({{format}})をエクスポートしています...",
|
||||
"sidebar.message.exporting_selected_object_schema": "選択した {{count}} 件のオブジェクトのスキーマをエクスポートしています...",
|
||||
"sidebar.message.export_success_skipped_views": "エクスポートが完了しました。{{count}} 件のビューはデータエクスポートから除外されました。",
|
||||
"sidebar.modal.confirm_clear_selected_tables.title": "選択したテーブルのクリアを確認",
|
||||
"sidebar.modal.confirm_clear_selected_tables.content": "{{connection}} / {{database}} の選択したオブジェクトのデータをクリアしますか?この操作は元に戻せません。",
|
||||
"sidebar.action.continue": "続行",
|
||||
"sidebar.action.cancel": "キャンセル",
|
||||
"sidebar.action.delete": "削除",
|
||||
"sidebar.message.clearing_selected_tables": "選択した {{count}} 件のテーブルをクリアしています...",
|
||||
"sidebar.message.clear_success": "クリア成功。",
|
||||
"sidebar.message.clear_failed": "クリアに失敗しました: {{error}}",
|
||||
@@ -1048,7 +1257,30 @@
|
||||
"sidebar.message.operation_create_failed": "作成に失敗しました: {{error}}",
|
||||
"sidebar.sql_file.default_name": "SQL ファイル",
|
||||
"sidebar.message.sql_file_context_incomplete": "SQL ファイルのコンテキストが不完全です。",
|
||||
"sidebar.message.sql_file_path_incomplete": "SQL ファイルのパスが不完全なため開けません。",
|
||||
"sidebar.message.select_host_before_large_sql_file": "大きな SQL ファイルを実行する前に Host を選択してください。",
|
||||
"sidebar.message.read_sql_file_failed": "SQL ファイルの読み込みに失敗しました: {{error}}",
|
||||
"sidebar.message.external_sql_file_parent_missing": "SQL ファイルを作成するディレクトリが見つかりません。",
|
||||
"sidebar.message.external_sql_file_rename_target_missing": "名前を変更できる SQL ファイルが見つかりません。",
|
||||
"sidebar.message.external_sql_file_delete_target_missing": "削除する SQL ファイルが見つかりません。",
|
||||
"sidebar.message.external_sql_directory_parent_missing": "ディレクトリを作成する場所が見つかりません。",
|
||||
"sidebar.message.external_sql_directory_rename_target_missing": "名前を変更できるディレクトリが見つかりません。",
|
||||
"sidebar.message.external_sql_directory_delete_target_missing": "削除する SQL ディレクトリが見つかりません。",
|
||||
"sidebar.message.sql_file_name_required": "SQL ファイル名は必須です。",
|
||||
"sidebar.message.sql_directory_name_required": "ディレクトリ名は必須です。",
|
||||
"sidebar.message.create_sql_file_failed": "SQL ファイルの作成に失敗しました: {{error}}",
|
||||
"sidebar.message.sql_file_created": "SQL ファイルを作成しました。",
|
||||
"sidebar.message.rename_sql_file_failed": "SQL ファイルの名前変更に失敗しました: {{error}}",
|
||||
"sidebar.message.sql_file_renamed": "SQL ファイルの名前を変更しました。",
|
||||
"sidebar.message.delete_sql_file_failed": "SQL ファイルの削除に失敗しました:{{error}}",
|
||||
"sidebar.message.sql_file_deleted": "SQL ファイルを削除しました。",
|
||||
"sidebar.message.create_sql_directory_failed": "ディレクトリの作成に失敗しました: {{error}}",
|
||||
"sidebar.message.sql_directory_created": "ディレクトリを作成しました。",
|
||||
"sidebar.message.rename_sql_directory_failed": "ディレクトリの名前変更に失敗しました: {{error}}",
|
||||
"sidebar.message.external_sql_directory_rename_sync_failed": "ディレクトリの名前は変更されましたが、外部 SQL ディレクトリ一覧を同期できません。ディレクトリを追加し直してください。",
|
||||
"sidebar.message.sql_directory_renamed": "ディレクトリの名前を変更しました。",
|
||||
"sidebar.message.delete_sql_directory_failed": "SQL ディレクトリの削除に失敗しました:{{error}}",
|
||||
"sidebar.message.sql_directory_deleted": "SQL ディレクトリを削除しました。",
|
||||
"sidebar.message.add_sql_directory_database_required": "SQL ディレクトリを追加する前にデータベースを選択してください。",
|
||||
"sidebar.message.select_sql_directory_failed": "SQL ディレクトリの選択に失敗しました: {{error}}",
|
||||
"sidebar.message.sql_directory_path_invalid": "SQL ディレクトリのパスが無効です。",
|
||||
@@ -1062,6 +1294,10 @@
|
||||
"sidebar.message.create_failed": "作成に失敗しました: {{error}}",
|
||||
"sidebar.modal.confirm_delete_database.title": "データベースを削除",
|
||||
"sidebar.modal.confirm_delete_database.content": "{{name}} を削除しますか?この操作は元に戻せません。",
|
||||
"sidebar.modal.confirm_delete_sql_file.title": "SQL ファイルを削除",
|
||||
"sidebar.modal.confirm_delete_sql_file.content": "\"{{name}}\" を削除しますか?この操作はローカルディスク上のファイルを削除し、元に戻せません。",
|
||||
"sidebar.modal.confirm_delete_sql_directory.title": "SQL ディレクトリを削除",
|
||||
"sidebar.modal.confirm_delete_sql_directory.content": "\"{{name}}\" を削除しますか?この操作はローカルディスク上のディレクトリを削除し、空のディレクトリのみ削除できます。",
|
||||
"sidebar.modal.confirm_delete_table.title": "テーブルを削除",
|
||||
"sidebar.modal.confirm_delete_table.content": "{{name}} を削除しますか?この操作は元に戻せません。",
|
||||
"sidebar.modal.confirm_table_data_action.title": "{{action}} の確認",
|
||||
@@ -1088,8 +1324,14 @@
|
||||
"sidebar.message.delete_connection_failed": "接続の削除に失敗しました。",
|
||||
"sidebar.modal.confirm_delete_saved_query.content": "保存済みクエリ「{{name}}」を削除しますか?この操作は元に戻せません。",
|
||||
"sidebar.search.placeholder": "検索...",
|
||||
"sidebar.punctuation.list_separator": "、",
|
||||
"sidebar.command_search.label": "テーブル、接続、操作を検索",
|
||||
"sidebar.command_search.placeholder": "テーブル、接続、操作を検索... または AI に質問",
|
||||
"sidebar.command_search.sync_to_filter_tooltip": "入力内容を左側フィルターに同期",
|
||||
"sidebar.command_search.sync_to_filter_aria": "左側フィルターに同期",
|
||||
"sidebar.command_search.reset_filter": "サイドバーフィルターをリセット",
|
||||
"sidebar.command_search.no_synced_filter": "同期済みのサイドバーフィルターはありません",
|
||||
"sidebar.command_search.no_filter_content": "フィルター内容はありません",
|
||||
"sidebar.command_search.object_kind.all": "すべて",
|
||||
"sidebar.command_search.object_kind.tables": "テーブル",
|
||||
"sidebar.command_search.object_kind.views": "ビュー",
|
||||
@@ -1135,6 +1377,13 @@
|
||||
"sidebar.v2_table_menu.view_in_er": "ER 図で表示",
|
||||
"sidebar.v2_table_menu.copy_section": "コピー",
|
||||
"sidebar.v2_table_menu.copy_table_name": "テーブル名をコピー",
|
||||
"sidebar.copy_object_name.label.table": "テーブル名",
|
||||
"sidebar.copy_object_name.label.view": "ビュー名",
|
||||
"sidebar.copy_object_name.label.materialized_view": "マテリアライズドビュー名",
|
||||
"sidebar.copy_object_name.label.event": "イベント名",
|
||||
"sidebar.copy_object_name.empty": "{{label}}が空のためコピーできません",
|
||||
"sidebar.copy_object_name.copied": "{{label}}をクリップボードにコピーしました",
|
||||
"sidebar.copy_object_name.failed": "{{label}}のコピーに失敗しました: {{error}}",
|
||||
"sidebar.v2_table_menu.copy_table_as_insert": "テーブル全体を {{keyword}} としてコピー",
|
||||
"sidebar.v2_table_menu.maintenance_section": "メンテナンス",
|
||||
"sidebar.v2_table_menu.rename_compact": "名前を変更…",
|
||||
@@ -1151,6 +1400,11 @@
|
||||
"sidebar.v2_table_group_menu.sort_frequency": "使用頻度",
|
||||
"sidebar.v2_table_group_menu.meta": "{{database}} · {{count}} テーブル · {{sort}}順で並べ替え中",
|
||||
"sidebar.message.locate_current_table_unavailable": "現在のタブには特定できるテーブルがありません",
|
||||
"sidebar.locate.object.table": "テーブル",
|
||||
"sidebar.locate.object.view": "ビュー",
|
||||
"sidebar.locate.object.materialized_view": "マテリアライズドビュー",
|
||||
"sidebar.locate.object.routine": "関数/プロシージャ",
|
||||
"sidebar.locate.object.trigger": "トリガー",
|
||||
"sidebar.active_connection.current_host_database": "現在の Host とデータベース",
|
||||
"sidebar.active_connection.no_database_selected": "データベース未選択",
|
||||
"sidebar.active_connection.no_host_selected": "Host 未選択",
|
||||
@@ -1251,6 +1505,11 @@
|
||||
"sidebar.search.scope.host": "ホスト",
|
||||
"sidebar.search.scope.tag": "タグ",
|
||||
"sidebar.tree.saved_queries": "保存済みクエリ",
|
||||
"sidebar.tree.untitled_query": "無題のクエリ",
|
||||
"sidebar.tree.default_database": "既定データベース",
|
||||
"sidebar.tree.unknown_connection": "不明な接続",
|
||||
"sidebar.tree.unmatched_saved_queries": "未一致",
|
||||
"sidebar.tree.all_saved_queries": "すべての保存済みクエリ",
|
||||
"sidebar.tree.default_schema": "既定スキーマ",
|
||||
"sidebar.object_group.tables": "テーブル",
|
||||
"sidebar.object_group.views": "ビュー",
|
||||
@@ -1274,6 +1533,8 @@
|
||||
"sidebar.tab.new_table": "新規テーブル - {{database}}",
|
||||
"sidebar.tab.table_overview": "テーブル概要 - {{database}}{{schema}}",
|
||||
"sidebar.tab.trigger": "トリガー: {{name}}",
|
||||
"sidebar.tab.event": "イベント: {{name}}",
|
||||
"sidebar.tab.edit_event": "イベントを編集: {{name}}",
|
||||
"sidebar.tab.materialized_view_definition": "マテリアライズドビュー: {{name}}",
|
||||
"sidebar.tab.view_definition": "ビュー: {{name}}",
|
||||
"sidebar.tab.edit_view": "ビューを編集: {{name}}",
|
||||
@@ -1343,9 +1604,13 @@
|
||||
"tab_manager.hover.label.object": "オブジェクト",
|
||||
"tab_manager.hover.label.type": "種類",
|
||||
"sidebar.message.no_visible_databases": "表示可能なデータベースまたはスキーマが返されませんでした。権限を確認するか、右クリックメニューから更新してください。",
|
||||
"sidebar.message.visual_new_table_unsupported": "このデータソースでは、ビジュアルな新規テーブル作成はまだサポートされていません。",
|
||||
"sidebar.message.jvm_resources_backend_unavailable": "このビルドでは JVM リソースの参照を利用できません。",
|
||||
"sidebar.message.external_sql_directory_read_failed": "SQL ディレクトリ {{name}} の読み込みに失敗しました: {{error}}",
|
||||
"sidebar.message.sphinx_unsupported_objects": "この Sphinx インスタンスは次のオブジェクト機能を公開していません: {{objects}}。互換モードを適用しました。",
|
||||
"sidebar.message.sidebar_filter_sync_enabled": "左側フィルターの同期を有効にしました。",
|
||||
"sidebar.message.sidebar_filter_sync_disabled": "左側フィルターの同期を無効にしました。",
|
||||
"sidebar.message.sidebar_filter_reset": "サイドバーフィルターをリセットしました。",
|
||||
"sidebar.message.database_name_required": "データベース名を入力してください。",
|
||||
"sidebar.message.database_name_unchanged": "データベース名は変更されていません。",
|
||||
"sidebar.message.database_renamed": "データベース名を変更しました。",
|
||||
@@ -1394,6 +1659,9 @@
|
||||
"sidebar.menu.close_database": "データベースを閉じる",
|
||||
"sidebar.menu.browse_view_data": "ビューデータを参照",
|
||||
"sidebar.menu.view_definition": "ビュー定義",
|
||||
"sidebar.menu.browse_materialized_view_data": "マテリアライズドビューのデータを参照",
|
||||
"sidebar.menu.materialized_view_definition": "マテリアライズドビュー定義",
|
||||
"sidebar.menu.view_object_definition": "定義を表示",
|
||||
"sidebar.menu.edit_view": "ビューを編集",
|
||||
"sidebar.menu.rename_view": "ビュー名を変更",
|
||||
"sidebar.menu.delete_view": "ビューを削除",
|
||||
@@ -1420,6 +1688,15 @@
|
||||
"sidebar.menu.refresh_directory": "ディレクトリを更新",
|
||||
"sidebar.menu.remove_directory": "ディレクトリを削除",
|
||||
"sidebar.menu.open_sql_file": "SQL ファイルを開く",
|
||||
"sidebar.menu.new_sql_file": "SQL ファイルを新規作成",
|
||||
"sidebar.menu.new_sql_directory": "ディレクトリを新規作成",
|
||||
"sidebar.menu.rename_sql_directory": "ディレクトリ名を変更",
|
||||
"sidebar.menu.delete_local_directory": "ローカルディレクトリを削除",
|
||||
"sidebar.menu.delete_sql_directory": "ディレクトリを削除",
|
||||
"sidebar.menu.rename_sql_file": "SQL ファイル名を変更",
|
||||
"sidebar.menu.new_sql_file_in_directory": "このディレクトリに SQL ファイルを新規作成",
|
||||
"sidebar.menu.new_sql_directory_in_directory": "このディレクトリにディレクトリを新規作成",
|
||||
"sidebar.menu.delete_sql_file": "SQL ファイルを削除",
|
||||
"sidebar.batch.group.tables": "テーブル",
|
||||
"sidebar.batch.group.views": "ビュー",
|
||||
"sidebar.batch.no_matching_objects": "一致するオブジェクトはありません",
|
||||
@@ -1433,6 +1710,22 @@
|
||||
"connection_modal.network.ssl_mode.skip_verify": "検証をスキップ",
|
||||
"sidebar.external_sql.root": "外部 SQL ファイル",
|
||||
"sidebar.external_sql.directory_fallback": "SQL ディレクトリ",
|
||||
"sidebar.external_sql_modal.title.create_file": "SQL ファイルを新規作成",
|
||||
"sidebar.external_sql_modal.title.rename_file": "SQL ファイル名を変更",
|
||||
"sidebar.external_sql_modal.title.create_directory": "ディレクトリを新規作成",
|
||||
"sidebar.external_sql_modal.title.rename_directory": "ディレクトリ名を変更",
|
||||
"sidebar.external_sql_modal.action.create": "作成",
|
||||
"sidebar.external_sql_modal.action.rename": "名前を変更",
|
||||
"sidebar.external_sql_modal.field.directory_name": "ディレクトリ名",
|
||||
"sidebar.external_sql_modal.field.sql_file_name": "SQL ファイル名",
|
||||
"sidebar.external_sql_modal.validation.directory_name_required": "ディレクトリ名を入力してください",
|
||||
"sidebar.external_sql_modal.validation.sql_file_name_required": "SQL ファイル名を入力してください",
|
||||
"sidebar.external_sql_modal.validation.directory_name_no_separator": "ディレクトリ名にパス区切り文字を含めることはできません",
|
||||
"sidebar.external_sql_modal.validation.sql_file_name_no_separator": "ファイル名にパス区切り文字を含めることはできません",
|
||||
"sidebar.external_sql_modal.help.directory": "ディレクトリは外部 SQL ディレクトリツリーにのみ表示され、SQL 以外のファイルは引き続き表示されません",
|
||||
"sidebar.external_sql_modal.help.sql_file": ".sql 拡張子を省略すると自動で補完されます",
|
||||
"sidebar.external_sql_modal.placeholder.directory_name": "例: reports",
|
||||
"sidebar.external_sql_modal.placeholder.sql_file_name": "例: report.sql",
|
||||
"sidebar.jvm.action.monitoring": "継続監視",
|
||||
"sidebar.jvm.action.diagnostic": "診断強化",
|
||||
"sidebar.jvm.tab.overview": "JVM 概要",
|
||||
@@ -1871,14 +2164,34 @@
|
||||
"query_editor.action.ai_explain_sql_menu": "SQL を説明",
|
||||
"query_editor.action.ai_optimize_sql_menu": "SQL を最適化",
|
||||
"query_editor.action.ai_schema_analysis": "スキーマ分析",
|
||||
"query_editor.action.show_results_panel": "結果エリアを表示",
|
||||
"query_editor.action.hide_results_panel": "結果エリアを非表示",
|
||||
"query_editor.action.show_results_panel_with_shortcut": "結果エリアを表示({{shortcut}})",
|
||||
"query_editor.action.hide_results_panel_with_shortcut": "結果エリアを非表示({{shortcut}})",
|
||||
"query_editor.action.results": "結果",
|
||||
"query_editor.transaction.delay.immediate": "即時",
|
||||
"query_editor.transaction.mode.tooltip": "DBeaver と同様に、SQL エディターで INSERT/UPDATE/DELETE/MERGE/REPLACE などの DML を実行すると、まず GoNavi の管理トランザクションに入ります。手動モードでは commit/rollback が必要で、自動モードでは実行成功後に自動で COMMIT します。",
|
||||
"query_editor.transaction.mode.manual": "手動",
|
||||
"query_editor.transaction.mode.auto": "自動",
|
||||
"query_editor.transaction.status.auto_commit_countdown": "{{seconds}}s 後に自動コミット",
|
||||
"query_editor.transaction.status.auto_committing": "自動コミット中",
|
||||
"query_editor.transaction.action.commit": "コミット",
|
||||
"query_editor.transaction.action.commit_with_count": "コミット ({{count}})",
|
||||
"query_editor.transaction.action.rollback": "ロールバック",
|
||||
"query_editor.transaction.message.pending_managed_transaction": "SQL エディターには未コミットのトランザクションがあります。新しい DML 文を実行する前にコミットまたはロールバックしてください。",
|
||||
"query_editor.action.show_object_info": "オブジェクト情報を表示",
|
||||
"query_editor.action.rename_query": "クエリ名を変更",
|
||||
"query_editor.action.export_sql_file": "SQL ファイルをエクスポート",
|
||||
"query_editor.format.keyword_upper": "キーワードを大文字にする",
|
||||
"query_editor.format.keyword_lower": "キーワードを小文字にする",
|
||||
"query_editor.format.restore_last_format": "前回の整形を元に戻す",
|
||||
"query_editor.format.snippet_settings": "スニペット設定...",
|
||||
"query_editor.format.shortcut_settings": "ショートカット設定...",
|
||||
"query_editor.message.format_failed": "整形に失敗しました: SQL 構文が正しくない可能性があります。",
|
||||
"query_editor.message.no_format_restore_snapshot": "元に戻せる整形前の SQL はありません。",
|
||||
"query_editor.message.format_restore_success": "整形前の SQL に戻しました。",
|
||||
"query_editor.message.page_query_failed": "ページ取得に失敗しました: {{error}}",
|
||||
"query_editor.message.page_query_empty": "ページ取得で結果セットが返されませんでした。",
|
||||
"query_editor.message.refresh_failed": "再読み込みに失敗しました: {{error}}",
|
||||
"query_editor.message.select_database_first": "先にデータベースを選択してください。",
|
||||
"query_editor.message.connection_not_found": "接続が見つかりません。",
|
||||
@@ -1896,6 +2209,7 @@
|
||||
"query_editor.message.read_only_no_safe_locator": "主キーまたは利用可能な一意インデックスが検出されなかったため、安全に変更をコミットできません。",
|
||||
"query_editor.message.read_only_index_metadata_unavailable": "一意インデックスのメタデータを読み込めないため、安全に変更をコミットできません。",
|
||||
"query_editor.message.read_only_table_locator_metadata_unavailable": "{{table}} の主キー/一意インデックスのメタデータを読み込めないため、安全に変更をコミットできません。",
|
||||
"query_editor.message.read_only_system_metadata": "システムメタデータのクエリ結果は読み取り専用のままです。",
|
||||
"query_editor.message.read_only_oracle_rowid_injection_unavailable": "Oracle クエリで * を使用しているため、ROWID ロケーター列を自動挿入できず、読み取り専用のままにしています。",
|
||||
"query_editor.message.read_only_warning_with_detail": "クエリ結果は読み取り専用のままです: {{detail}}",
|
||||
"query_editor.message.object_info_target_not_found": "現在のカーソル位置に認識できるテーブルまたはカラムがありません。",
|
||||
@@ -1904,6 +2218,7 @@
|
||||
"query_editor.message.saved": "クエリを保存しました。",
|
||||
"query_editor.message.sql_file_saved": "SQL ファイルを保存しました。",
|
||||
"query_editor.message.save_sql_file_failed": "SQL ファイルの保存に失敗しました: {{error}}",
|
||||
"query_editor.message.save_query_failed": "クエリの保存に失敗しました: {{error}}",
|
||||
"query_editor.message.export_sql_file_success": "SQL ファイルをエクスポートしました。",
|
||||
"query_editor.message.export_sql_file_failed": "SQL ファイルのエクスポートに失敗しました: {{error}}",
|
||||
"query_editor.message.save_first_before_rename": "名前を変更する前に、先にクエリを保存してください。",
|
||||
@@ -1917,6 +2232,18 @@
|
||||
"query_editor.result.affected_rows": "影響行数: {{count}}",
|
||||
"query_editor.result.execution_failed": "実行失敗",
|
||||
"query_editor.result.ai_diagnose": "AI 診断",
|
||||
"query_editor.results_panel.tooltip.hide": "結果エリアを非表示",
|
||||
"query_editor.results_panel.tooltip.hide_with_shortcut": "結果エリアを非表示({{shortcut}})",
|
||||
"query_editor.results_panel.menu.close_other": "他のタブを閉じる",
|
||||
"query_editor.results_panel.menu.close_left": "左側のタブを閉じる",
|
||||
"query_editor.results_panel.menu.close_right": "右側のタブを閉じる",
|
||||
"query_editor.results_panel.menu.close_all": "すべて閉じる",
|
||||
"query_editor.results_panel.action.hide": "非表示",
|
||||
"query_editor.results_panel.aria.hide": "結果エリアを非表示",
|
||||
"query_editor.results_panel.tab.message": "メッセージ {{index}}",
|
||||
"query_editor.results_panel.tab.result": "結果 {{index}}",
|
||||
"query_editor.results_panel.message.title": "実行メッセージ",
|
||||
"query_editor.results_panel.panel.title": "結果エリア",
|
||||
"query_editor.save_modal.title": "クエリを保存",
|
||||
"query_editor.save_modal.rename_title": "クエリ名を変更",
|
||||
"query_editor.save_modal.rename_ok": "名前を変更",
|
||||
@@ -2165,6 +2492,7 @@
|
||||
"data_grid.context_menu.edit_section": "編集",
|
||||
"data_grid.context_menu.edit_row": "この行を編集",
|
||||
"data_grid.context_menu.copy_row_as_new": "この行を新規行としてコピー",
|
||||
"data_grid.context_menu.undo_cell_change": "このセルの変更を取り消す",
|
||||
"data_grid.context_menu.export_as_csv": "CSV としてエクスポート",
|
||||
"data_grid.context_menu.export_as_excel": "Excel としてエクスポート",
|
||||
"data_grid.context_menu.export_as_html": "HTML としてエクスポート",
|
||||
@@ -2200,6 +2528,7 @@
|
||||
"data_grid.error_boundary.title": "描画エラー",
|
||||
"data_grid.export.all_data": "すべてのデータをエクスポート",
|
||||
"data_grid.export.all_rows": "すべての行をエクスポート({{count}} 行)",
|
||||
"data_grid.export.all_rows_requery": "すべてエクスポート(再クエリ)",
|
||||
"data_grid.export.current_page": "現在のページをエクスポート({{count}} 行)",
|
||||
"data_grid.export.current_page_rows": "現在のページをエクスポート({{count}} 行)",
|
||||
"data_grid.export.group_filtered_results": "フィルター済み結果",
|
||||
@@ -2274,7 +2603,12 @@
|
||||
"data_grid.message.column_quick_find_not_found": "フィールド列が見つかりません: {{query}}",
|
||||
"data_grid.message.column_quick_find_not_rendered": "フィールド列「{{column}}」は現在レンダリングされていないため、特定できません",
|
||||
"data_grid.message.column_visibility_reset": "すべての列を表示しました",
|
||||
"data_grid.message.auto_commit_failed": "自動コミットに失敗しました: {{detail}}",
|
||||
"data_grid.message.auto_commit_success": "自動コミットしました",
|
||||
"data_grid.message.commit_failed": "コミットに失敗しました: {{detail}}",
|
||||
"data_grid.message.undo_added_row_hint": "新規行の取り消しには、選択行の削除または表全体のロールバックを使用してください",
|
||||
"data_grid.message.undo_cell_original_missing": "このセルの元データが見つからないため、取り消せません",
|
||||
"data_grid.message.undo_cell_success": "セルの変更を取り消しました",
|
||||
"data_grid.message.copied_columns": "{{count}} 列をコピーしました。対象行に貼り付けできます。",
|
||||
"data_grid.message.copied_rows": "{{count}} 行をコピーしました。新しい行として貼り付けできます。",
|
||||
"data_grid.message.copied_to_clipboard": "クリップボードにコピーしました",
|
||||
@@ -2463,6 +2797,8 @@
|
||||
"data_grid.secondary.er_diagram": "ER 図",
|
||||
"data_grid.secondary.jump_column": "列へ移動",
|
||||
"data_grid.secondary.live": "ライブ",
|
||||
"data_grid.secondary.object_design": "オブジェクト設計",
|
||||
"data_grid.embedded_designer.title": "テーブル設計({{tableName}})",
|
||||
"data_grid.secondary.pending_changes": "未コミット {{count}}",
|
||||
"data_grid.secondary.row_count": "{{count}} 行",
|
||||
"data_grid.secondary.view_ddl": "DDL を表示",
|
||||
@@ -2478,6 +2814,11 @@
|
||||
"data_grid.toolbar.cell_editor": "セルエディター",
|
||||
"data_grid.toolbar.commit": "トランザクションをコミット({{count}})",
|
||||
"data_grid.toolbar.commit_label": "トランザクションをコミット",
|
||||
"data_grid.toolbar.commit_delay.seconds": "{{seconds}} 秒",
|
||||
"data_grid.toolbar.commit_mode.auto": "自動コミット",
|
||||
"data_grid.toolbar.commit_mode.auto_countdown": "{{seconds}}s 後にコミット",
|
||||
"data_grid.toolbar.commit_mode.manual": "手動コミット",
|
||||
"data_grid.toolbar.commit_mode.tooltip": "テーブルデータ編集後のコミット方法を制御します。手動コミットの方が安全です。自動コミットは最後の変更後、選択した待機時間が経過してから実行されます。",
|
||||
"data_grid.toolbar.copied_columns_count": "コピー済み列 {{count}} 件",
|
||||
"data_grid.toolbar.copy": "コピー",
|
||||
"data_grid.toolbar.copy_row": "行をコピー",
|
||||
@@ -2794,6 +3135,7 @@
|
||||
"redis_viewer.hint.switch_auto_to_edit": "編集するには Auto モードに切り替えてください",
|
||||
"redis_viewer.label.encoding": "エンコーディング: {{encoding}}",
|
||||
"redis_viewer.label.keys_count": "{{count}} 件の Key",
|
||||
"redis_viewer.label.node_count": "{{count}} ノード",
|
||||
"redis_viewer.label.length": "長さ: {{count}}",
|
||||
"redis_viewer.label.original_key": "元の Key: {{key}}",
|
||||
"redis_viewer.message.add_failed": "追加に失敗しました: {{detail}}",
|
||||
@@ -2850,6 +3192,9 @@
|
||||
"redis_viewer.placeholder.value": "値",
|
||||
"redis_viewer.search.exact": "完全一致",
|
||||
"redis_viewer.search.fuzzy": "あいまい",
|
||||
"redis_viewer.topology.cluster": "Cluster",
|
||||
"redis_viewer.topology.sentinel": "Sentinel",
|
||||
"redis_viewer.topology.single": "スタンドアロン",
|
||||
"redis_viewer.state.connection_not_found": "接続が見つかりません",
|
||||
"redis_viewer.state.empty_selection": "詳細を表示する Key を選択してください",
|
||||
"redis_viewer.table.action": "操作",
|
||||
@@ -2988,6 +3333,7 @@
|
||||
"ai_chat.input.slash.sql.prompt": "次の要件から SQL を生成してください:",
|
||||
"ai_chat.input.tooltip.attach_table_context": "データベーステーブルコンテキストを追加",
|
||||
"ai_chat.input.tooltip.upload_image": "画像またはスクリーンショットをアップロード",
|
||||
"ai_chat.tools.mcp_fallback_description": "{{serverName}} が提供する MCP ツール {{toolName}}",
|
||||
"ai_chat.composer_notice.missing_model.description": "下のモデルドロップダウンを開いてモデルを選択してください。一覧が空の場合は、プロバイダーのエンドポイントと API Key を確認してください。",
|
||||
"ai_chat.composer_notice.missing_model.title": "先にモデルを選択してください",
|
||||
"ai_chat.composer_notice.missing_provider.description": "まず AI 設定でモデルプロバイダーを追加して有効化してください。",
|
||||
@@ -3234,9 +3580,47 @@
|
||||
"ai_settings.context.with_results.label": "クエリ結果を含める",
|
||||
"ai_settings.context.with_results.desc": "直近のクエリ結果をコンテキストとして渡します",
|
||||
"ai_settings.prompts.description": "以下は現在の GoNavi バージョンに組み込まれている読み取り専用の基礎 AI プロンプトです。対応する場面のリクエストコンテキストへ動的に注入されます。",
|
||||
"ai_settings.prompts.message.saved": "カスタムプロンプトを保存しました",
|
||||
"ai_settings.prompts.message.save_failed": "カスタムプロンプトの保存に失敗しました",
|
||||
"ai_settings.mcp_server.message.saved": "MCP サービスを保存しました",
|
||||
"ai_settings.mcp_server.message.save_failed": "MCP サービスの保存に失敗しました",
|
||||
"ai_settings.mcp_server.message.deleted": "MCP サービスを削除しました",
|
||||
"ai_settings.mcp_server.message.delete_failed": "MCP サービスの削除に失敗しました",
|
||||
"ai_settings.mcp_server.message.test_success": "MCP サービスに接続しました",
|
||||
"ai_settings.mcp_server.message.test_failed": "MCP サービスのテストに失敗しました",
|
||||
"ai_settings.mcp_server.message.test_request_failed": "MCP サービスのテスト実行に失敗しました",
|
||||
"ai_settings.clipboard.error.unsupported": "現在の環境ではクリップボードへのコピーに対応していません",
|
||||
"ai_settings.mcp_http.error.control_unsupported_runtime": "現在のランタイムでは MCP HTTP サービスの制御に対応していません",
|
||||
"ai_settings.mcp_http.error.start_unsupported_version": "現在のバージョンでは MCP HTTP サービスの起動に対応していません",
|
||||
"ai_settings.mcp_http.error.stop_unsupported_version": "現在のバージョンでは MCP HTTP サービスの停止に対応していません",
|
||||
"ai_settings.mcp_http.message.started": "GoNavi MCP HTTP サービスを起動しました",
|
||||
"ai_settings.mcp_http.message.stopped": "GoNavi MCP HTTP サービスを停止しました",
|
||||
"ai_settings.mcp_http.message.toggle_failed": "GoNavi MCP HTTP サービスの切り替えに失敗しました",
|
||||
"ai_settings.mcp_http.message.url_unavailable": "コピーできる MCP HTTP URL がありません",
|
||||
"ai_settings.mcp_http.message.url_copied": "MCP HTTP URL をコピーしました",
|
||||
"ai_settings.mcp_http.message.authorization_header_required": "Authorization Header を生成するには先に MCP HTTP サービスを起動してください",
|
||||
"ai_settings.mcp_http.message.authorization_header_copied": "Authorization Header をコピーしました",
|
||||
"ai_settings.mcp_http.status.not_running": "GoNavi MCP HTTP サービスは起動していません",
|
||||
"ai_settings.skill.message.saved": "Skill を保存しました",
|
||||
"ai_settings.skill.message.save_failed": "Skill の保存に失敗しました",
|
||||
"ai_settings.skill.message.deleted": "Skill を削除しました",
|
||||
"ai_settings.skill.message.delete_failed": "Skill の削除に失敗しました",
|
||||
"ai_settings.tools.description": "データベース関連の質問を処理するとき、AI アシスタントは以下の組み込みツールを自動呼び出しして実データを取得できます。手動操作は不要です。",
|
||||
"ai_settings.tools.workflow": "💡 ワークフロー:get_connections → get_databases → get_tables → get_columns → SQL 生成",
|
||||
"ai_settings.tools.params_label": "パラメーター:",
|
||||
"ai_settings.tools.builtin_tool_label": "組み込みツール",
|
||||
"ai_settings.tools.search.aria_label": "組み込みツールを検索",
|
||||
"ai_settings.tools.search.placeholder": "ツール、フロー、パラメーターを検索。例:mcp / lineLimit / allowMutating / transaction",
|
||||
"ai_settings.tools.search.clear": "クリア",
|
||||
"ai_settings.tools.summary": "{{flowVisible}}/{{flowTotal}} 件の推奨フロー、{{toolVisible}}/{{toolTotal}} 個の組み込みツールを表示中。",
|
||||
"ai_settings.tools.empty.no_matches": "一致する組み込みツールはありません。mcp、ログ、接続、transaction、ショートカット、schema など、より広いキーワードで検索してください。",
|
||||
"ai_settings.tools.parameters.hint_title": "パラメーターのヒント",
|
||||
"ai_settings.tools.parameters.type_label": "型:{{type}}",
|
||||
"ai_settings.tools.parameters.required": "必須",
|
||||
"ai_settings.tools.parameters.optional": "任意",
|
||||
"ai_settings.tools.parameters.enum_values": "選択値:{{values}}",
|
||||
"ai_settings.tools.parameters.default_value": "既定:{{value}}",
|
||||
"ai_settings.tools.parameters.example": "例:",
|
||||
"ai_settings.tools.params.none": "パラメーターなし",
|
||||
"ai_settings.tools.get_connections.desc": "利用可能なデータベース接続をすべて取得",
|
||||
"ai_settings.tools.get_connections.detail": "接続 ID、名前、種類(MySQL/PostgreSQL など)、Host アドレスを返します。AI はこの情報から優先的に探索する接続を判断します。",
|
||||
@@ -3521,6 +3905,38 @@
|
||||
"data_sync.action.previous": "戻る",
|
||||
"data_sync.action.start_sync": "同期を開始",
|
||||
"data_sync.action.view": "表示",
|
||||
"data_sync.compare_entry.action.return_to_compare": "比較へ戻る",
|
||||
"data_sync.compare_entry.alert.data": "現在はデータ比較の入口です。主キーに基づく行単位の差分分析のみを行い、書き込みは実行しません。",
|
||||
"data_sync.compare_entry.alert.schema": "現在はテーブル構造比較の入口です。構造差分の分析と確認用 SQL の生成のみを行い、変更は実行しません。",
|
||||
"data_sync.compare_entry.option.auto_add_columns": "対象テーブルの不足カラムに対する互換変更 SQL を生成(プレビューのみ、実行しません)",
|
||||
"data_sync.compare_entry.option.source_dataset.query": "SQL 結果セットで比較",
|
||||
"data_sync.compare_entry.option.source_dataset.table": "テーブルで比較",
|
||||
"data_sync.compare_entry.preview.selection_hint": "行選択は SQL プレビュー範囲にのみ影響し、書き込みは実行しません。",
|
||||
"data_sync.compare_entry.preview.sql.data_help": "SQL プレビューは、現在選択されている挿入、更新、削除、および行範囲から生成され、差分確認にのみ使用します。",
|
||||
"data_sync.compare_entry.preview.sql.schema_help": "SQL プレビューには構造差分の推奨文が表示され、差分確認にのみ使用します。",
|
||||
"data_sync.compare_entry.result.completed": "比較が完了しました",
|
||||
"data_sync.compare_entry.result.failed": "比較に失敗しました",
|
||||
"data_sync.compare_entry.result.running": "比較中",
|
||||
"data_sync.compare_entry.result.running_description": "現在の段階:{{stage}}{{table}}",
|
||||
"data_sync.compare_entry.result.stage_fallback": "実行中",
|
||||
"data_sync.compare_entry.result.success_summary": "{{tables}} 個のテーブルを比較しました。",
|
||||
"data_sync.compare_entry.result.table_suffix": "、テーブル:{{table}}",
|
||||
"data_sync.compare_entry.title.analysis_log": "分析ログ",
|
||||
"data_sync.compare_entry.workflow_help": "この入口では差分分析とプレビューのみを行います。同期、テーブル作成、カラム追加、データ削除は実行しません。",
|
||||
"data_sync.entry_mode.compare.action.start": "比較を開始",
|
||||
"data_sync.entry_mode.compare.option_title": "比較オプション",
|
||||
"data_sync.entry_mode.compare.result_title": "比較結果",
|
||||
"data_sync.entry_mode.data_compare.badge": "データ比較",
|
||||
"data_sync.entry_mode.data_compare.description": "主キーに基づいてソース表とターゲット表のデータ差分を比較し、追加、更新、削除の詳細を確認します。",
|
||||
"data_sync.entry_mode.data_compare.hero_description": "両端のデータ整合性を確認する場合に適しています。差分分析と行単位のプレビューのみを行い、書き込みは実行しません。",
|
||||
"data_sync.entry_mode.data_compare.table_select_label": "データを比較するテーブルを選択してください:",
|
||||
"data_sync.entry_mode.data_compare.title": "データ比較",
|
||||
"data_sync.entry_mode.schema_compare.badge": "構造比較",
|
||||
"data_sync.entry_mode.schema_compare.description": "ソース表とターゲット表の構造差分、互換性リスク、確認用 SQL を生成します。",
|
||||
"data_sync.entry_mode.schema_compare.hero_description": "リリース前に両端のテーブル構造差分を確認する場合に適しています。分析とプレビューのみを行い、構造変更は実行しません。",
|
||||
"data_sync.entry_mode.schema_compare.table_select_label": "構造を比較するテーブルを選択してください:",
|
||||
"data_sync.entry_mode.schema_compare.title": "テーブル構造比較",
|
||||
"data_sync.entry_mode.sync.hero_description": "ターゲット表が既に存在する場合に適しています。先に差分分析を行い、選択した挿入、更新、削除を実行します。",
|
||||
"data_sync.alert.auto_create_scope": "自動テーブル作成は現在 MySQL から Kingbase への移行のみ対応しています。列、主キー、通常インデックス、一意インデックス、複合インデックスを移行し、全文、空間、プレフィックス、関数系インデックスは明示的にスキップします。",
|
||||
"data_sync.alert.auto_create_planner_scope": "自動テーブル作成は現在 MySQL から Kingbase への移行のみ対応しています。列、主キー、通常インデックス、一意インデックス、複合インデックスを移行し、全文、空間、プレフィックス、関数系インデックスは明示的にスキップします。",
|
||||
"data_sync.alert.existing_target_only": "データ同期は既存のターゲットテーブルに対して実行されます。テーブル作成とインポートが必要な場合は、クロスデータベース移行に切り替えてください。",
|
||||
@@ -4373,6 +4789,11 @@
|
||||
"app.theme.font_family.loading_ui_hint": "現在のシステムにインストール済みのフォントをリアルタイムに読み込みます。入力して検索できます。クリアすると既定の UI フォントに戻ります。",
|
||||
"app.theme.font_family.mono_fallback_hint": "一般的なコードフォントプリセットにフォールバックしています。SQL エディター、AI コードブロック、ログ、DDL、データテーブルなどの等幅コンテンツに適用されます。",
|
||||
"app.theme.font_family.mono_hint": "インストール済みのシステムフォントを優先表示し、Mono/Code/Console に近い名前のフォントを上位に表示します。SQL エディター、AI コードブロック、ログ、DDL、データテーブルなどの等幅コンテンツに適用されます。",
|
||||
"app.theme.font_family.linux_cjk_install_prefix": "Ubuntu/Linux で中国語 CJK フォントが検出されていないため、画面に欠落グリフの四角が表示される可能性があります。インストールしてください: ",
|
||||
"app.theme.font_family.linux_cjk_install_suffix": "。その後 GoNavi を再起動してください。",
|
||||
"app.linux_cjk_font_banner.title": "Linux CJK フォントが不足しています",
|
||||
"app.linux_cjk_font_banner.description": "中国語テキストが欠落グリフの四角として表示される可能性があります。フォントをインストールしてから GoNavi を再起動してください: ",
|
||||
"app.linux_cjk_font_banner.action.open_font_settings": "フォント設定",
|
||||
"app.theme.data_table.density": "テーブル密度",
|
||||
"app.theme.data_table.density.comfortable": "ゆったり",
|
||||
"app.theme.data_table.density.standard": "標準",
|
||||
|
||||
@@ -470,6 +470,35 @@
|
||||
"app.theme.ui_version.legacy.description": "Текущий стабильный интерфейс, в котором полностью доступны все функции.",
|
||||
"app.theme.ui_version.legacy.label": "Старый UI",
|
||||
"app.theme.ui_version.platform_hint": "Windows, macOS и Linux поддерживают переключение. Изменения применяются сразу, а некоторые модальные окна используют новый стиль при следующем открытии.",
|
||||
"app.theme.ui_version.sidebar_search.command": "Новый командный поиск",
|
||||
"app.theme.ui_version.sidebar_search.filter": "Старый фильтр боковой панели",
|
||||
"app.theme.ui_version.sidebar_search.hint": "Новый командный поиск удобен для перехода к подключениям, таблицам и действиям. Включите синхронизацию на панели, чтобы постоянно фильтровать левое дерево; старый фильтр боковой панели показывает поле ввода напрямую и сохраняет текст фильтра.",
|
||||
"app.theme.ui_version.sidebar_search.title": "Новый режим поиска в левой боковой панели",
|
||||
"app.theme.tab_display.title": "Отображение меток вкладок",
|
||||
"app.theme.tab_display.description": "Настройте порядок отображения имени подключения, типа объекта, имени объекта, базы данных, Schema и Host/IP. В двухстрочном режиме контекст можно вынести во вторую строку.",
|
||||
"app.theme.tab_display.layout.single": "Одна строка",
|
||||
"app.theme.tab_display.layout.double": "Две строки",
|
||||
"app.theme.tab_display.badge.current": "Текущий",
|
||||
"app.theme.tab_display.row.primary": "Основная строка",
|
||||
"app.theme.tab_display.row.secondary": "Вторая строка",
|
||||
"app.theme.tab_display.action.move_up": "Вверх",
|
||||
"app.theme.tab_display.action.move_down": "Вниз",
|
||||
"app.theme.tab_display.preview.prefix": "Текущий предпросмотр: ",
|
||||
"app.theme.tab_display.preview.default_label": "Метка по умолчанию",
|
||||
"app.theme.tab_display.preview.secondary": ", вторая строка {{labels}}",
|
||||
"app.theme.tab_display.preview.focused": "; выбрано {{label}}",
|
||||
"app.theme.tab_display.element.connection.label": "Подключение",
|
||||
"app.theme.tab_display.element.connection.description": "Псевдоним подключения или имя среды, например DEV",
|
||||
"app.theme.tab_display.element.kind.label": "Тип объекта",
|
||||
"app.theme.tab_display.element.kind.description": "Метки типов, например SQL / TABLE / VIEW",
|
||||
"app.theme.tab_display.element.object.label": "Имя объекта",
|
||||
"app.theme.tab_display.element.object.description": "Основные имена, например таблицы, запроса или ресурса",
|
||||
"app.theme.tab_display.element.database.label": "База данных",
|
||||
"app.theme.tab_display.element.database.description": "Текущее имя DB / catalog",
|
||||
"app.theme.tab_display.element.schema.label": "Schema",
|
||||
"app.theme.tab_display.element.schema.description": "Префикс schema / owner",
|
||||
"app.theme.tab_display.element.host.label": "Host/IP",
|
||||
"app.theme.tab_display.element.host.description": "Краткий адрес целевого подключения",
|
||||
"app.theme.ui_version.title": "Версия интерфейса",
|
||||
"app.theme.ui_version.v2.badge": "Beta",
|
||||
"app.theme.ui_version.v2.description": "Переработанный компактный интерфейс с усиленным входом AI и обзором таблиц.",
|
||||
@@ -493,6 +522,10 @@
|
||||
"app.window_zoom.message.windows_only": "Эта функция доступна только в Windows",
|
||||
"app.tools.entry.shortcuts.description": "Просмотр и настройка глобальных горячих клавиш.",
|
||||
"app.tools.entry.shortcuts.title": "Управление горячими клавишами",
|
||||
"app.tools.entry.schema_compare.description": "Сравнивает различия структуры исходной и целевой таблиц, только предварительный просмотр без выполнения.",
|
||||
"app.tools.entry.schema_compare.title": "Сравнение схем",
|
||||
"app.tools.entry.data_compare.description": "Анализирует добавленные, обновленные, удаленные и неизмененные строки по первичному ключу.",
|
||||
"app.tools.entry.data_compare.title": "Сравнение данных",
|
||||
"app.tools.entry.sync.description": "Открыть рабочий процесс синхронизации между источниками.",
|
||||
"app.tools.entry.sync.title": "Синхронизация данных",
|
||||
"app.tools.title": "Центр инструментов",
|
||||
@@ -527,6 +560,18 @@
|
||||
"app.browser_mock.export_sql_unsupported": "Браузерный mock не поддерживает экспорт SQL-файлов",
|
||||
"app.browser_mock.import_connection_package_unsupported": "Браузерный mock не поддерживает импорт пакетов восстановления; поддерживаются только старые массивы подключений JSON",
|
||||
"app.browser_mock.export_connection_package_unsupported": "Браузерный mock не поддерживает экспорт пакетов восстановления",
|
||||
"app.browser_mock.mcp_http.not_running": "Служба GoNavi MCP HTTP не запущена",
|
||||
"app.browser_mock.mcp_http.started": "Служба GoNavi MCP HTTP запущена",
|
||||
"app.browser_mock.mcp_http.stopped": "Служба GoNavi MCP HTTP остановлена",
|
||||
"app.browser_mock.mcp_server.command_required": "Команда MCP не может быть пустой",
|
||||
"app.browser_mock.mcp_server.test_success": "Проверка MCP mock выполнена успешно",
|
||||
"app.browser_mock.mcp_tool.unavailable": "Браузерный mock не подключен к реальной службе MCP",
|
||||
"app.browser_mock.mcp_client.claude_code.installed": "Пользовательская конфигурация MCP для Claude Code записана. Перезапустите Claude CLI, после чего GoNavi появится в User MCPs в /mcp.",
|
||||
"app.browser_mock.mcp_client.claude_code.not_detected": "Пользовательская конфигурация GoNavi MCP для Claude Code не обнаружена",
|
||||
"app.browser_mock.mcp_client.codex.installed": "Пользовательская конфигурация MCP для Codex записана. Перезапустите Codex CLI или настольное приложение, чтобы увидеть GoNavi.",
|
||||
"app.browser_mock.mcp_client.codex.path_mismatch": "В Codex обнаружена запись GoNavi MCP, но она не совпадает с текущим путем установки GoNavi. Рекомендуется обновить.",
|
||||
"app.browser_mock.provider.test_failed_detail": "Проверка подключения не удалась: {{detail}}",
|
||||
"app.browser_mock.provider.test_success": "Проверка подключения к конечной точке выполнена успешно",
|
||||
"app.update.action.hide_to_background": "Скрыть в фон",
|
||||
"app.update.action.install_update": "Установить обновление",
|
||||
"app.update.action.open_install_directory": "Открыть каталог установки",
|
||||
@@ -596,7 +641,66 @@
|
||||
"query.new": "Новый запрос",
|
||||
"query.run": "Выполнить",
|
||||
"query.save": "Сохранить запрос",
|
||||
"saved_query.default_name": "Запрос {{index}}",
|
||||
"query.stop": "Остановить",
|
||||
"message_publish_modal.title": "Тестовая отправка сообщения",
|
||||
"message_publish_modal.title_with_connection": "Тестовая отправка сообщения · {{connectionName}}",
|
||||
"message_publish_modal.action.send": "Отправить",
|
||||
"message_publish_modal.error.build_command_failed": "Не удалось создать команду отправки",
|
||||
"message_publish_modal.error.send_failed_detail": "Отправка не удалась: {{detail}}",
|
||||
"message_publish_modal.error.unknown_error": "Неизвестная ошибка",
|
||||
"message_publish_modal.field.exchange.label": "Exchange (необязательно)",
|
||||
"message_publish_modal.field.exchange.extra": "Оставьте пустым, чтобы использовать exchange по умолчанию. Если указан пользовательский exchange, убедитесь, что для целевой Queue создан binding.",
|
||||
"message_publish_modal.field.exchange.placeholder": "Пример: events.topic",
|
||||
"message_publish_modal.field.routing_key.label": "Routing Key (необязательно)",
|
||||
"message_publish_modal.field.routing_key.extra": "Оставьте пустым, чтобы по умолчанию использовать имя текущей Queue.",
|
||||
"message_publish_modal.field.routing_key.placeholder": "Пример: orders.queue",
|
||||
"message_publish_modal.field.qos.extra": "0 означает at most once, 1 означает at least once, 2 означает exactly once.",
|
||||
"message_publish_modal.field.retain.label": "Retain-сообщение",
|
||||
"message_publish_modal.field.tag.label": "Tag (необязательно)",
|
||||
"message_publish_modal.field.tag.extra": "Оставьте пустым, чтобы не фильтровать и не записывать Tag.",
|
||||
"message_publish_modal.field.delay_level.label": "Delay Level (необязательно)",
|
||||
"message_publish_modal.field.delay_level.extra": "RocketMQ использует фиксированные уровни задержки. 0 означает немедленную отправку.",
|
||||
"message_publish_modal.field.body_mode.label": "Тип тела сообщения",
|
||||
"message_publish_modal.field.body.label": "Тело сообщения",
|
||||
"message_publish_modal.field.body.required": "Введите тело сообщения",
|
||||
"message_publish_modal.field.body.extra": "В режиме JSON требуется корректный JSON. В текстовом режиме содержимое отправляется как есть.",
|
||||
"message_publish_modal.field.body.placeholder": "Введите тело сообщения",
|
||||
"message_publish_modal.field.headers.label": "Headers (необязательно)",
|
||||
"message_publish_modal.field.headers.extra": "Должно быть JSON-объектом, например {{example}}.",
|
||||
"message_publish_modal.field.properties.label": "Properties (необязательно)",
|
||||
"message_publish_modal.field.properties.extra": "Должно быть JSON-объектом, например {{example}}.",
|
||||
"message_publish_modal.option.no_delay": "Без задержки",
|
||||
"message_publish_modal.option.text": "Текст",
|
||||
"message_publish_modal.footer.success_prefix": "При успешной отправке возвращается",
|
||||
"message_publish_modal.footer.success_suffix": ", чтобы подтвердить, было ли отправлено это тестовое сообщение.",
|
||||
"message_publish.field.body": "Тело сообщения",
|
||||
"message_publish.field.message_key": "Ключ сообщения",
|
||||
"message_publish.error.destination_required": "Введите целевой Topic / Queue",
|
||||
"message_publish.error.required_field": "Введите {{field}}",
|
||||
"message_publish.error.invalid_json_detail": "{{field}} не является корректным JSON: {{detail}}",
|
||||
"message_publish.error.json_object_required": "{{field}} должен быть JSON-объектом",
|
||||
"message_publish.error.mqtt_wildcard_topic": "Topic для отправки MQTT не может содержать подстановочные символы + или #",
|
||||
"message_publish.error.unsupported_type": "Текущий источник данных не поддерживает тестовую отправку сообщений: {{type}}",
|
||||
"message_publish.presentation.rabbitmq.destination_placeholder": "Пример: orders.queue",
|
||||
"message_publish.presentation.rabbitmq.destination_required": "Введите Queue",
|
||||
"message_publish.presentation.rabbitmq.alert": "Эта форма автоматически собирает RabbitMQ publish JSON-команду и отправляет тестовое сообщение через Management API.",
|
||||
"message_publish.presentation.rabbitmq.success_hint": "Если Exchange пустой, используется exchange по умолчанию, а имя Queue применяется как routing key.",
|
||||
"message_publish.presentation.rocketmq.destination_placeholder": "Пример: orders.events",
|
||||
"message_publish.presentation.topic_required": "Введите Topic",
|
||||
"message_publish.presentation.rocketmq.alert": "Эта форма автоматически собирает RocketMQ publish JSON-команду и отправляет тестовое сообщение через NameServer/Broker.",
|
||||
"message_publish.presentation.rocketmq.success_hint": "Tag, Keys, Delay Level и Properties записываются в атрибуты сообщения RocketMQ.",
|
||||
"message_publish.presentation.keys_label": "Ключи сообщения Keys (необязательно)",
|
||||
"message_publish.presentation.rocketmq.key_placeholder": "Можно ввести несколько значений Key через запятую",
|
||||
"message_publish.presentation.rocketmq.tag_placeholder": "Пример: TagA",
|
||||
"message_publish.presentation.mqtt.destination_placeholder": "Пример: devices/device-001/telemetry",
|
||||
"message_publish.presentation.mqtt.alert": "Эта форма автоматически собирает MQTT publish JSON-команду и отправляет тестовое сообщение напрямую через broker.",
|
||||
"message_publish.presentation.mqtt.success_hint": "QoS и retain можно задать отдельно. Пустые поля используют значения по умолчанию из текущего подключения.",
|
||||
"message_publish.presentation.kafka.destination_placeholder": "Пример: orders.events",
|
||||
"message_publish.presentation.kafka.alert": "Эта форма автоматически собирает Kafka publish JSON-команду и вызывает backend для тестовой отправки.",
|
||||
"message_publish.presentation.kafka.success_hint": "Headers отправляются как Kafka Record Headers.",
|
||||
"message_publish.presentation.key_label": "Ключ сообщения Key (необязательно)",
|
||||
"message_publish.presentation.kafka.key_placeholder": "Необязательно. В режиме JSON введите одну корректную строку JSON.",
|
||||
"connection_modal.action.browse": "Выбрать...",
|
||||
"connection_modal.action.disable": "Отключить",
|
||||
"connection_modal.action.discover_members": "Обнаружить участников",
|
||||
@@ -644,6 +748,7 @@
|
||||
"connection_modal.field.tunnel_password_optional": "Пароль HTTP Tunnel (необязательно)",
|
||||
"connection_modal.field.tunnel_username_optional": "Имя пользователя HTTP Tunnel (необязательно)",
|
||||
"connection_modal.field.username": "Имя пользователя",
|
||||
"connection_modal.field.username.optional_placeholder": "Оставьте пустым, если аутентификация отключена",
|
||||
"connection_modal.help.additional_hosts": "Необязательные участники MongoDB, разделенные запятой, точкой с запятой или пробелом.",
|
||||
"connection_modal.help.additional_srv_hosts": "Необязательные дополнительные SRV-хосты для обнаружения MongoDB.",
|
||||
"connection_modal.help.connection_timeout": "Применяется к тестам подключения и загрузке метаданных. Диапазон: 1-300 секунд.",
|
||||
@@ -707,6 +812,66 @@
|
||||
"connection_modal.jvm.read_only_first": "Предпочитать операции только для чтения",
|
||||
"connection_modal.jvm.security_policy": "Политика безопасности",
|
||||
"connection_modal.message.srv_with_ssh_dns_warning": "SRV вместе с SSH Tunnel может зависеть от локального DNS. Если разрешение не удается, используйте стандартные хосты.",
|
||||
"connection_modal.messageQueue.kafka.defaultTopic.label": "Topic по умолчанию (необязательно)",
|
||||
"connection_modal.messageQueue.kafka.defaultTopic.help": "Если поле пустое, Topic нужно явно указать в SQL. После заполнения SHOW, CONSUME или SELECT могут сразу выполнять предварительный просмотр.",
|
||||
"connection_modal.messageQueue.kafka.defaultTopic.placeholder": "Например: orders.events",
|
||||
"connection_modal.messageQueue.rocketmq.defaultTopic.label": "Topic по умолчанию (необязательно)",
|
||||
"connection_modal.messageQueue.rocketmq.defaultTopic.help": "Если поле пустое, Topic нужно явно указать в SQL. В параметрах подключения можно дополнительно задать groupId, namespace, tag, pullBatchSize и startOffset.",
|
||||
"connection_modal.messageQueue.rocketmq.defaultTopic.placeholder": "Например: orders.events",
|
||||
"connection_modal.messageQueue.mqtt.defaultTopicFilter.label": "Topic / Filter по умолчанию (необязательно)",
|
||||
"connection_modal.messageQueue.mqtt.defaultTopicFilter.help": "Если поле пустое, Topic нужно явно указать в SQL. После заполнения SHOW, CONSUME или SELECT могут сразу выполнять предварительный просмотр. Поддерживаются /, + и #.",
|
||||
"connection_modal.messageQueue.mqtt.defaultTopicFilter.placeholder": "Например: devices/+/telemetry",
|
||||
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.label": "Virtual Host по умолчанию (необязательно)",
|
||||
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.help": "Если поле пустое, по умолчанию используется /. После заполнения редактор запросов использует текущий vhost как контекст просмотра Queue и тестовой отправки.",
|
||||
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.placeholder": "Например: / или orders-vhost",
|
||||
"connection_modal.messageQueue.topology.cluster.label": "Режим кластера",
|
||||
"connection_modal.messageQueue.kafka.topology.single.label": "Один Broker",
|
||||
"connection_modal.messageQueue.kafka.topology.single.description": "Настраивает один bootstrap broker для локальной или простой среды.",
|
||||
"connection_modal.messageQueue.kafka.topology.cluster.description": "Настраивает несколько bootstrap broker, чтобы повысить успешность обнаружения и failover.",
|
||||
"connection_modal.messageQueue.rocketmq.topology.single.label": "Один NameServer",
|
||||
"connection_modal.messageQueue.rocketmq.topology.single.description": "Настраивает один NameServer для локальной или простой среды.",
|
||||
"connection_modal.messageQueue.rocketmq.topology.cluster.description": "Настраивает несколько NameServer, чтобы повысить успешность обнаружения маршрутов и failover.",
|
||||
"connection_modal.messageQueue.mqtt.topology.single.label": "Один Broker",
|
||||
"connection_modal.messageQueue.mqtt.topology.single.description": "Настраивает один broker для локальной или простой среды.",
|
||||
"connection_modal.messageQueue.mqtt.topology.cluster.description": "Настраивает несколько broker, чтобы повысить успешность обнаружения подключения и failover.",
|
||||
"connection_modal.messageQueue.kafka.extraBrokers.label": "Дополнительные адреса Broker",
|
||||
"connection_modal.messageQueue.kafka.extraBrokers.help": "Введите несколько адресов broker в формате host:port и нажмите Enter для подтверждения.",
|
||||
"connection_modal.messageQueue.kafka.extraBrokers.placeholder": "Например: 10.10.0.12:9092, 10.10.0.13:9092",
|
||||
"connection_modal.messageQueue.rocketmq.extraNameServers.label": "Дополнительные адреса NameServer",
|
||||
"connection_modal.messageQueue.rocketmq.extraNameServers.help": "Введите несколько адресов NameServer в формате host:port и нажмите Enter для подтверждения.",
|
||||
"connection_modal.messageQueue.rocketmq.extraNameServers.placeholder": "Например: 10.10.0.12:9876, 10.10.0.13:9876",
|
||||
"connection_modal.messageQueue.mqtt.extraBrokers.label": "Дополнительные адреса Broker",
|
||||
"connection_modal.messageQueue.mqtt.extraBrokers.help": "Введите несколько адресов broker в формате host:port и нажмите Enter для подтверждения.",
|
||||
"connection_modal.messageQueue.mqtt.extraBrokers.placeholder": "Например: 10.10.0.12:1883, 10.10.0.13:1883",
|
||||
"connection_modal.redis.topology.single.label": "Одиночный режим",
|
||||
"connection_modal.redis.topology.single.description": "Подключение к одному узлу Redis.",
|
||||
"connection_modal.redis.topology.cluster.label": "Режим кластера",
|
||||
"connection_modal.redis.topology.cluster.description": "Redis Cluster с несколькими seed-узлами.",
|
||||
"connection_modal.redis.topology.sentinel.label": "Режим Sentinel",
|
||||
"connection_modal.redis.topology.sentinel.description": "Обнаруживает primary-узел через Sentinel для высокой доступности primary-replica.",
|
||||
"connection_modal.redis.hosts.sentinel.label": "Дополнительные адреса узлов Sentinel",
|
||||
"connection_modal.redis.hosts.sentinel.help": "Указанный выше host используется как первый Sentinel. Введите здесь другие узлы Sentinel в формате host:port.",
|
||||
"connection_modal.redis.hosts.sentinel.placeholder": "Например: 10.10.0.12:26379, 10.10.0.13:26379",
|
||||
"connection_modal.redis.hosts.cluster.label": "Дополнительные адреса узлов кластера",
|
||||
"connection_modal.redis.hosts.cluster.help": "Указанный выше host используется как primary-узел. Введите здесь другие seed-узлы в формате host:port.",
|
||||
"connection_modal.redis.hosts.cluster.placeholder": "Например: 10.10.0.12:6379, 10.10.0.13:6379",
|
||||
"connection_modal.redis.sentinel.master.label": "Имя Sentinel master",
|
||||
"connection_modal.redis.sentinel.master.help": "Введите имя monitor из конфигурации Sentinel, например mymaster.",
|
||||
"connection_modal.redis.sentinel.master.required": "Введите имя Sentinel master",
|
||||
"connection_modal.redis.sentinel.master.placeholder": "Например: mymaster",
|
||||
"connection_modal.redis.credentials.primary.label": "Пароль (необязательно)",
|
||||
"connection_modal.redis.credentials.primary.placeholder.empty": "Пароль Redis, если задан requirepass",
|
||||
"connection_modal.redis.credentials.primary.placeholder.retained": "Сохраненный пароль Redis",
|
||||
"connection_modal.redis.credentials.sentinelUser.label": "Имя пользователя Sentinel (необязательно)",
|
||||
"connection_modal.redis.credentials.sentinelUser.placeholder": "Оставьте пустым, если Sentinel не использует имя пользователя ACL",
|
||||
"connection_modal.redis.credentials.sentinelPassword.label": "Пароль Sentinel (необязательно)",
|
||||
"connection_modal.redis.credentials.sentinelPassword.placeholder.empty": "Пароль аутентификации самого Sentinel. Оставьте пустым, чтобы ничего не отправлять.",
|
||||
"connection_modal.redis.credentials.sentinelPassword.placeholder.retained": "Сохраненный пароль Sentinel",
|
||||
"connection_modal.redis.credentials.sentinelPassword.clear": "Очистить сохраненный пароль Sentinel",
|
||||
"connection_modal.redis.credentials.sentinelPassword.description": "Пароль Sentinel уже сохранен. Оставьте поле пустым, чтобы продолжить использовать его, или введите новое значение для замены.",
|
||||
"connection_modal.redis.databaseScope.label": "Показываемые базы данных (пусто значит все)",
|
||||
"connection_modal.redis.databaseScope.help": "Можно выбрать после успешной проверки подключения",
|
||||
"connection_modal.redis.databaseScope.placeholder": "Выберите базы данных для показа",
|
||||
"connection_modal.mongodb.auth.auto": "Авто",
|
||||
"connection_modal.mongodb.auth.auto_description": "Позволить драйверу выбрать механизм аутентификации.",
|
||||
"connection_modal.mongodb.auth.aws_iam_description": "Использовать аутентификацию AWS IAM. Учетные данные AWS IAM должны быть в среде выполнения.",
|
||||
@@ -715,6 +880,35 @@
|
||||
"connection_modal.mongodb.auth.scram_sha1_description": "Использовать аутентификацию SCRAM-SHA-1.",
|
||||
"connection_modal.mongodb.auth.scram_sha256_description": "Использовать аутентификацию SCRAM-SHA-256.",
|
||||
"connection_modal.mongodb.auth_mechanism": "Механизм аутентификации",
|
||||
"connection_modal.mongodb.topology.single.label": "Одиночный режим",
|
||||
"connection_modal.mongodb.topology.replica.label": "Replica Set / несколько узлов",
|
||||
"connection_modal.mongodb.discovery.standard.label": "Стандартный адрес",
|
||||
"connection_modal.mongodb.discovery.standard.description": "Подключение напрямую через host:port или список узлов Replica Set.",
|
||||
"connection_modal.mongodb.discovery.srv.label": "SRV-адрес",
|
||||
"connection_modal.mongodb.discovery.srv.description": "Использовать mongodb+srv, чтобы DNS обнаружил целевые узлы.",
|
||||
"connection_modal.mongodb.discovery.current": "Текущий",
|
||||
"connection_modal.mongodb.discovery.srv_ssh_warning": "Если SRV и SSH Tunnel включены одновременно, может потребоваться локальное DNS-разрешение.",
|
||||
"connection_modal.mongodb.replica.hosts.srv.label": "Дополнительные SRV-хосты (необязательно)",
|
||||
"connection_modal.mongodb.replica.hosts.srv.help": "Введите несколько имен кандидатов host в формате host. Если оставить пустым, используется только host выше.",
|
||||
"connection_modal.mongodb.replica.hosts.srv.placeholder": "Например: cluster-a.example.com, cluster-b.example.com",
|
||||
"connection_modal.mongodb.replica.hosts.standard.label": "Дополнительные адреса узлов",
|
||||
"connection_modal.mongodb.replica.hosts.standard.help": "Введите несколько адресов узлов в формате host:port и нажмите Enter для подтверждения.",
|
||||
"connection_modal.mongodb.replica.hosts.standard.placeholder": "Например: 10.10.0.12:27017, 10.10.0.13:27017",
|
||||
"connection_modal.mongodb.replica.set.label": "Имя Replica Set (необязательно)",
|
||||
"connection_modal.mongodb.replica.set.placeholder": "Например: rs0",
|
||||
"connection_modal.mongodb.replica.user.label": "Имя пользователя Replica Set (необязательно)",
|
||||
"connection_modal.mongodb.replica.user.placeholder": "Оставьте пустым, чтобы использовать основное имя пользователя",
|
||||
"connection_modal.mongodb.replica.password.label": "Пароль Replica Set (необязательно)",
|
||||
"connection_modal.mongodb.replica.password.placeholder.empty": "Оставьте пустым, чтобы использовать основной пароль",
|
||||
"connection_modal.mongodb.replica.password.placeholder.retained": "Сохраненный пароль Replica Set",
|
||||
"connection_modal.mongodb.replica.password.clear": "Очистить сохраненный пароль Replica Set",
|
||||
"connection_modal.mongodb.replica.password.description": "Пароль Replica Set уже сохранен. Оставьте поле пустым, чтобы продолжить использовать его, или введите новое значение для замены.",
|
||||
"connection_modal.mongodb.members.role": "Роль",
|
||||
"connection_modal.mongodb.members.health": "Состояние",
|
||||
"connection_modal.mongodb.members.health.ok": "Норма",
|
||||
"connection_modal.mongodb.members.health.error": "Ошибка",
|
||||
"connection_modal.mongodb.policy.auth_source.label": "База аутентификации (authSource)",
|
||||
"connection_modal.mongodb.policy.auth_source.placeholder": "По умолчанию используется database или admin",
|
||||
"connection_modal.mongodb.read_preference": "readPreference",
|
||||
"connection_modal.mongodb.read_preference.nearest": "Направлять чтение к ближайшему участнику.",
|
||||
"connection_modal.mongodb.read_preference.primary": "Читать только с primary.",
|
||||
@@ -878,6 +1072,9 @@
|
||||
"connection_modal.message.save_security_refresh_failed": "Операция не удалась",
|
||||
"connection_modal.message.save_failed": "Операция не удалась",
|
||||
"connection_modal.message.test_requires_new_password": "Перед проверкой введите новый пароль подключения.",
|
||||
"connection_modal.secret.blocking.redis_sentinel": "Перед проверкой введите новый пароль Sentinel или отмените очистку сохраненного пароля Sentinel",
|
||||
"connection_modal.test.redis_database_list_timeout": "Подключение успешно, но загрузка списка баз данных Redis превысила время ожидания (>{{seconds}} сек.)",
|
||||
"connection_modal.test.redis_database_list_failure": "Подключение успешно, но не удалось загрузить список баз данных Redis: {{detail}}",
|
||||
"connection_modal.message.test_requires_new_ssh_password": "Перед проверкой введите новый SSH-пароль.",
|
||||
"connection_modal.message.test_requires_new_proxy_password": "Перед проверкой введите новый пароль прокси.",
|
||||
"connection_modal.message.test_requires_new_tunnel_password": "Перед проверкой введите новый пароль HTTP Tunnel.",
|
||||
@@ -1018,20 +1215,32 @@
|
||||
"sidebar.message.export_failed": "Ошибка экспорта: {{error}}",
|
||||
"sidebar.message.backing_up_database": "Создается резервная копия базы данных {{database}}...",
|
||||
"sidebar.message.exporting_database_schema": "Экспортируется структура базы данных {{database}}...",
|
||||
"sidebar.message.exporting_database_backup": "Создается резервная копия {{database}} (структура и данные)...",
|
||||
"sidebar.message.schema_export_target_missing": "Целевая схема не найдена, экспорт невозможен.",
|
||||
"sidebar.message.exporting_schema_structure": "Экспортируется структура схемы {{schema}}...",
|
||||
"sidebar.message.exporting_schema_backup": "Создается резервная копия схемы {{schema}} (структура и данные)...",
|
||||
"sidebar.message.export_tables_same_database_required": "Выберите таблицы из одной базы данных.",
|
||||
"sidebar.message.backing_up_selected_tables": "Создается резервная копия выбранных таблиц: {{count}}...",
|
||||
"sidebar.message.exporting_selected_table_schema": "Экспортируется структура выбранных таблиц: {{count}}...",
|
||||
"sidebar.message.load_database_list_failed": "Не удалось загрузить базы данных: {{error}}",
|
||||
"sidebar.message.load_table_list_failed": "Не удалось загрузить таблицы: {{error}}",
|
||||
"sidebar.message.locate_external_sql_file_not_found": "SQL-файл не найден во внешних SQL-каталогах: {{path}}",
|
||||
"sidebar.message.locate_connection_not_found_for_object": "Подключение для текущего объекта не найдено",
|
||||
"sidebar.message.locate_connection_not_in_tree": "Текущее подключение не найдено в левом дереве",
|
||||
"sidebar.message.locate_database_loading": "Узел базы данных ещё загружается: {{database}}. Повторите попытку позже",
|
||||
"sidebar.message.locate_database_not_found": "База данных не найдена в левом дереве: {{database}}",
|
||||
"sidebar.message.locate_object_loading": "Объекты базы данных для {{object}} в {{database}} ещё загружаются. Повторите попытку позже",
|
||||
"sidebar.message.locate_object_not_found": "{{object}} не найден в левом дереве: {{name}}. Обновите узел базы данных и повторите попытку",
|
||||
"sidebar.message.select_object_required": "Выберите хотя бы один объект.",
|
||||
"sidebar.message.backing_up_selected_objects": "Создается резервная копия выбранных объектов: {{count}}...",
|
||||
"sidebar.message.exporting_selected_object_data": "Экспортируются данные выбранных объектов: {{count}}...",
|
||||
"sidebar.message.exporting_selected_object_data": "Экспортируются данные {{format}} для выбранных объектов: {{count}}...",
|
||||
"sidebar.message.exporting_selected_object_schema": "Экспортируется структура выбранных объектов: {{count}}...",
|
||||
"sidebar.message.export_success_skipped_views": "Экспорт завершен. Представления пропущены при экспорте данных: {{count}}.",
|
||||
"sidebar.modal.confirm_clear_selected_tables.title": "Подтвердите очистку выбранных таблиц",
|
||||
"sidebar.modal.confirm_clear_selected_tables.content": "Очистить данные выбранных объектов в {{connection}} / {{database}}? Это действие нельзя отменить.",
|
||||
"sidebar.action.continue": "Продолжить",
|
||||
"sidebar.action.cancel": "Отмена",
|
||||
"sidebar.action.delete": "Удалить",
|
||||
"sidebar.message.clearing_selected_tables": "Очищаются выбранные таблицы: {{count}}...",
|
||||
"sidebar.message.clear_success": "Очистка завершена.",
|
||||
"sidebar.message.clear_failed": "Ошибка очистки: {{error}}",
|
||||
@@ -1048,7 +1257,30 @@
|
||||
"sidebar.message.operation_create_failed": "Не удалось создать: {{error}}",
|
||||
"sidebar.sql_file.default_name": "SQL-файл",
|
||||
"sidebar.message.sql_file_context_incomplete": "Контекст SQL-файла неполный.",
|
||||
"sidebar.message.sql_file_path_incomplete": "Путь к SQL-файлу неполный, открыть файл невозможно.",
|
||||
"sidebar.message.select_host_before_large_sql_file": "Выберите Host перед запуском большого SQL-файла.",
|
||||
"sidebar.message.read_sql_file_failed": "Не удалось прочитать SQL-файл: {{error}}",
|
||||
"sidebar.message.external_sql_file_parent_missing": "Не найден каталог для создания SQL-файла.",
|
||||
"sidebar.message.external_sql_file_rename_target_missing": "Не найден SQL-файл для переименования.",
|
||||
"sidebar.message.external_sql_file_delete_target_missing": "SQL-файл для удаления не найден.",
|
||||
"sidebar.message.external_sql_directory_parent_missing": "Не найдено место для создания каталога.",
|
||||
"sidebar.message.external_sql_directory_rename_target_missing": "Не найден каталог для переименования.",
|
||||
"sidebar.message.external_sql_directory_delete_target_missing": "SQL-каталог для удаления не найден.",
|
||||
"sidebar.message.sql_file_name_required": "Имя SQL-файла обязательно.",
|
||||
"sidebar.message.sql_directory_name_required": "Имя каталога обязательно.",
|
||||
"sidebar.message.create_sql_file_failed": "Не удалось создать SQL-файл: {{error}}",
|
||||
"sidebar.message.sql_file_created": "SQL-файл создан.",
|
||||
"sidebar.message.rename_sql_file_failed": "Не удалось переименовать SQL-файл: {{error}}",
|
||||
"sidebar.message.sql_file_renamed": "SQL-файл переименован.",
|
||||
"sidebar.message.delete_sql_file_failed": "Не удалось удалить SQL-файл: {{error}}",
|
||||
"sidebar.message.sql_file_deleted": "SQL-файл удален.",
|
||||
"sidebar.message.create_sql_directory_failed": "Не удалось создать каталог: {{error}}",
|
||||
"sidebar.message.sql_directory_created": "Каталог создан.",
|
||||
"sidebar.message.rename_sql_directory_failed": "Не удалось переименовать каталог: {{error}}",
|
||||
"sidebar.message.external_sql_directory_rename_sync_failed": "Каталог переименован, но список внешних SQL-каталогов не удалось синхронизировать. Добавьте каталог заново.",
|
||||
"sidebar.message.sql_directory_renamed": "Каталог переименован.",
|
||||
"sidebar.message.delete_sql_directory_failed": "Не удалось удалить SQL-каталог: {{error}}",
|
||||
"sidebar.message.sql_directory_deleted": "SQL-каталог удален.",
|
||||
"sidebar.message.add_sql_directory_database_required": "Выберите базу данных перед добавлением SQL-каталога.",
|
||||
"sidebar.message.select_sql_directory_failed": "Не удалось выбрать SQL-каталог: {{error}}",
|
||||
"sidebar.message.sql_directory_path_invalid": "Путь к SQL-каталогу недействителен.",
|
||||
@@ -1062,6 +1294,10 @@
|
||||
"sidebar.message.create_failed": "Не удалось создать: {{error}}",
|
||||
"sidebar.modal.confirm_delete_database.title": "Удалить базу данных",
|
||||
"sidebar.modal.confirm_delete_database.content": "Удалить {{name}}? Это действие нельзя отменить.",
|
||||
"sidebar.modal.confirm_delete_sql_file.title": "Удалить SQL-файл",
|
||||
"sidebar.modal.confirm_delete_sql_file.content": "Удалить \"{{name}}\"? Это удалит локальный файл с диска без возможности восстановления.",
|
||||
"sidebar.modal.confirm_delete_sql_directory.title": "Удалить SQL-каталог",
|
||||
"sidebar.modal.confirm_delete_sql_directory.content": "Удалить \"{{name}}\"? Это удалит локальный каталог с диска; удалить можно только пустой каталог.",
|
||||
"sidebar.modal.confirm_delete_table.title": "Удалить таблицу",
|
||||
"sidebar.modal.confirm_delete_table.content": "Удалить {{name}}? Это действие нельзя отменить.",
|
||||
"sidebar.modal.confirm_table_data_action.title": "Подтвердите {{action}}",
|
||||
@@ -1088,8 +1324,14 @@
|
||||
"sidebar.message.delete_connection_failed": "Не удалось удалить подключение.",
|
||||
"sidebar.modal.confirm_delete_saved_query.content": "Удалить сохраненный запрос \"{{name}}\"? Это действие нельзя отменить.",
|
||||
"sidebar.search.placeholder": "Поиск...",
|
||||
"sidebar.punctuation.list_separator": ", ",
|
||||
"sidebar.command_search.label": "Искать таблицы, подключения, действия",
|
||||
"sidebar.command_search.placeholder": "Искать таблицы, подключения, действия... или спросить AI",
|
||||
"sidebar.command_search.sync_to_filter_tooltip": "Синхронизировать ввод с левым фильтром",
|
||||
"sidebar.command_search.sync_to_filter_aria": "Синхронизировать с левым фильтром",
|
||||
"sidebar.command_search.reset_filter": "Сбросить фильтр боковой панели",
|
||||
"sidebar.command_search.no_synced_filter": "Нет синхронизированного фильтра боковой панели",
|
||||
"sidebar.command_search.no_filter_content": "Нет текста фильтра",
|
||||
"sidebar.command_search.object_kind.all": "Все",
|
||||
"sidebar.command_search.object_kind.tables": "Таблицы",
|
||||
"sidebar.command_search.object_kind.views": "Представления",
|
||||
@@ -1135,6 +1377,13 @@
|
||||
"sidebar.v2_table_menu.view_in_er": "Показать в ER-диаграмме",
|
||||
"sidebar.v2_table_menu.copy_section": "Копировать",
|
||||
"sidebar.v2_table_menu.copy_table_name": "Копировать имя таблицы",
|
||||
"sidebar.copy_object_name.label.table": "Имя таблицы",
|
||||
"sidebar.copy_object_name.label.view": "Имя представления",
|
||||
"sidebar.copy_object_name.label.materialized_view": "Имя материализованного представления",
|
||||
"sidebar.copy_object_name.label.event": "Имя события",
|
||||
"sidebar.copy_object_name.empty": "{{label}} пусто, копирование невозможно",
|
||||
"sidebar.copy_object_name.copied": "{{label}} скопировано в буфер обмена",
|
||||
"sidebar.copy_object_name.failed": "Не удалось скопировать {{label}}: {{error}}",
|
||||
"sidebar.v2_table_menu.copy_table_as_insert": "Копировать всю таблицу как {{keyword}}",
|
||||
"sidebar.v2_table_menu.maintenance_section": "Обслуживание",
|
||||
"sidebar.v2_table_menu.rename_compact": "Переименовать...",
|
||||
@@ -1151,6 +1400,11 @@
|
||||
"sidebar.v2_table_group_menu.sort_frequency": "частоте использования",
|
||||
"sidebar.v2_table_group_menu.meta": "{{database}} · {{count}} таблиц · сортировка по {{sort}}",
|
||||
"sidebar.message.locate_current_table_unavailable": "В текущей вкладке нет таблицы, которую можно найти",
|
||||
"sidebar.locate.object.table": "Таблица",
|
||||
"sidebar.locate.object.view": "Представление",
|
||||
"sidebar.locate.object.materialized_view": "Материализованное представление",
|
||||
"sidebar.locate.object.routine": "Функция/процедура",
|
||||
"sidebar.locate.object.trigger": "Триггер",
|
||||
"sidebar.active_connection.current_host_database": "Текущий Host и база данных",
|
||||
"sidebar.active_connection.no_database_selected": "База данных не выбрана",
|
||||
"sidebar.active_connection.no_host_selected": "Host не выбран",
|
||||
@@ -1251,6 +1505,11 @@
|
||||
"sidebar.search.scope.host": "Хост",
|
||||
"sidebar.search.scope.tag": "Тег",
|
||||
"sidebar.tree.saved_queries": "Сохраненные запросы",
|
||||
"sidebar.tree.untitled_query": "Запрос без имени",
|
||||
"sidebar.tree.default_database": "База данных по умолчанию",
|
||||
"sidebar.tree.unknown_connection": "Неизвестное подключение",
|
||||
"sidebar.tree.unmatched_saved_queries": "Несопоставленные",
|
||||
"sidebar.tree.all_saved_queries": "Все сохраненные запросы",
|
||||
"sidebar.tree.default_schema": "Схема по умолчанию",
|
||||
"sidebar.object_group.tables": "Таблицы",
|
||||
"sidebar.object_group.views": "Представления",
|
||||
@@ -1274,6 +1533,8 @@
|
||||
"sidebar.tab.new_table": "Новая таблица - {{database}}",
|
||||
"sidebar.tab.table_overview": "Обзор таблицы - {{database}}{{schema}}",
|
||||
"sidebar.tab.trigger": "Триггер: {{name}}",
|
||||
"sidebar.tab.event": "Событие: {{name}}",
|
||||
"sidebar.tab.edit_event": "Изменить событие: {{name}}",
|
||||
"sidebar.tab.materialized_view_definition": "Материализованное представление: {{name}}",
|
||||
"sidebar.tab.view_definition": "Представление: {{name}}",
|
||||
"sidebar.tab.edit_view": "Изменить представление: {{name}}",
|
||||
@@ -1343,9 +1604,13 @@
|
||||
"tab_manager.hover.label.object": "Объект",
|
||||
"tab_manager.hover.label.type": "Тип",
|
||||
"sidebar.message.no_visible_databases": "Видимые базы данных или схемы не возвращены. Проверьте права учетной записи или обновите через контекстное меню.",
|
||||
"sidebar.message.visual_new_table_unsupported": "Этот источник данных пока не поддерживает визуальное создание таблиц.",
|
||||
"sidebar.message.jvm_resources_backend_unavailable": "Просмотр ресурсов JVM недоступен в этой сборке.",
|
||||
"sidebar.message.external_sql_directory_read_failed": "Не удалось прочитать SQL-каталог {{name}}: {{error}}",
|
||||
"sidebar.message.sphinx_unsupported_objects": "Этот экземпляр Sphinx не предоставляет следующие возможности объектов: {{objects}}. Применен режим совместимости.",
|
||||
"sidebar.message.sidebar_filter_sync_enabled": "Синхронизация левого фильтра включена.",
|
||||
"sidebar.message.sidebar_filter_sync_disabled": "Синхронизация левого фильтра отключена.",
|
||||
"sidebar.message.sidebar_filter_reset": "Фильтр боковой панели сброшен.",
|
||||
"sidebar.message.database_name_required": "Введите имя базы данных.",
|
||||
"sidebar.message.database_name_unchanged": "Имя базы данных не изменилось.",
|
||||
"sidebar.message.database_renamed": "База данных переименована.",
|
||||
@@ -1394,6 +1659,9 @@
|
||||
"sidebar.menu.close_database": "Закрыть базу данных",
|
||||
"sidebar.menu.browse_view_data": "Просмотреть данные представления",
|
||||
"sidebar.menu.view_definition": "Определение представления",
|
||||
"sidebar.menu.browse_materialized_view_data": "Просмотреть данные материализованного представления",
|
||||
"sidebar.menu.materialized_view_definition": "Определение материализованного представления",
|
||||
"sidebar.menu.view_object_definition": "Показать определение",
|
||||
"sidebar.menu.edit_view": "Редактировать представление",
|
||||
"sidebar.menu.rename_view": "Переименовать представление",
|
||||
"sidebar.menu.delete_view": "Удалить представление",
|
||||
@@ -1420,6 +1688,15 @@
|
||||
"sidebar.menu.refresh_directory": "Обновить каталог",
|
||||
"sidebar.menu.remove_directory": "Удалить каталог",
|
||||
"sidebar.menu.open_sql_file": "Открыть SQL-файл",
|
||||
"sidebar.menu.new_sql_file": "Создать SQL-файл",
|
||||
"sidebar.menu.new_sql_directory": "Создать каталог",
|
||||
"sidebar.menu.rename_sql_directory": "Переименовать каталог",
|
||||
"sidebar.menu.delete_local_directory": "Удалить локальный каталог",
|
||||
"sidebar.menu.delete_sql_directory": "Удалить каталог",
|
||||
"sidebar.menu.rename_sql_file": "Переименовать SQL-файл",
|
||||
"sidebar.menu.new_sql_file_in_directory": "Создать SQL-файл в этом каталоге",
|
||||
"sidebar.menu.new_sql_directory_in_directory": "Создать каталог в этом каталоге",
|
||||
"sidebar.menu.delete_sql_file": "Удалить SQL-файл",
|
||||
"sidebar.batch.group.tables": "Таблицы",
|
||||
"sidebar.batch.group.views": "Представления",
|
||||
"sidebar.batch.no_matching_objects": "Нет подходящих объектов",
|
||||
@@ -1433,6 +1710,22 @@
|
||||
"connection_modal.network.ssl_mode.skip_verify": "Без проверки",
|
||||
"sidebar.external_sql.root": "Внешние SQL-файлы",
|
||||
"sidebar.external_sql.directory_fallback": "SQL-каталог",
|
||||
"sidebar.external_sql_modal.title.create_file": "Создать SQL-файл",
|
||||
"sidebar.external_sql_modal.title.rename_file": "Переименовать SQL-файл",
|
||||
"sidebar.external_sql_modal.title.create_directory": "Создать каталог",
|
||||
"sidebar.external_sql_modal.title.rename_directory": "Переименовать каталог",
|
||||
"sidebar.external_sql_modal.action.create": "Создать",
|
||||
"sidebar.external_sql_modal.action.rename": "Переименовать",
|
||||
"sidebar.external_sql_modal.field.directory_name": "Имя каталога",
|
||||
"sidebar.external_sql_modal.field.sql_file_name": "Имя SQL-файла",
|
||||
"sidebar.external_sql_modal.validation.directory_name_required": "Введите имя каталога",
|
||||
"sidebar.external_sql_modal.validation.sql_file_name_required": "Введите имя SQL-файла",
|
||||
"sidebar.external_sql_modal.validation.directory_name_no_separator": "Имя каталога не должно содержать разделители пути",
|
||||
"sidebar.external_sql_modal.validation.sql_file_name_no_separator": "Имя файла не должно содержать разделители пути",
|
||||
"sidebar.external_sql_modal.help.directory": "Каталог отображается только в дереве внешних SQL-каталогов; файлы не SQL по-прежнему скрыты",
|
||||
"sidebar.external_sql_modal.help.sql_file": "Если суффикс .sql не указан, он будет добавлен автоматически",
|
||||
"sidebar.external_sql_modal.placeholder.directory_name": "Например: reports",
|
||||
"sidebar.external_sql_modal.placeholder.sql_file_name": "Например: report.sql",
|
||||
"sidebar.jvm.action.monitoring": "Непрерывный мониторинг",
|
||||
"sidebar.jvm.action.diagnostic": "Расширенная диагностика",
|
||||
"sidebar.jvm.tab.overview": "Обзор JVM",
|
||||
@@ -1871,14 +2164,34 @@
|
||||
"query_editor.action.ai_explain_sql_menu": "Объяснить SQL",
|
||||
"query_editor.action.ai_optimize_sql_menu": "Оптимизировать SQL",
|
||||
"query_editor.action.ai_schema_analysis": "Анализ схемы",
|
||||
"query_editor.action.show_results_panel": "Показать область результатов",
|
||||
"query_editor.action.hide_results_panel": "Скрыть область результатов",
|
||||
"query_editor.action.show_results_panel_with_shortcut": "Показать область результатов ({{shortcut}})",
|
||||
"query_editor.action.hide_results_panel_with_shortcut": "Скрыть область результатов ({{shortcut}})",
|
||||
"query_editor.action.results": "Результаты",
|
||||
"query_editor.transaction.delay.immediate": "Сразу",
|
||||
"query_editor.transaction.mode.tooltip": "Как в DBeaver: когда SQL-редактор выполняет DML, например INSERT/UPDATE/DELETE/MERGE/REPLACE, GoNavi сначала открывает управляемую транзакцию. В ручном режиме нужно выполнить commit/rollback; в автоматическом режиме после успешного выполнения автоматически запускается COMMIT.",
|
||||
"query_editor.transaction.mode.manual": "Вручную",
|
||||
"query_editor.transaction.mode.auto": "Авто",
|
||||
"query_editor.transaction.status.auto_commit_countdown": "Автоматический commit через {{seconds}}s",
|
||||
"query_editor.transaction.status.auto_committing": "Выполняется автоматический commit",
|
||||
"query_editor.transaction.action.commit": "Commit",
|
||||
"query_editor.transaction.action.commit_with_count": "Commit ({{count}})",
|
||||
"query_editor.transaction.action.rollback": "Rollback",
|
||||
"query_editor.transaction.message.pending_managed_transaction": "В SQL-редакторе уже есть незавершённая транзакция. Перед выполнением нового DML-оператора выполните commit или rollback.",
|
||||
"query_editor.action.show_object_info": "Показать сведения об объекте",
|
||||
"query_editor.action.rename_query": "Переименовать запрос",
|
||||
"query_editor.action.export_sql_file": "Экспортировать SQL-файл",
|
||||
"query_editor.format.keyword_upper": "Ключевые слова в верхнем регистре",
|
||||
"query_editor.format.keyword_lower": "Ключевые слова в нижнем регистре",
|
||||
"query_editor.format.restore_last_format": "Вернуть состояние до последнего форматирования",
|
||||
"query_editor.format.snippet_settings": "Настройки сниппетов...",
|
||||
"query_editor.format.shortcut_settings": "Настройки сочетаний клавиш...",
|
||||
"query_editor.message.format_failed": "Ошибка форматирования: возможно, синтаксис SQL неверен.",
|
||||
"query_editor.message.no_format_restore_snapshot": "Нет сохранённого состояния SQL до форматирования для восстановления.",
|
||||
"query_editor.message.format_restore_success": "Восстановлено состояние SQL до форматирования.",
|
||||
"query_editor.message.page_query_failed": "Ошибка запроса страницы: {{error}}",
|
||||
"query_editor.message.page_query_empty": "Запрос страницы не вернул набор результатов.",
|
||||
"query_editor.message.refresh_failed": "Не удалось обновить: {{error}}",
|
||||
"query_editor.message.select_database_first": "Сначала выберите базу данных.",
|
||||
"query_editor.message.connection_not_found": "Подключение не найдено.",
|
||||
@@ -1896,6 +2209,7 @@
|
||||
"query_editor.message.read_only_no_safe_locator": "Первичный ключ или подходящий уникальный индекс не обнаружен, поэтому изменения нельзя безопасно зафиксировать.",
|
||||
"query_editor.message.read_only_index_metadata_unavailable": "Не удалось загрузить метаданные уникального индекса, поэтому изменения нельзя безопасно зафиксировать.",
|
||||
"query_editor.message.read_only_table_locator_metadata_unavailable": "Не удалось загрузить метаданные первичного ключа/уникального индекса для {{table}}, поэтому изменения нельзя безопасно зафиксировать.",
|
||||
"query_editor.message.read_only_system_metadata": "Результаты запросов к системным метаданным остаются доступными только для чтения.",
|
||||
"query_editor.message.read_only_oracle_rowid_injection_unavailable": "В Oracle-запросе используется *, поэтому столбец-локатор ROWID не удалось автоматически внедрить. Результат остается только для чтения.",
|
||||
"query_editor.message.read_only_warning_with_detail": "Результаты запроса остаются доступными только для чтения: {{detail}}",
|
||||
"query_editor.message.object_info_target_not_found": "Текущий курсор не указывает на распознанную таблицу или колонку.",
|
||||
@@ -1904,6 +2218,7 @@
|
||||
"query_editor.message.saved": "Запрос сохранен.",
|
||||
"query_editor.message.sql_file_saved": "SQL-файл сохранен.",
|
||||
"query_editor.message.save_sql_file_failed": "Не удалось сохранить SQL-файл: {{error}}",
|
||||
"query_editor.message.save_query_failed": "Не удалось сохранить запрос: {{error}}",
|
||||
"query_editor.message.export_sql_file_success": "Файл SQL экспортирован.",
|
||||
"query_editor.message.export_sql_file_failed": "Не удалось экспортировать файл SQL: {{error}}",
|
||||
"query_editor.message.save_first_before_rename": "Сначала сохраните запрос, а затем переименуйте его.",
|
||||
@@ -1917,6 +2232,18 @@
|
||||
"query_editor.result.affected_rows": "Затронуто строк: {{count}}",
|
||||
"query_editor.result.execution_failed": "Ошибка выполнения",
|
||||
"query_editor.result.ai_diagnose": "AI-диагностика",
|
||||
"query_editor.results_panel.tooltip.hide": "Скрыть область результатов",
|
||||
"query_editor.results_panel.tooltip.hide_with_shortcut": "Скрыть область результатов ({{shortcut}})",
|
||||
"query_editor.results_panel.menu.close_other": "Закрыть другие вкладки",
|
||||
"query_editor.results_panel.menu.close_left": "Закрыть вкладки слева",
|
||||
"query_editor.results_panel.menu.close_right": "Закрыть вкладки справа",
|
||||
"query_editor.results_panel.menu.close_all": "Закрыть все вкладки",
|
||||
"query_editor.results_panel.action.hide": "Скрыть",
|
||||
"query_editor.results_panel.aria.hide": "Скрыть область результатов",
|
||||
"query_editor.results_panel.tab.message": "Сообщение {{index}}",
|
||||
"query_editor.results_panel.tab.result": "Результат {{index}}",
|
||||
"query_editor.results_panel.message.title": "Сообщения выполнения",
|
||||
"query_editor.results_panel.panel.title": "Область результатов",
|
||||
"query_editor.save_modal.title": "Сохранить запрос",
|
||||
"query_editor.save_modal.rename_title": "Переименовать запрос",
|
||||
"query_editor.save_modal.rename_ok": "Переименовать",
|
||||
@@ -2165,6 +2492,7 @@
|
||||
"data_grid.context_menu.edit_section": "Редактировать",
|
||||
"data_grid.context_menu.edit_row": "Редактировать эту строку",
|
||||
"data_grid.context_menu.copy_row_as_new": "Копировать эту строку как новую",
|
||||
"data_grid.context_menu.undo_cell_change": "Отменить изменение этой ячейки",
|
||||
"data_grid.context_menu.export_as_csv": "Экспортировать как CSV",
|
||||
"data_grid.context_menu.export_as_excel": "Экспортировать как Excel",
|
||||
"data_grid.context_menu.export_as_html": "Экспортировать как HTML",
|
||||
@@ -2200,6 +2528,7 @@
|
||||
"data_grid.error_boundary.title": "Ошибка отображения",
|
||||
"data_grid.export.all_data": "Экспортировать все данные",
|
||||
"data_grid.export.all_rows": "Экспорт всех строк ({{count}})",
|
||||
"data_grid.export.all_rows_requery": "Экспортировать всё (повторный запрос)",
|
||||
"data_grid.export.current_page": "Экспортировать текущую страницу ({{count}} строк)",
|
||||
"data_grid.export.current_page_rows": "Экспорт текущей страницы ({{count}} строк)",
|
||||
"data_grid.export.group_filtered_results": "Отфильтрованные результаты",
|
||||
@@ -2274,7 +2603,12 @@
|
||||
"data_grid.message.column_quick_find_not_found": "Столбец поля не найден: {{query}}",
|
||||
"data_grid.message.column_quick_find_not_rendered": "Столбец поля \"{{column}}\" сейчас не отрисован, поэтому его нельзя найти.",
|
||||
"data_grid.message.column_visibility_reset": "Все столбцы восстановлены",
|
||||
"data_grid.message.auto_commit_failed": "Автофиксация не удалась: {{detail}}",
|
||||
"data_grid.message.auto_commit_success": "Автофиксация выполнена",
|
||||
"data_grid.message.commit_failed": "Не удалось зафиксировать изменения: {{detail}}",
|
||||
"data_grid.message.undo_added_row_hint": "Для новых строк используйте удаление выбранных строк или откат всей таблицы.",
|
||||
"data_grid.message.undo_cell_original_missing": "Исходные данные этой ячейки не найдены, поэтому отменить изменение нельзя.",
|
||||
"data_grid.message.undo_cell_success": "Изменение ячейки отменено",
|
||||
"data_grid.message.copied_columns": "Скопировано столбцов: {{count}}. Их можно вставить в целевые строки.",
|
||||
"data_grid.message.copied_rows": "Скопировано строк: {{count}}. Их можно вставить как новые строки.",
|
||||
"data_grid.message.copied_to_clipboard": "Скопировано в буфер обмена",
|
||||
@@ -2463,6 +2797,8 @@
|
||||
"data_grid.secondary.er_diagram": "ER-диаграмма",
|
||||
"data_grid.secondary.jump_column": "Перейти к столбцу",
|
||||
"data_grid.secondary.live": "активно",
|
||||
"data_grid.secondary.object_design": "Дизайн объекта",
|
||||
"data_grid.embedded_designer.title": "Проектирование таблицы ({{tableName}})",
|
||||
"data_grid.secondary.pending_changes": "Не отправлено {{count}}",
|
||||
"data_grid.secondary.row_count": "{{count}} строк",
|
||||
"data_grid.secondary.view_ddl": "Показать DDL",
|
||||
@@ -2478,6 +2814,11 @@
|
||||
"data_grid.toolbar.cell_editor": "Редактор ячеек",
|
||||
"data_grid.toolbar.commit": "Зафиксировать транзакцию ({{count}})",
|
||||
"data_grid.toolbar.commit_label": "Зафиксировать транзакцию",
|
||||
"data_grid.toolbar.commit_delay.seconds": "{{seconds}} с",
|
||||
"data_grid.toolbar.commit_mode.auto": "Автофиксация",
|
||||
"data_grid.toolbar.commit_mode.auto_countdown": "Фиксация через {{seconds}}s",
|
||||
"data_grid.toolbar.commit_mode.manual": "Ручная фиксация",
|
||||
"data_grid.toolbar.commit_mode.tooltip": "Управляет фиксацией изменений данных таблицы. Ручная фиксация безопаснее; автофиксация выполняется через выбранную задержку после последнего изменения.",
|
||||
"data_grid.toolbar.copied_columns_count": "Скопировано столбцов: {{count}}",
|
||||
"data_grid.toolbar.copy": "Копировать",
|
||||
"data_grid.toolbar.copy_row": "Копировать строку",
|
||||
@@ -2794,6 +3135,7 @@
|
||||
"redis_viewer.hint.switch_auto_to_edit": "Переключитесь в режим Auto для редактирования",
|
||||
"redis_viewer.label.encoding": "Кодировка: {{encoding}}",
|
||||
"redis_viewer.label.keys_count": "Keys: {{count}}",
|
||||
"redis_viewer.label.node_count": "Узлов: {{count}}",
|
||||
"redis_viewer.label.length": "Длина: {{count}}",
|
||||
"redis_viewer.label.original_key": "Исходный Key: {{key}}",
|
||||
"redis_viewer.message.add_failed": "Не удалось добавить: {{detail}}",
|
||||
@@ -2850,6 +3192,9 @@
|
||||
"redis_viewer.placeholder.value": "Значение",
|
||||
"redis_viewer.search.exact": "Точно",
|
||||
"redis_viewer.search.fuzzy": "Нечетко",
|
||||
"redis_viewer.topology.cluster": "Cluster",
|
||||
"redis_viewer.topology.sentinel": "Sentinel",
|
||||
"redis_viewer.topology.single": "Одиночный",
|
||||
"redis_viewer.state.connection_not_found": "Подключение не найдено",
|
||||
"redis_viewer.state.empty_selection": "Выберите Key, чтобы просмотреть детали",
|
||||
"redis_viewer.table.action": "Действия",
|
||||
@@ -2988,6 +3333,7 @@
|
||||
"ai_chat.input.slash.sql.prompt": "Создайте SQL по следующим требованиям:",
|
||||
"ai_chat.input.tooltip.attach_table_context": "Добавить контекст таблиц базы данных",
|
||||
"ai_chat.input.tooltip.upload_image": "Загрузить изображение или скриншот",
|
||||
"ai_chat.tools.mcp_fallback_description": "MCP-инструмент {{toolName}} от {{serverName}}",
|
||||
"ai_chat.composer_notice.missing_model.description": "Откройте список моделей ниже и выберите модель. Если список пуст, проверьте конечную точку поставщика и API Key.",
|
||||
"ai_chat.composer_notice.missing_model.title": "Сначала выберите модель",
|
||||
"ai_chat.composer_notice.missing_provider.description": "Сначала добавьте и включите поставщика моделей в настройках AI.",
|
||||
@@ -3234,9 +3580,47 @@
|
||||
"ai_settings.context.with_results.label": "С результатами запросов",
|
||||
"ai_settings.context.with_results.desc": "Передает последние результаты запросов как контекст",
|
||||
"ai_settings.prompts.description": "Ниже показаны системные AI-промпты, встроенные в текущую версию GoNavi. Они доступны только для чтения и динамически добавляются в контекст запроса для соответствующих сценариев.",
|
||||
"ai_settings.prompts.message.saved": "Пользовательские промпты сохранены",
|
||||
"ai_settings.prompts.message.save_failed": "Не удалось сохранить пользовательские промпты",
|
||||
"ai_settings.mcp_server.message.saved": "Служба MCP сохранена",
|
||||
"ai_settings.mcp_server.message.save_failed": "Не удалось сохранить службу MCP",
|
||||
"ai_settings.mcp_server.message.deleted": "Служба MCP удалена",
|
||||
"ai_settings.mcp_server.message.delete_failed": "Не удалось удалить службу MCP",
|
||||
"ai_settings.mcp_server.message.test_success": "Подключение к службе MCP успешно",
|
||||
"ai_settings.mcp_server.message.test_failed": "Проверка службы MCP не удалась",
|
||||
"ai_settings.mcp_server.message.test_request_failed": "Не удалось выполнить проверку службы MCP",
|
||||
"ai_settings.clipboard.error.unsupported": "Копирование в буфер обмена не поддерживается в текущей среде",
|
||||
"ai_settings.mcp_http.error.control_unsupported_runtime": "Текущая среда выполнения не поддерживает управление службой MCP HTTP",
|
||||
"ai_settings.mcp_http.error.start_unsupported_version": "Эта версия не поддерживает запуск службы MCP HTTP",
|
||||
"ai_settings.mcp_http.error.stop_unsupported_version": "Эта версия не поддерживает остановку службы MCP HTTP",
|
||||
"ai_settings.mcp_http.message.started": "Служба GoNavi MCP HTTP запущена",
|
||||
"ai_settings.mcp_http.message.stopped": "Служба GoNavi MCP HTTP остановлена",
|
||||
"ai_settings.mcp_http.message.toggle_failed": "Не удалось переключить службу GoNavi MCP HTTP",
|
||||
"ai_settings.mcp_http.message.url_unavailable": "Нет MCP HTTP URL для копирования",
|
||||
"ai_settings.mcp_http.message.url_copied": "MCP HTTP URL скопирован",
|
||||
"ai_settings.mcp_http.message.authorization_header_required": "Сначала запустите службу MCP HTTP, чтобы создать Authorization Header",
|
||||
"ai_settings.mcp_http.message.authorization_header_copied": "Authorization Header скопирован",
|
||||
"ai_settings.mcp_http.status.not_running": "Служба GoNavi MCP HTTP не запущена",
|
||||
"ai_settings.skill.message.saved": "Skill сохранен",
|
||||
"ai_settings.skill.message.save_failed": "Не удалось сохранить Skill",
|
||||
"ai_settings.skill.message.deleted": "Skill удален",
|
||||
"ai_settings.skill.message.delete_failed": "Не удалось удалить Skill",
|
||||
"ai_settings.tools.description": "При работе с вопросами по базам данных AI-ассистент может автоматически вызывать эти встроенные инструменты, чтобы получить реальные данные без ручного вмешательства.",
|
||||
"ai_settings.tools.workflow": "💡 Процесс: get_connections → get_databases → get_tables → get_columns → сформировать SQL",
|
||||
"ai_settings.tools.params_label": "Параметры:",
|
||||
"ai_settings.tools.builtin_tool_label": "Встроенный инструмент",
|
||||
"ai_settings.tools.search.aria_label": "Поиск встроенных инструментов",
|
||||
"ai_settings.tools.search.placeholder": "Поиск инструментов, процессов или параметров, например mcp / lineLimit / allowMutating / transaction",
|
||||
"ai_settings.tools.search.clear": "Очистить",
|
||||
"ai_settings.tools.summary": "Показано {{flowVisible}}/{{flowTotal}} рекомендуемых процессов и {{toolVisible}}/{{toolTotal}} встроенных инструментов.",
|
||||
"ai_settings.tools.empty.no_matches": "Подходящих встроенных инструментов нет. Попробуйте более общие ключевые слова, например mcp, logs, connection, transaction, shortcuts или schema.",
|
||||
"ai_settings.tools.parameters.hint_title": "Подсказки по параметрам",
|
||||
"ai_settings.tools.parameters.type_label": "Тип: {{type}}",
|
||||
"ai_settings.tools.parameters.required": "Обязательный",
|
||||
"ai_settings.tools.parameters.optional": "Необязательный",
|
||||
"ai_settings.tools.parameters.enum_values": "Допустимые значения: {{values}}",
|
||||
"ai_settings.tools.parameters.default_value": "По умолчанию: {{value}}",
|
||||
"ai_settings.tools.parameters.example": "Пример:",
|
||||
"ai_settings.tools.params.none": "Без параметров",
|
||||
"ai_settings.tools.get_connections.desc": "Получить все доступные подключения к базам данных",
|
||||
"ai_settings.tools.get_connections.detail": "Возвращает ID подключения, имя, тип (MySQL/PostgreSQL и т. д.) и адрес Host. AI использует эти сведения, чтобы выбрать подключение для первичного исследования.",
|
||||
@@ -3521,6 +3905,38 @@
|
||||
"data_sync.action.previous": "Назад",
|
||||
"data_sync.action.start_sync": "Начать синхронизацию",
|
||||
"data_sync.action.view": "Просмотреть",
|
||||
"data_sync.compare_entry.action.return_to_compare": "Вернуться к сравнению",
|
||||
"data_sync.compare_entry.alert.data": "Это режим сравнения данных: он только анализирует различия строк по первичному ключу и не выполняет запись.",
|
||||
"data_sync.compare_entry.alert.schema": "Это режим сравнения структуры: он только анализирует различия схемы и формирует SQL для проверки, не применяя изменения.",
|
||||
"data_sync.compare_entry.option.auto_add_columns": "Сформировать совместимый SQL изменений для отсутствующих столбцов целевой таблицы (только предпросмотр, без выполнения)",
|
||||
"data_sync.compare_entry.option.source_dataset.query": "Сравнить по результату SQL",
|
||||
"data_sync.compare_entry.option.source_dataset.table": "Сравнить по таблице",
|
||||
"data_sync.compare_entry.preview.selection_hint": "Выбор строк влияет только на область предпросмотра SQL и не выполняет запись данных.",
|
||||
"data_sync.compare_entry.preview.sql.data_help": "Предпросмотр SQL формируется по выбранным вставкам, обновлениям, удалениям и диапазонам строк только для проверки различий.",
|
||||
"data_sync.compare_entry.preview.sql.schema_help": "Предпросмотр SQL показывает предлагаемые операторы различий структуры только для проверки.",
|
||||
"data_sync.compare_entry.result.completed": "Сравнение завершено",
|
||||
"data_sync.compare_entry.result.failed": "Сравнение не удалось",
|
||||
"data_sync.compare_entry.result.running": "Идет сравнение",
|
||||
"data_sync.compare_entry.result.running_description": "Текущий этап: {{stage}}{{table}}",
|
||||
"data_sync.compare_entry.result.stage_fallback": "Выполняется",
|
||||
"data_sync.compare_entry.result.success_summary": "Успешно сравнено таблиц: {{tables}}.",
|
||||
"data_sync.compare_entry.result.table_suffix": ", таблица: {{table}}",
|
||||
"data_sync.compare_entry.title.analysis_log": "Журнал анализа",
|
||||
"data_sync.compare_entry.workflow_help": "Этот вход только анализирует различия и показывает предпросмотр. Он не синхронизирует, не создает таблицы, не добавляет столбцы и не удаляет данные.",
|
||||
"data_sync.entry_mode.compare.action.start": "Начать сравнение",
|
||||
"data_sync.entry_mode.compare.option_title": "Параметры сравнения",
|
||||
"data_sync.entry_mode.compare.result_title": "Результат сравнения",
|
||||
"data_sync.entry_mode.data_compare.badge": "Сравнение данных",
|
||||
"data_sync.entry_mode.data_compare.description": "Сравнивает данные исходной и целевой таблиц по первичному ключу и показывает вставки, обновления и удаления.",
|
||||
"data_sync.entry_mode.data_compare.hero_description": "Подходит для проверки согласованности данных. Выполняет только анализ различий и построчный предпросмотр без записи.",
|
||||
"data_sync.entry_mode.data_compare.table_select_label": "Выберите таблицы для сравнения данных:",
|
||||
"data_sync.entry_mode.data_compare.title": "Сравнение данных",
|
||||
"data_sync.entry_mode.schema_compare.badge": "Сравнение структуры",
|
||||
"data_sync.entry_mode.schema_compare.description": "Формирует различия структуры, риски совместимости и SQL для проверки между исходной и целевой таблицами.",
|
||||
"data_sync.entry_mode.schema_compare.hero_description": "Подходит для проверки различий структуры перед выпуском. Выполняет только анализ и предпросмотр без применения изменений структуры.",
|
||||
"data_sync.entry_mode.schema_compare.table_select_label": "Выберите таблицы для сравнения структуры:",
|
||||
"data_sync.entry_mode.schema_compare.title": "Сравнение структуры таблиц",
|
||||
"data_sync.entry_mode.sync.hero_description": "Подходит, когда целевые таблицы уже существуют. Сначала анализируйте различия, затем выполняйте выбранные вставки, обновления или удаления.",
|
||||
"data_sync.alert.auto_create_scope": "Автоматическое создание таблиц сейчас поддерживает только MySQL в Kingbase. Переносятся столбцы, первичные ключи, обычные индексы, уникальные индексы и составные индексы; полнотекстовые, пространственные, префиксные и функциональные индексы явно пропускаются.",
|
||||
"data_sync.alert.auto_create_planner_scope": "Автоматическое создание таблиц сейчас поддерживает только MySQL в Kingbase. Переносятся столбцы, первичные ключи, обычные индексы, уникальные индексы и составные индексы; полнотекстовые, пространственные, префиксные и функциональные индексы явно пропускаются.",
|
||||
"data_sync.alert.existing_target_only": "Синхронизация данных по умолчанию выполняется с существующими целевыми таблицами. Переключитесь на межбазовую миграцию, если нужны создание таблиц и импорт.",
|
||||
@@ -4373,6 +4789,11 @@
|
||||
"app.theme.font_family.loading_ui_hint": "Установленные шрифты текущей системы загружаются в реальном времени. Введите текст для поиска. Очистите поле, чтобы вернуться к шрифту UI по умолчанию.",
|
||||
"app.theme.font_family.mono_fallback_hint": "Используются стандартные наборы шрифтов для кода. Применяется к моноширинному содержимому: SQL-редактору, блокам кода AI, журналам, DDL и таблицам данных.",
|
||||
"app.theme.font_family.mono_hint": "Сначала показываются установленные системные шрифты; названия, близкие к Mono/Code/Console, выводятся выше. Применяется к моноширинному содержимому: SQL-редактору, блокам кода AI, журналам, DDL и таблицам данных.",
|
||||
"app.theme.font_family.linux_cjk_install_prefix": "Ubuntu/Linux не обнаружил китайские CJK-шрифты, поэтому интерфейс может показывать квадраты вместо символов. Установите: ",
|
||||
"app.theme.font_family.linux_cjk_install_suffix": ", затем перезапустите GoNavi.",
|
||||
"app.linux_cjk_font_banner.title": "Отсутствуют Linux CJK-шрифты",
|
||||
"app.linux_cjk_font_banner.description": "Китайский текст может отображаться квадратами вместо символов. Установите шрифты, затем перезапустите GoNavi: ",
|
||||
"app.linux_cjk_font_banner.action.open_font_settings": "Настройки шрифтов",
|
||||
"app.theme.data_table.density": "Плотность таблицы",
|
||||
"app.theme.data_table.density.comfortable": "Комфортная",
|
||||
"app.theme.data_table.density.standard": "Стандартная",
|
||||
|
||||
@@ -470,6 +470,35 @@
|
||||
"app.theme.ui_version.legacy.description": "当前稳定界面,所有功能完整可用。",
|
||||
"app.theme.ui_version.legacy.label": "旧版 UI",
|
||||
"app.theme.ui_version.platform_hint": "Windows、macOS 与 Linux 均可切换;切换后立即生效,部分弹窗会在下次打开时使用新样式。",
|
||||
"app.theme.ui_version.sidebar_search.command": "新版命令搜索",
|
||||
"app.theme.ui_version.sidebar_search.filter": "旧版侧栏筛选",
|
||||
"app.theme.ui_version.sidebar_search.hint": "新版命令搜索适合跳转连接、表和动作,可在面板中开启同步开关持续过滤左侧树;旧版侧栏筛选会直接显示输入框并持久保留筛选内容。",
|
||||
"app.theme.ui_version.sidebar_search.title": "新版左侧搜索模式",
|
||||
"app.theme.tab_display.title": "Tab 标签展示",
|
||||
"app.theme.tab_display.description": "自定义连接名、对象类型、对象名、数据库、Schema 和 Host/IP 的展示顺序;双行模式可把上下文放到副行。",
|
||||
"app.theme.tab_display.layout.single": "单行",
|
||||
"app.theme.tab_display.layout.double": "双行",
|
||||
"app.theme.tab_display.badge.current": "当前",
|
||||
"app.theme.tab_display.row.primary": "主行",
|
||||
"app.theme.tab_display.row.secondary": "副行",
|
||||
"app.theme.tab_display.action.move_up": "上移",
|
||||
"app.theme.tab_display.action.move_down": "下移",
|
||||
"app.theme.tab_display.preview.prefix": "当前预览:",
|
||||
"app.theme.tab_display.preview.default_label": "默认标签",
|
||||
"app.theme.tab_display.preview.secondary": ",副行 {{labels}}",
|
||||
"app.theme.tab_display.preview.focused": ";当前选中 {{label}}",
|
||||
"app.theme.tab_display.element.connection.label": "连接名",
|
||||
"app.theme.tab_display.element.connection.description": "连接简称或环境名,例如 DEV",
|
||||
"app.theme.tab_display.element.kind.label": "对象类型",
|
||||
"app.theme.tab_display.element.kind.description": "SQL / TABLE / VIEW 等类型标签",
|
||||
"app.theme.tab_display.element.object.label": "对象名",
|
||||
"app.theme.tab_display.element.object.description": "表名、查询名、资源名等核心名称",
|
||||
"app.theme.tab_display.element.database.label": "数据库",
|
||||
"app.theme.tab_display.element.database.description": "当前 DB / catalog 名称",
|
||||
"app.theme.tab_display.element.schema.label": "Schema",
|
||||
"app.theme.tab_display.element.schema.description": "schema / owner 前缀",
|
||||
"app.theme.tab_display.element.host.label": "Host/IP",
|
||||
"app.theme.tab_display.element.host.description": "连接目标地址摘要",
|
||||
"app.theme.ui_version.title": "界面版本",
|
||||
"app.theme.ui_version.v2.badge": "Beta",
|
||||
"app.theme.ui_version.v2.description": "重新设计的紧凑界面,强化 AI 入口与表概览。",
|
||||
@@ -493,6 +522,10 @@
|
||||
"app.window_zoom.message.windows_only": "该功能仅在 Windows 平台生效",
|
||||
"app.tools.entry.shortcuts.description": "查看并调整全局快捷键绑定。",
|
||||
"app.tools.entry.shortcuts.title": "快捷键管理",
|
||||
"app.tools.entry.schema_compare.description": "对比源表与目标表结构差异,只预览不执行。",
|
||||
"app.tools.entry.schema_compare.title": "表结构比对",
|
||||
"app.tools.entry.data_compare.description": "按主键分析新增、更新、删除和相同行。",
|
||||
"app.tools.entry.data_compare.title": "数据比对",
|
||||
"app.tools.entry.sync.description": "进入跨源同步工作流。",
|
||||
"app.tools.entry.sync.title": "数据同步",
|
||||
"app.tools.title": "工具中心",
|
||||
@@ -527,6 +560,18 @@
|
||||
"app.browser_mock.export_sql_unsupported": "浏览器 mock 不支持 SQL 文件导出",
|
||||
"app.browser_mock.import_connection_package_unsupported": "浏览器 mock 不支持恢复包导入,仅支持历史 JSON 连接数组",
|
||||
"app.browser_mock.export_connection_package_unsupported": "浏览器 mock 不支持恢复包导出",
|
||||
"app.browser_mock.mcp_http.not_running": "GoNavi MCP HTTP 服务未启动",
|
||||
"app.browser_mock.mcp_http.started": "GoNavi MCP HTTP 服务已启动",
|
||||
"app.browser_mock.mcp_http.stopped": "GoNavi MCP HTTP 服务已停止",
|
||||
"app.browser_mock.mcp_server.command_required": "MCP 命令不能为空",
|
||||
"app.browser_mock.mcp_server.test_success": "MCP mock 测试成功",
|
||||
"app.browser_mock.mcp_tool.unavailable": "浏览器 mock 未接入真实 MCP 服务",
|
||||
"app.browser_mock.mcp_client.claude_code.installed": "已写入 Claude Code 用户级 MCP 配置,重启 Claude CLI 后可在 /mcp 的 User MCPs 中看到 GoNavi。",
|
||||
"app.browser_mock.mcp_client.claude_code.not_detected": "未检测到 Claude Code 用户级 GoNavi MCP 配置",
|
||||
"app.browser_mock.mcp_client.codex.installed": "已写入 Codex 用户级 MCP 配置,重启 Codex CLI 或桌面端后可看到 GoNavi。",
|
||||
"app.browser_mock.mcp_client.codex.path_mismatch": "已检测到 Codex 中的 GoNavi MCP 记录,但与当前 GoNavi 安装路径不一致,建议更新",
|
||||
"app.browser_mock.provider.test_failed_detail": "连接测试失败:{{detail}}",
|
||||
"app.browser_mock.provider.test_success": "端点连通性测试成功",
|
||||
"app.update.action.hide_to_background": "隐藏到后台",
|
||||
"app.update.action.install_update": "安装更新",
|
||||
"app.update.action.open_install_directory": "打开安装目录",
|
||||
@@ -596,7 +641,66 @@
|
||||
"query.new": "新建查询",
|
||||
"query.run": "运行",
|
||||
"query.save": "保存查询",
|
||||
"saved_query.default_name": "查询-{{index}}",
|
||||
"query.stop": "停止",
|
||||
"message_publish_modal.title": "测试发送消息",
|
||||
"message_publish_modal.title_with_connection": "测试发送消息 · {{connectionName}}",
|
||||
"message_publish_modal.action.send": "发送",
|
||||
"message_publish_modal.error.build_command_failed": "构造发送命令失败",
|
||||
"message_publish_modal.error.send_failed_detail": "发送失败:{{detail}}",
|
||||
"message_publish_modal.error.unknown_error": "未知错误",
|
||||
"message_publish_modal.field.exchange.label": "Exchange(可选)",
|
||||
"message_publish_modal.field.exchange.extra": "留空使用默认交换机;若填写自定义交换机,请确认目标 Queue 已建立 binding。",
|
||||
"message_publish_modal.field.exchange.placeholder": "例如:events.topic",
|
||||
"message_publish_modal.field.routing_key.label": "Routing Key(可选)",
|
||||
"message_publish_modal.field.routing_key.extra": "留空时默认使用当前 Queue 名。",
|
||||
"message_publish_modal.field.routing_key.placeholder": "例如:orders.queue",
|
||||
"message_publish_modal.field.qos.extra": "0 为 at most once,1 为 at least once,2 为 exactly once。",
|
||||
"message_publish_modal.field.retain.label": "Retain 消息",
|
||||
"message_publish_modal.field.tag.label": "Tag(可选)",
|
||||
"message_publish_modal.field.tag.extra": "留空表示不过滤或不写入 Tag。",
|
||||
"message_publish_modal.field.delay_level.label": "Delay Level(可选)",
|
||||
"message_publish_modal.field.delay_level.extra": "RocketMQ 使用固定延时级别,0 表示立即发送。",
|
||||
"message_publish_modal.field.body_mode.label": "消息体类型",
|
||||
"message_publish_modal.field.body.label": "消息体",
|
||||
"message_publish_modal.field.body.required": "请输入消息体",
|
||||
"message_publish_modal.field.body.extra": "JSON 模式下需输入合法 JSON;文本模式按原样发送。",
|
||||
"message_publish_modal.field.body.placeholder": "请输入消息体",
|
||||
"message_publish_modal.field.headers.label": "Headers(可选)",
|
||||
"message_publish_modal.field.headers.extra": "需为 JSON 对象,例如 {{example}}。",
|
||||
"message_publish_modal.field.properties.label": "Properties(可选)",
|
||||
"message_publish_modal.field.properties.extra": "需为 JSON 对象,例如 {{example}}。",
|
||||
"message_publish_modal.option.no_delay": "不延时",
|
||||
"message_publish_modal.option.text": "文本",
|
||||
"message_publish_modal.footer.success_prefix": "发送成功后会返回",
|
||||
"message_publish_modal.footer.success_suffix": ",用于确认本次测试消息是否已提交。",
|
||||
"message_publish.field.body": "消息体",
|
||||
"message_publish.field.message_key": "消息 Key",
|
||||
"message_publish.error.destination_required": "请输入目标 Topic / Queue",
|
||||
"message_publish.error.required_field": "请输入{{field}}",
|
||||
"message_publish.error.invalid_json_detail": "{{field}}不是合法 JSON:{{detail}}",
|
||||
"message_publish.error.json_object_required": "{{field}} 必须是 JSON 对象",
|
||||
"message_publish.error.mqtt_wildcard_topic": "MQTT 发送 Topic 不能包含 + 或 # 通配符",
|
||||
"message_publish.error.unsupported_type": "当前数据源暂不支持测试发送消息:{{type}}",
|
||||
"message_publish.presentation.rabbitmq.destination_placeholder": "例如:orders.queue",
|
||||
"message_publish.presentation.rabbitmq.destination_required": "请输入 Queue",
|
||||
"message_publish.presentation.rabbitmq.alert": "当前表单会自动拼装 RabbitMQ publish JSON 命令,并通过 Management API 执行测试发送。",
|
||||
"message_publish.presentation.rabbitmq.success_hint": "留空 Exchange 时会使用默认交换机并按 Queue 名作为 routing key。",
|
||||
"message_publish.presentation.rocketmq.destination_placeholder": "例如:orders.events",
|
||||
"message_publish.presentation.topic_required": "请输入 Topic",
|
||||
"message_publish.presentation.rocketmq.alert": "当前表单会自动拼装 RocketMQ publish JSON 命令,并通过 NameServer/Broker 执行测试发送。",
|
||||
"message_publish.presentation.rocketmq.success_hint": "Tag、Keys、Delay Level 与 Properties 会一并写入 RocketMQ 消息属性。",
|
||||
"message_publish.presentation.keys_label": "消息 Keys(可选)",
|
||||
"message_publish.presentation.rocketmq.key_placeholder": "可输入多个 Key,使用逗号分隔",
|
||||
"message_publish.presentation.rocketmq.tag_placeholder": "例如:TagA",
|
||||
"message_publish.presentation.mqtt.destination_placeholder": "例如:devices/device-001/telemetry",
|
||||
"message_publish.presentation.mqtt.alert": "当前表单会自动拼装 MQTT publish JSON 命令,并直接通过 broker 执行测试发送。",
|
||||
"message_publish.presentation.mqtt.success_hint": "QoS 与 retain 可单独指定;未填写时沿用当前连接中的默认参数。",
|
||||
"message_publish.presentation.kafka.destination_placeholder": "例如:orders.events",
|
||||
"message_publish.presentation.kafka.alert": "当前表单会自动拼装 Kafka publish JSON 命令,并直接调用后端执行测试发送。",
|
||||
"message_publish.presentation.kafka.success_hint": "Headers 会作为 Kafka Record Headers 一并发送。",
|
||||
"message_publish.presentation.key_label": "消息 Key(可选)",
|
||||
"message_publish.presentation.kafka.key_placeholder": "可留空;JSON 模式请输入一行合法 JSON",
|
||||
"connection_modal.action.browse": "浏览...",
|
||||
"connection_modal.action.disable": "禁用",
|
||||
"connection_modal.action.discover_members": "自动发现成员",
|
||||
@@ -644,6 +748,7 @@
|
||||
"connection_modal.field.tunnel_password_optional": "HTTP Tunnel 密码(可选)",
|
||||
"connection_modal.field.tunnel_username_optional": "HTTP Tunnel 用户名(可选)",
|
||||
"connection_modal.field.username": "用户名",
|
||||
"connection_modal.field.username.optional_placeholder": "未开启认证可留空",
|
||||
"connection_modal.help.additional_hosts": "可选 MongoDB 成员,使用逗号、分号或空格分隔。",
|
||||
"connection_modal.help.additional_srv_hosts": "可选的附加 SRV 主机,用于 MongoDB 发现。",
|
||||
"connection_modal.help.connection_timeout": "用于连接测试和元数据加载,范围 1-300 秒。",
|
||||
@@ -707,6 +812,66 @@
|
||||
"connection_modal.jvm.read_only_first": "优先只读操作",
|
||||
"connection_modal.jvm.security_policy": "安全策略",
|
||||
"connection_modal.message.srv_with_ssh_dns_warning": "SRV 与 SSH Tunnel 同时启用时可能依赖本地 DNS 解析;如解析失败,请改用标准主机列表。",
|
||||
"connection_modal.messageQueue.kafka.defaultTopic.label": "默认 Topic(可选)",
|
||||
"connection_modal.messageQueue.kafka.defaultTopic.help": "留空时必须在 SQL 中显式指定 Topic;填写后可直接执行 SHOW、CONSUME 或 SELECT 预览。",
|
||||
"connection_modal.messageQueue.kafka.defaultTopic.placeholder": "例如:orders.events",
|
||||
"connection_modal.messageQueue.rocketmq.defaultTopic.label": "默认 Topic(可选)",
|
||||
"connection_modal.messageQueue.rocketmq.defaultTopic.help": "留空时必须在 SQL 中显式指定 Topic;连接参数可继续补充 groupId、namespace、tag、pullBatchSize 与 startOffset。",
|
||||
"connection_modal.messageQueue.rocketmq.defaultTopic.placeholder": "例如:orders.events",
|
||||
"connection_modal.messageQueue.mqtt.defaultTopicFilter.label": "默认 Topic / Filter(可选)",
|
||||
"connection_modal.messageQueue.mqtt.defaultTopicFilter.help": "留空时必须在 SQL 中显式指定 Topic;填写后可直接执行 SHOW、CONSUME 或 SELECT 预览。支持使用 /、+、#。",
|
||||
"connection_modal.messageQueue.mqtt.defaultTopicFilter.placeholder": "例如:devices/+/telemetry",
|
||||
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.label": "默认 Virtual Host(可选)",
|
||||
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.help": "留空默认使用 /;填写后查询编辑器会以当前 vhost 作为 Queue 浏览与测试发送上下文。",
|
||||
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.placeholder": "例如:/ 或 orders-vhost",
|
||||
"connection_modal.messageQueue.topology.cluster.label": "集群模式",
|
||||
"connection_modal.messageQueue.kafka.topology.single.label": "单 Broker",
|
||||
"connection_modal.messageQueue.kafka.topology.single.description": "只配置一个 bootstrap broker,适合本地或简单环境。",
|
||||
"connection_modal.messageQueue.kafka.topology.cluster.description": "配置多个 bootstrap broker,提高发现与故障切换成功率。",
|
||||
"connection_modal.messageQueue.rocketmq.topology.single.label": "单 NameServer",
|
||||
"connection_modal.messageQueue.rocketmq.topology.single.description": "只配置一个 NameServer,适合本地或简单环境。",
|
||||
"connection_modal.messageQueue.rocketmq.topology.cluster.description": "配置多个 NameServer,提高路由发现与故障切换成功率。",
|
||||
"connection_modal.messageQueue.mqtt.topology.single.label": "单 Broker",
|
||||
"connection_modal.messageQueue.mqtt.topology.single.description": "只配置一个 broker,适合本地或简单环境。",
|
||||
"connection_modal.messageQueue.mqtt.topology.cluster.description": "配置多个 broker,提高连接发现与故障切换成功率。",
|
||||
"connection_modal.messageQueue.kafka.extraBrokers.label": "额外 Broker 地址",
|
||||
"connection_modal.messageQueue.kafka.extraBrokers.help": "可输入多个 broker 地址,格式:host:port(回车确认)",
|
||||
"connection_modal.messageQueue.kafka.extraBrokers.placeholder": "例如:10.10.0.12:9092、10.10.0.13:9092",
|
||||
"connection_modal.messageQueue.rocketmq.extraNameServers.label": "额外 NameServer 地址",
|
||||
"connection_modal.messageQueue.rocketmq.extraNameServers.help": "可输入多个 NameServer 地址,格式:host:port(回车确认)",
|
||||
"connection_modal.messageQueue.rocketmq.extraNameServers.placeholder": "例如:10.10.0.12:9876、10.10.0.13:9876",
|
||||
"connection_modal.messageQueue.mqtt.extraBrokers.label": "额外 Broker 地址",
|
||||
"connection_modal.messageQueue.mqtt.extraBrokers.help": "可输入多个 broker 地址,格式:host:port(回车确认)",
|
||||
"connection_modal.messageQueue.mqtt.extraBrokers.placeholder": "例如:10.10.0.12:1883、10.10.0.13:1883",
|
||||
"connection_modal.redis.topology.single.label": "单机模式",
|
||||
"connection_modal.redis.topology.single.description": "只连接一个 Redis 节点。",
|
||||
"connection_modal.redis.topology.cluster.label": "集群模式",
|
||||
"connection_modal.redis.topology.cluster.description": "Redis Cluster,配置多个种子节点。",
|
||||
"connection_modal.redis.topology.sentinel.label": "哨兵模式",
|
||||
"connection_modal.redis.topology.sentinel.description": "通过 Sentinel 发现主节点,适合主从高可用。",
|
||||
"connection_modal.redis.hosts.sentinel.label": "Sentinel 附加节点地址",
|
||||
"connection_modal.redis.hosts.sentinel.help": "上方主机地址作为第一个 Sentinel;这里填写其他 Sentinel 节点,格式:host:port",
|
||||
"connection_modal.redis.hosts.sentinel.placeholder": "例如:10.10.0.12:26379、10.10.0.13:26379",
|
||||
"connection_modal.redis.hosts.cluster.label": "集群附加节点地址",
|
||||
"connection_modal.redis.hosts.cluster.help": "主节点使用上方主机地址;这里填写其他种子节点,格式:host:port",
|
||||
"connection_modal.redis.hosts.cluster.placeholder": "例如:10.10.0.12:6379、10.10.0.13:6379",
|
||||
"connection_modal.redis.sentinel.master.label": "Sentinel master 名称",
|
||||
"connection_modal.redis.sentinel.master.help": "填写 Sentinel 配置中的 monitor 名称,例如 mymaster。",
|
||||
"connection_modal.redis.sentinel.master.required": "请输入 Sentinel master 名称",
|
||||
"connection_modal.redis.sentinel.master.placeholder": "例如:mymaster",
|
||||
"connection_modal.redis.credentials.primary.label": "密码 (可选)",
|
||||
"connection_modal.redis.credentials.primary.placeholder.empty": "Redis 密码(如果设置了 requirepass)",
|
||||
"connection_modal.redis.credentials.primary.placeholder.retained": "已保存 Redis 密码",
|
||||
"connection_modal.redis.credentials.sentinelUser.label": "Sentinel 用户名(可选)",
|
||||
"connection_modal.redis.credentials.sentinelUser.placeholder": "留空表示 Sentinel 不使用 ACL 用户名",
|
||||
"connection_modal.redis.credentials.sentinelPassword.label": "Sentinel 密码(可选)",
|
||||
"connection_modal.redis.credentials.sentinelPassword.placeholder.empty": "Sentinel 自身认证密码,留空则不发送",
|
||||
"connection_modal.redis.credentials.sentinelPassword.placeholder.retained": "已保存 Sentinel 密码",
|
||||
"connection_modal.redis.credentials.sentinelPassword.clear": "清除已保存 Sentinel 密码",
|
||||
"connection_modal.redis.credentials.sentinelPassword.description": "当前已保存 Sentinel 密码。留空表示继续沿用,输入新值表示替换。",
|
||||
"connection_modal.redis.databaseScope.label": "显示数据库 (留空显示全部)",
|
||||
"connection_modal.redis.databaseScope.help": "连接测试成功后可选择",
|
||||
"connection_modal.redis.databaseScope.placeholder": "选择显示的数据库",
|
||||
"connection_modal.mongodb.auth.auto": "自动",
|
||||
"connection_modal.mongodb.auth.auto_description": "由驱动自动选择认证机制。",
|
||||
"connection_modal.mongodb.auth.aws_iam_description": "使用 AWS IAM 认证,请在运行环境中提供 AWS IAM 凭据。",
|
||||
@@ -715,6 +880,35 @@
|
||||
"connection_modal.mongodb.auth.scram_sha1_description": "使用 SCRAM-SHA-1 认证。",
|
||||
"connection_modal.mongodb.auth.scram_sha256_description": "使用 SCRAM-SHA-256 认证。",
|
||||
"connection_modal.mongodb.auth_mechanism": "认证机制",
|
||||
"connection_modal.mongodb.topology.single.label": "单机模式",
|
||||
"connection_modal.mongodb.topology.replica.label": "副本集 / 多节点",
|
||||
"connection_modal.mongodb.discovery.standard.label": "标准地址",
|
||||
"connection_modal.mongodb.discovery.standard.description": "使用 host:port 直连或副本集节点列表。",
|
||||
"connection_modal.mongodb.discovery.srv.label": "SRV 地址",
|
||||
"connection_modal.mongodb.discovery.srv.description": "使用 mongodb+srv,由 DNS 发现目标节点。",
|
||||
"connection_modal.mongodb.discovery.current": "当前",
|
||||
"connection_modal.mongodb.discovery.srv_ssh_warning": "SRV 与 SSH 隧道同时启用时,可能依赖本地 DNS 解析能力",
|
||||
"connection_modal.mongodb.replica.hosts.srv.label": "附加 SRV 主机(可选)",
|
||||
"connection_modal.mongodb.replica.hosts.srv.help": "可输入多个候选主机名,格式:host;若留空则仅使用上方主机。",
|
||||
"connection_modal.mongodb.replica.hosts.srv.placeholder": "例如:cluster-a.example.com、cluster-b.example.com",
|
||||
"connection_modal.mongodb.replica.hosts.standard.label": "附加节点地址",
|
||||
"connection_modal.mongodb.replica.hosts.standard.help": "可输入多个节点地址,格式:host:port(回车确认)",
|
||||
"connection_modal.mongodb.replica.hosts.standard.placeholder": "例如:10.10.0.12:27017、10.10.0.13:27017",
|
||||
"connection_modal.mongodb.replica.set.label": "副本集名称(可选)",
|
||||
"connection_modal.mongodb.replica.set.placeholder": "例如:rs0",
|
||||
"connection_modal.mongodb.replica.user.label": "副本集用户名(可选)",
|
||||
"connection_modal.mongodb.replica.user.placeholder": "留空沿用主用户名",
|
||||
"connection_modal.mongodb.replica.password.label": "副本集密码(可选)",
|
||||
"connection_modal.mongodb.replica.password.placeholder.empty": "留空沿用主密码",
|
||||
"connection_modal.mongodb.replica.password.placeholder.retained": "已保存副本集密码",
|
||||
"connection_modal.mongodb.replica.password.clear": "清除已保存副本集密码",
|
||||
"connection_modal.mongodb.replica.password.description": "当前已保存副本集密码。留空表示继续沿用,输入新值表示替换。",
|
||||
"connection_modal.mongodb.members.role": "角色",
|
||||
"connection_modal.mongodb.members.health": "健康",
|
||||
"connection_modal.mongodb.members.health.ok": "正常",
|
||||
"connection_modal.mongodb.members.health.error": "异常",
|
||||
"connection_modal.mongodb.policy.auth_source.label": "认证库 (authSource)",
|
||||
"connection_modal.mongodb.policy.auth_source.placeholder": "默认使用 database 或 admin",
|
||||
"connection_modal.mongodb.read_preference": "readPreference",
|
||||
"connection_modal.mongodb.read_preference.nearest": "读取最近的成员。",
|
||||
"connection_modal.mongodb.read_preference.primary": "仅从 primary 读取。",
|
||||
@@ -878,6 +1072,9 @@
|
||||
"connection_modal.message.save_security_refresh_failed": "配置已保存,但刷新安全信息失败",
|
||||
"connection_modal.message.save_failed": "保存连接失败",
|
||||
"connection_modal.message.test_requires_new_password": "请先输入新的连接密码,再测试连接。",
|
||||
"connection_modal.secret.blocking.redis_sentinel": "测试连接前请填写新的 Sentinel 密码,或取消清除已保存 Sentinel 密码",
|
||||
"connection_modal.test.redis_database_list_timeout": "连接成功但拉取 Redis 数据库列表超时(>{{seconds}} 秒)",
|
||||
"connection_modal.test.redis_database_list_failure": "连接成功,但获取 Redis 数据库列表失败:{{detail}}",
|
||||
"connection_modal.message.test_requires_new_ssh_password": "请先输入新的 SSH 密码,再测试连接。",
|
||||
"connection_modal.message.test_requires_new_proxy_password": "请先输入新的代理密码,再测试连接。",
|
||||
"connection_modal.message.test_requires_new_tunnel_password": "请先输入新的 HTTP Tunnel 密码,再测试连接。",
|
||||
@@ -1018,20 +1215,32 @@
|
||||
"sidebar.message.export_failed": "导出失败:{{error}}",
|
||||
"sidebar.message.backing_up_database": "正在备份 {{database}}...",
|
||||
"sidebar.message.exporting_database_schema": "正在导出 {{database}} 的结构...",
|
||||
"sidebar.message.exporting_database_backup": "正在备份 {{database}}(结构+数据)...",
|
||||
"sidebar.message.schema_export_target_missing": "未找到目标模式,无法导出。",
|
||||
"sidebar.message.exporting_schema_structure": "正在导出模式 {{schema}} 的结构...",
|
||||
"sidebar.message.exporting_schema_backup": "正在备份模式 {{schema}}(结构+数据)...",
|
||||
"sidebar.message.export_tables_same_database_required": "请选择同一数据库下的表。",
|
||||
"sidebar.message.backing_up_selected_tables": "正在备份 {{count}} 个已选表...",
|
||||
"sidebar.message.exporting_selected_table_schema": "正在导出 {{count}} 个已选表的结构...",
|
||||
"sidebar.message.load_database_list_failed": "加载数据库失败:{{error}}",
|
||||
"sidebar.message.load_table_list_failed": "加载表失败:{{error}}",
|
||||
"sidebar.message.locate_external_sql_file_not_found": "未在外部 SQL 目录中找到 SQL 文件:{{path}}",
|
||||
"sidebar.message.locate_connection_not_found_for_object": "未找到当前对象对应的连接",
|
||||
"sidebar.message.locate_connection_not_in_tree": "未在左侧树找到当前连接",
|
||||
"sidebar.message.locate_database_loading": "数据库节点仍在加载中:{{database}},请稍后再试",
|
||||
"sidebar.message.locate_database_not_found": "未在左侧树找到数据库:{{database}}",
|
||||
"sidebar.message.locate_object_loading": "{{object}}所在数据库对象仍在加载中:{{database}},请稍后再试",
|
||||
"sidebar.message.locate_object_not_found": "{{object}}未在左侧树中找到:{{name}},请刷新数据库节点后重试",
|
||||
"sidebar.message.select_object_required": "请至少选择一个对象。",
|
||||
"sidebar.message.backing_up_selected_objects": "正在备份 {{count}} 个已选对象...",
|
||||
"sidebar.message.exporting_selected_object_data": "正在导出 {{count}} 个已选对象的数据...",
|
||||
"sidebar.message.exporting_selected_object_data": "正在导出 {{count}} 个已选对象的数据({{format}})...",
|
||||
"sidebar.message.exporting_selected_object_schema": "正在导出 {{count}} 个已选对象的结构...",
|
||||
"sidebar.message.export_success_skipped_views": "导出成功。已跳过 {{count}} 个视图的数据导出。",
|
||||
"sidebar.modal.confirm_clear_selected_tables.title": "确认清空已选表",
|
||||
"sidebar.modal.confirm_clear_selected_tables.content": "清空 {{connection}} / {{database}} 下已选对象的数据?此操作不可撤销。",
|
||||
"sidebar.action.continue": "继续",
|
||||
"sidebar.action.cancel": "取消",
|
||||
"sidebar.action.delete": "删除",
|
||||
"sidebar.message.clearing_selected_tables": "正在清空 {{count}} 个已选表...",
|
||||
"sidebar.message.clear_success": "清空成功。",
|
||||
"sidebar.message.clear_failed": "清空失败:{{error}}",
|
||||
@@ -1048,7 +1257,30 @@
|
||||
"sidebar.message.operation_create_failed": "创建失败:{{error}}",
|
||||
"sidebar.sql_file.default_name": "SQL 文件",
|
||||
"sidebar.message.sql_file_context_incomplete": "SQL 文件上下文不完整。",
|
||||
"sidebar.message.sql_file_path_incomplete": "SQL 文件路径不完整,无法打开。",
|
||||
"sidebar.message.select_host_before_large_sql_file": "请先选择一个 Host 后再执行大 SQL 文件。",
|
||||
"sidebar.message.read_sql_file_failed": "读取 SQL 文件失败:{{error}}",
|
||||
"sidebar.message.external_sql_file_parent_missing": "未找到可新建 SQL 文件的目录。",
|
||||
"sidebar.message.external_sql_file_rename_target_missing": "未找到可重命名的 SQL 文件。",
|
||||
"sidebar.message.external_sql_file_delete_target_missing": "未找到可删除的 SQL 文件。",
|
||||
"sidebar.message.external_sql_directory_parent_missing": "未找到可新建目录的位置。",
|
||||
"sidebar.message.external_sql_directory_rename_target_missing": "未找到可重命名的目录。",
|
||||
"sidebar.message.external_sql_directory_delete_target_missing": "未找到可删除的 SQL 目录。",
|
||||
"sidebar.message.sql_file_name_required": "SQL 文件名不能为空。",
|
||||
"sidebar.message.sql_directory_name_required": "目录名不能为空。",
|
||||
"sidebar.message.create_sql_file_failed": "新建 SQL 文件失败:{{error}}",
|
||||
"sidebar.message.sql_file_created": "SQL 文件已新建。",
|
||||
"sidebar.message.rename_sql_file_failed": "重命名 SQL 文件失败:{{error}}",
|
||||
"sidebar.message.sql_file_renamed": "SQL 文件已重命名。",
|
||||
"sidebar.message.delete_sql_file_failed": "删除 SQL 文件失败:{{error}}",
|
||||
"sidebar.message.sql_file_deleted": "SQL 文件已删除。",
|
||||
"sidebar.message.create_sql_directory_failed": "新建目录失败:{{error}}",
|
||||
"sidebar.message.sql_directory_created": "目录已新建。",
|
||||
"sidebar.message.rename_sql_directory_failed": "重命名目录失败:{{error}}",
|
||||
"sidebar.message.external_sql_directory_rename_sync_failed": "目录已重命名,但无法同步外部 SQL 目录列表,请重新添加目录。",
|
||||
"sidebar.message.sql_directory_renamed": "目录已重命名。",
|
||||
"sidebar.message.delete_sql_directory_failed": "删除 SQL 目录失败:{{error}}",
|
||||
"sidebar.message.sql_directory_deleted": "SQL 目录已删除。",
|
||||
"sidebar.message.add_sql_directory_database_required": "请先选择数据库,再添加 SQL 目录。",
|
||||
"sidebar.message.select_sql_directory_failed": "选择 SQL 目录失败:{{error}}",
|
||||
"sidebar.message.sql_directory_path_invalid": "SQL 目录路径无效。",
|
||||
@@ -1062,6 +1294,10 @@
|
||||
"sidebar.message.create_failed": "创建失败:{{error}}",
|
||||
"sidebar.modal.confirm_delete_database.title": "删除数据库",
|
||||
"sidebar.modal.confirm_delete_database.content": "删除 {{name}}?此操作不可撤销。",
|
||||
"sidebar.modal.confirm_delete_sql_file.title": "删除 SQL 文件",
|
||||
"sidebar.modal.confirm_delete_sql_file.content": "删除 \"{{name}}\"?此操作会删除本地磁盘文件,无法恢复。",
|
||||
"sidebar.modal.confirm_delete_sql_directory.title": "删除 SQL 目录",
|
||||
"sidebar.modal.confirm_delete_sql_directory.content": "删除 \"{{name}}\"?此操作会删除本地磁盘目录,且仅支持删除空目录。",
|
||||
"sidebar.modal.confirm_delete_table.title": "删除表",
|
||||
"sidebar.modal.confirm_delete_table.content": "删除 {{name}}?此操作不可撤销。",
|
||||
"sidebar.modal.confirm_table_data_action.title": "确认 {{action}}",
|
||||
@@ -1088,8 +1324,14 @@
|
||||
"sidebar.message.delete_connection_failed": "删除连接失败。",
|
||||
"sidebar.modal.confirm_delete_saved_query.content": "确定要删除已保存的查询 \"{{name}}\" 吗?此操作不可恢复。",
|
||||
"sidebar.search.placeholder": "搜索...",
|
||||
"sidebar.punctuation.list_separator": "、",
|
||||
"sidebar.command_search.label": "搜索表、连接、动作",
|
||||
"sidebar.command_search.placeholder": "搜索表、连接、动作... 或问 AI",
|
||||
"sidebar.command_search.sync_to_filter_tooltip": "同步输入内容到左侧筛选",
|
||||
"sidebar.command_search.sync_to_filter_aria": "同步到左侧筛选",
|
||||
"sidebar.command_search.reset_filter": "重置侧栏筛选",
|
||||
"sidebar.command_search.no_synced_filter": "没有已同步的侧栏筛选",
|
||||
"sidebar.command_search.no_filter_content": "没有筛选内容",
|
||||
"sidebar.command_search.object_kind.all": "全部",
|
||||
"sidebar.command_search.object_kind.tables": "表",
|
||||
"sidebar.command_search.object_kind.views": "视图",
|
||||
@@ -1135,6 +1377,13 @@
|
||||
"sidebar.v2_table_menu.view_in_er": "在 ER 图中查看",
|
||||
"sidebar.v2_table_menu.copy_section": "复制",
|
||||
"sidebar.v2_table_menu.copy_table_name": "复制表名",
|
||||
"sidebar.copy_object_name.label.table": "表名",
|
||||
"sidebar.copy_object_name.label.view": "视图名称",
|
||||
"sidebar.copy_object_name.label.materialized_view": "物化视图名称",
|
||||
"sidebar.copy_object_name.label.event": "事件名称",
|
||||
"sidebar.copy_object_name.empty": "{{label}}为空,无法复制",
|
||||
"sidebar.copy_object_name.copied": "{{label}}已复制到剪贴板",
|
||||
"sidebar.copy_object_name.failed": "复制{{label}}失败: {{error}}",
|
||||
"sidebar.v2_table_menu.copy_table_as_insert": "复制全表为 {{keyword}}",
|
||||
"sidebar.v2_table_menu.maintenance_section": "维护",
|
||||
"sidebar.v2_table_menu.rename_compact": "重命名…",
|
||||
@@ -1159,6 +1408,11 @@
|
||||
"sidebar.v2_database_menu.export_all_table_schema_sql": "导出全部表结构 · SQL",
|
||||
"sidebar.v2_database_menu.backup_all_tables_sql": "备份全部表 · 结构 + 数据 SQL",
|
||||
"sidebar.message.locate_current_table_unavailable": "当前标签页没有可定位的表",
|
||||
"sidebar.locate.object.table": "表",
|
||||
"sidebar.locate.object.view": "视图",
|
||||
"sidebar.locate.object.materialized_view": "物化视图",
|
||||
"sidebar.locate.object.routine": "函数/存储过程",
|
||||
"sidebar.locate.object.trigger": "触发器",
|
||||
"sidebar.active_connection.current_host_database": "当前 Host 与数据库",
|
||||
"sidebar.active_connection.no_database_selected": "未选择数据库",
|
||||
"sidebar.active_connection.no_host_selected": "未选择 Host",
|
||||
@@ -1259,6 +1513,11 @@
|
||||
"sidebar.search.scope.host": "主机",
|
||||
"sidebar.search.scope.tag": "标签",
|
||||
"sidebar.tree.saved_queries": "已存查询",
|
||||
"sidebar.tree.untitled_query": "未命名查询",
|
||||
"sidebar.tree.default_database": "默认数据库",
|
||||
"sidebar.tree.unknown_connection": "未知连接",
|
||||
"sidebar.tree.unmatched_saved_queries": "未匹配",
|
||||
"sidebar.tree.all_saved_queries": "全部已存查询",
|
||||
"sidebar.tree.default_schema": "默认结构",
|
||||
"sidebar.object_group.tables": "表",
|
||||
"sidebar.object_group.views": "视图",
|
||||
@@ -1282,6 +1541,8 @@
|
||||
"sidebar.tab.new_table": "新建表 - {{database}}",
|
||||
"sidebar.tab.table_overview": "表概览 - {{database}}{{schema}}",
|
||||
"sidebar.tab.trigger": "触发器:{{name}}",
|
||||
"sidebar.tab.event": "事件:{{name}}",
|
||||
"sidebar.tab.edit_event": "编辑事件:{{name}}",
|
||||
"sidebar.tab.materialized_view_definition": "物化视图:{{name}}",
|
||||
"sidebar.tab.view_definition": "视图:{{name}}",
|
||||
"sidebar.tab.edit_view": "编辑视图:{{name}}",
|
||||
@@ -1351,9 +1612,13 @@
|
||||
"tab_manager.hover.label.object": "对象",
|
||||
"tab_manager.hover.label.type": "类型",
|
||||
"sidebar.message.no_visible_databases": "未返回可见数据库或结构。请检查账号权限,或从右键菜单刷新。",
|
||||
"sidebar.message.visual_new_table_unsupported": "当前数据源暂不支持可视化新建表。",
|
||||
"sidebar.message.jvm_resources_backend_unavailable": "JVM 资源后端不可用。",
|
||||
"sidebar.message.external_sql_directory_read_failed": "读取 SQL 目录 {{name}} 失败:{{error}}",
|
||||
"sidebar.message.sphinx_unsupported_objects": "此 Sphinx 实例不支持这些对象能力:{{objects}}。已启用兼容模式。",
|
||||
"sidebar.message.sidebar_filter_sync_enabled": "已开启左侧筛选同步。",
|
||||
"sidebar.message.sidebar_filter_sync_disabled": "已关闭左侧筛选同步。",
|
||||
"sidebar.message.sidebar_filter_reset": "已重置侧栏筛选。",
|
||||
"sidebar.message.database_name_required": "请输入数据库名称。",
|
||||
"sidebar.message.database_name_unchanged": "数据库名称未变化。",
|
||||
"sidebar.message.database_renamed": "数据库已重命名。",
|
||||
@@ -1404,12 +1669,15 @@
|
||||
"sidebar.menu.close_database": "关闭数据库",
|
||||
"sidebar.menu.browse_view_data": "浏览视图数据",
|
||||
"sidebar.menu.view_definition": "视图定义",
|
||||
"sidebar.menu.browse_materialized_view_data": "浏览物化视图数据",
|
||||
"sidebar.menu.materialized_view_definition": "物化视图定义",
|
||||
"sidebar.menu.view_object_definition": "查看定义",
|
||||
"sidebar.menu.edit_view": "编辑视图",
|
||||
"sidebar.menu.rename_view": "重命名视图",
|
||||
"sidebar.menu.delete_view": "删除视图",
|
||||
"sidebar.menu.view_routine_definition": "视图例程定义",
|
||||
"sidebar.menu.edit_definition": "编辑定义",
|
||||
"sidebar.menu.delete_routine": "删除例程 {{type}}",
|
||||
"sidebar.menu.delete_routine": "删除{{type}}",
|
||||
"sidebar.menu.design_table": "设计表",
|
||||
"sidebar.menu.copy_table_structure": "复制表结构",
|
||||
"sidebar.menu.backup_table_sql": "备份表(SQL)",
|
||||
@@ -1430,6 +1698,15 @@
|
||||
"sidebar.menu.refresh_directory": "刷新目录",
|
||||
"sidebar.menu.remove_directory": "移除目录",
|
||||
"sidebar.menu.open_sql_file": "打开 SQL 文件",
|
||||
"sidebar.menu.new_sql_file": "新建 SQL 文件",
|
||||
"sidebar.menu.new_sql_directory": "新建目录",
|
||||
"sidebar.menu.rename_sql_directory": "重命名目录",
|
||||
"sidebar.menu.delete_local_directory": "删除本地目录",
|
||||
"sidebar.menu.delete_sql_directory": "删除目录",
|
||||
"sidebar.menu.rename_sql_file": "重命名 SQL 文件",
|
||||
"sidebar.menu.new_sql_file_in_directory": "在此目录新建 SQL 文件",
|
||||
"sidebar.menu.new_sql_directory_in_directory": "在此目录新建目录",
|
||||
"sidebar.menu.delete_sql_file": "删除 SQL 文件",
|
||||
"sidebar.batch.group.tables": "表",
|
||||
"sidebar.batch.group.views": "视图",
|
||||
"sidebar.batch.no_matching_objects": "无匹配对象",
|
||||
@@ -1443,6 +1720,22 @@
|
||||
"connection_modal.network.ssl_mode.skip_verify": "跳过验证",
|
||||
"sidebar.external_sql.root": "外部 SQL 文件",
|
||||
"sidebar.external_sql.directory_fallback": "SQL 目录",
|
||||
"sidebar.external_sql_modal.title.create_file": "新建 SQL 文件",
|
||||
"sidebar.external_sql_modal.title.rename_file": "重命名 SQL 文件",
|
||||
"sidebar.external_sql_modal.title.create_directory": "新建目录",
|
||||
"sidebar.external_sql_modal.title.rename_directory": "重命名目录",
|
||||
"sidebar.external_sql_modal.action.create": "新建",
|
||||
"sidebar.external_sql_modal.action.rename": "重命名",
|
||||
"sidebar.external_sql_modal.field.directory_name": "目录名",
|
||||
"sidebar.external_sql_modal.field.sql_file_name": "SQL 文件名",
|
||||
"sidebar.external_sql_modal.validation.directory_name_required": "请输入目录名",
|
||||
"sidebar.external_sql_modal.validation.sql_file_name_required": "请输入 SQL 文件名",
|
||||
"sidebar.external_sql_modal.validation.directory_name_no_separator": "目录名不能包含路径分隔符",
|
||||
"sidebar.external_sql_modal.validation.sql_file_name_no_separator": "文件名不能包含路径分隔符",
|
||||
"sidebar.external_sql_modal.help.directory": "目录只会显示在外部 SQL 目录树中,非 SQL 文件仍不会显示",
|
||||
"sidebar.external_sql_modal.help.sql_file": "不输入 .sql 后缀时会自动补齐",
|
||||
"sidebar.external_sql_modal.placeholder.directory_name": "例如:reports",
|
||||
"sidebar.external_sql_modal.placeholder.sql_file_name": "例如:report.sql",
|
||||
"sidebar.jvm.action.monitoring": "持续监控",
|
||||
"sidebar.jvm.action.diagnostic": "诊断增强",
|
||||
"sidebar.jvm.tab.overview": "JVM 概览",
|
||||
@@ -1881,14 +2174,34 @@
|
||||
"query_editor.action.ai_explain_sql_menu": "解释 SQL",
|
||||
"query_editor.action.ai_optimize_sql_menu": "优化 SQL",
|
||||
"query_editor.action.ai_schema_analysis": "Schema 分析",
|
||||
"query_editor.action.show_results_panel": "显示结果区",
|
||||
"query_editor.action.hide_results_panel": "隐藏结果区",
|
||||
"query_editor.action.show_results_panel_with_shortcut": "显示结果区({{shortcut}})",
|
||||
"query_editor.action.hide_results_panel_with_shortcut": "隐藏结果区({{shortcut}})",
|
||||
"query_editor.action.results": "结果",
|
||||
"query_editor.transaction.delay.immediate": "立即",
|
||||
"query_editor.transaction.mode.tooltip": "参考 DBeaver:SQL 编辑器执行 INSERT/UPDATE/DELETE/MERGE/REPLACE 等 DML 时先进入 GoNavi 托管事务;手动提交需要手动提交/回滚,自动提交会在执行成功后自动 COMMIT。",
|
||||
"query_editor.transaction.mode.manual": "手动",
|
||||
"query_editor.transaction.mode.auto": "自动",
|
||||
"query_editor.transaction.status.auto_commit_countdown": "{{seconds}}s 后自动提交",
|
||||
"query_editor.transaction.status.auto_committing": "自动提交中",
|
||||
"query_editor.transaction.action.commit": "提交",
|
||||
"query_editor.transaction.action.commit_with_count": "提交 ({{count}})",
|
||||
"query_editor.transaction.action.rollback": "回滚",
|
||||
"query_editor.transaction.message.pending_managed_transaction": "当前 SQL 编辑器已有未提交事务,请先提交或回滚后再执行新的增删改语句。",
|
||||
"query_editor.action.show_object_info": "查看对象信息",
|
||||
"query_editor.action.rename_query": "重命名查询",
|
||||
"query_editor.action.export_sql_file": "导出 SQL 文件",
|
||||
"query_editor.format.keyword_upper": "关键字大写",
|
||||
"query_editor.format.keyword_lower": "关键字小写",
|
||||
"query_editor.format.restore_last_format": "还原上次美化",
|
||||
"query_editor.format.snippet_settings": "代码片段管理...",
|
||||
"query_editor.format.shortcut_settings": "快捷键管理...",
|
||||
"query_editor.message.format_failed": "格式化失败:SQL 语法可能有误。",
|
||||
"query_editor.message.no_format_restore_snapshot": "没有可还原的美化前 SQL",
|
||||
"query_editor.message.format_restore_success": "已还原到美化前 SQL",
|
||||
"query_editor.message.page_query_failed": "翻页失败:{{error}}",
|
||||
"query_editor.message.page_query_empty": "翻页未返回结果集",
|
||||
"query_editor.message.refresh_failed": "刷新失败:{{error}}",
|
||||
"query_editor.message.select_database_first": "请先选择数据库。",
|
||||
"query_editor.message.connection_not_found": "未找到连接。",
|
||||
@@ -1906,6 +2219,7 @@
|
||||
"query_editor.message.read_only_no_safe_locator": "未检测到主键或可用唯一索引,无法安全提交修改。",
|
||||
"query_editor.message.read_only_index_metadata_unavailable": "无法加载唯一索引元数据,无法安全提交修改。",
|
||||
"query_editor.message.read_only_table_locator_metadata_unavailable": "无法加载 {{table}} 的主键/唯一索引元数据,无法安全提交修改。",
|
||||
"query_editor.message.read_only_system_metadata": "系统元数据查询结果保持只读。",
|
||||
"query_editor.message.read_only_oracle_rowid_injection_unavailable": "Oracle 查询使用 * 时无法自动注入 ROWID 定位列,已保持只读。",
|
||||
"query_editor.message.read_only_warning_with_detail": "查询结果保持只读:{{detail}}",
|
||||
"query_editor.message.object_info_target_not_found": "当前光标未定位到可识别的表或字段。",
|
||||
@@ -1914,6 +2228,7 @@
|
||||
"query_editor.message.saved": "查询已保存。",
|
||||
"query_editor.message.sql_file_saved": "SQL 文件已保存。",
|
||||
"query_editor.message.save_sql_file_failed": "保存 SQL 文件失败:{{error}}",
|
||||
"query_editor.message.save_query_failed": "保存查询失败:{{error}}",
|
||||
"query_editor.message.export_sql_file_success": "SQL 文件已导出。",
|
||||
"query_editor.message.export_sql_file_failed": "导出 SQL 文件失败:{{error}}",
|
||||
"query_editor.message.save_first_before_rename": "请先保存查询后再重命名。",
|
||||
@@ -1927,6 +2242,18 @@
|
||||
"query_editor.result.affected_rows": "影响行数:{{count}}",
|
||||
"query_editor.result.execution_failed": "执行失败",
|
||||
"query_editor.result.ai_diagnose": "一键 AI 诊断",
|
||||
"query_editor.results_panel.tooltip.hide": "隐藏结果区",
|
||||
"query_editor.results_panel.tooltip.hide_with_shortcut": "隐藏结果区({{shortcut}})",
|
||||
"query_editor.results_panel.menu.close_other": "关闭其他页",
|
||||
"query_editor.results_panel.menu.close_left": "关闭左侧",
|
||||
"query_editor.results_panel.menu.close_right": "关闭右侧",
|
||||
"query_editor.results_panel.menu.close_all": "关闭所有",
|
||||
"query_editor.results_panel.action.hide": "隐藏",
|
||||
"query_editor.results_panel.aria.hide": "隐藏结果区",
|
||||
"query_editor.results_panel.tab.message": "消息 {{index}}",
|
||||
"query_editor.results_panel.tab.result": "结果 {{index}}",
|
||||
"query_editor.results_panel.message.title": "执行消息",
|
||||
"query_editor.results_panel.panel.title": "结果区",
|
||||
"query_editor.save_modal.title": "保存查询",
|
||||
"query_editor.save_modal.rename_title": "重命名查询",
|
||||
"query_editor.save_modal.rename_ok": "重命名",
|
||||
@@ -2175,6 +2502,7 @@
|
||||
"data_grid.context_menu.edit_section": "编辑",
|
||||
"data_grid.context_menu.edit_row": "编辑此行",
|
||||
"data_grid.context_menu.copy_row_as_new": "复制本行为新增行",
|
||||
"data_grid.context_menu.undo_cell_change": "撤销此单元格修改",
|
||||
"data_grid.context_menu.export_as_csv": "导出为 CSV",
|
||||
"data_grid.context_menu.export_as_excel": "导出为 Excel",
|
||||
"data_grid.context_menu.export_as_html": "导出为 HTML",
|
||||
@@ -2210,6 +2538,7 @@
|
||||
"data_grid.error_boundary.title": "渲染错误",
|
||||
"data_grid.export.all_data": "导出全部数据",
|
||||
"data_grid.export.all_rows": "导出全部行({{count}} 行)",
|
||||
"data_grid.export.all_rows_requery": "导出全部(重新查询)",
|
||||
"data_grid.export.current_page": "导出当前页({{count}} 行)",
|
||||
"data_grid.export.current_page_rows": "导出当前页({{count}} 行)",
|
||||
"data_grid.export.group_filtered_results": "筛选结果",
|
||||
@@ -2284,7 +2613,12 @@
|
||||
"data_grid.message.column_quick_find_not_found": "未找到字段列:{{query}}",
|
||||
"data_grid.message.column_quick_find_not_rendered": "字段列“{{column}}”当前未渲染,无法定位",
|
||||
"data_grid.message.column_visibility_reset": "已恢复全部列",
|
||||
"data_grid.message.auto_commit_failed": "自动提交失败:{{detail}}",
|
||||
"data_grid.message.auto_commit_success": "自动提交成功",
|
||||
"data_grid.message.commit_failed": "提交失败:{{detail}}",
|
||||
"data_grid.message.undo_added_row_hint": "新增行请使用删除选中或整表回滚撤销",
|
||||
"data_grid.message.undo_cell_original_missing": "未找到该单元格的原始数据,无法撤销",
|
||||
"data_grid.message.undo_cell_success": "已撤销单元格修改",
|
||||
"data_grid.message.copied_columns": "已复制 {{count}} 列,可粘贴到目标行。",
|
||||
"data_grid.message.copied_rows": "已复制 {{count}} 行,可作为新行粘贴。",
|
||||
"data_grid.message.copied_to_clipboard": "已复制到剪贴板",
|
||||
@@ -2473,6 +2807,8 @@
|
||||
"data_grid.secondary.er_diagram": "ER 图",
|
||||
"data_grid.secondary.jump_column": "跳列",
|
||||
"data_grid.secondary.live": "实时",
|
||||
"data_grid.secondary.object_design": "对象设计",
|
||||
"data_grid.embedded_designer.title": "设计表({{tableName}})",
|
||||
"data_grid.secondary.pending_changes": "未提交 {{count}}",
|
||||
"data_grid.secondary.row_count": "{{count}} 行",
|
||||
"data_grid.secondary.view_ddl": "查看 DDL",
|
||||
@@ -2488,6 +2824,11 @@
|
||||
"data_grid.toolbar.cell_editor": "单元格编辑",
|
||||
"data_grid.toolbar.commit": "提交事务({{count}})",
|
||||
"data_grid.toolbar.commit_label": "提交事务",
|
||||
"data_grid.toolbar.commit_delay.seconds": "{{seconds}} 秒",
|
||||
"data_grid.toolbar.commit_mode.auto": "自动提交",
|
||||
"data_grid.toolbar.commit_mode.auto_countdown": "{{seconds}}s 后提交",
|
||||
"data_grid.toolbar.commit_mode.manual": "手动提交",
|
||||
"data_grid.toolbar.commit_mode.tooltip": "控制表数据编辑后的提交方式。手动提交更安全;自动提交会在最后一次修改后按所选时间提交。",
|
||||
"data_grid.toolbar.copied_columns_count": "已复制 {{count}} 列",
|
||||
"data_grid.toolbar.copy": "复制",
|
||||
"data_grid.toolbar.copy_row": "复制行",
|
||||
@@ -2804,6 +3145,7 @@
|
||||
"redis_viewer.hint.switch_auto_to_edit": "切换到 Auto 模式后编辑",
|
||||
"redis_viewer.label.encoding": "编码:{{encoding}}",
|
||||
"redis_viewer.label.keys_count": "{{count}} 个 Key",
|
||||
"redis_viewer.label.node_count": "{{count}} 个节点",
|
||||
"redis_viewer.label.length": "长度:{{count}}",
|
||||
"redis_viewer.label.original_key": "原 Key:{{key}}",
|
||||
"redis_viewer.message.add_failed": "新增失败:{{detail}}",
|
||||
@@ -2860,6 +3202,9 @@
|
||||
"redis_viewer.placeholder.value": "值",
|
||||
"redis_viewer.search.exact": "精确",
|
||||
"redis_viewer.search.fuzzy": "模糊",
|
||||
"redis_viewer.topology.cluster": "Cluster",
|
||||
"redis_viewer.topology.sentinel": "Sentinel",
|
||||
"redis_viewer.topology.single": "单机",
|
||||
"redis_viewer.state.connection_not_found": "未找到连接",
|
||||
"redis_viewer.state.empty_selection": "选择一个 Key 查看详情",
|
||||
"redis_viewer.table.action": "操作",
|
||||
@@ -2998,6 +3343,7 @@
|
||||
"ai_chat.input.slash.sql.prompt": "请根据以下需求生成 SQL:",
|
||||
"ai_chat.input.tooltip.attach_table_context": "关联附带数据库表上下文",
|
||||
"ai_chat.input.tooltip.upload_image": "上传图片/截图",
|
||||
"ai_chat.tools.mcp_fallback_description": "{{serverName}} 提供的 MCP 工具 {{toolName}}",
|
||||
"ai_chat.composer_notice.missing_model.description": "打开下方模型下拉并选择模型;如果列表为空,请检查供应商入口和 API Key。",
|
||||
"ai_chat.composer_notice.missing_model.title": "先选择一个模型",
|
||||
"ai_chat.composer_notice.missing_provider.description": "先在 AI 设置里添加并启用一个模型供应商。",
|
||||
@@ -3244,9 +3590,47 @@
|
||||
"ai_settings.context.with_results.label": "含查询结果",
|
||||
"ai_settings.context.with_results.desc": "传递最近的查询结果作为上下文",
|
||||
"ai_settings.prompts.description": "以下为当前版本 GoNavi 预设的底层 AI 提示词(只读)。它们会被动态注入到对应场景的请求上下文中。",
|
||||
"ai_settings.prompts.message.saved": "自定义提示词已保存",
|
||||
"ai_settings.prompts.message.save_failed": "保存自定义提示词失败",
|
||||
"ai_settings.mcp_server.message.saved": "MCP 服务已保存",
|
||||
"ai_settings.mcp_server.message.save_failed": "保存 MCP 服务失败",
|
||||
"ai_settings.mcp_server.message.deleted": "MCP 服务已删除",
|
||||
"ai_settings.mcp_server.message.delete_failed": "删除 MCP 服务失败",
|
||||
"ai_settings.mcp_server.message.test_success": "MCP 服务连接成功",
|
||||
"ai_settings.mcp_server.message.test_failed": "MCP 服务测试失败",
|
||||
"ai_settings.mcp_server.message.test_request_failed": "测试 MCP 服务失败",
|
||||
"ai_settings.clipboard.error.unsupported": "当前环境不支持复制到剪贴板",
|
||||
"ai_settings.mcp_http.error.control_unsupported_runtime": "当前运行时暂不支持 MCP HTTP 服务控制",
|
||||
"ai_settings.mcp_http.error.start_unsupported_version": "当前版本暂不支持启动 MCP HTTP 服务",
|
||||
"ai_settings.mcp_http.error.stop_unsupported_version": "当前版本暂不支持停止 MCP HTTP 服务",
|
||||
"ai_settings.mcp_http.message.started": "GoNavi MCP HTTP 服务已启动",
|
||||
"ai_settings.mcp_http.message.stopped": "GoNavi MCP HTTP 服务已停止",
|
||||
"ai_settings.mcp_http.message.toggle_failed": "切换 GoNavi MCP HTTP 服务失败",
|
||||
"ai_settings.mcp_http.message.url_unavailable": "当前没有可复制的 MCP HTTP URL",
|
||||
"ai_settings.mcp_http.message.url_copied": "MCP HTTP URL 已复制",
|
||||
"ai_settings.mcp_http.message.authorization_header_required": "请先启动 MCP HTTP 服务生成 Authorization Header",
|
||||
"ai_settings.mcp_http.message.authorization_header_copied": "Authorization Header 已复制",
|
||||
"ai_settings.mcp_http.status.not_running": "GoNavi MCP HTTP 服务未启动",
|
||||
"ai_settings.skill.message.saved": "Skill 已保存",
|
||||
"ai_settings.skill.message.save_failed": "保存 Skill 失败",
|
||||
"ai_settings.skill.message.deleted": "Skill 已删除",
|
||||
"ai_settings.skill.message.delete_failed": "删除 Skill 失败",
|
||||
"ai_settings.tools.description": "AI 助手在处理数据库相关问题时,可以自动调用以下内置工具获取真实数据,全程无需人工干预。",
|
||||
"ai_settings.tools.workflow": "💡 工作流程:get_connections → get_databases → get_tables → get_columns → 生成 SQL",
|
||||
"ai_settings.tools.params_label": "参数:",
|
||||
"ai_settings.tools.builtin_tool_label": "内置工具",
|
||||
"ai_settings.tools.search.aria_label": "搜索内置工具",
|
||||
"ai_settings.tools.search.placeholder": "搜索工具、流程或参数,例如 mcp / lineLimit / allowMutating / 事务",
|
||||
"ai_settings.tools.search.clear": "清除",
|
||||
"ai_settings.tools.summary": "当前显示 {{flowVisible}}/{{flowTotal}} 条推荐流程,{{toolVisible}}/{{toolTotal}} 个内置工具。",
|
||||
"ai_settings.tools.empty.no_matches": "没有匹配的内置工具。可以改搜更宽泛的关键词,例如 mcp、日志、连接、事务、快捷键、schema。",
|
||||
"ai_settings.tools.parameters.hint_title": "参数提示",
|
||||
"ai_settings.tools.parameters.type_label": "类型:{{type}}",
|
||||
"ai_settings.tools.parameters.required": "必填",
|
||||
"ai_settings.tools.parameters.optional": "可选",
|
||||
"ai_settings.tools.parameters.enum_values": "可选值:{{values}}",
|
||||
"ai_settings.tools.parameters.default_value": "默认:{{value}}",
|
||||
"ai_settings.tools.parameters.example": "示例:",
|
||||
"ai_settings.tools.params.none": "无参数",
|
||||
"ai_settings.tools.get_connections.desc": "获取所有可用的数据库连接",
|
||||
"ai_settings.tools.get_connections.detail": "返回连接 ID、名称、类型(MySQL/PostgreSQL 等)和 Host 地址。AI 根据返回信息决定优先探索哪个连接。",
|
||||
@@ -3531,6 +3915,38 @@
|
||||
"data_sync.action.previous": "上一步",
|
||||
"data_sync.action.start_sync": "开始同步",
|
||||
"data_sync.action.view": "查看",
|
||||
"data_sync.compare_entry.action.return_to_compare": "返回比对",
|
||||
"data_sync.compare_entry.alert.data": "当前为“数据比对”入口:固定按主键分析行级差异,不执行写入。",
|
||||
"data_sync.compare_entry.alert.schema": "当前为“表结构比对”入口:固定只分析结构差异和生成可审阅 SQL,不执行变更。",
|
||||
"data_sync.compare_entry.option.auto_add_columns": "生成目标表缺失字段的兼容变更 SQL(仅预览,不执行)",
|
||||
"data_sync.compare_entry.option.source_dataset.query": "按 SQL 结果集比对",
|
||||
"data_sync.compare_entry.option.source_dataset.table": "按表比对",
|
||||
"data_sync.compare_entry.preview.selection_hint": "行选择只影响 SQL 预览范围,不会执行写入。",
|
||||
"data_sync.compare_entry.preview.sql.data_help": "SQL 预览会按当前勾选的插入、更新、删除与行选择范围生成,仅用于审核差异。",
|
||||
"data_sync.compare_entry.preview.sql.schema_help": "SQL 预览展示结构差异建议语句,仅用于审核差异。",
|
||||
"data_sync.compare_entry.result.completed": "比对完成",
|
||||
"data_sync.compare_entry.result.failed": "比对失败",
|
||||
"data_sync.compare_entry.result.running": "正在比对",
|
||||
"data_sync.compare_entry.result.running_description": "当前阶段:{{stage}}{{table}}",
|
||||
"data_sync.compare_entry.result.stage_fallback": "执行中",
|
||||
"data_sync.compare_entry.result.success_summary": "成功比对 {{tables}} 张表。",
|
||||
"data_sync.compare_entry.result.table_suffix": ",表:{{table}}",
|
||||
"data_sync.compare_entry.title.analysis_log": "分析日志",
|
||||
"data_sync.compare_entry.workflow_help": "当前入口只做差异分析和预览,不会执行同步、建表、补字段或删除数据。",
|
||||
"data_sync.entry_mode.compare.action.start": "开始比对",
|
||||
"data_sync.entry_mode.compare.option_title": "比对选项",
|
||||
"data_sync.entry_mode.compare.result_title": "比对结果",
|
||||
"data_sync.entry_mode.data_compare.badge": "数据比对",
|
||||
"data_sync.entry_mode.data_compare.description": "按主键对比源表与目标表的数据差异,查看新增、更新和删除明细。",
|
||||
"data_sync.entry_mode.data_compare.hero_description": "适合核对两端数据一致性,只做差异分析与行级预览,不执行写入。",
|
||||
"data_sync.entry_mode.data_compare.table_select_label": "请选择需要比对数据的表:",
|
||||
"data_sync.entry_mode.data_compare.title": "数据比对",
|
||||
"data_sync.entry_mode.schema_compare.badge": "结构比对",
|
||||
"data_sync.entry_mode.schema_compare.description": "按源表与目标表生成结构差异、兼容风险和可审阅 SQL。",
|
||||
"data_sync.entry_mode.schema_compare.hero_description": "适合发布前核对两端表结构差异,只做分析与预览,不执行结构变更。",
|
||||
"data_sync.entry_mode.schema_compare.table_select_label": "请选择需要比对结构的表:",
|
||||
"data_sync.entry_mode.schema_compare.title": "表结构比对",
|
||||
"data_sync.entry_mode.sync.hero_description": "适合目标表已存在的场景,先做差异分析,再按勾选执行插入、更新或删除。",
|
||||
"data_sync.alert.auto_create_scope": "自动建表当前仅支持 MySQL 到 Kingbase。会迁移字段、主键、普通索引、唯一索引和联合索引,并明确跳过全文、空间、前缀和函数类索引。",
|
||||
"data_sync.alert.auto_create_planner_scope": "自动建表当前仅支持 MySQL 到 Kingbase。会迁移字段、主键、普通索引、唯一索引和联合索引,并明确跳过全文、空间、前缀和函数类索引。",
|
||||
"data_sync.alert.existing_target_only": "数据同步默认使用已有目标表执行。需要跨数据源建表并导入时,请切换到跨库迁移。",
|
||||
@@ -4383,6 +4799,11 @@
|
||||
"app.theme.font_family.loading_ui_hint": "按当前系统实时加载已安装字体,支持输入搜索匹配。清空后回退默认 UI 字体。",
|
||||
"app.theme.font_family.mono_fallback_hint": "当前已回退常见代码字体预置。作用于 SQL 编辑器、AI 代码块、日志、DDL 与数据表等宽内容。",
|
||||
"app.theme.font_family.mono_hint": "优先展示当前系统已安装字体,名称接近 Mono/Code/Console 的字体会靠前。作用于 SQL 编辑器、AI 代码块、日志、DDL 与数据表等宽内容。",
|
||||
"app.theme.font_family.linux_cjk_install_prefix": "Ubuntu/Linux 未检测到中文 CJK 字体,界面可能显示方框。请安装:",
|
||||
"app.theme.font_family.linux_cjk_install_suffix": ",然后重启 GoNavi。",
|
||||
"app.linux_cjk_font_banner.title": "Linux CJK 字体缺失",
|
||||
"app.linux_cjk_font_banner.description": "中文可能显示为方框。请安装字体后重启 GoNavi:",
|
||||
"app.linux_cjk_font_banner.action.open_font_settings": "字体设置",
|
||||
"app.theme.data_table.density": "表格密度",
|
||||
"app.theme.data_table.density.comfortable": "舒适",
|
||||
"app.theme.data_table.density.standard": "标准",
|
||||
|
||||
@@ -470,6 +470,35 @@
|
||||
"app.theme.ui_version.legacy.description": "目前穩定介面,所有功能皆可完整使用。",
|
||||
"app.theme.ui_version.legacy.label": "舊版 UI",
|
||||
"app.theme.ui_version.platform_hint": "Windows、macOS 與 Linux 均可切換;切換後會立即生效,部分彈窗會在下次開啟時使用新樣式。",
|
||||
"app.theme.ui_version.sidebar_search.command": "新版命令搜尋",
|
||||
"app.theme.ui_version.sidebar_search.filter": "舊版側欄篩選",
|
||||
"app.theme.ui_version.sidebar_search.hint": "新版命令搜尋適合跳轉連線、資料表與動作,可在面板中開啟同步開關持續篩選左側樹;舊版側欄篩選會直接顯示輸入框並持久保留篩選內容。",
|
||||
"app.theme.ui_version.sidebar_search.title": "新版左側搜尋模式",
|
||||
"app.theme.tab_display.title": "Tab 標籤顯示",
|
||||
"app.theme.tab_display.description": "自訂連線名稱、物件類型、物件名稱、資料庫、Schema 與 Host/IP 的顯示順序;雙行模式可把上下文放到副行。",
|
||||
"app.theme.tab_display.layout.single": "單行",
|
||||
"app.theme.tab_display.layout.double": "雙行",
|
||||
"app.theme.tab_display.badge.current": "目前",
|
||||
"app.theme.tab_display.row.primary": "主行",
|
||||
"app.theme.tab_display.row.secondary": "副行",
|
||||
"app.theme.tab_display.action.move_up": "上移",
|
||||
"app.theme.tab_display.action.move_down": "下移",
|
||||
"app.theme.tab_display.preview.prefix": "目前預覽:",
|
||||
"app.theme.tab_display.preview.default_label": "預設標籤",
|
||||
"app.theme.tab_display.preview.secondary": ",副行 {{labels}}",
|
||||
"app.theme.tab_display.preview.focused": ";目前選取 {{label}}",
|
||||
"app.theme.tab_display.element.connection.label": "連線名稱",
|
||||
"app.theme.tab_display.element.connection.description": "連線簡稱或環境名稱,例如 DEV",
|
||||
"app.theme.tab_display.element.kind.label": "物件類型",
|
||||
"app.theme.tab_display.element.kind.description": "SQL / TABLE / VIEW 等類型標籤",
|
||||
"app.theme.tab_display.element.object.label": "物件名稱",
|
||||
"app.theme.tab_display.element.object.description": "資料表名稱、查詢名稱、資源名稱等核心名稱",
|
||||
"app.theme.tab_display.element.database.label": "資料庫",
|
||||
"app.theme.tab_display.element.database.description": "目前 DB / catalog 名稱",
|
||||
"app.theme.tab_display.element.schema.label": "Schema",
|
||||
"app.theme.tab_display.element.schema.description": "schema / owner 前綴",
|
||||
"app.theme.tab_display.element.host.label": "Host/IP",
|
||||
"app.theme.tab_display.element.host.description": "連線目標位址摘要",
|
||||
"app.theme.ui_version.title": "介面版本",
|
||||
"app.theme.ui_version.v2.badge": "Beta",
|
||||
"app.theme.ui_version.v2.description": "重新設計的緊湊介面,強化 AI 入口與資料表概覽。",
|
||||
@@ -493,6 +522,10 @@
|
||||
"app.window_zoom.message.windows_only": "此功能僅在 Windows 平台生效",
|
||||
"app.tools.entry.shortcuts.description": "檢視並調整全域快捷鍵綁定。",
|
||||
"app.tools.entry.shortcuts.title": "快捷鍵管理",
|
||||
"app.tools.entry.schema_compare.description": "對比來源表與目標表的結構差異,只預覽不執行。",
|
||||
"app.tools.entry.schema_compare.title": "表結構比對",
|
||||
"app.tools.entry.data_compare.description": "依主鍵分析新增、更新、刪除與相同行。",
|
||||
"app.tools.entry.data_compare.title": "資料比對",
|
||||
"app.tools.entry.sync.description": "进入跨源同步工作流。",
|
||||
"app.tools.entry.sync.title": "資料同步",
|
||||
"app.tools.title": "工具中心",
|
||||
@@ -527,6 +560,18 @@
|
||||
"app.browser_mock.export_sql_unsupported": "瀏覽器 mock 不支援 SQL 檔案匯出",
|
||||
"app.browser_mock.import_connection_package_unsupported": "瀏覽器 mock 不支援恢復包匯入,僅支援歷史 JSON 連線陣列",
|
||||
"app.browser_mock.export_connection_package_unsupported": "瀏覽器 mock 不支援恢復包匯出",
|
||||
"app.browser_mock.mcp_http.not_running": "GoNavi MCP HTTP 服務未啟動",
|
||||
"app.browser_mock.mcp_http.started": "GoNavi MCP HTTP 服務已啟動",
|
||||
"app.browser_mock.mcp_http.stopped": "GoNavi MCP HTTP 服務已停止",
|
||||
"app.browser_mock.mcp_server.command_required": "MCP 命令不能為空",
|
||||
"app.browser_mock.mcp_server.test_success": "MCP mock 測試成功",
|
||||
"app.browser_mock.mcp_tool.unavailable": "瀏覽器 mock 未接入真實 MCP 服務",
|
||||
"app.browser_mock.mcp_client.claude_code.installed": "已寫入 Claude Code 使用者層級 MCP 設定,重新啟動 Claude CLI 後可在 /mcp 的 User MCPs 中看到 GoNavi。",
|
||||
"app.browser_mock.mcp_client.claude_code.not_detected": "未偵測到 Claude Code 使用者層級 GoNavi MCP 設定",
|
||||
"app.browser_mock.mcp_client.codex.installed": "已寫入 Codex 使用者層級 MCP 設定,重新啟動 Codex CLI 或桌面端後可看到 GoNavi。",
|
||||
"app.browser_mock.mcp_client.codex.path_mismatch": "已偵測到 Codex 中的 GoNavi MCP 記錄,但與目前 GoNavi 安裝路徑不一致,建議更新",
|
||||
"app.browser_mock.provider.test_failed_detail": "連線測試失敗:{{detail}}",
|
||||
"app.browser_mock.provider.test_success": "端點連通性測試成功",
|
||||
"app.update.action.hide_to_background": "隐藏到背景",
|
||||
"app.update.action.install_update": "安裝更新",
|
||||
"app.update.action.open_install_directory": "開啟安裝目錄",
|
||||
@@ -596,7 +641,66 @@
|
||||
"query.new": "新增查詢",
|
||||
"query.run": "執行",
|
||||
"query.save": "儲存查詢",
|
||||
"saved_query.default_name": "查詢-{{index}}",
|
||||
"query.stop": "停止",
|
||||
"message_publish_modal.title": "測試傳送訊息",
|
||||
"message_publish_modal.title_with_connection": "測試傳送訊息 · {{connectionName}}",
|
||||
"message_publish_modal.action.send": "傳送",
|
||||
"message_publish_modal.error.build_command_failed": "建構傳送命令失敗",
|
||||
"message_publish_modal.error.send_failed_detail": "傳送失敗:{{detail}}",
|
||||
"message_publish_modal.error.unknown_error": "未知錯誤",
|
||||
"message_publish_modal.field.exchange.label": "Exchange(可選)",
|
||||
"message_publish_modal.field.exchange.extra": "留空會使用預設交換機;若填寫自訂交換機,請確認目標 Queue 已建立 binding。",
|
||||
"message_publish_modal.field.exchange.placeholder": "例如:events.topic",
|
||||
"message_publish_modal.field.routing_key.label": "Routing Key(可選)",
|
||||
"message_publish_modal.field.routing_key.extra": "留空時預設使用目前 Queue 名稱。",
|
||||
"message_publish_modal.field.routing_key.placeholder": "例如:orders.queue",
|
||||
"message_publish_modal.field.qos.extra": "0 為 at most once,1 為 at least once,2 為 exactly once。",
|
||||
"message_publish_modal.field.retain.label": "Retain 訊息",
|
||||
"message_publish_modal.field.tag.label": "Tag(可選)",
|
||||
"message_publish_modal.field.tag.extra": "留空表示不篩選或不寫入 Tag。",
|
||||
"message_publish_modal.field.delay_level.label": "Delay Level(可選)",
|
||||
"message_publish_modal.field.delay_level.extra": "RocketMQ 使用固定延時級別,0 表示立即傳送。",
|
||||
"message_publish_modal.field.body_mode.label": "訊息體類型",
|
||||
"message_publish_modal.field.body.label": "訊息體",
|
||||
"message_publish_modal.field.body.required": "請輸入訊息體",
|
||||
"message_publish_modal.field.body.extra": "JSON 模式下需輸入合法 JSON;文字模式會按原樣傳送。",
|
||||
"message_publish_modal.field.body.placeholder": "請輸入訊息體",
|
||||
"message_publish_modal.field.headers.label": "Headers(可選)",
|
||||
"message_publish_modal.field.headers.extra": "需為 JSON 物件,例如 {{example}}。",
|
||||
"message_publish_modal.field.properties.label": "Properties(可選)",
|
||||
"message_publish_modal.field.properties.extra": "需為 JSON 物件,例如 {{example}}。",
|
||||
"message_publish_modal.option.no_delay": "不延時",
|
||||
"message_publish_modal.option.text": "文字",
|
||||
"message_publish_modal.footer.success_prefix": "傳送成功後會返回",
|
||||
"message_publish_modal.footer.success_suffix": ",用於確認本次測試訊息是否已提交。",
|
||||
"message_publish.field.body": "訊息體",
|
||||
"message_publish.field.message_key": "訊息 Key",
|
||||
"message_publish.error.destination_required": "請輸入目標 Topic / Queue",
|
||||
"message_publish.error.required_field": "請輸入{{field}}",
|
||||
"message_publish.error.invalid_json_detail": "{{field}}不是合法 JSON:{{detail}}",
|
||||
"message_publish.error.json_object_required": "{{field}} 必須是 JSON 物件",
|
||||
"message_publish.error.mqtt_wildcard_topic": "MQTT 傳送 Topic 不能包含 + 或 # 萬用字元",
|
||||
"message_publish.error.unsupported_type": "目前資料來源暫不支援測試傳送訊息:{{type}}",
|
||||
"message_publish.presentation.rabbitmq.destination_placeholder": "例如:orders.queue",
|
||||
"message_publish.presentation.rabbitmq.destination_required": "請輸入 Queue",
|
||||
"message_publish.presentation.rabbitmq.alert": "目前表單會自動組裝 RabbitMQ publish JSON 命令,並透過 Management API 執行測試傳送。",
|
||||
"message_publish.presentation.rabbitmq.success_hint": "Exchange 留空時會使用預設交換機,並以 Queue 名稱作為 routing key。",
|
||||
"message_publish.presentation.rocketmq.destination_placeholder": "例如:orders.events",
|
||||
"message_publish.presentation.topic_required": "請輸入 Topic",
|
||||
"message_publish.presentation.rocketmq.alert": "目前表單會自動組裝 RocketMQ publish JSON 命令,並透過 NameServer/Broker 執行測試傳送。",
|
||||
"message_publish.presentation.rocketmq.success_hint": "Tag、Keys、Delay Level 與 Properties 會一併寫入 RocketMQ 訊息屬性。",
|
||||
"message_publish.presentation.keys_label": "訊息 Keys(可選)",
|
||||
"message_publish.presentation.rocketmq.key_placeholder": "可輸入多個 Key,使用逗號分隔",
|
||||
"message_publish.presentation.rocketmq.tag_placeholder": "例如:TagA",
|
||||
"message_publish.presentation.mqtt.destination_placeholder": "例如:devices/device-001/telemetry",
|
||||
"message_publish.presentation.mqtt.alert": "目前表單會自動組裝 MQTT publish JSON 命令,並直接透過 broker 執行測試傳送。",
|
||||
"message_publish.presentation.mqtt.success_hint": "QoS 與 retain 可分別指定;未填寫時沿用目前連線中的預設參數。",
|
||||
"message_publish.presentation.kafka.destination_placeholder": "例如:orders.events",
|
||||
"message_publish.presentation.kafka.alert": "目前表單會自動組裝 Kafka publish JSON 命令,並直接呼叫後端執行測試傳送。",
|
||||
"message_publish.presentation.kafka.success_hint": "Headers 會作為 Kafka Record Headers 一併傳送。",
|
||||
"message_publish.presentation.key_label": "訊息 Key(可選)",
|
||||
"message_publish.presentation.kafka.key_placeholder": "可留空;JSON 模式請輸入一行合法 JSON",
|
||||
"connection_modal.action.browse": "瀏覽...",
|
||||
"connection_modal.action.disable": "停用",
|
||||
"connection_modal.action.discover_members": "自動探索成員",
|
||||
@@ -644,6 +748,7 @@
|
||||
"connection_modal.field.tunnel_password_optional": "HTTP Tunnel 密碼(選填)",
|
||||
"connection_modal.field.tunnel_username_optional": "HTTP Tunnel 使用者名稱(選填)",
|
||||
"connection_modal.field.username": "使用者名稱",
|
||||
"connection_modal.field.username.optional_placeholder": "未啟用認證可留空",
|
||||
"connection_modal.help.additional_hosts": "可選 MongoDB 成員,使用逗號、分號或空格分隔。",
|
||||
"connection_modal.help.additional_srv_hosts": "可選的附加 SRV 主機,用於 MongoDB 探索。",
|
||||
"connection_modal.help.connection_timeout": "用於連線測試與中繼資料載入,範圍 1-300 秒。",
|
||||
@@ -707,6 +812,66 @@
|
||||
"connection_modal.jvm.read_only_first": "優先唯讀操作",
|
||||
"connection_modal.jvm.security_policy": "安全策略",
|
||||
"connection_modal.message.srv_with_ssh_dns_warning": "SRV 與 SSH Tunnel 同時啟用時可能依賴本機 DNS 解析;若解析失敗,請改用標準主機清單。",
|
||||
"connection_modal.messageQueue.kafka.defaultTopic.label": "預設 Topic(可選)",
|
||||
"connection_modal.messageQueue.kafka.defaultTopic.help": "留空時必須在 SQL 中明確指定 Topic;填寫後可直接執行 SHOW、CONSUME 或 SELECT 預覽。",
|
||||
"connection_modal.messageQueue.kafka.defaultTopic.placeholder": "例如:orders.events",
|
||||
"connection_modal.messageQueue.rocketmq.defaultTopic.label": "預設 Topic(可選)",
|
||||
"connection_modal.messageQueue.rocketmq.defaultTopic.help": "留空時必須在 SQL 中明確指定 Topic;連線參數可繼續補充 groupId、namespace、tag、pullBatchSize 與 startOffset。",
|
||||
"connection_modal.messageQueue.rocketmq.defaultTopic.placeholder": "例如:orders.events",
|
||||
"connection_modal.messageQueue.mqtt.defaultTopicFilter.label": "預設 Topic / Filter(可選)",
|
||||
"connection_modal.messageQueue.mqtt.defaultTopicFilter.help": "留空時必須在 SQL 中明確指定 Topic;填寫後可直接執行 SHOW、CONSUME 或 SELECT 預覽。支援使用 /、+、#。",
|
||||
"connection_modal.messageQueue.mqtt.defaultTopicFilter.placeholder": "例如:devices/+/telemetry",
|
||||
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.label": "預設 Virtual Host(可選)",
|
||||
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.help": "留空預設使用 /;填寫後查詢編輯器會以目前 vhost 作為 Queue 瀏覽與測試傳送上下文。",
|
||||
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.placeholder": "例如:/ 或 orders-vhost",
|
||||
"connection_modal.messageQueue.topology.cluster.label": "叢集模式",
|
||||
"connection_modal.messageQueue.kafka.topology.single.label": "單 Broker",
|
||||
"connection_modal.messageQueue.kafka.topology.single.description": "只設定一個 bootstrap broker,適合本機或簡單環境。",
|
||||
"connection_modal.messageQueue.kafka.topology.cluster.description": "設定多個 bootstrap broker,提高發現與故障切換成功率。",
|
||||
"connection_modal.messageQueue.rocketmq.topology.single.label": "單 NameServer",
|
||||
"connection_modal.messageQueue.rocketmq.topology.single.description": "只設定一個 NameServer,適合本機或簡單環境。",
|
||||
"connection_modal.messageQueue.rocketmq.topology.cluster.description": "設定多個 NameServer,提高路由發現與故障切換成功率。",
|
||||
"connection_modal.messageQueue.mqtt.topology.single.label": "單 Broker",
|
||||
"connection_modal.messageQueue.mqtt.topology.single.description": "只設定一個 broker,適合本機或簡單環境。",
|
||||
"connection_modal.messageQueue.mqtt.topology.cluster.description": "設定多個 broker,提高連線發現與故障切換成功率。",
|
||||
"connection_modal.messageQueue.kafka.extraBrokers.label": "額外 Broker 位址",
|
||||
"connection_modal.messageQueue.kafka.extraBrokers.help": "可輸入多個 broker 位址,格式:host:port(按 Enter 確認)",
|
||||
"connection_modal.messageQueue.kafka.extraBrokers.placeholder": "例如:10.10.0.12:9092、10.10.0.13:9092",
|
||||
"connection_modal.messageQueue.rocketmq.extraNameServers.label": "額外 NameServer 位址",
|
||||
"connection_modal.messageQueue.rocketmq.extraNameServers.help": "可輸入多個 NameServer 位址,格式:host:port(按 Enter 確認)",
|
||||
"connection_modal.messageQueue.rocketmq.extraNameServers.placeholder": "例如:10.10.0.12:9876、10.10.0.13:9876",
|
||||
"connection_modal.messageQueue.mqtt.extraBrokers.label": "額外 Broker 位址",
|
||||
"connection_modal.messageQueue.mqtt.extraBrokers.help": "可輸入多個 broker 位址,格式:host:port(按 Enter 確認)",
|
||||
"connection_modal.messageQueue.mqtt.extraBrokers.placeholder": "例如:10.10.0.12:1883、10.10.0.13:1883",
|
||||
"connection_modal.redis.topology.single.label": "單機模式",
|
||||
"connection_modal.redis.topology.single.description": "只連線一個 Redis 節點。",
|
||||
"connection_modal.redis.topology.cluster.label": "叢集模式",
|
||||
"connection_modal.redis.topology.cluster.description": "Redis Cluster,設定多個種子節點。",
|
||||
"connection_modal.redis.topology.sentinel.label": "Sentinel 模式",
|
||||
"connection_modal.redis.topology.sentinel.description": "透過 Sentinel 發現主節點,適合主從高可用。",
|
||||
"connection_modal.redis.hosts.sentinel.label": "Sentinel 附加節點位址",
|
||||
"connection_modal.redis.hosts.sentinel.help": "上方主機位址會作為第一個 Sentinel;這裡填寫其他 Sentinel 節點,格式:host:port",
|
||||
"connection_modal.redis.hosts.sentinel.placeholder": "例如:10.10.0.12:26379、10.10.0.13:26379",
|
||||
"connection_modal.redis.hosts.cluster.label": "叢集附加節點位址",
|
||||
"connection_modal.redis.hosts.cluster.help": "主節點使用上方主機位址;這裡填寫其他種子節點,格式:host:port",
|
||||
"connection_modal.redis.hosts.cluster.placeholder": "例如:10.10.0.12:6379、10.10.0.13:6379",
|
||||
"connection_modal.redis.sentinel.master.label": "Sentinel master 名稱",
|
||||
"connection_modal.redis.sentinel.master.help": "填寫 Sentinel 設定中的 monitor 名稱,例如 mymaster。",
|
||||
"connection_modal.redis.sentinel.master.required": "請輸入 Sentinel master 名稱",
|
||||
"connection_modal.redis.sentinel.master.placeholder": "例如:mymaster",
|
||||
"connection_modal.redis.credentials.primary.label": "密碼 (可選)",
|
||||
"connection_modal.redis.credentials.primary.placeholder.empty": "Redis 密碼(如果設定了 requirepass)",
|
||||
"connection_modal.redis.credentials.primary.placeholder.retained": "已儲存 Redis 密碼",
|
||||
"connection_modal.redis.credentials.sentinelUser.label": "Sentinel 使用者名稱(可選)",
|
||||
"connection_modal.redis.credentials.sentinelUser.placeholder": "留空表示 Sentinel 不使用 ACL 使用者名稱",
|
||||
"connection_modal.redis.credentials.sentinelPassword.label": "Sentinel 密碼(可選)",
|
||||
"connection_modal.redis.credentials.sentinelPassword.placeholder.empty": "Sentinel 自身認證密碼,留空則不傳送",
|
||||
"connection_modal.redis.credentials.sentinelPassword.placeholder.retained": "已儲存 Sentinel 密碼",
|
||||
"connection_modal.redis.credentials.sentinelPassword.clear": "清除已儲存 Sentinel 密碼",
|
||||
"connection_modal.redis.credentials.sentinelPassword.description": "目前已儲存 Sentinel 密碼。留空表示繼續沿用,輸入新值表示替換。",
|
||||
"connection_modal.redis.databaseScope.label": "顯示資料庫 (留空顯示全部)",
|
||||
"connection_modal.redis.databaseScope.help": "連線測試成功後可選擇",
|
||||
"connection_modal.redis.databaseScope.placeholder": "選擇顯示的資料庫",
|
||||
"connection_modal.mongodb.auth.auto": "自動",
|
||||
"connection_modal.mongodb.auth.auto_description": "由驅動自動選擇認證機制。",
|
||||
"connection_modal.mongodb.auth.aws_iam_description": "使用 AWS IAM 認證,請在執行環境中提供 AWS IAM 憑據。",
|
||||
@@ -715,6 +880,35 @@
|
||||
"connection_modal.mongodb.auth.scram_sha1_description": "使用 SCRAM-SHA-1 認證。",
|
||||
"connection_modal.mongodb.auth.scram_sha256_description": "使用 SCRAM-SHA-256 認證。",
|
||||
"connection_modal.mongodb.auth_mechanism": "認證機制",
|
||||
"connection_modal.mongodb.topology.single.label": "單機模式",
|
||||
"connection_modal.mongodb.topology.replica.label": "副本集 / 多節點",
|
||||
"connection_modal.mongodb.discovery.standard.label": "標準位址",
|
||||
"connection_modal.mongodb.discovery.standard.description": "使用 host:port 直連或副本集節點清單。",
|
||||
"connection_modal.mongodb.discovery.srv.label": "SRV 位址",
|
||||
"connection_modal.mongodb.discovery.srv.description": "使用 mongodb+srv,由 DNS 探索目標節點。",
|
||||
"connection_modal.mongodb.discovery.current": "目前",
|
||||
"connection_modal.mongodb.discovery.srv_ssh_warning": "SRV 與 SSH Tunnel 同時啟用時,可能依賴本機 DNS 解析能力",
|
||||
"connection_modal.mongodb.replica.hosts.srv.label": "附加 SRV 主機(可選)",
|
||||
"connection_modal.mongodb.replica.hosts.srv.help": "可輸入多個候選主機名稱,格式:host;若留空則僅使用上方主機。",
|
||||
"connection_modal.mongodb.replica.hosts.srv.placeholder": "例如:cluster-a.example.com、cluster-b.example.com",
|
||||
"connection_modal.mongodb.replica.hosts.standard.label": "附加節點位址",
|
||||
"connection_modal.mongodb.replica.hosts.standard.help": "可輸入多個節點位址,格式:host:port(按 Enter 確認)",
|
||||
"connection_modal.mongodb.replica.hosts.standard.placeholder": "例如:10.10.0.12:27017、10.10.0.13:27017",
|
||||
"connection_modal.mongodb.replica.set.label": "副本集名稱(可選)",
|
||||
"connection_modal.mongodb.replica.set.placeholder": "例如:rs0",
|
||||
"connection_modal.mongodb.replica.user.label": "副本集使用者名稱(可選)",
|
||||
"connection_modal.mongodb.replica.user.placeholder": "留空沿用主要使用者名稱",
|
||||
"connection_modal.mongodb.replica.password.label": "副本集密碼(可選)",
|
||||
"connection_modal.mongodb.replica.password.placeholder.empty": "留空沿用主密碼",
|
||||
"connection_modal.mongodb.replica.password.placeholder.retained": "已儲存副本集密碼",
|
||||
"connection_modal.mongodb.replica.password.clear": "清除已儲存副本集密碼",
|
||||
"connection_modal.mongodb.replica.password.description": "目前已儲存副本集密碼。留空表示繼續沿用,輸入新值表示替換。",
|
||||
"connection_modal.mongodb.members.role": "角色",
|
||||
"connection_modal.mongodb.members.health": "健康",
|
||||
"connection_modal.mongodb.members.health.ok": "正常",
|
||||
"connection_modal.mongodb.members.health.error": "異常",
|
||||
"connection_modal.mongodb.policy.auth_source.label": "認證庫 (authSource)",
|
||||
"connection_modal.mongodb.policy.auth_source.placeholder": "預設使用 database 或 admin",
|
||||
"connection_modal.mongodb.read_preference": "readPreference",
|
||||
"connection_modal.mongodb.read_preference.nearest": "讀取最近的成員。",
|
||||
"connection_modal.mongodb.read_preference.primary": "僅從 primary 讀取。",
|
||||
@@ -878,6 +1072,9 @@
|
||||
"connection_modal.message.save_security_refresh_failed": "設定已儲存,但無法重新整理安全性中繼資料",
|
||||
"connection_modal.message.save_failed": "儲存連線失敗",
|
||||
"connection_modal.message.test_requires_new_password": "請先輸入新的連線密碼,再測試連線。",
|
||||
"connection_modal.secret.blocking.redis_sentinel": "測試連線前請填寫新的 Sentinel 密碼,或取消清除已儲存的 Sentinel 密碼",
|
||||
"connection_modal.test.redis_database_list_timeout": "連線成功,但拉取 Redis 資料庫清單逾時(>{{seconds}} 秒)",
|
||||
"connection_modal.test.redis_database_list_failure": "連線成功,但取得 Redis 資料庫清單失敗:{{detail}}",
|
||||
"connection_modal.message.test_requires_new_ssh_password": "請先輸入新的 SSH 密碼,再測試連線。",
|
||||
"connection_modal.message.test_requires_new_proxy_password": "請先輸入新的代理密碼,再測試連線。",
|
||||
"connection_modal.message.test_requires_new_tunnel_password": "請先輸入新的 HTTP Tunnel 密碼,再測試連線。",
|
||||
@@ -1018,20 +1215,32 @@
|
||||
"sidebar.message.export_failed": "匯出失敗:{{error}}",
|
||||
"sidebar.message.backing_up_database": "正在備份 {{database}}...",
|
||||
"sidebar.message.exporting_database_schema": "正在匯出 {{database}} 的結構...",
|
||||
"sidebar.message.exporting_database_backup": "正在備份 {{database}}(結構+資料)...",
|
||||
"sidebar.message.schema_export_target_missing": "找不到目標模式,無法匯出。",
|
||||
"sidebar.message.exporting_schema_structure": "正在匯出模式 {{schema}} 的結構...",
|
||||
"sidebar.message.exporting_schema_backup": "正在備份模式 {{schema}}(結構+資料)...",
|
||||
"sidebar.message.export_tables_same_database_required": "請選擇同一資料庫中的資料表。",
|
||||
"sidebar.message.backing_up_selected_tables": "正在備份 {{count}} 個已選資料表...",
|
||||
"sidebar.message.exporting_selected_table_schema": "正在匯出 {{count}} 個已選資料表的結構...",
|
||||
"sidebar.message.load_database_list_failed": "載入資料庫失敗:{{error}}",
|
||||
"sidebar.message.load_table_list_failed": "載入資料表失敗:{{error}}",
|
||||
"sidebar.message.locate_external_sql_file_not_found": "未在外部 SQL 目錄中找到 SQL 檔案:{{path}}",
|
||||
"sidebar.message.locate_connection_not_found_for_object": "找不到目前物件對應的連線",
|
||||
"sidebar.message.locate_connection_not_in_tree": "未在左側樹找到目前連線",
|
||||
"sidebar.message.locate_database_loading": "資料庫節點仍在載入中:{{database}},請稍後再試",
|
||||
"sidebar.message.locate_database_not_found": "未在左側樹找到資料庫:{{database}}",
|
||||
"sidebar.message.locate_object_loading": "{{object}} 所在的資料庫物件仍在載入中:{{database}},請稍後再試",
|
||||
"sidebar.message.locate_object_not_found": "未在左側樹中找到 {{object}}:{{name}},請重新整理資料庫節點後再試",
|
||||
"sidebar.message.select_object_required": "請至少選擇一個物件。",
|
||||
"sidebar.message.backing_up_selected_objects": "正在備份 {{count}} 個已選物件...",
|
||||
"sidebar.message.exporting_selected_object_data": "正在匯出 {{count}} 個已選物件的資料...",
|
||||
"sidebar.message.exporting_selected_object_data": "正在匯出 {{count}} 個已選物件的資料({{format}})...",
|
||||
"sidebar.message.exporting_selected_object_schema": "正在匯出 {{count}} 個已選物件的結構...",
|
||||
"sidebar.message.export_success_skipped_views": "匯出成功。已略過 {{count}} 個檢視的資料匯出。",
|
||||
"sidebar.modal.confirm_clear_selected_tables.title": "確認清除已選資料表",
|
||||
"sidebar.modal.confirm_clear_selected_tables.content": "清除 {{connection}} / {{database}} 下已選物件的資料?此操作無法復原。",
|
||||
"sidebar.action.continue": "繼續",
|
||||
"sidebar.action.cancel": "取消",
|
||||
"sidebar.action.delete": "刪除",
|
||||
"sidebar.message.clearing_selected_tables": "正在清除 {{count}} 個已選資料表...",
|
||||
"sidebar.message.clear_success": "清除成功。",
|
||||
"sidebar.message.clear_failed": "清除失敗:{{error}}",
|
||||
@@ -1048,7 +1257,30 @@
|
||||
"sidebar.message.operation_create_failed": "建立失敗:{{error}}",
|
||||
"sidebar.sql_file.default_name": "SQL 檔案",
|
||||
"sidebar.message.sql_file_context_incomplete": "SQL 檔案內容不完整。",
|
||||
"sidebar.message.sql_file_path_incomplete": "SQL 檔案路徑不完整,無法開啟。",
|
||||
"sidebar.message.select_host_before_large_sql_file": "請先選擇 Host,再執行大型 SQL 檔案。",
|
||||
"sidebar.message.read_sql_file_failed": "讀取 SQL 檔案失敗:{{error}}",
|
||||
"sidebar.message.external_sql_file_parent_missing": "找不到可新增 SQL 檔案的目錄。",
|
||||
"sidebar.message.external_sql_file_rename_target_missing": "找不到可重新命名的 SQL 檔案。",
|
||||
"sidebar.message.external_sql_file_delete_target_missing": "找不到可刪除的 SQL 檔案。",
|
||||
"sidebar.message.external_sql_directory_parent_missing": "找不到可新增目錄的位置。",
|
||||
"sidebar.message.external_sql_directory_rename_target_missing": "找不到可重新命名的目錄。",
|
||||
"sidebar.message.external_sql_directory_delete_target_missing": "找不到可刪除的 SQL 目錄。",
|
||||
"sidebar.message.sql_file_name_required": "SQL 檔案名稱不能空白。",
|
||||
"sidebar.message.sql_directory_name_required": "目錄名稱不能空白。",
|
||||
"sidebar.message.create_sql_file_failed": "新增 SQL 檔案失敗:{{error}}",
|
||||
"sidebar.message.sql_file_created": "SQL 檔案已新增。",
|
||||
"sidebar.message.rename_sql_file_failed": "重新命名 SQL 檔案失敗:{{error}}",
|
||||
"sidebar.message.sql_file_renamed": "SQL 檔案已重新命名。",
|
||||
"sidebar.message.delete_sql_file_failed": "刪除 SQL 檔案失敗:{{error}}",
|
||||
"sidebar.message.sql_file_deleted": "SQL 檔案已刪除。",
|
||||
"sidebar.message.create_sql_directory_failed": "新增目錄失敗:{{error}}",
|
||||
"sidebar.message.sql_directory_created": "目錄已新增。",
|
||||
"sidebar.message.rename_sql_directory_failed": "重新命名目錄失敗:{{error}}",
|
||||
"sidebar.message.external_sql_directory_rename_sync_failed": "目錄已重新命名,但無法同步外部 SQL 目錄清單,請重新新增目錄。",
|
||||
"sidebar.message.sql_directory_renamed": "目錄已重新命名。",
|
||||
"sidebar.message.delete_sql_directory_failed": "刪除 SQL 目錄失敗:{{error}}",
|
||||
"sidebar.message.sql_directory_deleted": "SQL 目錄已刪除。",
|
||||
"sidebar.message.add_sql_directory_database_required": "請先選擇資料庫,再新增 SQL 目錄。",
|
||||
"sidebar.message.select_sql_directory_failed": "選擇 SQL 目錄失敗:{{error}}",
|
||||
"sidebar.message.sql_directory_path_invalid": "SQL 目錄路徑無效。",
|
||||
@@ -1062,6 +1294,10 @@
|
||||
"sidebar.message.create_failed": "建立失敗:{{error}}",
|
||||
"sidebar.modal.confirm_delete_database.title": "刪除資料庫",
|
||||
"sidebar.modal.confirm_delete_database.content": "刪除 {{name}}?此操作無法復原。",
|
||||
"sidebar.modal.confirm_delete_sql_file.title": "刪除 SQL 檔案",
|
||||
"sidebar.modal.confirm_delete_sql_file.content": "刪除 \"{{name}}\"?此操作會刪除本機磁碟檔案,無法復原。",
|
||||
"sidebar.modal.confirm_delete_sql_directory.title": "刪除 SQL 目錄",
|
||||
"sidebar.modal.confirm_delete_sql_directory.content": "刪除 \"{{name}}\"?此操作會刪除本機磁碟目錄,且僅支援刪除空目錄。",
|
||||
"sidebar.modal.confirm_delete_table.title": "刪除資料表",
|
||||
"sidebar.modal.confirm_delete_table.content": "刪除 {{name}}?此操作無法復原。",
|
||||
"sidebar.modal.confirm_table_data_action.title": "確認 {{action}}",
|
||||
@@ -1088,8 +1324,14 @@
|
||||
"sidebar.message.delete_connection_failed": "刪除連線失敗。",
|
||||
"sidebar.modal.confirm_delete_saved_query.content": "確定要刪除已儲存的查詢「{{name}}」嗎?此操作無法復原。",
|
||||
"sidebar.search.placeholder": "搜尋...",
|
||||
"sidebar.punctuation.list_separator": "、",
|
||||
"sidebar.command_search.label": "搜尋表、連線、動作",
|
||||
"sidebar.command_search.placeholder": "搜尋表、連線、動作... 或問 AI",
|
||||
"sidebar.command_search.sync_to_filter_tooltip": "同步輸入內容到左側篩選",
|
||||
"sidebar.command_search.sync_to_filter_aria": "同步到左側篩選",
|
||||
"sidebar.command_search.reset_filter": "重設側欄篩選",
|
||||
"sidebar.command_search.no_synced_filter": "沒有已同步的側欄篩選",
|
||||
"sidebar.command_search.no_filter_content": "沒有篩選內容",
|
||||
"sidebar.command_search.object_kind.all": "全部",
|
||||
"sidebar.command_search.object_kind.tables": "表格",
|
||||
"sidebar.command_search.object_kind.views": "檢視",
|
||||
@@ -1135,6 +1377,13 @@
|
||||
"sidebar.v2_table_menu.view_in_er": "在 ER 圖中檢視",
|
||||
"sidebar.v2_table_menu.copy_section": "複製",
|
||||
"sidebar.v2_table_menu.copy_table_name": "複製資料表名稱",
|
||||
"sidebar.copy_object_name.label.table": "資料表名稱",
|
||||
"sidebar.copy_object_name.label.view": "檢視名稱",
|
||||
"sidebar.copy_object_name.label.materialized_view": "物化檢視名稱",
|
||||
"sidebar.copy_object_name.label.event": "事件名稱",
|
||||
"sidebar.copy_object_name.empty": "{{label}}為空,無法複製",
|
||||
"sidebar.copy_object_name.copied": "{{label}}已複製到剪貼簿",
|
||||
"sidebar.copy_object_name.failed": "複製{{label}}失敗:{{error}}",
|
||||
"sidebar.v2_table_menu.copy_table_as_insert": "複製整個資料表為 {{keyword}}",
|
||||
"sidebar.v2_table_menu.maintenance_section": "維護",
|
||||
"sidebar.v2_table_menu.rename_compact": "重新命名…",
|
||||
@@ -1151,6 +1400,11 @@
|
||||
"sidebar.v2_table_group_menu.sort_frequency": "使用頻率",
|
||||
"sidebar.v2_table_group_menu.meta": "{{database}} · {{count}} 張資料表 · 目前依{{sort}}排序",
|
||||
"sidebar.message.locate_current_table_unavailable": "目前分頁沒有可定位的表",
|
||||
"sidebar.locate.object.table": "資料表",
|
||||
"sidebar.locate.object.view": "檢視",
|
||||
"sidebar.locate.object.materialized_view": "物化檢視",
|
||||
"sidebar.locate.object.routine": "函式/預存程序",
|
||||
"sidebar.locate.object.trigger": "觸發器",
|
||||
"sidebar.active_connection.current_host_database": "目前 Host 與資料庫",
|
||||
"sidebar.active_connection.no_database_selected": "未選擇資料庫",
|
||||
"sidebar.active_connection.no_host_selected": "未選擇 Host",
|
||||
@@ -1251,6 +1505,11 @@
|
||||
"sidebar.search.scope.host": "主機",
|
||||
"sidebar.search.scope.tag": "標籤",
|
||||
"sidebar.tree.saved_queries": "已儲存查詢",
|
||||
"sidebar.tree.untitled_query": "未命名查詢",
|
||||
"sidebar.tree.default_database": "預設資料庫",
|
||||
"sidebar.tree.unknown_connection": "未知連線",
|
||||
"sidebar.tree.unmatched_saved_queries": "未匹配",
|
||||
"sidebar.tree.all_saved_queries": "全部已儲存查詢",
|
||||
"sidebar.tree.default_schema": "預設結構",
|
||||
"sidebar.object_group.tables": "資料表",
|
||||
"sidebar.object_group.views": "檢視",
|
||||
@@ -1274,6 +1533,8 @@
|
||||
"sidebar.tab.new_table": "新增資料表 - {{database}}",
|
||||
"sidebar.tab.table_overview": "資料表概覽 - {{database}}{{schema}}",
|
||||
"sidebar.tab.trigger": "觸發器:{{name}}",
|
||||
"sidebar.tab.event": "事件:{{name}}",
|
||||
"sidebar.tab.edit_event": "編輯事件:{{name}}",
|
||||
"sidebar.tab.materialized_view_definition": "物化檢視:{{name}}",
|
||||
"sidebar.tab.view_definition": "檢視:{{name}}",
|
||||
"sidebar.tab.edit_view": "編輯檢視:{{name}}",
|
||||
@@ -1343,9 +1604,13 @@
|
||||
"tab_manager.hover.label.object": "物件",
|
||||
"tab_manager.hover.label.type": "類型",
|
||||
"sidebar.message.no_visible_databases": "未傳回可見資料庫或結構。請檢查帳號權限,或從右鍵選單重新整理。",
|
||||
"sidebar.message.visual_new_table_unsupported": "目前資料來源暫不支援視覺化新增資料表。",
|
||||
"sidebar.message.jvm_resources_backend_unavailable": "JVM 資源後端不可用。",
|
||||
"sidebar.message.external_sql_directory_read_failed": "讀取 SQL 目錄 {{name}} 失敗:{{error}}",
|
||||
"sidebar.message.sphinx_unsupported_objects": "此 Sphinx 執行個體不支援這些物件能力:{{objects}}。已啟用相容模式。",
|
||||
"sidebar.message.sidebar_filter_sync_enabled": "已開啟左側篩選同步。",
|
||||
"sidebar.message.sidebar_filter_sync_disabled": "已關閉左側篩選同步。",
|
||||
"sidebar.message.sidebar_filter_reset": "已重設側欄篩選。",
|
||||
"sidebar.message.database_name_required": "請輸入資料庫名稱。",
|
||||
"sidebar.message.database_name_unchanged": "資料庫名稱未變更。",
|
||||
"sidebar.message.database_renamed": "資料庫已重新命名。",
|
||||
@@ -1394,12 +1659,15 @@
|
||||
"sidebar.menu.close_database": "關閉資料庫",
|
||||
"sidebar.menu.browse_view_data": "瀏覽檢視資料",
|
||||
"sidebar.menu.view_definition": "檢視定義",
|
||||
"sidebar.menu.browse_materialized_view_data": "瀏覽物化檢視資料",
|
||||
"sidebar.menu.materialized_view_definition": "物化檢視定義",
|
||||
"sidebar.menu.view_object_definition": "查看定義",
|
||||
"sidebar.menu.edit_view": "編輯檢視",
|
||||
"sidebar.menu.rename_view": "重新命名檢視",
|
||||
"sidebar.menu.delete_view": "刪除檢視",
|
||||
"sidebar.menu.view_routine_definition": "檢視例程定義",
|
||||
"sidebar.menu.edit_definition": "編輯定義",
|
||||
"sidebar.menu.delete_routine": "刪除例程 {{type}}",
|
||||
"sidebar.menu.delete_routine": "刪除{{type}}",
|
||||
"sidebar.menu.design_table": "設計資料表",
|
||||
"sidebar.menu.copy_table_structure": "複製資料表結構",
|
||||
"sidebar.menu.backup_table_sql": "備份資料表(SQL)",
|
||||
@@ -1420,6 +1688,15 @@
|
||||
"sidebar.menu.refresh_directory": "重新整理目錄",
|
||||
"sidebar.menu.remove_directory": "移除目錄",
|
||||
"sidebar.menu.open_sql_file": "開啟 SQL 檔案",
|
||||
"sidebar.menu.new_sql_file": "新增 SQL 檔案",
|
||||
"sidebar.menu.new_sql_directory": "新增目錄",
|
||||
"sidebar.menu.rename_sql_directory": "重新命名目錄",
|
||||
"sidebar.menu.delete_local_directory": "刪除本機目錄",
|
||||
"sidebar.menu.delete_sql_directory": "刪除目錄",
|
||||
"sidebar.menu.rename_sql_file": "重新命名 SQL 檔案",
|
||||
"sidebar.menu.new_sql_file_in_directory": "在此目錄新增 SQL 檔案",
|
||||
"sidebar.menu.new_sql_directory_in_directory": "在此目錄新增目錄",
|
||||
"sidebar.menu.delete_sql_file": "刪除 SQL 檔案",
|
||||
"sidebar.batch.group.tables": "資料表",
|
||||
"sidebar.batch.group.views": "檢視",
|
||||
"sidebar.batch.no_matching_objects": "沒有符合的物件",
|
||||
@@ -1433,6 +1710,22 @@
|
||||
"connection_modal.network.ssl_mode.skip_verify": "略過驗證",
|
||||
"sidebar.external_sql.root": "外部 SQL 檔案",
|
||||
"sidebar.external_sql.directory_fallback": "SQL 目錄",
|
||||
"sidebar.external_sql_modal.title.create_file": "新增 SQL 檔案",
|
||||
"sidebar.external_sql_modal.title.rename_file": "重新命名 SQL 檔案",
|
||||
"sidebar.external_sql_modal.title.create_directory": "新增目錄",
|
||||
"sidebar.external_sql_modal.title.rename_directory": "重新命名目錄",
|
||||
"sidebar.external_sql_modal.action.create": "新增",
|
||||
"sidebar.external_sql_modal.action.rename": "重新命名",
|
||||
"sidebar.external_sql_modal.field.directory_name": "目錄名稱",
|
||||
"sidebar.external_sql_modal.field.sql_file_name": "SQL 檔案名稱",
|
||||
"sidebar.external_sql_modal.validation.directory_name_required": "請輸入目錄名稱",
|
||||
"sidebar.external_sql_modal.validation.sql_file_name_required": "請輸入 SQL 檔案名稱",
|
||||
"sidebar.external_sql_modal.validation.directory_name_no_separator": "目錄名稱不能包含路徑分隔符",
|
||||
"sidebar.external_sql_modal.validation.sql_file_name_no_separator": "檔案名稱不能包含路徑分隔符",
|
||||
"sidebar.external_sql_modal.help.directory": "目錄只會顯示在外部 SQL 目錄樹中,非 SQL 檔案仍不會顯示",
|
||||
"sidebar.external_sql_modal.help.sql_file": "未輸入 .sql 後綴時會自動補齊",
|
||||
"sidebar.external_sql_modal.placeholder.directory_name": "例如:reports",
|
||||
"sidebar.external_sql_modal.placeholder.sql_file_name": "例如:report.sql",
|
||||
"sidebar.jvm.action.monitoring": "持續監控",
|
||||
"sidebar.jvm.action.diagnostic": "診斷增強",
|
||||
"sidebar.jvm.tab.overview": "JVM 概覽",
|
||||
@@ -1871,14 +2164,34 @@
|
||||
"query_editor.action.ai_explain_sql_menu": "解釋 SQL",
|
||||
"query_editor.action.ai_optimize_sql_menu": "最佳化 SQL",
|
||||
"query_editor.action.ai_schema_analysis": "結構描述分析",
|
||||
"query_editor.action.show_results_panel": "顯示結果區",
|
||||
"query_editor.action.hide_results_panel": "隱藏結果區",
|
||||
"query_editor.action.show_results_panel_with_shortcut": "顯示結果區({{shortcut}})",
|
||||
"query_editor.action.hide_results_panel_with_shortcut": "隱藏結果區({{shortcut}})",
|
||||
"query_editor.action.results": "結果",
|
||||
"query_editor.transaction.delay.immediate": "立即",
|
||||
"query_editor.transaction.mode.tooltip": "參考 DBeaver:SQL 編輯器執行 INSERT/UPDATE/DELETE/MERGE/REPLACE 等 DML 時,會先進入 GoNavi 代管交易;手動提交需要自行提交/回滾,自動提交會在執行成功後自動 COMMIT。",
|
||||
"query_editor.transaction.mode.manual": "手動",
|
||||
"query_editor.transaction.mode.auto": "自動",
|
||||
"query_editor.transaction.status.auto_commit_countdown": "{{seconds}}s 後自動提交",
|
||||
"query_editor.transaction.status.auto_committing": "自動提交中",
|
||||
"query_editor.transaction.action.commit": "提交",
|
||||
"query_editor.transaction.action.commit_with_count": "提交 ({{count}})",
|
||||
"query_editor.transaction.action.rollback": "回滾",
|
||||
"query_editor.transaction.message.pending_managed_transaction": "目前 SQL 編輯器已有未提交交易,請先提交或回滾後再執行新的新增、更新或刪除語句。",
|
||||
"query_editor.action.show_object_info": "查看物件資訊",
|
||||
"query_editor.action.rename_query": "重新命名查詢",
|
||||
"query_editor.action.export_sql_file": "匯出 SQL 檔案",
|
||||
"query_editor.format.keyword_upper": "關鍵字大寫",
|
||||
"query_editor.format.keyword_lower": "關鍵字小寫",
|
||||
"query_editor.format.restore_last_format": "還原上次美化",
|
||||
"query_editor.format.snippet_settings": "程式碼片段管理...",
|
||||
"query_editor.format.shortcut_settings": "快捷鍵設定...",
|
||||
"query_editor.message.format_failed": "格式化失敗:SQL 語法可能無效。",
|
||||
"query_editor.message.no_format_restore_snapshot": "沒有可還原的美化前 SQL",
|
||||
"query_editor.message.format_restore_success": "已還原到美化前 SQL",
|
||||
"query_editor.message.page_query_failed": "翻頁失敗:{{error}}",
|
||||
"query_editor.message.page_query_empty": "翻頁未傳回結果集",
|
||||
"query_editor.message.refresh_failed": "重新整理失敗:{{error}}",
|
||||
"query_editor.message.select_database_first": "請先選擇資料庫。",
|
||||
"query_editor.message.connection_not_found": "找不到連線。",
|
||||
@@ -1896,6 +2209,7 @@
|
||||
"query_editor.message.read_only_no_safe_locator": "未偵測到主鍵或可用唯一索引,無法安全提交修改。",
|
||||
"query_editor.message.read_only_index_metadata_unavailable": "無法載入唯一索引中繼資料,無法安全提交修改。",
|
||||
"query_editor.message.read_only_table_locator_metadata_unavailable": "無法載入 {{table}} 的主鍵/唯一索引中繼資料,無法安全提交修改。",
|
||||
"query_editor.message.read_only_system_metadata": "系統中繼資料查詢結果維持唯讀。",
|
||||
"query_editor.message.read_only_oracle_rowid_injection_unavailable": "Oracle 查詢使用 * 時無法自動注入 ROWID 定位欄,已維持唯讀。",
|
||||
"query_editor.message.read_only_warning_with_detail": "查詢結果維持唯讀:{{detail}}",
|
||||
"query_editor.message.object_info_target_not_found": "目前游標未定位到可識別的資料表或欄位。",
|
||||
@@ -1904,6 +2218,7 @@
|
||||
"query_editor.message.saved": "查詢已儲存。",
|
||||
"query_editor.message.sql_file_saved": "SQL 檔案已儲存。",
|
||||
"query_editor.message.save_sql_file_failed": "儲存 SQL 檔案失敗:{{error}}",
|
||||
"query_editor.message.save_query_failed": "儲存查詢失敗:{{error}}",
|
||||
"query_editor.message.export_sql_file_success": "SQL 檔案已匯出。",
|
||||
"query_editor.message.export_sql_file_failed": "匯出 SQL 檔案失敗:{{error}}",
|
||||
"query_editor.message.save_first_before_rename": "請先儲存查詢後再重新命名。",
|
||||
@@ -1917,6 +2232,18 @@
|
||||
"query_editor.result.affected_rows": "受影響列數:{{count}}",
|
||||
"query_editor.result.execution_failed": "執行失敗",
|
||||
"query_editor.result.ai_diagnose": "AI 診斷",
|
||||
"query_editor.results_panel.tooltip.hide": "隱藏結果區",
|
||||
"query_editor.results_panel.tooltip.hide_with_shortcut": "隱藏結果區({{shortcut}})",
|
||||
"query_editor.results_panel.menu.close_other": "關閉其他頁",
|
||||
"query_editor.results_panel.menu.close_left": "關閉左側",
|
||||
"query_editor.results_panel.menu.close_right": "關閉右側",
|
||||
"query_editor.results_panel.menu.close_all": "關閉所有",
|
||||
"query_editor.results_panel.action.hide": "隱藏",
|
||||
"query_editor.results_panel.aria.hide": "隱藏結果區",
|
||||
"query_editor.results_panel.tab.message": "訊息 {{index}}",
|
||||
"query_editor.results_panel.tab.result": "結果 {{index}}",
|
||||
"query_editor.results_panel.message.title": "執行訊息",
|
||||
"query_editor.results_panel.panel.title": "結果區",
|
||||
"query_editor.save_modal.title": "儲存查詢",
|
||||
"query_editor.save_modal.rename_title": "重新命名查詢",
|
||||
"query_editor.save_modal.rename_ok": "重新命名",
|
||||
@@ -2165,6 +2492,7 @@
|
||||
"data_grid.context_menu.edit_section": "編輯",
|
||||
"data_grid.context_menu.edit_row": "編輯此列",
|
||||
"data_grid.context_menu.copy_row_as_new": "複製此列為新增列",
|
||||
"data_grid.context_menu.undo_cell_change": "撤銷此儲存格修改",
|
||||
"data_grid.context_menu.export_as_csv": "匯出為 CSV",
|
||||
"data_grid.context_menu.export_as_excel": "匯出為 Excel",
|
||||
"data_grid.context_menu.export_as_html": "匯出為 HTML",
|
||||
@@ -2200,6 +2528,7 @@
|
||||
"data_grid.error_boundary.title": "渲染錯誤",
|
||||
"data_grid.export.all_data": "匯出全部資料",
|
||||
"data_grid.export.all_rows": "匯出全部列({{count}} 列)",
|
||||
"data_grid.export.all_rows_requery": "匯出全部(重新查詢)",
|
||||
"data_grid.export.current_page": "匯出目前頁({{count}} 列)",
|
||||
"data_grid.export.current_page_rows": "匯出目前頁({{count}} 列)",
|
||||
"data_grid.export.group_filtered_results": "篩選結果",
|
||||
@@ -2274,7 +2603,12 @@
|
||||
"data_grid.message.column_quick_find_not_found": "找不到欄位列:{{query}}",
|
||||
"data_grid.message.column_quick_find_not_rendered": "欄位列「{{column}}」目前尚未渲染,無法定位",
|
||||
"data_grid.message.column_visibility_reset": "已還原全部欄位",
|
||||
"data_grid.message.auto_commit_failed": "自動提交失敗:{{detail}}",
|
||||
"data_grid.message.auto_commit_success": "自動提交成功",
|
||||
"data_grid.message.commit_failed": "提交失敗:{{detail}}",
|
||||
"data_grid.message.undo_added_row_hint": "新增列請使用刪除選取或整表回滾來撤銷",
|
||||
"data_grid.message.undo_cell_original_missing": "找不到該儲存格的原始資料,無法撤銷",
|
||||
"data_grid.message.undo_cell_success": "已撤銷儲存格修改",
|
||||
"data_grid.message.copied_columns": "已複製 {{count}} 欄,可貼上到目標列。",
|
||||
"data_grid.message.copied_rows": "已複製 {{count}} 列,可作為新列貼上。",
|
||||
"data_grid.message.copied_to_clipboard": "已複製到剪貼簿",
|
||||
@@ -2463,6 +2797,8 @@
|
||||
"data_grid.secondary.er_diagram": "ER 圖",
|
||||
"data_grid.secondary.jump_column": "跳欄",
|
||||
"data_grid.secondary.live": "即時",
|
||||
"data_grid.secondary.object_design": "物件設計",
|
||||
"data_grid.embedded_designer.title": "設計表({{tableName}})",
|
||||
"data_grid.secondary.pending_changes": "未提交 {{count}}",
|
||||
"data_grid.secondary.row_count": "{{count}} 列",
|
||||
"data_grid.secondary.view_ddl": "查看 DDL",
|
||||
@@ -2478,6 +2814,11 @@
|
||||
"data_grid.toolbar.cell_editor": "儲存格編輯",
|
||||
"data_grid.toolbar.commit": "提交交易({{count}})",
|
||||
"data_grid.toolbar.commit_label": "提交交易",
|
||||
"data_grid.toolbar.commit_delay.seconds": "{{seconds}} 秒",
|
||||
"data_grid.toolbar.commit_mode.auto": "自動提交",
|
||||
"data_grid.toolbar.commit_mode.auto_countdown": "{{seconds}}s 後提交",
|
||||
"data_grid.toolbar.commit_mode.manual": "手動提交",
|
||||
"data_grid.toolbar.commit_mode.tooltip": "控制表格資料編輯後的提交方式。手動提交更安全;自動提交會在最後一次修改後依所選時間提交。",
|
||||
"data_grid.toolbar.copied_columns_count": "已複製 {{count}} 欄",
|
||||
"data_grid.toolbar.copy": "複製",
|
||||
"data_grid.toolbar.copy_row": "複製列",
|
||||
@@ -2794,6 +3135,7 @@
|
||||
"redis_viewer.hint.switch_auto_to_edit": "切換到 Auto 模式後即可編輯",
|
||||
"redis_viewer.label.encoding": "編碼:{{encoding}}",
|
||||
"redis_viewer.label.keys_count": "{{count}} 個 Key",
|
||||
"redis_viewer.label.node_count": "{{count}} 個節點",
|
||||
"redis_viewer.label.length": "長度:{{count}}",
|
||||
"redis_viewer.label.original_key": "原 Key:{{key}}",
|
||||
"redis_viewer.message.add_failed": "新增失敗:{{detail}}",
|
||||
@@ -2850,6 +3192,9 @@
|
||||
"redis_viewer.placeholder.value": "值",
|
||||
"redis_viewer.search.exact": "精確",
|
||||
"redis_viewer.search.fuzzy": "模糊",
|
||||
"redis_viewer.topology.cluster": "Cluster",
|
||||
"redis_viewer.topology.sentinel": "Sentinel",
|
||||
"redis_viewer.topology.single": "單機",
|
||||
"redis_viewer.state.connection_not_found": "找不到連線",
|
||||
"redis_viewer.state.empty_selection": "選取一個 Key 以查看詳細資料",
|
||||
"redis_viewer.table.action": "操作",
|
||||
@@ -2988,6 +3333,7 @@
|
||||
"ai_chat.input.slash.sql.prompt": "請根據以下需求產生 SQL:",
|
||||
"ai_chat.input.tooltip.attach_table_context": "關聯附帶資料庫表上下文",
|
||||
"ai_chat.input.tooltip.upload_image": "上傳圖片/截圖",
|
||||
"ai_chat.tools.mcp_fallback_description": "{{serverName}} 提供的 MCP 工具 {{toolName}}",
|
||||
"ai_chat.composer_notice.missing_model.description": "開啟下方模型下拉選單並選擇模型;若清單為空,請檢查供應商入口與 API Key。",
|
||||
"ai_chat.composer_notice.missing_model.title": "請先選擇模型",
|
||||
"ai_chat.composer_notice.missing_provider.description": "請先在 AI 設定中新增並啟用一個模型供應商。",
|
||||
@@ -3234,9 +3580,47 @@
|
||||
"ai_settings.context.with_results.label": "含查詢結果",
|
||||
"ai_settings.context.with_results.desc": "傳遞最近的查詢結果作為上下文",
|
||||
"ai_settings.prompts.description": "以下為目前版本 GoNavi 預設的底層 AI 提示詞(唯讀)。它們會被動態注入到對應場景的請求上下文中。",
|
||||
"ai_settings.prompts.message.saved": "自訂提示詞已儲存",
|
||||
"ai_settings.prompts.message.save_failed": "儲存自訂提示詞失敗",
|
||||
"ai_settings.mcp_server.message.saved": "MCP 服務已儲存",
|
||||
"ai_settings.mcp_server.message.save_failed": "儲存 MCP 服務失敗",
|
||||
"ai_settings.mcp_server.message.deleted": "MCP 服務已刪除",
|
||||
"ai_settings.mcp_server.message.delete_failed": "刪除 MCP 服務失敗",
|
||||
"ai_settings.mcp_server.message.test_success": "MCP 服務連線成功",
|
||||
"ai_settings.mcp_server.message.test_failed": "MCP 服務測試失敗",
|
||||
"ai_settings.mcp_server.message.test_request_failed": "測試 MCP 服務失敗",
|
||||
"ai_settings.clipboard.error.unsupported": "目前環境不支援複製到剪貼簿",
|
||||
"ai_settings.mcp_http.error.control_unsupported_runtime": "目前執行階段暫不支援 MCP HTTP 服務控制",
|
||||
"ai_settings.mcp_http.error.start_unsupported_version": "目前版本暫不支援啟動 MCP HTTP 服務",
|
||||
"ai_settings.mcp_http.error.stop_unsupported_version": "目前版本暫不支援停止 MCP HTTP 服務",
|
||||
"ai_settings.mcp_http.message.started": "GoNavi MCP HTTP 服務已啟動",
|
||||
"ai_settings.mcp_http.message.stopped": "GoNavi MCP HTTP 服務已停止",
|
||||
"ai_settings.mcp_http.message.toggle_failed": "切換 GoNavi MCP HTTP 服務失敗",
|
||||
"ai_settings.mcp_http.message.url_unavailable": "目前沒有可複製的 MCP HTTP URL",
|
||||
"ai_settings.mcp_http.message.url_copied": "MCP HTTP URL 已複製",
|
||||
"ai_settings.mcp_http.message.authorization_header_required": "請先啟動 MCP HTTP 服務生成 Authorization Header",
|
||||
"ai_settings.mcp_http.message.authorization_header_copied": "Authorization Header 已複製",
|
||||
"ai_settings.mcp_http.status.not_running": "GoNavi MCP HTTP 服務未啟動",
|
||||
"ai_settings.skill.message.saved": "Skill 已儲存",
|
||||
"ai_settings.skill.message.save_failed": "儲存 Skill 失敗",
|
||||
"ai_settings.skill.message.deleted": "Skill 已刪除",
|
||||
"ai_settings.skill.message.delete_failed": "刪除 Skill 失敗",
|
||||
"ai_settings.tools.description": "AI 助手在處理資料庫相關問題時,可以自動呼叫以下內建工具取得真實資料,全程無需人工介入。",
|
||||
"ai_settings.tools.workflow": "💡 工作流程:get_connections → get_databases → get_tables → get_columns → 生成 SQL",
|
||||
"ai_settings.tools.params_label": "參數:",
|
||||
"ai_settings.tools.builtin_tool_label": "內建工具",
|
||||
"ai_settings.tools.search.aria_label": "搜尋內建工具",
|
||||
"ai_settings.tools.search.placeholder": "搜尋工具、流程或參數,例如 mcp / lineLimit / allowMutating / 事務",
|
||||
"ai_settings.tools.search.clear": "清除",
|
||||
"ai_settings.tools.summary": "目前顯示 {{flowVisible}}/{{flowTotal}} 條推薦流程,{{toolVisible}}/{{toolTotal}} 個內建工具。",
|
||||
"ai_settings.tools.empty.no_matches": "沒有符合的內建工具。可以改搜更寬泛的關鍵字,例如 mcp、日誌、連線、事務、快捷鍵、schema。",
|
||||
"ai_settings.tools.parameters.hint_title": "參數提示",
|
||||
"ai_settings.tools.parameters.type_label": "類型:{{type}}",
|
||||
"ai_settings.tools.parameters.required": "必填",
|
||||
"ai_settings.tools.parameters.optional": "可選",
|
||||
"ai_settings.tools.parameters.enum_values": "可選值:{{values}}",
|
||||
"ai_settings.tools.parameters.default_value": "預設:{{value}}",
|
||||
"ai_settings.tools.parameters.example": "範例:",
|
||||
"ai_settings.tools.params.none": "無參數",
|
||||
"ai_settings.tools.get_connections.desc": "取得所有可用的資料庫連線",
|
||||
"ai_settings.tools.get_connections.detail": "返回連線 ID、名稱、類型(MySQL/PostgreSQL 等)和 Host 地址。AI 會根據返回資訊決定優先探索哪個連線。",
|
||||
@@ -3521,6 +3905,38 @@
|
||||
"data_sync.action.previous": "上一步",
|
||||
"data_sync.action.start_sync": "開始同步",
|
||||
"data_sync.action.view": "查看",
|
||||
"data_sync.compare_entry.action.return_to_compare": "返回比對",
|
||||
"data_sync.compare_entry.alert.data": "目前為「資料比對」入口:固定依主鍵分析列級差異,不執行寫入。",
|
||||
"data_sync.compare_entry.alert.schema": "目前為「表結構比對」入口:固定只分析結構差異並產生可審閱 SQL,不執行變更。",
|
||||
"data_sync.compare_entry.option.auto_add_columns": "產生目標表缺失欄位的相容變更 SQL(僅預覽,不執行)",
|
||||
"data_sync.compare_entry.option.source_dataset.query": "依 SQL 結果集比對",
|
||||
"data_sync.compare_entry.option.source_dataset.table": "依表比對",
|
||||
"data_sync.compare_entry.preview.selection_hint": "列選取只影響 SQL 預覽範圍,不會執行寫入。",
|
||||
"data_sync.compare_entry.preview.sql.data_help": "SQL 預覽會依目前勾選的插入、更新、刪除與列選取範圍產生,僅用於審閱差異。",
|
||||
"data_sync.compare_entry.preview.sql.schema_help": "SQL 預覽顯示結構差異建議語句,僅用於審閱差異。",
|
||||
"data_sync.compare_entry.result.completed": "比對完成",
|
||||
"data_sync.compare_entry.result.failed": "比對失敗",
|
||||
"data_sync.compare_entry.result.running": "正在比對",
|
||||
"data_sync.compare_entry.result.running_description": "目前階段:{{stage}}{{table}}",
|
||||
"data_sync.compare_entry.result.stage_fallback": "執行中",
|
||||
"data_sync.compare_entry.result.success_summary": "已成功比對 {{tables}} 張表。",
|
||||
"data_sync.compare_entry.result.table_suffix": ",表:{{table}}",
|
||||
"data_sync.compare_entry.title.analysis_log": "分析日誌",
|
||||
"data_sync.compare_entry.workflow_help": "目前入口只做差異分析與預覽,不會執行同步、建表、補欄位或刪除資料。",
|
||||
"data_sync.entry_mode.compare.action.start": "開始比對",
|
||||
"data_sync.entry_mode.compare.option_title": "比對選項",
|
||||
"data_sync.entry_mode.compare.result_title": "比對結果",
|
||||
"data_sync.entry_mode.data_compare.badge": "資料比對",
|
||||
"data_sync.entry_mode.data_compare.description": "依主鍵比對來源表與目標表的資料差異,查看新增、更新和刪除明細。",
|
||||
"data_sync.entry_mode.data_compare.hero_description": "適合核對兩端資料一致性,只做差異分析與列級預覽,不執行寫入。",
|
||||
"data_sync.entry_mode.data_compare.table_select_label": "請選擇需要比對資料的表:",
|
||||
"data_sync.entry_mode.data_compare.title": "資料比對",
|
||||
"data_sync.entry_mode.schema_compare.badge": "結構比對",
|
||||
"data_sync.entry_mode.schema_compare.description": "依來源表與目標表產生結構差異、相容風險和可審閱 SQL。",
|
||||
"data_sync.entry_mode.schema_compare.hero_description": "適合發布前核對兩端表結構差異,只做分析與預覽,不執行結構變更。",
|
||||
"data_sync.entry_mode.schema_compare.table_select_label": "請選擇需要比對結構的表:",
|
||||
"data_sync.entry_mode.schema_compare.title": "表結構比對",
|
||||
"data_sync.entry_mode.sync.hero_description": "適合目標表已存在的場景,先做差異分析,再依勾選執行插入、更新或刪除。",
|
||||
"data_sync.alert.auto_create_scope": "自動建表目前僅支援 MySQL 到 Kingbase。會遷移欄位、主鍵、一般索引、唯一索引和聯合索引,並明確跳過全文、空間、前綴和函數類索引。",
|
||||
"data_sync.alert.auto_create_planner_scope": "自動建表目前僅支援 MySQL 到 Kingbase。會遷移欄位、主鍵、一般索引、唯一索引和聯合索引,並明確跳過全文、空間、前綴和函數類索引。",
|
||||
"data_sync.alert.existing_target_only": "資料同步預設使用已有目標表執行。需要跨資料來源建表並導入時,請切換到跨庫遷移。",
|
||||
@@ -4373,6 +4789,11 @@
|
||||
"app.theme.font_family.loading_ui_hint": "依目前系統即時載入已安裝字型,支援輸入搜尋比對。清空後回退預設 UI 字型。",
|
||||
"app.theme.font_family.mono_fallback_hint": "目前已回退到常見程式碼字型預設。作用於 SQL 編輯器、AI 程式碼區塊、日誌、DDL 與資料表等寬內容。",
|
||||
"app.theme.font_family.mono_hint": "優先顯示目前系統已安裝字型,名稱接近 Mono/Code/Console 的字型會排在前面。作用於 SQL 編輯器、AI 程式碼區塊、日誌、DDL 與資料表等寬內容。",
|
||||
"app.theme.font_family.linux_cjk_install_prefix": "Ubuntu/Linux 未偵測到中文 CJK 字體,介面可能顯示方框。請安裝:",
|
||||
"app.theme.font_family.linux_cjk_install_suffix": ",然後重新啟動 GoNavi。",
|
||||
"app.linux_cjk_font_banner.title": "Linux CJK 字體缺失",
|
||||
"app.linux_cjk_font_banner.description": "中文可能顯示為方框。請安裝字體後重新啟動 GoNavi:",
|
||||
"app.linux_cjk_font_banner.action.open_font_settings": "字體設定",
|
||||
"app.theme.data_table.density": "表格密度",
|
||||
"app.theme.data_table.density.comfortable": "舒適",
|
||||
"app.theme.data_table.density.standard": "標準",
|
||||
|
||||
Reference in New Issue
Block a user