Files
MyGoNavi/shared/i18n/ru-RU.json
Syngnat 322d0a7cb8 feat(sidebar): 支持 Oracle 序列和存储包对象树
- 新增 Oracle/Dameng 序列与存储包元数据加载

- 同步对象树节点、V2 筛选、搜索、复制和拖拽支持

- 补充多语言文案和侧边栏回归测试
2026-06-24 22:26:39 +08:00

7635 lines
1.0 MiB
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"ai_chat.builtin_tools.database.execute_sql.desc": "Execute a SQL query and return results",
"ai_chat.builtin_tools.database.execute_sql.detail": "Pass connectionId, dbName, and sql, then execute SQL on the target database and return results (up to 50 rows). Controlled by safety level; read-only mode only allows SELECT/SHOW/DESCRIBE.",
"ai_chat.builtin_tools.database.execute_sql.parameters.connectionId.description": "Connection ID",
"ai_chat.builtin_tools.database.execute_sql.parameters.dbName.description": "Database name",
"ai_chat.builtin_tools.database.execute_sql.parameters.sql.description": "SQL statement to execute",
"ai_chat.builtin_tools.database.execute_sql.params": "connectionId, dbName, sql",
"ai_chat.builtin_tools.database.execute_sql.tool_description": "Execute SQL on the specified connection and database and return results. Controlled by safety level; read-only mode only allows query operations such as SELECT/SHOW/DESCRIBE. Results return at most 50 rows.",
"ai_chat.builtin_tools.database.get_all_columns.desc": "Get field summaries for all tables in a database",
"ai_chat.builtin_tools.database.get_all_columns.detail": "Pass connectionId and dbName, then return a cross-table field list including table name, field name, type, and comment. Useful when the user knows a business field but not which table contains it.",
"ai_chat.builtin_tools.database.get_all_columns.parameters.connectionId.description": "Connection ID",
"ai_chat.builtin_tools.database.get_all_columns.parameters.dbName.description": "Database name",
"ai_chat.builtin_tools.database.get_all_columns.params": "connectionId, dbName",
"ai_chat.builtin_tools.database.get_all_columns.tool_description": "Get field summaries for all tables in the specified database, returning table names, field names, types, and comments. Use it for field-to-table lookup, cross-table field comparison, and data map exploration.",
"ai_chat.builtin_tools.database.get_columns.desc": "Get the field structure of a specified table",
"ai_chat.builtin_tools.database.get_columns.detail": "Pass connectionId, dbName, and tableName, then return each field's name, type, nullability, default value, and comment. AI must call this before generating SQL to confirm real field names.",
"ai_chat.builtin_tools.database.get_columns.parameters.connectionId.description": "Connection ID",
"ai_chat.builtin_tools.database.get_columns.parameters.dbName.description": "Database name",
"ai_chat.builtin_tools.database.get_columns.parameters.tableName.description": "Table name",
"ai_chat.builtin_tools.database.get_columns.params": "connectionId, dbName, tableName",
"ai_chat.builtin_tools.database.get_columns.tool_description": "Get the field list of the specified table, including field name, type, nullability, default value, comment, and related metadata. Before generating SQL, call this tool to confirm real field names and do not guess field names.",
"ai_chat.builtin_tools.database.get_connections.desc": "Get all available database connections",
"ai_chat.builtin_tools.database.get_connections.detail": "Returns connection ID, name, type (such as MySQL or PostgreSQL), and Host address. AI uses the returned data to decide which connection to explore first.",
"ai_chat.builtin_tools.database.get_connections.params": "No parameters",
"ai_chat.builtin_tools.database.get_connections.tool_description": "When database querying or operations are needed but the user has not selected any connection context, get all database connections available in the current app. Returned data includes connection ID (id) and name (name).",
"ai_chat.builtin_tools.database.get_databases.desc": "Get all databases under a specified connection",
"ai_chat.builtin_tools.database.get_databases.detail": "Pass connectionId and return the database or Schema name list under that connection.",
"ai_chat.builtin_tools.database.get_databases.parameters.connectionId.description": "Connection ID (from get_connections)",
"ai_chat.builtin_tools.database.get_databases.params": "connectionId: connection ID",
"ai_chat.builtin_tools.database.get_databases.tool_description": "Get all database (Database/Schema) names under the specified connectionId.",
"ai_chat.builtin_tools.database.get_foreign_keys.desc": "Get foreign-key relationships for a specified table",
"ai_chat.builtin_tools.database.get_foreign_keys.detail": "Pass connectionId, dbName, and tableName, then return foreign-key mappings from the current table to other tables. AI can use it directly for relationship inference, join SQL generation, and data consistency review.",
"ai_chat.builtin_tools.database.get_foreign_keys.parameters.connectionId.description": "Connection ID",
"ai_chat.builtin_tools.database.get_foreign_keys.parameters.dbName.description": "Database name",
"ai_chat.builtin_tools.database.get_foreign_keys.parameters.tableName.description": "Table name",
"ai_chat.builtin_tools.database.get_foreign_keys.params": "connectionId, dbName, tableName",
"ai_chat.builtin_tools.database.get_foreign_keys.tool_description": "Get foreign-key relationships for the specified table, including local fields, referenced table, referenced fields, and constraint names. Use it for join-path analysis, ER relationship mapping, and constraint checks.",
"ai_chat.builtin_tools.database.get_indexes.desc": "Get index definitions for a specified table",
"ai_chat.builtin_tools.database.get_indexes.detail": "Pass connectionId, dbName, and tableName, then return index name, index columns, uniqueness, and index type. AI should prefer this for slow SQL analysis, index optimization, and execution-plan inference.",
"ai_chat.builtin_tools.database.get_indexes.parameters.connectionId.description": "Connection ID",
"ai_chat.builtin_tools.database.get_indexes.parameters.dbName.description": "Database name",
"ai_chat.builtin_tools.database.get_indexes.parameters.tableName.description": "Table name",
"ai_chat.builtin_tools.database.get_indexes.params": "connectionId, dbName, tableName",
"ai_chat.builtin_tools.database.get_indexes.tool_description": "Get index definitions for the specified table, including index name, column order, uniqueness, and index type. Use it for slow SQL analysis, index optimization suggestions, and confirming existing index coverage.",
"ai_chat.builtin_tools.database.get_table_ddl.desc": "Get the table creation statement (DDL)",
"ai_chat.builtin_tools.database.get_table_ddl.detail": "Pass connectionId, dbName, and tableName, then return the complete CREATE TABLE statement, including field definitions, indexes, constraints, and related structure details.",
"ai_chat.builtin_tools.database.get_table_ddl.parameters.connectionId.description": "Connection ID",
"ai_chat.builtin_tools.database.get_table_ddl.parameters.dbName.description": "Database name",
"ai_chat.builtin_tools.database.get_table_ddl.parameters.tableName.description": "Table name",
"ai_chat.builtin_tools.database.get_table_ddl.params": "connectionId, dbName, tableName",
"ai_chat.builtin_tools.database.get_table_ddl.tool_description": "Get the complete table creation statement (CREATE TABLE DDL) for the specified table, including fields, indexes, constraints, and complete structure information.",
"ai_chat.builtin_tools.database.get_tables.desc": "Get all table names under a specified database",
"ai_chat.builtin_tools.database.get_tables.detail": "Pass connectionId and dbName, then return a table name list. AI uses it to locate the target table mentioned by the user.",
"ai_chat.builtin_tools.database.get_tables.parameters.connectionId.description": "Connection ID",
"ai_chat.builtin_tools.database.get_tables.parameters.dbName.description": "Database name",
"ai_chat.builtin_tools.database.get_tables.params": "connectionId, dbName",
"ai_chat.builtin_tools.database.get_tables.tool_description": "After the target connection and database name are known, if the user asks about a table or implicitly mentions one but the exact table name is unknown, call this tool to get all table names in that database (table names only) and infer the target table.",
"ai_chat.builtin_tools.database.get_triggers.desc": "Get trigger definitions for a specified table",
"ai_chat.builtin_tools.database.get_triggers.detail": "Pass connectionId, dbName, and tableName, then return trigger name, timing, event type, and statement body. AI can inspect it directly when analyzing implicit writes, side effects, and audit logic.",
"ai_chat.builtin_tools.database.get_triggers.parameters.connectionId.description": "Connection ID",
"ai_chat.builtin_tools.database.get_triggers.parameters.dbName.description": "Database name",
"ai_chat.builtin_tools.database.get_triggers.parameters.tableName.description": "Table name",
"ai_chat.builtin_tools.database.get_triggers.params": "connectionId, dbName, tableName",
"ai_chat.builtin_tools.database.get_triggers.tool_description": "Get trigger definitions for the specified table, including timing, event, and trigger statement. Use it to investigate implicit data changes, audit logic, and table-level side effects.",
"ai_chat.builtin_tools.database.inspect_database_bundle.desc": "Capture a structure overview for a specified database",
"ai_chat.builtin_tools.database.inspect_database_bundle.detail": "Pass connectionId and dbName, then return table list, table count, total field count, and per-table field summary preview. Useful for first-pass exploration of an unfamiliar database before drilling into target tables.",
"ai_chat.builtin_tools.database.inspect_database_bundle.parameters.connectionId.description": "Connection ID",
"ai_chat.builtin_tools.database.inspect_database_bundle.parameters.dbName.description": "Database name",
"ai_chat.builtin_tools.database.inspect_database_bundle.parameters.includeColumns.description": "Optional. Whether to include per-table field summaries. Default true.",
"ai_chat.builtin_tools.database.inspect_database_bundle.parameters.perTableColumnLimit.description": "Optional. Maximum field summaries per table. Default 8, maximum 30.",
"ai_chat.builtin_tools.database.inspect_database_bundle.parameters.tableLimit.description": "Optional. Maximum tables to return. Default 80, maximum 200.",
"ai_chat.builtin_tools.database.inspect_database_bundle.params": "connectionId, dbName, includeColumns?, tableLimit?, perTableColumnLimit?",
"ai_chat.builtin_tools.database.inspect_database_bundle.tool_description": "Get a structure overview for the specified database, returning table name list, total field count, and per-table field summary preview. Use it for unfamiliar database exploration, data mapping, and quickly choosing the next table to analyze deeply.",
"ai_chat.builtin_tools.database.inspect_table_bundle.desc": "Capture a structure snapshot for a specified table",
"ai_chat.builtin_tools.database.inspect_table_bundle.detail": "Pass connectionId, dbName, and tableName, then return columns, indexes, foreign keys, triggers, and DDL; sample rows can also be included. Useful before writing SQL, reviewing table design, or investigating side effects.",
"ai_chat.builtin_tools.database.inspect_table_bundle.parameters.connectionId.description": "Connection ID",
"ai_chat.builtin_tools.database.inspect_table_bundle.parameters.dbName.description": "Database name",
"ai_chat.builtin_tools.database.inspect_table_bundle.parameters.includeSampleRows.description": "Optional. Whether to include sample rows.",
"ai_chat.builtin_tools.database.inspect_table_bundle.parameters.sampleLimit.description": "Optional. Sample row count. Default 10, maximum 100.",
"ai_chat.builtin_tools.database.inspect_table_bundle.parameters.tableName.description": "Table name",
"ai_chat.builtin_tools.database.inspect_table_bundle.params": "connectionId, dbName, tableName, includeSampleRows?, sampleLimit?",
"ai_chat.builtin_tools.database.inspect_table_bundle.tool_description": "Get a complete structure snapshot for the specified table, returning columns, indexes, foreign keys, triggers, DDL, and optional sample rows. Use it for full table-design exploration, quickly understanding table relationships, and reducing repeated round trips.",
"ai_chat.builtin_tools.database.preview_table_rows.desc": "Preview the first rows of a specified table",
"ai_chat.builtin_tools.database.preview_table_rows.detail": "Pass connectionId, dbName, tableName, and optional limit, then return real sample rows from the table. Use it to inspect data shape, null distribution, and enum values before deciding how to write SQL.",
"ai_chat.builtin_tools.database.preview_table_rows.parameters.connectionId.description": "Connection ID",
"ai_chat.builtin_tools.database.preview_table_rows.parameters.dbName.description": "Database name",
"ai_chat.builtin_tools.database.preview_table_rows.parameters.limit.description": "Optional. Preview row count. Default 20, maximum 100.",
"ai_chat.builtin_tools.database.preview_table_rows.parameters.tableName.description": "Table name",
"ai_chat.builtin_tools.database.preview_table_rows.params": "connectionId, dbName, tableName, limit?",
"ai_chat.builtin_tools.database.preview_table_rows.tool_description": "Preview sample rows from the specified table. Use it to quickly understand field value shapes, nulls, time formats, and status enums, reducing blind SQL generation by the model.",
"ai_chat.builtin_tools.flows.active_tab.description": "Read the current editor SQL draft or table tab before field checks, index analysis, and read-only verification.",
"ai_chat.builtin_tools.flows.active_tab.title": "Read the current tab",
"ai_chat.builtin_tools.flows.ai_context.description": "Confirm which table structures are attached to the current conversation before field checks, table design review, or SQL generation.",
"ai_chat.builtin_tools.flows.ai_context.title": "Inspect current AI context",
"ai_chat.builtin_tools.flows.ai_runtime.description": "Confirm the current model, safety level, context level, Skills, and MCP tools before choosing a probe chain.",
"ai_chat.builtin_tools.flows.ai_runtime.title": "Inspect current AI capabilities",
"ai_chat.builtin_tools.flows.ai_sessions.description": "Locate previous AI sessions, first user questions, and recent replies before reusing the current tab or historical SQL context.",
"ai_chat.builtin_tools.flows.ai_sessions.title": "Review AI chat history",
"ai_chat.builtin_tools.flows.ai_setup_health.description": "Get an AI configuration health snapshot first, then decide whether to drill into providers, chat readiness, MCP, prompts, Skills, or context.",
"ai_chat.builtin_tools.flows.ai_setup_health.title": "One-shot AI setup health check",
"ai_chat.builtin_tools.flows.app_health_overview.description": "Use when AI instability, connection issues, MCP issues, or message rendering problems overlap and an overall health snapshot is needed first.",
"ai_chat.builtin_tools.flows.app_health_overview.title": "AI app health overview",
"ai_chat.builtin_tools.flows.app_logs.description": "Review ERROR/WARN lines from the gonavi.log tail, then combine MCP, connection, and current data source state for diagnosis.",
"ai_chat.builtin_tools.flows.app_logs.title": "Troubleshoot application logs",
"ai_chat.builtin_tools.flows.chat_readiness.description": "Check which chat input prerequisites are missing, such as active provider, key, endpoint, or selected model, instead of guessing from UI symptoms.",
"ai_chat.builtin_tools.flows.chat_readiness.title": "Troubleshoot chat send readiness",
"ai_chat.builtin_tools.flows.choose_tool_route.description": "Use keywords to decide which built-in probes to call, how to fill tool arguments, and whether external MCP tools are available.",
"ai_chat.builtin_tools.flows.choose_tool_route.title": "Choose an AI tool route",
"ai_chat.builtin_tools.flows.codebase_hotspots.description": "Use before splitting thousand-line components, choosing the next refactor slice, or changing UI/AI/MCP code to inspect split hotspots, risk, and validation scope.",
"ai_chat.builtin_tools.flows.codebase_hotspots.title": "Govern large frontend files",
"ai_chat.builtin_tools.flows.connection_capabilities.description": "Check whether the current connection supports database creation/deletion, result editing, SQL export, or approximate counts.",
"ai_chat.builtin_tools.flows.connection_capabilities.title": "Check data-source capability boundaries",
"ai_chat.builtin_tools.flows.connection_failures.description": "When connection failures, cooldown, or validation failures appear, get structured root cause, latest address, and next actions first.",
"ai_chat.builtin_tools.flows.connection_failures.title": "Troubleshoot connection failures and cooldown",
"ai_chat.builtin_tools.flows.context_budget.description": "When AI slows down, answers poorly, or context is too large, inspect messages, DDL, MCP schema, prompts, and Skills before narrowing context.",
"ai_chat.builtin_tools.flows.context_budget.title": "Diagnose AI context size",
"ai_chat.builtin_tools.flows.current_connection.description": "Confirm the active data source type, address, current database, and SSH/proxy status before database exploration or connection troubleshooting.",
"ai_chat.builtin_tools.flows.current_connection.title": "Inspect current connection",
"ai_chat.builtin_tools.flows.database_overview.description": "Start by seeing which tables exist and what fields they roughly contain, then drill into target tables with snapshots.",
"ai_chat.builtin_tools.flows.database_overview.title": "Quick database overview",
"ai_chat.builtin_tools.flows.deep_structure.description": "Use for index optimization, relationship mapping, implicit side-effect investigation, and DDL review.",
"ai_chat.builtin_tools.flows.deep_structure.title": "Deep-dive structure",
"ai_chat.builtin_tools.flows.docker_mcp.description": "Use when Docker README setup discovers 0 tools, containers exit immediately, or docker run arguments may be split incorrectly.",
"ai_chat.builtin_tools.flows.docker_mcp.title": "Troubleshoot Docker MCP startup",
"ai_chat.builtin_tools.flows.external_sql_dirs.description": "Confirm configured external SQL directories, their connection/database bindings, and where an opened SQL file comes from before analyzing scripts.",
"ai_chat.builtin_tools.flows.external_sql_dirs.title": "Inventory external SQL directories",
"ai_chat.builtin_tools.flows.external_sql_file.description": "Locate a script path, read SQL file content from the directory, and combine it with the active tab draft if already opened.",
"ai_chat.builtin_tools.flows.external_sql_file.title": "Read external SQL files",
"ai_chat.builtin_tools.flows.field_lookup_table.description": "Use when only a field name, business meaning, or comment keyword is known, but the exact table is still unclear.",
"ai_chat.builtin_tools.flows.field_lookup_table.title": "Find tables by field",
"ai_chat.builtin_tools.flows.locate_table_fields.description": "Find the connection, database, and table first, then confirm real field names before generating SQL.",
"ai_chat.builtin_tools.flows.locate_table_fields.title": "Locate tables and fields",
"ai_chat.builtin_tools.flows.mcp_authoring.description": "Read real field descriptions, templates, and full-command splitting rules before validating pasted commands or drafts.",
"ai_chat.builtin_tools.flows.mcp_authoring.title": "New MCP authoring guide",
"ai_chat.builtin_tools.flows.mcp_setup.description": "Confirm configured and enabled MCP services and external client write status, then use MCP runtime failure logs to explain missing tools.",
"ai_chat.builtin_tools.flows.mcp_setup.title": "Troubleshoot MCP access status",
"ai_chat.builtin_tools.flows.mcp_tool_parameters.description": "Find the real discovered MCP tool alias first, then read inputSchema, required fields, enums, and nested parameter paths.",
"ai_chat.builtin_tools.flows.mcp_tool_parameters.title": "Inspect MCP tool parameters",
"ai_chat.builtin_tools.flows.message_flow.description": "Read the real current-session message structure and anomaly signals when replies split into bubbles, tool calls do not close, or flow state looks wrong.",
"ai_chat.builtin_tools.flows.message_flow.title": "Diagnose AI message flow",
"ai_chat.builtin_tools.flows.prompts_skills.description": "Confirm current custom prompts, enabled Skills, dependency tools, and effective scope before explaining current AI behavior.",
"ai_chat.builtin_tools.flows.prompts_skills.title": "Inspect current prompts and Skills",
"ai_chat.builtin_tools.flows.providers_models.description": "Confirm which providers are configured and active, whether keys or models are missing, and why chat cannot send or model lists are empty.",
"ai_chat.builtin_tools.flows.providers_models.title": "Troubleshoot providers and models",
"ai_chat.builtin_tools.flows.readonly_validation.description": "After generating SQL, validate results on a small scope while still respecting the AI safety level.",
"ai_chat.builtin_tools.flows.readonly_validation.title": "Read-only validation",
"ai_chat.builtin_tools.flows.recent_sql_activity.description": "Check whether recent activity is mostly read or write, whether DDL or deletes occurred, and which database has the most recent errors.",
"ai_chat.builtin_tools.flows.recent_sql_activity.title": "Summarize recent SQL activity",
"ai_chat.builtin_tools.flows.recent_sql_logs.description": "Trace recently failed SQL, slow query duration, or let AI explain and optimize based on real execution history.",
"ai_chat.builtin_tools.flows.recent_sql_logs.title": "Review recent execution records",
"ai_chat.builtin_tools.flows.redis_topology.description": "Use for Redis Sentinel, Cluster, multi-node, DB switch failures, or SSH tunnel issues to get status, redacted URI, adapter, DB semantics, and next actions.",
"ai_chat.builtin_tools.flows.redis_topology.title": "Diagnose Redis topology",
"ai_chat.builtin_tools.flows.remote_agent_mcp.description": "Use when OpenClaw/Hermans run on cloud Linux while database connections and passwords stay on the Windows GoNavi machine.",
"ai_chat.builtin_tools.flows.remote_agent_mcp.title": "Connect remote Agents to GoNavi MCP",
"ai_chat.builtin_tools.flows.render_error.description": "Use when an AI message is blank or a bubble fails locally while the panel stays alive; read the isolated render-error snapshot first.",
"ai_chat.builtin_tools.flows.render_error.title": "Troubleshoot AI bubble render errors",
"ai_chat.builtin_tools.flows.safety_boundary.description": "Check whether the current state is read-only, whether DDL/DML is allowed, and whether MCP writes require allowMutating.",
"ai_chat.builtin_tools.flows.safety_boundary.title": "Check write safety boundaries",
"ai_chat.builtin_tools.flows.sample_data.description": "Confirm fields first, then inspect the first real sample rows and null patterns.",
"ai_chat.builtin_tools.flows.sample_data.title": "Understand sample data",
"ai_chat.builtin_tools.flows.saved_connections.description": "Filter locally saved data sources by keyword or type, then inspect the chosen connection state or database structure.",
"ai_chat.builtin_tools.flows.saved_connections.title": "Inventory local connection assets",
"ai_chat.builtin_tools.flows.saved_queries.description": "Find locally saved query scripts first, then check fields and run read-only validation instead of rewriting old SQL manually.",
"ai_chat.builtin_tools.flows.saved_queries.title": "Reuse saved SQL",
"ai_chat.builtin_tools.flows.shortcuts.description": "Confirm current Win/Mac shortcuts, customizations, and how to trigger result panel, AI panel, query execution, and related actions.",
"ai_chat.builtin_tools.flows.shortcuts.title": "Inspect current shortcut configuration",
"ai_chat.builtin_tools.flows.sql_editor_transaction.description": "Confirm whether SQL editor DML enters a managed transaction, current commit mode, pending transactions, and commit semantics after update/insert/delete.",
"ai_chat.builtin_tools.flows.sql_editor_transaction.title": "Check SQL editor transactions",
"ai_chat.builtin_tools.flows.sql_risk.description": "Before execution, deletion, update, DDL, or batch SQL, check statement count, write/DDL risk, WHERE clauses, and current safety policy.",
"ai_chat.builtin_tools.flows.sql_risk.title": "Pre-check SQL risk",
"ai_chat.builtin_tools.flows.sql_snippets.description": "Find team SQL snippet templates, completion prefixes, and common skeletons before deciding whether to rewrite.",
"ai_chat.builtin_tools.flows.sql_snippets.title": "Find SQL snippet templates",
"ai_chat.builtin_tools.flows.support_bundle.description": "Use when troubleshooting evidence needs to be collected at once, without secrets or database passwords.",
"ai_chat.builtin_tools.flows.support_bundle.title": "Export AI troubleshooting support bundle",
"ai_chat.builtin_tools.flows.table_snapshot.description": "Return columns, indexes, foreign keys, triggers, and DDL in one call; sample rows can be included when needed to reduce round trips.",
"ai_chat.builtin_tools.flows.table_snapshot.title": "One-shot table snapshot",
"ai_chat.builtin_tools.flows.upstream_request.description": "Read redacted gonavi.log request records when the user needs upstream payloads, requestId, status codes, latency, or request body previews.",
"ai_chat.builtin_tools.flows.upstream_request.title": "Trace AI upstream requests",
"ai_chat.builtin_tools.flows.workspace_tabs.description": "See which SQL, table, or command tabs are open, then inspect the target tab for field checks, comparisons, and read-only validation.",
"ai_chat.builtin_tools.flows.workspace_tabs.title": "Inventory the current workspace",
"ai_chat.composer_notice.missing_model.description": "Откройте список моделей ниже и выберите модель. Если список пуст, проверьте конечную точку поставщика и API Key.",
"ai_chat.composer_notice.missing_model.title": "Сначала выберите модель",
"ai_chat.composer_notice.missing_provider.description": "Сначала добавьте и включите поставщика моделей в настройках AI.",
"ai_chat.composer_notice.missing_provider.title": "Нет доступного поставщика",
"ai_chat.composer_notice.model_fetch_failed.default_description": "Проверьте конечную точку поставщика, API Key или права учетной записи, затем снова откройте список моделей.",
"ai_chat.composer_notice.model_fetch_failed.detail_description": "Детали поставщика: {{detail}}",
"ai_chat.composer_notice.model_fetch_failed.title": "Не удалось загрузить список моделей",
"ai_chat.header.action.export": "Экспорт",
"ai_chat.header.default_session_title": "Новый чат",
"ai_chat.header.export_time": "Время экспорта:",
"ai_chat.header.export_user": "Вы",
"ai_chat.header.mode_tabs.aria_label": "Режим работы AI",
"ai_chat.header.mode.chat": "Чат",
"ai_chat.header.mode.history": "История",
"ai_chat.header.mode.insights": "Автоинсайты",
"ai_chat.header.session.connected": "{{title}} · Подключено",
"ai_chat.header.tooltip.close": "Закрыть панель",
"ai_chat.header.tooltip.export_markdown": "Экспортировать как Markdown",
"ai_chat.header.tooltip.history": "История чатов",
"ai_chat.header.tooltip.new_chat": "Новый чат",
"ai_chat.header.tooltip.new_chat_clear": "Новый чат (очистить текущий)",
"ai_chat.header.tooltip.settings": "Настройки AI",
"ai_chat.history.action.new_chat": "Начать новый чат",
"ai_chat.history.default_session_title": "Новый чат",
"ai_chat.history.empty.no_history": "Истории пока нет",
"ai_chat.history.empty.no_matches": "Нет подходящих чатов",
"ai_chat.history.search.placeholder": "Поиск по истории...",
"ai_chat.history.title": "История чатов",
"ai_chat.history.tooltip.collapse": "Свернуть",
"ai_chat.history.tooltip.delete": "Удалить",
"ai_chat.input.action.send": "Отправить",
"ai_chat.input.action.stop": "Остановить генерацию",
"ai_chat.input.attachment.excel.worksheet_header": "[Лист: {{sheetName}}]",
"ai_chat.input.attachment.kind.document": "Файл",
"ai_chat.input.attachment.kind.excel": "Excel",
"ai_chat.input.attachment.kind.file": "Файл",
"ai_chat.input.attachment.kind.image": "Изображение",
"ai_chat.input.attachment.kind.markdown": "Markdown",
"ai_chat.input.attachment.kind.pdf": "PDF",
"ai_chat.input.attachment.kind.text": "Текст",
"ai_chat.input.attachment.kind.word": "Word",
"ai_chat.input.attachment.message.read_failed": "Не удалось прочитать вложение {{name}}: {{detail}}",
"ai_chat.input.attachment.message.warning": "{{name}}: {{message}}",
"ai_chat.input.attachment.prompt.content_truncated": "[Текст вложения сокращён]",
"ai_chat.input.attachment.prompt.default_user_content": "Продолжайте обработку с учётом следующего содержимого вложений.",
"ai_chat.input.attachment.prompt.extract_warning": "- Примечание по извлечению: {{message}}",
"ai_chat.input.attachment.prompt.heading": "### Вложение {{index}}: {{name}}",
"ai_chat.input.attachment.prompt.kind": "- Тип: {{kind}}",
"ai_chat.input.attachment.prompt.mime": "- MIME: {{mimeType}}",
"ai_chat.input.attachment.prompt.no_text": "Не удалось извлечь текст вложения, пригодный для отправки.",
"ai_chat.input.attachment.prompt.size": "- Размер: {{size}}",
"ai_chat.input.attachment.prompt.text_truncated": "- Примечание по извлечению: текст вложения был слишком длинным и перед отправкой сокращён.",
"ai_chat.input.attachment.prompt.wrapper_end": "</Вложения, загруженные пользователем>",
"ai_chat.input.attachment.prompt.wrapper_start": "<Вложения, загруженные пользователем>",
"ai_chat.input.attachment.remove_file": "Удалить вложение",
"ai_chat.input.attachment.remove_image": "Удалить изображение",
"ai_chat.input.attachment.warning.extract_failed": "Не удалось извлечь содержимое вложения: {{detail}}",
"ai_chat.input.attachment.warning.legacy_office_partial_text": "Для старых бинарных форматов Office используется только облегчённое извлечение текстовых фрагментов; для более полного содержимого перед загрузкой преобразуйте файл в docx/xlsx.",
"ai_chat.input.attachment.warning.pdf_no_text": "Из PDF не удалось извлечь читаемый текст; если это скан или PDF со сложной кодировкой, скопируйте основной текст перед отправкой.",
"ai_chat.input.attachment.warning.pdf_partial_text": "Для PDF использовано облегчённое извлечение текста; содержимое из сканов или со сжатыми шрифтами может считываться не полностью.",
"ai_chat.input.attachment.warning.too_large": "Файл превышает {{size}}; сведения о файле были добавлены, но содержимое не считывалось.",
"ai_chat.input.attachment.warning.unsupported_type": "Этот тип файла был прикреплён, но текст содержимого пока не извлекался; если модели нужно проанализировать содержимое, используйте markdown, txt, docx, xlsx или pdf.",
"ai_chat.input.context.add": "Добавить",
"ai_chat.input.context.connection_tooltip": "Текущий контекст запроса данных",
"ai_chat.input.context.current_count": "Текущий контекст · {{count}}",
"ai_chat.input.context.label": "Связанный контекст",
"ai_chat.input.context.memory_tooltip": "Использование памяти текущего сеанса. При достижении лимита {{limit}} начнется автоматическое сжатие.",
"ai_chat.input.context.selector.cancel": "Отмена",
"ai_chat.input.context.selector.confirm": "Синхронизировать выбранные таблицы в контекст",
"ai_chat.input.context.selector.database_placeholder": "Переключить базу данных",
"ai_chat.input.context.selector.empty_no_match": "Таблицы, подходящие под '{{searchText}}', не найдены",
"ai_chat.input.context.selector.empty_no_tables": "В текущей базе данных нет таблиц, которые можно привязать к контексту",
"ai_chat.input.context.selector.invert_selection": "Инвертировать совпавший выбор",
"ai_chat.input.context.selector.search_placeholder": "Искать имена таблиц в текущей базе данных...",
"ai_chat.input.context.selector.select_all": "Выбрать все совпавшие таблицы ({{count}})",
"ai_chat.input.context.selector.title": "Привязать структуры таблиц к контексту",
"ai_chat.input.context.tag_label": "Связанный контекст ({{count}})",
"ai_chat.input.message.context_added": "Структуры таблиц добавлены в контекст: {{count}}",
"ai_chat.input.message.context_load_failed": "Не удалось загрузить контекст таблиц: {{detail}}",
"ai_chat.input.message.context_removed": "Структуры таблиц удалены из контекста: {{count}}",
"ai_chat.input.message.context_sync_failed": "Не удалось синхронизировать контекст AI: {{detail}}",
"ai_chat.input.message.context_synced": "Контекст синхронизирован: добавлено {{added}}, удалено {{removed}}",
"ai_chat.input.message.fetch_table_schema_failed": "Не удалось загрузить структуру {{table}}: {{detail}}",
"ai_chat.input.message.fetch_tables_failed": "Не удалось загрузить таблицы: {{detail}}",
"ai_chat.input.message.select_database_context_first": "Перед добавлением контекста чата выберите базу данных слева",
"ai_chat.input.message.selection_unchanged": "Выбор таблиц не изменился",
"ai_chat.input.modal.empty_tables": "Нет таблиц, соответствующих «{{query}}»",
"ai_chat.input.modal.invert_matching": "Инвертировать найденные результаты",
"ai_chat.input.modal.ok": "Синхронизировать выбранные таблицы с контекстом",
"ai_chat.input.modal.search_table.placeholder": "Поиск таблиц в текущей базе данных...",
"ai_chat.input.modal.select_all_matching": "Выбрать все найденные таблицы ({{count}})",
"ai_chat.input.modal.switch_database.placeholder": "Сменить базу данных",
"ai_chat.input.modal.title": "Добавить контекст схемы таблиц базы данных",
"ai_chat.input.model.placeholder": "Выберите модель",
"ai_chat.input.placeholder": "Введите сообщение... ({{shortcut}}, Shift+Enter — новая строка, / — команды)",
"ai_chat.input.placeholder_compact": "Введите сообщение... {{shortcut}} · / команды",
"ai_chat.input.shortcut.disabled": "Отправка по горячей клавише отключена",
"ai_chat.input.shortcut.send_with_combo": "{{shortcut}} — отправить",
"ai_chat.input.slash.activity.desc": "Суммировать недавние выполнения, ошибки и горячие точки",
"ai_chat.input.slash.activity.keywords": "activity|sql логи|последние выполнения|ошибка",
"ai_chat.input.slash.activity.label": "🕘 Недавняя SQL-активность",
"ai_chat.input.slash.activity.prompt": "Сначала вызовите inspect_recent_sql_activity, суммируйте недавнюю SQL-активность, горячие точки ошибок и основные шаблоны чтения и записи.",
"ai_chat.input.slash.airender.desc": "Прочитать последнюю запись о сбое рендера сообщения AI",
"ai_chat.input.slash.airender.keywords": "ошибка рендера|пустой пузырь|ai сообщение|render|белый блок",
"ai_chat.input.slash.airender.label": "🧯 Сбой рендера AI",
"ai_chat.input.slash.airender.prompt": "Сначала вызовите inspect_ai_last_render_error, скажите, какое сообщение упало в последней записи о сбое рендера AI, что говорится в кратком описании ошибки и что мне проверять дальше.",
"ai_chat.input.slash.applog.desc": "Просмотреть недавние логи приложения GoNavi",
"ai_chat.input.slash.applog.keywords": "логи|gonavi.log|ошибка mcp|сбой подключения|ошибка запуска",
"ai_chat.input.slash.applog.label": "🪵 Логи приложения",
"ai_chat.input.slash.applog.prompt": "Сначала вызовите inspect_app_logs, посмотрите недавние ошибки и предупреждения в логах приложения GoNavi; если я упоминаю ошибки подключения, сбои запуска MCP, ошибки старта или gonavi.log, в первую очередь фильтруйте по этим ключевым словам.",
"ai_chat.input.slash.budget.desc": "Проверить объем сообщений, DDL, MCP schema и Skills",
"ai_chat.input.slash.budget.keywords": "контекст|context|объем|бюджет|медленно|ошибочные ответы|schema слишком большая|результаты инструментов",
"ai_chat.input.slash.budget.label": "🧠 Объем контекста",
"ai_chat.input.slash.budget.prompt": "Сначала вызовите inspect_ai_context_budget, проверьте риски объема текущих сообщений диалога, результатов инструментов, DDL, MCP schema, подсказок и Skills, а затем скажите, какой контекст стоит сузить.",
"ai_chat.input.slash.category.diagnose.description": "Сначала запускать встроенные пробы, чтобы увидеть реальное состояние AI, MCP и недавней SQL-активности.",
"ai_chat.input.slash.category.diagnose.title": "Диагностические пробы",
"ai_chat.input.slash.category.generate.description": "Сразу создавать SQL, тестовые данные или черновики миграции.",
"ai_chat.input.slash.category.generate.title": "Генерация SQL",
"ai_chat.input.slash.category.review.description": "Объяснять SQL и проверять дизайн таблиц и стратегию индексов.",
"ai_chat.input.slash.category.review.title": "Ревью структуры",
"ai_chat.input.slash.connfail.desc": "Суммировать недавние ошибки подключения, охлаждение и сбои проверки",
"ai_chat.input.slash.connfail.keywords": "сбой подключения|cooldown|ошибка проверки|ssh|mysql",
"ai_chat.input.slash.connfail.label": "🧯 Проба сбоев подключения",
"ai_chat.input.slash.connfail.prompt": "Сначала вызовите inspect_recent_connection_failures, суммируйте реальные выводы из логов по недавним ошибкам подключения к базам данных, охлаждению подключений, сбоям проверки и исключениям SSH-туннелей; если уже есть понятный адрес или тип, дополнительно используйте inspect_current_connection или inspect_saved_connections, чтобы еще сузить область.",
"ai_chat.input.slash.diff.desc": "Сравнить две таблицы и создать изменения",
"ai_chat.input.slash.diff.keywords": "diff|миграция|alter",
"ai_chat.input.slash.diff.label": "🔄 Сравнение таблиц",
"ai_chat.input.slash.diff.prompt": "Сравните различия структуры этих двух таблиц и создайте ALTER-выражения для миграции со старой версии на новую:",
"ai_chat.input.slash.empty.description": "Сначала попробуйте эти частые точки входа, чтобы быстро перейти к генерации SQL, проверке AI или диагностике MCP.",
"ai_chat.input.slash.empty.summary": "Сейчас доступно {{count}} slash-команд. Ищите по имени команды, описанию или ключевому слову.",
"ai_chat.input.slash.empty.title": "Подходящих slash-команд не найдено",
"ai_chat.input.slash.explain.desc": "Объяснить логику выбранного SQL",
"ai_chat.input.slash.explain.keywords": "объяснить|sql|логика",
"ai_chat.input.slash.explain.label": "💡 Объяснить SQL",
"ai_chat.input.slash.explain.prompt": "Объясните логику выполнения этого SQL и назначение каждого шага:\n```sql\n\n```",
"ai_chat.input.slash.health.desc": "Запустить пробы для текущей конфигурации AI",
"ai_chat.input.slash.health.keywords": "health|проверка состояния|ai конфигурация|зонд",
"ai_chat.input.slash.health.label": "🩺 Проверка AI",
"ai_chat.input.slash.health.prompt": "Сначала вызовите inspect_ai_setup_health, выполните полную проверку текущей конфигурации GoNavi AI, а затем подведите blockers, warnings и nextActions.",
"ai_chat.input.slash.hotspots.desc": "Посмотреть кандидатов на разбиение больших файлов и область тестов",
"ai_chat.input.slash.hotspots.keywords": "большой файл|раздутый|разделение|рефакторинг|hotspots|горячие точки кода|тысячи строк",
"ai_chat.input.slash.hotspots.label": "🧱 Горячие точки кода",
"ai_chat.input.slash.hotspots.prompt": "Сначала вызовите inspect_codebase_hotspots, прочитайте текущие горячие точки больших файлов фронтенда GoNavi, рекомендуемые срезы для разбиения и цели тестирования, а затем скажите, какой файл лучше разбирать следующим, какую границу выбрать и какие проверки нужно запустить. Ключевые слова:",
"ai_chat.input.slash.index.desc": "Рекомендовать оптимальный план индексов",
"ai_chat.input.slash.index.keywords": "index|индекс|медленный запрос",
"ai_chat.input.slash.index.label": "📊 Рекомендации по индексам",
"ai_chat.input.slash.index.prompt": "Рекомендуйте оптимальный план индексов на основе текущей структуры таблиц и типовых сценариев запросов, а также предоставьте DDL:",
"ai_chat.input.slash.mcp.desc": "Проверить сервисы MCP и состояние внешних клиентов",
"ai_chat.input.slash.mcp.keywords": "mcp|codex|claude|openclaw|hermans|внешний клиент",
"ai_chat.input.slash.mcp.label": "🪛 Разобрать подключение MCP",
"ai_chat.input.slash.mcp.prompt": "Сначала вызовите inspect_mcp_setup, перечислите текущие сервисы MCP, результаты обнаружения инструментов, а также состояние подключения локальных клиентов Claude Code / Codex и удаленных Agent OpenClaw / Hermans.",
"ai_chat.input.slash.mcpadd.desc": "Посмотреть, как заполнять command, args, env и шаблоны",
"ai_chat.input.slash.mcpadd.keywords": "добавить mcp|command|args|env|шаблон",
"ai_chat.input.slash.mcpadd.label": "🧭 Подсказки по добавлению MCP",
"ai_chat.input.slash.mcpadd.prompt": "Сначала вызовите inspect_mcp_authoring_guide; если я приложил полный стартовый command или черновик, дополнительно вызовите inspect_mcp_draft, чтобы просчитать поля и проблемы валидации. Затем вместе с inspect_mcp_setup скажите, как заполнять command, args, env и timeout при добавлении сервиса GoNavi MCP и какой шаблон ближе всего подходит.",
"ai_chat.input.slash.mcpdraft.desc": "Проверить, как разложить одну команду запуска MCP",
"ai_chat.input.slash.mcpdraft.keywords": "черновик mcp|проверка mcp|fullcommand|команда запуска|разделение аргументов|command|args|env",
"ai_chat.input.slash.mcpdraft.label": "🧪 Проверка черновика MCP",
"ai_chat.input.slash.mcpdraft.prompt": "Сначала вызовите inspect_mcp_draft, чтобы проверить предоставленный мной MCP fullCommand или черновик command/args/env/timeout. Верните результат автоматического разбиения, превью запуска, suggestedServerSeed, ошибки, предупреждения и nextActions; если еще не хватает пояснений по полям, дополнительно вызовите inspect_mcp_authoring_guide.",
"ai_chat.input.slash.mcpfail.desc": "Прочитать недавние логи ошибок запуска, обнаружения и вызовов MCP",
"ai_chat.input.slash.mcpfail.keywords": "mcpfail|ошибка mcp|ошибка выполнения|найдено 0 инструментов|stdio|docker mcp|http mcp|ошибка запуска|ошибка вызова",
"ai_chat.input.slash.mcpfail.label": "🧯 Сбои MCP во время работы",
"ai_chat.input.slash.mcpfail.prompt": "Сначала вызовите inspect_mcp_runtime_failures, прочитайте недавние логи ошибок запуска MCP, обнаружения инструментов, вызовов инструментов, stdio, Docker или HTTP MCP, а затем вместе с текущей конфигурацией сервиса MCP определите причину и nextActions. Ключевое слово или имя сервиса:",
"ai_chat.input.slash.mcptool.desc": "Проверить schema MCP-инструмента и формат arguments",
"ai_chat.input.slash.mcptool.keywords": "mcp инструмент|аргументы mcp инструмента|schema|arguments|параметры|вызов инструмента|inputschema",
"ai_chat.input.slash.mcptool.label": "🧩 Аргументы MCP-инструмента",
"ai_chat.input.slash.mcptool.prompt": "Сначала вызовите inspect_mcp_setup, чтобы найти alias уже обнаруженного MCP-инструмента. Если я уже дал имя инструмента или ключевое слово, дополнительно вызовите inspect_mcp_tool_schema, прочитайте соответствующий inputSchema и скажите, какие параметры обязательны, какие типы полей, enum-значения, вложенные пути и как должен выглядеть arguments JSON.",
"ai_chat.input.slash.mock.desc": "Создать тестовые данные INSERT",
"ai_chat.input.slash.mock.keywords": "mock|тестовые данные|insert",
"ai_chat.input.slash.mock.label": "🎲 Тестовые данные",
"ai_chat.input.slash.mock.prompt": "Создайте 10 реалистичных для бизнеса INSERT-выражений с тестовыми данными для текущих связанных таблиц:",
"ai_chat.input.slash.optimize.desc": "Анализировать узкие места производительности SQL",
"ai_chat.input.slash.optimize.keywords": "оптимизация|индекс|производительность",
"ai_chat.input.slash.optimize.label": "⚡ Анализ оптимизации",
"ai_chat.input.slash.optimize.prompt": "Проанализируйте этот SQL на проблемы производительности и предоставьте оптимизированную версию:\n```sql\n\n```",
"ai_chat.input.slash.query.desc": "Опишите, что хотите запросить",
"ai_chat.input.slash.query.keywords": "запрос|естественный язык|поиск данных",
"ai_chat.input.slash.query.label": "🔍 Запрос на естественном языке",
"ai_chat.input.slash.query.prompt": "Напишите SQL-запрос:",
"ai_chat.input.slash.safety.desc": "Подтвердить границы чтения/записи и allowMutating",
"ai_chat.input.slash.safety.keywords": "безопасность|только чтение|allowmutating|ddl|dml",
"ai_chat.input.slash.safety.label": "🛡️ Безопасность записи",
"ai_chat.input.slash.safety.prompt": "Сначала вызовите inspect_ai_safety, скажите, какие сейчас границы записи у AI и GoNavi MCP, работают ли они только на чтение и нужен ли allowMutating для execute_sql.",
"ai_chat.input.slash.schema.desc": "Оценить качество проектирования таблиц",
"ai_chat.input.slash.schema.keywords": "schema|структура таблицы|дизайн",
"ai_chat.input.slash.schema.label": "🏗️ Ревью дизайна таблиц",
"ai_chat.input.slash.schema.prompt": "Проведите ревью текущего связанного дизайна таблиц, включая типы полей, нормализацию, стратегию индексов и предложения по улучшению:",
"ai_chat.input.slash.shortcuts.desc": "Прочитать текущую конфигурацию сочетаний Win/Mac",
"ai_chat.input.slash.shortcuts.keywords": "горячие клавиши|shortcuts|область результатов|mac|windows",
"ai_chat.input.slash.shortcuts.label": "⌨️ Проба горячих клавиш",
"ai_chat.input.slash.shortcuts.prompt": "Сначала вызовите inspect_shortcuts, расскажите текущую конфигурацию горячих клавиш GoNavi, особенно как на текущей платформе и на другой платформе выполняются SQL, переключение области результатов, открытие панели AI и отправка сообщений AI, и были ли изменены значения по умолчанию.",
"ai_chat.input.slash.sql.desc": "Описать требования и создать выражения",
"ai_chat.input.slash.sql.keywords": "sql|создать|текст запроса",
"ai_chat.input.slash.sql.label": "📝 Создать SQL",
"ai_chat.input.slash.sql.prompt": "Создайте SQL по следующим требованиям:",
"ai_chat.input.slash.tools.desc": "Выбрать нужную встроенную пробу по ключевому слову",
"ai_chat.input.slash.tools.keywords": "каталог инструментов|встроенные инструменты|toolcatalog|подсказки параметров|arguments|маршрут зонда",
"ai_chat.input.slash.tools.label": "🧰 Каталог инструментов",
"ai_chat.input.slash.tools.prompt": "Сначала вызовите inspect_ai_tool_catalog, отфильтруйте по ключевым словам моего вопроса рекомендуемые сценарии, подсказки по параметрам встроенных инструментов и текущую сводку по MCP-инструментам, а затем скажите, какой инструмент мне вызвать следующим. Ключевые слова:",
"ai_chat.input.slash.tx.desc": "Проверить режим коммита SQL-редактора и ожидающие транзакции",
"ai_chat.input.slash.tx.keywords": "транзакция|transaction|commit|автоматический commit|ручной commit|ожидающая транзакция|dml",
"ai_chat.input.slash.tx.label": "🔁 Состояние SQL-транзакции",
"ai_chat.input.slash.tx.prompt": "Сначала вызовите inspect_sql_editor_transaction, расскажите текущую семантику управляемых DML-транзакций в SQL-редакторе, настройки ручного/автоматического коммита, входят ли активные SQL-вкладки в транзакцию, есть ли ожидающие транзакции и нужно ли мне дальше коммитить, откатывать или продолжать выполнение.",
"ai_chat.input.status.action.fix_provider": "Исправить конфигурацию провайдера",
"ai_chat.input.status.action.open_settings": "Открыть настройки AI",
"ai_chat.input.status.action.reload_models": "Перезагрузить модели",
"ai_chat.input.status.dismiss_aria_label": "Закрыть уведомление о статусе AI",
"ai_chat.input.status.issue.missing_base_url": "URL конечной точки",
"ai_chat.input.status.issue.missing_secret": "API-ключ",
"ai_chat.input.status.issue.missing_selected_model": "модель",
"ai_chat.input.status.issue.separator": ", ",
"ai_chat.input.status.label.loading": "Загрузка",
"ai_chat.input.status.label.model_required": "Нужна модель",
"ai_chat.input.status.label.needs_fix": "Требует исправления",
"ai_chat.input.status.label.not_ready": "Не готово",
"ai_chat.input.status.label.ready": "Готово",
"ai_chat.input.status.missing_model.description.available": "Сейчас доступно {{count}} моделей. Выберите одну перед отправкой.",
"ai_chat.input.status.missing_model.description.empty": "Если список пуст, проверьте конечную точку провайдера, API-ключ и доступ к моделям.",
"ai_chat.input.status.missing_model.title.loading": "Загружается список моделей для {{provider}}",
"ai_chat.input.status.missing_model.title.select": "Сначала выберите модель для {{provider}}",
"ai_chat.input.status.missing_provider.description.none": "Сначала добавьте и включите провайдера моделей в настройках AI.",
"ai_chat.input.status.missing_provider.description.unselected": "Перед отправкой выберите активного провайдера в настройках AI.",
"ai_chat.input.status.missing_provider.title.none": "Нет доступного провайдера",
"ai_chat.input.status.missing_provider.title.unselected": "Провайдеры настроены, но сейчас ни один не выбран как активный",
"ai_chat.input.status.provider_fallback_name": "Текущий провайдер",
"ai_chat.input.status.provider_incomplete.description": "Перед отправкой завершите настройку провайдера, чтобы запрос не завершился ошибкой сразу.",
"ai_chat.input.status.provider_incomplete.title": "У {{provider}} не хватает: {{issues}}",
"ai_chat.input.status.ready.auto_model": "Выбрано автоматически",
"ai_chat.input.status.ready.description.no_context": "Можно отправлять запрос. Для более точных рекомендаций по базе данных сначала выберите подключение или добавьте контекст со схемой таблиц.",
"ai_chat.input.status.ready.description.with_connection": "Текущее подключение уже выбрано. Для более точных рекомендаций по базе данных добавьте и контекст со схемой таблиц.",
"ai_chat.input.status.ready.description.with_context": "Сейчас подключено {{count}} контекстов со схемами таблиц. Можно отправлять запрос.",
"ai_chat.input.status.ready.title": "AI готов: {{provider}} / {{model}}",
"ai_chat.input.tooltip.attach_table_context": "Добавить контекст таблиц базы данных",
"ai_chat.input.tooltip.slash_command": "Слэш-команды",
"ai_chat.input.tooltip.upload_attachment": "Загрузить вложение (изображения, Markdown, Word, Excel, PDF, текст)",
"ai_chat.input.tooltip.upload_image": "Загрузить изображение или скриншот",
"ai_chat.inspection.ai_config.error.inspect_ai_chat_readiness": "Не удалось прочитать предварительные условия AI-чата",
"ai_chat.inspection.ai_config.error.inspect_ai_guidance": "Не удалось прочитать текущую конфигурацию AI-промптов и Skills",
"ai_chat.inspection.ai_config.error.inspect_ai_providers": "Не удалось прочитать текущую конфигурацию поставщика AI",
"ai_chat.inspection.ai_config.error.inspect_ai_runtime": "Не удалось прочитать текущее состояние выполнения AI",
"ai_chat.inspection.ai_config.error.inspect_ai_safety": "Не удалось прочитать текущую границу безопасности AI",
"ai_chat.inspection.ai_config.error.inspect_ai_setup_health": "Не удалось проверить текущую AI-настройку",
"ai_chat.inspection.ai_config.error.inspect_ai_tool_catalog": "Не удалось прочитать каталог AI-инструментов",
"ai_chat.inspection.ai_config.error.inspect_mcp_authoring_guide": "Не удалось прочитать руководство по созданию MCP",
"ai_chat.inspection.ai_config.error.inspect_mcp_docker_setup": "Не удалось проверить настройку Docker MCP",
"ai_chat.inspection.ai_config.error.inspect_mcp_draft": "Не удалось проверить черновик MCP",
"ai_chat.inspection.ai_config.error.inspect_mcp_remote_access": "Не удалось прочитать руководство по удаленному доступу MCP",
"ai_chat.inspection.ai_config.error.inspect_mcp_setup": "Не удалось прочитать состояние настройки MCP",
"ai_chat.inspection.ai_config.error.inspect_mcp_tool_schema": "Не удалось прочитать schema параметров MCP-инструмента",
"ai_chat.inspection.ai_context.linked_summary": "Сейчас связано контекстов схем таблиц: {{count}}",
"ai_chat.inspection.ai_context.none_linked": "Сейчас нет связанных контекстов схем таблиц AI",
"ai_chat.inspection.ai_sessions.untitled": "Безымянный сеанс",
"ai_chat.inspection.app_health.app_log.unread": "Логи приложения GoNavi недоступны для чтения: {{detail}}",
"ai_chat.inspection.app_health.connection_failures.unread": "Логи ошибок подключения недоступны для чтения: {{detail}}",
"ai_chat.inspection.app_health.error.app_health_failed": "Не удалось прочитать обзор состояния приложения AI",
"ai_chat.inspection.app_health.error.support_bundle_failed": "Не удалось создать пакет поддержки AI",
"ai_chat.inspection.app_health.last_render_error.empty_summary": "Ошибки рендеринга сообщений AI пока не зафиксированы.",
"ai_chat.inspection.app_health.log_reading_unavailable": "Текущая среда выполнения не предоставляет возможность чтения логов",
"ai_chat.inspection.app_health.message.blocked": "В состоянии приложения AI есть {{count}} блокирующих проблем; сначала исправьте поставщика и предварительные условия отправки",
"ai_chat.inspection.app_health.message.degraded": "В состоянии приложения AI есть сигналы аномалий времени выполнения; сначала углубитесь в логи или записи ошибок подключения",
"ai_chat.inspection.app_health.message.needs_attention": "Состояние приложения AI в целом пригодно к работе, но есть еще {{count}} рекомендаций",
"ai_chat.inspection.app_health.message.ready": "Обзор состояния приложения AI пройден; в конфигурации AI, логах, ошибках подключения и контексте рабочей области нет очевидных проблем",
"ai_chat.inspection.app_health.next_action.enable_app_log_reading": "Убедитесь, что текущая среда может читать gonavi.log, затем вызовите inspect_app_logs для подробностей логов",
"ai_chat.inspection.app_health.next_action.inspect_app_log_errors": "Вызовите inspect_app_logs, чтобы посмотреть последние исходные строки ERROR/WARN и понять, влияют ли они на AI, MCP или подключения к базе данных",
"ai_chat.inspection.app_health.next_action.inspect_app_log_warnings": "Если пользователь сообщает о нестабильности, сначала вызовите inspect_app_logs и проверьте, сосредоточены ли WARN вокруг AI/MCP/подключений",
"ai_chat.inspection.app_health.next_action.inspect_last_render_error": "Вызовите inspect_ai_last_render_error, чтобы посмотреть messageId, предпросмотр содержимого и стек компонентов последней ошибки рендеринга",
"ai_chat.inspection.app_health.next_action.inspect_recent_connection_failures": "Вызовите inspect_recent_connection_failures, чтобы посмотреть последнюю причину ошибки подключения, затем решите, проверять ли текущее подключение или сохраненную конфигурацию",
"ai_chat.inspection.app_health.next_action.open_sql_tab": "Чтобы проанализировать текущий SQL, сначала откройте или выберите целевую вкладку SQL, затем вызовите inspect_active_tab",
"ai_chat.inspection.app_health.warning.app_log_errors": "В последних логах приложения есть {{count}} записей ERROR; сначала следует проверить inspect_app_logs",
"ai_chat.inspection.app_health.warning.app_log_unread": "Сейчас невозможно прочитать логи приложения GoNavi, поэтому для ошибок запуска и ошибок MCP/подключения нет лог-доказательств",
"ai_chat.inspection.app_health.warning.app_log_warnings": "В последних логах приложения есть {{count}} записей WARN; проверьте, являются ли они известными игнорируемыми предупреждениями",
"ai_chat.inspection.app_health.warning.connection_failures_recent": "Недавно обнаружено {{count}} записей об ошибках подключения/cooldown",
"ai_chat.inspection.app_health.warning.connection_failures_unread": "Сейчас невозможно прочитать логи ошибок подключения, поэтому для cooldown подключений к базе данных и ошибок валидации нет структурированных доказательств",
"ai_chat.inspection.app_health.warning.last_render_error": "Недавно зафиксирована ошибка рендеринга сообщения AI, она может влиять на отображение пузыря ответа или рендеринг Markdown",
"ai_chat.inspection.app_health.warning.no_workspace_tabs": "В текущей рабочей области нет открытых вкладок, поэтому у AI нет активного контекста редактора для прямого чтения",
"ai_chat.inspection.app_log.message.no_keyword_match": "В последних логах нет записей по ключевому слову \"{{keyword}}\".",
"ai_chat.inspection.app_log.message.no_readable_entries": "В последних логах нет доступных для чтения записей.",
"ai_chat.inspection.codebase_hotspots.connection_modal.preferred_next_slice": "TLS configuration section",
"ai_chat.inspection.codebase_hotspots.connection_modal.safe_seam": "The connection form already has presentation utilities; first extract configuration sections shown per data source.",
"ai_chat.inspection.codebase_hotspots.connection_modal.suggested_slice.jvm_section": "JVM configuration section",
"ai_chat.inspection.codebase_hotspots.connection_modal.suggested_slice.mongodb_section": "MongoDB configuration section",
"ai_chat.inspection.codebase_hotspots.connection_modal.suggested_slice.ssh_proxy_section": "SSH/proxy configuration section",
"ai_chat.inspection.codebase_hotspots.connection_modal.suggested_slice.tls_section": "TLS configuration section",
"ai_chat.inspection.codebase_hotspots.connection_modal.verification.browser_smoke": "Open the add/edit connection dialog in a browser and switch MySQL, Oracle, MongoDB, and Redis forms.",
"ai_chat.inspection.codebase_hotspots.connection_modal.why": "Multi-source connection forms are still concentrated in one component, so adding data sources or secret rules can affect each other.",
"ai_chat.inspection.codebase_hotspots.data_grid.preferred_next_slice": "Result export toolbar",
"ai_chat.inspection.codebase_hotspots.data_grid.safe_seam": "Extract the pure display toolbar and menu item generation first; do not move data-editing transaction state yet.",
"ai_chat.inspection.codebase_hotspots.data_grid.suggested_slice.cell_edit_transaction_hint": "Cell edit transaction hint",
"ai_chat.inspection.codebase_hotspots.data_grid.suggested_slice.column_header_menu": "Column header menu",
"ai_chat.inspection.codebase_hotspots.data_grid.suggested_slice.ddl_view": "DDL view",
"ai_chat.inspection.codebase_hotspots.data_grid.suggested_slice.result_export_toolbar": "Result export toolbar",
"ai_chat.inspection.codebase_hotspots.data_grid.verification.browser_smoke": "Run a query in the browser and verify the result table, export, column menu, and table editing entry.",
"ai_chat.inspection.codebase_hotspots.data_grid.why": "Result display, editing, DDL, export, and column operations are coupled, so a focused fix can affect the query result area.",
"ai_chat.inspection.codebase_hotspots.data_sync.preferred_next_slice": "Sync precheck results",
"ai_chat.inspection.codebase_hotspots.data_sync.safe_seam": "Make precheck results a pure display component first, keeping connection selection and execution actions in the parent component.",
"ai_chat.inspection.codebase_hotspots.data_sync.suggested_slice.connection_selection": "Connection selection area",
"ai_chat.inspection.codebase_hotspots.data_sync.suggested_slice.execution_logs": "Execution log area",
"ai_chat.inspection.codebase_hotspots.data_sync.suggested_slice.precheck_results": "Sync precheck results",
"ai_chat.inspection.codebase_hotspots.data_sync.suggested_slice.table_mapping": "Table mapping area",
"ai_chat.inspection.codebase_hotspots.data_sync.verification.browser_smoke": "Open data sync in a browser and verify connection selection, table mapping, precheck, and execution logs.",
"ai_chat.inspection.codebase_hotspots.data_sync.why": "Data sync connections, table mapping, prechecks, and execution results are concentrated, so database dialect issues can be hidden.",
"ai_chat.inspection.codebase_hotspots.driver_manager.preferred_next_slice": "Driver status list",
"ai_chat.inspection.codebase_hotspots.driver_manager.safe_seam": "The status list is presentational; extract it first while keeping install and download actions in the parent component.",
"ai_chat.inspection.codebase_hotspots.driver_manager.suggested_slice.download_logs": "Download log area",
"ai_chat.inspection.codebase_hotspots.driver_manager.suggested_slice.driver_status_list": "Driver status list",
"ai_chat.inspection.codebase_hotspots.driver_manager.suggested_slice.install_actions": "Install action area",
"ai_chat.inspection.codebase_hotspots.driver_manager.verification.browser_smoke": "Open driver management in a browser and verify status display, install buttons, and the log area.",
"ai_chat.inspection.codebase_hotspots.driver_manager.why": "Driver installation, status display, downloads, and optional proxy logic are substantial, so status cards and action areas are good next extraction targets.",
"ai_chat.inspection.codebase_hotspots.evidence.note": "Based on the current repository frontend file-line hotspot snapshot; before extraction, prefer slices that are readyToExtract and already covered by tests.",
"ai_chat.inspection.codebase_hotspots.jvm_diagnostic.preferred_next_slice": "Diagnostic output area",
"ai_chat.inspection.codebase_hotspots.jvm_diagnostic.safe_seam": "The output area mainly depends on the command result array, so it can be extracted as a display component first.",
"ai_chat.inspection.codebase_hotspots.jvm_diagnostic.suggested_slice.command_input": "Command input area",
"ai_chat.inspection.codebase_hotspots.jvm_diagnostic.suggested_slice.diagnostic_output": "Diagnostic output area",
"ai_chat.inspection.codebase_hotspots.jvm_diagnostic.suggested_slice.permission_hint": "Permission hint area",
"ai_chat.inspection.codebase_hotspots.jvm_diagnostic.verification.browser_smoke": "Open the JVM diagnostics panel in a browser and verify command input, output, and permission hints.",
"ai_chat.inspection.codebase_hotspots.jvm_diagnostic.why": "Diagnostic commands, output blocks, permission hints, and session state can continue to be split to lower JVM diagnostics regression risk.",
"ai_chat.inspection.codebase_hotspots.next_action.browser_smoke": "For visible UI extraction, open the real page in a browser for one smoke verification.",
"ai_chat.inspection.codebase_hotspots.next_action.confirm_safe_seam": "Confirm the safeSeam before every extraction, and do not cross SQL execution, transaction, connection secret, or database dialect boundaries.",
"ai_chat.inspection.codebase_hotspots.next_action.pick_ready_slice": "Prefer a slice with readiness=readyToExtract and existing test coverage for small-step extraction; avoid rewriting an entire large component directly.",
"ai_chat.inspection.codebase_hotspots.next_action.run_targeted_tests": "After extraction, run the corresponding component tests, related utils tests, and npm --prefix frontend run build at minimum.",
"ai_chat.inspection.codebase_hotspots.query_editor.preferred_next_slice": "Editor toolbar",
"ai_chat.inspection.codebase_hotspots.query_editor.safe_seam": "The toolbar JSX can pass state and callbacks through props, avoiding SQL execution, transaction, and result pagination logic.",
"ai_chat.inspection.codebase_hotspots.query_editor.suggested_slice.editor_shortcut_binding": "Editor shortcut binding",
"ai_chat.inspection.codebase_hotspots.query_editor.suggested_slice.execution_log_hint": "Execution log hint",
"ai_chat.inspection.codebase_hotspots.query_editor.suggested_slice.result_toolbar": "Result area toolbar",
"ai_chat.inspection.codebase_hotspots.query_editor.suggested_slice.transaction_status_bar": "Transaction status bar",
"ai_chat.inspection.codebase_hotspots.query_editor.verification.browser_smoke": "Open the SQL editor in a browser and verify connection/database selection, run, save, format, result visibility, and the AI menu.",
"ai_chat.inspection.codebase_hotspots.query_editor.why": "SQL editing, execution, transactions, result layout, and shortcut state are concentrated, so transaction and result-panel regressions are likely.",
"ai_chat.inspection.codebase_hotspots.redis_viewer.preferred_next_slice": "Key search bar",
"ai_chat.inspection.codebase_hotspots.redis_viewer.safe_seam": "Extract the search bar and topology hint first, avoiding early changes to each data-structure editor.",
"ai_chat.inspection.codebase_hotspots.redis_viewer.suggested_slice.add_key_dialog": "Add key dialog",
"ai_chat.inspection.codebase_hotspots.redis_viewer.suggested_slice.key_search_bar": "Key search bar",
"ai_chat.inspection.codebase_hotspots.redis_viewer.suggested_slice.structure_editors": "String/List/Set/ZSet/Hash/Stream editors",
"ai_chat.inspection.codebase_hotspots.redis_viewer.verification.browser_smoke": "Open a Redis connection in a browser and verify key search, refresh, TTL, and the add entry.",
"ai_chat.inspection.codebase_hotspots.redis_viewer.why": "Key browsing, data-structure editing, TTL, encoding display, and the add dialog are concentrated, so Redis Cluster/Sentinel follow-up validation is broad.",
"ai_chat.inspection.codebase_hotspots.sidebar.preferred_next_slice": "External SQL directory dialog",
"ai_chat.inspection.codebase_hotspots.sidebar.safe_seam": "Extract stateless dialog and menu configuration first, then handle action dispatch that depends on connection tree state.",
"ai_chat.inspection.codebase_hotspots.sidebar.suggested_slice.batch_operation_dialogs": "Batch operation dialogs",
"ai_chat.inspection.codebase_hotspots.sidebar.suggested_slice.connection_tree_actions": "Connection tree actions",
"ai_chat.inspection.codebase_hotspots.sidebar.suggested_slice.external_sql_directory_dialog": "External SQL directory dialog",
"ai_chat.inspection.codebase_hotspots.sidebar.suggested_slice.v2_command_palette": "V2 command palette",
"ai_chat.inspection.codebase_hotspots.sidebar.verification.browser_smoke": "Open the sidebar in a browser and verify the connection tree, context menus, and external SQL directory entry.",
"ai_chat.inspection.codebase_hotspots.sidebar.why": "The left tree, command palette, context menus, and connection actions are concentrated in one file, so change entry points are numerous and regression risk is high.",
"ai_chat.inspection.codebase_hotspots.table_designer.preferred_next_slice": "Field editing table",
"ai_chat.inspection.codebase_hotspots.table_designer.safe_seam": "Add field type, length, NULL, and default value snapshot tests first, then extract the field editing table.",
"ai_chat.inspection.codebase_hotspots.table_designer.suggested_slice.dialect_ddl_preview": "Dialect DDL preview",
"ai_chat.inspection.codebase_hotspots.table_designer.suggested_slice.field_editing_table": "Field editing table",
"ai_chat.inspection.codebase_hotspots.table_designer.suggested_slice.foreign_key_panel": "Foreign key configuration panel",
"ai_chat.inspection.codebase_hotspots.table_designer.suggested_slice.index_panel": "Index configuration panel",
"ai_chat.inspection.codebase_hotspots.table_designer.verification.browser_smoke": "Open object design in a browser and verify fields, indexes, foreign keys, and DDL preview.",
"ai_chat.inspection.codebase_hotspots.table_designer.why": "Field editing, indexes, foreign keys, partitions, and DDL generation are concentrated, so database dialect differences can spread easily.",
"ai_chat.inspection.connection_capabilities.cache_missing": "Целевое подключение отсутствует в локальном кэше",
"ai_chat.inspection.connection_capabilities.hint.approximate_table_count": "При просмотре таблиц можно показывать приблизительное число строк, чтобы снизить затраты подсчета для больших таблиц.",
"ai_chat.inspection.connection_capabilities.hint.editable_result": "Результаты запросов для этого источника данных могут перейти к редактированию, если доступны условия определения строк.",
"ai_chat.inspection.connection_capabilities.hint.exact_table_count": "При просмотре таблиц приблизительное число строк по умолчанию не используется.",
"ai_chat.inspection.connection_capabilities.hint.manual_total_count": "Для общего числа результатов предпочтительны ручной или отложенный подсчет вместо прямой опоры на быстрые итоги.",
"ai_chat.inspection.connection_capabilities.hint.message_publish_supported": "Этот источник данных предоставляет вход для тестовой отправки сообщений и подходит для проверки интеграции Topic/Queue.",
"ai_chat.inspection.connection_capabilities.hint.message_publish_unsupported": "Этот источник данных не предоставляет вход для тестовой отправки сообщений.",
"ai_chat.inspection.connection_capabilities.hint.readonly_result": "Результаты запросов для этого источника данных по умолчанию показываются только для чтения и не редактируются напрямую.",
"ai_chat.inspection.connection_capabilities.hint.regular_total_count": "Для общего числа результатов можно предпочесть обычный путь подсчета.",
"ai_chat.inspection.connection_capabilities.no_connection": "Нет подключения, доступного для анализа возможностей",
"ai_chat.inspection.connection_capabilities.summary": "Текущее подключение {{connectionName}} ({{type}}) предоставляет сигналов возможностей фронтенда: {{count}}",
"ai_chat.inspection.connection_failures.category.authentication": "Ошибка аутентификации",
"ai_chat.inspection.connection_failures.category.cooldown": "Cooldown подключения",
"ai_chat.inspection.connection_failures.category.network": "Сеть недоступна",
"ai_chat.inspection.connection_failures.category.other": "Другая аномалия подключения",
"ai_chat.inspection.connection_failures.category.parameter_compatibility": "Проблема параметров/совместимости подключения",
"ai_chat.inspection.connection_failures.category.ssh": "Сбой SSH-туннеля",
"ai_chat.inspection.connection_failures.category.startup": "Сбой запуска драйвера/процесса",
"ai_chat.inspection.connection_failures.category.timeout": "Тайм-аут подключения",
"ai_chat.inspection.connection_failures.category.validation": "Проверка подключения не прошла",
"ai_chat.inspection.connection_failures.message.detected": "В последних логах обнаружено {{count}} аномалий подключения; последняя категория: {{categoryLabel}}",
"ai_chat.inspection.connection_failures.message.no_keyword_match": "В последних логах не найдено записей об ошибках подключения по ключевому слову \"{{keyword}}\"",
"ai_chat.inspection.connection_failures.message.none": "В последних логах не обнаружены ошибки подключения, ошибки валидации или записи cooldown подключения",
"ai_chat.inspection.connection_failures.next_action.authentication": "Проверьте имя пользователя, пароль, базу аутентификации, tenant или Service Name и убедитесь, что сервер разрешает вход этой учетной записи.",
"ai_chat.inspection.connection_failures.next_action.check_current_connection": "Если нужно подтвердить, что подключение в текущем интерфейсе все еще указывает на ту же цель, вызовите inspect_current_connection и проверьте, указывает ли оно на {{address}}.",
"ai_chat.inspection.connection_failures.next_action.cooldown": "Сначала исправьте предыдущую реальную ошибку подключения и только потом повторяйте попытку; простое обновление будет снова попадать в cooldown подключения.",
"ai_chat.inspection.connection_failures.next_action.inspect_config": "Сначала используйте inspect_current_connection и inspect_saved_connections, чтобы проверить текущую конфигурацию подключения; затем расширьте окно логов, если нужны дополнительные доказательства.",
"ai_chat.inspection.connection_failures.next_action.network": "Проверьте доступность целевого адреса, порта, firewall, proxy и туннельного пути, а также убедитесь, что сервер действительно слушает.",
"ai_chat.inspection.connection_failures.next_action.parameter_compatibility": "Сначала проверьте параметры подключения, DSN и совместимость протокола, особенно multiStatements, charset, дополнительные query-параметры и URL-кодирование.",
"ai_chat.inspection.connection_failures.next_action.ssh": "Проверьте адрес SSH jump host, порт, учетную запись и целевой адрес туннеля; при необходимости сначала проверьте доступность базы данных с jump host.",
"ai_chat.inspection.connection_failures.next_action.startup": "Проверьте, может ли драйверный процесс или внешняя зависимость нормально запускаться; при необходимости отдельно проверьте команду запуска локально или на целевом хосте.",
"ai_chat.inspection.connection_failures.next_action.validation": "Проверьте детали ошибки валидации от сервера и убедитесь, что тип базы данных, протокол драйвера, имя базы или Service Name соответствуют целевому сервису.",
"ai_chat.inspection.context_budget.next_action.continue_narrow_probe": "Текущий объем контекста управляем; продолжайте вызывать более узкие проверки структуры, логов или SQL-рисков для конкретного вопроса",
"ai_chat.inspection.context_budget.next_action.inspect_message_flow": "Сначала вызовите inspect_ai_message_flow, чтобы проверить, не отсутствуют ли сообщения результата tool для вызовов инструментов",
"ai_chat.inspection.context_budget.next_action.narrow_tables": "Оставьте только таблицы, относящиеся к этому шагу; при необходимости используйте inspect_table_bundle для чтения целевых таблиц по требованию",
"ai_chat.inspection.context_budget.next_action.narrow_tools": "Временно отключите нерелевантные MCP-сервисы или сначала вызовите inspect_ai_tool_catalog с ключевым словом, чтобы сузить маршрут инструментов",
"ai_chat.inspection.context_budget.next_action.open_session": "Сначала откройте или выберите целевую AI-сессию, затем снова вызовите inspect_ai_context_budget",
"ai_chat.inspection.context_budget.next_action.reduce_skills": "Оставьте только Skills, относящиеся к этому шагу, а после завершения восстановите остальные Skills",
"ai_chat.inspection.context_budget.next_action.reduce_tool_results": "Уменьшите объем, возвращаемый inspect_app_logs / inspect_recent_sql_logs / includeDDL / includeLogLines",
"ai_chat.inspection.context_budget.next_action.summarize_or_new_session": "Начните новую сессию или попросите AI сначала кратко подвести текущий итог, а затем продолжайте следующую сложную задачу",
"ai_chat.inspection.context_budget.warning.critical_risk": "Текущий входной контекст AI достиг объема critical и может привести к медленным ответам, обрезке или игнорированию ключевых ограничений",
"ai_chat.inspection.context_budget.warning.high_risk": "Текущий входной контекст AI слишком большой; перед сложными вопросами сузьте контекст",
"ai_chat.inspection.context_budget.warning.large_mcp_catalog": "Открыто много MCP-инструментов или schema, из-за чего модель может чаще выбирать неверный инструмент",
"ai_chat.inspection.context_budget.warning.large_messages": "Недавние сообщения в этой сессии длинные и могут повлиять на стабильность последующих ответов",
"ai_chat.inspection.context_budget.warning.large_schema_context": "Подключено много схем таблиц или длинные DDL, что может вытеснять вопрос пользователя и результаты инструментов",
"ai_chat.inspection.context_budget.warning.large_skills": "Включено много Skills или промпты длинные, что может накладывать конфликтующие ограничения",
"ai_chat.inspection.context_budget.warning.large_tool_results": "Недавние результаты инструментов длинные и могут размыть последующие ответы логами или большими наборами результатов",
"ai_chat.inspection.context_budget.warning.missing_session": "Целевая AI-сессия не найдена, поэтому статистика объема сообщений охватывает только пустое окно",
"ai_chat.inspection.context_budget.warning.unresolved_tool_calls": "В недавнем окне сообщений есть {{count}} незамкнутых вызовов инструментов",
"ai_chat.inspection.current_connection.cache_missing": "Текущее активное подключение отсутствует в локальном кэше",
"ai_chat.inspection.current_connection.no_active": "Активное подключение сейчас не выбрано",
"ai_chat.inspection.database_bundle.error.database_overview_failed": "Не удалось получить обзор структуры базы данных: {{detail}}",
"ai_chat.inspection.database_bundle.error.db_name_required": "dbName не должен быть пустым",
"ai_chat.inspection.database_bundle.error.table_name_required": "tableName не должен быть пустым",
"ai_chat.inspection.database_bundle.error.table_snapshot_failed": "Не удалось получить снимок структуры таблицы: {{detail}}",
"ai_chat.inspection.database_bundle.error.unknown": "Неизвестная ошибка",
"ai_chat.inspection.database_bundle.warning.all_columns_failed": "Не удалось получить сводку столбцов: {{detail}}",
"ai_chat.inspection.database_bundle.warning.columns_failed": "Не удалось получить список столбцов: {{detail}}",
"ai_chat.inspection.database_bundle.warning.ddl_failed": "Не удалось получить DDL: {{detail}}",
"ai_chat.inspection.database_bundle.warning.foreign_keys_failed": "Не удалось получить связи внешних ключей: {{detail}}",
"ai_chat.inspection.database_bundle.warning.indexes_failed": "Не удалось получить определения индексов: {{detail}}",
"ai_chat.inspection.database_bundle.warning.sample_rows_failed": "Не удалось получить образцы данных: {{detail}}",
"ai_chat.inspection.database_bundle.warning.tables_failed": "Не удалось получить список таблиц: {{detail}}",
"ai_chat.inspection.database_bundle.warning.tables_failed_with_column_fallback": "Не удалось получить список таблиц, выполнен откат к выводу по сводке столбцов: {{detail}}",
"ai_chat.inspection.database_bundle.warning.triggers_failed": "Не удалось получить триггеры: {{detail}}",
"ai_chat.inspection.diagnostics.error.read_ai_upstream_logs_failed": "Не удалось прочитать логи запросов AI к внешнему сервису: {{detail}}",
"ai_chat.inspection.diagnostics.error.read_app_logs_failed": "Не удалось прочитать логи приложения GoNavi: {{detail}}",
"ai_chat.inspection.diagnostics.error.read_app_logs_unsupported": "Текущая среда не поддерживает чтение логов приложения GoNavi",
"ai_chat.inspection.diagnostics.error.read_recent_connection_failures_failed": "Не удалось прочитать последние записи о сбоях подключения: {{detail}}",
"ai_chat.inspection.diagnostics.error.unknown": "Неизвестная ошибка",
"ai_chat.inspection.external_sql_file.error.file_path_required": "filePath не должен быть пустым",
"ai_chat.inspection.external_sql_file.error.outside_configured_directory": "Целевой файл находится вне настроенных внешних SQL-каталогов",
"ai_chat.inspection.external_sql_file.error.read_failed": "Не удалось прочитать внешний SQL-файл: {{detail}}",
"ai_chat.inspection.external_sql_file.error.unknown": "Неизвестная ошибка",
"ai_chat.inspection.external_sql_file.error.unsupported_runtime": "Текущая среда выполнения пока не поддерживает чтение локальных SQL-файлов",
"ai_chat.inspection.guidance.message.configured": "Включено {{promptCount}} пользовательских промптов и {{skillCount}} Skills",
"ai_chat.inspection.guidance.message.empty": "Пользовательские промпты или Skills не включены",
"ai_chat.inspection.guidance.scope.database": "Сеанс базы данных",
"ai_chat.inspection.guidance.scope.global": "Глобально",
"ai_chat.inspection.guidance.scope.jvm": "Анализ ресурсов JVM",
"ai_chat.inspection.guidance.scope.jvmDiagnostic": "Диагностика JVM",
"ai_chat.inspection.last_render_error.empty_next_action.inspect_health": "Если сбоит вся панель AI, сопоставьте это с inspect_ai_setup_health и inspect_app_logs.",
"ai_chat.inspection.last_render_error.empty_next_action.reproduce": "Если пользователь сообщает о пустом сообщении AI, белом блоке или локальной ошибке рендеринга, воспроизведите проблему и снова прочитайте этот снимок.",
"ai_chat.inspection.last_render_error.empty_summary": "Ошибки рендеринга сообщений AI пока не зафиксированы.",
"ai_chat.inspection.last_render_error.next_action.match_message": "Сопоставьте messageId и contentPreview с текущим диалогом, чтобы определить, какой пузырь вызвал ошибку рендеринга.",
"ai_chat.inspection.last_render_error.next_action.narrow_scope": "Если нужно сузить область дальше, сравните последний ввод пользователя, результаты инструментов и связанный код компонентов.",
"ai_chat.inspection.last_render_error.recorded_summary": "Зафиксирована недавняя ошибка рендеринга сообщения AI, включая сообщение, путь рендеринга и сводку стека для диагностики.",
"ai_chat.inspection.mcp_docker.message.empty": "Docker MCP-серверы сейчас не настроены",
"ai_chat.inspection.mcp_docker.message.with_enabled": "Сейчас Docker MCP-серверов: {{total}}; включено: {{enabled}}",
"ai_chat.inspection.mcp_docker.message.with_incomplete": "Сейчас Docker MCP-серверов: {{total}}; у {{count}} ключевые аргументы неполные",
"ai_chat.inspection.mcp_docker.next_action.add_image": "Добавьте имя образа из README после опций docker run",
"ai_chat.inspection.mcp_docker.next_action.add_interactive": "Добавьте -i или --interactive в args, чтобы MCP stdio не закрывался сразу",
"ai_chat.inspection.mcp_docker.next_action.add_run": "Добавьте run в args, например docker run --rm -i <image>",
"ai_chat.inspection.mcp_docker.next_action.create_from_readme": "Если README содержит docker run -i --rm <image>, создайте сервер из шаблона \"Docker image\" в настройках MCP",
"ai_chat.inspection.mcp_docker.next_action.disabled": "Этот Docker MCP сейчас отключен; после проверки конфигурации включите его и проверьте обнаружение инструментов",
"ai_chat.inspection.mcp_docker.next_action.fix_key_args": "Сначала исправьте ключевые аргументы Docker MCP, затем снова проверьте обнаружение инструментов",
"ai_chat.inspection.mcp_docker.next_action.no_tools": "Структура конфигурации выглядит полной, но инструменты не обнаружены; нажмите \"Проверить обнаружение инструментов\", чтобы подтвердить Docker, образ и зависимости в контейнере",
"ai_chat.inspection.mcp_docker.next_action.open_services": "Откройте соответствующие сервисы Docker MCP и проверьте аргументы и timeout по подсказкам проверки конфигурации",
"ai_chat.inspection.mcp_docker.next_action.refresh_tools": "Убедитесь, что локальный Docker доступен, образ загружен, затем нажмите \"Проверить обнаружение инструментов\", чтобы обновить список инструментов",
"ai_chat.inspection.mcp_docker.next_action.timeout": "Первый запуск Docker может быть медленным; используйте timeoutSeconds 45 или 60",
"ai_chat.inspection.mcp_docker.warning.config_warnings": "У Docker MCP-серверов с количеством {{count}} все еще есть предупреждения конфигурации",
"ai_chat.inspection.mcp_docker.warning.incomplete": "У Docker MCP-серверов с количеством {{count}} отсутствуют ключевые аргументы, такие как run, -i или имя образа",
"ai_chat.inspection.mcp_docker.warning.no_tools": "У включенных Docker MCP-серверов с количеством {{count}} пока не обнаружены инструменты",
"ai_chat.inspection.mcp_draft.default_name": "Черновик MCP",
"ai_chat.inspection.mcp_draft.next_action.args_missing_for_launcher": "Дополните аргументы запуска: npx обычно требует -y и имя пакета, node требует server.js, python требует -m и имя модуля, uvx требует имя пакета, docker требует run, -i и имя образа.",
"ai_chat.inspection.mcp_draft.next_action.can_test_with_warnings": "Текущий черновик можно тестировать, но сначала обработайте warnings, чтобы избежать тайм-аута обнаружения инструментов или 0 найденных инструментов.",
"ai_chat.inspection.mcp_draft.next_action.command_missing": "Сначала вставьте полную команду запуска из README или хотя бы укажите node, npx, uvx, python либо exe в command.",
"ai_chat.inspection.mcp_draft.next_action.command_whole_line": "Поместите всю строку команды в поле fullCommand для автоматического разбиения; в command оставьте только исполняемый файл, а имя скрипта, пакет и --stdio перенесите в args.",
"ai_chat.inspection.mcp_draft.next_action.docker_image": "Добавьте в args Docker MCP имя образа из README, например mcp/server-fetch:latest.",
"ai_chat.inspection.mcp_draft.next_action.docker_interactive": "Добавьте -i или --interactive в args Docker MCP, чтобы stdio-соединение не закрывалось сразу.",
"ai_chat.inspection.mcp_draft.next_action.docker_run": "Для Docker MCP укажите command как docker и отдельно добавьте run в args.",
"ai_chat.inspection.mcp_draft.next_action.env_lines": "Записывайте переменные окружения по одной на строку в формате KEY=VALUE; не помещайте export, set, env, && или $env:KEY=VALUE; в args.",
"ai_chat.inspection.mcp_draft.next_action.ready_to_save": "Текущий черновик можно сохранить и проверить обнаружение инструментов; если найдено 0 инструментов, проверьте, поддерживает ли сервис stdio.",
"ai_chat.inspection.mcp_draft.next_action.send_full_command": "Если вы все еще не уверены, как разделить команду, передайте исходную полную команду в fullCommand и дайте GoNavi рассчитать поля.",
"ai_chat.inspection.mcp_draft.next_action.timeout": "Установите timeout на 20 секунд; для медленно стартующих сервисов можно использовать 45 или 60 секунд.",
"ai_chat.inspection.mcp_draft.parse.no_full_command": "fullCommand не предоставлен; проверен черновик из отдельных полей.",
"ai_chat.inspection.mcp_draft.redacted_parse_failed": "[Разбор не удался, исходная команда скрыта]",
"ai_chat.inspection.mcp_remote.message.no_public_url": "Удаленному Agent нужен доступ к Windows GoNavi MCP HTTP endpoint через контролируемый туннель или reverse proxy",
"ai_chat.inspection.mcp_remote.message.with_public_url": "Удаленный Agent должен обращаться к GoNavi MCP через {{publicUrl}} и проходить аутентификацию Bearer Token",
"ai_chat.inspection.mcp_remote.next_action.configure_agent": "Настройте Streamable HTTP MCP URL и Authorization Bearer Token в OpenClaw/Hermans.",
"ai_chat.inspection.mcp_remote.next_action.expose_mcp_only": "Откройте только /mcp для целевого облачного Agent через туннель, reverse proxy или приватную сеть.",
"ai_chat.inspection.mcp_remote.next_action.inspect_connections": "Сначала вызовите get_connections, чтобы получить connectionId, затем читайте схемы; не копируйте пароли баз данных в облачный Agent.",
"ai_chat.inspection.mcp_remote.next_action.start_local_http": "Запустите режим GoNavi MCP HTTP на Windows и проверьте доступность /healthz.",
"ai_chat.inspection.mcp_remote.security.recommended_bind_address": "127.0.0.1, если перед ним нет контролируемого шлюза или приватной сети",
"ai_chat.inspection.mcp_remote.strategy.cloudflare_tunnel.detail": "Подходит для Windows-машин без постоянной публичной точки входа, с дополнительной проверкой личности через Cloudflare Access.",
"ai_chat.inspection.mcp_remote.strategy.cloudflare_tunnel.risk": "Правила Access / Zero Trust должны быть включены; нельзя полагаться только на случайный URL.",
"ai_chat.inspection.mcp_remote.strategy.cloudflare_tunnel.title": "Cloudflare Tunnel",
"ai_chat.inspection.mcp_remote.strategy.custom.detail": "Подходит, если уже есть корпоративный шлюз, bastion host или выделенный MCP-шлюз.",
"ai_chat.inspection.mcp_remote.strategy.custom.risk": "TLS, аутентификация, аудит и ограничения источника должны быть явно определены, чтобы не раскрывать локальные возможности баз данных неизвестным Agents.",
"ai_chat.inspection.mcp_remote.strategy.custom.title": "Пользовательский мост",
"ai_chat.inspection.mcp_remote.strategy.reverse_proxy.detail": "Подходит, когда Windows GoNavi и облачный Agent уже находятся за доверенной внутренней сетью или шлюзом.",
"ai_chat.inspection.mcp_remote.strategy.reverse_proxy.risk": "Продолжайте ограничивать исходные IP, TLS и Bearer Token на уровне шлюза; не открывайте доступ напрямую в публичный интернет.",
"ai_chat.inspection.mcp_remote.strategy.reverse_proxy.title": "Внутренний reverse proxy",
"ai_chat.inspection.mcp_remote.strategy.ssh_reverse_tunnel.detail": "Подходит, чтобы временно отобразить Windows 127.0.0.1:8765 на облачный Linux. Настройка проста, но SSH-аккаунт и порт должны быть под контролем.",
"ai_chat.inspection.mcp_remote.strategy.ssh_reverse_tunnel.risk": "После разрыва туннеля облачный Agent станет недоступен; подходит для PoC или контролируемой эксплуатации.",
"ai_chat.inspection.mcp_remote.strategy.ssh_reverse_tunnel.title": "Обратный SSH-туннель",
"ai_chat.inspection.mcp_remote.strategy.tailscale.detail": "Подходит, если Windows GoNavi и облачный Agent могут быть в одной приватной сети и использовать внутренний адрес.",
"ai_chat.inspection.mcp_remote.strategy.tailscale.risk": "Настройте ACL так, чтобы только целевой Agent мог обращаться к порту GoNavi MCP.",
"ai_chat.inspection.mcp_remote.strategy.tailscale.title": "Tailscale / WireGuard",
"ai_chat.inspection.mcp_remote.warning.missing_public_url": "Не указан MCP URL, доступный облачному Agent; удаленный Agent не может напрямую обращаться к Windows 127.0.0.1.",
"ai_chat.inspection.mcp_remote.warning.missing_token": "Готовность Bearer Token не подтверждена; HTTP MCP должен использовать случайный token и не должен быть открыт без аутентификации.",
"ai_chat.inspection.mcp_remote.warning.non_https_public_url": "Удаленный MCP URL не использует HTTPS; если это не адрес приватной сети, добавьте TLS или поместите его за контролируемым туннелем.",
"ai_chat.inspection.mcp_runtime.error.read_logs_failed": "Не удалось прочитать логи runtime-сбоев MCP: {{detail}}",
"ai_chat.inspection.mcp_runtime.error.read_logs_unsupported": "Текущая среда не поддерживает чтение логов приложения GoNavi",
"ai_chat.inspection.mcp_runtime.message.failure_events": "В последних логах найдено сигналов runtime-сбоев MCP: {{count}}",
"ai_chat.inspection.mcp_runtime.message.no_failure_events": "В последних логах не найдено сигналов сбоя запуска MCP, обнаружения инструментов или вызова инструментов.",
"ai_chat.inspection.mcp_runtime.next_action.argument_error": "Сначала вызовите inspect_mcp_tool_schema, чтобы прочитать фактическую inputSchema, затем исправьте arguments JSON инструмента.",
"ai_chat.inspection.mcp_runtime.next_action.auth": "Проверьте, что Token/API Key в переменных окружения задан, не истек и имеет достаточную область доступа.",
"ai_chat.inspection.mcp_runtime.next_action.command_not_found": "Проверьте, что command содержит только имя исполняемого файла, и убедитесь, что команда есть в PATH или задана абсолютным путем.",
"ai_chat.inspection.mcp_runtime.next_action.enabled_without_tools": "У некоторых включенных MCP-серверов нет обнаруженных инструментов; сначала нажмите \"Проверить обнаружение инструментов\" и убедитесь, что команда запуска выполняется отдельно.",
"ai_chat.inspection.mcp_runtime.next_action.expand_logs": "В последних логах не найден сигнал сбоя MCP; если проблема только что воспроизводилась, увеличьте lineLimit или отфильтруйте точнее через serverName.",
"ai_chat.inspection.mcp_runtime.next_action.fix_discovery_first": "Если список инструментов пуст, сначала исправьте сбой запуска/обнаружения, затем проверяйте arguments отдельного инструмента.",
"ai_chat.inspection.mcp_runtime.next_action.network": "Проверьте доступность удаленного адреса, прокси, VPN или локального порта, от которых зависит MCP.",
"ai_chat.inspection.mcp_runtime.next_action.permission": "Проверьте права исполняемого файла, блокировки антивируса/системы и доступ к рабочему каталогу.",
"ai_chat.inspection.mcp_runtime.next_action.process_exit": "Запустите команду запуска отдельно в терминале и проверьте, почему процесс завершается сразу после старта.",
"ai_chat.inspection.mcp_runtime.next_action.stdio_closed": "Убедитесь, что указаны требуемые README аргументы --stdio/stdin; для Docker проверьте, что args содержит -i.",
"ai_chat.inspection.mcp_runtime.next_action.timeout": "Увеличьте timeoutSeconds до 45 или 60 и убедитесь, что после запуска сервис сохраняет stdio-соединение.",
"ai_chat.inspection.mcp_runtime.next_action.transport": "Новые MCP-серверы в GoNavi сейчас поддерживают только stdio; для HTTP MCP используйте HTTP-сервис GoNavi или соответствующую инструкцию удаленного подключения.",
"ai_chat.inspection.mcp_runtime.next_action.unknown": "Проверьте конфигурацию через inspect_mcp_setup, затем вызовите inspect_app_logs с большим окном логов, чтобы подтвердить исходную ошибку.",
"ai_chat.inspection.mcp_runtime.warning.enabled_without_tools": "У включенных MCP-серверов без обнаруженных инструментов: {{count}}.",
"ai_chat.inspection.mcp_runtime.warning.failure_events": "В последних логах найдено сигналов runtime-сбоев MCP: {{count}}.",
"ai_chat.inspection.mcp_tool_schema.message.empty": "Доступной schema MCP-инструментов пока нет",
"ai_chat.inspection.mcp_tool_schema.message.no_matches": "Подходящий MCP-инструмент не найден",
"ai_chat.inspection.mcp_tool_schema.message.with_matches": "Найдено MCP-инструментов: {{matched}}; возвращено сводок parameter schema: {{returned}}",
"ai_chat.inspection.mcp_tool_schema.next_action.inspect_setup": "Сначала вызовите inspect_mcp_setup, чтобы проверить, включены ли MCP-сервисы и обнаружены ли инструменты.",
"ai_chat.inspection.mcp_tool_schema.next_action.lookup_alias": "Сначала вызовите inspect_mcp_setup, чтобы проверить фактически обнаруженные alias MCP-инструментов, затем ищите по точному alias.",
"ai_chat.inspection.mcp_tool_schema.next_action.read_readme": "Для инструментов без schema вернитесь к README MCP-сервиса или используйте ошибки инструмента для уточнения параметров.",
"ai_chat.inspection.mcp_tool_schema.usage.enum_values": "{{path}} должен быть одним из enum-значений: {{values}}",
"ai_chat.inspection.mcp_tool_schema.usage.nested_json": "Вложенные объекты и массивы должны передаваться по JSON-структуре; не передавайте весь объект строкой.",
"ai_chat.inspection.mcp_tool_schema.usage.no_input_schema": "Этот MCP-инструмент не объявляет inputSchema; сначала проверьте README сервиса или попробуйте пустой объект.",
"ai_chat.inspection.mcp_tool_schema.usage.required_params": "Перед вызовом {{alias}} укажите: {{parameters}}",
"ai_chat.inspection.mcp_tool_schema.usage.schema_fields_only": "Передавайте только поля, объявленные в schema; если смысл поля неясен, уточните у пользователя вместо догадки.",
"ai_chat.inspection.mcp_tool_schema.warning.missing_schema": "Некоторые MCP-инструменты не объявляют inputSchema, поэтому описание параметров может быть неполным.",
"ai_chat.inspection.mcp_tool_schema.warning.no_matches": "Подходящий MCP-инструмент не найден.",
"ai_chat.inspection.mcp_tool_schema.warning.no_tools": "MCP-инструменты не обнаружены; возможно, MCP-сервисы не настроены или тест/обнаружение сервиса завершились ошибкой.",
"ai_chat.inspection.mcp.message.configured": "Настроено MCP-серверов: {{serverCount}}; включено: {{enabledCount}}",
"ai_chat.inspection.mcp.message.empty": "MCP-серверы еще не настроены",
"ai_chat.inspection.mcp.message.with_issues": "Настроено MCP-серверов: {{serverCount}}; включено: {{enabledCount}}; требуют внимания проверки конфигурации: {{issueCount}}",
"ai_chat.inspection.mcp.next_action.fix_config_errors": "Сначала исправьте ошибки конфигурации MCP-сервера, затем повторно протестируйте сервер",
"ai_chat.inspection.mcp.next_action.fix_config_warnings": "Откройте затронутый MCP-сервер и разделите команду запуска, аргументы и тайм-аут согласно подсказкам проверки конфигурации",
"ai_chat.inspection.mcp.warning.config_errors": "У {{count}} MCP-сервера есть ошибки конфигурации запуска; тестирование и обнаружение инструментов могут завершиться неудачно",
"ai_chat.inspection.mcp.warning.config_warnings": "У {{count}} MCP-сервера есть предупреждения конфигурации запуска; проверьте их перед диагностикой сбоев обнаружения инструментов",
"ai_chat.inspection.message_flow.next_action.check_empty_assistant": "Проверьте, не оставили ли пути ошибки или отмены пустые сообщения-заполнители assistant.",
"ai_chat.inspection.message_flow.next_action.check_stream_append": "Проверьте, переиспользует ли логика потокового добавления тот же assistantMsgId, а не создает новое сообщение assistant для того же ответа.",
"ai_chat.inspection.message_flow.next_action.check_tool_results": "Сначала проверьте, записывает ли useAIChatLocalTools сообщение tool для каждого tool_call_id.",
"ai_chat.inspection.message_flow.next_action.inspect_render_or_logs": "В структуре потока сообщений не найдено явных аномалий; продолжите диагностику рендеринга или выполнения через inspect_ai_last_render_error либо inspect_app_logs.",
"ai_chat.inspection.message_flow.warning.consecutive_assistant": "Найдено {{count}} пар подряд идущих сообщений assistant; ответ мог быть разделен на несколько пузырей.",
"ai_chat.inspection.message_flow.warning.empty_assistant": "Найдено {{count}} пустых сообщений assistant.",
"ai_chat.inspection.message_flow.warning.loading_message": "В сеансе все еще есть сообщение loading; потоковая генерация может быть активна или прежнее прерывание не было очищено.",
"ai_chat.inspection.message_flow.warning.unresolved_tool_calls": "У {{count}} вызовов инструментов нет соответствующих сообщений результата tool.",
"ai_chat.inspection.provider.message.active_needs_attention": "Используется {{provider}}, но еще нужно проверить {{issueCount}} пунктов",
"ai_chat.inspection.provider.message.active_ready": "Настроено поставщиков: {{count}}; используется {{provider}}",
"ai_chat.inspection.provider.message.empty": "Поставщики AI не настроены",
"ai_chat.inspection.provider.message.unselected": "Настроено поставщиков: {{count}}, но активный поставщик не выбран",
"ai_chat.inspection.redis_topology.db_note.cluster_logical_namespace": "Redis Cluster физически поддерживает только db0; GoNavi эмулирует multi-DB view через prefix __gonavi_db_N__:",
"ai_chat.inspection.redis_topology.db_note.sentinel_selected_db": "После того как Sentinel обнаружит master, GoNavi подключится к выбранной DB и сохранит настройки Sentinel при повторном подключении.",
"ai_chat.inspection.redis_topology.db_note.single_selected_db": "Standalone mode напрямую использует Redis SELECT DB.",
"ai_chat.inspection.redis_topology.label.cluster": "Redis Cluster",
"ai_chat.inspection.redis_topology.label.sentinel": "Redis Sentinel",
"ai_chat.inspection.redis_topology.label.single": "Standalone Redis",
"ai_chat.inspection.redis_topology.next_action.align_single_topology": "Явно переключите Cluster mode или удалите extra nodes и оставьте один Standalone address, чтобы избежать несоответствия configured topology и backend topology.",
"ai_chat.inspection.redis_topology.next_action.check_sentinel_port": "Измените port primary Sentinel address на 26379, если ваш Sentinel явно не слушает другой port.",
"ai_chat.inspection.redis_topology.next_action.disable_ssh": "Отключите SSH tunnel и используйте direct access, proxy/VPN или GoNavi MCP HTTP, чтобы remote Agent обращался к Redis через локальный GoNavi.",
"ai_chat.inspection.redis_topology.next_action.fill_host": "Сначала заполните host; для Sentinel mode используйте Sentinel addresses, для Cluster mode используйте Redis Cluster seed nodes.",
"ai_chat.inspection.redis_topology.next_action.fill_sentinel_master": "Заполните Sentinel master name, например mymaster.",
"ai_chat.inspection.redis_topology.next_action.review_cluster_logical_db": "Проверьте, действительно ли workload требует Redis Cluster multi-DB view; если это только группировка key, предпочитайте application namespace.",
"ai_chat.inspection.redis_topology.next_action.test_connection": "Конфигурация выглядит пригодной для {{topologyLabel}}; затем протестируйте подключение и проверьте Redis DB/key tree.",
"ai_chat.inspection.redis_topology.recommendation.check_tls": "TLS включен; если подключение не удается, сначала проверьте sslMode, CA/certificate paths и server SNI.",
"ai_chat.inspection.redis_topology.recommendation.cluster_multiple_seeds": "Предпочитайте минимум два seed nodes и подтвердите, что они относятся к одному Redis Cluster.",
"ai_chat.inspection.redis_topology.recommendation.cluster_namespace": "Если нужна multi-DB view, предпочитайте явные namespaces в business keys, чтобы не неверно понимать физическое ограничение Cluster на db0.",
"ai_chat.inspection.redis_topology.recommendation.network_for_cluster_sentinel": "Для доступа к Redis Cluster/Sentinel через сеть предпочитайте network proxy, VPN или GoNavi MCP HTTP вместо single-port SSH tunnel.",
"ai_chat.inspection.redis_topology.recommendation.sentinel_addresses": "Подтвердите, что host и extra nodes являются Sentinel addresses, а не Redis master addresses.",
"ai_chat.inspection.redis_topology.recommendation.separate_auth": "Заполняйте Redis data-node credentials и Sentinel credentials отдельно; не смешивайте их.",
"ai_chat.inspection.redis_topology.recommendation.single_one_address": "Standalone mode должен содержать один Redis address; если nodes несколько, используйте Cluster или Sentinel mode.",
"ai_chat.inspection.redis_topology.warning.cluster_logical_db": "Redis Cluster физически поддерживает только db0; GoNavi эмулирует логическую изоляцию DB через prefix __gonavi_db_N__:",
"ai_chat.inspection.redis_topology.warning.cluster_sentinel_fields_ignored": "Поля Sentinel master и Sentinel user не действуют в Cluster mode",
"ai_chat.inspection.redis_topology.warning.cluster_single_seed": "Настроен только один Cluster seed node; добавьте несколько master/replica nodes, чтобы повысить надежность discovery",
"ai_chat.inspection.redis_topology.warning.missing_host": "host пуст; перед подключением укажите Redis node или Sentinel address",
"ai_chat.inspection.redis_topology.warning.missing_sentinel_master": "Sentinel master name пуст; go-redis FailoverClient не сможет обнаружить primary node",
"ai_chat.inspection.redis_topology.warning.sentinel_default_redis_port": "Primary Sentinel address использует port 6379; подтвердите, что это Sentinel port, обычно 26379",
"ai_chat.inspection.redis_topology.warning.single_multiple_nodes": "В Standalone mode указано несколько node addresses; backend будет использовать multi-node Cluster path, поэтому явно переключите Cluster mode",
"ai_chat.inspection.redis_topology.warning.single_sentinel_fields_ignored": "Поля Sentinel не действуют в Standalone mode; переключите Sentinel mode, если требуется Sentinel discovery",
"ai_chat.inspection.redis_topology.warning.single_sentinel_node": "Настроен только один Sentinel node; укажите минимум 2-3 Sentinel addresses, чтобы избежать single point of failure",
"ai_chat.inspection.redis_topology.warning.ssh_unsupported": "{{topologyLabel}} не поддерживается текущим backend через SSH tunnel; используйте direct access, proxy или remote MCP HTTP",
"ai_chat.inspection.runtime.context.schema_only": "Только schema",
"ai_chat.inspection.runtime.context.with_results": "schema + результаты",
"ai_chat.inspection.runtime.context.with_samples": "schema + примеры",
"ai_chat.inspection.runtime.message.active": "AI использует {{provider}}; доступно инструментов: {{toolCount}}",
"ai_chat.inspection.runtime.message.no_provider": "Сейчас нет активного поставщика AI",
"ai_chat.inspection.runtime.safety.full": "Полный доступ",
"ai_chat.inspection.runtime.safety.readonly": "Только чтение",
"ai_chat.inspection.runtime.safety.readwrite": "Чтение/запись",
"ai_chat.inspection.safety.message.active": "Уровень безопасности AI: {{safety}}; активное подключение: {{connection}}",
"ai_chat.inspection.safety.message.no_connection": "Уровень безопасности AI: {{safety}}; активное подключение не выбрано",
"ai_chat.inspection.safety.recommendation.confirm_jvm_policy": "Текущее подключение JVM следует считать доступным только для чтения; перед mutating-диагностикой подтвердите, нужно ли менять политику.",
"ai_chat.inspection.safety.recommendation.enable_full_for_ddl": "Перед выполнением изменений schema через CREATE/ALTER/DROP/TRUNCATE переключитесь в режим полного доступа.",
"ai_chat.inspection.safety.recommendation.enable_jvm_mutating": "Диагностика JVM сейчас запрещает команды mutating; перед рискованными командами настройте диагностические разрешения.",
"ai_chat.inspection.safety.recommendation.enable_readwrite_for_dml": "Перед выполнением INSERT/UPDATE/DELETE переключите уровень безопасности AI в режим чтения/записи.",
"ai_chat.inspection.safety.recommendation.full_required_for_schema": "DML уже разрешены; для изменений schema по-прежнему нужен режим полного доступа.",
"ai_chat.inspection.safety.recommendation.open_editable_grid": "Если цель - редактировать таблицу результатов, заново откройте редактируемую таблицу или результат запроса вместо текущей вкладки только для чтения.",
"ai_chat.inspection.safety.restriction.active_result_readonly": "Набор результатов текущей активной вкладки доступен только для чтения и не может считаться напрямую редактируемой таблицей данных.",
"ai_chat.inspection.safety.restriction.jvm_mutating_disabled": "Текущая диагностика JVM явно запрещает команды mutating, даже если уровень безопасности AI разрешает запись.",
"ai_chat.inspection.safety.restriction.jvm_readonly": "Текущее подключение JVM доступно только для чтения, поэтому диагностические планы по умолчанию должны ограничиваться наблюдением и устранением неполадок.",
"ai_chat.inspection.safety.restriction.mcp_allow_mutating": "При выполнении инструкций без выборки через GoNavi MCP execute_sql также нужно явно передать allowMutating=true.",
"ai_chat.inspection.safety.restriction.non_query_confirmation": "Любая разрешенная инструкция без выборки по-прежнему требует подтверждения человеком.",
"ai_chat.inspection.safety.restriction.readonly_blocks_mutating": "На текущем уровне безопасности все DML/DDL напрямую блокируются.",
"ai_chat.inspection.safety.rule.full": "В режиме полного доступа разрешены все операции SQL; рискованные или нераспознанные инструкции по-прежнему требуют подтверждения.",
"ai_chat.inspection.safety.rule.readonly": "В режиме только чтения разрешены только запросы.",
"ai_chat.inspection.safety.rule.readwrite": "В режиме чтения/записи разрешены запросы и DML; DDL по-прежнему блокируется.",
"ai_chat.inspection.setup.blocker.missing_base_url": "У активного поставщика отсутствует base URL",
"ai_chat.inspection.setup.blocker.missing_model": "У активного поставщика не выбрана модель",
"ai_chat.inspection.setup.blocker.missing_secret": "У активного поставщика отсутствует API Key / Secret",
"ai_chat.inspection.setup.blocker.no_active_provider": "Активный поставщик AI не выбран",
"ai_chat.inspection.setup.message.blocked": "В AI-настройке есть {{count}} блокирующих проблем; сначала исправьте активного поставщика и предварительные условия чата",
"ai_chat.inspection.setup.message.needs_attention": "AI-настройка в целом пригодна к работе, но еще можно оптимизировать {{count}} рекомендаций",
"ai_chat.inspection.setup.message.ready": "Проверка состояния AI-настройки пройдена; поставщик, предварительные условия чата и путь выполнения MCP доступны",
"ai_chat.inspection.setup.next_action.add_guidance": "Чтобы закрепить стиль ответа или workflow, добавьте пользовательские промпты или включите Skills",
"ai_chat.inspection.setup.next_action.add_mcp_server": "Чтобы расширить возможности AI-инструментов, добавьте и протестируйте хотя бы один MCP-сервер",
"ai_chat.inspection.setup.next_action.attach_schema_context": "Для более точных SQL- или структурных рекомендаций сначала прикрепите schema целевой таблицы к контексту AI",
"ai_chat.inspection.setup.next_action.connect_external_client": "Чтобы внешние Agents могли использовать GoNavi MCP, подключите локальные клиенты вроде Claude Code/Codex или настройте удаленный MCP-мост для облачных Agents",
"ai_chat.inspection.setup.next_action.fill_base_url": "Заполните baseUrl активного поставщика",
"ai_chat.inspection.setup.next_action.fill_secret": "Заполните secret активного поставщика",
"ai_chat.inspection.setup.next_action.select_model": "Выберите доступную модель для активного поставщика",
"ai_chat.inspection.setup.next_action.select_provider": "Сначала добавьте и выберите активного поставщика в настройках AI",
"ai_chat.inspection.setup.next_action.test_mcp_servers": "Проверьте каждый включенный MCP-сервер и подтвердите, что команда, аргументы и переменные окружения корректно обнаруживают инструменты",
"ai_chat.inspection.setup.next_action.wait_models": "Дождитесь завершения загрузки списка моделей, затем снова подтвердите активную модель",
"ai_chat.inspection.setup.warning.external_client_not_connected": "Claude Code / Codex еще не подключен к текущему GoNavi MCP как локальный клиент; OpenClaw/Hermans требуется удаленный мост",
"ai_chat.inspection.setup.warning.loading_models": "Список моделей еще загружается, поэтому выбор модели пока не завершен",
"ai_chat.inspection.setup.warning.no_guidance": "Пользовательские промпты или Skills не настроены",
"ai_chat.inspection.setup.warning.no_mcp_servers": "MCP-серверы еще не настроены",
"ai_chat.inspection.setup.warning.no_mcp_tools": "MCP-серверы включены, но доступные MCP-инструменты еще не обнаружены",
"ai_chat.inspection.setup.warning.no_schema_context": "Чат готов, но контекст schema таблицы еще не прикреплен",
"ai_chat.inspection.snapshot.error.default": "Не удалось прочитать локальный снимок проверки: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_active_tab": "Не удалось прочитать текущую активную вкладку: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_ai_context": "Не удалось прочитать текущий AI-контекст: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_ai_context_budget": "Не удалось прочитать диагностику объема AI-контекста: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_ai_last_render_error": "Не удалось прочитать последнюю ошибку рендеринга AI: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_ai_message_flow": "Не удалось прочитать диагностику потока сообщений AI: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_ai_sessions": "Не удалось прочитать локальный список AI-сеансов: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_app_health": "Не удалось прочитать обзор состояния AI-приложения: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_codebase_hotspots": "Не удалось прочитать диагностику горячих участков кода: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_connection_capabilities": "Не удалось прочитать матрицу возможностей текущего подключения: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_current_connection": "Не удалось прочитать текущее подключение: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_external_sql_directories": "Не удалось прочитать внешние каталоги SQL: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_external_sql_file": "Не удалось прочитать внешний SQL-файл: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_mcp_runtime_failures": "Не удалось прочитать диагностику runtime-сбоев MCP: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_recent_sql_activity": "Не удалось свести недавнюю SQL-активность: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_recent_sql_logs": "Не удалось получить последние SQL-логи: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_redis_topology": "Не удалось прочитать конфигурацию топологии Redis: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_saved_connections": "Не удалось прочитать список сохраненных подключений: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_saved_queries": "Не удалось прочитать сохраненные запросы: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_shortcuts": "Не удалось прочитать конфигурацию горячих клавиш: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_sql_editor_transaction": "Не удалось прочитать состояние транзакции SQL-редактора: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_sql_snippets": "Не удалось прочитать SQL-фрагменты: {{detail}}",
"ai_chat.inspection.snapshot.error.inspect_workspace_tabs": "Не удалось прочитать текущие вкладки рабочей области: {{detail}}",
"ai_chat.inspection.sql_editor_transaction.commit_policy.semantics": "SQL-редактор выполняет DML INSERT/UPDATE/DELETE/MERGE/REPLACE внутри управляемой транзакции. Ручной или автоматический режим управляет только тем, когда после успешного выполнения произойдет COMMIT, а не тем, будет ли открыта транзакция.",
"ai_chat.inspection.sql_editor_transaction.next_action.explain_auto_commit": "Объясните, что текущий DML сначала открывает управляемую транзакцию и автоматически выполняет commit примерно через {{seconds}} секунд после успешного выполнения.",
"ai_chat.inspection.sql_editor_transaction.next_action.explain_manual_commit": "Объясните, что текущий DML сначала открывает управляемую транзакцию, а после успешного выполнения требует ручного Commit или Rollback.",
"ai_chat.inspection.sql_editor_transaction.next_action.inspect_recent_activity": "Просмотрите recentRelevantLogs для последних результатов записи или транзакций и при необходимости вызовите inspect_recent_sql_activity для детализации.",
"ai_chat.inspection.sql_editor_transaction.next_action.resolve_active_pending": "Попросите пользователя нажать «Commit» или «Rollback» в панели транзакции области результатов либо дождаться окончания обратного отсчета auto-commit.",
"ai_chat.inspection.sql_editor_transaction.next_action.switch_to_pending_tab": "Перед продолжением DML вернитесь к соответствующей SQL-вкладке и завершите ожидающую транзакцию.",
"ai_chat.inspection.sql_editor_transaction.next_action.switch_to_sql_tab": "Сначала переключитесь на вкладку запроса с черновиком SQL или попросите пользователя вставить SQL, который нужно выполнить.",
"ai_chat.inspection.sql_editor_transaction.no_active_tab": "Активная вкладка сейчас не выбрана",
"ai_chat.inspection.sql_editor_transaction.not_sql_tab": "Текущая активная вкладка не является вкладкой SQL-редактора",
"ai_chat.inspection.sql_editor_transaction.semantics.explicit_transaction": "Обнаружены явные операторы управления транзакцией, поэтому GoNavi не будет оборачивать их еще одной управляемой транзакцией SQL-редактора.",
"ai_chat.inspection.sql_editor_transaction.semantics.managed_dml": "Когда SQL-редактор выполняет DML INSERT/UPDATE/DELETE/MERGE/REPLACE, он сначала входит в управляемую транзакцию. Настройка коммита определяет только момент COMMIT после успешного выполнения.",
"ai_chat.inspection.sql_editor_transaction.semantics.no_managed_transaction": "Текущий SQL не запускает управляемую транзакцию SQL-редактора. Запросы только для чтения по-прежнему используют обычный путь выполнения.",
"ai_chat.inspection.sql_editor_transaction.warning.active_pending_transaction": "В активной SQL-вкладке уже есть ожидающая транзакция. Перед новым DML сначала выполните commit или rollback.",
"ai_chat.inspection.sql_editor_transaction.warning.auto_commit_managed_dml": "Автоматический commit включен, но DML все равно сначала входит в управляемую транзакцию и выполняет COMMIT только после задержки.",
"ai_chat.inspection.sql_editor_transaction.warning.explicit_transaction_control": "Текущий SQL уже содержит явное управление транзакцией, поэтому SQL-редактор не будет брать на себя commit или rollback.",
"ai_chat.inspection.sql_editor_transaction.warning.pending_transactions": "Есть {{count}} управляемых транзакций SQL-редактора, ожидающих commit или rollback",
"ai_chat.inspection.sql_log.unspecified_database": "(База данных не указана)",
"ai_chat.inspection.sql_risk.error.inspect_failed": "Не удалось проверить риск SQL: {{detail}}",
"ai_chat.inspection.sql_risk.message.no_active_query_sql": "Текущая активная вкладка не является вкладкой SQL-запроса, либо в редакторе нет SQL-содержимого.",
"ai_chat.inspection.sql_risk.message.no_sql": "SQL не передан, и нет доступной для чтения активной вкладки SQL-запроса.",
"ai_chat.inspection.sql_risk.next_action.confirm_write_scope": "Для операторов записи или DDL сначала подтвердите WHERE, резервные копии, целевую базу и область воздействия.",
"ai_chat.inspection.sql_risk.next_action.explain_and_confirm": "Сначала объясните пользователю риски, затем попросите подтвердить продолжение.",
"ai_chat.inspection.sql_risk.next_action.provide_sql": "Сначала передайте параметр sql или переключитесь на вкладку запроса с черновиком SQL.",
"ai_chat.inspection.sql_risk.next_action.read_only_check_target": "Запросы только для чтения менее рискованны, но целевое подключение и имя базы всё равно следует проверить заранее.",
"ai_chat.inspection.sql_risk.warning.data_change": "Этот оператор изменяет данные. Перед выполнением проверьте целевую базу, условия и область воздействия.",
"ai_chat.inspection.sql_risk.warning.ddl_change": "Этот оператор изменяет структуры или объекты базы данных. Сначала сделайте резервную копию и подтвердите план отката.",
"ai_chat.inspection.sql_risk.warning.delete_missing_where": "В DELETE отсутствует условие WHERE, поэтому он может удалить всю таблицу.",
"ai_chat.inspection.sql_risk.warning.drop_object": "DROP удаляет объекты базы данных. Перед выполнением подтвердите объект и резервную копию.",
"ai_chat.inspection.sql_risk.warning.multi_statement": "Обнаружено операторов SQL: {{count}}. Перед пакетным выполнением подтвердите область воздействия каждого оператора.",
"ai_chat.inspection.sql_risk.warning.permission_change": "GRANT / REVOKE изменяет границы прав доступа. Подтвердите получателя и область действия.",
"ai_chat.inspection.sql_risk.warning.routine_side_effect": "Этот оператор вызывает routine или procedure и может иметь неявные записи или побочные эффекты.",
"ai_chat.inspection.sql_risk.warning.safety_blocked": "Текущая политика безопасности AI не разрешает SQL типа {{operationType}}.",
"ai_chat.inspection.sql_risk.warning.safety_blocked_unknown": "Текущая политика безопасности AI не разрешает этот тип операции SQL.",
"ai_chat.inspection.sql_risk.warning.truncate": "TRUNCATE быстро очищает данные таблицы и обычно не откатывается построчно.",
"ai_chat.inspection.sql_risk.warning.unrecognized_operation": "Не удалось распознать допустимое ключевое слово операции SQL.",
"ai_chat.inspection.sql_risk.warning.update_missing_where": "В UPDATE отсутствует условие WHERE, поэтому он может обновить всю таблицу.",
"ai_chat.inspection.support_bundle.message.ready": "Создан снимок пакета поддержки GoNavi AI для диагностики проблем AI, MCP, журналов, подключений и объема контекста",
"ai_chat.inspection.support_bundle.privacy.note": "По умолчанию возвращаются только сводки и структурированные счетчики; строки журналов или предпросмотры сообщений включаются только при явном включении includeLogLines/includeMessageContent.",
"ai_chat.inspection.table_schema.error.ddl_and_columns_failed": "Не удалось получить DDL CREATE TABLE: {{ddlDetail}}; резервное получение списка столбцов также завершилось ошибкой: {{columnDetail}}",
"ai_chat.inspection.table_schema.error.ddl_failed": "Не удалось получить DDL CREATE TABLE: {{detail}}",
"ai_chat.inspection.table_schema.error.unknown": "Неизвестная ошибка",
"ai_chat.inspection.table_schema.value.none": "нет",
"ai_chat.inspection.table_schema.warning.available_fields": "Доступные поля: {{fields}}",
"ai_chat.inspection.table_schema.warning.columns_contract": "⚠️ Ниже приведен фактический список field для таблицы {{tableName}}. При генерации SQL используйте только эти значения field как имена столбцов, строго без изменений, сокращений или самостоятельного составления имен.",
"ai_chat.inspection.table_schema.warning.ddl_error": "Ошибка DDL: {{detail}}",
"ai_chat.inspection.table_schema.warning.ddl_fallback": "Не удалось получить DDL таблицы {{tableName}}; выполнен переход к сводке метаданных столбцов.",
"ai_chat.inspection.table_schema.warning.detail": "Подробности: {{detail}}",
"ai_chat.inspection.table_schema.warning.fallback_limitation": "Этот результат не содержит полных сведений DDL об индексах, ограничениях, триггерах и других объектах; продолжайте анализ по списку столбцов и не останавливайтесь только из-за ошибки прав на DDL.",
"ai_chat.inspection.tool_catalog.message.by_keyword": "Возвращены рекомендации каталога инструментов по ключевому слову {{keyword}}",
"ai_chat.inspection.tool_catalog.message.by_tool_name": "Возвращена информация каталога для инструмента {{toolName}}",
"ai_chat.inspection.tool_catalog.message.summary": "Возвращена сводка каталога инструментов GoNavi AI",
"ai_chat.inspection.tool_catalog.next_action.broaden_keyword": "Используйте более широкие ключевые слова или сначала вызовите inspect_ai_runtime, чтобы посмотреть полный текущий список инструментов",
"ai_chat.inspection.tool_catalog.next_action.filter_by_keyword": "Сначала отфильтруйте по ключевым словам вопроса пользователя, например mcp, сбой подключения, транзакция, горячие клавиши, schema или логи",
"ai_chat.inspection.tool_catalog.next_action.inspect_mcp_setup": "Вызовите inspect_mcp_setup, чтобы проверить MCP-сервисы и состояние подключения внешних клиентов",
"ai_chat.inspection.tool_catalog.next_action.use_parameter_descriptions": "Перед вызовом инструментов с параметрами сначала соберите arguments по parameters.description; если контекста не хватает, уточните у пользователя",
"ai_chat.inspection.tool_catalog.warning.no_matches": "Подходящие инструменты или рекомендуемые сценарии не найдены",
"ai_chat.inspection.tool_catalog.warning.no_mcp_tools": "Внешние MCP-инструменты не обнаружены; если пользователю нужны внешние возможности, сначала проверьте конфигурацию MCP-сервисов и состояние обнаружения инструментов",
"ai_chat.inspection.tool_info.inspect_active_tab.desc": "Inspect the current active tab context",
"ai_chat.inspection.tool_info.inspect_active_tab.detail": "Returns the current active tab type, connection, database, table name, and draft content in the current SQL or command tab, truncated when long. Use it when users mention the current SQL, ask to optimize the editor statement, or refer to the current tab.",
"ai_chat.inspection.tool_info.inspect_active_tab.param.includeContent": "Optional. Whether to include SQL or command draft content from the tab. Default true.",
"ai_chat.inspection.tool_info.inspect_active_tab.params": "includeContent?(default true)",
"ai_chat.inspection.tool_info.inspect_active_tab.tool_description": "Get the current active tab context snapshot, including tab type, connection, database, table name, and draft content from the current SQL or command tab.",
"ai_chat.inspection.tool_info.inspect_ai_chat_readiness.desc": "Inspect whether current AI chat can send",
"ai_chat.inspection.tool_info.inspect_ai_chat_readiness.detail": "Returns whether the current chat input has all prerequisites to send, including active provider, missing key or endpoint on the current provider, selected model, current connection context, attached table context, and next actions. Use it when users ask why sending is disabled or what the chat input is missing.",
"ai_chat.inspection.tool_info.inspect_ai_chat_readiness.params": "No parameters",
"ai_chat.inspection.tool_info.inspect_ai_chat_readiness.tool_description": "Read the send-prerequisite state of the current AI chat input, including active provider, key and endpoint completeness, selected model, current connection context, attached table schema count, and suggested next actions.",
"ai_chat.inspection.tool_info.inspect_ai_context_budget.desc": "Диагностировать размер AI-контекста и риск стабильности",
"ai_chat.inspection.tool_info.inspect_ai_context_budget.detail": "Оценивает последние сообщения, результаты инструментов, прикрепленные table DDL, MCP tool schemas, пользовательские prompts и Skills в текущей или указанной AI-сессии, затем возвращает риск low/medium/high/critical, главные источники роста и предложения по сужению.",
"ai_chat.inspection.tool_info.inspect_ai_context_budget.param.includeDetails": "Необязательно. Возвращать ли детали largest message, largest DDL table и largest MCP schema. По умолчанию true.",
"ai_chat.inspection.tool_info.inspect_ai_context_budget.param.messageLimit": "Необязательно. Максимальное число последних сообщений для подсчета. По умолчанию 40, максимум 120.",
"ai_chat.inspection.tool_info.inspect_ai_context_budget.param.sessionId": "Необязательно. AI session ID для диагностики. Если не указан, используется текущая активная сессия.",
"ai_chat.inspection.tool_info.inspect_ai_context_budget.params": "sessionId?(по умолчанию текущая сессия), messageLimit?(по умолчанию 40), includeDetails?(по умолчанию true)",
"ai_chat.inspection.tool_info.inspect_ai_context_budget.tool_description": "Читает снимок размера AI-контекста и риска стабильности, включая окно последних сообщений, длину результатов инструментов, прикрепленный table DDL, MCP tool schemas, пользовательские prompts и включенные Skills.",
"ai_chat.inspection.tool_info.inspect_ai_context.desc": "Inspect currently attached AI table-schema context",
"ai_chat.inspection.tool_info.inspect_ai_context.detail": "Returns the tables currently attached to the AI conversation context, their connection and database, and optional DDL previews. Use it when users ask which table structures are attached or what the current AI context contains.",
"ai_chat.inspection.tool_info.inspect_ai_context.param.ddlLimit": "Optional. DDL truncation length. Default 4000, maximum 12000.",
"ai_chat.inspection.tool_info.inspect_ai_context.param.includeDDL": "Optional. Whether to include each table's DDL content. Default false.",
"ai_chat.inspection.tool_info.inspect_ai_context.params": "includeDDL?(default false), ddlLimit?(default 4000)",
"ai_chat.inspection.tool_info.inspect_ai_context.tool_description": "Read the table-schema snapshot currently attached to the AI conversation context, including connection, database, table name, and optional DDL content.",
"ai_chat.inspection.tool_info.inspect_ai_guidance.desc": "Inspect current AI prompts and Skills configuration",
"ai_chat.inspection.tool_info.inspect_ai_guidance.detail": "Returns current user-defined global, database, and JVM prompts, plus enabled Skills, scopes, dependency tools, and skill prompt content. Use it when users ask which prompts are currently attached, why AI answers this way, or which Skills are active.",
"ai_chat.inspection.tool_info.inspect_ai_guidance.params": "No parameters",
"ai_chat.inspection.tool_info.inspect_ai_guidance.tool_description": "Read the current AI prompt and skill configuration snapshot, including user-defined prompts, enabled Skills, scopes, dependency tools, and each system prompt.",
"ai_chat.inspection.tool_info.inspect_ai_last_render_error.desc": "Проверить последнюю ошибку рендеринга AI-сообщения",
"ai_chat.inspection.tool_info.inspect_ai_last_render_error.detail": "Возвращает последнюю изолированную ошибку рендеринга AI-сообщения, включая идентификатор сообщения, предпросмотр содержимого, сводку ошибки и сводку стека компонентов.",
"ai_chat.inspection.tool_info.inspect_ai_last_render_error.params": "Без параметров",
"ai_chat.inspection.tool_info.inspect_ai_last_render_error.tool_description": "Читает последний локальный снимок ошибки рендеринга AI-сообщения, включая message ID, роль, предпросмотр содержимого, сводку ошибки, стек компонентов и следующие диагностические подсказки.",
"ai_chat.inspection.tool_info.inspect_ai_message_flow.desc": "Диагностировать текущий поток сообщений AI-диалога",
"ai_chat.inspection.tool_info.inspect_ai_message_flow.detail": "Читает последние сообщения текущей или указанной AI-сессии, считает user/assistant/tool сообщения, проверяет наличие результатов tool calls и выявляет последовательные assistant bubbles, пустые assistant placeholders или неочищенное loading.",
"ai_chat.inspection.tool_info.inspect_ai_message_flow.param.includeContent": "Необязательно. Включать ли предпросмотры содержимого сообщений. По умолчанию true.",
"ai_chat.inspection.tool_info.inspect_ai_message_flow.param.limit": "Необязательно. Максимальное число последних сообщений для возврата. По умолчанию 24, максимум 80.",
"ai_chat.inspection.tool_info.inspect_ai_message_flow.param.previewLimit": "Необязательно. Лимит символов для предпросмотра каждого сообщения. По умолчанию 180, максимум 1000.",
"ai_chat.inspection.tool_info.inspect_ai_message_flow.param.sessionId": "Необязательно. AI session ID для диагностики. Если не указан, используется текущая активная сессия.",
"ai_chat.inspection.tool_info.inspect_ai_message_flow.params": "sessionId?(по умолчанию текущая сессия), limit?(по умолчанию 24), includeContent?(по умолчанию true), previewLimit?(по умолчанию 180)",
"ai_chat.inspection.tool_info.inspect_ai_message_flow.tool_description": "Читает диагностику потока сообщений для текущей или указанной AI-сессии, включая role sequence, числа assistant/tool, соответствие tool-call и tool-result, последовательные assistant messages, пустые assistant messages и остатки loading.",
"ai_chat.inspection.tool_info.inspect_ai_providers.desc": "Inspect current AI providers and model configuration",
"ai_chat.inspection.tool_info.inspect_ai_providers.detail": "Returns configured AI providers, the active provider, baseUrl values, selected models, declared model lists, whether keys exist, custom request header keys, and missing key, model, or endpoint checks. Use it when users ask why there are no models, whether an API Key is configured, or which providers are currently configured.",
"ai_chat.inspection.tool_info.inspect_ai_providers.params": "No parameters",
"ai_chat.inspection.tool_info.inspect_ai_providers.tool_description": "Read the current AI provider configuration snapshot, including provider list, active provider, endpoint, selected model, declared model list, key presence, custom request header keys, and missing key, model, or endpoint checks.",
"ai_chat.inspection.tool_info.inspect_ai_runtime.desc": "Inspect current AI runtime status",
"ai_chat.inspection.tool_info.inspect_ai_runtime.detail": "Returns the active model provider, model name, safety level, context level, enabled Skills, and currently exposed built-in and MCP tools. Use it before answering questions about available tools, the active model, or why write operations are unavailable.",
"ai_chat.inspection.tool_info.inspect_ai_runtime.params": "No parameters",
"ai_chat.inspection.tool_info.inspect_ai_runtime.tool_description": "Read the current AI runtime snapshot, including provider, model, safety level, context level, enabled Skills, available built-in tools, and MCP tools. Use it before answering AI capability-boundary questions.",
"ai_chat.inspection.tool_info.inspect_ai_safety.desc": "Inspect current AI write safety boundaries",
"ai_chat.inspection.tool_info.inspect_ai_safety.detail": "Returns the SQL scope allowed by the current AI safety level, whether non-read-only statements still require confirmation or allowMutating, and whether the active connection, tab, or JVM diagnostic permission adds read-only restrictions. Use it when users ask why writes are blocked, whether DDL can run, or whether allowMutating is required.",
"ai_chat.inspection.tool_info.inspect_ai_safety.params": "No parameters",
"ai_chat.inspection.tool_info.inspect_ai_safety.tool_description": "Read the current AI safety-boundary snapshot, including SQL scope allowed by the active safety level, confirmation requirements for non-query statements, MCP execute_sql allowMutating requirements, and any additional read-only restrictions from the active connection, result tab, or JVM diagnostic permissions.",
"ai_chat.inspection.tool_info.inspect_ai_sessions.desc": "Проверить локальную историю AI-диалогов",
"ai_chat.inspection.tool_info.inspect_ai_sessions.detail": "Фильтрует локальные AI-сессии по keyword и возвращает заголовок сессии, время обновления, число сообщений, признак текущей сессии, первый вопрос пользователя и предпросмотр последнего сообщения.",
"ai_chat.inspection.tool_info.inspect_ai_sessions.param.includePreview": "Необязательно. Включать ли первый вопрос пользователя и предпросмотр последнего сообщения. По умолчанию true.",
"ai_chat.inspection.tool_info.inspect_ai_sessions.param.keyword": "Необязательно. Фильтровать по заголовку сессии, session ID, первому вопросу пользователя или содержимому последнего сообщения.",
"ai_chat.inspection.tool_info.inspect_ai_sessions.param.limit": "Необязательно. Максимальное число сессий для возврата. По умолчанию 10, максимум 50.",
"ai_chat.inspection.tool_info.inspect_ai_sessions.params": "keyword?, limit?, includePreview?(по умолчанию true)",
"ai_chat.inspection.tool_info.inspect_ai_sessions.tool_description": "Читает локальную историю AI-диалогов, optional фильтрует по keyword и возвращает заголовок, время обновления, число сообщений, current-session flag, первый вопрос пользователя и предпросмотр последнего сообщения.",
"ai_chat.inspection.tool_info.inspect_ai_setup_health.desc": "Run a one-shot health check for the current AI setup",
"ai_chat.inspection.tool_info.inspect_ai_setup_health.detail": "Summarizes the current AI provider, chat send prerequisites, MCP services and external client access, prompts and Skills, and attached context, then returns blockers, warnings, and next actions. Use it when users ask why AI is hard to use, whether the current AI setup has problems, or what is still missing.",
"ai_chat.inspection.tool_info.inspect_ai_setup_health.params": "No parameters",
"ai_chat.inspection.tool_info.inspect_ai_setup_health.tool_description": "Inspect current AI setup health, returning provider, model, chat send prerequisites, MCP access, prompts and Skills, attached table context, blockers, suggestions, and next actions.",
"ai_chat.inspection.tool_info.inspect_ai_support_bundle.desc": "Export an AI troubleshooting support bundle",
"ai_chat.inspection.tool_info.inspect_ai_support_bundle.detail": "Aggregates AI application health, provider and MCP status, application log summary, connection failure summary, message flow structure, context size, remote MCP access, and tool catalog index. Use it when users report AI instability, need MCP, connection, and logs reviewed together, or need development troubleshooting material without secrets or database passwords.",
"ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.connectionKeyword": "Optional. Keyword used to analyze connection failure logs. If omitted, keyword is reused.",
"ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.exposeStrategy": "Optional. Remote exposure strategy used to generate matching safety reminders.",
"ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.includeDetails": "Optional. Whether to include context-size details. Default false.",
"ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.includeLogLines": "Optional. Whether to include original log lines. Default false; enable only when lines need to be quoted.",
"ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.includeMessageContent": "Optional. Whether to include message content previews. Default false; enable only when troubleshooting bubble content.",
"ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.keyword": "Optional. Filter logs and tool catalog entries by keyword, such as ai, mcp, mysql, error, or openclaw.",
"ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.lineLimit": "Optional. Maximum number of application log lines to analyze. Default 120, maximum 240.",
"ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.localAddr": "Optional. Windows local HTTP MCP listen address. Default 127.0.0.1:8765.",
"ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.path": "Optional. Streamable HTTP MCP path. Default /mcp.",
"ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.publicUrl": "Optional. Public or tunnel URL used by a cloud Agent to access GoNavi MCP for the remote MCP support bundle.",
"ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.sessionId": "Optional. AI session ID to diagnose. If omitted, the current active session is used.",
"ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.tokenConfigured": "Optional. Whether a random Bearer Token is already prepared. Passing false returns an authentication warning.",
"ai_chat.inspection.tool_info.inspect_ai_support_bundle.params": "keyword?, sessionId?, lineLimit?(default 120), includeLogLines?(default false), includeMessageContent?(default false), publicUrl?, tokenConfigured?",
"ai_chat.inspection.tool_info.inspect_ai_support_bundle.tool_description": "Generate a GoNavi AI troubleshooting support bundle that summarizes AI application health, provider and send prerequisites, MCP configuration and remote access, application log summary, database connection failure summary, current AI message flow, context-size risk, and tool catalog index. By default it does not include database passwords, provider keys, MCP environment variable values, original log lines, or full message content.",
"ai_chat.inspection.tool_info.inspect_ai_tool_catalog.desc": "Inspect AI built-in tool catalog and argument hints",
"ai_chat.inspection.tool_info.inspect_ai_tool_catalog.detail": "Returns GoNavi AI built-in tools, recommended probe flows, argument descriptions, and current MCP tool summaries by keyword or tool name. Use it when users ask which tool should be used, how to fill arguments, which built-in tools exist, or when AI needs to choose a probe route first.",
"ai_chat.inspection.tool_info.inspect_ai_tool_catalog.param.includeMCPTools": "Optional. Whether to include currently discovered MCP tool summaries. Default true.",
"ai_chat.inspection.tool_info.inspect_ai_tool_catalog.param.keyword": "Optional. Filter tools and flows by problem keyword, such as mcp, connection failure, transaction, shortcut, schema, or log.",
"ai_chat.inspection.tool_info.inspect_ai_tool_catalog.param.limit": "Optional. Maximum number of flows, built-in tools, and MCP tools to return. Default 12, maximum 40.",
"ai_chat.inspection.tool_info.inspect_ai_tool_catalog.param.toolName": "Optional. Query by exact built-in tool name, such as inspect_mcp_draft or inspect_sql_risk.",
"ai_chat.inspection.tool_info.inspect_ai_tool_catalog.params": "keyword?, toolName?, includeMCPTools?(default true), limit?(default 12)",
"ai_chat.inspection.tool_info.inspect_ai_tool_catalog.tool_description": "Read the GoNavi AI tool catalog snapshot, filterable by keyword or tool name, and return recommended tool-call flows, built-in tool descriptions, argument hints, and currently discovered MCP tool summaries.",
"ai_chat.inspection.tool_info.inspect_ai_upstream_logs.desc": "Inspect AI upstream request payloads and status",
"ai_chat.inspection.tool_info.inspect_ai_upstream_logs.detail": "Reads recent AI upstream request start, completion, and failure records from gonavi.log, filtered by provider, requestId, or keyword, then returns request body preview, payload structure summary, endpoint, status code, latency, and error summary. Use it when users need to verify the real payload sent upstream, diagnose request parameter compatibility, confirm whether tools were sent, or inspect redacted request logs.",
"ai_chat.inspection.tool_info.inspect_ai_upstream_logs.param.bodyPreviewLimit": "Optional. Maximum characters for one body preview. Default 6000, maximum 12000.",
"ai_chat.inspection.tool_info.inspect_ai_upstream_logs.param.includeBody": "Optional. Whether to return the redacted request body preview. Default true; set false when only status is needed.",
"ai_chat.inspection.tool_info.inspect_ai_upstream_logs.param.includeLines": "Optional. Whether to include redacted raw log lines. Default false; enable only when original lines need to be quoted.",
"ai_chat.inspection.tool_info.inspect_ai_upstream_logs.param.includePayloadSummary": "Optional. Whether to parse the request body and return model, message role distribution, tool count/name list, stream, and tool_choice summary. Default true; message bodies and keys are not returned.",
"ai_chat.inspection.tool_info.inspect_ai_upstream_logs.param.keyword": "Optional. Further filter by requestId, provider, endpoint, bodyPreview, or error, such as model name, API path, or parameter name.",
"ai_chat.inspection.tool_info.inspect_ai_upstream_logs.param.lineLimit": "Optional. Maximum number of tail log lines to read. Default 160, maximum 300.",
"ai_chat.inspection.tool_info.inspect_ai_upstream_logs.param.provider": "Optional. Inspect only one provider, such as openai, anthropic, or gemini. Case-insensitive.",
"ai_chat.inspection.tool_info.inspect_ai_upstream_logs.param.requestId": "Optional. Filter by the exact requestId in logs, useful when continuing from an error log.",
"ai_chat.inspection.tool_info.inspect_ai_upstream_logs.param.requestLimit": "Optional. Maximum number of request summaries to return. Default 12, maximum 40.",
"ai_chat.inspection.tool_info.inspect_ai_upstream_logs.params": "provider?, requestId?, keyword?, lineLimit?(default 160), requestLimit?(default 12), includeBody?(default true), includePayloadSummary?(default true), includeLines?(default false)",
"ai_chat.inspection.tool_info.inspect_ai_upstream_logs.tool_description": "Read AI upstream request records from GoNavi application logs and return requestId, provider, method, endpoint, request body preview, redacted payload structure summary, status code, latency, and error summary. Use it when users mention upstream request payloads, requestId, provider parameters, missing tool calls, model API errors, or need to verify the real payload just sent upstream.",
"ai_chat.inspection.tool_info.inspect_app_health.desc": "Inspect the overall AI application health",
"ai_chat.inspection.tool_info.inspect_app_health.detail": "Summarizes AI configuration, provider send prerequisites, MCP access, application log ERROR/WARN signals, recent connection failures and cooldowns, AI reply bubble render errors, and current workspace tabs. Use it first when users report AI instability, ask for an overall check, or need connection and MCP issues diagnosed together.",
"ai_chat.inspection.tool_info.inspect_app_health.param.connectionKeyword": "Optional. Keyword used when analyzing connection failure logs by type, address, or error. If omitted, keyword is reused.",
"ai_chat.inspection.tool_info.inspect_app_health.param.includeLogLines": "Optional. Whether to include original log lines in the result. Default false; enable only when lines need to be quoted.",
"ai_chat.inspection.tool_info.inspect_app_health.param.keyword": "Optional. Filter application logs by keyword, such as ai, mcp, mysql, or error. If omitted, the recent log window is read.",
"ai_chat.inspection.tool_info.inspect_app_health.param.lineLimit": "Optional. Maximum number of log lines to analyze per probe. Default 120, maximum 240.",
"ai_chat.inspection.tool_info.inspect_app_health.params": "keyword?, connectionKeyword?, lineLimit?(default 120), includeLogLines?(default false)",
"ai_chat.inspection.tool_info.inspect_app_health.tool_description": "Read the GoNavi AI application health overview, including AI provider and send prerequisites, MCP access, application log ERROR/WARN signals, recent connection failures and cooldowns, AI reply bubble render errors, and current workspace tabs, then return blockers, runtime anomaly signals, and suggested next probes.",
"ai_chat.inspection.tool_info.inspect_app_logs.desc": "Проверить хвост журнала приложения GoNavi",
"ai_chat.inspection.tool_info.inspect_app_logs.detail": "Фильтрует последние строки INFO/WARN/ERROR журнала приложения GoNavi по optional keyword и возвращает распределение уровней, путь к файлу журнала и состояние усечения. Используйте сначала при упоминании gonavi.log, ошибок запуска, сбоев запуска MCP или ошибок подключения к базе данных.",
"ai_chat.inspection.tool_info.inspect_app_logs.param.keyword": "Необязательно. Фильтровать содержимое журнала по keyword, например mcp, mysql, timeout или error.",
"ai_chat.inspection.tool_info.inspect_app_logs.param.lineLimit": "Необязательно. Максимальное число строк журнала для возврата. По умолчанию 80, максимум 200.",
"ai_chat.inspection.tool_info.inspect_app_logs.params": "keyword?, lineLimit?(по умолчанию 80)",
"ai_chat.inspection.tool_info.inspect_app_logs.tool_description": "Читает хвост журнала приложения GoNavi, optional фильтрует по keyword и возвращает последние строки, распределение уровней, путь журнала и состояние усечения.",
"ai_chat.inspection.tool_info.inspect_codebase_hotspots.desc": "Проверить крупные frontend-файлы и точки разбиения",
"ai_chat.inspection.tool_info.inspect_codebase_hotspots.detail": "Возвращает hotspots крупных frontend-файлов GoNavi, включая число строк, уровень риска, зрелость разбиения, границы безопасности, предлагаемые split slices и регрессионные тесты для запуска.",
"ai_chat.inspection.tool_info.inspect_codebase_hotspots.param.includeRecommendations": "Необязательно. Включать ли suggestedSlices, testTargets и nextActions. По умолчанию true.",
"ai_chat.inspection.tool_info.inspect_codebase_hotspots.param.keyword": "Необязательно. Фильтровать по path, module, risk, split slice или test target, например Sidebar, DataGrid, Redis, transaction или connection.",
"ai_chat.inspection.tool_info.inspect_codebase_hotspots.param.limit": "Необязательно. Максимальное число hotspots для возврата. По умолчанию 8, максимум 30.",
"ai_chat.inspection.tool_info.inspect_codebase_hotspots.param.minLines": "Необязательно. Возвращать только hotspot-файлы минимум с таким числом строк. По умолчанию 1000, максимум 20000.",
"ai_chat.inspection.tool_info.inspect_codebase_hotspots.params": "keyword?, minLines?(по умолчанию 1000), limit?(по умолчанию 8), includeRecommendations?(по умолчанию true)",
"ai_chat.inspection.tool_info.inspect_codebase_hotspots.tool_description": "Читает снимок крупных frontend-файлов и split-hotspots GoNavi, возвращая путь файла, число строк, уровень риска, зрелость разбиения, preferred slice, safe split boundary, suggested slices, test targets и verification plan.",
"ai_chat.inspection.tool_info.inspect_connection_capabilities.desc": "Inspect frontend capabilities supported by the current connection",
"ai_chat.inspection.tool_info.inspect_connection_capabilities.detail": "Returns the data-source capability matrix for the current or specified connection, including query editor support, SQL export, copy INSERT, create/rename/delete database support, forced read-only result state, and whether manual or approximate counts are preferred. Use it when users ask why database creation, deletion, result editing, or other actions are unavailable.",
"ai_chat.inspection.tool_info.inspect_connection_capabilities.param.connectionId": "Optional. Connection ID to inspect. If omitted, the current active connection is used.",
"ai_chat.inspection.tool_info.inspect_connection_capabilities.params": "connectionId?(default current active connection)",
"ai_chat.inspection.tool_info.inspect_connection_capabilities.tool_description": "Read the frontend capability matrix for the current active connection or specified saved connection, including query editor support, SQL export, copy INSERT, create/rename/delete database support, forced read-only result state, and count strategy preferences.",
"ai_chat.inspection.tool_info.inspect_current_connection.desc": "Inspect the current active connection or data source summary",
"ai_chat.inspection.tool_info.inspect_current_connection.detail": "Returns current active connection type, address, port, current database, SSH/proxy/HTTP tunnel state, and table information bound to the active tab. Use it when users ask which database is connected, whether SSH is used, or what type the current data source is.",
"ai_chat.inspection.tool_info.inspect_current_connection.params": "No parameters",
"ai_chat.inspection.tool_info.inspect_current_connection.tool_description": "Read the real summary of the current active connection or active-tab data source, including connection type, address, port, current database, SSH/proxy/HTTP tunnel state, and table context bound to the active tab.",
"ai_chat.inspection.tool_info.inspect_external_sql_directories.desc": "Inspect local external SQL directory assets",
"ai_chat.inspection.tool_info.inspect_external_sql_directories.detail": "Filters local external SQL directories by keyword, connection, or database, and returns directory path, bound connection/database, and whether SQL files from those directories are currently open. Use it when users mention external SQL directories, ask which directory contains a script, or need to identify the external directory for an open SQL file.",
"ai_chat.inspection.tool_info.inspect_external_sql_directories.param.connectionId": "Optional. Only inspect external SQL directories bound to one connection.",
"ai_chat.inspection.tool_info.inspect_external_sql_directories.param.dbName": "Optional. Only inspect external SQL directories bound to one database.",
"ai_chat.inspection.tool_info.inspect_external_sql_directories.param.keyword": "Optional. Filter by directory name, path, connection name, or database name.",
"ai_chat.inspection.tool_info.inspect_external_sql_directories.param.limit": "Optional. Maximum number of directories to return. Default 20, maximum 100.",
"ai_chat.inspection.tool_info.inspect_external_sql_directories.params": "keyword?, connectionId?, dbName?, limit?",
"ai_chat.inspection.tool_info.inspect_external_sql_directories.tool_description": "Read locally configured external SQL directories, optionally filtered by keyword, connection, and database, and return directory path, bound connection/database, and summaries of currently open external SQL file tabs.",
"ai_chat.inspection.tool_info.inspect_external_sql_file.desc": "Read external SQL file content",
"ai_chat.inspection.tool_info.inspect_external_sql_file.detail": "Reads a specific SQL file inside a configured external SQL directory and returns its directory, bound connection/database, whether it already has an open tab, and a truncated content preview. Use it when users ask to inspect a script in a directory or explain what report.sql does.",
"ai_chat.inspection.tool_info.inspect_external_sql_file.param.filePath": "Required. Absolute path of the SQL file to read, usually found with inspect_external_sql_directories first.",
"ai_chat.inspection.tool_info.inspect_external_sql_file.param.previewCharLimit": "Optional. Maximum characters returned in the content preview. Default 12000, maximum 40000.",
"ai_chat.inspection.tool_info.inspect_external_sql_file.params": "filePath, previewCharLimit?",
"ai_chat.inspection.tool_info.inspect_external_sql_file.tool_description": "Read the content preview of a specified external SQL file, only for SQL files inside configured external SQL directories. Return file path, owning directory, bound connection/database, whether it is already open in the workspace, and truncated body content.",
"ai_chat.inspection.tool_info.inspect_mcp_authoring_guide.desc": "Проверить руководство по созданию add-MCP",
"ai_chat.inspection.tool_info.inspect_mcp_authoring_guide.detail": "Возвращает назначение полей add-MCP, рекомендуемый порядок заполнения, правила авторазделения полной команды и шаблоны npx / Node / uvx / Python / Docker / EXE. Используйте перед ответами о command, args, env, шаблонах или вставке полной команды запуска.",
"ai_chat.inspection.tool_info.inspect_mcp_authoring_guide.params": "Без параметров",
"ai_chat.inspection.tool_info.inspect_mcp_authoring_guide.tool_description": "Читает встроенное руководство GoNavi по созданию MCP: рекомендуемый порядок полей, назначение полей, примеры частых команд, правила авторазделения полной команды и примеры шаблонов npx / Node / uvx / Python / Docker / EXE.",
"ai_chat.inspection.tool_info.inspect_mcp_docker_setup.desc": "Проверить конфигурацию запуска Docker MCP",
"ai_chat.inspection.tool_info.inspect_mcp_docker_setup.detail": "Читает сохраненные Docker MCP-сервисы, проверяет, правильно ли command и args разделены на docker, run, --rm, -i, имя образа и аргументы контейнера, затем возвращает отсутствующие аргументы, число инструментов, рекомендации по timeout и следующие действия.",
"ai_chat.inspection.tool_info.inspect_mcp_docker_setup.param.includeDisabled": "Необязательно. Включать ли отключенные Docker MCP-сервисы. По умолчанию true.",
"ai_chat.inspection.tool_info.inspect_mcp_docker_setup.param.serverId": "Необязательно. Проверить только один MCP serverId. Если не указано, проверяются все Docker MCP-сервисы.",
"ai_chat.inspection.tool_info.inspect_mcp_docker_setup.params": "serverId?, includeDisabled?(по умолчанию true)",
"ai_chat.inspection.tool_info.inspect_mcp_docker_setup.tool_description": "Проверяет аргументы запуска сохраненных Docker MCP-сервисов и возвращает состояние docker run/-i/image/--rm/env/timeout, число обнаруженных инструментов, предупреждения конфигурации и nextActions.",
"ai_chat.inspection.tool_info.inspect_mcp_draft.desc": "Проверить черновик add-MCP",
"ai_chat.inspection.tool_info.inspect_mcp_draft.detail": "Моделирует конфигурацию GoNavi add-MCP из полной команды запуска или черновика по полям и возвращает авторазделение, предпросмотр запуска, применимый черновик, подсказки по аргументам и окружению, проблемы проверки, рекомендуемые шаблоны и следующие предложения. Секретные аргументы редактируются.",
"ai_chat.inspection.tool_info.inspect_mcp_draft.param.args": "Необязательно. Аргументы команды в черновике по полям. Массивы точнее, но строки с разделением запятыми или переводами строк тоже принимаются.",
"ai_chat.inspection.tool_info.inspect_mcp_draft.param.command": "Необязательно. Команда запуска command в черновике по полям. Должна быть только npx, node, uvx, python или exe path.",
"ai_chat.inspection.tool_info.inspect_mcp_draft.param.envText": "Необязательно. Черновик переменных окружения, по одному KEY=VALUE в строке. Не передавайте префиксы export, set или $env:.",
"ai_chat.inspection.tool_info.inspect_mcp_draft.param.fullCommand": "Необязательно. Полная команда запуска MCP из README или от пользователя, например $env:GITHUB_TOKEN=...; uvx mcp-server-github --stdio.",
"ai_chat.inspection.tool_info.inspect_mcp_draft.param.name": "Необязательно. Имя MCP-сервиса, например GitHub, Filesystem или Browser.",
"ai_chat.inspection.tool_info.inspect_mcp_draft.param.templateKey": "Необязательно. Сначала применить встроенный шаблон, затем переопределить его пользовательскими полями.",
"ai_chat.inspection.tool_info.inspect_mcp_draft.param.timeoutSeconds": "Необязательно. timeout в секундах для одного обнаружения или вызова инструмента. Рекомендуется 20; медленно запускающиеся сервисы могут использовать 45 или 60.",
"ai_chat.inspection.tool_info.inspect_mcp_draft.params": "fullCommand?, command?, args?, envText?, timeoutSeconds?, templateKey?, name?",
"ai_chat.inspection.tool_info.inspect_mcp_draft.tool_description": "Проверяет ожидающий черновик MCP-сервиса. Поддерживает авторазделение fullCommand/rawCommand/commandLine или проверку по полям command, args, envText, timeoutSeconds и templateKey. Возвращает разобранные поля, отредактированный предпросмотр запуска, suggestedServerSeed, подсказки по аргументам, риски окружения, errors, warnings, рекомендуемые шаблоны и nextActions без вывода значений api-key/token/password.",
"ai_chat.inspection.tool_info.inspect_mcp_remote_access.desc": "Проверить удаленный доступ MCP для OpenClaw/Hermans",
"ai_chat.inspection.tool_info.inspect_mcp_remote_access.detail": "Возвращает команды запуска GoNavi Streamable HTTP MCP, удаленный URL, рекомендации по аутентификации, границы облачных Agent OpenClaw/Hermans, варианты мостов и напоминания о безопасности. Используйте для доступа облачного OpenClaw к Windows GoNavi, хранения паролей баз данных локально или публикации HTTP MCP.",
"ai_chat.inspection.tool_info.inspect_mcp_remote_access.param.exposeStrategy": "Необязательно. Планируемая стратегия удаленной публикации для подбора соответствующих предупреждений о рисках.",
"ai_chat.inspection.tool_info.inspect_mcp_remote_access.param.localAddr": "Необязательно. Локальный адрес прослушивания HTTP MCP в Windows. По умолчанию 127.0.0.1:8765. Прямая привязка к 0.0.0.0 не рекомендуется.",
"ai_chat.inspection.tool_info.inspect_mcp_remote_access.param.path": "Необязательно. path для Streamable HTTP MCP. По умолчанию /mcp.",
"ai_chat.inspection.tool_info.inspect_mcp_remote_access.param.publicUrl": "Необязательно. HTTPS или URL частной сети, доступный удаленному Agent. Если /mcp отсутствует, инструмент добавит настроенный path.",
"ai_chat.inspection.tool_info.inspect_mcp_remote_access.param.tokenConfigured": "Необязательно. Настроен ли уже случайный Bearer Token. При false возвращается warning аутентификации.",
"ai_chat.inspection.tool_info.inspect_mcp_remote_access.params": "publicUrl?, localAddr?, path?, exposeStrategy?, tokenConfigured?",
"ai_chat.inspection.tool_info.inspect_mcp_remote_access.tool_description": "Читает снимок удаленного доступа Agent к GoNavi MCP: команды запуска Streamable HTTP, URL /mcp, требования Bearer Token, шаги облачного доступа OpenClaw/Hermans, границу паролей на Windows-хосте и риски tunnel, reverse proxy, Tailscale и похожих стратегий.",
"ai_chat.inspection.tool_info.inspect_mcp_runtime_failures.desc": "Диагностировать сбои запуска MCP и вызовов инструментов",
"ai_chat.inspection.tool_info.inspect_mcp_runtime_failures.detail": "Читает последние сбои запуска MCP, обнаружения инструментов, вызовов инструментов и подпроцессов HTTP MCP из gonavi.log, затем сопоставляет сохраненные сервисы и обнаруженные инструменты, чтобы вернуть типы сбоев, вероятные причины, затронутые сервисы и дальнейшие действия.",
"ai_chat.inspection.tool_info.inspect_mcp_runtime_failures.param.includeLines": "Необязательно. Включать ли отредактированные raw-строки логов MCP. По умолчанию false; включайте только когда нужно цитировать исходные строки.",
"ai_chat.inspection.tool_info.inspect_mcp_runtime_failures.param.keyword": "Необязательно. Фильтровать связанные с MCP логи по keyword, например timeout, stdio, permission, 401 или docker.",
"ai_chat.inspection.tool_info.inspect_mcp_runtime_failures.param.lineLimit": "Необязательно. Максимальное число последних строк лога для чтения. По умолчанию 160, максимум 200.",
"ai_chat.inspection.tool_info.inspect_mcp_runtime_failures.param.serverName": "Необязательно. Проверить только одно имя MCP-сервиса или имя server= из логов, например GitHub, Browser или DockerFetch.",
"ai_chat.inspection.tool_info.inspect_mcp_runtime_failures.params": "serverName?, keyword?, lineLimit?(по умолчанию 160), includeLines?(по умолчанию false)",
"ai_chat.inspection.tool_info.inspect_mcp_runtime_failures.tool_description": "Читает сигналы runtime-сбоев MCP из журналов GoNavi, классифицирует запуск сервисов, обнаружение инструментов, вызовы инструментов и завершения подпроцессов HTTP MCP, затем объединяет текущую конфигурацию и число инструментов, чтобы вернуть вероятные причины и nextActions.",
"ai_chat.inspection.tool_info.inspect_mcp_setup.desc": "Проверить текущую конфигурацию MCP и внешний доступ",
"ai_chat.inspection.tool_info.inspect_mcp_setup.detail": "Возвращает локальные MCP-сервисы, состояние включения, команды запуска, состояние записи Claude Code / Codex, границы удаленных Agent OpenClaw / Hermans и результаты обнаружения команд. Используйте для проверки настроенных MCP-сервисов, сбоев внешних клиентов или записи в конфигурацию клиента.",
"ai_chat.inspection.tool_info.inspect_mcp_setup.params": "Без параметров",
"ai_chat.inspection.tool_info.inspect_mcp_setup.tool_description": "Читает снимок локальной конфигурации MCP: список сервисов, состояние включения, команды запуска, ключи переменных окружения, обнаруженные инструменты, состояние записи клиента GoNavi MCP, локальное обнаружение CLI и границы доступа удаленного Agent.",
"ai_chat.inspection.tool_info.inspect_mcp_tool_schema.desc": "Проверить schema аргументов MCP-инструмента",
"ai_chat.inspection.tool_info.inspect_mcp_tool_schema.detail": "Читает inputSchema обнаруженных MCP-инструментов по alias, serverId или keyword и возвращает обязательные параметры, типы полей, значения enum, вложенные path объектов и подсказки перед вызовом. Используйте после успешного обнаружения MCP, чтобы проверить принимаемые аргументы.",
"ai_chat.inspection.tool_info.inspect_mcp_tool_schema.param.alias": "Необязательно. Запрос по точному MCP tool alias, например github_create_issue. Лучше сначала прочитать реальный alias через inspect_mcp_setup.",
"ai_chat.inspection.tool_info.inspect_mcp_tool_schema.param.includeSchema": "Необязательно. Включать ли полный raw inputSchema. По умолчанию false; включайте только для проверки сложной вложенной schema.",
"ai_chat.inspection.tool_info.inspect_mcp_tool_schema.param.keyword": "Необязательно. Фильтровать по alias инструмента, исходному имени, title, description или имени сервиса.",
"ai_chat.inspection.tool_info.inspect_mcp_tool_schema.param.limit": "Необязательно. Максимальное число подходящих инструментов для возврата. По умолчанию 8, максимум 30.",
"ai_chat.inspection.tool_info.inspect_mcp_tool_schema.param.serverId": "Необязательно. Проверять только инструменты, обнаруженные в одном MCP serverId.",
"ai_chat.inspection.tool_info.inspect_mcp_tool_schema.params": "alias?, serverId?, keyword?, includeSchema?(по умолчанию false), limit?(по умолчанию 8)",
"ai_chat.inspection.tool_info.inspect_mcp_tool_schema.tool_description": "Читает сводки parameter schema обнаруженных MCP-инструментов, фильтруемых по alias, serverId или keyword, и возвращает обязательные поля, типы, значения enum, вложенные path параметров и подсказки перед вызовом. Используйте перед написанием arguments JSON для внешних вызовов MCP-инструментов или после ошибок параметров.",
"ai_chat.inspection.tool_info.inspect_recent_connection_failures.desc": "Сводка последних сбоев подключения к базе данных и cooldown",
"ai_chat.inspection.tool_info.inspect_recent_connection_failures.detail": "Извлекает из последних строк gonavi.log сбои подключения к базе данных, ошибки проверки, ошибки SSH tunnel и срабатывания cooldown, затем классифицирует основной тип проблемы, последний адрес, последнюю причину и следующие действия.",
"ai_chat.inspection.tool_info.inspect_recent_connection_failures.param.keyword": "Необязательно. Фильтровать по типу подключения, адресу или keyword сбоя, например mysql, ssh, timeout или 127.0.0.1.",
"ai_chat.inspection.tool_info.inspect_recent_connection_failures.param.lineLimit": "Необязательно. Максимальное число строк журнала для анализа. По умолчанию 120, максимум 240.",
"ai_chat.inspection.tool_info.inspect_recent_connection_failures.params": "keyword?, lineLimit?(по умолчанию 120)",
"ai_chat.inspection.tool_info.inspect_recent_connection_failures.tool_description": "Суммирует последние сбои подключения к базе данных, ошибки проверки, сбои SSH tunnel и срабатывания cooldown из журналов приложения GoNavi.",
"ai_chat.inspection.tool_info.inspect_recent_sql_activity.desc": "Суммировать распределение недавней активности SQL",
"ai_chat.inspection.tool_info.inspect_recent_sql_activity.detail": "Можно фильтровать по status, activityKind, dbName и keyword, затем возвращается структурированная сводка недавней активности SQL: доля чтения/записи/DDL, распределение типов операторов, распределение по базам данных, недавние ошибки, недавние записи и самые медленные операторы. Используйте, когда пользователь спрашивает, что выполнялось недавно, могли ли быть удалены данные, в какой базе больше всего сбоев или была ли активность в основном чтением или записью.",
"ai_chat.inspection.tool_info.inspect_recent_sql_activity.param.activityKind": "Необязательно. Фильтр по типу активности: all, read, write, ddl, transaction, session или other. По умолчанию all.",
"ai_chat.inspection.tool_info.inspect_recent_sql_activity.param.dbName": "Необязательно. Включать только журналы, где имя базы данных содержит это ключевое слово.",
"ai_chat.inspection.tool_info.inspect_recent_sql_activity.param.keyword": "Необязательно. Фильтровать по тексту SQL, сообщению ошибки, типу оператора или имени базы данных.",
"ai_chat.inspection.tool_info.inspect_recent_sql_activity.param.limit": "Необязательно. Максимальное число возвращаемых недавних образцов активности. По умолчанию 30, максимум 100.",
"ai_chat.inspection.tool_info.inspect_recent_sql_activity.param.status": "Необязательно. Фильтр по статусу выполнения: all, success или error. По умолчанию all.",
"ai_chat.inspection.tool_info.inspect_recent_sql_activity.tool_description": "Суммирует структурированный профиль недавней активности SQL с необязательной фильтрацией по статусу выполнения, типу активности, имени базы данных и ключевому слову. Используйте для проверки недавних операций чтения/записи, концентрации ошибок в базе данных, активности DELETE или DDL и предварительной оценки AI по реальной картине выполнения.",
"ai_chat.inspection.tool_info.inspect_recent_sql_logs.desc": "Просмотреть недавние журналы выполнения SQL",
"ai_chat.inspection.tool_info.inspect_recent_sql_logs.detail": "Принимает необязательные фильтры limit и status, затем возвращает недавние записи выполнения SQL: базу данных, длительность, успех или сбой, ошибку, затронутые строки и текст SQL. Используйте для поиска сбойных операторов, медленных запросов и объяснения или оптимизации AI на основе реальной истории выполнения.",
"ai_chat.inspection.tool_info.inspect_recent_sql_logs.param.limit": "Необязательно. Количество возвращаемых записей журнала. По умолчанию 20, максимум 100.",
"ai_chat.inspection.tool_info.inspect_recent_sql_logs.param.status": "Необязательно. Фильтр по статусу выполнения: all, success или error. По умолчанию all.",
"ai_chat.inspection.tool_info.inspect_recent_sql_logs.tool_description": "Получает сводку недавних журналов выполнения SQL с необязательной фильтрацией по успеху или сбою. Используйте для просмотра недавно выполненного SQL, диагностики сбоев, поиска медленных запросов и объяснения или оптимизации AI на основе реальной истории выполнения.",
"ai_chat.inspection.tool_info.inspect_redis_topology.desc": "Diagnose Redis standalone, Sentinel, and Cluster configuration",
"ai_chat.inspection.tool_info.inspect_redis_topology.detail": "Reads local Redis connection topology summaries and returns standalone, Sentinel, and Cluster nodes, master, authentication state, DB range, redacted URI examples, status level, and next actions. Use it when users ask how to configure Redis Sentinel or Cluster, why DB switching fails, or how Cluster multi-DB behavior works.",
"ai_chat.inspection.tool_info.inspect_redis_topology.param.connectionId": "Optional. Diagnose only one Redis connection ID.",
"ai_chat.inspection.tool_info.inspect_redis_topology.param.includeRecommendations": "Optional. Whether to return repair recommendations. Default true.",
"ai_chat.inspection.tool_info.inspect_redis_topology.param.keyword": "Optional. Filter by connection name, address, topology, Sentinel master, or node address.",
"ai_chat.inspection.tool_info.inspect_redis_topology.param.limit": "Optional. Maximum number of Redis connections to return. Default 20, maximum 100.",
"ai_chat.inspection.tool_info.inspect_redis_topology.params": "connectionId?, keyword?, limit?, includeRecommendations?(default true)",
"ai_chat.inspection.tool_info.inspect_redis_topology.tool_description": "Read local Redis standalone, Sentinel, and Cluster topology summaries, returning nodes, Sentinel master, authentication state, DB selection, TLS/SSH/proxy state, backend adapter, redacted URI examples, status level, blockers, potential configuration risks, and recommendations. Results do not echo Redis or Sentinel passwords.",
"ai_chat.inspection.tool_info.inspect_saved_connections.desc": "Inspect locally saved connections",
"ai_chat.inspection.tool_info.inspect_saved_connections.detail": "Filters local saved data sources by keyword or database type and returns the data-source list, type distribution, address, current database, and SSH/proxy/HTTP tunnel state. Use it when users ask which connections are saved locally, want to find mysql or postgres connections, or need to know which connection has SSH configured.",
"ai_chat.inspection.tool_info.inspect_saved_connections.param.keyword": "Optional. Filter by connection name, ID, type, host, database name, SSH address, or proxy address.",
"ai_chat.inspection.tool_info.inspect_saved_connections.param.limit": "Optional. Maximum number of connections to return. Default 20, maximum 100.",
"ai_chat.inspection.tool_info.inspect_saved_connections.param.type": "Optional. Only inspect one database type, such as mysql, postgres, redis, or mongodb.",
"ai_chat.inspection.tool_info.inspect_saved_connections.params": "keyword?, type?, limit?",
"ai_chat.inspection.tool_info.inspect_saved_connections.tool_description": "Read locally saved connections, optionally filtered by keyword and database type, and return each connection's type, address, current database, SSH/proxy/HTTP tunnel summary, and related metadata.",
"ai_chat.inspection.tool_info.inspect_saved_queries.desc": "Проверить локально сохраненные SQL-запросы",
"ai_chat.inspection.tool_info.inspect_saved_queries.detail": "Фильтрует локально сохраненные запросы по keyword, подключению или базе данных и возвращает имя запроса, подключение, базу данных и предпросмотр SQL.",
"ai_chat.inspection.tool_info.inspect_saved_queries.param.connectionId": "Необязательно. Проверять только сохраненные запросы одного подключения.",
"ai_chat.inspection.tool_info.inspect_saved_queries.param.dbName": "Необязательно. Проверять только сохраненные запросы одной базы данных.",
"ai_chat.inspection.tool_info.inspect_saved_queries.param.includeSql": "Необязательно. Включать ли предпросмотр SQL. По умолчанию true.",
"ai_chat.inspection.tool_info.inspect_saved_queries.param.keyword": "Необязательно. Фильтровать по имени запроса, SQL-тексту, имени подключения или имени базы данных.",
"ai_chat.inspection.tool_info.inspect_saved_queries.param.limit": "Необязательно. Максимальное число запросов для возврата. По умолчанию 12, максимум 50.",
"ai_chat.inspection.tool_info.inspect_saved_queries.params": "keyword?, connectionId?, dbName?, limit?, includeSql?(по умолчанию true)",
"ai_chat.inspection.tool_info.inspect_saved_queries.tool_description": "Читает локально сохраненные SQL-запросы, optional фильтрует по keyword, подключению и базе данных, возвращает имя, подключение, базу данных и предпросмотр SQL.",
"ai_chat.inspection.tool_info.inspect_shortcuts.desc": "Проверить текущие shortcuts и различия платформ",
"ai_chat.inspection.tool_info.inspect_shortcuts.detail": "Возвращает shortcut actions, текущее platform binding, комбинации Windows/macOS, сведения о пользовательских изменениях и сравнение с defaults.",
"ai_chat.inspection.tool_info.inspect_shortcuts.param.action": "Необязательно. Фильтровать по точному action key, например toggleQueryResultsPanel, sendAIChatMessage или toggleAIPanel.",
"ai_chat.inspection.tool_info.inspect_shortcuts.param.includeAllPlatforms": "Необязательно. Включать ли bindings обеих платформ Windows и macOS. По умолчанию true.",
"ai_chat.inspection.tool_info.inspect_shortcuts.param.includeDisabled": "Необязательно. Включать ли сейчас отключенные shortcuts. По умолчанию true.",
"ai_chat.inspection.tool_info.inspect_shortcuts.param.keyword": "Необязательно. Фильтровать по имени action, описанию, scope, сочетанию клавиш или default value.",
"ai_chat.inspection.tool_info.inspect_shortcuts.params": "action?, keyword?, includeDisabled?(по умолчанию true), includeAllPlatforms?(по умолчанию true)",
"ai_chat.inspection.tool_info.inspect_shortcuts.tool_description": "Читает текущий snapshot конфигурации shortcuts GoNavi, optional фильтрует по имени action или keyword, возвращает current platform binding, Windows/macOS bindings, defaults и статус настройки.",
"ai_chat.inspection.tool_info.inspect_sql_editor_transaction.desc": "Просмотреть состояние commit транзакций SQL-редактора",
"ai_chat.inspection.tool_info.inspect_sql_editor_transaction.detail": "Возвращает семантику управляемых DML-транзакций SQL-редактора, текущую настройку ручного или автоматического commit, войдет ли активная SQL-вкладка в управляемую транзакцию, ожидающие транзакции и недавние записи выполнения операций записи или транзакций. Используйте при вопросах о смысле ручного или автоматического commit, наличии uncommitted transactions или о том, будет ли update/insert/delete автоматически выполнен с commit.",
"ai_chat.inspection.tool_info.inspect_sql_editor_transaction.param.includeSqlPreview": "Необязательно. Возвращать ли предварительный просмотр SQL из активной SQL-вкладки. По умолчанию true.",
"ai_chat.inspection.tool_info.inspect_sql_editor_transaction.tool_description": "Читает снимок состояния транзакций SQL-редактора, включая реальную семантику, что DML всегда входит в управляемую транзакцию, текущий режим commit, задержку auto-commit, вызывает ли активная SQL-вкладка управляемую транзакцию, ожидающие транзакции и недавние журналы записи или транзакций. Используйте при вопросах о ручном commit, auto commit, uncommitted transactions или о том, выполняется ли commit после DML.",
"ai_chat.inspection.tool_info.inspect_sql_risk.desc": "Проверить риск выполнения текущего или указанного SQL",
"ai_chat.inspection.tool_info.inspect_sql_risk.detail": "Читает переданный SQL или содержимое текущей активной вкладки запроса, выявляет несколько операторов, записи, DDL, DELETE/UPDATE без WHERE, DROP/TRUNCATE и другие риски, затем объединяет результат с текущей политикой безопасности AI, чтобы определить, разрешено ли выполнение. Используйте перед тем, как AI выполнит SQL, объяснит риск или подтвердит, можно ли выполнить SQL-оператор.",
"ai_chat.inspection.tool_info.inspect_sql_risk.param.previewCharLimit": "Необязательно. Максимальное число символов в предварительном просмотре SQL. По умолчанию 12000, максимум 40000.",
"ai_chat.inspection.tool_info.inspect_sql_risk.param.sql": "Необязательно. SQL для проверки. Если не передан, по умолчанию читается SQL-черновик текущей активной вкладки запроса.",
"ai_chat.inspection.tool_info.inspect_sql_risk.tool_description": "Проверяет риск выполнения переданного SQL или SQL текущей активной вкладки запроса и возвращает число операторов, тип активности, уровень риска, точки риска, необходимость подтверждения пользователем и результат текущей политики безопасности AI. Используйте перед ответом или продолжением, когда пользователь просит выполнить, удалить, обновить, выполнить DDL, выполнить пакетный SQL или спрашивает, можно ли выполнить SQL-оператор.",
"ai_chat.inspection.tool_info.inspect_sql_snippets.desc": "Проверить шаблоны SQL snippets",
"ai_chat.inspection.tool_info.inspect_sql_snippets.detail": "Возвращает prefix, имя, описание и предпросмотр шаблона локального SQL snippet, optional фильтрует по keyword.",
"ai_chat.inspection.tool_info.inspect_sql_snippets.param.includeBody": "Необязательно. Включать ли предпросмотр тела шаблона. По умолчанию true.",
"ai_chat.inspection.tool_info.inspect_sql_snippets.param.keyword": "Необязательно. Фильтровать по prefix, имени, описанию или содержимому шаблона.",
"ai_chat.inspection.tool_info.inspect_sql_snippets.param.limit": "Необязательно. Максимальное число snippets для возврата. По умолчанию 20, максимум 80.",
"ai_chat.inspection.tool_info.inspect_sql_snippets.params": "keyword?, limit?, includeBody?(по умолчанию true)",
"ai_chat.inspection.tool_info.inspect_sql_snippets.tool_description": "Читает локальные шаблоны SQL snippets, optional фильтрует по keyword и возвращает prefix, имя, описание и предпросмотр шаблона.",
"ai_chat.inspection.tool_info.inspect_workspace_tabs.desc": "Inspect currently open workspace tabs",
"ai_chat.inspection.tool_info.inspect_workspace_tabs.detail": "Returns the list of tabs open in the current workspace, which one is active, and each tab's connection, database, table name, and related context. Use it when users ask which SQL tabs are open, what exists in the workspace, or want to compare several query tabs.",
"ai_chat.inspection.tool_info.inspect_workspace_tabs.param.includeContent": "Optional. Whether to include SQL or command draft content from tabs. Default false.",
"ai_chat.inspection.tool_info.inspect_workspace_tabs.param.limit": "Optional. Maximum number of tabs to return. Default 12, maximum 30.",
"ai_chat.inspection.tool_info.inspect_workspace_tabs.params": "limit?(default 12), includeContent?(default false)",
"ai_chat.inspection.tool_info.inspect_workspace_tabs.tool_description": "Get an overview of currently open workspace tabs, including active tab, tab type, connection, database, table name, and optional SQL or command draft content.",
"ai_chat.inspection.upstream_logs.message.empty": "В последних логах не найдены записи AI upstream request. Сначала отправьте одно AI-сообщение или повторите с большим lineLimit.",
"ai_chat.inspection.upstream_logs.next_action.confirm_logging": "Убедитесь, что текущая сборка содержит логирование AI upstream request.",
"ai_chat.inspection.upstream_logs.next_action.filter_request_body": "Чтобы проверить полные входные данные, сначала точно отфильтруйте по requestId, затем проверьте, не был ли bodyPreview обрезан.",
"ai_chat.inspection.upstream_logs.next_action.inspect_timeout": "Если есть только start без completion/failure, продолжите через inspect_app_logs или увеличьте lineLimit, чтобы проверить возможный timeout.",
"ai_chat.inspection.upstream_logs.next_action.read_warn_error": "Если записей по-прежнему нет, вызовите inspect_app_logs, чтобы прочитать последние исходные WARN/ERROR логи.",
"ai_chat.inspection.upstream_logs.next_action.send_message": "Отправьте одно AI-сообщение в чат, затем вызовите этот инструмент снова.",
"ai_chat.inspection.upstream_logs.warning.invalid_json": "request body не является полным JSON. Возможно, он был обрезан в логах, поэтому структурированную сводку сформировать нельзя.",
"ai_chat.inspection.upstream_logs.warning.large_input": "Объем входного текста велик. При необходимости сузьте контекст или уменьшите объем логов/DDL.",
"ai_chat.inspection.upstream_logs.warning.missing_messages": "Поля messages, contents, system или prompt не найдены. Проверьте, соответствует ли upstream-протокол ожиданиям.",
"ai_chat.inspection.upstream_logs.warning.missing_tools": "payload не содержит tools/functions, поэтому модель не сможет инициировать вызов инструмента.",
"ai_chat.inspection.upstream_logs.warning.not_json_object": "request body не является JSON object, поэтому поля модели, сообщений и инструментов нельзя определить.",
"ai_chat.inspection.workspace.no_active_tab": "Активная вкладка сейчас не выбрана",
"ai_chat.mcp_client.install.action.connected": "{{label}} подключен; повторная установка не нужна",
"ai_chat.mcp_client.install.action.copy_remote": "Скопировать руководство удаленного подключения для {{label}}",
"ai_chat.mcp_client.install.action.install": "Установить в {{label}} (внешний инструмент)",
"ai_chat.mcp_client.install.action.update": "Обновить конфигурацию подключения {{label}}",
"ai_chat.mcp_client.install.detection.detected": "Обнаружена локальная команда {{command}}. После подключения или обновления перезапустите {{label}} для проверки.",
"ai_chat.mcp_client.install.detection.not_detected": "Локальная команда {{command}} не обнаружена. Если CLI еще не добавлен в PATH, можно сначала записать конфигурацию {{label}} и проверить после перезапуска.",
"ai_chat.mcp_client.install.detection.remote": "{{label}} обычно не работает на этой машине Windows. Локальная проверка команды {{command}} не нужна; настройте в облаке URL удаленного MCP-моста.",
"ai_chat.mcp_client.install.intro.description": "Claude Code и Codex записывают локальную пользовательскую конфигурацию MCP. Облачные Agents, такие как OpenClaw и Hermans, используют руководство удаленного подключения, чтобы пароли базы данных не копировались в облако.",
"ai_chat.mcp_client.install.intro.title": "Здесь GoNavi MCP подключается к Claude Code / Codex / OpenClaw / Hermans для вызовов внешними инструментами. Это не установка плагина в сам GoNavi.",
"ai_chat.mcp_client.install.message.already_connected": "{{label}} уже подключен к текущему GoNavi MCP. Повторная запись не нужна.",
"ai_chat.mcp_client.install.message.claude_not_supported": "Эта версия пока не поддерживает автоматическую установку Claude Code MCP",
"ai_chat.mcp_client.install.message.codex_not_supported": "Эта версия пока не поддерживает автоматическую установку Codex MCP",
"ai_chat.mcp_client.install.message.config_path_copied": "Путь файла конфигурации скопирован",
"ai_chat.mcp_client.install.message.config_path_copy_failed": "Не удалось скопировать путь файла конфигурации",
"ai_chat.mcp_client.install.message.config_path_missing": "Нет доступного для копирования пути файла конфигурации",
"ai_chat.mcp_client.install.message.install_failed": "Не удалось установить {{label}} MCP",
"ai_chat.mcp_client.install.message.install_success": "Пользовательская MCP-конфигурация для {{label}} записана",
"ai_chat.mcp_client.install.message.launch_command_copied": "Команда запуска скопирована",
"ai_chat.mcp_client.install.message.launch_command_copy_failed": "Не удалось скопировать команду запуска",
"ai_chat.mcp_client.install.message.launch_command_missing": "Нет доступной для копирования команды запуска",
"ai_chat.mcp_client.install.message.refresh_failed": "Не удалось обновить статус установки клиента",
"ai_chat.mcp_client.install.message.remote_guide_copied": "Руководство удаленного подключения для {{label}} скопировано",
"ai_chat.mcp_client.install.message.remote_guide_copy_failed": "Не удалось скопировать руководство удаленного подключения для {{label}}",
"ai_chat.mcp_client.install.option.connected": "Этот GoNavi MCP уже подключен к этому клиенту.",
"ai_chat.mcp_client.install.option.error": "Состояние подключения выглядит некорректно. Обновите его перед изменениями.",
"ai_chat.mcp_client.install.option.missing": "Текущий GoNavi MCP еще не подключен здесь.",
"ai_chat.mcp_client.install.option.remote": "Для облачных Agents: schema-only по умолчанию читает структуру GoNavi, не копируя пароли базы данных и не открывая execute_sql.",
"ai_chat.mcp_client.install.option.stale": "Обнаружена старая запись GoNavi. Обновите ее до текущего пути установки.",
"ai_chat.mcp_client.install.repeat_avoidance": "Если этот GoNavi уже подключен, основная кнопка отключается, чтобы избежать повторной записи.",
"ai_chat.mcp_client.install.selected.connected": "Подключено к текущему GoNavi; повторное действие не требуется",
"ai_chat.mcp_client.install.selected.error": "Чтение статуса некорректно; сначала обновите проверку",
"ai_chat.mcp_client.install.selected.missing": "GoNavi MCP еще не подключен",
"ai_chat.mcp_client.install.selected.remote": "Настройте удаленный MCP-мост; пароли базы данных останутся на машине GoNavi",
"ai_chat.mcp_client.install.selected.stale": "Есть старая запись подключения; обновите ее до текущего пути GoNavi",
"ai_chat.mcp_client.install.selector.aria_label": "Выберите внешний клиент для GoNavi MCP",
"ai_chat.mcp_client.install.selector.choice_title": "Выберите внешний клиент",
"ai_chat.mcp_client.install.selector.description": "Сначала выберите один целевой клиент. Локальные CLI могут автоматически записать или обновить конфигурацию; удаленные Agents должны обращаться к текущему GoNavi через MCP-мост или туннель и не должны хранить пароли базы данных.",
"ai_chat.mcp_client.install.selector.hint.active_local": "Выбрано. Будет записан или обновлен только этот клиент.",
"ai_chat.mcp_client.install.selector.hint.active_remote": "Выбрано. Будет скопировано руководство удаленного подключения.",
"ai_chat.mcp_client.install.selector.hint.inactive_local": "Нажмите, чтобы переключиться на этот клиент.",
"ai_chat.mcp_client.install.selector.hint.inactive_remote": "Нажмите, чтобы посмотреть способ удаленного подключения.",
"ai_chat.mcp_client.install.selector.step.restart.detail": "Локальный CLI проверяется после перезапуска. Облачные Agents проверяются после настройки удаленного MCP URL.",
"ai_chat.mcp_client.install.selector.step.restart.title": "Перезапустить или настроить цель",
"ai_chat.mcp_client.install.selector.step.target.detail": "Локальные Claude/Codex можно установить автоматически. OpenClaw/Hermans используют руководство удаленного подключения.",
"ai_chat.mcp_client.install.selector.step.target.title": "Выберите целевой клиент",
"ai_chat.mcp_client.install.selector.step.write.detail": "Автоматическая установка меняет только пользовательскую MCP-конфигурацию. Для удаленных Agents копируется руководство по мосту.",
"ai_chat.mcp_client.install.selector.step.write.title": "Записать или скопировать конфигурацию",
"ai_chat.mcp_client.install.selector.title": "Подключить внешний клиент",
"ai_chat.mcp_client.install.state.connected": "Состояние подключения внешнего инструмента: подключено к этому GoNavi",
"ai_chat.mcp_client.install.state.error": "Состояние подключения внешнего инструмента: не удалось прочитать",
"ai_chat.mcp_client.install.state.missing": "Состояние подключения внешнего инструмента: не подключено",
"ai_chat.mcp_client.install.state.remote": "Состояние подключения внешнего инструмента: нужен удаленный MCP-мост",
"ai_chat.mcp_client.install.state.stale": "Состояние подключения внешнего инструмента: найдена старая конфигурация, нужно обновление",
"ai_chat.mcp_client.install.status_tone.connected": "Подключено",
"ai_chat.mcp_client.install.status_tone.not_connected": "Не подключено",
"ai_chat.mcp_client.install.status_tone.remote_bridge": "Удаленный мост",
"ai_chat.mcp_client.install.status_tone.status_error": "Ошибка статуса",
"ai_chat.mcp_client.install.status_tone.update_required": "Нужно обновить",
"ai_chat.mcp_client.install.status.cli_prefix": "Проверка CLI: {{status}}",
"ai_chat.mcp_client.install.status.cli.detected": "Обнаружено {{command}}",
"ai_chat.mcp_client.install.status.cli.not_detected": "{{command}} не обнаружено; конфигурацию все равно можно записать сначала",
"ai_chat.mcp_client.install.status.cli.remote": "Удаленному Agent не нужна локальная проверка команды {{command}}",
"ai_chat.mcp_client.install.status.command_path": "Путь команды: {{path}}",
"ai_chat.mcp_client.install.status.config_file": "Файл конфигурации: {{path}}",
"ai_chat.mcp_client.install.status.copy_command": "Скопировать команду запуска",
"ai_chat.mcp_client.install.status.copy_config": "Скопировать путь конфигурации",
"ai_chat.mcp_client.install.status.current_state": "Текущий статус: {{status}}",
"ai_chat.mcp_client.install.status.current_target": "Текущий целевой клиент: {{label}}",
"ai_chat.mcp_client.install.status.detection_missing": "Статус подключения не обнаружен",
"ai_chat.mcp_client.install.status.detection_result": "Результат проверки: {{message}}",
"ai_chat.mcp_client.install.status.launch_command": "Команда запуска: {{command}}",
"ai_chat.mcp_client.install.status.no_client": "Клиент не выбран",
"ai_chat.mcp_client.install.status.refresh": "Обновить статус",
"ai_chat.mcp_client.install.status.remote_boundary": "Граница удаленного подключения: данные подключения и пароли базы данных остаются в Windows GoNavi. Облачные Agents по умолчанию читают сводки подключений, таблицы и DDL через MCP-инструменты schema-only, а execute_sql не регистрируется. Для доступа между машинами используйте режим GoNavi Streamable HTTP с token, туннелем или обратным прокси.",
"ai_chat.mcp_client.install.status.title": "Статус выбранного клиента",
"ai_chat.mcp_client.install.summary.connected": "{{label}} подключен к этому GoNavi MCP и может вызывать его напрямую.",
"ai_chat.mcp_client.install.summary.error": "Не удалось прочитать состояние подключения для {{label}}. Сначала обновите проверку.",
"ai_chat.mcp_client.install.summary.missing": "Этот GoNavi MCP еще не подключен к {{label}}.",
"ai_chat.mcp_client.install.summary.remote": "{{label}} обычно работает в облаке или на другой машине, поэтому для вызова этого GoNavi нужен удаленный MCP-мост.",
"ai_chat.mcp_client.install.summary.stale": "В {{label}} уже есть старая запись GoNavi. После обновления она будет указывать на этот GoNavi.",
"ai_chat.message.action.copied": "Скопировано",
"ai_chat.message.action.copied_error_raw": "Исходный текст ошибки скопирован",
"ai_chat.message.action.copy_error_raw": "Копировать исходный текст ошибки",
"ai_chat.message.action.copy_full": "Копировать весь текст",
"ai_chat.message.action.delete": "Удалить сообщение",
"ai_chat.message.action.edit": "Редактировать это сообщение, удалить последующие записи и отправить заново",
"ai_chat.message.action.retry": "Сгенерировать заново из предыдущего сообщения пользователя",
"ai_chat.message.code.collapse": "Свернуть код",
"ai_chat.message.code.copied": "Скопировано",
"ai_chat.message.code.copy": "Копировать код",
"ai_chat.message.code.execute": "Выполнить",
"ai_chat.message.code.execute_failed": "Выполнение не удалось",
"ai_chat.message.code.execute_tooltip": "Выполнить сейчас с учетом политики безопасности AI",
"ai_chat.message.code.executing": "Выполняется...",
"ai_chat.message.code.expand_all": "Развернуть весь код",
"ai_chat.message.code.insert": "Вставить",
"ai_chat.message.code.insert_tooltip": "Вставить этот SQL в рабочую область запросов для быстрого изменения или выполнения",
"ai_chat.message.code.preview": "Предпросмотр",
"ai_chat.message.code.preview_collapse": "Свернуть",
"ai_chat.message.code.preview_result": "Результат предпросмотра (строк: {{rows}}, столбцов: {{columns}})",
"ai_chat.message.code.preview_tooltip": "Просмотреть результаты запроса в чате, максимум 20 строк",
"ai_chat.message.code.query_no_result": "Запрос не вернул результатов",
"ai_chat.message.code.view_result": "Показать результат (строк: {{rows}})",
"ai_chat.message.image_alt": "Вложенное изображение {{index}}",
"ai_chat.message.jvm.apply_diagnostic": "Применить к диагностической консоли",
"ai_chat.message.jvm.apply_preview": "Применить к предпросмотру JVM",
"ai_chat.message.jvm.diagnostic_target_not_found": "Не найдена вкладка диагностической консоли, соответствующая этому плану. Откройте исходную целевую консоль перед применением.",
"ai_chat.message.jvm.missing_diagnostic_context": "В этом диагностическом плане отсутствует контекст исходной вкладки. Сгенерируйте его заново в целевой диагностической консоли.",
"ai_chat.message.jvm.missing_plan_context": "В этом плане JVM отсутствует контекст исходной вкладки. Сгенерируйте его заново на целевой странице ресурса JVM.",
"ai_chat.message.jvm.plan_target_not_found": "Не найдена вкладка ресурса, соответствующая этому плану JVM. Откройте исходный целевой ресурс перед применением.",
"ai_chat.message.mermaid.parse_failed": "Не удалось разобрать Mermaid: {{detail}}",
"ai_chat.message.mermaid.render_failed": "Ошибка отрисовки Mermaid: {{detail}}",
"ai_chat.message.render_error.body": "Остальная переписка доступна. Вы можете удалить это проблемное сообщение перед продолжением.",
"ai_chat.message.render_error.delete": "Удалить это сообщение",
"ai_chat.message.render_error.retry": "Повторить рендеринг",
"ai_chat.message.render_error.title": "Это сообщение AI не удалось отобразить, поэтому оно изолировано",
"ai_chat.message.render_error.unknown": "Неизвестная ошибка рендеринга",
"ai_chat.message.role.user": "Вы",
"ai_chat.message.security.blocked": "🔒 Политика безопасности заблокировала этот SQL: текущий уровень безопасности не разрешает операции {{operationType}}. Измените уровень безопасности в настройках AI.",
"ai_chat.message.security.confirm_execute": "Выполнить",
"ai_chat.message.security.confirm_title": "⚠️ Подтверждение безопасности",
"ai_chat.message.security.default_warning": "Этот SQL является операцией {{operationType}}. Выполнить?",
"ai_chat.message.thinking.active": "Идет рассуждение...",
"ai_chat.message.thinking.count": "({{count}} симв.)",
"ai_chat.message.thinking.title": "Ход рассуждений",
"ai_chat.message.tool_call.done": "Проверки данных завершены ({{count}})",
"ai_chat.message.tool_call.execute_sql": "Выполнить проверку SQL только для чтения",
"ai_chat.message.tool_call.get_all_columns": "Суммировать столбцы по таблицам",
"ai_chat.message.tool_call.get_columns": "Проверить реальные определения столбцов",
"ai_chat.message.tool_call.get_connections": "Загрузить доступные подключения",
"ai_chat.message.tool_call.get_databases": "Сканировать список баз данных",
"ai_chat.message.tool_call.get_foreign_keys": "Сопоставить связи внешних ключей",
"ai_chat.message.tool_call.get_indexes": "Проверить определения индексов",
"ai_chat.message.tool_call.get_table_ddl": "Извлечь выражение CREATE TABLE",
"ai_chat.message.tool_call.get_tables": "Анализировать сведения о структуре таблиц",
"ai_chat.message.tool_call.get_triggers": "Проверить логику триггеров",
"ai_chat.message.tool_call.inspect_active_tab": "Прочитать текущую активную вкладку",
"ai_chat.message.tool_call.inspect_ai_chat_readiness": "Прочитать состояние готовности AI-чата к отправке",
"ai_chat.message.tool_call.inspect_ai_context_budget": "Диагностировать риск объема контекста AI",
"ai_chat.message.tool_call.inspect_ai_guidance": "Прочитать текущие настройки подсказок и навыков AI",
"ai_chat.message.tool_call.inspect_ai_last_render_error": "Прочитать последнюю ошибку отрисовки AI",
"ai_chat.message.tool_call.inspect_ai_message_flow": "Диагностировать текущий поток сообщений AI",
"ai_chat.message.tool_call.inspect_ai_providers": "Прочитать текущую конфигурацию провайдеров и моделей AI",
"ai_chat.message.tool_call.inspect_ai_runtime": "Прочитать текущий статус выполнения AI",
"ai_chat.message.tool_call.inspect_ai_safety": "Прочитать текущие границы безопасности AI",
"ai_chat.message.tool_call.inspect_ai_sessions": "Проверить локальные сеансы истории AI",
"ai_chat.message.tool_call.inspect_ai_support_bundle": "Создать пакет поддержки для диагностики AI",
"ai_chat.message.tool_call.inspect_ai_tool_catalog": "Прочитать каталог инструментов AI и подсказки параметров",
"ai_chat.message.tool_call.inspect_app_logs": "Просмотреть журналы приложения GoNavi",
"ai_chat.message.tool_call.inspect_codebase_hotspots": "Прочитать крупные файлы-точки риска в кодовой базе",
"ai_chat.message.tool_call.inspect_connection_capabilities": "Прочитать матрицу возможностей текущего подключения",
"ai_chat.message.tool_call.inspect_current_connection": "Прочитать сводку текущего подключения",
"ai_chat.message.tool_call.inspect_database_bundle": "Получить обзор структуры базы данных",
"ai_chat.message.tool_call.inspect_external_sql_directories": "Проверить внешние SQL-каталоги",
"ai_chat.message.tool_call.inspect_external_sql_file": "Прочитать внешний SQL-файл",
"ai_chat.message.tool_call.inspect_mcp_authoring_guide": "Прочитать руководство по добавлению MCP",
"ai_chat.message.tool_call.inspect_mcp_draft": "Проверить черновик MCP",
"ai_chat.message.tool_call.inspect_mcp_runtime_failures": "Диагностировать ошибки выполнения MCP",
"ai_chat.message.tool_call.inspect_mcp_setup": "Прочитать текущий статус конфигурации MCP",
"ai_chat.message.tool_call.inspect_mcp_tool_schema": "Прочитать schema параметров инструмента MCP",
"ai_chat.message.tool_call.inspect_recent_connection_failures": "Суммировать недавние сбои подключения",
"ai_chat.message.tool_call.inspect_recent_sql_activity": "Суммировать недавнюю активность SQL",
"ai_chat.message.tool_call.inspect_recent_sql_logs": "Просмотреть недавние журналы выполнения SQL",
"ai_chat.message.tool_call.inspect_redis_topology": "Диагностировать конфигурацию топологии Redis",
"ai_chat.message.tool_call.inspect_saved_connections": "Проверить локально сохраненные подключения",
"ai_chat.message.tool_call.inspect_saved_queries": "Найти локально сохраненные запросы",
"ai_chat.message.tool_call.inspect_shortcuts": "Прочитать текущие настройки сочетаний клавиш",
"ai_chat.message.tool_call.inspect_sql_editor_transaction": "Прочитать статус транзакции редактора SQL",
"ai_chat.message.tool_call.inspect_sql_snippets": "Прочитать шаблоны SQL-фрагментов",
"ai_chat.message.tool_call.inspect_table_bundle": "Получить полный снимок структуры таблицы",
"ai_chat.message.tool_call.inspect_workspace_tabs": "Проверить текущие вкладки рабочей области",
"ai_chat.message.tool_call.preview_table_rows": "Предпросмотр реальных примерных данных",
"ai_chat.message.tool_call.running": "Выполняются проверки данных...",
"ai_chat.message.tool_result.char_count": "{{count}} симв.",
"ai_chat.message.tool_result.no_data": "Нет данных",
"ai_chat.message.tool_result.title": "Результат проверки ({{name}})",
"ai_chat.message.wait.connecting": "Подключение",
"ai_chat.panel.error.html_response": "Сервер вернул необычный HTML-ответ; возможно, истекло время ожидания шлюза или служба недоступна",
"ai_chat.panel.error.http_server": "Ошибка сервера HTTP {{code}}",
"ai_chat.panel.error.truncated_suffix": "...(обрезано)",
"ai_chat.panel.error.unknown": "Неизвестная ошибка",
"ai_chat.panel.history.empty": "Истории чатов пока нет",
"ai_chat.panel.insight.context.empty_body": "При открытии AI со страницы таблицы текущая таблица связывается автоматически. Контекст также можно добавить вручную над полем ввода.",
"ai_chat.panel.insight.context.empty_title": "Структура таблиц пока не связана",
"ai_chat.panel.insight.context.linked_body": "В этот диалог включен контекст структуры для {{tables}}.",
"ai_chat.panel.insight.context.linked_title": "Связано таблиц: {{count}}",
"ai_chat.panel.insight.context.more_tables_suffix": " и другие таблицы",
"ai_chat.panel.insight.context.table_separator": ", ",
"ai_chat.panel.insight.query.empty_body": "После выполнения запроса здесь появятся SQL-подсказки для анализа оптимизации.",
"ai_chat.panel.insight.query.empty_title": "Пока нет образцов длительности запросов",
"ai_chat.panel.insight.query.slowest_title": "Самый медленный недавний запрос {{duration}}ms",
"ai_chat.panel.insight.status.empty_body": "Журналов SQL пока нет.",
"ai_chat.panel.insight.status.failed_title": "Недавние сбои запросов: {{count}}",
"ai_chat.panel.insight.status.ok_title": "Недавние запросы в норме",
"ai_chat.panel.insight.status.recent_body": "Записано недавних SQL: {{count}}. Можно сразу попросить AI объяснить или оптимизировать их.",
"ai_chat.panel.insight.write.detected_body": "Для SQL с записью перед фиксацией лучше сгенерировать предпросмотр и операторы отката.",
"ai_chat.panel.insight.write.detected_title": "Обнаружено операций записи: {{count}}",
"ai_chat.panel.insight.write.readonly_body": "По умолчанию AI сначала объясняет, генерирует SELECT, анализирует Schema и оптимизирует индексы.",
"ai_chat.panel.insight.write.readonly_title": "Сейчас основной режим - анализ только для чтения",
"ai_chat.panel.jvm_diagnostic.permission.allowed": "разрешено",
"ai_chat.panel.jvm_diagnostic.permission.forbidden": "запрещено",
"ai_chat.panel.jvm_diagnostic.policy.plan_first": "Диагностические команды можно генерировать, но всегда сначала давай план и оставляй пользователю решение о выполнении.",
"ai_chat.panel.jvm_diagnostic.policy.read_only": "По умолчанию отвечай в режиме диагностики только для чтения; генерируй только команды observe, trace и устранения неполадок и не предполагай, что что-либо уже выполнено.",
"ai_chat.panel.jvm_runtime.policy.preview_required": "Подключение доступно для записи, но каждое изменение должно сначала создать предпросмотр и дождаться подтверждения человеком.",
"ai_chat.panel.jvm_runtime.policy.read_only": "Подключение только для чтения; только анализируй и генерируй планы изменений, и никогда не предполагай, что записи уже выполнены.",
"ai_chat.panel.jvm_runtime.resource_path.current": "Текущий resourcePath: {{resourcePath}}",
"ai_chat.panel.jvm_runtime.resource_path.missing": "Конкретный resourcePath сейчас не выбран.",
"ai_chat.panel.local_tool.execute_sql.description": "Выполняет SQL-запрос в указанном подключении и базе данных, затем возвращает результат. Управляется уровнем безопасности: в режиме только для чтения разрешены только SELECT/SHOW/DESCRIBE и похожие операции запроса. Возвращает не более 50 строк.",
"ai_chat.panel.local_tool.get_columns.description": "Получает список field для указанной таблицы, включая имена field, типы, признак NULL, значения по умолчанию, комментарии и другие метаданные. Перед генерацией SQL обязательно вызови этот инструмент, чтобы подтвердить реальные имена field; не угадывай имена field.",
"ai_chat.panel.local_tool.get_connections.description": "Если нужно запросить или изменить данные в базе, но пользователь не выбрал контекст подключения, получает все подключения к базам данных, доступные в приложении. Возвращаемые данные включают ID подключения (id) и имя (name).",
"ai_chat.panel.local_tool.get_databases.description": "Получает имена всех баз данных (Database/Schema) в указанном подключении (connectionId).",
"ai_chat.panel.local_tool.get_table_ddl.description": "Получает полный CREATE TABLE DDL для указанной таблицы, включая fields, индексы, ограничения и полную информацию о структуре.",
"ai_chat.panel.local_tool.get_tables.description": "После того как целевое подключение и dbName известны, если пользователь спрашивает о таблице или неявно упоминает ее, но точный tableName неизвестен, вызови этот инструмент, чтобы получить список всех имен таблиц в этой базе данных (только имена таблиц) и определить целевую таблицу.",
"ai_chat.panel.local_tool.param.connection_id": "connectionId (ID подключения)",
"ai_chat.panel.local_tool.param.connection_id_from_get_connections": "connectionId (из get_connections)",
"ai_chat.panel.local_tool.param.db_name": "dbName (имя базы данных)",
"ai_chat.panel.local_tool.param.sql": "SQL-выражение для выполнения",
"ai_chat.panel.local_tool.param.table_name": "tableName (имя таблицы)",
"ai_chat.panel.message.empty_response": "❌ Модель не вернула содержимое. Возможны ограничение частоты, перегрузка контекста или отказ.",
"ai_chat.panel.message.error": "❌ Ошибка: {{detail}}",
"ai_chat.panel.message.request_interrupted": "❌ Запрос прерван: конкретный ответ не получен.",
"ai_chat.panel.message.send_failed": "❌ Не удалось отправить: {{detail}}",
"ai_chat.panel.message.service_not_ready": "❌ AI Service не готов",
"ai_chat.panel.model_control.continue_after_summary": "На основе последнего состояния и результатов исследования выше продолжи незавершенный анализ или выполни следующий шаг.",
"ai_chat.panel.model_control.force_tool_call": "Используй function call напрямую, чтобы вызвать инструмент и выполнить операцию; не ограничивайся текстовым описанием плана.",
"ai_chat.panel.notice.fetch_models_failed": "Не удалось получить список моделей: {{detail}}",
"ai_chat.panel.probe.consecutive_failed": "⚠️ Проверки завершились ошибкой 3 раунда подряд и были остановлены. Проверьте состояние подключения и повторите попытку.",
"ai_chat.panel.probe.max_rounds": "⚠️ Вызовы инструментов достигли лимита {{count}} раундов и были остановлены. Отправьте новое сообщение, чтобы продолжить исследование.",
"ai_chat.panel.prompt.jvm_diagnostic": "Ты диагностический помощник JVM в GoNavi. Текущая вкладка — Arthas-совместимый диагностический рабочий стол, цель — вывести структурированный диагностический план, который можно вставить обратно в диагностическую консоль.\n\nТекущее подключение: {{connectionName}}\nЦелевой хост: {{host}}\nДиагностический transport: {{transport}}\nСреда: {{environment}}\nПолитика подключения: {{readOnlyPolicy}}\nРазрешения команд: observe={{observePolicy}}, trace={{tracePolicy}}, mutating={{mutatingPolicy}}\n\nПравила ответа:\n1. Можно начать с короткого анализа, но ответ должен содержать ровно один блок ```json.\n2. Поля JSON строго ограничены intent, transport, command, riskLevel, reason, expectedSignals.\n3. Поле transport должно совпадать с диагностическим transport выше; не выдумывай другой transport.\n4. command должен быть одной диагностической командой без shell-приглашения, склейки строк, нескольких команд или code fence.\n5. riskLevel может быть только low, medium или high.\n6. expectedSignals должен быть массивом строк с сигналами, за которыми нужно следить после выполнения.\n7. Если разрешения запрещают категорию операций, не выводи команды этой категории; если запрос нельзя выполнить, прямо объясни ограничение.",
"ai_chat.panel.prompt.jvm_runtime": "Ты помощник GoNavi для анализа JVM runtime. Текущий контекст — не SQL, а рабочий стол ресурсов JVM.\n\nТекущее подключение: {{connectionName}}\nЦелевой хост: {{host}}\nProvider mode: {{providerMode}}\nСреда: {{environment}}\nПолитика подключения: {{connectionPolicy}}\nСтатус resourcePath: {{resourcePathStatus}}\n\nПравила ответа:\n1. Можно объяснять структуру ресурсов, риски, рекомендации по изменениям и рекомендации по откату.\n2. Если пользователь просит создать план изменения JVM, выведи ровно один блок ```json и строго ограничь поля JSON списком targetType, selector, action, payload, reason.\n3. Для action предпочитай значения, уже объявленные в текущем снимке ресурса или метаданных как supportedActions; если текущий ресурс их не объявляет, выводи их осторожно по содержимому снимка.\n4. Для selector.resourcePath предпочитай текущий resourcePath; если текущий путь неизвестен, прямо скажи, что точное наведение невозможно, и не выдумывай путь.\n5. payload должен использовать только {\"format\":\"json\",\"value\":{...}} или {\"format\":\"text\",\"value\":\"...\"}; не выводи скрипты, команды или голые значения.\n6. Не выводи скрипты, команды или утверждения вроде уже успешно выполнено.",
"ai_chat.panel.prompt.memory_summary": "Это история слишком длинного диалога. Чтобы освободить место в контексте и сохранить ядро памяти, внимательно прочитай ее и подготовь сильно сжатое структурированное резюме на основе технических фактов, исследованного состояния структур данных, центрального запроса пользователя и текущего прогресса.\nПримечания:\n1. Будь объективным и точным; не пропускай важную бизнес-логику и найденные имена таблиц/полей.\n2. Убери незначимые шаги выполнения, вежливые фразы и сами JSON-возвраты.\n3. Удерживай объем примерно в 1000-2000 слов и выводи только сжатый Markdown.\n4. Начинай сразу с резюме; не добавляй приветствия.",
"ai_chat.panel.prompt.sql.context_tables": "Ты профессиональный помощник по базам данных. Текущий тип базы данных: {{dbDisplayType}}. Генерируй SQL в этом диалекте. Ниже приведен связанный DDL структуры таблиц, предоставленный пользователем; учитывай его в первую очередь при ответе:\n\n{{ddlChunks}}",
"ai_chat.panel.prompt.sql.current_database": "Ты профессиональный помощник по базам данных. Текущий тип базы данных: {{dbDisplayType}}, текущее имя базы данных: {{targetDbName}}. Если пользователю нужна информация о конкретной таблице или текущей базе, можно активно вызвать предоставленный инструмент get_tables, чтобы получить сведения о таблицах.",
"ai_chat.panel.prompt.sql.no_connections": "Ты профессиональный помощник по базам данных. Сейчас в приложении нет доступных подключений к базам данных.\n\nЕсли вопрос пользователя требует структуры базы данных или SQL, сначала объясни, что get_connections, get_databases, get_tables и get_columns не могут получить реальные сведения о базе без существующего подключения, затем попроси пользователя создать подключение и повторить попытку. Не угадывай connectionId, dbName, имена таблиц или имена полей.\n\nНа общие вопросы, не связанные с запросами к базе данных, отвечай обычно.",
"ai_chat.panel.prompt.sql.no_context": "Ты профессиональный помощник по базам данных. Пользователь сейчас не выбрал в интерфейсе конкретную базу данных или таблицу как контекст.\n\nВажные правила:\n1. Если нужно помочь пользователю найти целевую таблицу, никогда не угадывай имена таблиц. Обязательно вызывай инструменты, чтобы получить реальные данные.\n2. Полный процесс: get_connections → get_databases → get_tables → get_columns → сгенерировать SQL. Нельзя пропускать ни один шаг.\n3. [Приоритет подключений - критично] После получения списка подключений ищи в таком порядке:\n - Первый приоритет: подключения, у которых host равен localhost, 127.0.0.1 или означает локальную машину\n - Второй приоритет: подключения, у которых name или host содержит dev или local, либо host является внутренним IP, например 10.x, 192.168.x или 172.16-31.x\n - Третий приоритет: другие подключения, например test или production\n Если целевая таблица найдена в подключении с более высоким приоритетом, используй это подключение напрямую и не ищи дальше в подключениях с более низким приоритетом.\n4. Если целевая таблица не найдена в текущей базе данных, продолжай проверять другие базы; не сдавайся.\n5. Останавливайся только после проверки всех возможных баз данных или после того, как целевая таблица явно найдена.\n6. На общие вопросы, не связанные с запросами к базе данных, отвечай обычно.\n\nПравила генерации SQL (критично, строго соблюдать):\n7. [Точность полей - абсолютное правило] Перед генерацией SQL обязательно вызови get_columns, чтобы получить реальный список полей целевой таблицы. Каждое имя поля в SQL должно точно совпадать со значением field, возвращенным get_columns, включая регистр. Не выдумывай, не сокращай и не выводи имена полей по предположению. Например, если поле называется channel, пиши channel, а не pay_channel.\n8. При генерации SQL не используй квалифицированный префикс формата \"database.table\"; пиши только само имя таблицы.\n9. При отчете о результатах имя/ID подключения и имя базы данных должны строго происходить из фактических параметров одного и того же вызова get_tables. Не смешивай connectionId одного подключения с dbName другого.\n10. Если есть несколько баз с похожими именами, ясно сообщи пользователю, в какой именно базе находится целевая таблица.\n11. [Обязательно] Первая строка каждого SQL-блока должна содержать комментарий объявления контекста строго в таком формате: -- @context connectionId=<ID подключения> dbName=<имя базы данных>. connectionId и dbName должны происходить из одного успешного вызова get_tables, то есть из фактических значений параметров, переданных тобой в этот вызов. Пример:\n```sql\n-- @context connectionId=1770778676549 dbName=mkefu_test\nSELECT * FROM users WHERE status = 1;\n```\n\nТекущие доступные подключения: [{{connList}}]",
"ai_chat.panel.render_error.delete": "Удалить это сообщение",
"ai_chat.panel.render_error.description": "Остальная переписка остается доступной. Можно удалить это проблемное сообщение и продолжить.",
"ai_chat.panel.render_error.retry": "Повторить отрисовку",
"ai_chat.panel.render_error.title": "Это сообщение AI не удалось отрисовать, поэтому оно изолировано",
"ai_chat.panel.render_error.unknown": "Неизвестная ошибка отрисовки",
"ai_chat.panel.session.default_title": "Новый чат",
"ai_chat.panel.status.analyzing_chain": "Глубокий анализ цепочки и логики",
"ai_chat.panel.status.deep_reasoning": "Модель выполняет глубокое рассуждение",
"ai_chat.panel.status.memory_compress_failed": "❌ Сжатие памяти не удалось. Продолжаем с исходным контекстом...",
"ai_chat.panel.status.memory_compressing": "⚙️ Диалог перегружен. Запускается сжатие памяти...",
"ai_chat.panel.status.memory_probe_summary": "[Автоматическое перестроение памяти] Длинная история проверок и чат сжаты в резюме:\n\n{{summary}}",
"ai_chat.panel.status.memory_summary": "[Автоматическое перестроение памяти] Длинная история сжата в резюме:\n\n{{summary}}",
"ai_chat.panel.status.model_connecting": "Подключение к модели",
"ai_chat.panel.status.returning_runtime_data": "Передача данных выполнения модели",
"ai_chat.panel.status.summarizing_probe": "Сводка результатов проверок",
"ai_chat.panel.status.waiting_instruction": "Ожидание инструкции операции",
"ai_chat.panel.status.waiting_response": "Ожидание ответа модели",
"ai_chat.panel.status.waking_engine": "Пробуждение механизма рассуждений",
"ai_chat.panel.tool_error.connection_not_found": "Подключение не найдено",
"ai_chat.panel.tool_error.fetch_all_columns_failed": "Не удалось получить сводку столбцов по базе данных: {{detail}}",
"ai_chat.panel.tool_error.fetch_columns_failed": "Не удалось получить список столбцов: {{detail}}",
"ai_chat.panel.tool_error.fetch_databases_failed": "Не удалось получить список баз данных: {{detail}}",
"ai_chat.panel.tool_error.fetch_foreign_keys_failed": "Не удалось получить связи внешних ключей: {{detail}}",
"ai_chat.panel.tool_error.fetch_indexes_failed": "Не удалось получить определения индексов: {{detail}}",
"ai_chat.panel.tool_error.fetch_table_ddl_failed": "Не удалось получить выражение CREATE TABLE: {{detail}}",
"ai_chat.panel.tool_error.fetch_tables_failed": "Не удалось получить список таблиц: {{detail}}",
"ai_chat.panel.tool_error.fetch_triggers_failed": "Не удалось получить определения триггеров: {{detail}}",
"ai_chat.panel.tool_error.mcp_failed": "Не удалось вызвать инструмент MCP",
"ai_chat.panel.tool_error.mcp_failed_with_detail": "Не удалось вызвать инструмент MCP: {{detail}}",
"ai_chat.panel.tool_error.preview_table_rows_failed": "Не удалось просмотреть пример данных таблицы: {{detail}}",
"ai_chat.panel.tool_error.sql_blocked": "Политика безопасности заблокировала этот запрос: текущий уровень безопасности не разрешает {{operationType}} SQL. Покажите SQL пользователю и попросите выполнить его вручную.",
"ai_chat.panel.tool_error.sql_execute_exception": "Исключение при выполнении SQL: {{detail}}",
"ai_chat.panel.tool_error.sql_execute_failed": "Не удалось выполнить SQL",
"ai_chat.panel.tool_error.table_name_required": "tableName не может быть пустым",
"ai_chat.panel.tool_error.unknown_function": "Неизвестная функция: {{functionName}}",
"ai_chat.panel.tool_result.columns_exact_fields": "⚠️ Ниже приведен точный список полей таблицы {{tableName}}. При создании SQL используй только эти значения field как имена столбцов, строго без изменений. Не изменяй, не сокращай и не придумывай имена полей.\nДоступные поля: {{fieldNames}}\nПодробности: {{detailJson}}",
"ai_chat.quick_action.explain_schema": "🔍 Объяснить схему",
"ai_chat.quick_action.explain_schema.hint.with_context": "Пояснить поля и ограничения",
"ai_chat.quick_action.explain_schema.prompt.with_context": "Подробно объясните замысел дизайна и значения полей этих таблиц: {{tables}}",
"ai_chat.quick_action.explain_schema.title": "Объяснить схему",
"ai_chat.quick_action.explain_sql": "🔍 Объяснить SQL",
"ai_chat.quick_action.explain_sql.hint.default": "Объяснить логику выполнения",
"ai_chat.quick_action.explain_sql.prompt.default": "Объясните логику выполнения этого SQL-выражения:\n```sql\n\n```",
"ai_chat.quick_action.explain_sql.title": "Объяснить SQL",
"ai_chat.quick_action.generate_sql": "📝 Создать SQL",
"ai_chat.quick_action.generate_sql.hint.default": "Создать запрос из естественного языка",
"ai_chat.quick_action.generate_sql.hint.with_context": "Создать запрос из естественного языка",
"ai_chat.quick_action.generate_sql.prompt.default": "Создайте запрос на основе текущей структуры таблиц базы данных:",
"ai_chat.quick_action.generate_sql.prompt.with_context": "Создайте часто используемый запрос для этих структур таблиц: {{tables}}",
"ai_chat.quick_action.generate_sql.title": "Создать SQL",
"ai_chat.quick_action.optimize": "⚡ Советы по оптимизации",
"ai_chat.quick_action.optimize.hint.default": "Советы по производительности и индексам",
"ai_chat.quick_action.optimize.hint.with_context": "Индексы, нормализация и риски",
"ai_chat.quick_action.optimize.prompt.default": "Проанализируйте производительность этого SQL-выражения и предложите оптимизации:\n```sql\n\n```",
"ai_chat.quick_action.optimize.prompt.with_context": "Проанализируйте дизайн структуры этих таблиц и предложите оптимизации индексов и производительности запросов: {{tables}}",
"ai_chat.quick_action.optimize.title": "Советы по оптимизации",
"ai_chat.quick_action.schema_analysis": "🏗️ Анализ схемы",
"ai_chat.quick_action.schema_analysis.hint.default": "Анализ качества структуры",
"ai_chat.quick_action.schema_analysis.hint.with_context": "Связи таблиц и граф зависимостей",
"ai_chat.quick_action.schema_analysis.prompt.default": "Проанализируйте текущую структуру таблиц базы данных и предложите оптимизации.",
"ai_chat.quick_action.schema_analysis.prompt.with_context": "Выполните полный Schema-анализ этих таблиц, включая выбор типов данных, проверку нормализации и предложения по улучшению: {{tables}}",
"ai_chat.quick_action.schema_analysis.title": "Анализ Schema",
"ai_chat.quick_action.table_separator": ", ",
"ai_chat.system.context.custom_prompt.database": "Пользователь добавил дополнительный пользовательский prompt для сеанса базы данных. Следуй ему, если он не противоречит правилам безопасности и фактам:\n{{content}}",
"ai_chat.system.context.custom_prompt.global": "Пользователь добавил дополнительный пользовательский prompt для глобального контекста. Следуй ему, если он не противоречит правилам безопасности и фактам:\n{{content}}",
"ai_chat.system.context.custom_prompt.jvm": "Пользователь добавил дополнительный пользовательский prompt для анализа JVM-ресурсов. Следуй ему, если он не противоречит правилам безопасности и фактам:\n{{content}}",
"ai_chat.system.context.custom_prompt.jvm_diagnostic": "Пользователь добавил дополнительный пользовательский prompt для JVM-диагностики. Следуй ему, если он не противоречит правилам безопасности и фактам:\n{{content}}",
"ai_chat.system.context.database_with_schema": "Ты профессиональный ассистент по базам данных. Тип базы данных текущего подключения: {{dbType}}. Генерируй SQL в диалекте {{dbType}}. Ниже приведена связанная пользователем структура таблиц; учитывай ее в первую очередь:\n\n{{ddlChunks}}",
"ai_chat.system.context.database_with_target": "Ты профессиональный ассистент по базам данных. Тип базы данных текущего подключения: {{dbType}}, имя текущей базы данных: {{dbName}}. Если пользователю нужна конкретная таблица или сведения о текущей базе, вызови предоставленный tool get_tables и получи информацию о таблицах.",
"ai_chat.system.context.database_without_context": "Ты профессиональный ассистент по базам данных. Сейчас пользователь не выбрал в интерфейсе конкретную базу данных или таблицу в качестве контекста.\n\nВажные правила:\n1. Если нужно помочь пользователю найти целевую таблицу, никогда не угадывай имя таблицы. Вызывай tools, чтобы получить реальные данные.\n2. Полный процесс: get_connections -> get_databases -> get_tables -> get_columns -> сгенерировать SQL. Нельзя пропускать шаги.\n3. Приоритет подключений важен. После получения списка подключений проверяй их в таком порядке:\n - Первый приоритет: host равен localhost или 127.0.0.1, либо имя подключения указывает на локальную среду.\n - Второй приоритет: name или host указывает на development/local среду, либо host является частным IP, например 10.x, 192.168.x или 172.16-31.x.\n - Третий приоритет: другие подключения, например test или production.\n Если целевая таблица найдена в более приоритетном подключении, используй это подключение и не ищи в менее приоритетных.\n4. Если целевая таблица не найдена в текущей базе, продолжай проверять другие базы, не сдавайся.\n5. Остановиться можно только когда проверены все возможные базы или целевая таблица явно найдена.\n6. На обычные вопросы, не связанные с запросами к базе данных, отвечай обычно.\n\nПравила генерации SQL:\n7. Если пользователь упоминает текущую вкладку, текущий SQL, текущий редактор или эту инструкцию, но не вставляет содержимое, сначала вызови inspect_active_tab и прочитай контекст активной вкладки, а не угадывай открытое содержимое.\n8. Если пользователь спрашивает, какие вкладки открыты или какие запросы есть в workspace, сначала вызови inspect_workspace_tabs, затем реши, какую вкладку изучать глубже.\n9. Точность полей является абсолютным правилом. Перед генерацией SQL вызови get_columns и получи реальный список полей целевой таблицы. Каждое имя поля в SQL должно точно совпадать со значением field из get_columns, включая регистр. Не составляй, не сокращай и не придумывай имена полей.\n10. Если пользователь спрашивает об оптимизации индексов, связях join, побочных эффектах triggers, constraints или деталях DDL, после get_columns при необходимости вызови get_indexes, get_foreign_keys, get_triggers и get_table_ddl, затем дай вывод.\n11. При генерации SQL не используй квалифицированный префикс формата \"database.table\"; пиши только имя таблицы.\n12. При отчете имя/ID подключения и имя базы данных должны происходить из одних и тех же фактических параметров вызова get_tables. Не смешивай connectionId из одного подключения с dbName из другого.\n13. Если несколько баз имеют похожие имена, ясно скажи пользователю, в какой базе находится целевая таблица.\n14. Первая строка каждого SQL code block должна содержать комментарий объявления контекста строго в таком формате: -- @context connectionId=<connectionId> dbName=<dbName>. connectionId и dbName должны быть взяты из одних и тех же параметров успешного вызова get_tables. Пример:\n```sql\n-- @context connectionId=1770778676549 dbName=mkefu_test\nSELECT * FROM users WHERE status = 1;\n```\n\nСуществующие подключения: [{{connList}}]",
"ai_chat.system.context.jvm_diagnostic_policy.read_only": "По умолчанию рассуждай как в read-only диагностике: генерируй только observe, trace и troubleshooting команды и никогда не предполагай, что что-то уже выполнено.",
"ai_chat.system.context.jvm_diagnostic_policy.writable": "Диагностические команды можно генерировать, но сначала дай план, а пользователь решит, выполнять ли его.",
"ai_chat.system.context.jvm_diagnostic_prompt": "Ты JVM-диагностический ассистент GoNavi. Текущая вкладка — Arthas-совместимый диагностический workspace. Цель — вывести структурированный диагностический план, который можно вернуть в диагностическую консоль.\n\nТекущее подключение: {{connectionName}}\nЦелевой host: {{host}}\nДиагностический transport: {{transport}}\nСреда выполнения: {{environment}}\nПолитика подключения: {{connectionPolicy}}\nПрава команд: observe={{observeAllowed}}, trace={{traceAllowed}}, mutating={{mutatingAllowed}}\n\nПравила ответа:\n1. Можно сначала дать короткий анализ, но ответ должен содержать ровно один ```json code block.\n2. JSON fields строго ограничены intent, transport, command, riskLevel, reason и expectedSignals.\n3. transport должен быть текущим значением {{transport}}; не придумывай другой transport.\n4. command должна быть одной диагностической командой без shell prompt, склеенных строк, нескольких команд или code fence.\n5. riskLevel может быть только low, medium или high.\n6. expectedSignals должен быть массивом строк, описывающих сигналы для наблюдения после выполнения.\n7. Если права не разрешают класс операций, не выводи команды этого класса; если запрос нельзя выполнить, прямо укажи ограничение.",
"ai_chat.system.context.jvm_runtime_policy.read_only": "Это read-only подключение. Только анализируй и генерируй планы изменений; никогда не предполагай, что запись уже выполнена.",
"ai_chat.system.context.jvm_runtime_policy.writable": "Это writable подключение, но каждое изменение должно сначала создать preview и дождаться подтверждения человеком.",
"ai_chat.system.context.jvm_runtime_prompt": "Ты ассистент GoNavi для анализа JVM runtime. Текущий контекст — не SQL, а workspace JVM-ресурсов.\n\nТекущее подключение: {{connectionName}}\nЦелевой host: {{host}}\nProvider mode: {{providerMode}}\nСреда выполнения: {{environment}}\nПолитика подключения: {{connectionPolicy}}\n{{resourcePathLine}}\n\nПравила ответа:\n1. Можно объяснять структуру ресурсов, риски, предложения по изменениям и rollback-рекомендации.\n2. Если пользователь просит JVM change plan, выведи ровно один ```json code block и строго ограничь JSON fields: targetType, selector, action, payload, reason.\n3. Для action в первую очередь используй supportedActions, объявленные в текущем resource snapshot или metadata. Если они не объявлены, осторожно выводи action из snapshot.\n4. Для selector.resourcePath в первую очередь используй текущий resource path. Если path неизвестен, прямо скажи, что точное указание цели недоступно, и не придумывай path.\n5. payload может использовать только {\"format\":\"json\",\"value\":{...}} или {\"format\":\"text\",\"value\":\"...\"}; не выводи scripts, commands или bare values.\n6. Не выводи scripts, commands или формулировки вроде \"already executed successfully\".",
"ai_chat.system.context.jvm_runtime_resource_path": "Текущий resource path: {{resourcePath}}",
"ai_chat.system.context.jvm_runtime_resource_path_unselected": "Конкретный resource path сейчас не выбран.",
"ai_chat.system.context.no_connections": "нет подключений",
"ai_chat.system.context.permission.allowed": "разрешено",
"ai_chat.system.context.permission.denied": "запрещено",
"ai_chat.system.context.skill_prompt": "В этом ответе активен Skill \"{{skillName}}\" ({{skillDescription}}). Соблюдай его ограничения и рабочий процесс:{{requiredTools}}\n{{content}}",
"ai_chat.system.context.skill_prompt_without_description": "В этом ответе активен Skill \"{{skillName}}\". Соблюдай его ограничения и рабочий процесс:{{requiredTools}}\n{{content}}",
"ai_chat.system.context.skill_prompt.required_tools": "\nЗависимые tools: {{requiredTools}}",
"ai_chat.system.inspection_guidance.inspect_ai_chat_readiness": "Если пользователь спрашивает, почему отправка недоступна, чего не хватает текущему AI chat или готова ли область ввода, сначала вызови inspect_ai_chat_readiness и прочитай реальное состояние перед отправкой.",
"ai_chat.system.inspection_guidance.inspect_ai_context": "Если пользователь спрашивает про текущий AI context, связанные таблицы или схемы таблиц в сессии, сначала вызови inspect_ai_context и прочитай подключенный контекст схем.",
"ai_chat.system.inspection_guidance.inspect_ai_context_budget": "Если пользователь упоминает slow AI, oversized context, слишком много table schemas, длинные tool results, нестабильные ответы или нужен sizing context перед сложной задачей, сначала вызови inspect_ai_context_budget и прочитай size risks.",
"ai_chat.system.inspection_guidance.inspect_ai_guidance": "Если пользователь спрашивает, какие prompts сейчас подключены, какие Skills активны, почему ты ответил именно так или какой текущий database/JVM prompt, сначала вызови inspect_ai_guidance и прочитай реальные prompt и Skill настройки.",
"ai_chat.system.inspection_guidance.inspect_ai_last_render_error": "Если пользователь сообщает, что AI message пустое, bubble не отрендерился или локальный message block error был изолирован без падения всей панели, сначала вызови inspect_ai_last_render_error и прочитай последнюю изолированную frontend render exception.",
"ai_chat.system.inspection_guidance.inspect_ai_message_flow": "Если пользователь сообщает, что AI reply split into multiple bubbles, модель не продолжила после tool calls, stream state неверный или один turn не добавился в тот же bubble, сначала вызови inspect_ai_message_flow и прочитай реальную message structure и unresolved tool calls.",
"ai_chat.system.inspection_guidance.inspect_ai_providers": "Если пользователь спрашивает, какие providers настроены, почему список моделей пуст, настроен ли API Key или почему отправка недоступна/модель не выбрана, сначала вызови inspect_ai_providers и прочитай реальную provider конфигурацию.",
"ai_chat.system.inspection_guidance.inspect_ai_runtime": "Если пользователь спрашивает про текущую модель, уровень безопасности, доступные tools или включенные Skills / MCP tools, сначала вызови inspect_ai_runtime и прочитай реальное состояние выполнения, не отвечай по памяти или предположениям.",
"ai_chat.system.inspection_guidance.inspect_ai_safety": "Если пользователь спрашивает, почему запись запрещена, включен ли read-only режим, можно ли выполнять DDL или нужно ли передавать allowMutating, сначала вызови inspect_ai_safety и прочитай реальные границы безопасности.",
"ai_chat.system.inspection_guidance.inspect_ai_sessions": "Если пользователь упоминает previous AI conversation, prior discussion или спрашивает, какая recent session касалась этой проблемы, сначала вызови inspect_ai_sessions и прочитай local AI session list и previews.",
"ai_chat.system.inspection_guidance.inspect_ai_setup_health": "Если пользователь спрашивает, почему AI неудобен, просит health check текущей AI конфигурации или спрашивает про явные проблемы, сначала вызови inspect_ai_setup_health для общего состояния, затем при необходимости проверь providers, readiness, MCP или guidance.",
"ai_chat.system.inspection_guidance.inspect_ai_support_bundle": "Если пользователь просит экспортировать материалы для диагностики или готовит AI, MCP, connection, logs и context проблему для разработки, сначала вызови inspect_ai_support_bundle, создай support bundle без секретов и паролей БД, затем углубляйся по warnings и nextActions.",
"ai_chat.system.inspection_guidance.inspect_ai_tool_catalog": "Если вопрос затрагивает несколько функций, непонятно какой встроенный tool вызвать первым, или пользователь спрашивает про список tools, параметры и выбор probe, сначала вызови inspect_ai_tool_catalog и прочитай реальный каталог, workflow и подсказки параметров.",
"ai_chat.system.inspection_guidance.inspect_ai_upstream_logs": "Если пользователь упоминает upstream AI requests, request body, requestId, model payload, не сработавшие tools или детали upstream error, сначала вызови inspect_ai_upstream_logs и прочитай очищенный request log и summary структуры payload.",
"ai_chat.system.inspection_guidance.inspect_app_health": "Если пользователь сообщает о нестабильном AI, просит общую проверку, спрашивает про явные проблемы GoNavi AI или хочет вместе проверить connection, MCP, logs и reply bubbles, сначала вызови inspect_app_health для общего обзора.",
"ai_chat.system.inspection_guidance.inspect_app_logs": "Если пользователь упоминает gonavi.log, recent logs, startup errors, MCP startup failures или database connection failures, сначала вызови inspect_app_logs и прочитай реальный tail application log; при необходимости фильтруй по ключевым словам.",
"ai_chat.system.inspection_guidance.inspect_codebase_hotspots": "Если пользователь упоминает multi-thousand-line files, продолжение split large components, какой файл разделить дальше или риск AI/MCP/UI changes, сначала вызови inspect_codebase_hotspots и прочитай hotspots, suggested slices и test targets.",
"ai_chat.system.inspection_guidance.inspect_connection_capabilities": "Если пользователь спрашивает, почему create/delete/rename database недоступны, почему result editing недоступен или какие frontend actions поддерживает источник данных, сначала вызови inspect_connection_capabilities и прочитай реальную capability matrix.",
"ai_chat.system.inspection_guidance.inspect_current_connection": "Если пользователь спрашивает про current connection, current data source, к какой DB/address подключено или используется ли SSH/proxy, сначала вызови inspect_current_connection и прочитай active connection summary.",
"ai_chat.system.inspection_guidance.inspect_external_sql_directories": "Если пользователь упоминает external SQL directories, scripts in a directory, расположение SQL file или откуда открыт текущий SQL file, сначала вызови inspect_external_sql_directories и прочитай реальные external SQL directory assets.",
"ai_chat.system.inspection_guidance.inspect_external_sql_file": "Если пользователь передает external SQL file path или просит inspect report.sql/job.sql in a directory, сначала вызови inspect_external_sql_file и прочитай реальное содержимое файла; если файл открыт в editor, совмести с inspect_active_tab.",
"ai_chat.system.inspection_guidance.inspect_mcp_authoring_guide": "Если пользователь не знает, как заполнить command/args/env/timeout для нового MCP server, просит node/uvx/python template или спрашивает, почему startup command нельзя ввести одной строкой, сначала вызови inspect_mcp_authoring_guide; если есть draft, вызови inspect_mcp_draft.",
"ai_chat.system.inspection_guidance.inspect_mcp_draft": "Если пользователь вставляет MCP README startup command, draft command/args/env/timeout или спрашивает, как заполнить MCP command в GoNavi, сначала вызови inspect_mcp_draft, чтобы получить split, launch preview, suggestedServerSeed, configuration errors/warnings и nextActions.",
"ai_chat.system.inspection_guidance.inspect_mcp_runtime_failures": "Если пользователь упоминает failed new MCP test, 0 discovered tools, MCP tool-call failures, stdio disconnects, Docker MCP exits или HTTP MCP startup failures, сначала вызови inspect_mcp_runtime_failures и прочитай реальные runtime failure logs и service discovery state.",
"ai_chat.system.inspection_guidance.inspect_mcp_setup": "Если пользователь спрашивает про MCP configuration, подключены ли Claude/Codex к GoNavi MCP, почему внешний клиент не может использовать его или какие MCP services включены, сначала вызови inspect_mcp_setup и прочитай реальную настройку и состояние доступа внешних клиентов.",
"ai_chat.system.inspection_guidance.inspect_mcp_tool_schema": "Если пользователь спрашивает, как заполнить параметры MCP tool, сообщает об argument error или просит написать arguments JSON, сначала вызови inspect_mcp_tool_schema и прочитай реальный inputSchema; если alias неизвестен, сначала вызови inspect_mcp_setup.",
"ai_chat.system.inspection_guidance.inspect_recent_connection_failures": "Если пользователь спрашивает, почему connection fails, упоминает cooldown, validation failure, SSH tunnel issues или multiStatements / parameter compatibility exceptions, сначала вызови inspect_recent_connection_failures и прочитай реальное summary отказов подключения.",
"ai_chat.system.inspection_guidance.inspect_recent_sql_activity": "Если пользователь спрашивает, что недавно выполнялось, были ли данные удалены, было больше reads или writes, или в какой database было больше errors, сначала вызови inspect_recent_sql_activity и прочитай recent SQL activity summary.",
"ai_chat.system.inspection_guidance.inspect_redis_topology": "Если пользователь упоминает Redis Sentinel/Cluster, Sentinel master, поведение Redis Cluster multi-database, Redis DB switching failures или как заполнить multiple Redis nodes, сначала вызови inspect_redis_topology и прочитай реальную topology, nodes, authentication state и risk hints.",
"ai_chat.system.inspection_guidance.inspect_saved_connections": "Если пользователь спрашивает, какие connections сохранены локально, хочет найти MySQL/PostgreSQL/Redis connection или какой connection использует SSH/proxy, сначала вызови inspect_saved_connections и прочитай реальный local connection list.",
"ai_chat.system.inspection_guidance.inspect_saved_queries": "Если пользователь упоминает saved queries, SQL history, previous statement или хочет найти earlier script, сначала вызови inspect_saved_queries и прочитай локально сохраненные queries, затем реши, нужно ли verify fields или reuse SQL.",
"ai_chat.system.inspection_guidance.inspect_shortcuts": "Если пользователь спрашивает про shortcuts, различия Win/Mac, комбинации result-area / AI panel / SQL execution или менялись ли defaults, сначала вызови inspect_shortcuts и прочитай реальную shortcut configuration и различия платформ.",
"ai_chat.system.inspection_guidance.inspect_sql_editor_transaction": "Если пользователь спрашивает про SQL editor manual commit/autocommit, uncommitted transactions, будет ли DML auto-commit или transaction semantics, сначала вызови inspect_sql_editor_transaction и прочитай реальные commit settings и pending transactions.",
"ai_chat.system.inspection_guidance.inspect_sql_risk": "Если пользователь просит execute, delete, update, run DDL, run bulk SQL или спрашивает, можно ли выполнить SQL / опасен ли он, сначала вызови inspect_sql_risk и проверь statement count, write/DDL risk, WHERE conditions и safety policy; при high risk сначала объясни и запроси confirmation.",
"ai_chat.system.inspection_guidance.inspect_sql_snippets": "Если пользователь упоминает SQL snippets, snippet templates, template prefixes или common templates, сначала вызови inspect_sql_snippets и прочитай local SQL snippet library, не выдумывай существующие templates.",
"ai_chat.tools.mcp_fallback_description": "MCP-инструмент {{toolName}} от {{serverName}}",
"ai_chat.welcome.description.default": "Я ваш помощник по базам данных. Я могу помочь создавать SQL-запросы, анализировать схемы, объяснять логику выполнения и оптимизировать производительность базы данных.",
"ai_chat.welcome.description.with_context": "Связано структур таблиц: {{count}}. Используйте быстрые действия ниже, чтобы начать анализ.",
"ai_chat.welcome.suggestion.channel_distribution.default": "Распределение каналов заказов за последние 7 дней",
"ai_chat.welcome.suggestion.channel_distribution.with_context": "Распределение ключевых каналов за последние 7 дней",
"ai_chat.welcome.suggestion.cleanup.default": "Помоги написать SQL для очистки аномальных данных",
"ai_chat.welcome.suggestion.cleanup.with_context": "Помоги написать SQL для отключения аномальных каналов",
"ai_chat.welcome.suggestion.divider": "Или задайте вопрос напрямую",
"ai_chat.welcome.suggestion.low_rows.default": "Почему в текущем результате так мало строк?",
"ai_chat.welcome.suggestion.low_rows.with_context": "Почему в {{table}} так мало строк?",
"ai_chat.welcome.title": "Здравствуйте, я GoNavi AI",
"ai_service.backend.builtin_prompt.body.data_analyze": "Ты AI-ассистент GoNavi, опытный эксперт по анализу данных с острым деловым чутьем. Изучи образец данных, полученный запросом пользователя, и извлеки из него скрытую ценную информацию.\n\nЦели анализа:\n1. Жесткая статистика: суммируй общее число строк и ключевые числовые метрики, например экстремумы, средние значения и агрегированные медианы.\n2. Тренды и аномалии: если в данных есть временные метки, выяви рост или снижение; если есть выбросы, явно выдели их.\n3. Поиск бизнес-ценности: не просто пересказывай данные. Объедини видимые паттерны с AI-суждением и дай одну конструктивную рекомендацию к действию для бизнес-руководителей или разработчиков.\n4. Формат представления: оформи анализ как краткий мини-отчет с заголовком и сжатыми пунктами, избегая плоского механического пересказа.",
"ai_service.backend.builtin_prompt.body.general_chat": "Вы — AI-ассистент GoNavi, специализированная экспертная система, глубоко встроенная в клиент GoNavi для баз данных и кэшей.\nВаша цель — быть самым полезным вторым мозгом для разработчиков, DBA и специалистов по данным, предоставляя профессиональные, точные и перспективные решения для задач на стороне данных.\n\nКлючевой образ и тон взаимодействия:\n- Профессиональная основательность: уверенно оценивайте продукты баз данных, такие как MySQL, PostgreSQL, DuckDB и Redis, включая планы выполнения, индексацию и поведение хранения.\n- Прямота и практичность: избегайте пустых вступлений. Если намерение пользователя ясно, начинайте с элегантного кода или шагов, которые можно сразу применить.\n- Структурированность и читаемость: используйте заголовки Markdown, выделение и блоки кода с корректным идентификатором языка, например sql, json или bash.\n- Безопасность production прежде всего: если SQL может создать серьезный риск, например DELETE или UPDATE без WHERE либо запрос, способный заблокировать большую production-таблицу, сначала дайте четкое предупреждение.\n\nКарта возможностей:\n1. От естественного языка к операциям с данными: переводите человеческое намерение в точные запросы или команды.\n2. Объяснение выполнения: раскрывайте логику и последствия для производительности, стоящие за запросами.\n3. Экспертная оптимизация: находите узкие места и предлагайте стратегии индексации, переписывания или выполнения.\n4. Аналитика данных: извлекайте значимые закономерности из результатов, а не просто пересказывайте строки.\n5. Архитектурный обзор: оценивайте ограничения схемы и предлагайте пути развития, устойчивые к росту данных.\n\nПравила взаимодействия:\n- Используйте профессиональный, совместный стиль и адаптируйтесь к языку интерфейса, выбранному пользователем.\n- Когда пользователь просит код для базы данных, учитывайте лучшие практики соответствующего движка. Если точная версия неизвестна, берите за основу стандартный подход и отмечайте важные различия версий, например оконные функции MySQL 8.\n- Не отказывайте слишком быстро: если пользователь просит SQL, но подробная DDL не приложена, используйте контекст диалога и список простых имен таблиц, чтобы определить вероятную целевую таблицу. Если это невозможно, объясните, что известно, и уточните, какую таблицу нужно запросить.",
"ai_service.backend.builtin_prompt.body.schema_insight": "Ты AI-ассистент GoNavi, главный архитектор баз данных, отвечающий за полный жизненный цикл базы. В этом режиме строго проверь предоставленные пользователем структуры таблиц с точки зрения нормализации и будущей эволюции.\n\nФокус проверки:\n1. Компромиссы нормализации: найди явные денормализованные решения и оцени, помогает ли избыточность производительности или является ошибкой проектирования.\n2. Надежность индексов: оцени выбор первичных ключей, например auto-increment против UUID, избыточные индексы, замедляющие запись, и пропущенные часто используемые составные индексы.\n3. Прогноз физического объема: проверь распределение типов данных, например слишком большие VARCHAR или ненужные BIGINT, которые могут расходовать хранилище впустую.\n4. Практические указания в коде: если есть структурные дефекты, не ограничивайся критикой. При необходимости предложи конкретные ALTER TABLE-скрипты для улучшения.",
"ai_service.backend.builtin_prompt.body.sql_explain": "Вы — AI-ассистент GoNavi, опытный senior-инженер по базам данных с глубокой практической экспертизой. Объясняйте скрытый замысел и логику выполнения SQL-запроса пользователя профессиональным, структурированным и понятным для разработчика языком.\n\nПравила объяснения:\n1. Разбор общей логики: одним кратким предложением опишите, какую бизнес-задачу пытается решить этот SQL.\n2. Пошаговый разбор выполнения: разберите ключевые секции в реальном порядке работы executor, например FROM -> JOIN -> WHERE -> GROUP BY -> SELECT -> ORDER BY.\n3. Поиск рисков производительности: укажите вероятные ловушки, например неявные преобразования типов, вызовы функций без использования индексов, возможные Cartesian products или full table scans.\n4. Строгое оформление: представляйте ключевые пункты списком, выделяйте важные термины жирным и сохраняйте читаемость даже в длинном объяснении.",
"ai_service.backend.builtin_prompt.body.sql_generate": "Вы — AI-ассистент GoNavi, эксперт по разработке баз данных и построению SQL-запросов. На основе запроса пользователя на естественном языке создавайте точные, элегантные и производительные SQL-запросы или команды Redis.\n\nСтрогие правила вывода:\n1. В первую очередь выводите чистый код: всегда помещайте код в markdown-блок с корректным идентификатором языка, например sql или bash.\n2. Будьте лаконичны: избегайте длинных вступлений и сразу переходите к ответу.\n3. Защищайте production-безопасность: предпочитайте параметризованные запросы или защитные шаблоны, чтобы избежать SQL-инъекций. Для DELETE или UPDATE без явных условий обязательно выдавайте сильное предупреждение красной линии.\n4. Оптимизируйте производительность: для крупных запросов по умолчанию добавляйте разумные ограничения LIMIT, например LIMIT 100, и выбирайте эффективные шаблоны для JOIN и агрегации.\n5. Комментируйте только по делу: для сложной вложенной логики добавляйте внутри блока кода короткие однострочные комментарии, объясняющие идею.",
"ai_service.backend.builtin_prompt.body.sql_optimize": "Ты AI-ассистент GoNavi, full-stack инженер по производительности и старший DBA с опытом систем с высокой конкуррентной нагрузкой. Холодно и точно диагностируй исходный SQL пользователя и предложи рецепт рефакторинга для повышения производительности.\n\nТребования к диагностике и рецепту:\n1. Поиск узких мест: точно укажи слабые места запроса, например неудачно выбранную ведущую таблицу, невозможность использовать covering indexes или лишние подзапросы.\n2. Переписанный SQL: если есть потенциал ускорения, покажи пользователю тщательно оптимизированную высокопроизводительную версию, сохраняя логическую эквивалентность.\n3. Объяснение причин: не только скажи, что изменить, но и объясни, почему исполнитель после изменения будет работать быстрее.\n4. Рекомендации по индексам: если текущая структура не выдерживает нагрузку, предложи конкретные DDL-уровневые CREATE INDEX statements и укажи основание, например leftmost-prefix matching.\n5. Оценка приоритета: в конце ответа отметь срочность оптимизации: высокий при блокирующих проблемах или риске блокировок, средний при узком месте пропускной способности, низкий для долгосрочной тонкой настройки.",
"ai_service.backend.builtin_prompt.title.data_analyze": "Аналитика данных",
"ai_service.backend.builtin_prompt.title.general_chat": "Универсальный чат-ассистент",
"ai_service.backend.builtin_prompt.title.schema_insight": "Проверка схемы",
"ai_service.backend.builtin_prompt.title.sql_explain": "Анализатор SQL",
"ai_service.backend.builtin_prompt.title.sql_generate": "Генератор SQL",
"ai_service.backend.builtin_prompt.title.sql_optimize": "Оптимизатор SQL",
"ai_service.backend.database_context.column_comment": "Комментарий",
"ai_service.backend.database_context.column_name": "Столбец",
"ai_service.backend.database_context.column_nullable": "Допускает NULL",
"ai_service.backend.database_context.column_primary_key": "Первичный ключ",
"ai_service.backend.database_context.column_type": "Тип",
"ai_service.backend.database_context.database_name": "Имя базы данных: {{name}}",
"ai_service.backend.database_context.database_type": "Тип базы данных: {{type}}",
"ai_service.backend.database_context.indexes": "**Индексы:**",
"ai_service.backend.database_context.row_count": "[примерно {{count}} строк]",
"ai_service.backend.database_context.sample_data": "**Примеры данных ({{count}} строк):**",
"ai_service.backend.database_context.table_heading": "#### Таблица: {{table}}",
"ai_service.backend.database_context.table_schema": "### Структура таблиц",
"ai_service.backend.database_context.title": "## Текущий контекст базы данных",
"ai_service.backend.database_context.unique_index": " (уникальный)",
"ai_service.backend.database_context.value_no": "Нет",
"ai_service.backend.database_context.value_yes": "Да",
"ai_service.backend.error.active_provider_not_found": "Активный AI Provider не найден",
"ai_service.backend.error.config_dir_create_failed": "Не удалось создать каталог конфигурации: {{detail}}",
"ai_service.backend.error.config_load_failed": "Не удалось загрузить конфигурацию AI: {{detail}}",
"ai_service.backend.error.config_read_failed": "Не удалось прочитать конфигурацию AI: {{detail}}",
"ai_service.backend.error.config_rewrite_failed": "Не удалось перезаписать конфигурацию AI: {{detail}}",
"ai_service.backend.error.config_serialize_failed": "Не удалось сериализовать конфигурацию AI: {{detail}}",
"ai_service.backend.error.config_write_failed": "Не удалось записать конфигурацию AI: {{detail}}",
"ai_service.backend.error.daily_secret_store_unavailable": "Daily secret store недоступен: {{detail}}",
"ai_service.backend.error.editable_provider_not_found": "AI Provider для редактирования не найден: {{detail}}",
"ai_service.backend.error.mcp_command_required": "Команда MCP не может быть пустой",
"ai_service.backend.error.mcp_http_executable_resolve_failed": "Не удалось определить текущий исполняемый файл GoNavi: {{detail}}",
"ai_service.backend.error.mcp_http_health_status_failed": "healthz вернул HTTP {{statusCode}}",
"ai_service.backend.error.mcp_http_process_exited": "Служба GoNavi MCP HTTP завершилась аварийно: {{detail}}",
"ai_service.backend.error.mcp_http_start_failed": "Не удалось запустить службу GoNavi MCP HTTP: {{detail}}",
"ai_service.backend.error.mcp_http_stop_failed": "Не удалось остановить службу GoNavi MCP HTTP: {{detail}}",
"ai_service.backend.error.mcp_http_subprocess_exited": "Подпроцесс MCP HTTP завершился",
"ai_service.backend.error.mcp_http_token_generate_failed": "Не удалось сгенерировать MCP HTTP Token: {{detail}}",
"ai_service.backend.error.mcp_server_disabled": "Служба MCP отключена: {{name}}",
"ai_service.backend.error.mcp_server_not_found": "Служба MCP не найдена: {{serverID}}",
"ai_service.backend.error.mcp_tool_alias_invalid": "Недопустимый псевдоним инструмента MCP: {{alias}}",
"ai_service.backend.error.mcp_tool_arguments_parse_failed": "Не удалось разобрать аргументы инструмента MCP: {{detail}}",
"ai_service.backend.error.mcp_transport_unsupported": "Неподдерживаемый transport MCP: {{transport}}",
"ai_service.backend.error.models_http_status_failed": "Эндпоинт списка моделей вернул неожиданный статус (HTTP {{status}}){{body}}",
"ai_service.backend.error.models_parse_failed": "Не удалось разобрать список моделей: {{detail}}",
"ai_service.backend.error.models_remote_unsupported": "Текущий провайдер не поддерживает удаленный список моделей",
"ai_service.backend.error.models_request_create_failed": "Не удалось создать запрос списка моделей: {{detail}}",
"ai_service.backend.error.models_request_failed": "Не удалось запросить список моделей: {{detail}}",
"ai_service.backend.error.provider_auth_failed": "API Key недействителен или запрос был отклонен (HTTP {{status}}){{body}}",
"ai_service.backend.error.provider_http_server_error": "Вышестоящий сервер вернул внутреннюю ошибку (HTTP {{status}}){{body}}",
"ai_service.backend.error.provider_http_status_failed": "Эндпоинт вернул неожиданный статус (HTTP {{status}}){{body}}",
"ai_service.backend.error.provider_not_configured": "AI Provider не настроен. Сначала настройте его в параметрах.",
"ai_service.backend.error.provider_request_create_failed": "Не удалось создать запрос: {{detail}}",
"ai_service.backend.error.provider_request_serialize_failed": "Не удалось сериализовать запрос: {{detail}}",
"ai_service.backend.error.provider_secret_bundle_parse_failed": "Не удалось разобрать provider secret bundle: {{detail}}",
"ai_service.backend.error.provider_secret_delete_failed": "Не удалось удалить Provider secret: {{detail}}",
"ai_service.backend.error.provider_secret_load_failed": "Не удалось загрузить AI Provider secret (provider={{provider}}): {{detail}}",
"ai_service.backend.error.provider_secret_read_failed": "Не удалось прочитать Provider secret: {{detail}}",
"ai_service.backend.error.provider_secret_save_failed": "Не удалось сохранить Provider secret: {{detail}}",
"ai_service.backend.error.provider_secret_saved_read_failed": "Не удалось прочитать сохраненный Provider secret: {{detail}}",
"ai_service.backend.error.provider_test_failed": "Проверка подключения не удалась: {{detail}}",
"ai_service.backend.error.secret_store_unavailable": "Secret store недоступен: {{detail}}",
"ai_service.backend.error.session_corrupt": "Данные сеанса повреждены",
"ai_service.backend.error.session_delete_failed": "Не удалось удалить сеанс: {{detail}}",
"ai_service.backend.error.session_missing": "Сеанс не существует",
"ai_service.backend.error.session_provider_messages_serialize_failed": "Не удалось сериализовать сообщения провайдера сеанса: {{detail}}",
"ai_service.backend.error.session_serialize_failed": "Не удалось сериализовать данные сеанса: {{detail}}",
"ai_service.backend.error.session_write_failed": "Не удалось сохранить сеанс: {{detail}}",
"ai_service.backend.error.sessions_dir_create_failed": "Не удалось создать каталог sessions: {{detail}}",
"ai_service.backend.error.volcengine_coding_models_empty": "Текущий эндпоинт не вернул доступные модели Volcengine Coding Plan. Проверьте права аккаунта или переключитесь на Provider \"Volcengine Ark\"",
"ai_service.backend.message.mcp_test_success": "Подключение к службе MCP успешно, найдено {{count}} инструментов",
"ai_service.backend.message.provider_test_success": "Проверка подключения к эндпоинту выполнена успешно",
"ai_service.backend.message.skill_unnamed": "Skill без имени",
"ai_service.backend.provider.image_fallback_prompt": "Опишите и проанализируйте это изображение.",
"ai_service.backend.provider.image_omitted_notice": "[Изображение пропущено: текущая модель или вышестоящий API не поддерживает ввод изображений. Переключитесь на модель с поддержкой зрения и отправьте изображение повторно.]",
"ai_service.backend.warning.sql_delete_without_where": "SQL высокого риска: DELETE без WHERE удалит все строки",
"ai_service.backend.warning.sql_drop": "SQL высокого риска: DROP безвозвратно удаляет объекты базы данных",
"ai_service.backend.warning.sql_truncate": "SQL высокого риска: TRUNCATE удаляет все строки из таблицы",
"ai_service.backend.warning.sql_update_without_where": "SQL высокого риска: UPDATE без WHERE обновит все строки",
"ai_settings.action.back": "Назад",
"ai_settings.action.connection_ok": "Подключение в порядке",
"ai_settings.action.retest": "Проверить снова",
"ai_settings.action.save": "Сохранить",
"ai_settings.action.test": "Проверить подключение",
"ai_settings.clipboard.error.unsupported": "Копирование в буфер обмена не поддерживается в текущей среде",
"ai_settings.context.description": "Управляет объемом контекста базы данных, отправляемым AI",
"ai_settings.context.schema_only.desc": "AI получает только структуру таблиц и столбцов",
"ai_settings.context.schema_only.label": "Только схема",
"ai_settings.context.with_results.desc": "Передает последние результаты запросов как контекст",
"ai_settings.context.with_results.label": "С результатами запросов",
"ai_settings.context.with_samples.desc": "Добавляет небольшой объем примеров данных, чтобы AI лучше понимал их особенности",
"ai_settings.context.with_samples.label": "С примерами данных",
"ai_settings.form.api_endpoint": "API Endpoint (URL)",
"ai_settings.form.api_endpoint_placeholder.codebuddy": "Оставьте пустым, чтобы использовать шлюз CodeBuddy CLI по умолчанию",
"ai_settings.form.api_endpoint_required": "Введите корректный URL конечной точки",
"ai_settings.form.api_format": "Формат API",
"ai_settings.form.api_key": "API Key",
"ai_settings.form.api_key_keep_placeholder": "Оставьте пустым, чтобы продолжить использовать сохраненный секрет",
"ai_settings.form.api_key_placeholder": "sk-... / ваш API Key",
"ai_settings.form.api_key_placeholder.codebuddy": "Оставьте пустым для локальной сессии входа или введите API Key / Token для переопределения",
"ai_settings.form.api_key_required": "Введите API Key",
"ai_settings.form.api_key_saved_hint": "API Key уже сохранен. Оставьте поле пустым, чтобы использовать его дальше, или введите новое значение для замены.",
"ai_settings.form.api_key.codebuddy_hint": "Оставьте пустым, чтобы использовать уже выполненный на этом компьютере вход в CodeBuddy CLI; если заполнить, приоритет будет у текущих учётных данных.",
"ai_settings.form.api_key.codebuddy_optional": "API Key / Auth Token (необязательно)",
"ai_settings.form.clear_saved_api_key": "Очистить сохраненный API Key",
"ai_settings.form.model_list": "Список доступных моделей (необязательно)",
"ai_settings.form.model_list_placeholder": "Укажите ID моделей; оставьте пустым, чтобы получить их с сервера",
"ai_settings.form.model_list_placeholder.codebuddy": "Необязательно: заранее укажите частые модели; если оставить пустым, CodeBuddy CLI или сервис выберет автоматически",
"ai_settings.form.model_list_placeholder.cursor": "Необязательно: заранее укажите частые ID моделей Cursor; если оставить пустым, автоматически будет выбрана модель Cursor по умолчанию",
"ai_settings.form.provider_name": "Имя поставщика",
"ai_settings.form.provider_name_placeholder": "Пример: собственная OpenAI-совместимая конечная точка / частная модель",
"ai_settings.form.provider_name_required": "Введите имя",
"ai_settings.form.section.auth_connection": "Аутентификация и подключение",
"ai_settings.form.section.basic": "Основная информация",
"ai_settings.form.section.service_type": "Тип сервиса",
"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.authorization_header_copied": "Authorization Header скопирован",
"ai_settings.mcp_http.message.authorization_header_required": "Сначала запустите службу MCP HTTP, чтобы создать Authorization Header",
"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_copied": "MCP HTTP URL скопирован",
"ai_settings.mcp_http.message.url_unavailable": "Нет MCP HTTP URL для копирования",
"ai_settings.mcp_http.panel.addr_label": "Адрес прослушивания / порт",
"ai_settings.mcp_http.panel.authorization_placeholder": "Bearer gnv_xxx (оставьте пустым для автогенерации)",
"ai_settings.mcp_http.panel.copy_authorization": "Копировать Authorization",
"ai_settings.mcp_http.panel.copy_url": "Копировать URL",
"ai_settings.mcp_http.panel.description": "Для удаленных Agent, таких как OpenClaw и Hermans. После включения служба слушает локальный адрес и открывает только инструменты чтения структуры для подключений, баз данных, таблиц, столбцов и DDL.",
"ai_settings.mcp_http.panel.running_hint": "Служба запущена. Укажите URL и Authorization Header в удаленном MCP-клиенте.",
"ai_settings.mcp_http.panel.status.running": "Запущена",
"ai_settings.mcp_http.panel.status.stopped": "Остановлена",
"ai_settings.mcp_http.panel.stopped_hint": "Можно настроить локальный порт прослушивания и Bearer Token. Если Authorization пустой, при запуске будет создан случайный Token.",
"ai_settings.mcp_http.panel.switch.off": "Выкл.",
"ai_settings.mcp_http.panel.switch.on": "Вкл.",
"ai_settings.mcp_http.panel.title": "Служба GoNavi MCP HTTP",
"ai_settings.mcp_http.status.not_running": "Служба GoNavi MCP HTTP не запущена",
"ai_settings.mcp_server.argument_hints.action_separator": "; ",
"ai_settings.mcp_server.argument_hints.argument_details": "Пояснения по аргументам",
"ai_settings.mcp_server.argument_hints.business_arguments": "Обнаруженные бизнес-аргументы",
"ai_settings.mcp_server.argument_hints.business.access_token.detail": "Передавайте данные аутентификации только если README требует аргумент команды; предпочитайте переменные окружения.",
"ai_settings.mcp_server.argument_hints.business.access_token.label": "Токен доступа",
"ai_settings.mcp_server.argument_hints.business.access_token.value_hint": "Введите реальное значение локально; не вставляйте его в чат или скриншоты.",
"ai_settings.mcp_server.argument_hints.business.api_key.detail": "Передавайте данные аутентификации только если README требует аргумент команды; предпочитайте переменные окружения.",
"ai_settings.mcp_server.argument_hints.business.api_key.label": "API-ключ",
"ai_settings.mcp_server.argument_hints.business.api_key.value_hint": "Введите реальное значение локально; не вставляйте его в чат или скриншоты.",
"ai_settings.mcp_server.argument_hints.business.base_url.detail": "Задает адрес сервиса или точку входа API, нужную MCP-сервису.",
"ai_settings.mcp_server.argument_hints.business.base_url.label": "Базовый URL",
"ai_settings.mcp_server.argument_hints.business.base_url.value_hint": "Введите полный адрес и не встраивайте секреты в URL.",
"ai_settings.mcp_server.argument_hints.business.config_file.detail": "Указывает локальный файл, каталог, репозиторий или исполняемый файл для MCP-сервиса.",
"ai_settings.mcp_server.argument_hints.business.config_file.label": "Файл конфигурации",
"ai_settings.mcp_server.argument_hints.business.config_file.value_hint": "Используйте абсолютный локальный путь и минимально необходимую область доступа.",
"ai_settings.mcp_server.argument_hints.business.config.detail": "Указывает локальный файл, каталог, репозиторий или исполняемый файл для MCP-сервиса.",
"ai_settings.mcp_server.argument_hints.business.config.label": "Файл конфигурации",
"ai_settings.mcp_server.argument_hints.business.config.value_hint": "Используйте абсолютный локальный путь и минимально необходимую область доступа.",
"ai_settings.mcp_server.argument_hints.business.dir.detail": "Указывает локальный файл, каталог, репозиторий или исполняемый файл для MCP-сервиса.",
"ai_settings.mcp_server.argument_hints.business.dir.label": "Каталог",
"ai_settings.mcp_server.argument_hints.business.dir.value_hint": "Используйте абсолютный локальный путь и минимально необходимую область доступа.",
"ai_settings.mcp_server.argument_hints.business.directory.detail": "Указывает локальный файл, каталог, репозиторий или исполняемый файл для MCP-сервиса.",
"ai_settings.mcp_server.argument_hints.business.directory.label": "Разрешенный каталог",
"ai_settings.mcp_server.argument_hints.business.directory.value_hint": "Используйте абсолютный локальный путь и минимально необходимую область доступа.",
"ai_settings.mcp_server.argument_hints.business.endpoint.detail": "Задает адрес сервиса или точку входа API, нужную MCP-сервису.",
"ai_settings.mcp_server.argument_hints.business.endpoint.label": "Конечная точка",
"ai_settings.mcp_server.argument_hints.business.endpoint.value_hint": "Введите полный адрес и не встраивайте секреты в URL.",
"ai_settings.mcp_server.argument_hints.business.executable_path.detail": "Указывает локальный файл, каталог, репозиторий или исполняемый файл для MCP-сервиса.",
"ai_settings.mcp_server.argument_hints.business.executable_path.label": "Путь к браузеру или исполняемому файлу",
"ai_settings.mcp_server.argument_hints.business.executable_path.value_hint": "Используйте абсолютный локальный путь и минимально необходимую область доступа.",
"ai_settings.mcp_server.argument_hints.business.headless.detail": "Управляет поведением запущенного процесса MCP во время выполнения.",
"ai_settings.mcp_server.argument_hints.business.headless.label": "Безголовый режим",
"ai_settings.mcp_server.argument_hints.business.headless.value_hint": "Обычно это флаг; проверьте, нужно ли дополнительное значение.",
"ai_settings.mcp_server.argument_hints.business.host.detail": "Настраивает хост, порт или сетевой параметр MCP-сервиса.",
"ai_settings.mcp_server.argument_hints.business.host.label": "Адрес хоста",
"ai_settings.mcp_server.argument_hints.business.host.value_hint": "Используйте хост или порт из README.",
"ai_settings.mcp_server.argument_hints.business.inferred_endpoint.detail": "Задает адрес сервиса или точку входа API, нужную MCP-сервису.",
"ai_settings.mcp_server.argument_hints.business.inferred_endpoint.label": "Адрес / конечная точка",
"ai_settings.mcp_server.argument_hints.business.inferred_endpoint.value_hint": "Введите полный адрес и не встраивайте секреты в URL.",
"ai_settings.mcp_server.argument_hints.business.inferred_mode.detail": "Управляет транспортом, профилем, правами или режимом запуска MCP-сервиса.",
"ai_settings.mcp_server.argument_hints.business.inferred_mode.label": "Аргумент режима",
"ai_settings.mcp_server.argument_hints.business.inferred_mode.value_hint": "Используйте значение перечисления или смысл флага из README.",
"ai_settings.mcp_server.argument_hints.business.inferred_path.detail": "Указывает локальный файл, каталог, репозиторий или исполняемый файл для MCP-сервиса.",
"ai_settings.mcp_server.argument_hints.business.inferred_path.label": "Путь / конфигурация",
"ai_settings.mcp_server.argument_hints.business.inferred_path.value_hint": "Используйте абсолютный локальный путь и минимально необходимую область доступа.",
"ai_settings.mcp_server.argument_hints.business.mode.detail": "Управляет транспортом, профилем, правами или режимом запуска MCP-сервиса.",
"ai_settings.mcp_server.argument_hints.business.mode.label": "Режим запуска",
"ai_settings.mcp_server.argument_hints.business.mode.value_hint": "Используйте значение перечисления или смысл флага из README.",
"ai_settings.mcp_server.argument_hints.business.password.detail": "Передавайте данные аутентификации только если README требует аргумент команды; предпочитайте переменные окружения.",
"ai_settings.mcp_server.argument_hints.business.password.label": "Пароль",
"ai_settings.mcp_server.argument_hints.business.password.value_hint": "Введите реальное значение локально; не вставляйте его в чат или скриншоты.",
"ai_settings.mcp_server.argument_hints.business.path.detail": "Указывает локальный файл, каталог, репозиторий или исполняемый файл для MCP-сервиса.",
"ai_settings.mcp_server.argument_hints.business.path.label": "Путь",
"ai_settings.mcp_server.argument_hints.business.path.value_hint": "Используйте абсолютный локальный путь и минимально необходимую область доступа.",
"ai_settings.mcp_server.argument_hints.business.port.detail": "Настраивает хост, порт или сетевой параметр MCP-сервиса.",
"ai_settings.mcp_server.argument_hints.business.port.label": "Порт",
"ai_settings.mcp_server.argument_hints.business.port.value_hint": "Используйте хост или порт из README.",
"ai_settings.mcp_server.argument_hints.business.profile.detail": "Управляет транспортом, профилем, правами или режимом запуска MCP-сервиса.",
"ai_settings.mcp_server.argument_hints.business.profile.label": "Профиль",
"ai_settings.mcp_server.argument_hints.business.profile.value_hint": "Используйте значение перечисления или смысл флага из README.",
"ai_settings.mcp_server.argument_hints.business.read_only.detail": "Управляет транспортом, профилем, правами или режимом запуска MCP-сервиса.",
"ai_settings.mcp_server.argument_hints.business.read_only.label": "Режим только чтение",
"ai_settings.mcp_server.argument_hints.business.read_only.value_hint": "Используйте значение перечисления или смысл флага из README.",
"ai_settings.mcp_server.argument_hints.business.readonly.detail": "Управляет транспортом, профилем, правами или режимом запуска MCP-сервиса.",
"ai_settings.mcp_server.argument_hints.business.readonly.label": "Режим только чтение",
"ai_settings.mcp_server.argument_hints.business.readonly.value_hint": "Используйте значение перечисления или смысл флага из README.",
"ai_settings.mcp_server.argument_hints.business.repo.detail": "Указывает локальный файл, каталог, репозиторий или исполняемый файл для MCP-сервиса.",
"ai_settings.mcp_server.argument_hints.business.repo.label": "Путь к репозиторию",
"ai_settings.mcp_server.argument_hints.business.repo.value_hint": "Используйте абсолютный локальный путь и минимально необходимую область доступа.",
"ai_settings.mcp_server.argument_hints.business.root.detail": "Указывает локальный файл, каталог, репозиторий или исполняемый файл для MCP-сервиса.",
"ai_settings.mcp_server.argument_hints.business.root.label": "Корневой каталог",
"ai_settings.mcp_server.argument_hints.business.root.value_hint": "Используйте абсолютный локальный путь и минимально необходимую область доступа.",
"ai_settings.mcp_server.argument_hints.business.secret.detail": "Передавайте данные аутентификации только если README требует аргумент команды; предпочитайте переменные окружения.",
"ai_settings.mcp_server.argument_hints.business.secret.label": "Секрет",
"ai_settings.mcp_server.argument_hints.business.secret.value_hint": "Введите реальное значение локально; не вставляйте его в чат или скриншоты.",
"ai_settings.mcp_server.argument_hints.business.short_config.detail": "Указывает локальный файл, каталог, репозиторий или исполняемый файл для MCP-сервиса.",
"ai_settings.mcp_server.argument_hints.business.short_config.label": "Файл конфигурации",
"ai_settings.mcp_server.argument_hints.business.short_config.value_hint": "Используйте абсолютный локальный путь и минимально необходимую область доступа.",
"ai_settings.mcp_server.argument_hints.business.token.detail": "Передавайте данные аутентификации только если README требует аргумент команды; предпочитайте переменные окружения.",
"ai_settings.mcp_server.argument_hints.business.token.label": "Токен",
"ai_settings.mcp_server.argument_hints.business.token.value_hint": "Введите реальное значение локально; не вставляйте его в чат или скриншоты.",
"ai_settings.mcp_server.argument_hints.business.transport.detail": "Управляет транспортом, профилем, правами или режимом запуска MCP-сервиса.",
"ai_settings.mcp_server.argument_hints.business.transport.label": "Режим транспорта",
"ai_settings.mcp_server.argument_hints.business.transport.value_hint": "Используйте значение перечисления или смысл флага из README.",
"ai_settings.mcp_server.argument_hints.business.url.detail": "Задает адрес сервиса или точку входа API, нужную MCP-сервису.",
"ai_settings.mcp_server.argument_hints.business.url.label": "URL сервиса",
"ai_settings.mcp_server.argument_hints.business.url.value_hint": "Введите полный адрес и не встраивайте секреты в URL.",
"ai_settings.mcp_server.argument_hints.business.workspace.detail": "Указывает локальный файл, каталог, репозиторий или исполняемый файл для MCP-сервиса.",
"ai_settings.mcp_server.argument_hints.business.workspace.label": "Каталог рабочей области",
"ai_settings.mcp_server.argument_hints.business.workspace.value_hint": "Используйте абсолютный локальный путь и минимально необходимую область доступа.",
"ai_settings.mcp_server.argument_hints.category.endpoint": "Адрес",
"ai_settings.mcp_server.argument_hints.category.generic": "Бизнес",
"ai_settings.mcp_server.argument_hints.category.mode": "Режим",
"ai_settings.mcp_server.argument_hints.category.network": "Сеть",
"ai_settings.mcp_server.argument_hints.category.path": "Путь",
"ai_settings.mcp_server.argument_hints.category.runtime": "Среда выполнения",
"ai_settings.mcp_server.argument_hints.category.secret": "Секретное",
"ai_settings.mcp_server.argument_hints.command_field_warning": "В поле команды запуска все еще есть {{count}} аргументов: {{args}}. Оставьте в command только {{command}}, а остальные перенесите в аргументы команды.",
"ai_settings.mcp_server.argument_hints.current_command": "Подсказки аргументов для текущей команды {{command}}",
"ai_settings.mcp_server.argument_hints.detail.docker_cleanup.detail": "Это значение передается процессу MCP как аргумент запуска. Проверьте README и текущий порядок.",
"ai_settings.mcp_server.argument_hints.detail.docker_cleanup.label": "Удалить контейнер после завершения",
"ai_settings.mcp_server.argument_hints.detail.docker_cleanup.value_hint": "Введите значение, соответствующее примеру из README.",
"ai_settings.mcp_server.argument_hints.detail.docker_image_or_arg.detail": "Это значение передается процессу MCP как аргумент запуска. Проверьте README и текущий порядок.",
"ai_settings.mcp_server.argument_hints.detail.docker_image_or_arg.label": "Образ Docker или аргумент контейнера",
"ai_settings.mcp_server.argument_hints.detail.docker_image_or_arg.value_hint": "Введите значение, соответствующее примеру из README.",
"ai_settings.mcp_server.argument_hints.detail.docker_interactive.detail": "Это значение передается процессу MCP как аргумент запуска. Проверьте README и текущий порядок.",
"ai_settings.mcp_server.argument_hints.detail.docker_interactive.label": "Сохранить стандартный ввод",
"ai_settings.mcp_server.argument_hints.detail.docker_interactive.value_hint": "Введите значение, соответствующее примеру из README.",
"ai_settings.mcp_server.argument_hints.detail.docker_run.detail": "Это значение передается процессу MCP как аргумент запуска. Проверьте README и текущий порядок.",
"ai_settings.mcp_server.argument_hints.detail.docker_run.label": "Подкоманда Docker run",
"ai_settings.mcp_server.argument_hints.detail.docker_run.value_hint": "Введите значение, соответствующее примеру из README.",
"ai_settings.mcp_server.argument_hints.detail.npm_package_or_arg.detail": "Это значение передается процессу MCP как аргумент запуска. Проверьте README и текущий порядок.",
"ai_settings.mcp_server.argument_hints.detail.npm_package_or_arg.label": "Пакет MCP или позиционный аргумент",
"ai_settings.mcp_server.argument_hints.detail.npm_package_or_arg.value_hint": "Введите значение, соответствующее примеру из README.",
"ai_settings.mcp_server.argument_hints.detail.positional.detail": "Это значение передается процессу MCP как аргумент запуска. Проверьте README и текущий порядок.",
"ai_settings.mcp_server.argument_hints.detail.positional.label": "Позиционный аргумент",
"ai_settings.mcp_server.argument_hints.detail.positional.value_hint": "Введите значение, соответствующее примеру из README.",
"ai_settings.mcp_server.argument_hints.detail.python_module_flag.detail": "Это значение передается процессу MCP как аргумент запуска. Проверьте README и текущий порядок.",
"ai_settings.mcp_server.argument_hints.detail.python_module_flag.label": "Запуск модуля Python",
"ai_settings.mcp_server.argument_hints.detail.python_module_flag.value_hint": "Введите значение, соответствующее примеру из README.",
"ai_settings.mcp_server.argument_hints.detail.python_module_name.detail": "Это значение передается процессу MCP как аргумент запуска. Проверьте README и текущий порядок.",
"ai_settings.mcp_server.argument_hints.detail.python_module_name.label": "Имя модуля Python",
"ai_settings.mcp_server.argument_hints.detail.python_module_name.value_hint": "Введите значение, соответствующее примеру из README.",
"ai_settings.mcp_server.argument_hints.detail.python_script_or_arg.detail": "Это значение передается процессу MCP как аргумент запуска. Проверьте README и текущий порядок.",
"ai_settings.mcp_server.argument_hints.detail.python_script_or_arg.label": "Скрипт Python или позиционный аргумент",
"ai_settings.mcp_server.argument_hints.detail.python_script_or_arg.value_hint": "Введите значение, соответствующее примеру из README.",
"ai_settings.mcp_server.argument_hints.detail.script_or_arg.detail": "Это значение передается процессу MCP как аргумент запуска. Проверьте README и текущий порядок.",
"ai_settings.mcp_server.argument_hints.detail.script_or_arg.label": "Скрипт или позиционный аргумент",
"ai_settings.mcp_server.argument_hints.detail.script_or_arg.value_hint": "Введите значение, соответствующее примеру из README.",
"ai_settings.mcp_server.argument_hints.detail.sensitive_value_detail": "Это чувствительное значение предыдущего аргумента {{argument}}; в подсказке оно маскируется.",
"ai_settings.mcp_server.argument_hints.detail.skip_install_confirm.detail": "Это значение передается процессу MCP как аргумент запуска. Проверьте README и текущий порядок.",
"ai_settings.mcp_server.argument_hints.detail.skip_install_confirm.label": "Пропустить подтверждение установки",
"ai_settings.mcp_server.argument_hints.detail.skip_install_confirm.value_hint": "Введите значение, соответствующее примеру из README.",
"ai_settings.mcp_server.argument_hints.detail.stdio.detail": "Это значение передается процессу MCP как аргумент запуска. Проверьте README и текущий порядок.",
"ai_settings.mcp_server.argument_hints.detail.stdio.label": "Режим связи stdio",
"ai_settings.mcp_server.argument_hints.detail.stdio.value_hint": "Введите значение, соответствующее примеру из README.",
"ai_settings.mcp_server.argument_hints.detail.uvx_package_or_arg.detail": "Это значение передается процессу MCP как аргумент запуска. Проверьте README и текущий порядок.",
"ai_settings.mcp_server.argument_hints.detail.uvx_package_or_arg.label": "Пакет Python MCP или позиционный аргумент",
"ai_settings.mcp_server.argument_hints.detail.uvx_package_or_arg.value_hint": "Введите значение, соответствующее примеру из README.",
"ai_settings.mcp_server.argument_hints.detail.value_detail": "Это значение предыдущего аргумента {{argument}}.",
"ai_settings.mcp_server.argument_hints.detail.value_label": "Значение {{label}}",
"ai_settings.mcp_server.argument_hints.dont_screenshot": "Не делайте скриншот реального значения",
"ai_settings.mcp_server.argument_hints.fill_missing_required": "Добавить недостающие обязательные аргументы: {{args}}",
"ai_settings.mcp_server.argument_hints.generic.detail": "GoNavi не может вывести бизнес-смысл --{{flag}} по имени аргумента, но передаст его процессу MCP в текущем порядке.",
"ai_settings.mcp_server.argument_hints.generic.label": "Нераспознанный аргумент",
"ai_settings.mcp_server.argument_hints.generic.value_hint": "Проверьте в MCP README, нужен ли этому аргументу параметр; если нужен, укажите значение следующим тегом аргумента или используйте --name=value.",
"ai_settings.mcp_server.argument_hints.hidden_value": "<скрыто>",
"ai_settings.mcp_server.argument_hints.masked_value": "Значение скрыто",
"ai_settings.mcp_server.argument_hints.next_action.add_step": "Добавьте {{label}}, пример: {{example}}",
"ai_settings.mcp_server.argument_hints.next_actions": "Далее: {{actions}}",
"ai_settings.mcp_server.argument_hints.possible_secret_hidden": "<возможный секрет скрыт>",
"ai_settings.mcp_server.argument_hints.profile.docker.order": "Рекомендуемый порядок: run -> --rm -> -i -> -e KEY=VALUE -> имя образа -> аргументы сервиса",
"ai_settings.mcp_server.argument_hints.profile.docker.summary": "Для Docker в command оставьте только docker; run, -i, --rm, имя образа и аргументы контейнера укажите в args.",
"ai_settings.mcp_server.argument_hints.profile.docker.title": "Порядок аргументов Docker MCP",
"ai_settings.mcp_server.argument_hints.profile.executable.order": "Обычный порядок: stdio/--stdio -> файл конфигурации или аргумент сервиса",
"ai_settings.mcp_server.argument_hints.profile.executable.summary": "Для собственных или скомпилированных MCP-серверов следуйте README; GoNavi передает аргументы без изменений в порядке тегов.",
"ai_settings.mcp_server.argument_hints.profile.executable.title": "Подсказки для локального исполняемого файла",
"ai_settings.mcp_server.argument_hints.profile.node.order": "Рекомендуемый порядок: путь скрипта -> --stdio -> аргументы сервиса",
"ai_settings.mcp_server.argument_hints.profile.node.summary": "Для Node-пускателей в command оставьте только node/bun/deno; путь скрипта и --stdio укажите в args.",
"ai_settings.mcp_server.argument_hints.profile.node.title": "Порядок аргументов Node-скрипта",
"ai_settings.mcp_server.argument_hints.profile.npm.order": "Рекомендуемый порядок: -y -> пакет -> --stdio -> аргументы сервиса",
"ai_settings.mcp_server.argument_hints.profile.npm.summary": "MCP-серверам npm обычно нужны отдельные аргументы для подтверждения, имени пакета и --stdio.",
"ai_settings.mcp_server.argument_hints.profile.npm.title": "Порядок аргументов npx / npm",
"ai_settings.mcp_server.argument_hints.profile.python.order": "Рекомендуемый порядок: -m -> имя модуля -> --stdio",
"ai_settings.mcp_server.argument_hints.profile.python.summary": "MCP-серверы Python часто используют python -m module_name; -m и имя модуля должны быть отдельными аргументами.",
"ai_settings.mcp_server.argument_hints.profile.python.title": "Порядок аргументов Python",
"ai_settings.mcp_server.argument_hints.profile.uvx.order": "Рекомендуемый порядок: пакет -> --stdio -> аргументы сервиса",
"ai_settings.mcp_server.argument_hints.profile.uvx.summary": "MCP-серверы uvx обычно сначала указывают пакет, затем добавляют stdio или конфигурационные аргументы из README.",
"ai_settings.mcp_server.argument_hints.profile.uvx.title": "Порядок аргументов uvx",
"ai_settings.mcp_server.argument_hints.required_complete": "Похоже, обязательные аргументы заполнены. Если тест не пройдет, сверьте бизнес-аргументы и переменные окружения с README.",
"ai_settings.mcp_server.argument_hints.split_inline_args": "Разделить поле команды запуска: оставить {{command}}, перенести аргументов: {{count}}",
"ai_settings.mcp_server.argument_hints.step.business.detail": "Следуйте примеру запуска из README и укажите этот аргумент отдельным тегом.",
"ai_settings.mcp_server.argument_hints.step.business.label": "Аргумент сервиса",
"ai_settings.mcp_server.argument_hints.step.cleanup.detail": "Следуйте примеру запуска из README и укажите этот аргумент отдельным тегом.",
"ai_settings.mcp_server.argument_hints.step.cleanup.label": "Удалить контейнер после завершения",
"ai_settings.mcp_server.argument_hints.step.container-env.detail": "Следуйте примеру запуска из README и укажите этот аргумент отдельным тегом.",
"ai_settings.mcp_server.argument_hints.step.container-env.label": "Переменная окружения контейнера",
"ai_settings.mcp_server.argument_hints.step.image.detail": "Следуйте примеру запуска из README и укажите этот аргумент отдельным тегом.",
"ai_settings.mcp_server.argument_hints.step.image.label": "Имя образа",
"ai_settings.mcp_server.argument_hints.step.interactive.detail": "Следуйте примеру запуска из README и укажите этот аргумент отдельным тегом.",
"ai_settings.mcp_server.argument_hints.step.interactive.label": "Сохранить стандартный ввод",
"ai_settings.mcp_server.argument_hints.step.module-flag.detail": "Следуйте примеру запуска из README и укажите этот аргумент отдельным тегом.",
"ai_settings.mcp_server.argument_hints.step.module-flag.label": "Флаг модуля или скрипт",
"ai_settings.mcp_server.argument_hints.step.module-name.detail": "Следуйте примеру запуска из README и укажите этот аргумент отдельным тегом.",
"ai_settings.mcp_server.argument_hints.step.module-name.label": "Имя модуля",
"ai_settings.mcp_server.argument_hints.step.package.detail": "Следуйте примеру запуска из README и укажите этот аргумент отдельным тегом.",
"ai_settings.mcp_server.argument_hints.step.package.label": "Имя пакета MCP",
"ai_settings.mcp_server.argument_hints.step.run.detail": "Следуйте примеру запуска из README и укажите этот аргумент отдельным тегом.",
"ai_settings.mcp_server.argument_hints.step.run.label": "Подкоманда run",
"ai_settings.mcp_server.argument_hints.step.scope.detail": "Следуйте примеру запуска из README и укажите этот аргумент отдельным тегом.",
"ai_settings.mcp_server.argument_hints.step.scope.label": "Разрешенный каталог или аргумент сервиса",
"ai_settings.mcp_server.argument_hints.step.script.detail": "Следуйте примеру запуска из README и укажите этот аргумент отдельным тегом.",
"ai_settings.mcp_server.argument_hints.step.script.label": "Путь скрипта",
"ai_settings.mcp_server.argument_hints.step.stdio.detail": "Следуйте примеру запуска из README и укажите этот аргумент отдельным тегом.",
"ai_settings.mcp_server.argument_hints.step.stdio.label": "Аргумент stdio",
"ai_settings.mcp_server.argument_hints.step.yes.detail": "Следуйте примеру запуска из README и укажите этот аргумент отдельным тегом.",
"ai_settings.mcp_server.argument_hints.step.yes.label": "Пропустить подтверждение установки",
"ai_settings.mcp_server.argument_hints.value_hint_prefix": "Указать: ",
"ai_settings.mcp_server.command_parse.error.empty": "Сначала вставьте полную команду.",
"ai_settings.mcp_server.command_parse.error.failed": "Не удалось разобрать полную команду. Проверьте формат команды.",
"ai_settings.mcp_server.command_parse.error.missing_command": "Команда запуска не распознана. Укажите хотя бы имя исполняемого файла.",
"ai_settings.mcp_server.command_parse.error.unclosed_quote": "В команде есть незакрытая кавычка. Проверьте её и повторите попытку.",
"ai_settings.mcp_server.command_preview.args_count": "Будет создано отдельных тегов аргументов: {{count}}.",
"ai_settings.mcp_server.command_preview.args_empty": "В этой команде не обнаружены дополнительные аргументы.",
"ai_settings.mcp_server.command_preview.args_title": "Аргументы команды",
"ai_settings.mcp_server.command_preview.command_hint": "Здесь остается только сам исполняемый файл.",
"ai_settings.mcp_server.command_preview.command_title": "Команда запуска",
"ai_settings.mcp_server.command_preview.description": "После нажатия «Автоматически разнести по полям ниже» этот результат разбора будет записан в область настройки запуска под именем службы.",
"ai_settings.mcp_server.command_preview.empty_value": "Нет",
"ai_settings.mcp_server.command_preview.env_count": "Будет записано переменных окружения: {{count}}.",
"ai_settings.mcp_server.command_preview.env_empty": "В этой команде не обнаружены переменные окружения в префиксе.",
"ai_settings.mcp_server.command_preview.env_title": "Переменные окружения",
"ai_settings.mcp_server.command_preview.title": "Предпросмотр автоматического разбиения",
"ai_settings.mcp_server.draft.default_name": "Служба MCP",
"ai_settings.mcp_server.env_hints.action_separator": "; ",
"ai_settings.mcp_server.env_hints.category.endpoint": "Адрес",
"ai_settings.mcp_server.env_hints.category.generic": "Пользовательское",
"ai_settings.mcp_server.env_hints.category.path": "Путь",
"ai_settings.mcp_server.env_hints.category.proxy": "Прокси",
"ai_settings.mcp_server.env_hints.category.runtime": "Среда выполнения",
"ai_settings.mcp_server.env_hints.category.secret": "Секрет",
"ai_settings.mcp_server.env_hints.empty_value": " Текущее значение пустое.",
"ai_settings.mcp_server.env_hints.inferred.endpoint.detail": "The variable name looks like a service URL, API endpoint, or host configuration.",
"ai_settings.mcp_server.env_hints.inferred.endpoint.label": "Сервисный endpoint",
"ai_settings.mcp_server.env_hints.inferred.endpoint.value_hint": "Enter the URL, host, or endpoint the MCP Server needs to access.",
"ai_settings.mcp_server.env_hints.inferred.generic.detail": "No built-in variable hint matched; follow the matching field description in the MCP README.",
"ai_settings.mcp_server.env_hints.inferred.generic.label": "Пользовательская конфигурация",
"ai_settings.mcp_server.env_hints.inferred.generic.value_hint": "Confirm the variable name casing exactly matches the README.",
"ai_settings.mcp_server.env_hints.inferred.path.detail": "The variable name looks like a local path, directory, or config file location.",
"ai_settings.mcp_server.env_hints.inferred.path.label": "Путь / файл конфигурации",
"ai_settings.mcp_server.env_hints.inferred.path.value_hint": "Enter an absolute path accessible to the local MCP process; keep the drive letter for Windows paths.",
"ai_settings.mcp_server.env_hints.inferred.proxy.detail": "The variable name looks like a network proxy setting.",
"ai_settings.mcp_server.env_hints.inferred.proxy.label": "Конфигурация прокси",
"ai_settings.mcp_server.env_hints.inferred.proxy.value_hint": "Follow the README or enterprise proxy format, for example http://127.0.0.1:7890.",
"ai_settings.mcp_server.env_hints.inferred.runtime.detail": "The variable name looks like a runtime environment, logging, or debug switch.",
"ai_settings.mcp_server.env_hints.inferred.runtime.label": "Переключатель среды выполнения",
"ai_settings.mcp_server.env_hints.inferred.runtime.value_hint": "Use the enum value specified by the README.",
"ai_settings.mcp_server.env_hints.inferred.secret.detail": "The variable name looks like a secret, token, password, or connection string.",
"ai_settings.mcp_server.env_hints.inferred.secret.label": "Секрет / Token",
"ai_settings.mcp_server.env_hints.inferred.secret.value_hint": "Enter the real value, but keep it only in local MCP configuration; do not put it in command, args, or chat content.",
"ai_settings.mcp_server.env_hints.known.anthropic_api_key.detail": "Used by MCP services that depend on the Anthropic Claude API.",
"ai_settings.mcp_server.env_hints.known.anthropic_api_key.label": "Anthropic API Key",
"ai_settings.mcp_server.env_hints.known.anthropic_api_key.value_hint": "Enter the real API Key only after confirming the service requires this variable.",
"ai_settings.mcp_server.env_hints.known.database_url.detail": "Lets the MCP service connect to a database itself; this gives database connection information to that MCP process.",
"ai_settings.mcp_server.env_hints.known.database_url.label": "Строка подключения к базе данных",
"ai_settings.mcp_server.env_hints.known.database_url.value_hint": "Fill this only when the MCP must connect to the database directly; prefer GoNavi MCP to avoid password exposure.",
"ai_settings.mcp_server.env_hints.known.docker_host.detail": "Tells the docker CLI which Docker Engine to connect to.",
"ai_settings.mcp_server.env_hints.known.docker_host.label": "Адрес Docker Daemon",
"ai_settings.mcp_server.env_hints.known.docker_host.value_hint": "Common on Windows: npipe:////./pipe/docker_engine; confirm security boundaries for remote Docker.",
"ai_settings.mcp_server.env_hints.known.gemini_api_key.detail": "Used by MCP services that depend on the Google Gemini API.",
"ai_settings.mcp_server.env_hints.known.gemini_api_key.label": "Gemini API Key",
"ai_settings.mcp_server.env_hints.known.gemini_api_key.value_hint": "Enter the real API Key; some services may require GOOGLE_API_KEY instead.",
"ai_settings.mcp_server.env_hints.known.github_token.detail": "Usually used by GitHub MCP services to read repositories, issues, pull requests, or Actions.",
"ai_settings.mcp_server.env_hints.known.github_token.label": "GitHub Token",
"ai_settings.mcp_server.env_hints.known.github_token.value_hint": "Enter a GitHub Personal Access Token with the minimum permissions required by the MCP README.",
"ai_settings.mcp_server.env_hints.known.gitlab_token.detail": "Usually used by GitLab MCP services to access projects, merge requests, or CI.",
"ai_settings.mcp_server.env_hints.known.gitlab_token.label": "GitLab Token",
"ai_settings.mcp_server.env_hints.known.gitlab_token.value_hint": "Enter a GitLab Access Token and restrict it to the required project scope.",
"ai_settings.mcp_server.env_hints.known.gonavi_mcp_http_token.detail": "Used when a remote MCP HTTP service enables Bearer Token authentication.",
"ai_settings.mcp_server.env_hints.known.gonavi_mcp_http_token.label": "GoNavi MCP HTTP Token",
"ai_settings.mcp_server.env_hints.known.gonavi_mcp_http_token.value_hint": "Enter a high-entropy random token; do not reuse database passwords or model API Keys.",
"ai_settings.mcp_server.env_hints.known.google_api_key.detail": "Used by Google, Gemini, Maps, or Search MCP services.",
"ai_settings.mcp_server.env_hints.known.google_api_key.label": "Google API Key",
"ai_settings.mcp_server.env_hints.known.google_api_key.value_hint": "Enter the real API Key and confirm whether the README requires GOOGLE_API_KEY or GEMINI_API_KEY.",
"ai_settings.mcp_server.env_hints.known.http_proxy.detail": "Routes HTTP resource access from the MCP process through the specified proxy.",
"ai_settings.mcp_server.env_hints.known.http_proxy.label": "HTTP-прокси",
"ai_settings.mcp_server.env_hints.known.http_proxy.value_hint": "Enter http://host:port; treat it as sensitive if the proxy includes a username or password.",
"ai_settings.mcp_server.env_hints.known.https_proxy.detail": "Routes HTTPS resource access from the MCP process through the specified proxy.",
"ai_settings.mcp_server.env_hints.known.https_proxy.label": "HTTPS-прокси",
"ai_settings.mcp_server.env_hints.known.https_proxy.value_hint": "Enter http://host:port or https://host:port.",
"ai_settings.mcp_server.env_hints.known.log_level.detail": "Controls how much log output the MCP service emits.",
"ai_settings.mcp_server.env_hints.known.log_level.label": "Уровень логирования",
"ai_settings.mcp_server.env_hints.known.log_level.value_hint": "Common values are debug, info, warn, and error; temporarily raise it for troubleshooting.",
"ai_settings.mcp_server.env_hints.known.no_proxy.detail": "Specifies which domains or addresses should bypass the proxy.",
"ai_settings.mcp_server.env_hints.known.no_proxy.label": "Список обхода прокси",
"ai_settings.mcp_server.env_hints.known.no_proxy.value_hint": "Use comma-separated entries, for example localhost,127.0.0.1,.corp.local.",
"ai_settings.mcp_server.env_hints.known.node_env.detail": "Affects logging, debugging, or production mode for some Node MCP services.",
"ai_settings.mcp_server.env_hints.known.node_env.label": "Среда выполнения Node",
"ai_settings.mcp_server.env_hints.known.node_env.value_hint": "Usually production, development, or a value specified by the README.",
"ai_settings.mcp_server.env_hints.known.notion_api_key.detail": "Used by Notion MCP services to access pages, databases, or workspace content.",
"ai_settings.mcp_server.env_hints.known.notion_api_key.label": "Notion API Key",
"ai_settings.mcp_server.env_hints.known.notion_api_key.value_hint": "Enter the Notion integration secret and authorize only the required pages.",
"ai_settings.mcp_server.env_hints.known.openai_api_key.detail": "Used by MCP services that depend on OpenAI APIs for model or embedding calls.",
"ai_settings.mcp_server.env_hints.known.openai_api_key.label": "OpenAI API Key",
"ai_settings.mcp_server.env_hints.known.openai_api_key.value_hint": "Enter the real API Key; do not put it in command, args, or chat messages.",
"ai_settings.mcp_server.env_hints.known.slack_bot_token.detail": "Used by Slack MCP services to read channels, messages, or send notifications.",
"ai_settings.mcp_server.env_hints.known.slack_bot_token.label": "Slack Bot Token",
"ai_settings.mcp_server.env_hints.known.slack_bot_token.value_hint": "Enter the Bot Token starting with xoxb- and restrict workspace permissions.",
"ai_settings.mcp_server.env_hints.next_action.docker_env": "Если MCP внутри контейнера нужны эти переменные, добавьте в args -e KEY=VALUE или --env KEY=VALUE согласно README.",
"ai_settings.mcp_server.env_hints.next_action.empty": "Заполните значения для {{keys}} или удалите ненужные переменные.",
"ai_settings.mcp_server.env_hints.next_action.keys_recognized": "key переменных окружения распознаются; при сбое теста сначала проверьте регистр имён переменных из README.",
"ai_settings.mcp_server.env_hints.next_action.placeholder": "Замените {{keys}} реальными значениями перед тестированием обнаружения инструментов.",
"ai_settings.mcp_server.env_hints.next_action.secrets_local": "Переменные, похожие на секреты, хранятся только в локальной конфигурации; не отправляйте реальные значения в чат, Issue или скриншоты.",
"ai_settings.mcp_server.env_hints.next_actions": "Далее: {{actions}}",
"ai_settings.mcp_server.env_hints.placeholder_value": " Текущее значение похоже на пример-заполнитель.",
"ai_settings.mcp_server.env_hints.recognized": "Распознано",
"ai_settings.mcp_server.env_hints.summary": "Обнаружено переменных: {{envVarCount}}; {{secretLikeCount}} похожи на секреты. Здесь объясняются только назначение и риск key; value не показывается.",
"ai_settings.mcp_server.env_hints.title": "Подсказки по назначению переменных окружения",
"ai_settings.mcp_server.env_hints.value_hint_prefix": "Указать: ",
"ai_settings.mcp_server.env_hints.warning_prefix": "Внимание: {{warnings}}",
"ai_settings.mcp_server.env_hints.warning.docker_env_not_forwarded": "При command=docker эти переменные окружения передаются только в docker CLI и не попадают в контейнер автоматически.",
"ai_settings.mcp_server.env_hints.warning.empty": "{{count}} значений переменных окружения пустые; заполните или удалите их перед тестированием.",
"ai_settings.mcp_server.env_hints.warning.placeholder": "{{count}} переменных окружения всё ещё похожи на пример-заполнитель.",
"ai_settings.mcp_server.form.action.delete": "Удалить",
"ai_settings.mcp_server.form.action.delete_cancel": "Отмена",
"ai_settings.mcp_server.form.action.delete_confirm": "Удалить этот MCP-сервис?",
"ai_settings.mcp_server.form.action.delete_ok": "Удалить",
"ai_settings.mcp_server.form.action.save": "Сохранить",
"ai_settings.mcp_server.form.action.test": "Тест обнаружения инструментов",
"ai_settings.mcp_server.form.args.description": "Вводите каждый аргумент отдельным тегом; саму команду сюда не помещайте. Для npx -y package --stdio разделите -y, package и --stdio. Для node server.js --stdio разделите server.js и --stdio. Для docker run --rm -i image разделите run, --rm, -i и имя образа. Если не уверены, сначала используйте поле полной команды выше для автоматического разбиения.",
"ai_settings.mcp_server.form.args.placeholder": "Аргументы команды, Enter для добавления, например: -y / package / --stdio",
"ai_settings.mcp_server.form.args.title": "Аргументы команды",
"ai_settings.mcp_server.form.command.description": "Укажите здесь только саму команду. Для запускателей вроде npx/node/uvx/python/docker поместите имя пакета, скрипта, модуля или аргументы docker run в поле аргументов ниже. Не вставляйте сюда всю строку npx -y package --stdio, node server.js --stdio или docker run -i image.",
"ai_settings.mcp_server.form.command.placeholder": "Команда запуска, например: npx / node / uvx / python / docker",
"ai_settings.mcp_server.form.command.title": "Команда запуска",
"ai_settings.mcp_server.form.enabled.description": "Если временно не используется, его можно отключить; конфигурация сохранится, но не будет участвовать в обнаружении AI-инструментов.",
"ai_settings.mcp_server.form.enabled.option.disabled": "Отключено",
"ai_settings.mcp_server.form.enabled.option.enabled": "Включено",
"ai_settings.mcp_server.form.enabled.title": "Состояние включения",
"ai_settings.mcp_server.form.env_status.empty": "Каждая строка должна быть KEY=VALUE; строки без знака равенства или с пробелами в key не сохраняются.",
"ai_settings.mcp_server.form.env_status.invalid": "Обнаружено переменных окружения: {{validCount}}; также {{invalidCount}} недопустимых строк не будут сохранены сейчас: {{invalidLines}}",
"ai_settings.mcp_server.form.env_status.valid": "Обнаружено переменных окружения: {{count}}.",
"ai_settings.mcp_server.form.env.description": "Одна строка KEY=VALUE на переменную, обычно для API Key, рабочей директории, адреса сервиса и похожих настроек. Если не нужно, оставьте пустым. Эти значения сохраняются в локальной конфигурации и передаются как переменные окружения при запуске MCP-процесса; не пишите export и не помещайте секреты в чат.",
"ai_settings.mcp_server.form.env.placeholder": "Переменные окружения, одна строка KEY=VALUE на переменную, например:\nOPENAI_API_KEY=...\nGITHUB_TOKEN=...",
"ai_settings.mcp_server.form.env.title": "Переменные окружения",
"ai_settings.mcp_server.form.instructions.save_description": "записывает этот MCP в локальную конфигурацию для долгосрочного использования.",
"ai_settings.mcp_server.form.instructions.save_title": "Сохранить",
"ai_settings.mcp_server.form.instructions.test_description": "один раз запускает сервис с текущими полями, проверяет обнаруженные инструменты и не сохраняет конфигурацию.",
"ai_settings.mcp_server.form.instructions.test_first": "Сначала успешно протестируйте, затем сохраняйте; после успешного теста выше появятся фактически обнаруженные инструменты этого сервиса.",
"ai_settings.mcp_server.form.instructions.test_title": "Тест обнаружения инструментов",
"ai_settings.mcp_server.form.instructions.title": "Подсказки действий",
"ai_settings.mcp_server.form.instructions.tools_found": "Инструменты выше — это alias из последнего успешного теста.",
"ai_settings.mcp_server.form.launch_preview.description": "GoNavi запустит процесс в форме ниже, чтобы вы могли проверить правильность разделения команды и аргументов.",
"ai_settings.mcp_server.form.launch_preview.title": "Предпросмотр фактической команды запуска",
"ai_settings.mcp_server.form.name.description": "Задайте этому MCP понятное имя. Позже оно будет напрямую показано в списке AI-инструментов. Избегайте неясных имен вроде server или test.",
"ai_settings.mcp_server.form.name.placeholder": "Имя сервиса, например: Filesystem / Browser / GitHub",
"ai_settings.mcp_server.form.name.title": "Имя сервиса",
"ai_settings.mcp_server.form.timeout.description": "Максимальное ожидание одного обнаружения инструмента или вызова инструмента. Для большинства локальных инструментов достаточно 20 секунд по умолчанию; увеличьте значение для удаленных сервисов или медленно стартующих скриптов.",
"ai_settings.mcp_server.form.timeout.placeholder": "Тайм-аут (секунды)",
"ai_settings.mcp_server.form.timeout.preset.default": "По умолчанию 20 секунд",
"ai_settings.mcp_server.form.timeout.preset.relaxed": "Свободнее 45 секунд",
"ai_settings.mcp_server.form.timeout.preset.slow": "Медленный старт 60 секунд",
"ai_settings.mcp_server.form.timeout.title": "Тайм-аут (секунды)",
"ai_settings.mcp_server.form.transport.description": "Сейчас поддерживается только stdio. GoNavi запускает этот процесс локально и обменивается данными через стандартный ввод и вывод.",
"ai_settings.mcp_server.form.transport.title": "Транспорт",
"ai_settings.mcp_server.guide.examples.description": "В поле команды запуска указывайте только сам исполняемый файл. Не смешивайте аргументы с командой. Частые варианты:",
"ai_settings.mcp_server.guide.examples.title": "Примеры заполнения",
"ai_settings.mcp_server.guide.field_lookup.description": "Если непонятно, что вводить в поле параметра, начните отсюда. Для каждого поля ниже есть конкретные примеры и предостережения.",
"ai_settings.mcp_server.guide.field_lookup.title": "Краткая справка по полям",
"ai_settings.mcp_server.guide.field.args.avoid": "Не вводите npx/node/uvx/python/docker повторно и не вставляйте несколько аргументов одной длинной строкой.",
"ai_settings.mcp_server.guide.field.args.detail": "npx -y pkg --stdio разделяется на -y, pkg и --stdio. docker run --rm -i image разделяется на run, --rm, -i и image.",
"ai_settings.mcp_server.guide.field.args.fill": "Вводите -y, имя пакета, имя скрипта, -m, --stdio, run, --rm, -i, имя образа и похожие аргументы по одному.",
"ai_settings.mcp_server.guide.field.args.summary": "Разделите имена скриптов, модулей и флаги на отдельные элементы.",
"ai_settings.mcp_server.guide.field.args.title": "Аргументы команды",
"ai_settings.mcp_server.guide.field.avoid_label": "Не указывать: ",
"ai_settings.mcp_server.guide.field.command.avoid": "Не вводите всю командную строку, например npx -y pkg --stdio.",
"ai_settings.mcp_server.guide.field.command.detail": "Частые значения: npx, node, uvx, python и docker. Имена пакетов, имена скриптов, run, -i и --stdio должны быть в аргументах.",
"ai_settings.mcp_server.guide.field.command.fill": "Введите npx, node, uvx, python, docker или абсолютный путь к exe.",
"ai_settings.mcp_server.guide.field.command.summary": "Указывайте только имя программы или сам launcher.",
"ai_settings.mcp_server.guide.field.command.title": "Команда запуска",
"ai_settings.mcp_server.guide.field.enabled.avoid": "Не удаляйте сервис только для временной паузы, иначе придётся заново настраивать command, args и env.",
"ai_settings.mcp_server.guide.field.enabled.detail": "Отключение только прекращает использование. Заполненная ниже конфигурация не удаляется.",
"ai_settings.mcp_server.guide.field.enabled.example": "Включено / Отключено",
"ai_settings.mcp_server.guide.field.enabled.fill": "Выберите отключено, если сервис временно не нужен; выберите включено, когда AI должен его использовать.",
"ai_settings.mcp_server.guide.field.enabled.summary": "Определяет, участвует ли эта конфигурация сейчас в обнаружении и вызовах инструментов.",
"ai_settings.mcp_server.guide.field.enabled.title": "Состояние включения",
"ai_settings.mcp_server.guide.field.env.avoid": "Не пишите export, set или префикс $env:, и не смешивайте переменные окружения с command или args.",
"ai_settings.mcp_server.guide.field.env.detail": "Обычно используются для API Key, URL сервиса, рабочего каталога и похожих значений. Одна переменная на строку; не пишите export.",
"ai_settings.mcp_server.guide.field.env.fill": "Одна строка KEY=VALUE на переменную, например GITHUB_TOKEN=....",
"ai_settings.mcp_server.guide.field.env.summary": "Передают конфигурацию KEY=VALUE в MCP Server.",
"ai_settings.mcp_server.guide.field.env.title": "Переменные окружения",
"ai_settings.mcp_server.guide.field.example_label": "Пример значения:",
"ai_settings.mcp_server.guide.field.fill_label": "Заполнить: ",
"ai_settings.mcp_server.guide.field.name.avoid": "Избегайте расплывчатых имён вроде server, test или mcp1.",
"ai_settings.mcp_server.guide.field.name.detail": "Называйте по назначению. Лучше использовать легко узнаваемые имена вроде Browser, GitHub или Filesystem.",
"ai_settings.mcp_server.guide.field.name.fill": "Имя назначения этого MCP, например GitHub или Filesystem.",
"ai_settings.mcp_server.guide.field.name.summary": "Имя, которое после сохранения увидите вы и AI.",
"ai_settings.mcp_server.guide.field.name.title": "Имя сервиса",
"ai_settings.mcp_server.guide.field.timeout.avoid": "Не выбирайте произвольно слишком маленькое значение. Менее 3 секунд легко приводит к ложной ошибке обнаружения инструментов.",
"ai_settings.mcp_server.guide.field.timeout.detail": "Обычным локальным инструментам обычно хватает 20 секунд. Увеличивайте значение для медленного запуска или удалённых цепочек.",
"ai_settings.mcp_server.guide.field.timeout.fill": "Обычно 20; при медленном запуске 45 или 60.",
"ai_settings.mcp_server.guide.field.timeout.summary": "Максимальное ожидание одного обнаружения инструмента или одного вызова.",
"ai_settings.mcp_server.guide.field.timeout.title": "Таймаут (секунды)",
"ai_settings.mcp_server.guide.field.transport.avoid": "Не указывайте HTTP, SSE, URL или порт. Этот сценарий добавления не является настройкой удалённого MCP URL.",
"ai_settings.mcp_server.guide.field.transport.detail": "Сейчас фиксировано stdio: GoNavi запускает локальный процесс и обменивается данными через стандартный ввод и вывод.",
"ai_settings.mcp_server.guide.field.transport.fill": "Оставьте stdio.",
"ai_settings.mcp_server.guide.field.transport.summary": "Как GoNavi связывается с этим MCP Server.",
"ai_settings.mcp_server.guide.field.transport.title": "Транспорт",
"ai_settings.mcp_server.guide.full_command.apply": "Автоматически разнести по полям ниже",
"ai_settings.mcp_server.guide.full_command.description": "Вставьте полную команду напрямую. GoNavi разделит её на команду запуска / аргументы команды / переменные окружения. Поддерживаются Unix KEY=VALUE, Windows PowerShell $env:KEY=VALUE; и префиксы cmd set KEY=VALUE &&.",
"ai_settings.mcp_server.guide.full_command.parsed_summary": "Будет разобрано как: команда {{command}}, аргументов {{argsCount}}, переменных окружения {{envCount}}.",
"ai_settings.mcp_server.guide.full_command.placeholder": "Вставьте полную команду, например:\n{{example}}",
"ai_settings.mcp_server.guide.full_command.support_hint": "Поддерживаются пути в кавычках, аргументы с пробелами и префиксы переменных окружения KEY=VALUE / $env:KEY=VALUE; / set KEY=VALUE &&.",
"ai_settings.mcp_server.guide.full_command.title": "Есть только полная команда?",
"ai_settings.mcp_server.guide.note.command_only": "Команда запуска должна содержать только саму программу. Не добавляйте в неё имена скриптов, модулей или --stdio.",
"ai_settings.mcp_server.guide.note.docker": "Если README показывает пример Docker, укажите command как docker, а run, --rm, -i, имя образа и аргументы контейнера внесите в args по отдельности. Токены контейнера обычно передаются через -e KEY=VALUE.",
"ai_settings.mcp_server.guide.note.env_lines": "Используйте одну строку KEY=VALUE на каждую переменную окружения. Не пишите export и не смешивайте это с командой запуска.",
"ai_settings.mcp_server.guide.note.full_command": "Если README даёт только одну полную командную строку, сначала вставьте её в поле полной команды для авторазделения. Поддерживаются KEY=VALUE, env KEY=VALUE, PowerShell $env:KEY=VALUE; и Windows set KEY=VALUE &&.",
"ai_settings.mcp_server.guide.note.npx": "Если README показывает пример npx, укажите command как npx, а -y, имя пакета и --stdio внесите в args по отдельности. Не помещайте всю npx-команду в command.",
"ai_settings.mcp_server.guide.note.secrets": "Секретные переменные окружения сохраняются в локальной конфигурации и передаются только как окружение процесса при запуске MCP. Не помещайте секреты в чат.",
"ai_settings.mcp_server.guide.note.test_discovery": "Тест обнаружения инструментов временно запускает сервис для проверки и не сохраняет конфигурацию автоматически.",
"ai_settings.mcp_server.guide.order.description": "Новым пользователям удобно идти в таком порядке: сначала выбрать шаблон выше или вставить полную команду, затем проверить обязательные поля и только при необходимости добавить аргументы, переменные окружения и таймаут.",
"ai_settings.mcp_server.guide.order.title": "Рекомендуемый порядок заполнения",
"ai_settings.mcp_server.guide.step.args.detail": "Разделите имя скрипта, имя модуля, аргументы Docker run и параметры вроде --stdio на отдельные элементы.",
"ai_settings.mcp_server.guide.step.args.title": "Аргументы команды",
"ai_settings.mcp_server.guide.step.command.detail": "Здесь указывается только имя программы или сам launcher, а не вся командная строка.",
"ai_settings.mcp_server.guide.step.command.title": "Команда запуска",
"ai_settings.mcp_server.guide.step.env_timeout.detail": "Добавляйте их только если сервису действительно нужна дополнительная конфигурация; иначе оставьте пустыми.",
"ai_settings.mcp_server.guide.step.env_timeout.title": "Переменные окружения / таймаут",
"ai_settings.mcp_server.guide.step.name.detail": "Назовите сервис понятным именем по назначению, например Browser, GitHub или Filesystem.",
"ai_settings.mcp_server.guide.step.name.title": "Имя сервиса",
"ai_settings.mcp_server.guide.step.template.detail": "Сначала выберите ближайший шаблон или вставьте целую командную строку, чтобы GoNavi автоматически разделил её.",
"ai_settings.mcp_server.guide.step.template.title": "Шаблон / полная команда",
"ai_settings.mcp_server.guide.troubleshooting.auth_failed.cause": "Отсутствуют API Key, Token, URL сервиса или другие переменные окружения, либо KEY=VALUE имеет неверный формат.",
"ai_settings.mcp_server.guide.troubleshooting.auth_failed.fix": "Пишите одну строку KEY=VALUE на каждую переменную окружения. Не пишите export и не смешивайте переменные окружения с командой запуска.",
"ai_settings.mcp_server.guide.troubleshooting.auth_failed.symptom": "Ошибка аутентификации, 401 или 403",
"ai_settings.mcp_server.guide.troubleshooting.cause_label": "Частая причина: ",
"ai_settings.mcp_server.guide.troubleshooting.command_not_found.cause": "Команда запуска содержит всю командную строку, команда отсутствует в PATH, или путь Windows содержит пробелы, но не является реальным путём к exe.",
"ai_settings.mcp_server.guide.troubleshooting.command_not_found.fix": "В команде запуска указывайте только сам исполняемый файл. Имена скриптов и --stdio помещайте в аргументы команды. Если команды нет в PATH, укажите абсолютный путь.",
"ai_settings.mcp_server.guide.troubleshooting.command_not_found.symptom": "Тест сообщает, что команда не найдена",
"ai_settings.mcp_server.guide.troubleshooting.description": "Если тест не проходит, используйте этот раздел, чтобы понять, какое поле исправить. Чаще всего сломан не MCP, а неправильно разделены команда, аргументы или переменные окружения.",
"ai_settings.mcp_server.guide.troubleshooting.example_label": "Пример:",
"ai_settings.mcp_server.guide.troubleshooting.fix_label": "Исправление: ",
"ai_settings.mcp_server.guide.troubleshooting.stdio_only.cause": "Обычно это не локальный stdio-процесс, и текущий поток добавления MCP в GoNavi напрямую его не поддерживает.",
"ai_settings.mcp_server.guide.troubleshooting.stdio_only.fix": "Предпочитайте stdio-способ запуска этого сервиса. Если доступны только HTTP/SSE, сначала используйте официальный gateway или локальный wrapper для преобразования в stdio.",
"ai_settings.mcp_server.guide.troubleshooting.stdio_only.symptom": "README содержит только URL или SSE-конфигурацию",
"ai_settings.mcp_server.guide.troubleshooting.timeout_or_no_tools.cause": "Сервис запускается медленно, отсутствует аргумент stdio, контейнеру Docker не хватает -i, или сервис поддерживает только HTTP/SSE.",
"ai_settings.mcp_server.guide.troubleshooting.timeout_or_no_tools.fix": "Сначала убедитесь, что сервис поддерживает stdio, затем добавьте --stdio или Docker -i. При медленном запуске увеличьте таймаут до 45 или 60 секунд.",
"ai_settings.mcp_server.guide.troubleshooting.timeout_or_no_tools.symptom": "Тест уходит в таймаут или обнаруживает 0 инструментов",
"ai_settings.mcp_server.guide.troubleshooting.title": "Частые ошибки настройки",
"ai_settings.mcp_server.help.example_prefix": "Пример: ",
"ai_settings.mcp_server.help.field_state.fixed": "Фиксировано",
"ai_settings.mcp_server.help.field_state.optional": "Необязательно",
"ai_settings.mcp_server.help.field_state.required": "Обязательно",
"ai_settings.mcp_server.message.delete_failed": "Не удалось удалить службу MCP",
"ai_settings.mcp_server.message.deleted": "Служба MCP удалена",
"ai_settings.mcp_server.message.save_failed": "Не удалось сохранить службу MCP",
"ai_settings.mcp_server.message.saved": "Служба MCP сохранена",
"ai_settings.mcp_server.message.test_failed": "Проверка службы MCP не удалась",
"ai_settings.mcp_server.message.test_request_failed": "Не удалось выполнить проверку службы MCP",
"ai_settings.mcp_server.message.test_success": "Подключение к службе MCP успешно",
"ai_settings.mcp_server.quick_add.action.parse_and_add": "Разобрать и добавить черновик",
"ai_settings.mcp_server.quick_add.description": "Выберите ближайший шаблон или вставьте полную команду запуска из README. GoNavi разделит её на command, args и env, затем создаст редактируемый черновик MCP.",
"ai_settings.mcp_server.quick_add.templates_description": "Если вы не уверены, как разделить command и args, нажмите шаблон, чтобы создать черновик. На каждой карточке показана команда, которую GoNavi реально запустит.",
"ai_settings.mcp_server.quick_add.templates_title": "Типовые шаблоны запуска",
"ai_settings.mcp_server.quick_add.title": "Быстрое добавление из одной команды",
"ai_settings.mcp_server.remote_quick_start.avoid_prefix": "Избегать: ",
"ai_settings.mcp_server.remote_quick_start.badge.optional": "Необязательно",
"ai_settings.mcp_server.remote_quick_start.badge.required": "Обязательно",
"ai_settings.mcp_server.remote_quick_start.card.cli_config": "Создать конфигурацию без GUI / через CLI",
"ai_settings.mcp_server.remote_quick_start.card.cli_config_note": "Создает удаленную MCP-конфигурацию, которую можно вставить в {{displayName}}, не читая и не выводя пароли баз данных.",
"ai_settings.mcp_server.remote_quick_start.card.cloud_agent": "Настроить в облачном Agent",
"ai_settings.mcp_server.remote_quick_start.card.standalone_binary": "Отдельный бинарный файл: {{command}}",
"ai_settings.mcp_server.remote_quick_start.card.windows_launch": "Запустить GoNavi MCP HTTP в Windows",
"ai_settings.mcp_server.remote_quick_start.default_agent_name": "Удаленный Agent",
"ai_settings.mcp_server.remote_quick_start.description": "Эти фрагменты предназначены для облачных Agent, сценариев без GUI/CLI и Windows GoNavi. В облаке сохраняются только MCP URL и Bearer Token, а не учетные данные базы данных; schema-only по умолчанию открывает только структурные tools.",
"ai_settings.mcp_server.remote_quick_start.example_prefix": "Пример: ",
"ai_settings.mcp_server.remote_quick_start.fill_prefix": "Заполнить: ",
"ai_settings.mcp_server.remote_quick_start.guide.access_heading": "Рекомендуемый способ доступа:",
"ai_settings.mcp_server.remote_quick_start.guide.boundary_heading": "Текущая граница:",
"ai_settings.mcp_server.remote_quick_start.guide.boundary.local_stdio": "Локальная точка входа встроенного GoNavi MCP — stdio, она подходит для клиентов вроде Claude Code / Codex, работающих на одной машине с GoNavi.",
"ai_settings.mcp_server.remote_quick_start.guide.boundary.remote_cloud": "Если OpenClaw/Hermans работает в облачном Linux, он не может напрямую использовать локальную Windows stdio-команду; запустите GoNavi Streamable HTTP на Windows и дайте облачному Agent доступ через туннель или reverse proxy.",
"ai_settings.mcp_server.remote_quick_start.guide.config_command_heading": "Команда генерации конфигурации без GUI / через CLI:",
"ai_settings.mcp_server.remote_quick_start.guide.config_heading": "Фрагмент конфигурации для копирования (для Agents с поддержкой mcpServers JSON):",
"ai_settings.mcp_server.remote_quick_start.guide.current_hint": "Текущая подсказка: {{message}}",
"ai_settings.mcp_server.remote_quick_start.guide.env_fallback": "Или задайте переменную окружения GONAVI_MCP_HTTP_TOKEN=<random-token>, затем запустите {{standaloneCommand}}",
"ai_settings.mcp_server.remote_quick_start.guide.execute_sql_note": "Если явно требуется удаленное выполнение SQL, уберите --schema-only; execute_sql все равно остается под контролем безопасности GoNavi AI, а записи должны явно передавать allowMutating=true.",
"ai_settings.mcp_server.remote_quick_start.guide.goal_heading": "Цель:",
"ai_settings.mcp_server.remote_quick_start.guide.goal.credentials_stay_local": "Подключения к базам данных, учетные записи и пароли остаются в Windows GoNavi. Облачному Agent не нужно хранить пароли баз данных.",
"ai_settings.mcp_server.remote_quick_start.guide.goal.schema_only": "Удаленный доступ по умолчанию использует режим schema-only и не регистрирует execute_sql, что подходит для выдачи OpenClaw/Hermans только доступа к структуре схемы.",
"ai_settings.mcp_server.remote_quick_start.guide.goal.tools_only": "Облачный Agent читает только результаты get_connections/get_databases/get_tables/get_columns/get_table_ddl через MCP tools.",
"ai_settings.mcp_server.remote_quick_start.guide.launch_command_heading": "Команда запуска CLI / службы:",
"ai_settings.mcp_server.remote_quick_start.guide.step.configure_remote_server": "3. Добавьте remote MCP Server в {{displayName}}, выберите transport Streamable HTTP, укажите URL на /mcp после туннеля или reverse proxy и задайте Authorization: Bearer <random-token>.",
"ai_settings.mcp_server.remote_quick_start.guide.step.inspect_schema": "4. Сначала вызовите get_connections, чтобы получить connectionId, затем вызывайте инструменты схемы; не записывайте database host/user/password в конфигурацию облачного Agent.",
"ai_settings.mcp_server.remote_quick_start.guide.step.keep_windows_accessible": "1. Держите GoNavi доступным на Windows, а чтение сохраненных подключений и системных учетных данных оставьте GoNavi.",
"ai_settings.mcp_server.remote_quick_start.guide.step.run_command": "2. Выполните на Windows или в доверенной внутренней сети: {{launchCommand}}.",
"ai_settings.mcp_server.remote_quick_start.guide.title": "Руководство по удаленному доступу GoNavi MCP - {{displayName}}",
"ai_settings.mcp_server.remote_quick_start.parameter.bearer_token.avoid": "Не используйте пустой или короткий token и не помещайте сюда пароль базы данных.",
"ai_settings.mcp_server.remote_quick_start.parameter.bearer_token.fill": "Укажите длинный случайный token; команда запуска Windows и конфигурация облачного Agent должны совпадать.",
"ai_settings.mcp_server.remote_quick_start.parameter.bearer_token.title": "Bearer Token",
"ai_settings.mcp_server.remote_quick_start.parameter.local_addr.avoid": "Без изоляции шлюзом не привязывайте напрямую к 0.0.0.0 и не открывайте в публичную сеть.",
"ai_settings.mcp_server.remote_quick_start.parameter.local_addr.fill": "Windows GoNavi HTTP MCP по умолчанию слушает 127.0.0.1:8765, а затем передается через туннель или reverse proxy.",
"ai_settings.mcp_server.remote_quick_start.parameter.local_addr.title": "Локальный адрес прослушивания",
"ai_settings.mcp_server.remote_quick_start.parameter.path.avoid": "Не используйте /mcp в одном месте и /api/mcp в другом; разные пути приведут к 404.",
"ai_settings.mcp_server.remote_quick_start.parameter.path.fill": "Сохраняйте одинаковый путь в локальной команде запуска, туннельном URL и конфигурации облачного Agent.",
"ai_settings.mcp_server.remote_quick_start.parameter.path.title": "Путь MCP",
"ai_settings.mcp_server.remote_quick_start.parameter.public_url.avoid": "Не используйте локальный адрес Windows 127.0.0.1; облачный Linux не сможет к нему обратиться.",
"ai_settings.mcp_server.remote_quick_start.parameter.public_url.fill": "Укажите адрес Streamable HTTP MCP, доступный облачному Agent; обычно он заканчивается на /mcp.",
"ai_settings.mcp_server.remote_quick_start.parameter.public_url.title": "Публичный/туннельный URL",
"ai_settings.mcp_server.remote_quick_start.parameter.server_id.avoid": "Не переименовывайте часто, иначе существующие ссылки Agent на tools могут сломаться.",
"ai_settings.mcp_server.remote_quick_start.parameter.server_id.fill": "Имя этой MCP-службы для облачного Agent; значение gonavi подходит по умолчанию.",
"ai_settings.mcp_server.remote_quick_start.parameter.server_id.title": "ID сервиса",
"ai_settings.mcp_server.remote_quick_start.section.security": "Граница безопасности",
"ai_settings.mcp_server.remote_quick_start.section.verification": "Порядок проверки",
"ai_settings.mcp_server.remote_quick_start.security.credentials_stay_local": "Учетные записи и пароли баз данных остаются в Windows GoNavi; не записывайте пароли баз данных в эту конфигурацию.",
"ai_settings.mcp_server.remote_quick_start.security.execute_sql": "Если убрать --schema-only и открыть execute_sql, по-прежнему действуют ограничения безопасности GoNavi AI, а операции записи должны явно передавать allowMutating=true.",
"ai_settings.mcp_server.remote_quick_start.security.schema_only": "--schema-only по умолчанию не регистрирует execute_sql, поэтому удаленный Agent получает только tools для структуры.",
"ai_settings.mcp_server.remote_quick_start.security.token_required": "HTTP MCP должен использовать случайный Bearer Token и находиться за HTTPS, частной сетью или контролируемым туннелем.",
"ai_settings.mcp_server.remote_quick_start.title": "Быстрая настройка Remote MCP для {{displayName}}",
"ai_settings.mcp_server.remote_quick_start.verification.configure_agent": "Настройте Streamable HTTP MCP в {{displayName}} и укажите URL на /mcp адрес после туннеля или reverse proxy.",
"ai_settings.mcp_server.remote_quick_start.verification.healthz": "Сначала в Windows откройте http://127.0.0.1:8765/healthz, чтобы убедиться, что служба GoNavi MCP HTTP запущена.",
"ai_settings.mcp_server.remote_quick_start.verification.inspect_schema": "Сначала вызовите get_connections, чтобы получить connectionId, затем читайте get_databases / get_tables / get_columns.",
"ai_settings.mcp_server.section.action.add_server": "Добавить MCP-сервис",
"ai_settings.mcp_server.section.empty": "MCP-сервисов пока нет. Частые формы: `npx -y package --stdio`, `node server.js`, `uvx some-mcp-server`, `python -m server` и `docker run --rm -i image`.",
"ai_settings.mcp_server.section.quick_reference.description": "Перед добавлением сервиса проверьте эти поля: `command` содержит только исполняемый файл, `args` содержит имена скриптов и --stdio, `env` использует одну строку KEY=VALUE на запись, а `timeout` управляет ожиданием одного обнаружения инструмента или вызова.",
"ai_settings.mcp_server.section.quick_reference.footer": "Поддерживаются команда, аргументы, переменные окружения и таймаут. Если не уверены, сначала прочитайте карточки краткой справки по полям. После сохранения сервис автоматически появится в списке инструментов AI.",
"ai_settings.mcp_server.section.quick_reference.title": "Краткая справка по новым параметрам MCP",
"ai_settings.mcp_server.template.docker.description": "Для контейнерных MCP-сервисов, где в README указано `docker run -i --rm image`. Docker должен быть установлен локально.",
"ai_settings.mcp_server.template.docker.detail": "В примере используется `docker run --rm -i mcp/server-fetch:latest`; token для контейнера обычно передают через -e KEY=VALUE в аргументах.",
"ai_settings.mcp_server.template.docker.seed_name": "Docker MCP",
"ai_settings.mcp_server.template.docker.title": "Docker-образ",
"ai_settings.mcp_server.template.exe.description": "Для скомпилированных локальных бинарных файлов или внутренних инструментов компании.",
"ai_settings.mcp_server.template.exe.detail": "В примере используется `your-mcp-server.exe stdio`; замените путь к exe на реальный.",
"ai_settings.mcp_server.template.exe.seed_name": "Локальный EXE",
"ai_settings.mcp_server.template.exe.title": "Локальный EXE",
"ai_settings.mcp_server.template.node.description": "Для локальных js/ts-скриптов или node-запускателей, установленных через npm.",
"ai_settings.mcp_server.template.node.detail": "В примере используется `node server.js --stdio`; имя скрипта и аргументы можно изменить.",
"ai_settings.mcp_server.template.node.seed_name": "Node-скрипт",
"ai_settings.mcp_server.template.node.title": "Node-скрипт",
"ai_settings.mcp_server.template.npx.description": "Для npm MCP-пакетов, где в README указано `npx -y xxx --stdio`.",
"ai_settings.mcp_server.template.npx.detail": "В примере используется `npx -y @modelcontextprotocol/server-filesystem --stdio`; замените имя пакета и аргументы пути на реальные значения.",
"ai_settings.mcp_server.template.npx.seed_name": "npx-пакет",
"ai_settings.mcp_server.template.npx.title": "npx-пакет",
"ai_settings.mcp_server.template.python.description": "Для сервисов, запускаемых как модуль, например `python -m xxx`.",
"ai_settings.mcp_server.template.python.detail": "В примере используется `python -m your_mcp_server`; замените имя модуля на реальное.",
"ai_settings.mcp_server.template.python.seed_name": "Python-модуль",
"ai_settings.mcp_server.template.python.title": "Python-модуль",
"ai_settings.mcp_server.template.uvx.description": "Для опубликованных MCP-пакетов в экосистеме Python/uv.",
"ai_settings.mcp_server.template.uvx.detail": "В примере используется `uvx some-mcp-server`; замените имя пакета перед сохранением.",
"ai_settings.mcp_server.template.uvx.seed_name": "uvx-инструмент",
"ai_settings.mcp_server.template.uvx.title": "uvx-инструмент",
"ai_settings.mcp_server.tool_schema_summary.minimal_arguments_example": "Минимальный пример arguments:",
"ai_settings.mcp_server.tool_schema_summary.more_parameters": "Еще {{count}} параметров; используйте /mcptool, чтобы посмотреть полную schema",
"ai_settings.mcp_server.tool_schema_summary.no_input_schema": "inputSchema не объявлена; перед вызовом проверьте документацию сервиса или используйте /mcptool.",
"ai_settings.mcp_server.tool_schema_summary.parameter_counts": "{{count}} параметров, обязательных {{requiredCount}}; звездочка отмечает обязательные поля.",
"ai_settings.mcp_server.tool_schema_summary.title": "Обнаруженные tools и подсказки по параметрам",
"ai_settings.mcp_server.validation.issue.args_contain_env_or_shell_glue.detail": "KEY=VALUE, $env:KEY=VALUE, set, env и && относятся к авторазбору полной команды или к полю переменных окружения.",
"ai_settings.mcp_server.validation.issue.args_contain_env_or_shell_glue.title": "Аргументы команды могут содержать переменные окружения или склейку Shell",
"ai_settings.mcp_server.validation.issue.args_missing_for_launcher.detail": "Для запускателей вроде node, python, uvx и npx обычно также нужен server.js, -m your_server или имя пакета в качестве аргумента.",
"ai_settings.mcp_server.validation.issue.args_missing_for_launcher.title": "В аргументах команды может не хватать имени скрипта или модуля",
"ai_settings.mcp_server.validation.issue.command_missing.detail": "Укажите как минимум node, uvx, python или путь к локальному исполняемому файлу. Имя скрипта и --stdio помещайте в аргументы команды.",
"ai_settings.mcp_server.validation.issue.command_missing.title": "Команда запуска не указана",
"ai_settings.mcp_server.validation.issue.command_whole_line.detail": "В команду запуска вводите только сам исполняемый файл. Имя скрипта, имя модуля, --stdio и переменные окружения перенесите в аргументы или переменные окружения.",
"ai_settings.mcp_server.validation.issue.command_whole_line.title": "Команда запуска может содержать всю командную строку",
"ai_settings.mcp_server.validation.issue.docker_image_missing.detail": "Введите имя образа из README после опций docker run, например mcp/server-fetch:latest.",
"ai_settings.mcp_server.validation.issue.docker_image_missing.title": "В аргументах Docker может не хватать имени образа",
"ai_settings.mcp_server.validation.issue.docker_interactive_missing.detail": "MCP должен продолжать читать стандартный ввод. Для docker run добавьте -i или --interactive, иначе обнаружение инструментов может сразу отключиться.",
"ai_settings.mcp_server.validation.issue.docker_interactive_missing.title": "В аргументах Docker нет -i",
"ai_settings.mcp_server.validation.issue.docker_run_missing.detail": "Docker MCP обычно использует command=docker, а run, --rm, -i, имя образа и аргументы сервиса вводятся отдельно в args.",
"ai_settings.mcp_server.validation.issue.docker_run_missing.title": "В аргументах Docker нет run",
"ai_settings.mcp_server.validation.issue.env_invalid_lines.detail": "Каждая строка должна быть KEY=VALUE. Не будет сохранено строк: {{count}}: {{lines}}",
"ai_settings.mcp_server.validation.issue.env_invalid_lines.title": "Переменные окружения содержат недопустимые строки",
"ai_settings.mcp_server.validation.issue.name_missing.detail": "Используйте имя по назначению, например Browser, GitHub или Filesystem; иначе после сохранения сервис можно будет распознать только по команде.",
"ai_settings.mcp_server.validation.issue.name_missing.title": "Имя сервиса пустое",
"ai_settings.mcp_server.validation.issue.timeout_out_of_range.detail": "GoNavi ограничит значение диапазоном от 3 до 120 секунд. Обычные локальные сервисы чаще используют 20 секунд; медленно запускающиеся сервисы — 45 или 60 секунд.",
"ai_settings.mcp_server.validation.issue.timeout_out_of_range.title": "Таймаут вне рекомендуемого диапазона",
"ai_settings.mcp_server.validation.issue.transport_unsupported.detail": "Здесь GoNavi может добавлять только stdio MCP-сервисы. Оставьте транспорт stdio.",
"ai_settings.mcp_server.validation.issue.transport_unsupported.title": "Транспорт не поддерживается",
"ai_settings.mcp_server.validation.severity.error": "Нужно исправить",
"ai_settings.mcp_server.validation.severity.info": "Подсказка",
"ai_settings.mcp_server.validation.severity.warning": "Рекомендуется проверить",
"ai_settings.mcp_server.validation.summary.errors": "Найдено проблем для обязательного исправления: {{count}}. После исправления можно тестировать или сохранять.",
"ai_settings.mcp_server.validation.summary.ready": "Текущую конфигурацию можно тестировать и сохранять.",
"ai_settings.mcp_server.validation.summary.warnings": "Найдено пунктов для проверки: {{count}}. Тестирование и сохранение доступны.",
"ai_settings.mcp_server.validation.title": "Проверка конфигурации",
"ai_settings.message.delete_failed": "Не удалось удалить",
"ai_settings.message.delete_failed_detail": "Не удалось удалить: {{detail}}",
"ai_settings.message.deleted": "Удалено",
"ai_settings.message.deleted_and_switched": "Удалено, выполнено автоматическое переключение на «{{name}}»",
"ai_settings.message.load_provider_failed": "Не удалось прочитать конфигурацию поставщика",
"ai_settings.message.save_failed": "Не удалось сохранить",
"ai_settings.message.save_failed_detail": "Не удалось сохранить: {{detail}}",
"ai_settings.message.saved": "Сохранено",
"ai_settings.message.switch_failed": "Не удалось переключить",
"ai_settings.message.switch_failed_detail": "Не удалось переключить: {{detail}}",
"ai_settings.message.switched": "Переключено",
"ai_settings.message.test_failed": "Проверка не удалась",
"ai_settings.message.test_failed_detail": "Проверка не удалась: {{detail}}",
"ai_settings.message.test_requires_new_api_key": "Перед проверкой подключения введите новый API Key или отмените очистку сохраненного секрета",
"ai_settings.message.test_success": "Подключение успешно",
"ai_settings.message.unknown_error": "Неизвестная ошибка",
"ai_settings.nav.context.description": "Настройка контекста схемы базы данных",
"ai_settings.nav.context.title": "Контекст",
"ai_settings.nav.mcp.description": "Подключение GoNavi к внешним клиентам и управление источниками инструментов",
"ai_settings.nav.mcp.title": "Сервисы MCP",
"ai_settings.nav.prompts.description": "Просмотр системных базовых требований",
"ai_settings.nav.prompts.title": "Встроенные промпты",
"ai_settings.nav.providers.description": "Настройка конечных точек моделей и секретов",
"ai_settings.nav.providers.title": "Поставщики моделей",
"ai_settings.nav.safety.description": "Ограничение уровня риска операций AI",
"ai_settings.nav.safety.title": "Контроль безопасности",
"ai_settings.nav.skills.description": "Настройка переиспользуемых модулей промптов",
"ai_settings.nav.skills.title": "Skills",
"ai_settings.nav.title": "Навигация настроек",
"ai_settings.nav.tools.description": "Просмотр доступных AI зондов данных",
"ai_settings.nav.tools.title": "Встроенные инструменты",
"ai_settings.prompts.action.save": "Сохранить пользовательские промпты",
"ai_settings.prompts.builtin.description": "Ниже показаны низкоуровневые AI-промпты, встроенные в текущую версию GoNavi. Они доступны только для чтения и добавляются в подходящий контекст запроса перед пользовательскими промптами выше.",
"ai_settings.prompts.description": "Ниже показаны системные AI-промпты, встроенные в текущую версию GoNavi. Они доступны только для чтения и динамически добавляются в контекст запроса для соответствующих сценариев.",
"ai_settings.prompts.field.database.description": "Применяется только к сценариям базы данных и SQL, например «перед генерацией SQL обязательно проверить имена полей».",
"ai_settings.prompts.field.database.title": "Дополнительный промпт для сессий базы данных",
"ai_settings.prompts.field.global.description": "Применяется ко всем AI-сессиям, например «сначала дать вывод» или «отвечать кратко».",
"ai_settings.prompts.field.global.title": "Глобальный дополнительный промпт",
"ai_settings.prompts.field.jvm_diagnostic.description": "Применяется только к рабочей области диагностики JVM, например «сначала дать план, затем команды».",
"ai_settings.prompts.field.jvm_diagnostic.title": "Дополнительный промпт для диагностики JVM",
"ai_settings.prompts.field.jvm.description": "Применяется только к просмотру и анализу ресурсов JVM.",
"ai_settings.prompts.field.jvm.title": "Дополнительный промпт для анализа ресурсов JVM",
"ai_settings.prompts.message.save_failed": "Не удалось сохранить пользовательские промпты",
"ai_settings.prompts.message.saved": "Пользовательские промпты сохранены",
"ai_settings.prompts.placeholder.empty": "Оставьте пустым, чтобы ничего не добавлять",
"ai_settings.prompts.user.description": "Этот текст добавляется после встроенных системных промптов как system message. Используйте его для личного стиля ответа, ограничений вывода или правил команды. В вопросах безопасности системные правила по-прежнему имеют приоритет.",
"ai_settings.prompts.user.title": "Пользовательские промпты уровня пользователя",
"ai_settings.provider_preset.anthropic.desc": "Модели Claude Opus/Sonnet",
"ai_settings.provider_preset.anthropic.label": "Claude",
"ai_settings.provider_preset.custom.desc": "Пользовательская конечная точка API",
"ai_settings.provider_preset.custom.label": "Пользовательский",
"ai_settings.provider_preset.deepseek.desc": "Модели DeepSeek-V4 / R1",
"ai_settings.provider_preset.deepseek.label": "DeepSeek",
"ai_settings.provider_preset.gemini.desc": "Серия Gemini 3.1 / 2.5",
"ai_settings.provider_preset.gemini.label": "Gemini",
"ai_settings.provider_preset.minimax.desc": "Серия M3 / M2.7 (Anthropic-совместимая)",
"ai_settings.provider_preset.minimax.label": "MiniMax",
"ai_settings.provider_preset.moonshot.desc": "Kimi K2.5 (Anthropic-совместимый)",
"ai_settings.provider_preset.moonshot.label": "Kimi",
"ai_settings.provider_preset.ollama.desc": "Локально развернутые модели с открытым кодом",
"ai_settings.provider_preset.ollama.label": "Ollama",
"ai_settings.provider_preset.openai.desc": "Серия GPT-5.4 / 5.3",
"ai_settings.provider_preset.openai.label": "OpenAI",
"ai_settings.provider_preset.qwen_bailian.desc": "Anthropic-совместимая конечная точка Bailian / удаленный список моделей",
"ai_settings.provider_preset.qwen_bailian.label": "Qwen (Bailian общий)",
"ai_settings.provider_preset.qwen_coding_plan.desc": "Прокси-цепочка Claude Code CLI / официальный список поддерживаемых моделей",
"ai_settings.provider_preset.qwen_coding_plan.label": "Qwen (Coding Plan)",
"ai_settings.provider_preset.volcengine_ark.desc": "Общий инференс Ark / модели Doubao",
"ai_settings.provider_preset.volcengine_ark.label": "Volcengine Ark",
"ai_settings.provider_preset.volcengine_coding.desc": "Среда Ark Code / Coding Plan",
"ai_settings.provider_preset.volcengine_coding.label": "Volcengine Coding Plan",
"ai_settings.provider_preset.zhipu.desc": "Модели GLM-5 / GLM-5-Turbo",
"ai_settings.provider_preset.zhipu.label": "Zhipu GLM",
"ai_settings.provider.action.add": "Добавить поставщика модели",
"ai_settings.provider.action.delete": "Удалить",
"ai_settings.provider.action.edit": "Редактировать",
"ai_settings.provider.auto_model": "Выбрано автоматически",
"ai_settings.provider.confirm_delete": "Удалить этого поставщика?",
"ai_settings.provider.editor.add_title": "Добавить поставщика модели",
"ai_settings.provider.editor.edit_title": "Редактировать поставщика модели",
"ai_settings.provider.empty.description": "Добавьте поставщика, чтобы начать использовать AI-ассистента",
"ai_settings.provider.empty.title": "Поставщик модели не настроен",
"ai_settings.provider.next_provider": "следующий поставщик",
"ai_settings.provider.no_model": "Модель не выбрана",
"ai_settings.safety.description": "Управляет типами SQL-операций, которые AI может выполнять, чтобы защитить данные",
"ai_settings.safety.full.desc": "AI может выполнять все операции, включая DDL. Для операций высокого риска предупреждения показываются автоматически.",
"ai_settings.safety.full.label": "Полный режим",
"ai_settings.safety.readonly.desc": "AI может выполнять только SELECT и похожие запросы. Это самый безопасный режим.",
"ai_settings.safety.readonly.label": "Режим только чтения",
"ai_settings.safety.readwrite.desc": "AI может выполнять INSERT/UPDATE/DELETE. Для рискованных операций требуется подтверждение.",
"ai_settings.safety.readwrite.label": "Режим чтения и записи",
"ai_settings.skill.action.add": "Добавить Skill",
"ai_settings.skill.confirm_delete": "Удалить этот Skill?",
"ai_settings.skill.description": "Skill - это не еще один большой промпт, а именованный модуль промпта + scope + зависимости от инструментов. На этом этапе храните его в основном репозитории. Отдельный репозиторий GitHub нужен только если позже будет распространяться общий skill pack.",
"ai_settings.skill.description_placeholder": "Личная заметка, например: перед выводом SQL подтвердить имена полей и риски",
"ai_settings.skill.empty": "Skills пока нет. Можно определить отдельные system prompts для сценариев базы данных, JVM и диагностики.",
"ai_settings.skill.hint": "После включения он добавляется в сеанс по scope. Если нужного инструмента нет, этот Skill автоматически пропускается.",
"ai_settings.skill.message.delete_failed": "Не удалось удалить Skill",
"ai_settings.skill.message.deleted": "Skill удален",
"ai_settings.skill.message.save_failed": "Не удалось сохранить Skill",
"ai_settings.skill.message.saved": "Skill сохранен",
"ai_settings.skill.name_placeholder": "Название Skill, например: SQL review / JVM diagnostic plan",
"ai_settings.skill.required_tools_placeholder": "Необязательно: укажите, от каких инструментов зависит этот Skill",
"ai_settings.skill.scope.database.desc": "Только для сценариев SQL / базы данных",
"ai_settings.skill.scope.database.label": "База данных",
"ai_settings.skill.scope.global.desc": "Включено для всех AI-сеансов",
"ai_settings.skill.scope.global.label": "Глобально",
"ai_settings.skill.scope.jvm_diagnostic.desc": "Только для рабочей области диагностики JVM",
"ai_settings.skill.scope.jvm_diagnostic.label": "Диагностика JVM",
"ai_settings.skill.scope.jvm.desc": "Только для сценариев анализа ресурсов JVM",
"ai_settings.skill.scope.jvm.label": "Ресурсы JVM",
"ai_settings.skill.scopes_placeholder": "Выберите, где должен применяться этот Skill",
"ai_settings.skill.status.disabled": "Отключен",
"ai_settings.skill.status.enabled": "Включен",
"ai_settings.skill.system_prompt_placeholder": "Введите system prompt, который должен добавить этот Skill. Сфокусируйтесь на одной четкой возможности и не дублируйте глобальные промпты.",
"ai_settings.subtitle": "Настройка моделей AI, уровня безопасности и контекста",
"ai_settings.title": "Настройки AI",
"ai_settings.tools.builtin_tool_label": "Встроенный инструмент",
"ai_settings.tools.description": "При работе с вопросами по базам данных AI-ассистент может автоматически вызывать эти встроенные инструменты, чтобы получить реальные данные без ручного вмешательства.",
"ai_settings.tools.empty.no_matches": "Подходящих встроенных инструментов нет. Попробуйте более общие ключевые слова, например mcp, logs, connection, transaction, shortcuts или schema.",
"ai_settings.tools.execute_sql.desc": "Выполнить SQL-запрос и вернуть результат",
"ai_settings.tools.execute_sql.detail": "Передайте connectionId, dbName и sql, чтобы выполнить SQL в целевой базе данных и вернуть до 50 строк результата. Применяется уровень безопасности; в режиме только чтения разрешены только SELECT/SHOW/DESCRIBE.",
"ai_settings.tools.get_columns.desc": "Получить структуру столбцов таблицы",
"ai_settings.tools.get_columns.detail": "Передайте connectionId, dbName и tableName, чтобы получить имя, тип, признак NULL, значение по умолчанию и комментарий каждого столбца. Перед генерацией SQL AI должен вызвать этот инструмент, чтобы подтвердить реальные имена столбцов.",
"ai_settings.tools.get_connections.desc": "Получить все доступные подключения к базам данных",
"ai_settings.tools.get_connections.detail": "Возвращает ID подключения, имя, тип (MySQL/PostgreSQL и т. д.) и адрес Host. AI использует эти сведения, чтобы выбрать подключение для первичного исследования.",
"ai_settings.tools.get_databases.desc": "Получить все базы данных в выбранном подключении",
"ai_settings.tools.get_databases.detail": "Передайте connectionId, чтобы получить список имен баз данных или схем в этом подключении.",
"ai_settings.tools.get_table_ddl.desc": "Получить DDL таблицы",
"ai_settings.tools.get_table_ddl.detail": "Передайте connectionId, dbName и tableName, чтобы получить полный оператор CREATE TABLE, включая определения столбцов, индексы, ограничения и метаданные.",
"ai_settings.tools.get_tables.desc": "Получить все имена таблиц в базе данных",
"ai_settings.tools.get_tables.detail": "Передайте connectionId и dbName, чтобы получить список таблиц. AI использует его для поиска целевой таблицы, о которой говорит пользователь.",
"ai_settings.tools.parameters.default_value": "По умолчанию: {{value}}",
"ai_settings.tools.parameters.enum_values": "Допустимые значения: {{values}}",
"ai_settings.tools.parameters.example": "Пример:",
"ai_settings.tools.parameters.hint_title": "Подсказки по параметрам",
"ai_settings.tools.parameters.optional": "Необязательный",
"ai_settings.tools.parameters.required": "Обязательный",
"ai_settings.tools.parameters.type_label": "Тип: {{type}}",
"ai_settings.tools.params_label": "Параметры:",
"ai_settings.tools.params.none": "Без параметров",
"ai_settings.tools.search.aria_label": "Поиск встроенных инструментов",
"ai_settings.tools.search.clear": "Очистить",
"ai_settings.tools.search.placeholder": "Поиск инструментов, процессов или параметров, например mcp / lineLimit / allowMutating / transaction",
"ai_settings.tools.summary": "Показано {{flowVisible}}/{{flowTotal}} рекомендуемых процессов и {{toolVisible}}/{{toolTotal}} встроенных инструментов.",
"ai_settings.tools.workflow": "💡 Процесс: get_connections → get_databases → get_tables → get_columns → сформировать SQL",
"ai.service.mcp_client.claude_code.config_dir_create_failed": "Не удалось создать каталог конфигурации Claude Code: {{detail}}",
"ai.service.mcp_client.claude_code.config_format_invalid": "Неверный формат конфигурации Claude Code: {{path}} должен быть {{expected}}",
"ai.service.mcp_client.claude_code.config_parse_failed": "Не удалось разобрать конфигурацию Claude Code: {{detail}}",
"ai.service.mcp_client.claude_code.config_path_failed": "Не удалось найти конфигурацию Claude Code: {{detail}}",
"ai.service.mcp_client.claude_code.config_read_failed": "Не удалось прочитать конфигурацию Claude Code: {{detail}}",
"ai.service.mcp_client.claude_code.config_serialize_failed": "Не удалось сериализовать конфигурацию Claude Code: {{detail}}",
"ai.service.mcp_client.claude_code.config_write_failed": "Не удалось записать конфигурацию Claude Code: {{detail}}",
"ai.service.mcp_client.claude_code.install_success": "Пользовательская конфигурация MCP для Claude Code записана. Перезапустите Claude CLI, после чего GoNavi появится в User MCPs в /mcp.",
"ai.service.mcp_client.claude_code.status.connected": "Пользовательская конфигурация GoNavi MCP для Claude Code обнаружена и совпадает с текущим путем установки GoNavi",
"ai.service.mcp_client.claude_code.status.missing": "Пользовательская конфигурация GoNavi MCP для Claude Code не обнаружена",
"ai.service.mcp_client.claude_code.status.path_check_failed": "В Claude Code обнаружена запись GoNavi MCP, но проверка текущего пути установки GoNavi не удалась: {{detail}}",
"ai.service.mcp_client.claude_code.status.path_mismatch": "В Claude Code обнаружена запись GoNavi MCP, но она не совпадает с текущим путем установки GoNavi. Рекомендуется обновить.",
"ai.service.mcp_client.codex.config_dir_create_failed": "Не удалось создать каталог конфигурации Codex: {{detail}}",
"ai.service.mcp_client.codex.config_format_invalid": "Неверный формат конфигурации Codex: {{path}} не удалось разобрать как {{expected}}",
"ai.service.mcp_client.codex.config_path_failed": "Не удалось найти конфигурацию Codex: {{detail}}",
"ai.service.mcp_client.codex.config_read_failed": "Не удалось прочитать конфигурацию Codex: {{detail}}",
"ai.service.mcp_client.codex.config_write_failed": "Не удалось записать конфигурацию Codex: {{detail}}",
"ai.service.mcp_client.codex.install_success": "Пользовательская конфигурация MCP для Codex записана. Перезапустите Codex CLI или настольное приложение, чтобы увидеть GoNavi.",
"ai.service.mcp_client.codex.status.connected": "Пользовательская конфигурация GoNavi MCP для Codex обнаружена и совпадает с текущим путем установки GoNavi",
"ai.service.mcp_client.codex.status.missing": "Пользовательская конфигурация GoNavi MCP для Codex не обнаружена",
"ai.service.mcp_client.codex.status.path_check_failed": "В Codex обнаружена запись GoNavi MCP, но проверка текущего пути установки GoNavi не удалась: {{detail}}",
"ai.service.mcp_client.codex.status.path_mismatch": "В Codex обнаружена запись GoNavi MCP, но она не совпадает с текущим путем установки GoNavi. Рекомендуется обновить.",
"ai.service.mcp_client.executable_path_empty": "Путь к текущему исполняемому файлу GoNavi пуст",
"ai.service.mcp_client.executable_path_failed": "Не удалось найти текущий исполняемый файл GoNavi: {{detail}}",
"ai.service.mcp_client.remote.status.message": "{{label}} обычно работает в облаке или удаленной среде. Подключите его к Windows GoNavi через удаленный MCP-мост; пароли баз данных остаются на этой машине GoNavi.",
"ai.service.mcp_client.user_home_dir_unavailable": "Не удалось определить домашний каталог текущего пользователя",
"app.about.action.check_updates": "Проверить обновления",
"app.about.action.download_progress": "Ход загрузки",
"app.about.action.download_update": "Скачать обновление",
"app.about.action.hide_to_background": "Скрыть в фон",
"app.about.action.install_update": "Установить обновление",
"app.about.action.mute_this_version": "Не напоминать в этот раз",
"app.about.action.open_install_directory": "Открыть каталог установки",
"app.about.community.ai_book": "AI全书",
"app.about.description": "Просмотр версии, ссылок на репозиторий, статуса обновлений и загрузок.",
"app.about.download_progress.title": "Скачать обновление",
"app.about.download_progress.title_with_version": "Скачать обновление {{version}}",
"app.about.field.author": "Автор",
"app.about.field.community": "Сообщество",
"app.about.field.update_status": "Статус обновления",
"app.about.field.version": "Версия",
"app.about.message.check_failed_with_error": "Проверка обновлений не удалась: {{error}}",
"app.about.message.download_completed": "Загрузка обновления завершена",
"app.about.message.download_completed_with_path": "Загрузка обновления завершена. Путь к пакету: {{path}}",
"app.about.message.download_failed_with_error": "Не удалось скачать обновление: {{error}}",
"app.about.message.install_directory_opened_manual_replace": "Каталог установки открыт. Завершите замену вручную.",
"app.about.message.install_failed_with_error": "Не удалось установить обновление: {{error}}",
"app.about.message.load_failed": "Не удалось получить информацию о приложении: {{error}}",
"app.about.message.new_version_found": "Найдена новая версия {{version}}",
"app.about.message.open_install_directory_failed_with_error": "Не удалось открыть каталог установки: {{error}}",
"app.about.message.update_package_ready": "Пакет обновления готов ({{version}})",
"app.about.message.update_package_ready_with_path": "Пакет обновления готов ({{version}}), путь: {{path}}",
"app.about.project_links": "Ссылки проекта",
"app.about.title": "О GoNavi",
"app.about.update_status.check_failed": "Проверка обновлений не удалась: {{error}}",
"app.about.update_status.checking": "Проверка обновлений...",
"app.about.update_status.latest": "У вас установлена последняя версия ({{version}})",
"app.about.update_status.new_version_downloaded": "Найдена новая версия {{version}} (загружена; откройте ход загрузки для установки)",
"app.about.update_status.new_version_not_downloaded": "Найдена новая версия {{version}} (не загружена)",
"app.about.update_status.not_checked": "Не проверялось",
"app.ai_panel.action.close": "Закрыть панель",
"app.ai_panel.action.reload": "Перезагрузить",
"app.ai_panel.aria.close": "Закрыть AI-панель",
"app.ai_panel.error.description": "Обычно это происходит из-за того, что после hot reload в режиме разработки перестают работать лениво загружаемые ресурсы. Полный белый экран уже предотвращен, можно сразу повторить попытку.",
"app.ai_panel.error.title": "Не удалось загрузить AI-панель",
"app.backend.error.reset_webview_zoom_failed": "Не удалось сбросить масштаб WebView2: {{detail}}",
"app.browser_mock.export_connection_package_unsupported": "Браузерный mock не поддерживает экспорт пакетов восстановления",
"app.browser_mock.export_sql_unsupported": "Браузерный mock не поддерживает экспорт SQL-файлов",
"app.browser_mock.import_connection_package_unsupported": "Браузерный mock не поддерживает импорт пакетов восстановления; поддерживаются только старые массивы подключений JSON",
"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.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.provider.test_failed_detail": "Проверка подключения не удалась: {{detail}}",
"app.browser_mock.provider.test_success": "Проверка подключения к конечной точке выполнена успешно",
"app.connection_package.action.start_export": "Начать экспорт",
"app.connection_package.action.start_import": "Начать импорт",
"app.connection_package.dialog.export_title": "Экспорт подключений",
"app.connection_package.dialog.file_password_placeholder": "Введите пароль защиты файла (необязательно)",
"app.connection_package.dialog.help.encrypted_passwords_recommend_file_password": "Пароли зашифрованы. Для передачи через публичную сеть рекомендуется задать пароль защиты файла.",
"app.connection_package.dialog.help.exclude_passwords": "Будут экспортированы только настройки подключений. Пароли не включаются.",
"app.connection_package.dialog.help.share_file_password_separately": "Передайте пароль получателю по отдельному каналу. Не отправляйте его вместе с файлом.",
"app.connection_package.dialog.import_password_title": "Введите пароль импорта",
"app.connection_package.dialog.option.include_passwords": "Экспортировать пароли подключений",
"app.connection_package.dialog.option.use_file_password": "Задать пароль защиты файла",
"app.connection_package.dialog.restore_password_placeholder": "Введите пароль пакета восстановления",
"app.connection_package.error.export_capability_unavailable": "Экспорт не выполнен: текущий backend не предоставляет новую возможность экспорта",
"app.connection_package.error.file_password_required": "Пароль защиты файла не может быть пустым",
"app.connection_package.error.import_capability_unavailable": "Импорт не выполнен: текущий backend не предоставляет новую возможность импорта",
"app.connection_package.error.import_no_connections": "Импорт не выполнен: backend не вернул список подключений",
"app.connection_package.error.missing_import_payload": "Импорт не выполнен: содержимое пакета восстановления для импорта не найдено",
"app.connection_package.error.refresh_failed_no_connections": "Импорт выполнен, но обновить список подключений не удалось: backend не вернул список подключений",
"app.connection_package.error.restore_password_required": "Пароль пакета восстановления не может быть пустым",
"app.connection_package.message.export_failed": "Экспорт не выполнен",
"app.connection_package.message.export_succeeded": "Экспорт выполнен",
"app.connection_package.message.import_failed": "Импорт не выполнен",
"app.connection_package.message.import_failed_with_error": "Импорт не выполнен: {{error}}",
"app.connection_package.message.imported_connections": "Импортировано подключений: {{count}}",
"app.connection_package.message.imported_with_missing_passwords": "Импортировано подключений: {{count}}. В некоторых подключениях нет паролей; отредактируйте эти подключения, введите пароли и сохраните.",
"app.connection_package.message.no_connections_to_export": "Нет подключений для экспорта",
"app.connection_package.message.unsupported_file_format": "Ошибка формата файла: поддерживаются только пакеты восстановления GoNavi, старые массивы подключений JSON или MySQL Workbench XML",
"app.connection.message.editable_load_failed": "Не удалось загрузить сведения сохраненного подключения. Вместо этого будет открыта маскированная конфигурация.",
"app.connection.message.editable_load_failed_with_detail": "Не удалось загрузить сведения сохраненного подключения: {{detail}}. Вместо этого будет открыта маскированная конфигурация.",
"app.data_root.action.migrate_and_switch": "Перенести существующие данные и переключиться",
"app.data_root.action.open_current": "Открыть текущий каталог",
"app.data_root.action.restore_default_directory": "Восстановить каталог по умолчанию",
"app.data_root.action.select": "Выбрать каталог",
"app.data_root.action.switch_only": "Только переключиться на выбранный каталог",
"app.data_root.apply_method": "Способ применения",
"app.data_root.backend.dialog.select_directory": "Выбрать каталог данных GoNavi",
"app.data_root.backend.error.create_bootstrap_directory_failed": "Не удалось создать каталог начальной загрузки по умолчанию: {{detail}}",
"app.data_root.backend.error.create_data_directory_failed": "Не удалось создать каталог данных: {{detail}}",
"app.data_root.backend.error.create_target_failed": "Не удалось создать целевой каталог данных: {{detail}}",
"app.data_root.backend.error.directory_empty": "Каталог данных не может быть пустым",
"app.data_root.backend.error.directory_unavailable": "Каталог данных не существует или недоступен",
"app.data_root.backend.error.migrate_directory_failed": "Не удалось перенести каталог ({{entry}}): {{detail}}",
"app.data_root.backend.error.migrate_file_failed": "Не удалось перенести файл ({{entry}}): {{detail}}",
"app.data_root.backend.error.open_directory_failed": "Не удалось открыть каталог данных: {{detail}}",
"app.data_root.backend.error.open_directory_unsupported": "Открытие каталогов не поддерживается на этой платформе: {{platform}}",
"app.data_root.backend.error.parse_migrated_security_update_manifest_failed": "Не удалось разобрать манифест резервной копии обновления безопасности после переноса: {{detail}}",
"app.data_root.backend.error.parse_migrated_security_update_result_failed": "Не удалось разобрать результат обновления безопасности после переноса: {{detail}}",
"app.data_root.backend.error.read_migrated_security_update_manifest_failed": "Не удалось прочитать манифест резервной копии обновления безопасности после переноса: {{detail}}",
"app.data_root.backend.error.read_migrated_security_update_result_failed": "Не удалось прочитать результат обновления безопасности после переноса: {{detail}}",
"app.data_root.backend.error.read_migrated_security_update_state_failed": "Не удалось прочитать состояние обновления безопасности после переноса: {{detail}}",
"app.data_root.backend.error.read_source_failed": "Не удалось прочитать исходные данные ({{entry}}): {{detail}}",
"app.data_root.backend.error.read_source_root_failed": "Не удалось прочитать исходный каталог данных: {{detail}}",
"app.data_root.backend.error.resolve_source_failed": "Не удалось определить исходный каталог данных: {{detail}}",
"app.data_root.backend.error.resolve_target_failed": "Не удалось определить целевой каталог данных: {{detail}}",
"app.data_root.backend.error.target_inside_source": "Целевой каталог данных не может находиться внутри исходного каталога",
"app.data_root.backend.error.write_migrated_security_update_manifest_failed": "Не удалось записать манифест резервной копии обновления безопасности после переноса: {{detail}}",
"app.data_root.backend.error.write_migrated_security_update_result_failed": "Не удалось записать результат обновления безопасности после переноса: {{detail}}",
"app.data_root.backend.error.write_migrated_security_update_state_failed": "Не удалось записать состояние обновления безопасности после переноса: {{detail}}",
"app.data_root.backend.message.migrated_restart": "Данные перенесены, выполнено переключение на новый каталог. Перезапустите приложение, чтобы завершить переключение всех модулей.",
"app.data_root.backend.message.opened": "Каталог данных открыт",
"app.data_root.backend.message.unchanged": "Каталог данных не изменился",
"app.data_root.backend.message.updated_restart": "Каталог данных обновлен. Перезапустите приложение, чтобы AI и другие работающие модули полностью переключились на новый каталог.",
"app.data_root.current_directory": "Текущий каталог",
"app.data_root.default_directory": "Каталог по умолчанию",
"app.data_root.description": "Единое управление корневым каталогом файловых данных, таких как подключения, прокси, настройки AI и драйверы.",
"app.data_root.driver_directory": "Каталог драйверов",
"app.data_root.message.apply_failed": "Не удалось применить каталог данных",
"app.data_root.message.apply_failed_with_error": "Не удалось применить каталог данных: {{error}}",
"app.data_root.message.load_failed": "Не удалось загрузить сведения о каталоге данных",
"app.data_root.message.load_failed_with_error": "Не удалось загрузить сведения о каталоге данных: {{error}}",
"app.data_root.message.open_failed": "Не удалось открыть каталог данных",
"app.data_root.message.open_failed_with_error": "Не удалось открыть каталог данных: {{error}}",
"app.data_root.message.select_failed": "Не удалось выбрать каталог данных",
"app.data_root.message.select_failed_with_error": "Не удалось выбрать каталог данных: {{error}}",
"app.data_root.message.select_valid_first": "Сначала выберите допустимый каталог данных",
"app.data_root.message.updated": "Каталог данных обновлен",
"app.data_root.placeholder.select_new_directory": "Выберите новый каталог данных",
"app.data_root.restart_hint": "После переключения рекомендуется перезапустить приложение, чтобы AI и другие долгоживущие модули полностью перешли в новый каталог. Конфиденциальные пароли остаются в системном secret store и не переносятся вместе с файловыми каталогами.",
"app.data_root.switch_target": "Цель переключения",
"app.data_root.title": "Место хранения данных",
"app.linux_cjk_font_banner.action.open_font_settings": "Настройки шрифтов",
"app.linux_cjk_font_banner.description": "Китайский текст может отображаться квадратами вместо символов. Установите шрифты, затем перезапустите GoNavi: ",
"app.linux_cjk_font_banner.title": "Отсутствуют Linux CJK-шрифты",
"app.proxy.description": "Единая настройка проверки обновлений, управления драйверами и сетевого выхода для подключений без отдельного прокси.",
"app.proxy.enable": "Включить глобальный прокси",
"app.proxy.host": "Хост прокси",
"app.proxy.host_placeholder": "Пример: 127.0.0.1",
"app.proxy.message.config_applied": "Конфигурация глобального прокси применена",
"app.proxy.message.invalid_enabled": "Глобальный прокси включен, но хост или порт недействительны. Сейчас он считается отключенным.",
"app.proxy.message.save_failed": "Не удалось настроить глобальный прокси: {{error}}",
"app.proxy.password_optional": "Пароль (необязательно)",
"app.proxy.port": "Порт",
"app.proxy.scope_hint": "* Применяется к проверке обновлений, сетевым запросам управления драйверами и подключениям к базе данных без отдельного прокси",
"app.proxy.section_title": "Глобальный прокси",
"app.proxy.title": "Настройки глобального прокси",
"app.proxy.type": "Тип прокси",
"app.proxy.username_optional": "Имя пользователя (необязательно)",
"app.security_update.error.capability_unavailable": "Функция безопасного обновления недоступна",
"app.security_update.message.completed": "Безопасное обновление сохраненных конфигураций завершено",
"app.security_update.message.needs_attention": "Обновление еще не завершено. Несколько конфигураций требуют внимания.",
"app.security_update.message.not_finished_retry_later": "Безопасное обновление не завершено. Повторите попытку позже.",
"app.security_update.message.postpone_failed": "Сейчас не удалось отложить это безопасное обновление",
"app.security_update.message.rolled_back": "Это обновление не завершено. Система сохранила текущую рабочую конфигурацию.",
"app.security_update.stage.checking_saved_config": "Проверка сохраненных конфигураций",
"app.security_update.stage.updating_secure_storage": "Обновление безопасного хранилища",
"app.security_update.stage.verifying_result": "Проверка результата обновления",
"app.settings.description": "Управление общими настройками: язык, прокси, тема, AI и сведения о приложении.",
"app.settings.entry.about.description": "Просмотр версии, ссылок на репозиторий и статуса обновлений.",
"app.settings.entry.about.title": "О GoNavi",
"app.settings.entry.ai.description": "Управление поставщиками моделей, ключами и поведением по умолчанию.",
"app.settings.entry.ai.title": "Настройки AI",
"app.settings.entry.proxy.description": "Настройка проверки обновлений, управления драйверами и общего сетевого доступа.",
"app.settings.entry.proxy.title": "Глобальный прокси",
"app.settings.entry.theme.description": "Переключение светлой или темной темы и настройка внешнего вида интерфейса.",
"app.settings.entry.theme.title": "Тема и внешний вид",
"app.settings.title": "Центр настроек",
"app.shortcuts.action.diagnoseQuery.description": "Выполнить EXPLAIN для текущего SQL и показать план выполнения с предложениями индексов",
"app.shortcuts.action.diagnoseQuery.label": "SQL-диагностика",
"app.shortcuts.action.focusSidebarSearch.description": "Перейти к полю поиска в левом дереве подключений",
"app.shortcuts.action.focusSidebarSearch.label": "Фокус на поиске боковой панели",
"app.shortcuts.action.newConnection.description": "Создать новое подключение к базе данных, runtime или другому источнику данных",
"app.shortcuts.action.newConnection.label": "Новый источник данных",
"app.shortcuts.action.newQueryTab.description": "Создать новую вкладку SQL-запроса",
"app.shortcuts.action.newQueryTab.label": "Новая вкладка запроса",
"app.shortcuts.action.openShortcutManager.description": "Открыть панель настройки горячих клавиш",
"app.shortcuts.action.openShortcutManager.label": "Открыть управление горячими клавишами",
"app.shortcuts.action.record": "Записать",
"app.shortcuts.action.resetWindowZoom.description": "Запустить вручную, если после восстановления из панели задач Windows шрифт стал аномально крупным; один раз переключает максимизацию, чтобы WebView2 пересчитал метрики шрифта",
"app.shortcuts.action.resetWindowZoom.label": "Сбросить масштаб окна",
"app.shortcuts.action.restore_defaults": "Восстановить значения по умолчанию",
"app.shortcuts.action.runQuery.description": "Выполнить SQL на текущей странице запроса",
"app.shortcuts.action.runQuery.label": "Выполнить SQL",
"app.shortcuts.action.saveQuery.description": "Сохранить текущую вкладку запроса; для безымянных запросов откроется окно сохранения",
"app.shortcuts.action.saveQuery.label": "Сохранить запрос",
"app.shortcuts.action.selectCurrentStatement.description": "Выбрать SQL-оператор под курсором в редакторе запросов",
"app.shortcuts.action.selectCurrentStatement.label": "Выбрать текущий оператор",
"app.shortcuts.action.sendAIChatMessage.description": "Отправить текущее сообщение из поля ввода AI; Shift+Enter всегда вставляет новую строку",
"app.shortcuts.action.sendAIChatMessage.label": "Отправить AI-чат",
"app.shortcuts.action.showSlowQueries.description": "Просмотр истории медленных SQL-запросов для текущего подключения (порог по умолчанию 500мс)",
"app.shortcuts.action.showSlowQueries.label": "История медленных SQL",
"app.shortcuts.action.switchToNextTab.description": "Переключиться вправо среди открытых вкладок",
"app.shortcuts.action.switchToNextTab.label": "Следующая вкладка",
"app.shortcuts.action.switchToPreviousTab.description": "Переключиться влево среди открытых вкладок",
"app.shortcuts.action.switchToPreviousTab.label": "Предыдущая вкладка",
"app.shortcuts.action.toggleAIPanel.description": "Открыть правую панель аналитики данных AI",
"app.shortcuts.action.toggleAIPanel.label": "Открыть аналитику данных AI",
"app.shortcuts.action.toggleLogPanel.description": "Открыть или закрыть панель журнала выполнения SQL",
"app.shortcuts.action.toggleLogPanel.label": "Переключить панель журнала",
"app.shortcuts.action.toggleMacFullscreen.description": "Переключение нативного полноэкранного режима в режиме нативных элементов окна macOS",
"app.shortcuts.action.toggleMacFullscreen.label": "Переключить нативный полноэкранный режим",
"app.shortcuts.action.toggleQueryResultsPanel.description": "Показать или скрыть область результатов под редактором запросов",
"app.shortcuts.action.toggleQueryResultsPanel.label": "Переключить область результатов",
"app.shortcuts.action.toggleTheme.description": "Переключение между светлой и темной темами",
"app.shortcuts.action.toggleTheme.label": "Переключить тему",
"app.shortcuts.capture_hint": "Нажмите сочетание клавиш после нажатия \"Записать\". Нажмите Esc, чтобы отменить запись. Для глобальных горячих клавиш рекомендуется модификатор; отправка AI-чата поддерживает только комбинации с Enter, а Shift+Enter сохраняет перенос строки.",
"app.shortcuts.capture_waiting": "Нажмите сочетание клавиш...",
"app.shortcuts.context.datagrid": "Таблица данных",
"app.shortcuts.context.global": "Браузер",
"app.shortcuts.context.monaco": "Редактор",
"app.shortcuts.description": "Просматривайте, записывайте и включайте распространенные глобальные горячие клавиши в одном месте.",
"app.shortcuts.message.ai_send_limit": "Горячая клавиша отправки AI-чата поддерживает только Enter / Ctrl+Enter / Cmd+Enter / Alt+Enter; Shift+Enter сохраняет перенос строки",
"app.shortcuts.message.conflict": "Конфликт с \"{{action}}\". Выберите другое сочетание клавиш.",
"app.shortcuts.message.modifier_required": "Сочетание клавиш должно содержать хотя бы одну из клавиш Ctrl / Alt / Shift / Meta",
"app.shortcuts.message.reserved_conflict_info": "Переопределяет стандартную горячую клавишу редактора \"{{labels}}\"",
"app.shortcuts.message.reserved_conflict_warning": "Конфликт с {{contexts}} \"{{labels}}\"; может не работать",
"app.shortcuts.message.restored_defaults": "Горячие клавиши по умолчанию восстановлены",
"app.shortcuts.reserved.browser_close_tab": "Браузер закрыть вкладку",
"app.shortcuts.reserved.browser_new_incognito_window": "Браузер новое инкогнито-окно",
"app.shortcuts.reserved.browser_new_tab": "Браузер новая вкладка",
"app.shortcuts.reserved.browser_new_window": "Браузер новое окно",
"app.shortcuts.reserved.browser_print": "Браузер печать",
"app.shortcuts.reserved.browser_save": "Браузер сохранить",
"app.shortcuts.reserved.datagrid_copy": "Копировать таблицу данных",
"app.shortcuts.reserved.editor_add_selection": "Редактор добавить выделение",
"app.shortcuts.reserved.editor_delete_line": "Редактор удалить строку",
"app.shortcuts.reserved.editor_find": "Редактор поиск",
"app.shortcuts.reserved.editor_find_global": "Редактор глобальный поиск",
"app.shortcuts.reserved.editor_goto_line": "Редактор перейти к строке",
"app.shortcuts.reserved.editor_insert_line_after": "Редактор вставить строку ниже",
"app.shortcuts.reserved.editor_insert_line_before": "Редактор вставить строку выше",
"app.shortcuts.reserved.editor_quick_open": "Редактор быстрое открытие",
"app.shortcuts.reserved.editor_rename_symbol": "Редактор переименовать символ",
"app.shortcuts.reserved.editor_replace": "Редактор замена",
"app.shortcuts.title": "Управление горячими клавишами",
"app.sidebar.ai_assistant": "AI-ассистент",
"app.sidebar.resize_width": "Перетащите, чтобы изменить ширину",
"app.sidebar.settings": "Настройки",
"app.sidebar.sql_execution_log": "Журнал выполнения SQL",
"app.sidebar.tools": "Инструменты",
"app.startup_readiness.loading_local_config": "Загрузка локальной конфигурации...",
"app.startup_readiness.loading_security_config": "Загрузка конфигурации безопасности...",
"app.theme.action.restore_defaults": "Восстановить значения по умолчанию",
"app.theme.appearance_settings_description": "Единая настройка масштаба, размера шрифта, прозрачности и размытия.",
"app.theme.appearance_settings_title": "Настройки внешнего вида",
"app.theme.appearance.blur_hint": "* Управляет размытием только внутренних оверлейных слоев приложения",
"app.theme.appearance.blur_title": "Гауссово размытие (Blur)",
"app.theme.appearance.enable_transparency_blur": "Включить прозрачность и размытие",
"app.theme.appearance.enable_transparency_blur_hint": "При отключении текущие пороги сохраняются и будут восстановлены при повторном включении.",
"app.theme.appearance.font_size_title": "Базовый размер шрифта (Font Size)",
"app.theme.appearance.opacity_title": "Непрозрачность фона (Opacity)",
"app.theme.appearance.transparency_blur_title": "Эффекты прозрачности и размытия",
"app.theme.appearance.ui_scale_hint": "* Для небольших экранов рекомендуется 85%-95%",
"app.theme.appearance.ui_scale_title": "Масштаб UI (UI Scale)",
"app.theme.appearance.windows_acrylic_hint": "Windows использует системный эффект Acrylic. Сила размытия управляется системой.",
"app.theme.data_table.column_width_hint": "В стандартном режиме ширина столбца по умолчанию 200px; в компактном режиме 140px. Вручную измененные ширины столбцов сохраняются в приоритете.",
"app.theme.data_table.column_width_mode": "Режим ширины столбцов таблицы данных",
"app.theme.data_table.column_width_mode.compact": "Компактный 140px",
"app.theme.data_table.column_width_mode.standard": "Стандартный 200px",
"app.theme.data_table.density": "Плотность таблицы",
"app.theme.data_table.density_hint": "Управляет высотой строк, шириной столбцов и отступами. Комфортная плотность удобна для больших экранов; компактная увеличивает плотность информации. Ширина столбцов, измененная вручную, сохраняется в приоритете.",
"app.theme.data_table.density.comfortable": "Комфортная",
"app.theme.data_table.density.compact": "Компактная",
"app.theme.data_table.density.standard": "Стандартная",
"app.theme.data_table.follow_global": "Следовать глобально",
"app.theme.data_table.font_size": "Размер шрифта таблицы данных",
"app.theme.data_table.sidebar_tree_font_size": "Размер шрифта левого дерева схем",
"app.theme.data_table.title": "Отображение таблицы данных",
"app.theme.data_table.vertical_borders": "Показывать вертикальные разделители таблицы данных",
"app.theme.data_table.vertical_borders_hint": "Влияет только на DataGrid на страницах таблиц данных и не затрагивает другие табличные компоненты.",
"app.theme.font_family.default_mono_option": "Шрифт кода по умолчанию",
"app.theme.font_family.default_ui_option": "Шрифт UI по умолчанию",
"app.theme.font_family.linux_cjk_install_prefix": "Ubuntu/Linux не обнаружил китайские CJK-шрифты, поэтому интерфейс может показывать квадраты вместо символов. Установите: ",
"app.theme.font_family.linux_cjk_install_suffix": ", затем перезапустите GoNavi.",
"app.theme.font_family.load_failed": "Не удалось загрузить системные шрифты",
"app.theme.font_family.load_failed_fallback": "Не удалось загрузить системные шрифты. Используются стандартные наборы шрифтов: {{error}}",
"app.theme.font_family.loaded_ui_hint": "Считано {{count}} семейств шрифтов с этой системы. Введите текст для поиска. Очистите поле, чтобы вернуться к шрифту UI по умолчанию.",
"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.mono_title": "Моноширинное семейство шрифтов",
"app.theme.font_family.title": "Семейство шрифтов",
"app.theme.font_family.ui_title": "Семейство шрифтов UI",
"app.theme.mac_window.restart_hint": "* Пользовательские кнопки справа вверху скрыты. Если системный стиль окна не обновился сразу, перезапустите приложение.",
"app.theme.mac_window.title": "Управление окном macOS",
"app.theme.mac_window.use_native_controls": "Использовать нативные элементы управления окном macOS",
"app.theme.mac_window.use_native_controls_hint": "Показывает красную, желтую и зеленую кнопки слева вверху и отдает приоритет нативному полноэкранному поведению macOS.",
"app.theme.mode_title": "Режим темы",
"app.theme.mode.dark.description": "Подходит для слабого освещения и более спокойного визуального восприятия.",
"app.theme.mode.dark.label": "Темная тема",
"app.theme.mode.light.description": "Подходит для яркой среды и более легкой визуальной иерархии.",
"app.theme.mode.light.label": "Светлая тема",
"app.theme.nav.appearance.description": "Масштаб, шрифт и прозрачность",
"app.theme.nav.appearance.title": "Параметры внешнего вида",
"app.theme.nav.theme.description": "Переключение светлой и темной темы",
"app.theme.nav.theme.title": "Режим темы",
"app.theme.navigation_title": "Навигация по настройкам",
"app.theme.startup_window.fullscreen": "Полный экран при запуске",
"app.theme.startup_window.fullscreen_windows": "Полный экран при запуске (Windows обрабатывает это как максимизацию)",
"app.theme.startup_window.hint": "* Вступает в силу при следующем запуске",
"app.theme.startup_window.title": "Окно запуска",
"app.theme.startup_window.windows_hint": "* В Windows этот параметр обрабатывается как \"максимизировать при запуске\" и вступает в силу при следующем запуске",
"app.theme.tab_display.action.move_down": "Вниз",
"app.theme.tab_display.action.move_up": "Вверх",
"app.theme.tab_display.badge.current": "Текущий",
"app.theme.tab_display.description": "Настройте порядок отображения имени подключения, типа объекта, имени объекта, базы данных, Schema и Host/IP. В двухстрочном режиме контекст можно вынести во вторую строку.",
"app.theme.tab_display.element.connection.description": "Псевдоним подключения или имя среды, например DEV",
"app.theme.tab_display.element.connection.label": "Подключение",
"app.theme.tab_display.element.database.description": "Текущее имя DB / catalog",
"app.theme.tab_display.element.database.label": "База данных",
"app.theme.tab_display.element.host.description": "Краткий адрес целевого подключения",
"app.theme.tab_display.element.host.label": "Host/IP",
"app.theme.tab_display.element.kind.description": "Метки типов, например SQL / TABLE / VIEW",
"app.theme.tab_display.element.kind.label": "Тип объекта",
"app.theme.tab_display.element.object.description": "Основные имена, например таблицы, запроса или ресурса",
"app.theme.tab_display.element.object.label": "Имя объекта",
"app.theme.tab_display.element.schema.description": "Префикс schema / owner",
"app.theme.tab_display.element.schema.label": "Schema",
"app.theme.tab_display.layout.double": "Две строки",
"app.theme.tab_display.layout.single": "Одна строка",
"app.theme.tab_display.preview.default_label": "Метка по умолчанию",
"app.theme.tab_display.preview.focused": "; выбрано {{label}}",
"app.theme.tab_display.preview.prefix": "Текущий предпросмотр: ",
"app.theme.tab_display.preview.secondary": ", вторая строка {{labels}}",
"app.theme.tab_display.row.primary": "Основная строка",
"app.theme.tab_display.row.secondary": "Вторая строка",
"app.theme.tab_display.title": "Отображение меток вкладок",
"app.theme.theme_settings_description": "Переключение светлой и темной тем с сохранением единого визуального стиля.",
"app.theme.theme_settings_title": "Настройки темы",
"app.theme.ui_version.badge.new": "NEW",
"app.theme.ui_version.beta_warning": "Новый UI все еще находится в Beta, поэтому некоторые экраны могут отличаться от старого UI. При необходимости можно переключиться обратно в любой момент.",
"app.theme.ui_version.description": "Переключайте общий внешний вид, сохраняя доступ ко всем функциям. Новая версия использует более компактную информационную иерархию и более современный визуальный язык.",
"app.theme.ui_version.legacy.badge": "По умолчанию",
"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.ui_version.title": "Версия интерфейса",
"app.theme.ui_version.v2.badge": "Beta",
"app.theme.ui_version.v2.description": "Переработанный компактный интерфейс с усиленным входом AI и обзором таблиц.",
"app.theme.ui_version.v2.label": "Новый UI",
"app.tools.description": "Единое управление конфигурацией подключений, синхронизацией, драйверами и горячими клавишами.",
"app.tools.entry.data_compare.description": "Анализирует добавленные, обновленные, удаленные и неизмененные строки по первичному ключу.",
"app.tools.entry.data_compare.title": "Сравнение данных",
"app.tools.entry.data_root.description": "Просмотр, переключение или перенос локального места хранения данных.",
"app.tools.entry.data_root.title": "Каталог данных",
"app.tools.entry.drivers.description": "Установка, обновление или удаление драйверов баз данных.",
"app.tools.entry.drivers.title": "Управление драйверами",
"app.tools.entry.export.description": "Экспорт текущих подключений и видимых полей конфигурации.",
"app.tools.entry.export.title": "Экспорт конфигурации подключений",
"app.tools.entry.import.description": "Восстановление списка подключений из локального файла.",
"app.tools.entry.import.title": "Импорт конфигурации подключений",
"app.tools.entry.schema_compare.description": "Сравнивает различия структуры исходной и целевой таблиц, только предварительный просмотр без выполнения.",
"app.tools.entry.schema_compare.title": "Сравнение схем",
"app.tools.entry.security_update.description": "Просмотр статуса безопасного обновления сохраненных конфигураций.",
"app.tools.entry.security_update.status_description": "Текущий статус: {{status}}",
"app.tools.entry.security_update.title": "Безопасное обновление",
"app.tools.entry.shortcuts.description": "Просмотр и настройка глобальных горячих клавиш.",
"app.tools.entry.shortcuts.title": "Управление горячими клавишами",
"app.tools.entry.snippets.description": "Управление SQL-сниппетами и автодополнением по префиксу.",
"app.tools.entry.snippets.title": "Управление сниппетами",
"app.tools.entry.sync.description": "Открыть рабочий процесс синхронизации между источниками.",
"app.tools.entry.sync.title": "Синхронизация данных",
"app.tools.group.config.description": "Импорт/экспорт, каталог данных и обслуживание сохраненных конфигураций.",
"app.tools.group.config.title": "Подключения и конфигурация",
"app.tools.group.workflow.description": "Сравнение структуры, просмотр различий и запуск синхронизации.",
"app.tools.group.workflow.title": "Потоки данных",
"app.tools.group.workspace.description": "Драйверы, сниппеты кода и глобальные горячие клавиши.",
"app.tools.group.workspace.title": "Редактор и драйверы",
"app.tools.title": "Центр инструментов",
"app.update.action.hide_to_background": "Скрыть в фон",
"app.update.action.install_update": "Установить обновление",
"app.update.action.open_install_directory": "Открыть каталог установки",
"app.update.backend.error.check_failed": "Не удалось проверить обновления: {{detail}}",
"app.update.backend.error.check_http_status": "Не удалось проверить обновления: HTTP {{status}}",
"app.update.backend.error.download_failed": "Не удалось скачать обновление: {{detail}}",
"app.update.backend.error.install_unsupported": "Установка обновления не поддерживается на этой платформе: {{platform}}",
"app.update.backend.error.latest_version_unparseable": "Не удалось разобрать номер последней версии",
"app.update.backend.error.online_update_unsupported": "Онлайн-обновление не поддерживается на этой платформе: {{platform}}",
"app.update.backend.error.package_download_http_failed": "Не удалось скачать пакет обновления: HTTP {{status}}",
"app.update.backend.error.package_file_busy": "Не удалось скачать обновление, потому что файл занят: {{detail}}",
"app.update.backend.error.release_version_unparseable": "Не удалось разобрать версию релиза",
"app.update.backend.error.sha256_missing_current_package": "SHA256SUMS не содержит пакет обновления для текущей платформы",
"app.update.backend.error.sha256sums_download_failed": "Не удалось скачать SHA256SUMS: HTTP {{status}}",
"app.update.backend.error.sha256sums_missing": "Release не предоставляет SHA256SUMS",
"app.update.backend.error.update_package_not_found": "Пакет обновления не найден: {{name}}",
"app.update.backend.message.app_directory_unavailable": "Нет доступа к каталогу приложения: {{path}}",
"app.update.backend.message.app_directory_unresolved_download": "Не удалось определить текущий каталог приложения, поэтому обновление нельзя скачать",
"app.update.backend.message.check_first": "Сначала проверьте обновления",
"app.update.backend.message.checksum_failed": "Проверка контрольной суммы пакета обновления не пройдена. Повторите попытку.",
"app.update.backend.message.checksum_missing": "Отсутствует контрольная сумма пакета обновления (SHA256SUMS)",
"app.update.backend.message.create_workspace_failed": "Не удалось создать рабочий каталог обновления в каталоге приложения: {{path}}",
"app.update.backend.message.download_in_progress": "Пакет обновления загружается. Повторите попытку позже.",
"app.update.backend.message.install_launch_failed": "Не удалось запустить установщик обновления: {{detail}}",
"app.update.backend.message.install_launch_failed_with_log": "Не удалось запустить установщик обновления: {{detail}} (журнал обновления: {{path}})",
"app.update.backend.message.install_started": "Установка обновления начата",
"app.update.backend.message.install_started_with_log": "Установка обновления начата. Путь к журналу: {{path}}",
"app.update.backend.message.latest": "Уже установлена последняя версия",
"app.update.backend.message.no_downloaded_package": "Скачанный пакет обновления не найден",
"app.update.backend.message.no_update_package": "Доступный пакет обновления не найден",
"app.update.backend.message.open_directory_failed": "Не удалось открыть каталог обновления: {{detail}}",
"app.update.backend.message.open_directory_unsupported": "Открытие каталогов не поддерживается на этой платформе: {{platform}}",
"app.update.backend.message.opened_install_directory": "Каталог установки открыт: {{path}}",
"app.update.backend.message.package_already_downloaded": "Пакет обновления уже скачан",
"app.update.backend.message.package_directory_unavailable": "Каталог обновления не существует или недоступен",
"app.update.backend.message.package_directory_unresolved": "Не удалось определить каталог обновления",
"app.update.backend.message.package_downloaded": "Пакет обновления скачан",
"app.update.backend.message.package_path_empty": "Путь к пакету обновления пуст",
"app.update.backend.message.update_found": "Найдена новая версия: {{version}}",
"app.update.download_title": "Скачать обновление",
"app.update.download_title_with_version": "Скачать обновление {{version}}",
"app.update.message.check_failed": "Не удалось проверить обновления: {{error}}",
"app.update.message.download_completed": "Загрузка обновления завершена",
"app.update.message.download_completed_with_path": "Загрузка обновления завершена. Путь к пакету: {{path}}",
"app.update.message.download_failed": "Не удалось скачать обновление: {{error}}",
"app.update.message.install_failed": "Не удалось установить обновление: {{error}}",
"app.update.message.open_install_directory_failed": "Не удалось открыть каталог установки: {{error}}",
"app.update.message.opened_install_directory": "Каталог установки открыт. Завершите замену вручную.",
"app.update.message.package_ready": "Пакет обновления готов ({{version}})",
"app.update.message.package_ready_with_path": "Пакет обновления готов ({{version}}), путь: {{path}}",
"app.update.message.update_found": "Найдена новая версия: {{version}}",
"app.update.status.available_downloaded": "Найдена новая версия {{version}} (скачана; нажмите \"Ход загрузки\", чтобы установить)",
"app.update.status.available_not_downloaded": "Найдена новая версия {{version}} (не скачана)",
"app.update.status.check_failed": "Не удалось проверить обновления: {{error}}",
"app.update.status.checking": "Проверка обновлений...",
"app.update.status.latest": "Уже установлена последняя версия ({{version}})",
"app.update.status.not_checked": "Не проверено",
"app.window_zoom.message.fullscreen_exit_first": "Нельзя сбросить масштаб в полноэкранном режиме. Сначала выйдите из полноэкранного режима.",
"app.window_zoom.message.reset_failed": "Не удалось сбросить масштаб окна",
"app.window_zoom.message.reset_success": "Масштаб окна сброшен",
"app.window_zoom.message.reset_success_fallback": "Масштаб окна сброшен (резервный вариант)",
"app.window_zoom.message.windows_only": "Эта функция доступна только в Windows",
"common.back_to_previous": "Назад",
"common.cancel": "Отмена",
"common.close": "Закрыть",
"common.confirm": "Подтвердить",
"common.continue": "Продолжить",
"common.delete": "Удалить",
"common.edit": "Изменить",
"common.error": "Ошибка",
"common.loading": "Загрузка",
"common.named_item": "{{name}}",
"common.ok": "OK",
"common.refresh": "Обновить",
"common.save": "Сохранить",
"common.search": "Поиск",
"common.success": "Успешно",
"common.unknown": "Неизвестно",
"common.warning": "Предупреждение",
"connection_modal.action.browse": "Выбрать...",
"connection_modal.action.cancel": "Отмена",
"connection_modal.action.close": "Закрыть",
"connection_modal.action.copy_uri": "Копировать URI",
"connection_modal.action.disable": "Отключить",
"connection_modal.action.discover_members": "Обнаружить участников",
"connection_modal.action.enable_and_prefer": "Включить и предпочесть",
"connection_modal.action.generate_uri": "Сформировать URI",
"connection_modal.action.open_driver_manager": "Открыть управление драйверами",
"connection_modal.action.parse_uri": "Разобрать URI",
"connection_modal.action.previous_step": "Назад",
"connection_modal.action.reset_default": "Сбросить по умолчанию",
"connection_modal.action.save": "Сохранить",
"connection_modal.action.test": "Проверить подключение",
"connection_modal.action.view_reason": "Показать причину",
"connection_modal.appearance.color": "Цвет",
"connection_modal.appearance.current_icon": "Текущий значок: {{icon}}",
"connection_modal.appearance.custom_color": "Пользовательский цвет",
"connection_modal.appearance.icon": "Значок",
"connection_modal.appearance.preview": "Предпросмотр",
"connection_modal.badge.current": "Текущий",
"connection_modal.badge.current_editing": "Редактируется",
"connection_modal.badge.preferred": "Предпочтительный",
"connection_modal.config_section.connectionMode.description": "Настройте Режим подключения.",
"connection_modal.config_section.connectionMode.title": "Режим подключения",
"connection_modal.config_section.credentials.description": "Настройте Учетные данные.",
"connection_modal.config_section.credentials.title": "Учетные данные",
"connection_modal.config_section.customDriver.description": "Настройте Пользовательский драйвер.",
"connection_modal.config_section.customDriver.title": "Пользовательский драйвер",
"connection_modal.config_section.customDsn.description": "Настройте Пользовательский DSN.",
"connection_modal.config_section.customDsn.title": "Пользовательский DSN",
"connection_modal.config_section.databaseScope.description": "Настройте Область баз данных.",
"connection_modal.config_section.databaseScope.title": "Область баз данных",
"connection_modal.config_section.fileTarget.description": "Настройте Файловая база данных.",
"connection_modal.config_section.fileTarget.title": "Файловая база данных",
"connection_modal.config_section.identity.description": "Настройте Идентификация.",
"connection_modal.config_section.identity.title": "Идентификация",
"connection_modal.config_section.jvmRuntime.description": "Настройте Среда JVM.",
"connection_modal.config_section.jvmRuntime.title": "Среда JVM",
"connection_modal.config_section.mongoDiscovery.description": "Настройте Обнаружение MongoDB.",
"connection_modal.config_section.mongoDiscovery.title": "Обнаружение MongoDB",
"connection_modal.config_section.mongoPolicy.description": "Настройте Политика MongoDB.",
"connection_modal.config_section.mongoPolicy.title": "Политика MongoDB",
"connection_modal.config_section.replica.description": "Настройте Реплики.",
"connection_modal.config_section.replica.title": "Реплики",
"connection_modal.config_section.service.description": "Настройте Сервис и база данных.",
"connection_modal.config_section.service.title": "Сервис и база данных",
"connection_modal.config_section.target.description": "Настройте Адрес назначения.",
"connection_modal.config_section.target.title": "Адрес назначения",
"connection_modal.config_section.uri.description": "Введите, сформируйте или разберите URI подключения.",
"connection_modal.config_section.uri.title": "URI подключения",
"connection_modal.db_icon_label.custom": "Пользовательский",
"connection_modal.db_type_hint.custom": "Подключение с пользовательским драйвером и DSN.",
"connection_modal.db_type_hint.file": "Выберите локальный файл базы данных SQLite или DuckDB.",
"connection_modal.db_type_hint.mongodb": "Подключение к MongoDB Standalone, Replica Set или SRV-адресам.",
"connection_modal.db_type_hint.redis": "Подключение к Redis Standalone или Redis Cluster.",
"connection_modal.db_type_hint.standard": "Введите хост, порт, данные аутентификации и необязательную базу данных.",
"connection_modal.db_type.custom": "Пользовательский",
"connection_modal.driver.current": "Текущий",
"connection_modal.error.unknown": "Неизвестная ошибка",
"connection_modal.error.unknown_exception": "Неизвестная ошибка",
"connection_modal.field.additional_hosts": "Дополнительные хосты",
"connection_modal.field.additional_srv_hosts_optional": "Дополнительные SRV-хосты (необязательно)",
"connection_modal.field.auth_source": "База аутентификации (authSource)",
"connection_modal.field.clickHouseProtocol.auto": "Авто",
"connection_modal.field.cluster_additional_hosts": "Дополнительные узлы кластера",
"connection_modal.field.connection_name": "Имя подключения",
"connection_modal.field.connection_timeout_seconds": "Тайм-аут подключения (секунды)",
"connection_modal.field.connection_timeout_seconds_ascii": "Тайм-аут подключения (секунды)",
"connection_modal.field.default_database_optional": "База данных по умолчанию (необязательно)",
"connection_modal.field.defaultDatabase.placeholder": "Например: appdb",
"connection_modal.field.display_databases_optional": "Отображаемые базы данных (необязательно)",
"connection_modal.field.driver_name": "драйвер имя",
"connection_modal.field.driver.placeholder": "Например: mysql, postgres",
"connection_modal.field.dsn": "DSN",
"connection_modal.field.dsn.placeholder": "Например: user:pass@tcp(localhost:3306)/dbname?charset=utf8",
"connection_modal.field.file_path_absolute": "Путь к файлу (абсолютный)",
"connection_modal.field.host": "Хост",
"connection_modal.field.host_address": "Адрес хоста",
"connection_modal.field.oceanBaseProtocol.help.connectionAttributes": "Если при подключении к Oracle-арендатору возникает \"Error 1235\" или сбой рукопожатия OBClient, в поле \"Параметры подключения\" можно через {{attributes}} переопределить OBClient capability, которую GoNavi внедряет по умолчанию.",
"connection_modal.field.oceanBaseProtocol.help.primary": "Для арендаторов MySQL выберите MySQL, для арендаторов Oracle выберите Oracle. GoNavi автоматически выбирает режим по порту: для порта OB MySQL wire используется внедрение возможностей OBClient (тот же путь, что и в Navicat), для порта OBProxy Oracle listener используется стандартный TNS.",
"connection_modal.field.oceanBaseProtocol.label": "Протокол OceanBase",
"connection_modal.field.password": "Пароль",
"connection_modal.field.password_optional": "Пароль (необязательно)",
"connection_modal.field.port": "Порт",
"connection_modal.field.port_plain": "Порт",
"connection_modal.field.primary_port": "Основной порт",
"connection_modal.field.private_key_path_optional": "Путь к закрытому ключу (необязательно)",
"connection_modal.field.proxy_host": "Хост прокси",
"connection_modal.field.proxy_password_optional": "Пароль прокси (необязательно)",
"connection_modal.field.proxy_type": "Тип прокси",
"connection_modal.field.proxy_username_optional": "Имя пользователя прокси (необязательно)",
"connection_modal.field.readOnly.checkbox": "Пометить это подключение как продакшн и разрешить только запросы",
"connection_modal.field.readOnly.compatibility": "Если включить все опции, поведение будет соответствовать прежней защите прод-подключения «только запросы».",
"connection_modal.field.readOnly.help": "Выберите только те ограничения, которые нужны для редактирования результатов, изменения структуры, выполнения скриптов и операций импорта или синхронизации.",
"connection_modal.field.readOnly.label": "Защита прод-подключения",
"connection_modal.field.readOnly.option.dataEdit.help": "Запретить прямое редактирование в таблице результатов, массовую очистку и операции записи при публикации сообщений для этого подключения.",
"connection_modal.field.readOnly.option.dataEdit.label": "Ограничить редактирование данных",
"connection_modal.field.readOnly.option.dataImport.help": "Запретить импорт файлов, массовую загрузку и использование этого подключения как цели синхронизации.",
"connection_modal.field.readOnly.option.dataImport.label": "Ограничить импорт данных",
"connection_modal.field.readOnly.option.scriptExecution.help": "Запретить выполнять в SQL-редакторе SQL-запросы и команды MongoDB, которые изменяют данные.",
"connection_modal.field.readOnly.option.scriptExecution.label": "Ограничить выполнение скриптов",
"connection_modal.field.readOnly.option.structureEdit.help": "Запретить создание, переименование и удаление объектов базы данных, а конструктор таблиц открывать только в режиме чтения.",
"connection_modal.field.readOnly.option.structureEdit.label": "Ограничить изменение структуры",
"connection_modal.field.readOnly.status.disabled": "Ограничений нет",
"connection_modal.field.readOnly.status.enabledCount": "Включено ограничений: {{count}}",
"connection_modal.field.readOnly.summary.empty": "Если не выбрано ни одного ограничения, это подключение работает как обычное.",
"connection_modal.field.readOnly.summary.selected": "Включено {{count}} ограничений. Невыбранные возможности продолжают работать как у обычного подключения.",
"connection_modal.field.readOnly.summary.title": "Текущая политика",
"connection_modal.field.readOnly.tip": "Рекомендуется для продакшн-, резервных и регулируемых баз данных. Эти ограничения влияют только на поведение текущего подключения в GoNavi и не изменяют права на стороне сервера базы данных.",
"connection_modal.field.replica_hosts": "Список хостов реплик",
"connection_modal.field.replica_password_optional": "Пароль реплики (необязательно)",
"connection_modal.field.replica_set_optional": "Replica Set (необязательно)",
"connection_modal.field.replica_set_password_optional": "Пароль Replica Set (необязательно)",
"connection_modal.field.replica_set_username_optional": "Имя пользователя Replica Set (необязательно)",
"connection_modal.field.replica_username_optional": "Имя пользователя реплики (необязательно)",
"connection_modal.field.save_password": "Сохранить пароль",
"connection_modal.field.service_name": "Имя сервиса",
"connection_modal.field.serviceName.placeholder": "Например: ORCLPDB1",
"connection_modal.field.ssh_host": "SSH-хост",
"connection_modal.field.ssh_password": "SSH-пароль",
"connection_modal.field.ssh_user": "SSH-пользователь",
"connection_modal.field.ssl_cert_path": "Путь к SSL-сертификату",
"connection_modal.field.ssl_key_path": "Путь к SSL-ключу",
"connection_modal.field.tunnel_host": "Хост HTTP Tunnel",
"connection_modal.field.tunnel_password_optional": "Пароль HTTP Tunnel (необязательно)",
"connection_modal.field.tunnel_username_optional": "Имя пользователя HTTP Tunnel (необязательно)",
"connection_modal.field.uri": "URI",
"connection_modal.field.username": "Имя пользователя",
"connection_modal.field.username.optional_placeholder": "Оставьте пустым, если аутентификация отключена",
"connection_modal.group.chinese_databases": "Китайские базы данных",
"connection_modal.group.other": "Другое",
"connection_modal.group.relational": "Реляционные базы данных",
"connection_modal.group.time_series": "Базы данных временных рядов",
"connection_modal.help.additional_hosts": "Необязательные участники MongoDB, разделенные запятой, точкой с запятой или пробелом.",
"connection_modal.help.additional_srv_hosts": "Необязательные дополнительные SRV-хосты для обнаружения MongoDB.",
"connection_modal.help.connection_timeout": "Применяется к тестам подключения и загрузке метаданных. Диапазон: 1-300 секунд.",
"connection_modal.help.custom_driver": "Поддерживаются: mysql, postgres, sqlite, oracle, dm, kingbase. Алиасы: postgresql/pgx, dm8, kingbase8/kingbasees/kingbasev8. Расширение драйверов через JDBC Jar сейчас не поддерживается.",
"connection_modal.help.default_database": "Оставьте пустым, чтобы использовать базу данных сервера по умолчанию.",
"connection_modal.help.oracle_service_name": "Имя сервиса Oracle, например ORCLPDB1.",
"connection_modal.help.private_key_path": "Используйте закрытый ключ для SSH-аутентификации. Оставьте пароль пустым, если ключ не зашифрован.",
"connection_modal.help.redis_cluster_hosts": "Дополнительные узлы Redis Cluster, разделенные запятой, точкой с запятой или пробелом.",
"connection_modal.help.replica_hosts": "Хосты реплик в формате host:port, разделенные запятой, точкой с запятой или пробелом.",
"connection_modal.help.select_after_test": "Сначала выполните тест подключения, чтобы загрузить доступные базы данных.",
"connection_modal.help.uri": "Вставьте или сформируйте URI подключения.",
"connection_modal.jvm.access_mode_description": "Выберите режимы доступа JVM для этого подключения и предпочтительный режим.",
"connection_modal.jvm.access_mode_title": "Режимы доступа",
"connection_modal.jvm.agent_api_key_optional": "Ключ API Agent (необязательно)",
"connection_modal.jvm.agent_description": "Подключение через GoNavi Agent, когда прямой сетевой доступ ограничен.",
"connection_modal.jvm.agent_help": "Базовый URL сервиса GoNavi Agent.",
"connection_modal.jvm.agent_url": "URL Agent",
"connection_modal.jvm.diagnostic_api_key_optional": "Ключ API диагностики (необязательно)",
"connection_modal.jvm.diagnostic_description": "Включить необязательные диагностические команды для устранения неполадок JVM.",
"connection_modal.jvm.diagnostic_disabled_hint": "Диагностическое расширение отключено. Включайте его только для диагностики во время выполнения.",
"connection_modal.jvm.diagnostic_timeout_seconds": "Тайм-аут диагностики (секунды)",
"connection_modal.jvm.diagnostic_title": "Диагностическое расширение",
"connection_modal.jvm.diagnostic_transport": "Диагностический транспорт",
"connection_modal.jvm.diagnostic.agent_bridge_description": "Использовать диагностический Endpoint GoNavi Agent Bridge.",
"connection_modal.jvm.diagnostic.arthas_tunnel_description": "Использовать Arthas Tunnel для доступа к целевой JVM.",
"connection_modal.jvm.diagnostic.arthas_tunnel_help": "Базовый URL сервера Arthas Tunnel.",
"connection_modal.jvm.diagnostic.arthas_tunnel_url": "URL Arthas Tunnel",
"connection_modal.jvm.diagnostic.bridge_help": "Базовый URL диагностического моста GoNavi.",
"connection_modal.jvm.diagnostic.bridge_url": "URL диагностического моста",
"connection_modal.jvm.diagnostic.mutating_commands": "Изменяющие команды",
"connection_modal.jvm.diagnostic.mutating_commands_description": "Разрешить команды, которые могут изменить состояние выполнения. Используйте только в контролируемых средах.",
"connection_modal.jvm.diagnostic.observe_commands": "Команды наблюдения",
"connection_modal.jvm.diagnostic.observe_commands_description": "Разрешить команды только для чтения, такие как dashboard, thread и сведения JVM.",
"connection_modal.jvm.diagnostic.target_agent_id": "ID целевого Agent",
"connection_modal.jvm.diagnostic.target_agent_id_help": "Agent ID, зарегистрированный в Arthas Tunnel.",
"connection_modal.jvm.diagnostic.target_id": "ID цели",
"connection_modal.jvm.diagnostic.target_id_help": "Идентификатор цели для диагностического моста. Оставьте пустым, если мост выбирает цель по умолчанию.",
"connection_modal.jvm.diagnostic.trace_commands": "Команды трассировки",
"connection_modal.jvm.diagnostic.trace_commands_description": "Разрешить trace и watch команды, которые добавляют нагрузку во время выполнения.",
"connection_modal.jvm.diagnostic.transport.agent_bridge": "Agent Bridge",
"connection_modal.jvm.diagnostic.transport.arthas_tunnel": "Arthas Tunnel",
"connection_modal.jvm.endpoint_api_key_optional": "Ключ API Endpoint (необязательно)",
"connection_modal.jvm.endpoint_description": "Подключаться к предоставленному сервисом Endpoint вместо прямого JMX.",
"connection_modal.jvm.endpoint_help": "Базовый URL Endpoint управления JVM.",
"connection_modal.jvm.endpoint_url": "URL Endpoint",
"connection_modal.jvm.environment": "Среда",
"connection_modal.jvm.environment.dev": "Разработка",
"connection_modal.jvm.environment.dev_description": "Тестовая среда с меньшим риском.",
"connection_modal.jvm.environment.prod": "Продакшен",
"connection_modal.jvm.environment.prod_description": "Производственная среда; рекомендуется режим только для чтения.",
"connection_modal.jvm.environment.uat": "UAT",
"connection_modal.jvm.environment.uat_description": "Среда проверки перед продакшеном.",
"connection_modal.jvm.jmx_description": "Подключение через JMX с хостом, портом и необязательными учетными данными.",
"connection_modal.jvm.jmx_host_override_optional": "Переопределение хоста JMX (необязательно)",
"connection_modal.jvm.jmx_password_optional": "Пароль JMX (необязательно)",
"connection_modal.jvm.jmx_port": "Порт JMX",
"connection_modal.jvm.jmx_username_optional": "Имя пользователя JMX (необязательно)",
"connection_modal.jvm.mode.agent_description": "Использовать GoNavi Agent для сред за firewall или NAT.",
"connection_modal.jvm.mode.endpoint_description": "Использовать HTTP Endpoint, предоставленный целевым сервисом.",
"connection_modal.jvm.mode.jmx_description": "Использовать стандартный удаленный доступ JMX.",
"connection_modal.jvm.preferred_mode_hint": "Текущий предпочтительный режим: {{mode}}",
"connection_modal.jvm.read_only_first": "Предпочитать операции только для чтения",
"connection_modal.jvm.security_policy": "Политика безопасности",
"connection_modal.jvm.target_description": "Настройте хост, порт и способ доступа к Endpoint управления JVM.",
"connection_modal.jvm.target_title": "Цель JVM",
"connection_modal.layout.custom": "Подключение через пользовательский драйвер",
"connection_modal.layout.file": "Подключение к файловой базе данных",
"connection_modal.layout.generic_sql": "Универсальное SQL-подключение",
"connection_modal.layout.jvm": "Подключение к среде JVM",
"connection_modal.layout.mongodb": "Подключение MongoDB",
"connection_modal.layout.mysql_compatible": "MySQL-совместимое подключение",
"connection_modal.layout.oracle": "Подключение Oracle",
"connection_modal.layout.postgres_compatible": "PostgreSQL-совместимое подключение",
"connection_modal.layout.redis": "Подключение Redis",
"connection_modal.layoutKind.custom": "Пользовательский драйвер",
"connection_modal.layoutKind.file": "Файловые базы данных",
"connection_modal.layoutKind.genericSql": "Стандартный SQL",
"connection_modal.layoutKind.jvm": "Среда выполнения JVM",
"connection_modal.layoutKind.mongodb": "MongoDB",
"connection_modal.layoutKind.mysqlCompatible": "MySQL-совместимые",
"connection_modal.layoutKind.oracle": "Oracle",
"connection_modal.layoutKind.postgresCompatible": "PostgreSQL-совместимые",
"connection_modal.layoutKind.redis": "Redis",
"connection_modal.layoutKind.search": "Поисковые движки",
"connection_modal.layoutKind.timeseries": "Базы данных временных рядов",
"connection_modal.layoutKind.vector": "Векторные базы данных",
"connection_modal.message.connection_failed": "Не удалось подключиться",
"connection_modal.message.connection_params_incomplete": "Параметры подключения неполные.",
"connection_modal.message.connection_rejected": "Подключение отклонено.",
"connection_modal.message.connection_success": "Подключение успешно",
"connection_modal.message.copy_failed": "Операция не удалась",
"connection_modal.message.current_driver_not_enabled": "Текущий драйвер не установлен или не включен.",
"connection_modal.message.dameng_ssl_cert_required": "Заполните обязательное поле",
"connection_modal.message.database_list_failed": "Не удалось загрузить список баз данных: {{error}}",
"connection_modal.message.database_list_timeout": "Время операции истекло через {{seconds}} с",
"connection_modal.message.driver_not_enabled": "Драйвер не установлен или не включен.",
"connection_modal.message.driver_not_enabled_with_name": "Драйвер {{name}} не установлен или не включен. Сначала установите или включите его в управлении драйверами.",
"connection_modal.message.driver_not_enabled_with_name_short": "Драйвер {{name}} не установлен или не включен. Сначала откройте управление драйверами.",
"connection_modal.message.driver_unavailable_title": "Драйвер {{name}} недоступен",
"connection_modal.message.http_tunnel_host_required": "Заполните обязательное поле",
"connection_modal.message.http_tunnel_port_invalid": "Недопустимый порт HTTP Tunnel",
"connection_modal.message.member_discovery_failed": "Операция не удалась",
"connection_modal.message.member_discovery_success": "Обнаружено участников: {{count}}",
"connection_modal.message.no_visible_databases": "Видимые базы данных не возвращены.",
"connection_modal.message.no_visible_schema": "Видимые схемы не возвращены.",
"connection_modal.message.required_fields_before_test": "Заполните обязательные поля перед проверкой подключения.",
"connection_modal.message.save_backend_unavailable": "Операция не удалась",
"connection_modal.message.save_created_disconnected": "Конфигурация сохранена (без подключения).",
"connection_modal.message.save_failed": "Операция не удалась",
"connection_modal.message.save_security_refresh_failed": "Операция не удалась",
"connection_modal.message.save_updated_disconnected": "Конфигурация сохранена (не подключено)",
"connection_modal.message.select_database_file_failed": "Не удалось выбрать файл базы данных: {{error}}",
"connection_modal.message.select_ssh_key_failed": "Не удалось выбрать закрытый ключ SSH: {{error}}",
"connection_modal.message.srv_with_ssh_dns_warning": "SRV вместе с SSH Tunnel может зависеть от локального DNS. Если разрешение не удается, используйте стандартные хосты.",
"connection_modal.message.test_failed_detail": "Проверка не удалась: {{detail}}",
"connection_modal.message.test_requires_new_mongo_replica_password": "Перед проверкой введите новый пароль MongoDB Replica Set.",
"connection_modal.message.test_requires_new_mongodb_password": "Перед проверкой введите новый пароль MongoDB.",
"connection_modal.message.test_requires_new_password": "Перед проверкой введите новый пароль подключения.",
"connection_modal.message.test_requires_new_proxy_password": "Перед проверкой введите новый пароль прокси.",
"connection_modal.message.test_requires_new_replica_password": "Перед проверкой введите новый пароль реплики.",
"connection_modal.message.test_requires_new_ssh_password": "Перед проверкой введите новый SSH-пароль.",
"connection_modal.message.test_requires_new_tunnel_password": "Перед проверкой введите новый пароль HTTP Tunnel.",
"connection_modal.message.test_timeout": "Время операции истекло через {{seconds}} с",
"connection_modal.message.unsupported_jvm_diagnostic_transport": "Выбранный диагностический транспорт JVM не поддерживается",
"connection_modal.message.unsupported_jvm_modes": "Выбранный режим доступа JVM не поддерживается",
"connection_modal.message.unsupported_jvm_modes_current": "Это подключение содержит неподдерживаемые режимы доступа JVM",
"connection_modal.message.unsupported_jvm_modes_detected": "Обнаружены неподдерживаемые режимы доступа JVM",
"connection_modal.message.uri_copied": "URI скопирован",
"connection_modal.message.uri_empty_copy": "URI пуст: нечего копировать",
"connection_modal.message.uri_generate_failed": "Операция не удалась",
"connection_modal.message.uri_generated": "URI сформирован",
"connection_modal.message.uri_parse_failed": "Операция не удалась",
"connection_modal.message.uri_parsed": "URI разобран и перенесен в форму",
"connection_modal.message.uri_required": "Заполните обязательное поле",
"connection_modal.message.uri_type_mismatch": "Тип URI не соответствует выбранному источнику данных",
"connection_modal.messageQueue.kafka.defaultTopic.help": "Если поле пустое, Topic нужно явно указать в SQL. После заполнения SHOW, CONSUME или SELECT могут сразу выполнять предварительный просмотр.",
"connection_modal.messageQueue.kafka.defaultTopic.label": "Topic по умолчанию (необязательно)",
"connection_modal.messageQueue.kafka.defaultTopic.placeholder": "Например: orders.events",
"connection_modal.messageQueue.kafka.extraBrokers.help": "Введите несколько адресов broker в формате host:port и нажмите Enter для подтверждения.",
"connection_modal.messageQueue.kafka.extraBrokers.label": "Дополнительные адреса Broker",
"connection_modal.messageQueue.kafka.extraBrokers.placeholder": "Например: 10.10.0.12:9092, 10.10.0.13:9092",
"connection_modal.messageQueue.kafka.topology.cluster.description": "Настраивает несколько bootstrap broker, чтобы повысить успешность обнаружения и failover.",
"connection_modal.messageQueue.kafka.topology.single.description": "Настраивает один bootstrap broker для локальной или простой среды.",
"connection_modal.messageQueue.kafka.topology.single.label": "Один Broker",
"connection_modal.messageQueue.mqtt.defaultTopicFilter.help": "Если поле пустое, Topic нужно явно указать в SQL. После заполнения SHOW, CONSUME или SELECT могут сразу выполнять предварительный просмотр. Поддерживаются /, + и #.",
"connection_modal.messageQueue.mqtt.defaultTopicFilter.label": "Topic / Filter по умолчанию (необязательно)",
"connection_modal.messageQueue.mqtt.defaultTopicFilter.placeholder": "Например: devices/+/telemetry",
"connection_modal.messageQueue.mqtt.extraBrokers.help": "Введите несколько адресов broker в формате host:port и нажмите Enter для подтверждения.",
"connection_modal.messageQueue.mqtt.extraBrokers.label": "Дополнительные адреса Broker",
"connection_modal.messageQueue.mqtt.extraBrokers.placeholder": "Например: 10.10.0.12:1883, 10.10.0.13:1883",
"connection_modal.messageQueue.mqtt.topology.cluster.description": "Настраивает несколько broker, чтобы повысить успешность обнаружения подключения и failover.",
"connection_modal.messageQueue.mqtt.topology.single.description": "Настраивает один broker для локальной или простой среды.",
"connection_modal.messageQueue.mqtt.topology.single.label": "Один Broker",
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.help": "Если поле пустое, по умолчанию используется /. После заполнения редактор запросов использует текущий vhost как контекст просмотра Queue и тестовой отправки.",
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.label": "Virtual Host по умолчанию (необязательно)",
"connection_modal.messageQueue.rabbitmq.defaultVirtualHost.placeholder": "Например: / или orders-vhost",
"connection_modal.messageQueue.rocketmq.defaultTopic.help": "Если поле пустое, Topic нужно явно указать в SQL. В параметрах подключения можно дополнительно задать groupId, namespace, tag, pullBatchSize и startOffset.",
"connection_modal.messageQueue.rocketmq.defaultTopic.label": "Topic по умолчанию (необязательно)",
"connection_modal.messageQueue.rocketmq.defaultTopic.placeholder": "Например: orders.events",
"connection_modal.messageQueue.rocketmq.extraNameServers.help": "Введите несколько адресов NameServer в формате host:port и нажмите Enter для подтверждения.",
"connection_modal.messageQueue.rocketmq.extraNameServers.label": "Дополнительные адреса NameServer",
"connection_modal.messageQueue.rocketmq.extraNameServers.placeholder": "Например: 10.10.0.12:9876, 10.10.0.13:9876",
"connection_modal.messageQueue.rocketmq.topology.cluster.description": "Настраивает несколько NameServer, чтобы повысить успешность обнаружения маршрутов и failover.",
"connection_modal.messageQueue.rocketmq.topology.single.description": "Настраивает один NameServer для локальной или простой среды.",
"connection_modal.messageQueue.rocketmq.topology.single.label": "Один NameServer",
"connection_modal.messageQueue.topology.cluster.label": "Режим кластера",
"connection_modal.mongodb.auth_mechanism": "Механизм аутентификации",
"connection_modal.mongodb.auth.auto": "Авто",
"connection_modal.mongodb.auth.auto_description": "Позволить драйверу выбрать механизм аутентификации.",
"connection_modal.mongodb.auth.aws_iam_description": "Использовать аутентификацию AWS IAM. Учетные данные AWS IAM должны быть в среде выполнения.",
"connection_modal.mongodb.auth.none": "Без аутентификации",
"connection_modal.mongodb.auth.none_description": "Подключаться без аутентификации MongoDB.",
"connection_modal.mongodb.auth.scram_sha1_description": "Использовать аутентификацию SCRAM-SHA-1.",
"connection_modal.mongodb.auth.scram_sha256_description": "Использовать аутентификацию SCRAM-SHA-256.",
"connection_modal.mongodb.discovery.current": "Текущий",
"connection_modal.mongodb.discovery.srv_ssh_warning": "Если SRV и SSH Tunnel включены одновременно, может потребоваться локальное DNS-разрешение.",
"connection_modal.mongodb.discovery.srv.description": "Использовать mongodb+srv, чтобы DNS обнаружил целевые узлы.",
"connection_modal.mongodb.discovery.srv.label": "SRV-адрес",
"connection_modal.mongodb.discovery.standard.description": "Подключение напрямую через host:port или список узлов Replica Set.",
"connection_modal.mongodb.discovery.standard.label": "Стандартный адрес",
"connection_modal.mongodb.members.health": "Состояние",
"connection_modal.mongodb.members.health.error": "Ошибка",
"connection_modal.mongodb.members.health.ok": "Норма",
"connection_modal.mongodb.members.role": "Роль",
"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.",
"connection_modal.mongodb.read_preference.primary_preferred": "Предпочитать primary, при необходимости переходить на secondary.",
"connection_modal.mongodb.read_preference.secondary": "Читать только с secondary.",
"connection_modal.mongodb.read_preference.secondary_preferred": "Предпочитать secondary, при необходимости переходить на primary.",
"connection_modal.mongodb.replica.hosts.srv.help": "Введите несколько имен кандидатов host в формате host. Если оставить пустым, используется только host выше.",
"connection_modal.mongodb.replica.hosts.srv.label": "Дополнительные SRV-хосты (необязательно)",
"connection_modal.mongodb.replica.hosts.srv.placeholder": "Например: cluster-a.example.com, cluster-b.example.com",
"connection_modal.mongodb.replica.hosts.standard.help": "Введите несколько адресов узлов в формате host:port и нажмите Enter для подтверждения.",
"connection_modal.mongodb.replica.hosts.standard.label": "Дополнительные адреса узлов",
"connection_modal.mongodb.replica.hosts.standard.placeholder": "Например: 10.10.0.12:27017, 10.10.0.13:27017",
"connection_modal.mongodb.replica.password.clear": "Очистить сохраненный пароль Replica Set",
"connection_modal.mongodb.replica.password.description": "Пароль Replica Set уже сохранен. Оставьте поле пустым, чтобы продолжить использовать его, или введите новое значение для замены.",
"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.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.srv_address": "SRV-адрес",
"connection_modal.mongodb.srv_address_description": "Использовать запись MongoDB SRV для обнаружения хостов.",
"connection_modal.mongodb.standard_address": "Стандартный адрес",
"connection_modal.mongodb.standard_address_description": "Использовать хост и порт, а также необязательный список участников.",
"connection_modal.mongodb.topology.replica.label": "Replica Set / несколько узлов",
"connection_modal.mongodb.topology.single.label": "Одиночный режим",
"connection_modal.network.http_tunnel": "HTTP Tunnel",
"connection_modal.network.http_tunnel_description": "Перенаправлять трафик базы данных через HTTP Tunnel.",
"connection_modal.network.http_tunnel_disabled_hint": "Включите HTTP Tunnel, чтобы настроить хост, порт и учетные данные Tunnel.",
"connection_modal.network.http_tunnel_mutex_hint": "HTTP Tunnel нельзя использовать вместе с SSH Tunnel или прокси.",
"connection_modal.network.http_tunnel_panel_description": "Настройте шлюз HTTP Tunnel для этого подключения.",
"connection_modal.network.proxy": "Прокси",
"connection_modal.network.proxy_disabled_hint": "Включите прокси, чтобы направить это подключение через SOCKS5 или HTTP CONNECT.",
"connection_modal.network.proxy_panel_description": "Настройте параметры прокси для этого подключения.",
"connection_modal.network.proxy_type.http_description": "Использовать прокси HTTP CONNECT.",
"connection_modal.network.proxy_type.socks5_description": "Использовать прокси SOCKS5.",
"connection_modal.network.ssh_disabled_hint": "Включите SSH Tunnel для подключения через bastion host.",
"connection_modal.network.ssh_panel_description": "Настройте хост SSH Tunnel, учетные данные и необязательный закрытый ключ.",
"connection_modal.network.ssh_tunnel": "SSH Tunnel",
"connection_modal.network.ssh_tunnel_description": "Подключаться к базе данных через SSH Tunnel.",
"connection_modal.network.ssl_description": "Шифровать подключение к базе данных с помощью SSL/TLS.",
"connection_modal.network.ssl_disabled_hint": "Включите SSL/TLS для настройки политики сертификатов.",
"connection_modal.network.ssl_mode": "Режим SSL",
"connection_modal.network.ssl_mode.preferred": "Предпочтительно",
"connection_modal.network.ssl_mode.preferred_description": "Сначала попробовать SSL и откатиться, если сервер не требует шифрования.",
"connection_modal.network.ssl_mode.required": "Обязательно",
"connection_modal.network.ssl_mode.required_description": "Требовать SSL и завершать ошибкой, если шифрованное подключение невозможно.",
"connection_modal.network.ssl_mode.skip_verify": "Без проверки",
"connection_modal.network.ssl_mode.skip_verify_description": "Использовать SSL, но пропустить проверку сертификата. Только для тестов или самоподписанных сертификатов.",
"connection_modal.network.ssl_panel_description": "Настройте политику SSL/TLS для этого подключения.",
"connection_modal.network.ssl_tls": "SSL/TLS",
"connection_modal.placeholder.absolute_path": "/absolute/path/to/file",
"connection_modal.placeholder.agent_api_key": "Необязательный ключ API Agent",
"connection_modal.placeholder.agent_url": "http://127.0.0.1:19090",
"connection_modal.placeholder.connection_name": "подключение имя",
"connection_modal.placeholder.connection_name_fallback": "Имя подключения",
"connection_modal.placeholder.custom_dsn_example": "Пример: DSN конкретного драйвера",
"connection_modal.placeholder.default_database_or_admin": "база данных по умолчанию или admin",
"connection_modal.placeholder.diagnostic_api_key": "Необязательный ключ API диагностики",
"connection_modal.placeholder.diagnostic_target_agent_id": "Arthas Agent ID",
"connection_modal.placeholder.diagnostic_target_id": "ID цели",
"connection_modal.placeholder.driver_name": "драйвер имя",
"connection_modal.placeholder.empty_without_auth": "Оставьте пустым без аутентификации",
"connection_modal.placeholder.endpoint_api_key": "Необязательный ключ API Endpoint",
"connection_modal.placeholder.endpoint_url": "http://127.0.0.1:8080",
"connection_modal.placeholder.example_appdb": "appdb",
"connection_modal.placeholder.example_mongo_hosts": "mongo2:27017, mongo3:27017",
"connection_modal.placeholder.example_mysql_replica_hosts": "replica1:3306, replica2:3306",
"connection_modal.placeholder.example_orclpdb1": "ORCLPDB1",
"connection_modal.placeholder.example_redis_hosts": "redis2:6379, redis3:6379",
"connection_modal.placeholder.example_rs0": "rs0",
"connection_modal.placeholder.example_srv_hosts": "cluster0.example.mongodb.net",
"connection_modal.placeholder.jvm_name": "jvm имя",
"connection_modal.placeholder.no_auth": "Без аутентификации",
"connection_modal.placeholder.proxy_host": "127.0.0.1",
"connection_modal.placeholder.redis_password": "Пароль Redis",
"connection_modal.placeholder.select_databases": "Выберите базы данных для отображения",
"connection_modal.placeholder.select_redis_databases": "Выберите базы Redis для отображения",
"connection_modal.placeholder.ssh_host": "bastion.example.com",
"connection_modal.placeholder.ssl_cert_path": "/absolute/path/client.crt",
"connection_modal.placeholder.ssl_key_path": "/absolute/path/client.key",
"connection_modal.placeholder.tunnel_host": "tunnel.example.com",
"connection_modal.placeholder.uri_example_postgres": "postgresql://user:pass@localhost:5432/appdb?sslmode=require",
"connection_modal.placeholder.use_primary_host": "Использовать основной хост",
"connection_modal.placeholder.use_primary_password": "Использовать основной пароль",
"connection_modal.placeholder.use_primary_password_short": "Использовать основной пароль",
"connection_modal.placeholder.use_primary_port": "Использовать основной порт",
"connection_modal.placeholder.use_primary_username": "Использовать основное имя пользователя",
"connection_modal.placeholder.use_primary_username_short": "Использовать основное имя пользователя",
"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.sentinelPassword.clear": "Очистить сохраненный пароль Sentinel",
"connection_modal.redis.credentials.sentinelPassword.description": "Пароль Sentinel уже сохранен. Оставьте поле пустым, чтобы продолжить использовать его, или введите новое значение для замены.",
"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.sentinelUser.label": "Имя пользователя Sentinel (необязательно)",
"connection_modal.redis.credentials.sentinelUser.placeholder": "Оставьте пустым, если Sentinel не использует имя пользователя ACL",
"connection_modal.redis.databaseScope.help": "Можно выбрать после успешной проверки подключения",
"connection_modal.redis.databaseScope.label": "Показываемые базы данных (пусто значит все)",
"connection_modal.redis.databaseScope.placeholder": "Выберите базы данных для показа",
"connection_modal.redis.hosts.cluster.help": "Указанный выше host используется как primary-узел. Введите здесь другие seed-узлы в формате host:port.",
"connection_modal.redis.hosts.cluster.label": "Дополнительные адреса узлов кластера",
"connection_modal.redis.hosts.cluster.placeholder": "Например: 10.10.0.12:6379, 10.10.0.13:6379",
"connection_modal.redis.hosts.sentinel.help": "Указанный выше host используется как первый Sentinel. Введите здесь другие узлы Sentinel в формате host:port.",
"connection_modal.redis.hosts.sentinel.label": "Дополнительные адреса узлов Sentinel",
"connection_modal.redis.hosts.sentinel.placeholder": "Например: 10.10.0.12:26379, 10.10.0.13:26379",
"connection_modal.redis.sentinel.master.help": "Введите имя monitor из конфигурации Sentinel, например mymaster.",
"connection_modal.redis.sentinel.master.label": "Имя Sentinel master",
"connection_modal.redis.sentinel.master.placeholder": "Например: mymaster",
"connection_modal.redis.sentinel.master.required": "Введите имя Sentinel master",
"connection_modal.redis.topology.cluster.description": "Redis Cluster с несколькими seed-узлами.",
"connection_modal.redis.topology.cluster.label": "Режим кластера",
"connection_modal.redis.topology.sentinel.description": "Обнаруживает primary-узел через Sentinel для высокой доступности primary-replica.",
"connection_modal.redis.topology.sentinel.label": "Режим Sentinel",
"connection_modal.redis.topology.single.description": "Подключение к одному узлу Redis.",
"connection_modal.redis.topology.single.label": "Одиночный режим",
"connection_modal.secret.blocking.redis_sentinel": "Перед проверкой введите новый пароль Sentinel или отмените очистку сохраненного пароля Sentinel",
"connection_modal.secret.clear_saved_dsn": "Очистить сохраненный DSN",
"connection_modal.secret.clear_saved_mongo_replica_password": "Очистить сохраненный пароль реплики MongoDB",
"connection_modal.secret.clear_saved_password": "Очистить сохраненный пароль",
"connection_modal.secret.clear_saved_proxy_password": "Очистить сохраненный пароль прокси",
"connection_modal.secret.clear_saved_replica_password": "Очистить сохраненный пароль реплики",
"connection_modal.secret.clear_saved_ssh_password": "Очистить сохраненный SSH-пароль",
"connection_modal.secret.clear_saved_tunnel_password": "Очистить сохраненный пароль HTTP Tunnel",
"connection_modal.secret.clear_saved_uri": "Очистить сохраненный URI",
"connection_modal.secret.error.saved_connection_deleted": "Сохраненное подключение не найдено. Возможно, оно было удалено. Обновите список и попробуйте еще раз.",
"connection_modal.secret.error.saved_connection_missing": "Сохраненный секрет для текущего подключения не найден. Повторно введите пароль, сохраните и попробуйте снова.",
"connection_modal.secret.error.store_unavailable": "Безопасное хранилище секретов сейчас недоступно. Проверьте системную связку ключей или диспетчер учетных данных и попробуйте снова.",
"connection_modal.secret.new_value_replaces_saved": "Введено новое значение. При сохранении оно заменит текущие сохраненные данные.",
"connection_modal.secret.saved_dsn_description": "DSN уже сохранен в защищенном хранилище. Оставьте поле пустым, чтобы сохранить его.",
"connection_modal.secret.saved_mongo_replica_password": "Сохраненный пароль реплики MongoDB",
"connection_modal.secret.saved_mongo_replica_password_description": "Пароль реплики MongoDB уже сохранен в защищенном хранилище. Оставьте поле пустым, чтобы сохранить его.",
"connection_modal.secret.saved_password": "Сохраненный пароль",
"connection_modal.secret.saved_placeholder": "•••••• (оставьте пустым, чтобы продолжить использовать {{label}})",
"connection_modal.secret.saved_primary_password_description": "Пароль основного подключения уже сохранен в защищенном хранилище. Оставьте поле пустым, чтобы сохранить его.",
"connection_modal.secret.saved_proxy_password": "Сохраненный пароль прокси",
"connection_modal.secret.saved_proxy_password_description": "Пароль прокси уже сохранен в защищенном хранилище. Оставьте поле пустым, чтобы сохранить его.",
"connection_modal.secret.saved_redis_password": "Сохраненный пароль Redis",
"connection_modal.secret.saved_redis_password_description": "Пароль Redis уже сохранен в защищенном хранилище. Оставьте поле пустым, чтобы сохранить его.",
"connection_modal.secret.saved_replica_password": "Сохраненный пароль реплики",
"connection_modal.secret.saved_replica_password_description": "Пароль реплики уже сохранен в защищенном хранилище. Оставьте поле пустым, чтобы сохранить его.",
"connection_modal.secret.saved_ssh_password": "Сохраненный SSH-пароль",
"connection_modal.secret.saved_ssh_password_description": "SSH-пароль уже сохранен в защищенном хранилище. Оставьте поле пустым, чтобы сохранить его.",
"connection_modal.secret.saved_tunnel_password": "Сохраненный пароль HTTP Tunnel",
"connection_modal.secret.saved_tunnel_password_description": "Пароль HTTP Tunnel уже сохранен в защищенном хранилище. Оставьте поле пустым, чтобы сохранить его.",
"connection_modal.secret.saved_uri_description": "URI подключения уже сохранен в защищенном хранилище. Оставьте поле пустым, чтобы сохранить его.",
"connection_modal.section.advanced_connection": "Расширенное подключение",
"connection_modal.section.appearance.description": "Задайте значок и цвет подключения в боковой панели.",
"connection_modal.section.appearance.title": "Внешний вид",
"connection_modal.section.basic.description": "Назовите подключение и укажите цель, драйвер и данные аутентификации.",
"connection_modal.section.basic.jvm_description": "Настройте цель JVM, режимы доступа и учетные данные.",
"connection_modal.section.basic.sql_description": "Настройте цель, драйвер, учетные данные и область баз данных.",
"connection_modal.section.basic.title": "Основная информация",
"connection_modal.section.config_sections": "Разделы конфигурации",
"connection_modal.section.network.description": "Настройте SSL/TLS, SSH Tunnel, прокси и HTTP Tunnel.",
"connection_modal.section.network.nav_description": "Настройте сеть и безопасность для этого подключения.",
"connection_modal.section.network.title": "Сеть и безопасность",
"connection_modal.section.readOnly.description": "Выберите только высокорисковые ограничения для прод-подключения вместо одного общего переключателя только для чтения.",
"connection_modal.section.readOnly.title": "Защита прод-подключения",
"connection_modal.ssl_hint.dameng": "Для SSL в Dameng нужны пути к клиентскому сертификату и закрытому ключу (sslCertPath / sslKeyPath).",
"connection_modal.ssl_hint.default": "Предпочитайте Required. Используйте Skip Verify только для тестов или самоподписанных сертификатов.",
"connection_modal.ssl_hint.mongodb": "Подключения MongoDB можно защитить через TLS. Если проверка сертификата мешает тесту, сначала используйте Skip Verify.",
"connection_modal.ssl_hint.mysql_like": "Включите SSL, если MySQL/MariaDB/Doris/Sphinx требует защищенную передачу. Для самоподписанных сертификатов сначала проверьте Preferred или Skip Verify.",
"connection_modal.ssl_hint.sqlserver": "Для SQL Server в продакшене используйте Required и отключите TrustServerCertificate.",
"connection_modal.status.disabled": "Отключено",
"connection_modal.status.enabled": "Включено",
"connection_modal.status.healthy": "Исправен",
"connection_modal.status.unhealthy": "Неисправен",
"connection_modal.step.select_source": "Выбор источника данных",
"connection_modal.step.select_source_description": "Выберите тип создаваемого подключения.",
"connection_modal.step1.group.domestic": "Отечественные базы данных",
"connection_modal.step1.group.message_queue": "Очереди сообщений",
"connection_modal.step1.group.nosql": "Базы данных NoSQL",
"connection_modal.step1.group.other": "Другое",
"connection_modal.step1.group.relational": "Реляционные базы данных",
"connection_modal.step1.group.timeseries": "Базы данных временных рядов",
"connection_modal.step1.group.vector": "Векторные базы данных",
"connection_modal.step1.hint.chroma": "Просмотр Collection, векторный поиск и фильтрация метаданных",
"connection_modal.step1.hint.custom": "Пользовательский драйвер и DSN",
"connection_modal.step1.hint.elasticsearch": "Просмотр индексов, проверка Mapping, JSON DSL и запросы query_string",
"connection_modal.step1.hint.file": "Подключение к локальному файлу",
"connection_modal.step1.hint.goldendb": "Совместимость с MySQL / распределенные транзакции",
"connection_modal.step1.hint.jvm": "JMX / Endpoint / Agent",
"connection_modal.step1.hint.mongodb": "Одиночный узел / Replica Set",
"connection_modal.step1.hint.oceanBase": "MySQL / Oracle арендатор",
"connection_modal.step1.hint.qdrant": "Просмотр Collection, векторный поиск и фильтрация Payload",
"connection_modal.step1.hint.redis": "Одиночный узел / кластер",
"connection_modal.step1.hint.standard": "Стандартная конфигурация подключения",
"connection_modal.switch.off": "Выкл",
"connection_modal.switch.on": "Вкл",
"connection_modal.table.health": "Состояние",
"connection_modal.table.role": "Роль",
"connection_modal.test_error.description": "Просмотрите полный текст ошибки, возвращенной backend.",
"connection_modal.test_error.empty": "Нет сведений об ошибке",
"connection_modal.test_error.title": "Сведения об ошибке проверки подключения",
"connection_modal.test.redis_database_list_failure": "Подключение успешно, но не удалось загрузить список баз данных Redis: {{detail}}",
"connection_modal.test.redis_database_list_timeout": "Подключение успешно, но загрузка списка баз данных Redis превысила время ожидания (>{{seconds}} сек.)",
"connection_modal.title.create": "Новое подключение {{type}}",
"connection_modal.title.create_description": "Введите и сохраните конфигурацию подключения.",
"connection_modal.title.edit": "Изменить подключение",
"connection_modal.title.edit_description": "Измените конфигурацию подключения {{type}}.",
"connection_modal.title.select_type": "Выберите тип источника данных",
"connection_modal.title.select_type_description": "Выберите один из поддерживаемых типов источников данных.",
"connection_modal.topology.cluster": "Кластер",
"connection_modal.topology.mongodb_replica": "Replica Set",
"connection_modal.topology.mongodb_replica_description": "Подключиться к MongoDB Replica Set и при необходимости обнаружить участников.",
"connection_modal.topology.mongodb_single_description": "Подключиться к одному хосту MongoDB.",
"connection_modal.topology.mysql_replica_description": "Использовать основное подключение и необязательные хосты реплик.",
"connection_modal.topology.mysql_single_description": "Подключиться к одному MySQL-совместимому узлу.",
"connection_modal.topology.primary_replica": "Primary/replica",
"connection_modal.topology.redis_cluster_description": "Подключиться к Redis Cluster и указать дополнительные узлы.",
"connection_modal.topology.redis_single_description": "Подключиться к одному узлу Redis.",
"connection_modal.topology.single": "Один узел",
"connection_modal.validation.address_or_path_required": "Введите адрес хоста или путь к файлу",
"connection_modal.validation.agent_url_required": "Введите URL Agent",
"connection_modal.validation.arthas_tunnel_url_required": "Введите URL Arthas Tunnel",
"connection_modal.validation.custom_dsn_required": "Введите строку подключения.",
"connection_modal.validation.custom_dsn_required_when_clearing_saved": "Введите новую строку подключения или отмените очистку сохраненного DSN.",
"connection_modal.validation.dameng_ssl_cert_path_required": "Введите путь к SSL-сертификату Dameng",
"connection_modal.validation.dameng_ssl_key_path_required": "Введите путь к SSL-ключу Dameng",
"connection_modal.validation.diagnostic_bridge_url_required": "Введите URL диагностического моста",
"connection_modal.validation.diagnostic_target_required": "Введите диагностическую цель",
"connection_modal.validation.diagnostic_timeout_range_1_300": "Тайм-аут диагностики должен быть от 1 до 300 секунд",
"connection_modal.validation.driver_name_required": "Введите имя драйвера.",
"connection_modal.validation.endpoint_url_required": "Введите URL Endpoint",
"connection_modal.validation.jvm_access_mode_required": "Выберите хотя бы один режим доступа JVM",
"connection_modal.validation.jvm_host_required": "Введите хост JVM.",
"connection_modal.validation.jvm_port_required": "Введите порт JVM.",
"connection_modal.validation.jvm_preferred_mode_required": "Выберите предпочтительный режим доступа JVM",
"connection_modal.validation.oracle_service_required": "Введите имя сервиса Oracle",
"connection_modal.validation.port_required": "Введите порт",
"connection_modal.validation.proxy_host_required": "Введите хост прокси",
"connection_modal.validation.proxy_port_required": "Введите порт прокси",
"connection_modal.validation.ssh_host_required": "Введите SSH-хост",
"connection_modal.validation.ssh_port_required": "Введите SSH-порт",
"connection_modal.validation.ssh_user_required": "Введите SSH-пользователя",
"connection_modal.validation.timeout_range_1_300": "Тайм-аут должен быть от 1 до 300 секунд",
"connection_modal.validation.tunnel_host_required": "Введите хост HTTP Tunnel",
"connection_modal.validation.tunnel_port_required": "Введите порт HTTP Tunnel",
"connection_modal.validation.username_required": "Введите имя пользователя",
"connection.backend.action.apply_result_changes": "Применить изменения результата",
"connection.backend.action.clear_table": "Очистить данные таблицы",
"connection.backend.action.create_database": "Создать базу данных",
"connection.backend.action.create_schema": "Создать схему",
"connection.backend.action.data_sync_structure": "Изменить структуру цели синхронизации",
"connection.backend.action.data_sync_write": "Записать синхронизированные данные",
"connection.backend.action.drop_database": "Удалить базу данных",
"connection.backend.action.drop_function_or_procedure": "Удалить функцию или хранимую процедуру",
"connection.backend.action.drop_schema": "Удалить схему",
"connection.backend.action.drop_table": "Удалить таблицу",
"connection.backend.action.drop_view": "Удалить представление",
"connection.backend.action.import_data": "Импортировать данные",
"connection.backend.action.preview_result_changes": "Предпросмотр изменений результата",
"connection.backend.action.rename_database": "Переименовать базу данных",
"connection.backend.action.rename_schema": "Переименовать схему",
"connection.backend.action.rename_table": "Переименовать таблицу",
"connection.backend.action.rename_view": "Переименовать представление",
"connection.backend.action.truncate_table": "Очистить таблицу через TRUNCATE",
"connection.backend.error.readonly_action_blocked": "Для этого подключения включена защита production, операция «{{action}}» запрещена.",
"connection.copy_suffix": " - копия",
"connection.delete": "Удалить подключение",
"connection.edit": "Изменить подключение",
"connection.new": "Новое подключение",
"connection.oceanbase.error.unsupported_protocol": "OceanBase поддерживает только tenant-протоколы MySQL/Oracle; \"{{value}}\" не поддерживается. Переключитесь на MySQL или Oracle.",
"connection.sidebar.delete.backendUnavailable": "Не удалось удалить подключение: интерфейс бэкенда недоступен",
"connection.sidebar.delete.confirmContent": "Удалить подключение \"{{name}}\"?",
"connection.sidebar.delete.confirmTitle": "Подтвердить удаление",
"connection.sidebar.delete.failureFallback": "Не удалось удалить подключение",
"connection.sidebar.delete.success": "Подключение удалено",
"connection.sidebar.disconnect.success": "Подключение отключено",
"connection.sidebar.duplicate.backendUnavailable": "Не удалось скопировать подключение: интерфейс бэкенда недоступен",
"connection.sidebar.duplicate.failureFallback": "Не удалось скопировать подключение",
"connection.sidebar.duplicate.noResult": "Не удалось скопировать подключение: бэкенд не вернул результат",
"connection.sidebar.duplicate.success": "Подключение скопировано: {{name}}",
"connection.sidebar.group.badge": "Группа",
"connection.sidebar.group.collapseAria": "Свернуть группу подключений {{name}}",
"connection.sidebar.group.delete": "Удалить группу",
"connection.sidebar.group.deleteConfirmContent": "Удалить группу \"{{name}}\"? Подключения внутри останутся.",
"connection.sidebar.group.deleteConfirmTitle": "Подтвердить удаление",
"connection.sidebar.group.edit": "Изменить группу",
"connection.sidebar.group.expandAria": "Развернуть группу подключений {{name}}",
"connection.sidebar.group.meta": "{{count}} подключений · Группа подключений",
"connection.sidebar.group.untitled": "Группа без имени",
"connection.sidebar.menu.copy": "Копировать подключение",
"connection.sidebar.menu.createDatabase": "Новая база данных",
"connection.sidebar.menu.current": "Текущий",
"connection.sidebar.menu.delete": "Удалить подключение",
"connection.sidebar.menu.disconnect": "Отключить",
"connection.sidebar.menu.groupSection": "Группы подключений",
"connection.sidebar.menu.hostBadge": "HOST",
"connection.sidebar.menu.hostFallback": "Адрес не указан",
"connection.sidebar.menu.moveOutTag": "Убрать из тега",
"connection.sidebar.menu.moveToTag": "Переместить в тег",
"connection.sidebar.menu.moveToUngrouped": "Убрать из группы",
"connection.sidebar.menu.refresh": "Обновить подключение",
"connection.sidebar.menu.section": "Подключение",
"connection.test": "Проверить подключение",
"connection.unnamed": "Безымянное подключение",
"data_export.action.clear": "Очистить",
"data_export.action.clear_progress": "Очистить текущий прогресс",
"data_export.action.select_all": "Выбрать всё",
"data_export.action.start": "Начать экспорт",
"data_export.dialog.action.start": "Начать экспорт",
"data_export.dialog.field.format": "Формат экспорта",
"data_export.dialog.field.scope": "Область экспорта",
"data_export.dialog.field.xlsx_max_rows": "Максимум строк на лист",
"data_export.dialog.field.xlsx_max_rows_help": "Действует только для XLSX, максимум {{maxRows}} строк (без заголовка)",
"data_export.dialog.validation.format_required": "Выберите формат экспорта",
"data_export.dialog.validation.scope_required": "Выберите доступную область экспорта",
"data_export.dialog.validation.xlsx_max_rows_limit": "Максимум строк на лист не может превышать {{maxRows}}",
"data_export.dialog.validation.xlsx_max_rows_required": "Введите корректное максимальное число строк на лист",
"data_export.hint.batch_stage": "Текущий этап — это подсказка от backend-процесса. Общий прогресс будет продвигаться после завершения каждого объекта или базы данных.",
"data_export.hint.rows_unknown": "Общее количество строк заранее не подсчитано, поэтому процент не отображается, а число записанных строк показывается в реальном времени.",
"data_export.label.connection": "Подключение",
"data_export.label.current_stage": "Текущий этап",
"data_export.label.database": "База данных",
"data_export.label.directory": "Каталог",
"data_export.label.elapsed": "Длительность экспорта",
"data_export.label.estimated_rows": "Оценка строк",
"data_export.label.export_content": "Содержимое экспорта",
"data_export.label.export_scope": "Область экспорта",
"data_export.label.file": "Файл",
"data_export.label.format": "Формат",
"data_export.label.host": "Хост",
"data_export.label.mode": "Режим",
"data_export.label.object": "Объект",
"data_export.label.object_count": "Количество объектов",
"data_export.label.progress_summary": "Описание прогресса",
"data_export.label.selected_databases": "Выбранные базы",
"data_export.label.sql_file": "SQL-файл",
"data_export.label.started_at": "Время начала",
"data_export.label.status": "Статус",
"data_export.label.strategy": "Путь выполнения",
"data_export.label.type": "Тип",
"data_export.label.xlsx_max_rows": "Максимум строк на лист",
"data_export.message.already_running": "Задача экспорта уже выполняется. Дождитесь её завершения перед запуском нового экспорта.",
"data_export.message.export_failed": "Ошибка экспорта: {{error}}",
"data_export.message.export_success": "Экспорт выполнен успешно",
"data_export.message.load_databases_failed": "Не удалось загрузить список баз данных",
"data_export.message.load_objects_failed": "Не удалось загрузить список объектов",
"data_export.progress.label.task": "Задача",
"data_export.progress.rows_written": "Записано {{current}} строк",
"data_export.progress.rows_written_with_total": "Записано {{current}} / {{total}} строк",
"data_export.progress.stage.export_failed": "Ошибка экспорта",
"data_export.progress.stage.exporting_item_with_progress": "Экспорт {{name}} ({{current}}/{{total}})",
"data_export.progress.stage.exporting_sql_file": "Экспорт SQL-файла",
"data_export.progress.stage.finalizing_csv_write": "Завершение записи CSV",
"data_export.progress.stage.finalizing_file_write": "Завершение записи файла",
"data_export.progress.stage.finalizing_xlsx_package": "Упаковка и сжатие XLSX-файла",
"data_export.progress.stage.preparing_batch_databases_export": "Подготовка пакетного экспорта баз данных",
"data_export.progress.stage.preparing_batch_tables_export": "Подготовка пакетного экспорта объектов",
"data_export.progress.stage.preparing_export": "Подготовка экспорта",
"data_export.progress.stage.querying_data": "Запрос данных",
"data_export.progress.stage.waiting_file_selection": "Ожидание выбора файла экспорта",
"data_export.progress.stage.writing_file": "Запись файла",
"data_export.progress.status.done": "Завершено",
"data_export.progress.status.error": "Ошибка",
"data_export.progress.status.finalizing": "Завершение",
"data_export.progress.status.idle": "Не начато",
"data_export.progress.status.running": "Выполняется",
"data_export.progress.status.start": "Подготовка",
"data_export.progress.title.done": "Экспорт завершён",
"data_export.progress.title.error": "Ошибка экспорта",
"data_export.progress.title.running": "Идёт экспорт",
"data_export.progress.value.target_fallback": "Безымянный объект",
"data_export.progress.value.task_fallback": "Задача экспорта",
"data_export.value.unestimated": "Без предварительного подсчёта",
"data_export.value.waiting_target_path": "Ожидание выбора пути назначения",
"data_export.value.waiting_to_start": "Ожидание запуска",
"data_export.workbench.alert.connection_missing_description": "Восстановите конфигурацию подключения перед запуском этой задачи экспорта.",
"data_export.workbench.alert.connection_missing_title": "Текущее подключение больше не существует",
"data_export.workbench.alert.database_load_failed": "Не удалось загрузить список баз данных",
"data_export.workbench.alert.object_load_failed": "Не удалось загрузить список объектов",
"data_export.workbench.alert.scope_unavailable_description": "Для этой области нет стабильного backend-контекста запроса. Выполните экспорт прямо со страницы данных или переключитесь на экспорт всей таблицы либо отфильтрованных результатов.",
"data_export.workbench.alert.scope_unavailable_title": "Эту область сейчас нельзя воспроизвести в рабочей области экспорта",
"data_export.workbench.batch_databases.mode.backup.description": "Создаёт отдельные SQL-файлы со структурой и данными для каждой базы данных.",
"data_export.workbench.batch_databases.mode.backup.label": "Резервная копия баз",
"data_export.workbench.batch_databases.mode.schema.description": "Создаёт отдельные SQL-файлы со структурой для каждой базы данных.",
"data_export.workbench.batch_databases.mode.schema.label": "Экспорт схемы базы",
"data_export.workbench.batch_tables.mode.backup.description": "Экспортирует SQL структуры и данных для выбранных объектов.",
"data_export.workbench.batch_tables.mode.backup.label": "Резервная копия",
"data_export.workbench.batch_tables.mode.data_only.description": "Экспортирует INSERT-запросы для выбранных объектов.",
"data_export.workbench.batch_tables.mode.data_only.label": "Только данные",
"data_export.workbench.batch_tables.mode.schema.description": "Экспортирует CREATE / definition SQL для выбранных объектов в текущей базе данных.",
"data_export.workbench.batch_tables.mode.schema.label": "Структура",
"data_export.workbench.description.current_task_empty": "После запуска экспорта здесь появится единый основной прогресс текущей задачи.",
"data_export.workbench.description.history": "Текущая задача здесь не дублируется. В истории сохраняются только сводки завершённых задач или задач, от которых вы переключились.",
"data_export.workbench.empty.history": "История пока пуста. После завершения экспорта здесь останется сводка последней задачи.",
"data_export.workbench.empty.not_started": "Экспорт ещё не запускался",
"data_export.workbench.helper.available_objects": "В текущей базе доступно {{available}} объектов, выбрано {{selected}}.",
"data_export.workbench.helper.batch_database_output": "При запуске экспорта сначала выберите выходной каталог, затем для каждой базы данных будут созданы отдельные SQL-файлы.",
"data_export.workbench.helper.batch_databases_start": "При пакетном экспорте баз данных сначала выбирается выходной каталог, затем для каждой базы создаётся отдельный SQL-файл, а справа показывается общий прогресс.",
"data_export.workbench.helper.batch_tables_start": "Пакетный экспорт объектов создаёт один SQL-файл и показывает справа общий прогресс по объектам и последние сводки задач.",
"data_export.workbench.helper.single_export_start": "После запуска экспорта сначала выбирается целевой файл, а справа отображаются единый индикатор прогресса, длительность и путь вывода.",
"data_export.workbench.history.count": "{{count}} записей",
"data_export.workbench.mode.batch_databases": "Пакет баз данных",
"data_export.workbench.mode.batch_tables": "Пакет объектов",
"data_export.workbench.object_type.materialized_view": "Материализованное представление",
"data_export.workbench.object_type.table": "Таблица",
"data_export.workbench.object_type.view": "Представление",
"data_export.workbench.placeholder.loading_databases": "Загрузка баз данных...",
"data_export.workbench.placeholder.loading_objects": "Загрузка объектов...",
"data_export.workbench.placeholder.select_connection": "Выберите подключение",
"data_export.workbench.placeholder.select_database": "Выберите базу данных",
"data_export.workbench.placeholder.select_database_first": "Сначала выберите базу данных",
"data_export.workbench.placeholder.select_object": "Выберите объекты",
"data_export.workbench.scope.all.description": "Повторно запрашивает всю таблицу на backend и экспортирует все данные.",
"data_export.workbench.scope.all.label": "Все данные таблицы",
"data_export.workbench.scope.selected_databases": "Выбранные базы данных ({{count}})",
"data_export.workbench.scope.selected_objects": "Выбранные объекты ({{count}})",
"data_export.workbench.section.config": "Параметры экспорта",
"data_export.workbench.section.current_task": "Текущая задача",
"data_export.workbench.section.history": "Последние задачи",
"data_export.workbench.strategy.batch_databases": "Пакетный SQL-экспорт баз данных · {{mode}}",
"data_export.workbench.strategy.batch_tables": "Пакетный SQL-экспорт объектов · {{mode}}",
"data_export.workbench.strategy.full_table": "Путь экспорта всей таблицы",
"data_export.workbench.strategy.query_replay": "Экспорт через воспроизведение SQL",
"data_export.workbench.subtitle": "Настраивайте экспорт, следите за основным прогрессом и просматривайте сводки последних задач на одной странице.",
"data_export.workbench.summary.batch_databases_done": "Завершено {{current}} / {{total}} баз данных",
"data_export.workbench.summary.batch_databases_running": "Идёт пакетный экспорт баз данных",
"data_export.workbench.summary.batch_tables_done": "Завершено {{current}} / {{total}} объектов",
"data_export.workbench.summary.batch_tables_running": "Идёт пакетный экспорт объектов",
"data_export.workbench.target.batch_databases": "{{count}} баз данных",
"data_export.workbench.target.batch_tables": "{{database}} · {{count}} объектов",
"data_export.workbench.target.current_database": "Текущая база данных",
"data_export.workbench.task.export_target": "Экспорт {{name}}",
"data_export.workbench.title": "Рабочая область экспорта",
"data_grid.action.apply": "Применить",
"data_grid.ai_insight.prompt": "Проанализируй следующие результаты запроса (первые {{count}} строк примера):\n```json\n{{json}}\n```\n\nПроанализируй характеристики данных, найди закономерности или предложи бизнес-инсайты.",
"data_grid.ai_prompt.analyze_page": "Проанализируй следующие данные результата запроса (первые {{count}} строк-образцов):\n```json\n{{json}}\n```\n\nОпредели особенности данных, найди закономерности или дай бизнес-выводы.",
"data_grid.aria.row_number": "Номер строки",
"data_grid.batch_fill.set_null": "Установить NULL",
"data_grid.batch_fill.title": "Массовое заполнение ({{count}} ячеек)",
"data_grid.batch_fill.value_placeholder": "Введите значение для заполнения",
"data_grid.cell_editor.now": "Сейчас",
"data_grid.cell_editor.title": "Редактировать ячейку",
"data_grid.cell_editor.title_with_column": "Редактировать ячейку: {{column}}",
"data_grid.column_quick_find.placeholder": "Перейти к столбцу...",
"data_grid.column_quick_find.tooltip": "Введите имя столбца, затем нажмите Enter или кнопку перехода, чтобы перейти к этому столбцу",
"data_grid.column_settings.column_visibility": "Видимость столбцов",
"data_grid.column_settings.display_settings": "Настройки отображения",
"data_grid.column_settings.field_info": "Информация о поле",
"data_grid.column_settings.hide_all": "Скрыть все",
"data_grid.column_settings.remember_column_order": "Запомнить пользовательский порядок столбцов",
"data_grid.column_settings.remember_hidden_columns": "Запомнить настройки скрытых столбцов",
"data_grid.column_settings.reset_hidden": "Сбросить скрытые столбцы",
"data_grid.column_settings.reset_hidden_success": "Все столбцы снова отображаются",
"data_grid.column_settings.reset_order": "Сбросить порядок",
"data_grid.column_settings.reset_order_success": "Порядок столбцов по умолчанию восстановлен",
"data_grid.column_settings.search_columns_placeholder": "Поиск по именам столбцов...",
"data_grid.column_settings.show_all": "Показать все",
"data_grid.column_settings.show_comments": "Показывать комментарии столбцов в заголовке",
"data_grid.column_settings.show_types": "Показывать типы столбцов в заголовке",
"data_grid.column.comment_tooltip": "Комментарий: {{comment}}",
"data_grid.column.drag_tooltip": "Перетащите, чтобы изменить порядок столбцов",
"data_grid.column.foreign_key_jump_title": "Перейти к таблице внешнего ключа: {{tableName}}",
"data_grid.column.foreign_key_tooltip": "Внешний ключ: {{target}}",
"data_grid.column.resize_tooltip": "Перетащите, чтобы изменить ширину столбца; двойной щелчок подгонит автоматически",
"data_grid.column.type_tooltip": "Тип: {{type}}",
"data_grid.context_menu.auto_fit_column": "Подогнать ширину столбца по содержимому",
"data_grid.context_menu.clear_column_sort": "Сбросить сортировку этого поля",
"data_grid.context_menu.column_display_section": "Отображение поля",
"data_grid.context_menu.column_no_comment": "Нет комментария",
"data_grid.context_menu.column_unknown_type": "Неизвестный тип",
"data_grid.context_menu.column_unnamed_field": "Поле без имени",
"data_grid.context_menu.copy_as_csv": "Копировать как CSV",
"data_grid.context_menu.copy_as_delete": "Копировать как DELETE",
"data_grid.context_menu.copy_as_insert": "Копировать как INSERT",
"data_grid.context_menu.copy_as_json": "Копировать как JSON",
"data_grid.context_menu.copy_as_markdown": "Копировать как Markdown",
"data_grid.context_menu.copy_as_update": "Копировать как UPDATE",
"data_grid.context_menu.copy_column_data": "Копировать данные столбца",
"data_grid.context_menu.copy_field_name": "Копировать имя поля",
"data_grid.context_menu.copy_row_as_new": "Копировать эту строку как новую",
"data_grid.context_menu.copy_row_data": "Копировать данные строки",
"data_grid.context_menu.current_cell": "Текущая ячейка",
"data_grid.context_menu.current_marker": "Текущий",
"data_grid.context_menu.current_row": "Текущая строка",
"data_grid.context_menu.edit_row": "Редактировать эту строку",
"data_grid.context_menu.edit_section": "Редактировать",
"data_grid.context_menu.export_as_csv": "Экспортировать как CSV",
"data_grid.context_menu.export_as_excel": "Экспортировать как Excel",
"data_grid.context_menu.export_as_html": "Экспортировать как HTML",
"data_grid.context_menu.export_as_json": "Экспортировать как JSON",
"data_grid.context_menu.export_selected": "Экспортировать выбранные данные",
"data_grid.context_menu.fill_to_selected_rows": "Заполнить выбранные строки ({{count}})",
"data_grid.context_menu.hide_column": "Скрыть это поле",
"data_grid.context_menu.hide_column_comment": "Скрыть комментарий поля",
"data_grid.context_menu.hide_column_type": "Скрыть тип поля",
"data_grid.context_menu.paste_copied_columns": "Вставить скопированные столбцы (с теми же именами)",
"data_grid.context_menu.paste_row_as_new": "Вставить как новую строку",
"data_grid.context_menu.paste_row_as_new_count": "Вставить как новую строку ({{count}})",
"data_grid.context_menu.show_column_comment": "Показать комментарий поля",
"data_grid.context_menu.show_column_type": "Показать тип поля",
"data_grid.context_menu.sort_ascending": "Сортировать по возрастанию",
"data_grid.context_menu.sort_descending": "Сортировать по убыванию",
"data_grid.context_menu.sort_section": "Сортировка",
"data_grid.context_menu.undo_cell_change": "Отменить изменение этой ячейки",
"data_grid.copy_sql.error.missing_safe_where": "В текущем наборе результатов нет первичного или уникального ключа, который безопасно определяет строку, и он не покрывает все столбцы таблицы, поэтому условие WHERE нельзя сформировать.",
"data_grid.copy_sql.error.missing_table_name": "Текущий набор результатов не связан с явным именем таблицы, поэтому {{mode}} SQL нельзя сформировать.",
"data_grid.copy_sql.error.no_copyable_fields": "В текущем наборе результатов нет полей, которые можно скопировать, поэтому SQL нельзя сформировать.",
"data_grid.data_panel.click_cell_description": "Щелкните ячейку таблицы, чтобы просмотреть данные полностью",
"data_grid.data_panel.click_cell_title": "Щелкните ячейку для просмотра данных",
"data_grid.data_panel.title": "Предпросмотр данных",
"data_grid.datetime_picker.now": "Сейчас",
"data_grid.ddl.copy": "Копировать DDL",
"data_grid.ddl.layout_bottom": "Снизу",
"data_grid.ddl.layout_side": "Боковая панель",
"data_grid.ddl.loading": "Загрузка DDL...",
"data_grid.ddl.reload": "Перезагрузить",
"data_grid.ddl.sidebar_aria": "Боковая панель DDL таблицы",
"data_grid.ddl.view": "Показать DDL",
"data_grid.embedded_designer.title": "Проектирование таблицы ({{tableName}})",
"data_grid.error_boundary.description": "При отображении таблицы данных произошла ошибка. Возможно, формат данных недопустим.",
"data_grid.error_boundary.retry": "Повторить",
"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": "Отфильтрованные результаты",
"data_grid.export.group_full_table": "Вся таблица",
"data_grid.export.no_selection_prompt": "Строки не выбраны. Выберите область экспорта:",
"data_grid.export.options_title": "Параметры экспорта",
"data_grid.export.query_result_title": "Экспорт результатов запроса",
"data_grid.export.scope_prompt": "Выберите область экспорта:",
"data_grid.export.scope.all_results_cached": "Все результаты (текущий кэш {{count}} строк)",
"data_grid.export.scope.all_results_cached_description": "Экспортирует все результаты из текущего кэша, если текущий запрос нельзя воспроизвести повторно.",
"data_grid.export.scope.all_results_requery": "Все результаты (повторный запрос)",
"data_grid.export.scope.all_results_requery_description": "Повторно выполняет SQL на backend, чтобы не экспортировать только текущую страницу или кэш.",
"data_grid.export.scope.current_page": "Текущая страница ({{count}} строк)",
"data_grid.export.scope.current_page_description": "Экспортирует данные напрямую из кэша текущей страницы.",
"data_grid.export.scope.current_page_requery_description": "Повторно запрашивает текущую страницу на backend с текущими параметрами пагинации перед экспортом.",
"data_grid.export.scope.current_page_unavailable_description": "Текущая страница зависит от временного состояния frontend, поэтому лучше использовать быстрый экспорт.",
"data_grid.export.scope.filtered_results_all": "Отфильтрованные результаты (все)",
"data_grid.export.scope.filtered_results_all_requery_description": "Повторно запрашивает базу данных с текущими фильтрами и экспортирует все отфильтрованные результаты.",
"data_grid.export.scope.filtered_results_all_unavailable_description": "Текущий источник данных или текущее состояние не поддерживает повтор фильтрованного экспорта в workbench.",
"data_grid.export.scope.selected_rows": "Выбранные строки",
"data_grid.export.scope.selected_rows_count": "Выбранные строки ({{count}} строк)",
"data_grid.export.scope.selected_rows_description": "Экспортирует только отмеченные строки из текущего набора результатов.",
"data_grid.export.selected_rows": "Экспорт выбранных строк ({{count}})",
"data_grid.filter.add_condition": "Добавить условие",
"data_grid.filter.add_sort": "Добавить сортировку",
"data_grid.filter.apply": "Применить",
"data_grid.filter.apply_where": "Применить WHERE",
"data_grid.filter.clear": "Очистить",
"data_grid.filter.custom_where_placeholder": "Введите пользовательское выражение WHERE (без WHERE), например: status IN ('A','B')",
"data_grid.filter.disable_all": "Отключить все",
"data_grid.filter.enable_all": "Включить все",
"data_grid.filter.enabled": "Включено",
"data_grid.filter.end_value_placeholder": "Конечное значение",
"data_grid.filter.first_condition": "Первое",
"data_grid.filter.invalid_quick_where": "Условие WHERE не может содержать точки с запятой или SQL-комментарии",
"data_grid.filter.list_values_placeholder": "Разделяйте несколько значений запятыми или переносами строк",
"data_grid.filter.logic.and": "И (AND)",
"data_grid.filter.logic.or": "Или (OR)",
"data_grid.filter.mongodb_query_placeholder": "Введите объект MongoDB-запроса в JSON, например {\"status\":\"A\"}",
"data_grid.filter.no_value_placeholder": "Значение не требуется",
"data_grid.filter.op.between": "Между",
"data_grid.filter.op.contains": "Содержит",
"data_grid.filter.op.custom": "[Пользовательское]",
"data_grid.filter.op.ends_with": "Заканчивается на",
"data_grid.filter.op.in_list": "В списке",
"data_grid.filter.op.is_empty": "Пусто",
"data_grid.filter.op.is_not_empty": "Не пусто",
"data_grid.filter.op.is_not_null": "Не NULL",
"data_grid.filter.op.is_null": "NULL",
"data_grid.filter.op.not_between": "Не между",
"data_grid.filter.op.not_contains": "Не содержит",
"data_grid.filter.op.not_ends_with": "Не заканчивается на",
"data_grid.filter.op.not_in_list": "Не в списке",
"data_grid.filter.op.not_starts_with": "Не начинается с",
"data_grid.filter.op.starts_with": "Начинается с",
"data_grid.filter.quick_where_placeholder": "Введите условие после WHERE, например status = 1 AND name LIKE 'A%'",
"data_grid.filter.search_field_placeholder": "Поиск по именам полей",
"data_grid.filter.select_sort_field_placeholder": "Выберите поле сортировки",
"data_grid.filter.sort_asc": "По возрастанию",
"data_grid.filter.sort_desc": "По убыванию",
"data_grid.filter.sort_label": "Сортировка",
"data_grid.filter.start_value_placeholder": "Начальное значение",
"data_grid.filter.suggestion.column": "Столбец",
"data_grid.filter.suggestion.keyword": "Ключевое слово",
"data_grid.filter.suggestion.operator": "Оператор",
"data_grid.filter.then_label": "Затем",
"data_grid.json_editor.apply_changes": "Применить изменения",
"data_grid.json_editor.description": "Редактируйте в текущем порядке результатов. В режиме JSON нельзя добавлять или удалять записи. Для этого используйте табличный режим.",
"data_grid.json_editor.format": "Форматировать JSON",
"data_grid.json_editor.invalid_format": "Недопустимый формат JSON: {{error}}",
"data_grid.json_editor.title": "Редактировать набор результатов JSON",
"data_grid.message.auto_commit_failed": "Автофиксация не удалась: {{detail}}",
"data_grid.message.auto_commit_success": "Автофиксация выполнена",
"data_grid.message.cell_edit_mode_entered": "Режим редактирования ячеек включен. Перетаскивайте, чтобы выбрать несколько ячеек.",
"data_grid.message.cell_edit_mode_exited": "Режим редактирования ячеек отключен.",
"data_grid.message.change_set_build_failed": "Не удалось построить набор изменений",
"data_grid.message.change_set_build_failed_detail": "Не удалось построить набор изменений: {{detail}}",
"data_grid.message.column_order_reset": "Порядок столбцов по умолчанию восстановлен",
"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.commit_failed": "Не удалось зафиксировать изменения: {{detail}}",
"data_grid.message.copied_columns": "Скопировано столбцов: {{count}}. Их можно вставить в целевые строки.",
"data_grid.message.copied_rows": "Скопировано строк: {{count}}. Их можно вставить как новые строки.",
"data_grid.message.copied_to_clipboard": "Скопировано в буфер обмена",
"data_grid.message.copy_columns_first": "Сначала скопируйте значения столбцов",
"data_grid.message.copy_columns_same_row_only": "При копировании значений столбцов выбирайте ячейки только из одной строки",
"data_grid.message.copy_rows_first": "Сначала скопируйте строки",
"data_grid.message.copy_sql_not_supported": "Этот источник данных не поддерживает копирование SQL. Используйте копирование JSON/CSV/Markdown.",
"data_grid.message.current_field_not_editable": "Текущее поле недоступно для редактирования",
"data_grid.message.current_record_not_editable": "Текущую запись нельзя редактировать",
"data_grid.message.current_row_no_copyable_content": "В текущей строке нет копируемого содержимого",
"data_grid.message.ddl_copied": "DDL скопирован в буфер обмена",
"data_grid.message.ddl_copy_failed": "Не удалось скопировать DDL",
"data_grid.message.ddl_load_failed": "Не удалось загрузить DDL",
"data_grid.message.ddl_missing_context": "У текущей таблицы отсутствует подключение или имя таблицы, поэтому DDL нельзя просмотреть",
"data_grid.message.drag_select_cells_to_copy": "Сначала перетащите, чтобы выбрать ячейки для копирования",
"data_grid.message.export_failed": "Не удалось экспортировать: {{detail}}",
"data_grid.message.export_success": "Экспорт завершен",
"data_grid.message.export_with_uncommitted_changes": "Есть незафиксированные изменения. Для экспорта будут использованы видимые данные таблицы. Если нужны полные данные длинных полей, сначала зафиксируйте изменения.",
"data_grid.message.exporting": "Экспорт...",
"data_grid.message.exporting_all": "Экспорт всех данных...",
"data_grid.message.exporting_rows": "Экспорт строк: {{count}}...",
"data_grid.message.filled_cells": "Заполнено ячеек: {{count}}",
"data_grid.message.filled_rows": "Заполнено строк: {{count}}",
"data_grid.message.filtered_export_not_supported": "Этот источник данных не поддерживает экспорт отфильтрованных результатов",
"data_grid.message.filtered_export_uses_committed_data": "Есть незафиксированные изменения. Для экспорта отфильтрованных результатов используются зафиксированные данные базы.",
"data_grid.message.import_done": "Импорт завершен",
"data_grid.message.json_applied": "Изменения JSON применены к текущему набору результатов. Можно продолжить и зафиксировать транзакцию.",
"data_grid.message.json_invalid": "Недопустимый JSON: {{detail}}",
"data_grid.message.json_parse_failed": "Не удалось разобрать JSON: {{detail}}",
"data_grid.message.json_record_count_mismatch": "Количество записей не совпадает: сейчас {{current}} строк, в JSON {{json}} строк. В этом режиме не добавляйте и не удаляйте записи.",
"data_grid.message.json_record_missing_row_key": "В записи {{index}} отсутствует идентификатор строки, поэтому ее нельзя применить",
"data_grid.message.json_record_not_object": "Запись {{index}} не является объектом, поэтому ее нельзя применить",
"data_grid.message.json_view_must_be_array": "JSON-представление должно быть массивом, где каждый элемент соответствует одной записи",
"data_grid.message.keep_one_visible_column": "Оставьте хотя бы один видимый столбец",
"data_grid.message.locate_record_to_edit": "Сначала найдите запись для редактирования",
"data_grid.message.locator_column_value_empty": "Значение столбца локатора {{column}} пустое, поэтому изменения нельзя безопасно отправить.",
"data_grid.message.no_changes_to_commit": "Нет изменений для фиксации",
"data_grid.message.no_copyable_cells": "Копируемые ячейки не распознаны",
"data_grid.message.no_copyable_columns": "Копируемые столбцы не распознаны",
"data_grid.message.no_copyable_rows": "Копируемые строки не распознаны",
"data_grid.message.no_data_changes": "Данные не изменились",
"data_grid.message.no_ddl_to_copy": "Нет DDL для копирования",
"data_grid.message.no_field_name": "Имя поля не распознано",
"data_grid.message.no_filter_applied": "Сейчас не применено ни одно условие фильтра",
"data_grid.message.no_other_rows_to_fill": "Нет других выбранных строк, которые можно заполнить",
"data_grid.message.no_pasteable_editable_fields": "Нет редактируемых полей, которые можно вставить",
"data_grid.message.no_pasteable_rows": "Нет строк, которые можно вставить",
"data_grid.message.no_rows_selected": "Строки не выбраны",
"data_grid.message.no_safe_locator": "Для текущего результата нет безопасного способа определить строку, поэтому изменения нельзя отправить.",
"data_grid.message.pasted_columns_to_rows": "Вставлено в {{rows}} строк, всего {{cells}} ячеек",
"data_grid.message.pasted_rows_as_new": "Вставлено новых строк: {{count}}. Проверьте их перед фиксацией.",
"data_grid.message.preview_sql_failed": "Не удалось сформировать предпросмотр SQL",
"data_grid.message.preview_sql_failed_detail": "Не удалось сформировать предпросмотр SQL: {{detail}}",
"data_grid.message.result_set_no_copyable_content": "В текущем наборе результатов нет копируемого содержимого",
"data_grid.message.rollback_failed": "Не удалось откатить транзакцию: {{detail}}",
"data_grid.message.saved": "Сохранено",
"data_grid.message.select_cells_to_fill": "Сначала выберите ячейки для заполнения",
"data_grid.message.select_file_failed": "Не удалось выбрать файл: {{detail}}",
"data_grid.message.select_rows_to_copy": "Сначала выберите строки для копирования",
"data_grid.message.select_rows_to_fill": "Сначала выберите строки для заполнения",
"data_grid.message.select_same_row_cells_to_copy": "Сначала выберите ячейки в одной строке для копирования",
"data_grid.message.select_target_rows": "Сначала выберите целевые строки",
"data_grid.message.selected_cells_no_update": "Выбранные ячейки не требуют обновления",
"data_grid.message.selection_no_copyable_content": "В текущем выделении нет копируемого содержимого",
"data_grid.message.target_row_not_found": "Целевая строка не найдена. Обновите данные и повторите попытку.",
"data_grid.message.target_rows_cannot_only_source": "Целевые строки не могут состоять только из исходной строки. Выберите другую строку.",
"data_grid.message.target_rows_no_update": "Целевые строки не требуют обновления",
"data_grid.message.transaction_committed": "Транзакция зафиксирована",
"data_grid.message.transaction_rolled_back": "Транзакция отменена",
"data_grid.message.undo_added_row_hint": "Для новых строк используйте удаление выбранных строк или откат всей таблицы.",
"data_grid.message.undo_cell_original_missing": "Исходные данные этой ячейки не найдены, поэтому отменить изменение нельзя.",
"data_grid.message.undo_cell_success": "Изменение ячейки отменено",
"data_grid.metadata_view.column_name": "Имя",
"data_grid.metadata_view.column_type": "Тип",
"data_grid.metadata_view.comment": "Комментарий",
"data_grid.metadata_view.default_value": "Значение по умолчанию",
"data_grid.metadata_view.er_collapse_fields": "Свернуть сводку полей",
"data_grid.metadata_view.er_current_badge": "Текущая таблица",
"data_grid.metadata_view.er_empty": "Для этой таблицы не найдено связей по внешним ключам",
"data_grid.metadata_view.er_expand_fields": "Развернуть все поля",
"data_grid.metadata_view.er_expand_hidden_columns": "Показать еще {{count}} полей",
"data_grid.metadata_view.er_expand_relations": "Развернуть следующий уровень",
"data_grid.metadata_view.er_field_badge": "Поле",
"data_grid.metadata_view.er_hidden_columns": "Еще {{count}} полей",
"data_grid.metadata_view.er_open_table": "Открыть таблицу",
"data_grid.metadata_view.er_partial_warning": "Часть связей не удалось загрузить. Диаграмма может быть неполной.",
"data_grid.metadata_view.er_reference_badge": "Ссылается на",
"data_grid.metadata_view.er_referenced_by_badge": "На нее ссылаются",
"data_grid.metadata_view.er_related_table_count": "Связанных таблиц: {{count}}",
"data_grid.metadata_view.er_relation_count": "Связей: {{count}}",
"data_grid.metadata_view.er_relation_depth": "Глубина {{count}}",
"data_grid.metadata_view.er_reset_relations": "Сбросить до одного уровня",
"data_grid.metadata_view.er_table_badge": "Таблица",
"data_grid.metadata_view.field_count": "{{count}} полей",
"data_grid.metadata_view.fields_badge": "Поля",
"data_grid.modal.export_options.all_data": "Экспортировать все данные",
"data_grid.modal.export_options.current_page": "Экспортировать текущую страницу ({{count}} строк)",
"data_grid.modal.export_options.filtered_results": "Отфильтрованные результаты",
"data_grid.modal.export_options.no_rows_selected": "Строки не выбраны. Выберите область экспорта:",
"data_grid.modal.export_options.title": "Параметры экспорта",
"data_grid.modal.export_options.whole_table": "Вся таблица",
"data_grid.page_find.next": "Далее",
"data_grid.page_find.placeholder": "Поиск на текущей странице...",
"data_grid.page_find.previous": "Назад",
"data_grid.page_find.summary": "{{occurrences}} совпадений / {{cells}} ячеек",
"data_grid.page_find.tooltip": "Ищет только по строкам, загруженным на текущей странице. Условия WHERE не меняются.",
"data_grid.pagination.jump_action": "ОК",
"data_grid.pagination.jump_aria": "Перейти на страницу",
"data_grid.pagination.jump_label": "Перейти",
"data_grid.pagination.page_size_aria": "Строк на странице",
"data_grid.pagination.page_size_option": "{{count}} строк / страница",
"data_grid.pagination.page.current": "Страница {{current}}",
"data_grid.pagination.page.known": "Страница {{current}} / {{totalPages}}",
"data_grid.pagination.result_set": "Набор результатов",
"data_grid.pagination.summary.approximate": "Сейчас {{current}} строк / около {{total}} строк",
"data_grid.pagination.summary.cancelled": "Сейчас {{current}} строк / подсчет отменен",
"data_grid.pagination.summary.counting": "Сейчас {{current}} строк / подсчет общего числа...",
"data_grid.pagination.summary.counting_exact": "Сейчас {{current}} строк / подсчет точного общего числа...",
"data_grid.pagination.summary.empty": "Сейчас 0 строк / всего 0 строк",
"data_grid.pagination.summary.known": "Сейчас {{current}} строк / всего {{total}} строк",
"data_grid.pagination.summary.not_counted": "Сейчас {{current}} строк / общее число не подсчитано",
"data_grid.preview_panel.no_cell_description": "Нажмите ячейку таблицы, чтобы посмотреть полные данные",
"data_grid.preview_panel.no_cell_title": "Нажмите ячейку, чтобы посмотреть данные",
"data_grid.preview_sql.copied": "Скопировано",
"data_grid.preview_sql.no_changes": "Нет изменений",
"data_grid.preview_sql.summary": "{{deletes}} DELETE, {{updates}} UPDATE, {{inserts}} INSERT",
"data_grid.preview_sql.title": "Предпросмотр изменений",
"data_grid.record_view.edit_current": "Редактировать текущую запись",
"data_grid.record_view.edit_json": "Редактировать JSON",
"data_grid.record_view.empty": "В текущем наборе результатов нет данных",
"data_grid.record_view.json_record_count": "Текущий набор результатов: {{count}} записей",
"data_grid.record_view.next": "Следующая",
"data_grid.record_view.previous": "Предыдущая",
"data_grid.record_view.record_position": "Запись {{current}} / {{total}}",
"data_grid.row_editor.popup_edit": "Редактировать во всплывающем окне",
"data_grid.row_editor.title": "Редактировать строку",
"data_grid.secondary.column_display": "Отображение столбцов",
"data_grid.secondary.data_preview": "Предпросмотр данных",
"data_grid.secondary.er_diagram": "ER-диаграмма",
"data_grid.secondary.jump_column": "Перейти к столбцу",
"data_grid.secondary.live": "активно",
"data_grid.secondary.object_design": "Дизайн объекта",
"data_grid.secondary.pending_changes": "Не отправлено {{count}}",
"data_grid.secondary.row_count": "{{count}} строк",
"data_grid.secondary.view_ddl": "Показать DDL",
"data_grid.table_fallback.query_result": "Результат запроса",
"data_grid.toolbar.add_row": "Добавить строку",
"data_grid.toolbar.ai_insight": "AI-анализ данных",
"data_grid.toolbar.ai_insight_short": "AI-анализ",
"data_grid.toolbar.ai_insight_tooltip": "Попросить AI проанализировать данные текущей страницы запроса",
"data_grid.toolbar.batch_fill": "Массовое заполнение ({{count}})",
"data_grid.toolbar.cancel_count": "Отменить подсчет",
"data_grid.toolbar.cancel_count_tooltip": "Отменить этот подсчет точного общего числа. Текущий просмотр не изменится.",
"data_grid.toolbar.cell_editor": "Редактор ячеек",
"data_grid.toolbar.commit": "Зафиксировать транзакцию ({{count}})",
"data_grid.toolbar.commit_delay.seconds": "{{seconds}} с",
"data_grid.toolbar.commit_label": "Зафиксировать транзакцию",
"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": "Копировать строку",
"data_grid.toolbar.copy_selection": "Копировать выделение ({{count}})",
"data_grid.toolbar.copy_selection_columns": "Копировать значения столбцов из выделения ({{count}})",
"data_grid.toolbar.count_total": "Подсчитать всего",
"data_grid.toolbar.count_total_tooltip": "Подсчитать точное общее число с текущим фильтром",
"data_grid.toolbar.delete_selected": "Удалить выбранное",
"data_grid.toolbar.export": "Экспорт",
"data_grid.toolbar.filter": "Фильтр",
"data_grid.toolbar.import": "Импорт",
"data_grid.toolbar.paste_row": "Вставить строку",
"data_grid.toolbar.paste_row_count": "Вставить строку ({{count}})",
"data_grid.toolbar.paste_to_selected_rows": "Вставить в выбранные строки ({{count}})",
"data_grid.toolbar.preview_sql": "Предпросмотр SQL",
"data_grid.toolbar.preview_sql_generate": "Сформировать предпросмотр SQL",
"data_grid.toolbar.refresh": "Обновить",
"data_grid.toolbar.rollback": "Откат",
"data_grid.toolbar.selected_count": "Выбрано: {{count}}",
"data_grid.toolbar.undo_delete": "Отменить удаление",
"data_grid.view.edit_current_record": "Редактировать текущую запись",
"data_grid.view.edit_json": "Редактировать JSON",
"data_grid.view.empty_result": "В текущем наборе результатов нет данных",
"data_grid.view.next_record": "Следующая запись",
"data_grid.view.previous_record": "Предыдущая запись",
"data_grid.view.record_count": "Текущий набор результатов: {{count}} записей",
"data_grid.view.record_position": "Запись {{current}} / {{total}}",
"data_grid.view.result_view": "Просмотр результата",
"data_grid.view.table": "Таблица",
"data_grid.view.text": "Текст",
"data_sync.action.analyze_diff": "Анализировать различия",
"data_sync.action.cancel": "Отмена",
"data_sync.action.close": "Закрыть",
"data_sync.action.continue_sync": "Продолжить синхронизацию",
"data_sync.action.next": "Далее",
"data_sync.action.previous": "Назад",
"data_sync.action.start_sync": "Начать синхронизацию",
"data_sync.action.view": "Просмотреть",
"data_sync.alert.auto_create_planner_scope": "Автоматическое создание таблиц сейчас поддерживает только MySQL в Kingbase. Переносятся столбцы, первичные ключи, обычные индексы, уникальные индексы и составные индексы; полнотекстовые, пространственные, префиксные и функциональные индексы явно пропускаются.",
"data_sync.alert.auto_create_scope": "Автоматическое создание таблиц сейчас поддерживает только MySQL в Kingbase. Переносятся столбцы, первичные ключи, обычные индексы, уникальные индексы и составные индексы; полнотекстовые, пространственные, префиксные и функциональные индексы явно пропускаются.",
"data_sync.alert.existing_target_only": "Синхронизация данных по умолчанию выполняется с существующими целевыми таблицами. Переключитесь на межбазовую миграцию, если нужны создание таблиц и импорт.",
"data_sync.alert.full_overwrite": "Полная перезапись очищает данные целевых таблиц. Используйте ее осторожно.",
"data_sync.alert.migration_mode": "Активна межбазовая миграция. Используйте ее для переноса таблиц в другой источник данных с автоматическим созданием и импортом.",
"data_sync.alert.query_mode": "Синхронизация результата SQL сейчас поддерживает пользовательский SQL источника в одну существующую целевую таблицу. Результат запроса должен содержать столбец первичного ключа целевой таблицы.",
"data_sync.alert.sync_mode": "Активна синхронизация данных. Используйте ее для инкрементальной синхронизации или импорта с перезаписью, когда целевые таблицы уже существуют.",
"data_sync.backend.error.analyze_prepare_secrets_failed": "Не удалось подготовить секреты анализа синхронизации данных: {{detail}}",
"data_sync.backend.error.apply_changes_failed": "Не удалось применить изменения: {{detail}}",
"data_sync.backend.error.apply_changes_unsupported": "Целевой драйвер не поддерживает применение изменений данных",
"data_sync.backend.error.apply_source_query_changes_failed": "Не удалось применить изменения набора результатов SQL: {{detail}}",
"data_sync.backend.error.auto_add_column_failed": "Не удалось автоматически добавить столбец: столбец={{column}}, ошибка={{detail}}",
"data_sync.backend.error.build_migration_plan_failed": "Не удалось построить план миграции: таблица={{table}}, ошибка={{detail}}",
"data_sync.backend.error.clear_target_failed": "Не удалось очистить целевую таблицу: {{detail}}",
"data_sync.backend.error.connect_source_failed": "Не удалось подключиться к исходной базе данных: {{detail}}",
"data_sync.backend.error.connect_source_mongodb_failed": "Не удалось подключиться к исходной MongoDB: {{detail}}",
"data_sync.backend.error.connect_source_redis_failed": "Не удалось подключиться к исходному Redis: {{detail}}",
"data_sync.backend.error.connect_target_failed": "Не удалось подключиться к целевой базе данных: {{detail}}",
"data_sync.backend.error.connect_target_mongodb_failed": "Не удалось подключиться к целевой MongoDB: {{detail}}",
"data_sync.backend.error.connect_target_redis_failed": "Не удалось подключиться к целевому Redis: {{detail}}",
"data_sync.backend.error.create_indexes_failed": "Не удалось создать индексы: таблица={{table}}, ошибка={{detail}}",
"data_sync.backend.error.create_table_sql_empty": "Не удалось автоматически создать таблицу {{table}}: create-table SQL пуст",
"data_sync.backend.error.create_target_table_failed": "Не удалось создать целевую таблицу: таблица={{table}}, ошибка={{detail}}",
"data_sync.backend.error.diff_composite_pk_unsupported": "Составной первичный ключ ({{columns}}) не поддерживается для синхронизации с сравнением различий",
"data_sync.backend.error.diff_pk_required": "Первичный ключ отсутствует. Синхронизация с сравнением различий не поддерживается; для прямого импорта используйте режим insert-only или full-overwrite.",
"data_sync.backend.error.exec_ddl_statement_failed": "Сбой на этапе {{stage}}: SQL={{sql}}, ошибка={{detail}}",
"data_sync.backend.error.execute_source_query_failed": "Не удалось выполнить исходный запрос: {{detail}}",
"data_sync.backend.error.init_source_driver_failed": "Не удалось инициализировать драйвер исходной базы данных: {{detail}}",
"data_sync.backend.error.init_source_mongodb_driver_failed": "Не удалось инициализировать драйвер исходной MongoDB: {{detail}}",
"data_sync.backend.error.init_target_driver_failed": "Не удалось инициализировать драйвер целевой базы данных: {{detail}}",
"data_sync.backend.error.init_target_mongodb_driver_failed": "Не удалось инициализировать драйвер целевой MongoDB: {{detail}}",
"data_sync.backend.error.inspect_mongodb_collection_failed": "Не удалось проверить целевую MongoDB collection: {{detail}}",
"data_sync.backend.error.list_mongodb_collections_failed": "Не удалось получить список MongoDB collection: {{detail}}",
"data_sync.backend.error.load_target_columns_failed": "Не удалось загрузить столбцы целевой таблицы: {{detail}}",
"data_sync.backend.error.mongo_document_write_unsupported": "Целевой драйвер не поддерживает запись MongoDB document",
"data_sync.backend.error.mongo_read_source_samples_failed": "Не удалось прочитать образцы исходной MongoDB collection: {{detail}}",
"data_sync.backend.error.mongo_redis_analyze_collection_failed": "Не удалось проанализировать MongoDB collection {{collection}}: {{detail}}",
"data_sync.backend.error.mongo_redis_document_key_missing": "В MongoDB document отсутствует поле key",
"data_sync.backend.error.mongo_redis_document_type_missing": "В MongoDB document для Redis Key {{key}} отсутствует поле {{field}}",
"data_sync.backend.error.mongo_redis_empty_target_value": "Целевое значение Redis Key {{key}} пустое",
"data_sync.backend.error.mongo_redis_unsupported_type": "Redis Key {{key}} не поддерживает тип {{type}}",
"data_sync.backend.error.mongo_redis_value_invalid": "У Redis Key {{key}} недопустимый {{type}} payload; фактический тип={{actual}}",
"data_sync.backend.error.mongo_redis_write_key_failed": "Не удалось записать Redis Key {{key}}: {{detail}}",
"data_sync.backend.error.pre_create_table_sql_failed": "Не удалось предварительно выполнить create-table SQL: таблица={{table}}, ошибка={{detail}}",
"data_sync.backend.error.prepare_secrets_failed": "Не удалось подготовить секреты синхронизации данных: {{detail}}",
"data_sync.backend.error.preview_composite_pk_unsupported": "Составной первичный ключ ({{columns}}) не поддерживается для предпросмотра данных",
"data_sync.backend.error.preview_failed": "Не удалось выполнить предпросмотр синхронизации данных: {{detail}}",
"data_sync.backend.error.preview_pk_required": "Нет первичного ключа, предпросмотр данных не поддерживается",
"data_sync.backend.error.preview_prepare_secrets_failed": "Не удалось подготовить секреты предпросмотра синхронизации данных: {{detail}}",
"data_sync.backend.error.read_redis_key_failed": "Не удалось прочитать Redis Key {{key}}: {{detail}}",
"data_sync.backend.error.read_source_table_failed": "Не удалось прочитать исходную таблицу: {{detail}}",
"data_sync.backend.error.read_source_table_failed_with_table": "Не удалось прочитать исходную таблицу {{table}}: {{detail}}",
"data_sync.backend.error.read_target_redis_key_failed": "Не удалось прочитать целевой Redis Key {{key}}: {{detail}}",
"data_sync.backend.error.read_target_table_failed": "Не удалось прочитать целевую таблицу: {{detail}}",
"data_sync.backend.error.read_target_table_failed_with_table": "Не удалось прочитать целевую таблицу {{table}}: {{detail}}",
"data_sync.backend.error.redis_mongo_analyze_changes_failed": "Не удалось проанализировать изменения миграции Redis: {{detail}}",
"data_sync.backend.error.redis_mongo_apply_changes_failed": "Не удалось применить изменения миграции Redis: {{detail}}",
"data_sync.backend.error.redis_mongo_build_changes_failed": "Не удалось построить изменения миграции Redis: {{detail}}",
"data_sync.backend.error.redis_mongo_create_collection_failed": "Не удалось создать целевую MongoDB collection: {{detail}}",
"data_sync.backend.error.refresh_columns_after_create_failed": "Не удалось загрузить столбцы после создания целевой таблицы: таблица={{table}}, ошибка={{detail}}",
"data_sync.backend.error.restore_source_secret_failed": "Не удалось восстановить секрет подключения к исходной базе данных: {{detail}}",
"data_sync.backend.error.restore_target_secret_failed": "Не удалось восстановить секрет подключения к целевой базе данных: {{detail}}",
"data_sync.backend.error.scan_redis_keys_failed": "Не удалось просканировать Redis Key: {{detail}}",
"data_sync.backend.error.source_collection_no_migratable_fields": "Из исходной MongoDB collection не удалось вывести мигрируемые поля: {{collection}}",
"data_sync.backend.error.source_table_columns_failed": "Не удалось получить столбцы исходной таблицы: {{detail}}",
"data_sync.backend.error.source_table_missing_or_no_columns": "Исходная таблица отсутствует или не имеет определений столбцов: {{table}}",
"data_sync.backend.error.sync_table_schema_failed": "Не удалось синхронизировать структуру таблицы: таблица={{table}}, ошибка={{detail}}",
"data_sync.backend.error.target_collection_check_failed": "Не удалось проверить целевую MongoDB collection: {{detail}}",
"data_sync.backend.error.target_composite_pk_query_diff_unsupported": "Целевая таблица имеет составной первичный ключ ({{columns}}), поэтому анализ различий набора результатов SQL не поддерживается",
"data_sync.backend.error.target_pk_required_for_query_diff": "В целевой таблице нет первичного ключа, поэтому анализ различий SQL-набора результатов не поддерживается",
"data_sync.backend.error.target_table_columns_failed": "Не удалось получить столбцы целевой таблицы: {{detail}}",
"data_sync.backend.error.target_table_columns_missing": "Целевая таблица {{table}} отсутствует или ее определения столбцов не удалось прочитать",
"data_sync.backend.label.content_data_only": "Только данные",
"data_sync.backend.label.content_schema_and_data": "Структура и данные",
"data_sync.backend.label.content_schema_only": "Только структура",
"data_sync.backend.label.mode_full_overwrite": "Полная перезапись",
"data_sync.backend.label.mode_insert_only": "Только вставка",
"data_sync.backend.label.mode_insert_update": "Инкрементальная синхронизация",
"data_sync.backend.label.target_strategy_auto_create_if_missing": "Автоматически создать цель при отсутствии",
"data_sync.backend.label.target_strategy_existing_only": "Использовать только существующую цель",
"data_sync.backend.label.target_strategy_smart": "Автоматическая обработка цели",
"data_sync.backend.log.auto_add_columns_completed": "Автоматическое добавление столбцов завершено: успешно={{succeeded}}, ошибок={{failed}}",
"data_sync.backend.log.change_counts": "Требуется вставить {{inserts}} строк, обновить {{updates}} строк, удалить {{deletes}} строк",
"data_sync.backend.log.connecting_source": "Подключение к исходной базе данных: {{host}}...",
"data_sync.backend.log.connecting_target": "Подключение к целевой базе данных: {{host}}...",
"data_sync.backend.log.data_already_consistent": "Данные уже согласованы; изменения не требуются.",
"data_sync.backend.log.ddl_statement_succeeded": "Таблица {{table}}, этап {{stage}} выполнен успешно: {{sql}}",
"data_sync.backend.log.fatal_error": "Критическая ошибка: {{message}}",
"data_sync.backend.log.missing_columns_auto_add_disabled": "В целевой таблице отсутствует {{count}} столбцов, но автоматическое добавление отключено; они будут проигнорированы: {{columns}}",
"data_sync.backend.log.missing_columns_auto_add_started": "В целевой таблице отсутствует {{count}} столбцов; запускается автоматическое добавление: {{columns}}",
"data_sync.backend.log.mongo_redis_keyspace_options": "Миграция keyspace MongoDB -> Redis; режим={{mode}}; цель={{target}}",
"data_sync.backend.log.mongo_redis_migrating_key": "Запись Redis Key {{key}}",
"data_sync.backend.log.mongo_redis_syncing_collection": "Синхронизация MongoDB collection {{collection}}",
"data_sync.backend.log.redis_mongo_keyspace_options": "Миграция keyspace Redis -> MongoDB; режим={{mode}}; стратегия цели={{strategy}}",
"data_sync.backend.log.redis_mongo_migrating_key": "Миграция Redis Key {{key}}",
"data_sync.backend.log.source_query_no_changes": "Набор результатов SQL и целевая таблица согласованы; применять изменения не требуется",
"data_sync.backend.log.source_query_sync_completed": "Синхронизация набора результатов SQL завершена: вставки={{inserts}}, обновления={{updates}}, удаления={{deletes}}",
"data_sync.backend.log.source_query_sync_source": "Источник синхронизации: набор результатов SQL -> целевая таблица {{table}}; режим: {{mode}}",
"data_sync.backend.log.sync_options": "Содержимое синхронизации: {{content}}; режим: {{mode}}; автодобавление столбцов: {{autoAddColumns}}; стратегия целевой таблицы: {{targetTableStrategy}}; создание индексов: {{createIndexes}}",
"data_sync.backend.log.syncing_table": "Синхронизация таблицы: {{table}}",
"data_sync.backend.log.table_no_operations_skipped": "Для таблицы {{table}} не выбраны операции, она пропущена",
"data_sync.backend.log.target_table_created": "Целевая таблица успешно создана: {{table}}",
"data_sync.backend.log.target_table_no_operations": "Для целевой таблицы {{table}} не выбраны операции, она пропущена",
"data_sync.backend.log.unknown_sync_content_data_only": "Неизвестное содержимое синхронизации {{content}}; автоматически выбран режим только данных",
"data_sync.backend.result.analyzed_tables": "Анализ различий завершен для {{count}} таблиц",
"data_sync.backend.result.analyzed_target_tables": "Анализ различий завершен для {{count}} целевых таблиц",
"data_sync.backend.result.mongo_redis_analyzed_collections": "Проанализировано {{count}} MongoDB collection для миграции в Redis",
"data_sync.backend.result.mongo_redis_completed": "Миграция MongoDB keyspace завершена; обработано collection: {{collections}}, Redis Key: {{keys}}",
"data_sync.backend.result.mongo_redis_no_collections": "Нет MongoDB collection, доступных для миграции",
"data_sync.backend.result.mongo_redis_no_documents": "Нет MongoDB Redis document, доступных для миграции",
"data_sync.backend.result.preview_ready": "Предпросмотр синхронизации данных готов",
"data_sync.backend.result.redis_mongo_analyzed_keys": "Проанализировано {{count}} Redis Key для миграции в MongoDB",
"data_sync.backend.result.redis_mongo_completed": "Миграция Redis keyspace завершена; обработано Redis Key: {{count}}",
"data_sync.backend.result.redis_mongo_no_keys": "Нет Redis Key, доступных для миграции",
"data_sync.backend.result.sync_completed": "Синхронизация завершена: таблиц={{tables}}, вставлено={{rowsInserted}}, обновлено={{rowsUpdated}}, удалено={{rowsDeleted}}",
"data_sync.backend.summary.diff_completed": "Анализ различий завершен",
"data_sync.backend.summary.mongo_redis_diff": "При выполнении будет вставлено {{inserts}} Redis Key и обновлено {{updates}} Redis Key",
"data_sync.backend.summary.mongo_redis_empty_collection": "В collection не найдены document, пригодные для миграции",
"data_sync.backend.summary.mongo_redis_planned_action": "Миграция в {{target}}",
"data_sync.backend.summary.mongo_redis_same_keys": "Соответствующие Redis Key уже актуальны",
"data_sync.backend.summary.mongo_redis_warning_document_format": "Поддерживаются только document с полями key/type/ttl/value",
"data_sync.backend.summary.mongo_redis_warning_full_overwrite_downgrade": "MongoDB -> Redis понижает полную перезапись до инкрементальной синхронизации, чтобы не удалять другие Redis Key в DB",
"data_sync.backend.summary.mongo_redis_warning_keyspace": "Document в MongoDB collection будут записаны в Redis по семантике keyspace",
"data_sync.backend.summary.redis_mongo_insert_document": "При выполнении будет вставлен новый MongoDB document",
"data_sync.backend.summary.redis_mongo_planned_action": "Миграция в коллекцию {{collection}}",
"data_sync.backend.summary.redis_mongo_same_document": "Соответствующий MongoDB document уже актуален",
"data_sync.backend.summary.redis_mongo_update_document": "При выполнении будет обновлен существующий MongoDB document",
"data_sync.backend.summary.redis_mongo_warning_document_write": "Redis Key будет записан как MongoDB document",
"data_sync.backend.summary.source_query_diff_completed": "Анализ различий SQL-набора результатов завершен",
"data_sync.backend.unsupported.clickhouse_objects_to_pg_like": "Семантика ClickHouse ORDER BY/PARTITION/TTL/Projection/materialized-view пока не мигрируется автоматически в цели PG-like",
"data_sync.backend.validation.query_mode_data_only": "Синхронизация SQL-набора результатов сейчас поддерживает только синхронизацию данных",
"data_sync.backend.validation.single_target_table_required": "Для синхронизации SQL-набора результатов требуется ровно одна целевая таблица",
"data_sync.backend.validation.source_query_required": "SQL исходного запроса обязателен",
"data_sync.backend.validation.target_table_required": "Целевая таблица обязательна",
"data_sync.backend.warning.apply_changes_unsupported": "Целевой драйвер не поддерживает применение изменений данных.",
"data_sync.backend.warning.auto_add_column_sql_generation_failed": "Не удалось создать SQL для автоматического добавления столбца {{column}}: {{detail}}",
"data_sync.backend.warning.auto_create_pair_unsupported": "Автоматическое создание таблиц сейчас поддерживает только MySQL -> Kingbase; текущая пара={{sourceType}} -> {{targetType}}",
"data_sync.backend.warning.auto_increment_not_preserved_existing_target_add_column": "Столбец {{column}} является автоинкрементным; {{feature}} не будет автоматически создан заново при добавлении в существующую целевую таблицу",
"data_sync.backend.warning.clickhouse_complex_type_degraded_mysql": "Столбец {{column}} типа {{type}} деградирован до json",
"data_sync.backend.warning.clickhouse_complex_type_degraded_pg_like": "Столбец {{column}} типа {{type}} деградирован до jsonb",
"data_sync.backend.warning.clickhouse_enum_degraded_pg_like": "Столбец {{column}} enum типа {{type}} деградирован до varchar(255)",
"data_sync.backend.warning.clickhouse_order_by_tuple_used": "Первичный ключ источника не обнаружен, поэтому ClickHouse будет использовать ORDER BY tuple(); производительность запросов может снизиться",
"data_sync.backend.warning.clickhouse_relational_constraints_not_preserved": "ClickHouse не сохраняет семантику реляционных внешних ключей или уникальных ограничений; мигрируются только столбцы и данные",
"data_sync.backend.warning.clickhouse_source_metadata_limited": "Метаданные индексов и ограничений источника ClickHouse ограничены; обратная миграция фокусируется на столбцах и данных",
"data_sync.backend.warning.clickhouse_source_primary_key_missing_mysql": "Источник ClickHouse не вернул сведения о первичном ключе, поэтому целевая таблица MySQL не создаст первичный ключ автоматически",
"data_sync.backend.warning.clickhouse_source_primary_key_missing_pg_like": "Источник ClickHouse не вернул сведения о первичном ключе, поэтому целевая таблица PG-like не создаст первичный ключ автоматически",
"data_sync.backend.warning.clickhouse_target_insert_only_recommended": "Для целей ClickHouse рекомендуется insert-only или полная перезапись; семантика update/delete отличается от традиционных реляционных баз данных",
"data_sync.backend.warning.clickhouse_type_degraded_mysql_text": "Для столбца {{column}} типа {{type}} нет отдельного сопоставления MySQL; он деградирован до text",
"data_sync.backend.warning.clickhouse_type_degraded_pg_like_text": "Для столбца {{column}} типа {{type}} нет отдельного сопоставления PG-like; он деградирован до text",
"data_sync.backend.warning.clickhouse_uint64_mapped_numeric_pg_like": "Столбец {{column}} типа {{type}} сопоставлен с numeric(20,0), чтобы избежать переполнения unsigned",
"data_sync.backend.warning.column_default_expression_skipped": "Значение по умолчанию {{default}} столбца {{column}} содержит выражение и пока не мигрируется автоматически",
"data_sync.backend.warning.column_empty_string_default_not_preserved": "Пустая строка как значение по умолчанию столбца {{column}} не сохранена",
"data_sync.backend.warning.column_type_degraded": "Столбец {{column}} типа {{sourceType}} деградирован до {{targetType}}",
"data_sync.backend.warning.column_type_degraded_clickhouse_string": "Столбец {{column}} типа {{type}} деградирован до String",
"data_sync.backend.warning.column_type_empty_clickhouse_string": "Тип столбца {{column}} пуст и деградирован до String",
"data_sync.backend.warning.column_type_empty_degraded": "Тип столбца {{column}} пуст и деградирован до {{targetType}}",
"data_sync.backend.warning.column_type_mapped": "Столбец {{column}} типа {{sourceType}} сопоставлен с {{targetType}}",
"data_sync.backend.warning.column_type_no_mapping_degraded": "Для столбца {{column}} типа {{sourceType}} нет отдельного сопоставления; он деградирован до {{targetType}}",
"data_sync.backend.warning.column_user_defined_degraded": "Столбец {{column}} является пользовательским типом и деградирован до {{targetType}}",
"data_sync.backend.warning.column_user_defined_degraded_clickhouse_string": "Столбец {{column}} является пользовательским типом и деградирован до String",
"data_sync.backend.warning.composite_pk_skipped": "Таблица {{table}} имеет составной первичный ключ ({{columns}}); синхронизация различий пока не поддерживается и пропущена",
"data_sync.backend.warning.full_overwrite_clearing_target": "Режим полной перезаписи: целевая таблица {{table}} будет очищена",
"data_sync.backend.warning.index_columns_missing": "У индекса {{name}} нет определения столбцов, он пропущен",
"data_sync.backend.warning.index_prefix_length_unsupported": "Индекс {{name}} использует длину префикса и пока не может быть автоматически мигрирован",
"data_sync.backend.warning.index_type_unsupported": "Индекс {{name}}, тип={{type}}, пока не может быть автоматически мигрирован",
"data_sync.backend.warning.load_target_columns_skip_check_failed": "Не удалось получить столбцы целевой таблицы; проверка согласованности столбцов пропущена: {{detail}}",
"data_sync.backend.warning.mongo_redis_document_format": "MongoDB -> Redis сейчас поддерживает только documents с полями key/type/ttl/value",
"data_sync.backend.warning.mongo_redis_full_overwrite_downgrade": "При миграции MongoDB -> Redis полная перезапись понижается до инкрементальной синхронизации",
"data_sync.backend.warning.mysql_auto_increment_not_preserved_clickhouse": "AUTO_INCREMENT столбца {{column}} не сохраняется в ClickHouse как семантика автоинкремента",
"data_sync.backend.warning.mysql_binary_degraded_clickhouse_string": "Бинарный тип столбца {{column}} деградирован до String",
"data_sync.backend.warning.mysql_time_degraded_clickhouse_string": "Столбец {{column}} типа {{type}} деградирован до String",
"data_sync.backend.warning.mysql_type_degraded_clickhouse_string": "Для столбца {{column}} типа {{type}} нет отдельного сопоставления ClickHouse; он деградирован до String",
"data_sync.backend.warning.mysql_unsigned_bigint_auto_increment_degraded": "Столбец {{column}} является unsigned bigint auto_increment; он деградирован до {{targetType}}, семантика автоинкремента не сохранена",
"data_sync.backend.warning.pg_like_identity_not_preserved_clickhouse": "Семантика identity/auto-increment столбца {{column}} не сохраняется в ClickHouse",
"data_sync.backend.warning.redis_mongo_full_overwrite_downgrade": "При миграции Redis -> MongoDB полная перезапись понижается до инкрементальной синхронизации",
"data_sync.backend.warning.refresh_columns_after_add_failed": "Не удалось обновить целевые столбцы после добавления: таблица={{table}}, ошибка={{detail}}",
"data_sync.backend.warning.source_indexes_read_failed": "Не удалось прочитать индексы исходной таблицы; миграция индексов пропущена: {{detail}}",
"data_sync.backend.warning.table_pk_required_skipped": "У таблицы {{table}} нет первичного ключа; текущий режим требует сравнения различий, таблица пропущена",
"data_sync.backend.warning.target_existing_only_required": "Текущая стратегия требует существующую целевую таблицу, поэтому при выполнении она не будет создана автоматически.",
"data_sync.backend.warning.target_exists_data_only_no_indexes": "Целевая таблица уже существует. Будет выполнен только импорт данных; существующие индексы и ограничения не будут автоматически перестроены.",
"data_sync.backend.warning.target_missing_columns": "В целевой таблице отсутствует {{count}} столбцов: {{columns}}",
"data_sync.backend.warning.target_missing_skip_auto_create_disabled": "Целевая таблица для {{table}} отсутствует; текущая стратегия не разрешает автоматическое создание таблицы, поэтому она пропущена",
"data_sync.backend.warning.target_table_existing_only_required": "Текущая стратегия требует существующую целевую таблицу, поэтому при выполнении она не будет создана автоматически.",
"data_sync.backend.warning.unknown_content_default_data": "Неизвестное содержимое синхронизации {{content}}; автоматически выбран режим только данных",
"data_sync.backend.warning.unknown_mode_default_insert_update": "Неизвестный режим синхронизации {{mode}}; автоматически выбрана инкрементальная синхронизация",
"data_sync.badge.migration_mode": "Режим миграции",
"data_sync.badge.source_pending": "Источник не выбран",
"data_sync.badge.source_selected": "Источник выбран",
"data_sync.badge.sync_mode": "Режим синхронизации",
"data_sync.badge.table_count": "{{count}} табл.",
"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.confirm.full_overwrite.content": "Полная перезапись сначала очищает целевую таблицу, а затем вставляет строки. Подтвердите, что целевая база данных сохранена в резервной копии.",
"data_sync.confirm.full_overwrite.ok": "Продолжить",
"data_sync.confirm.full_overwrite.title": "Подтвердите полную перезапись",
"data_sync.diff.column.delete": "Удаление",
"data_sync.diff.column.insert": "Вставка",
"data_sync.diff.column.plan": "План",
"data_sync.diff.column.preview": "Предпросмотр",
"data_sync.diff.column.risk": "Риск",
"data_sync.diff.column.same": "Совпадает",
"data_sync.diff.column.table": "Таблица",
"data_sync.diff.column.target_table": "Целевая таблица",
"data_sync.diff.column.update": "Обновление",
"data_sync.diff.more_warnings": "Еще {{count}} не показано",
"data_sync.diff.target_exists": "Есть",
"data_sync.diff.target_missing": "Нет",
"data_sync.diff.title": "Результат сравнения",
"data_sync.diff.warning_title": "Предварительная проверка нашла риски или понижение возможностей. Проверьте их перед выполнением.",
"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.field.connection": "Подключение",
"data_sync.field.database": "База данных",
"data_sync.field.migration_content": "Содержимое миграции",
"data_sync.field.migration_mode": "Режим миграции",
"data_sync.field.mongo_collection_name": "Имя коллекции Mongo (необязательно)",
"data_sync.field.schema": "Схема",
"data_sync.field.source_dataset_mode": "Способ данных источника",
"data_sync.field.source_query_sql": "SQL-запрос источника",
"data_sync.field.sync_content": "Содержимое синхронизации",
"data_sync.field.sync_mode": "Режим синхронизации",
"data_sync.field.target_table": "Целевая таблица",
"data_sync.field.target_table_requirement": "Требование к целевой таблице",
"data_sync.field.target_table_strategy": "Стратегия целевой таблицы",
"data_sync.field.workflow_type": "Тип операции",
"data_sync.help.mongo_collection_mongo_to_redis": "Для MongoDB в Redis обычно достаточно выбрать исходную коллекцию. Оставьте поле пустым, если явное резервное имя коллекции не требуется.",
"data_sync.help.mongo_collection_redis_to_mongo": "Оставьте пустым, чтобы использовать имя коллекции по умолчанию. Если поле заполнено, этот запуск запишет пространство ключей Redis в указанную коллекцию Mongo.",
"data_sync.help.select_tables": "Выберите таблицы для синхронизации:",
"data_sync.help.source_query_mode": "Введите SQL-запрос источника и выберите одну целевую таблицу. Анализ различий напрямую сравнит этот результат с целевой таблицей.",
"data_sync.help.workflow_type": "Выберите, синхронизирует ли этот запуск существующие целевые таблицы или выполняет межбазовую миграцию. Страница подстроит более безопасные значения по умолчанию под тип операции.",
"data_sync.hero.migration_description": "Перенос исходных таблиц в другую базу данных с созданием таблиц по стратегии, импортом данных и добавлением совместимых индексов.",
"data_sync.hero.migration_title": "Миграция между источниками данных",
"data_sync.hero.sync_description": "Используйте существующие целевые таблицы, сначала сравните различия, затем выполните выбранные вставки, обновления или удаления.",
"data_sync.hero.sync_title": "Синхронизация данных",
"data_sync.log.level.error": "Ошибка",
"data_sync.log.level.info": "Информация",
"data_sync.log.level.warn": "Предупреждение",
"data_sync.log.title": "Журнал выполнения",
"data_sync.message.analysis_complete": "Анализ различий завершен",
"data_sync.message.analysis_failed": "Анализ различий не выполнен",
"data_sync.message.analysis_failed_detail": "Анализ различий не выполнен: {{detail}}",
"data_sync.message.analyze_before_sync": "Перед запуском синхронизации проанализируйте различия",
"data_sync.message.close_blocked_running": "Синхронизация выполняется. Окно пока нельзя закрыть.",
"data_sync.message.fetch_source_databases_failed": "Не удалось получить базы данных источника",
"data_sync.message.fetch_source_databases_failed_detail": "Не удалось получить базы данных источника: {{detail}}",
"data_sync.message.fetch_tables_failed": "Не удалось получить таблицы",
"data_sync.message.fetch_tables_failed_detail": "Не удалось получить таблицы: {{detail}}",
"data_sync.message.fetch_target_databases_failed": "Не удалось получить целевые базы данных",
"data_sync.message.fetch_target_databases_failed_detail": "Не удалось получить целевые базы данных: {{detail}}",
"data_sync.message.fetch_target_schemas_failed_detail": "Не удалось получить целевые схемы: {{detail}}",
"data_sync.message.more_items_collapsed": "Еще {{count}} не показано",
"data_sync.message.precheck_warnings": "Предварительная проверка нашла риски или понижение возможностей. Проверьте их перед выполнением.",
"data_sync.message.preview_load_failed": "Не удалось загрузить предпросмотр различий",
"data_sync.message.preview_load_failed_detail": "Не удалось загрузить предпросмотр различий: {{detail}}",
"data_sync.message.select_connections_first": "Сначала выберите подключения",
"data_sync.message.select_databases_first": "Сначала выберите базы данных",
"data_sync.message.select_source_database": "Выберите базу данных источника",
"data_sync.message.select_target_database": "Выберите целевую базу данных",
"data_sync.message.select_target_schema": "Выберите целевую схему",
"data_sync.message.sync_execution_failed": "Не удалось выполнить синхронизацию",
"data_sync.message.sync_execution_failed_detail": "Не удалось выполнить синхронизацию: {{detail}}",
"data_sync.modal.full_overwrite_content": "Полная перезапись сначала очищает целевую таблицу, а затем вставляет строки. Подтвердите, что целевая база данных сохранена в резервной копии.",
"data_sync.modal.full_overwrite_ok": "Продолжить",
"data_sync.modal.full_overwrite_title": "Подтвердите полную перезапись",
"data_sync.option.auto_add_columns": "Автоматически добавить недостающие целевые столбцы (сейчас поддерживаются цели MySQL и MySQL в Kingbase; режим результата SQL не поддерживается)",
"data_sync.option.content.both": "Синхронизировать схему и данные",
"data_sync.option.content.data": "Только данные",
"data_sync.option.content.schema": "Только схема",
"data_sync.option.create_indexes": "Автоматически переносить совместимые обычные и уникальные индексы (только при автоматическом создании таблиц)",
"data_sync.option.show_same_tables": "Показывать совпадающие таблицы",
"data_sync.option.source_dataset.query": "Синхронизация по результату SQL",
"data_sync.option.source_dataset.table": "Синхронизация по таблицам",
"data_sync.option.sync_mode.full_overwrite": "Полная перезапись (очистить целевую таблицу перед вставкой)",
"data_sync.option.sync_mode.insert_only": "Только вставка (без сравнения с целью; таблицы без первичных ключей пропускаются)",
"data_sync.option.sync_mode.insert_update": "Инкрементальная синхронизация (сравнить различия, затем выбрать вставки, обновления и удаления)",
"data_sync.option.target_strategy.auto_create_if_missing": "Автоматически создать целевую таблицу, если она отсутствует",
"data_sync.option.target_strategy.existing_only": "Использовать только существующие целевые таблицы",
"data_sync.option.target_strategy.smart": "Умный режим (если есть, импортировать напрямую; если нет, создать автоматически)",
"data_sync.option.workflow.migration": "Межбазовая миграция (автоматическое создание и импорт)",
"data_sync.option.workflow.sync": "Синхронизация данных (сравнение и синхронизация с существующими целевыми таблицами)",
"data_sync.placeholder.mongo_collection_name": "Введите имя коллекции Mongo",
"data_sync.placeholder.source_query_sql": "Пример: SELECT id, name, email FROM users WHERE status = 'active'",
"data_sync.placeholder.target_table": "Выберите одну целевую таблицу",
"data_sync.plan.add_missing_columns_before_import": "Дополнить отсутствующие поля перед импортом: {{count}}",
"data_sync.plan.auto_create_unsupported": "Автоматическое создание таблиц не поддерживается для этой пары баз данных",
"data_sync.plan.backend_summary": "Сводка плана",
"data_sync.plan.data_import_without_diff": "Текущий режим импортирует данные исходной таблицы без сравнения различий.",
"data_sync.plan.migrate_to_collection": "Миграция в коллекцию {{collection}}",
"data_sync.plan.migrate_to_target": "Миграция в {{target}}",
"data_sync.plan.migration_kernel_planning": "Эта пара баз данных перешла в этап планирования миграции и ожидает вывода структуры и генерации целевого диалекта",
"data_sync.plan.missing_columns_auto_add": "Дополнить отсутствующие поля перед импортом: {{count}}",
"data_sync.plan.missing_columns_auto_add_disabled": "В целевой таблице отсутствуют поля: {{count}}, и автоматическое дополнение не включено",
"data_sync.plan.missing_columns_auto_add_unsupported": "В целевой таблице отсутствуют поля: {{count}}, и автоматическое дополнение не поддерживается для этой пары баз данных",
"data_sync.plan.missing_columns_no_executable_sql": "В целевой таблице отсутствуют поля: {{count}}, но исполняемый SQL для дополнения не создан",
"data_sync.plan.mongo_relational_entry_warning": "Для миграции {{objectKind}} из {{sourceType}} в {{targetType}} сейчас доступно только уведомление о планировании вывода структуры",
"data_sync.plan.mongo_relational_kernel_planned": "Эта пара баз данных перешла в этап планирования миграции и ожидает вывода структуры и генерации целевого диалекта",
"data_sync.plan.mongo_target_collection_missing_auto_create": "Целевая MongoDB collection {{collection}} отсутствует. Она будет автоматически создана перед импортом.",
"data_sync.plan.mongo_target_collection_missing_manual_create": "Целевая MongoDB collection {{collection}} отсутствует. Сначала создайте ее вручную.",
"data_sync.plan.redis_key_to_mongodb_document": "Создать документы MongoDB из Redis Keys и импортировать их",
"data_sync.plan.redis_mongo_keyspace_import": "Создать документы MongoDB из Redis Keys и импортировать их",
"data_sync.plan.redis_mongo_keyspace_warning_no_schema": "Redis -> MongoDB мигрирует по семантике keyspace и не выполняет проверку структуры таблиц",
"data_sync.plan.redis_mongo_keyspace_warning_semantics": "Семантика Redis TTL и порядка collection сохраняется как поля document, но может быть не полностью эквивалентной",
"data_sync.plan.redis_mongo_target_collection_auto_create": "Целевая коллекция отсутствует; она будет автоматически создана перед импортом",
"data_sync.plan.redis_mongo_target_collection_existing_only_warning": "Текущая стратегия требует существующую целевую MongoDB collection; при выполнении она не будет создана автоматически",
"data_sync.plan.redis_mongo_target_collection_missing_manual": "Целевая коллекция отсутствует; сначала создайте ее вручную",
"data_sync.plan.redis_mongo_unsupported_objects": "Redis Consumer Group / PubSub / Lua scripts / transaction state пока не мигрируются",
"data_sync.plan.schema_aligned": "Структура таблицы уже совпадает",
"data_sync.plan.schema_changes_detected": "Обнаружено структурных изменений: {{count}}",
"data_sync.plan.schema_only": "Синхронизация только структуры",
"data_sync.plan.schema_only_no_data_diff": "Синхронизируется только структура; анализ различий данных не выполнялся",
"data_sync.plan.schema_preview": "Предпросмотр структуры",
"data_sync.plan.source_query_preview": "Предпросмотр синхронизации SQL-результата",
"data_sync.plan.target_collection_missing_auto_create": "Целевая коллекция отсутствует; она будет автоматически создана перед импортом",
"data_sync.plan.target_collection_missing_manual_create": "Целевая коллекция отсутствует; сначала создайте ее вручную",
"data_sync.plan.target_missing_auto_create": "Целевая таблица отсутствует; она будет автоматически создана перед импортом",
"data_sync.plan.target_missing_auto_create_all": "Целевая таблица отсутствует; при выполнении она будет автоматически создана, затем будут импортированы все исходные данные",
"data_sync.plan.target_missing_cannot_sync": "Целевая таблица отсутствует; синхронизацию выполнить нельзя",
"data_sync.plan.target_missing_manual_create": "Целевая таблица отсутствует; сначала создайте ее вручную",
"data_sync.plan.target_missing_preview_unavailable": "Целевая таблица отсутствует. Предпросмотр различий недоступен.",
"data_sync.plan.tdengine_target_missing_timestamp_auto_create_unavailable": "В исходной таблице не найден столбец времени, который можно сопоставить с первым столбцом TDengine; автоматическое создание таблицы невозможно",
"data_sync.plan.tdengine_time_column_missing": "В исходной таблице не найден столбец времени, который можно сопоставить с первым столбцом TDengine; автоматическое создание таблицы невозможно",
"data_sync.plan.use_existing_target": "Импорт в существующую целевую таблицу",
"data_sync.plan.use_existing_target_collection": "Импорт в существующую целевую коллекцию",
"data_sync.plan.use_existing_target_table": "Импорт в существующую целевую таблицу",
"data_sync.preview.action.copy_sql": "Копировать SQL",
"data_sync.preview.column.changed_columns": "Измененные столбцы",
"data_sync.preview.column.data": "Данные",
"data_sync.preview.column.detail": "Подробности",
"data_sync.preview.column.primary_key": "Первичный ключ",
"data_sync.preview.data_summary": "Вставка {{inserts}}, обновление {{updates}}, удаление {{deletes}} (предпросмотр показывает до 200 строк на тип)",
"data_sync.preview.delete_warning": "Удаление по умолчанию не выбрано. Включайте его только после проверки влияния на бизнес.",
"data_sync.preview.loading": "Загрузка предпросмотра различий...",
"data_sync.preview.message.copy_failed": "Не удалось скопировать. Скопируйте вручную.",
"data_sync.preview.message.sql_copied": "SQL скопирован",
"data_sync.preview.schema_plan_help": "Ниже показаны операторы, запланированные для этого запуска синхронизации схемы.",
"data_sync.preview.schema_statement_count": "Обнаружено операторов изменения схемы: {{count}}",
"data_sync.preview.schema_warning_title": "Предпросмотр схемы содержит риски или понижение возможностей",
"data_sync.preview.selection_hint.delete": "Если строки не выбраны, будут синхронизированы все различия удаления. Снимите Удаление в результате сравнения, чтобы пропустить удаления.",
"data_sync.preview.selection_hint.insert": "Если строки не выбраны, будут синхронизированы все различия вставки. Снимите Вставку в результате сравнения, чтобы пропустить вставки.",
"data_sync.preview.selection_hint.update": "Если строки не выбраны, будут синхронизированы все различия обновления. Снимите Обновление в результате сравнения, чтобы пропустить обновления.",
"data_sync.preview.side.source": "Источник",
"data_sync.preview.side.target": "Цель",
"data_sync.preview.sql.data_help": "Предпросмотр SQL создается из выбранных вставок, обновлений, удалений и диапазона строк для проверки.",
"data_sync.preview.sql.no_data_sql": "-- Для текущего выбора нет SQL для предпросмотра",
"data_sync.preview.sql.no_schema_changes": "-- Для текущей таблицы нет исполняемых изменений схемы",
"data_sync.preview.sql.schema_help": "Предпросмотр SQL показывает операторы изменения схемы, которые будут выполнены, для проверки.",
"data_sync.preview.sql.schema_statement_count": "Операторов изменения схемы: {{count}}",
"data_sync.preview.sql.statement_count": "Операторов: {{count}} (предпросмотр данных показывает до 200 строк на тип)",
"data_sync.preview.tab.delete": "Удаление({{count}})",
"data_sync.preview.tab.insert": "Вставка({{count}})",
"data_sync.preview.tab.schema": "Схема({{count}})",
"data_sync.preview.tab.sql": "SQL({{count}})",
"data_sync.preview.tab.update": "Обновление({{count}})",
"data_sync.preview.title": "Предпросмотр различий: {{table}}",
"data_sync.preview.update_detail_title": "Подробности обновления: {{table}} / {{pk}}",
"data_sync.progress.stage.analysis_completed": "Анализ различий завершен",
"data_sync.progress.stage.analysis_started": "Начат анализ различий",
"data_sync.progress.stage.analyzing_diff": "Анализ различий",
"data_sync.progress.stage.analyzing_table": "Анализ таблицы ({{current}}/{{total}})",
"data_sync.progress.stage.applying_changes": "Применение изменений",
"data_sync.progress.stage.backend_update": "Обработка обновления прогресса",
"data_sync.progress.stage.checking_columns": "Проверка согласованности полей",
"data_sync.progress.stage.clearing_target": "Очистка целевой таблицы",
"data_sync.progress.stage.collection_completed": "Обработка коллекции завершена",
"data_sync.progress.stage.comparing_diff": "Сравнение различий",
"data_sync.progress.stage.completed": "Синхронизация завершена",
"data_sync.progress.stage.connecting_source": "Подключение к исходной базе данных",
"data_sync.progress.stage.connecting_target": "Подключение к целевой базе данных",
"data_sync.progress.stage.creating_indexes": "Создание индексов",
"data_sync.progress.stage.creating_target_collection": "Создание целевой коллекции",
"data_sync.progress.stage.creating_target_table": "Создание целевой таблицы",
"data_sync.progress.stage.executing": "Выполнение",
"data_sync.progress.stage.failed": "Синхронизация не удалась",
"data_sync.progress.stage.migrating_collection": "Миграция коллекции ({{current}}/{{total}})",
"data_sync.progress.stage.migrating_key": "Миграция Key ({{current}}/{{total}})",
"data_sync.progress.stage.mongo_redis_collection_completed": "Обработка коллекции завершена",
"data_sync.progress.stage.mongo_redis_migrating_collection": "Миграция коллекции ({{current}}/{{total}})",
"data_sync.progress.stage.mongo_redis_started": "Миграция MongoDB -> Redis keyspace начата",
"data_sync.progress.stage.mongodb_keyspace_started": "Начата миграция пространства ключей MongoDB",
"data_sync.progress.stage.preparing": "Подготовка",
"data_sync.progress.stage.reading_source": "Чтение данных исходной таблицы",
"data_sync.progress.stage.reading_target": "Чтение данных целевой таблицы",
"data_sync.progress.stage.redis_keyspace_started": "Начата миграция пространства ключей Redis",
"data_sync.progress.stage.redis_mongo_creating_collection": "Создание целевой коллекции",
"data_sync.progress.stage.redis_mongo_migrating_key": "Миграция Key ({{current}}/{{total}})",
"data_sync.progress.stage.redis_mongo_started": "Миграция Redis -> MongoDB keyspace начата",
"data_sync.progress.stage.sync_started": "Синхронизация начата",
"data_sync.progress.stage.syncing_schema": "Синхронизация структуры таблицы",
"data_sync.progress.stage.syncing_table": "Синхронизация таблицы ({{current}}/{{total}})",
"data_sync.progress.stage.table_completed": "Обработка таблицы завершена",
"data_sync.query_mode.help": "Введите SQL-запрос источника и выберите одну целевую таблицу. Анализ различий напрямую сравнит этот результат с целевой таблицей.",
"data_sync.result.completed": "Синхронизация завершена",
"data_sync.result.failed": "Синхронизация не выполнена",
"data_sync.result.failed_description": "Синхронизация не завершилась.",
"data_sync.result.failed_detail": "Синхронизация не выполнена: {{detail}}",
"data_sync.result.running": "Синхронизация выполняется",
"data_sync.result.running_description": "Текущий этап: {{stage}}{{table}}",
"data_sync.result.success_summary": "Успешно синхронизировано таблиц: {{tables}}. Вставлено: {{inserted}}, обновлено: {{updated}}",
"data_sync.result.table_suffix": ", таблица: {{table}}",
"data_sync.schema_inference.mongo_relational_issue": "Вывод структуры для {{sourceType}} -> {{targetType}} все еще в разработке; сейчас доступно только уведомление о планировании миграции.",
"data_sync.schema_inference.mongo_relational_resolution": "В следующих итерациях определения столбцов и политики деградации типов будут создаваться по выборочным данным.",
"data_sync.schema_sync.error.create_statement_empty": "Оператор create-table пуст",
"data_sync.schema_sync.error.create_target_table_failed": "Не удалось создать целевую таблицу {{table}}: {{detail}}",
"data_sync.schema_sync.error.get_columns_after_create_failed": "Не удалось получить столбцы после создания целевой таблицы {{table}}: {{detail}}",
"data_sync.schema_sync.error.get_create_statement_failed": "Не удалось получить оператор create-table для исходной таблицы {{table}}: {{detail}}",
"data_sync.schema_sync.error.get_source_columns_failed": "Не удалось получить столбцы исходной таблицы {{table}}: {{detail}}",
"data_sync.schema_sync.error.target_missing_auto_create_unsupported": "Целевая таблица {{table}} отсутствует, а тип источника {{sourceType}} пока не поддерживает автоматическое создание таблицы: {{detail}}",
"data_sync.schema_sync.log.add_column_failed": "Не удалось добавить столбец: таблица={{table}}, столбец={{column}}, ошибка={{detail}}",
"data_sync.schema_sync.log.column_added": "Столбец добавлен: таблица={{table}}, столбец={{column}}, тип={{type}}",
"data_sync.schema_sync.log.completed": "Синхронизация структуры завершена для {{table}}; добавлено столбцов: {{count}}",
"data_sync.schema_sync.log.schema_aligned": "Структура таблицы согласована: {{table}}",
"data_sync.schema_sync.log.target_created": "Целевая таблица успешно создана: {{table}}",
"data_sync.schema_sync.log.target_missing_create": "Целевая таблица {{table}} отсутствует; выполняется попытка создать структуру таблицы",
"data_sync.schema_sync.warning.target_unsupported": "Тип целевой базы данных={{targetType}} пока не поддерживает синхронизацию структуры; таблица {{table}} пропущена",
"data_sync.section.migration_options": "Параметры миграции",
"data_sync.section.source_database": "База данных источника",
"data_sync.section.sync_options": "Параметры синхронизации",
"data_sync.section.target_database": "Целевая база данных",
"data_sync.step.configure": "Настроить источник и цель",
"data_sync.step.result": "Результат выполнения",
"data_sync.step.select_tables": "Выбрать таблицы",
"data_sync.table_picker.help": "Выберите таблицы для синхронизации:",
"data_sync.table_picker.item_unit": "элемент",
"data_sync.table_picker.items_unit": "элементы",
"data_sync.table_picker.not_found": "Нет данных",
"data_sync.table_picker.search_placeholder": "Поиск таблиц...",
"data_sync.table_picker.selected_title": "Выбранные таблицы",
"data_sync.table_picker.show_same": "Показывать совпадающие таблицы",
"data_sync.table_picker.source_title": "Таблицы источника",
"data_sync.table.delete": "Удаление",
"data_sync.table.insert": "Вставка",
"data_sync.table.plan": "План",
"data_sync.table.preview": "Предпросмотр",
"data_sync.table.risk": "Риск",
"data_sync.table.same": "Совпадает",
"data_sync.table.table_name": "Таблица",
"data_sync.table.target_exists": "Есть",
"data_sync.table.target_missing": "Нет",
"data_sync.table.target_table": "Целевая таблица",
"data_sync.table.update": "Обновление",
"data_sync.title.compare_result": "Результат сравнения",
"data_sync.title.execution_log": "Журнал выполнения",
"data_sync.title.migration": "Миграция между источниками данных",
"data_sync.title.migration_description": "Создание таблиц, импорт данных и предварительная проверка рисков от источника до цели.",
"data_sync.title.migration_options": "Параметры миграции",
"data_sync.title.migration_workbench": "Рабочая область межбазовой миграции",
"data_sync.title.source_database": "База данных источника",
"data_sync.title.sync": "Синхронизация данных",
"data_sync.title.sync_description": "Сравнение различий, запуск синхронизации и подтверждение результатов с существующими целевыми таблицами.",
"data_sync.title.sync_options": "Параметры синхронизации",
"data_sync.title.sync_workbench": "Рабочая область синхронизации данных",
"data_sync.title.target_database": "Целевая база данных",
"data_sync.transfer.empty": "Нет данных",
"data_sync.transfer.item_unit": "элемент",
"data_sync.transfer.items_unit": "элементы",
"data_sync.transfer.search_placeholder": "Поиск таблиц...",
"data_sync.transfer.selected_tables": "Выбранные таблицы",
"data_sync.transfer.source_tables": "???????? ???????",
"data_sync.unsupported.clickhouse_to_tdengine_schema_semantics": "Семантика источника ORDER BY/PARTITION/TTL/Projection/materialized-view пока не мигрируется автоматически в TDengine",
"data_sync.unsupported.mongo_index_columns_missing": "У индекса {{name}} нет определения столбцов, он пропущен",
"data_sync.unsupported.mongo_index_create_command_failed": "Не удалось создать команду MongoDB createIndexes для индекса {{name}}: {{detail}}",
"data_sync.unsupported.mongo_index_prefix_length": "Индекс {{name}} использует длину префикса; эквивалентная миграция в MongoDB пока не поддерживается",
"data_sync.unsupported.mysql_to_tdengine_schema_semantics": "Индексы источника, внешние ключи, триггеры, уникальные ограничения и семантика auto-increment пока не мигрируются автоматически в TDengine",
"data_sync.unsupported.pglike_to_tdengine_schema_semantics": "Индексы источника, внешние ключи, триггеры, уникальные ограничения, identity и sequence пока не мигрируются автоматически в TDengine",
"data_sync.unsupported.tdengine_source_relational_semantics": "Индексы TDengine, внешние ключи, триггеры, supertable, TTL и другая семантика временных рядов пока не мигрируются автоматически",
"data_sync.unsupported.tdengine_target_missing_timestamp": "Первый столбец TDengine regular table должен быть TIMESTAMP; в текущей исходной таблице нет напрямую сопоставимого столбца времени",
"data_sync.unsupported.tdengine_to_tdengine_regular_table_semantics": "Семантика исходных supertable, TAGS, TTL, retention policy и индексов пока не мигрируется автоматически в TDengine regular table",
"data_sync.validation.query_mode_data_only": "Синхронизация результата SQL поддерживает только синхронизацию данных",
"data_sync.validation.single_target_table_required": "Для синхронизации результата SQL нужна ровно одна целевая таблица",
"data_sync.validation.source_query_required": "Введите SQL-запрос источника",
"data_sync.validation.table_required": "Выберите хотя бы одну таблицу",
"data_sync.warning.mongo_field_mixed_bson_types": "Поле {{field}} содержит несколько типов значений BSON и деградировано до совместимого типа",
"data_sync.warning.mongo_index_type_normalized": "Индекс {{name}}, тип={{type}}, будет мигрирован в MongoDB как обычный индекс",
"data_sync.warning.mongo_source_collection_index_read_failed": "Не удалось прочитать индексы исходной MongoDB collection; миграция индексов пропущена: {{detail}}",
"data_sync.warning.mongo_source_empty_sample_id_only": "В исходной MongoDB collection нет образцов данных; из `_id` будет создан только базовый столбец первичного ключа",
"data_sync.warning.mongo_source_primary_key_missing": "Из исходной MongoDB collection не удалось вывести стабильный первичный ключ; целевая таблица не создаст первичный ключ автоматически",
"data_sync.warning.mongo_source_table_index_read_failed": "Не удалось прочитать индексы исходной таблицы; миграция индексов пропущена: {{detail}}",
"data_sync.warning.mongo_target_collection_existing_only_required": "Текущая стратегия требует существующую целевую MongoDB collection, поэтому при выполнении она не будет создана автоматически",
"data_sync.warning.mongo_target_collection_weak_schema": "MongoDB является целью с гибкой структурой; структура полей следует записываемым document, проверки целевых столбцов не выполняются",
"data_sync.warning.target_exists_strategy_no_auto_create": "Текущая стратегия требует существующую целевую таблицу, поэтому при выполнении она не будет создана автоматически.",
"data_sync.warning.target_missing_columns": "В целевой таблице отсутствует {{count}} столбцов: {{columns}}",
"data_sync.warning.tdengine_source_existing_target_no_auto_add_columns": "Источники TDengine пока не добавляют столбцы автоматически в существующую целевую таблицу; сначала проверьте целевую структуру",
"data_sync.warning.tdengine_source_mysql_type_fallback": "Для столбца {{column}} типа {{type}} нет отдельного сопоставления MySQL; он деградирован до {{targetType}}",
"data_sync.warning.tdengine_source_pg_unsigned_overflow_safeguard": "Столбец {{column}} типа {{type}} сопоставлен с {{targetType}}, чтобы избежать переполнения unsigned",
"data_sync.warning.tdengine_source_pglike_type_fallback": "Для столбца {{column}} типа {{type}} нет отдельного сопоставления PG-like; он деградирован до {{targetType}}",
"data_sync.warning.tdengine_source_semantics_degraded": "TDengine -> реляционные цели сейчас мигрирует только столбцы и данные; supertable, связь TAG, retention policy и другая семантика временных рядов могут быть деградированы или потеряны",
"data_sync.warning.tdengine_source_tag_column_degraded": "Столбец {{column}} является TDengine TAG и будет деградирован до обычного столбца в реляционной цели",
"data_sync.warning.tdengine_source_tag_column_mapped": "Столбец {{column}} является TDengine TAG и сопоставлен как обычный столбец",
"data_sync.warning.tdengine_target_auto_create_basic_table_only": "auto-create для цели TDengine сейчас создает только базовую таблицу; индексы, внешние ключи, триггеры, supertable/TAGS/TTL не мигрируются автоматически",
"data_sync.warning.tdengine_target_auto_increment_not_migrated": "Семантика auto-increment столбца {{column}} не мигрируется в TDengine",
"data_sync.warning.tdengine_target_binary_type_fallback": "Столбец {{column}} типа {{type}} деградирован до {{targetType}} по строковой семантике",
"data_sync.warning.tdengine_target_column_promoted_to_timestamp": "Столбец {{column}} типа {{type}} повышен до первого столбца TDengine TIMESTAMP",
"data_sync.warning.tdengine_target_empty_type_fallback": "Тип столбца {{column}} пуст и деградирован до {{targetType}}",
"data_sync.warning.tdengine_target_enum_type_fallback": "Столбец {{column}} enum типа {{type}} деградирован до {{targetType}}",
"data_sync.warning.tdengine_target_existing_table_no_auto_add_columns": "Цели TDengine пока не добавляют столбцы автоматически в существующую целевую таблицу; сначала проверьте целевую структуру",
"data_sync.warning.tdengine_target_fixedstring_length_parse_failed": "Не удалось разобрать длину FixedString столбца {{column}}; он деградирован до {{targetType}}",
"data_sync.warning.tdengine_target_identity_not_migrated": "Семантика auto-increment/identity столбца {{column}} не мигрируется в TDengine",
"data_sync.warning.tdengine_target_insert_only": "Цели TDengine сейчас поддерживают только записи INSERT; различия update/delete будут отклонены при выполнении",
"data_sync.warning.tdengine_target_json_regular_table_fallback": "Столбец {{column}} типа {{type}} не сохраняет семантику TAG в TDengine regular table и деградирован до {{targetType}}",
"data_sync.warning.tdengine_target_json_tag_only_fallback": "Столбец {{column}} типа {{type}} деградирован до {{targetType}}, потому что TDengine JSON применяется только к TAG",
"data_sync.warning.tdengine_target_missing_time_column": "В исходной таблице нет сопоставимого столбца времени, поэтому автоматическое создание таблицы недоступно. Перед продолжением вручную подготовьте целевую таблицу TDengine и столбец времени.",
"data_sync.warning.tdengine_target_pk_constraint_not_migrated": "Семантика первичного ключа столбца {{column}} не мигрируется в TDengine как реляционное ограничение",
"data_sync.warning.tdengine_target_same_db_type_no_mapping_fallback": "Для столбца {{column}} типа {{type}} нет отдельного сопоставления TDengine для того же типа базы данных; он деградирован до {{targetType}}",
"data_sync.warning.tdengine_target_tag_column_degraded_to_regular": "Столбец {{column}} является TDengine TAG и после миграции в regular table будет деградирован до обычного столбца",
"data_sync.warning.tdengine_target_time_only_type_fallback": "Для столбца {{column}} типа {{type}} нет стабильного сопоставления TDengine time-only; он деградирован до {{targetType}}",
"data_sync.warning.tdengine_target_timestamp_column_reordered": "Базовые таблицы TDengine требуют столбец времени первым; столбец {{column}} перемещен на первую позицию",
"data_sync.warning.tdengine_target_type_fallback": "Столбец {{column}} типа {{type}} деградирован до {{targetType}}",
"data_sync.warning.tdengine_target_type_no_mapping_fallback": "Для столбца {{column}} типа {{type}} нет отдельного сопоставления TDengine; он деградирован до {{targetType}}",
"data_sync.warning.tdengine_target_user_defined_type_fallback": "Столбец {{column}} является пользовательским типом и деградирован до {{targetType}}",
"data_viewer.message.connection_not_found": "Подключение не найдено",
"data_viewer.message.duckdb_query_timeout": "Запрос DuckDB превысил тайм-аут подключения и был прерван. Увеличьте тайм-аут подключения или сократите область сортировки/фильтрации и повторите попытку.",
"data_viewer.message.fetch_data_failed_detail": "Ошибка при получении данных: {{detail}}",
"data_viewer.message.mongo_filter_invalid_detail": "Недопустимое условие фильтра MongoDB: {{detail}}",
"data_viewer.message.mongo_filter_parse_failed": "Не удалось разобрать",
"data_viewer.message.query_failed": "Ошибка запроса",
"data_viewer.message.query_timeout": "Запрос превысил тайм-аут подключения и был прерван. Увеличьте тайм-аут подключения или сократите область запроса и повторите попытку.",
"data_viewer.message.result_not_ready": "Текущий набор результатов еще не готов. Сначала загрузите данные один раз.",
"data_viewer.message.sort_buffer_retry_succeeded": "Буфер сортировки был автоматически увеличен, повторный запрос выполнен успешно.",
"data_viewer.message.total_count_failed": "Не удалось подсчитать общее количество строк",
"data_viewer.message.total_count_failed_detail": "Не удалось подсчитать общее количество строк: {{detail}}",
"data_viewer.message.total_count_parse_failed": "Не удалось разобрать результат подсчета общего количества строк",
"data_viewer.read_only.reason.duckdb_rowid_missing": "Первичный ключ, пригодный уникальный индекс или DuckDB rowid не найден, поэтому изменения нельзя безопасно отправить.",
"data_viewer.read_only.reason.index_metadata_unavailable": "Не удалось загрузить метаданные уникального индекса, поэтому изменения нельзя безопасно отправить.",
"data_viewer.read_only.reason.metadata_unavailable": "Не удалось загрузить метаданные первичного ключа или уникального индекса, поэтому изменения нельзя безопасно отправить.",
"data_viewer.read_only.reason.mongo_id_missing": "В наборе результатов MongoDB отсутствует _id, поэтому изменения нельзя безопасно отправить.",
"data_viewer.read_only.reason.no_safe_locator": "Первичный ключ или пригодный уникальный индекс не найден, поэтому изменения нельзя безопасно отправить.",
"data_viewer.read_only.reason.oracle_rowid_missing": "Первичный ключ или пригодный уникальный индекс не найден, а Oracle ROWID отсутствует в результате, поэтому изменения нельзя безопасно отправить.",
"data_viewer.read_only.reason.primary_key_column_missing": "В наборе результатов отсутствует столбец первичного ключа {{columns}}, поэтому изменения нельзя безопасно отправить.",
"data_viewer.read_only.warning.collection": "Коллекция {{target}} остается только для чтения: {{reason}}",
"data_viewer.read_only.warning.table": "Таблица {{target}} остается только для чтения: {{reason}}",
"data_viewer.sql_log.phase.complex_type_fallback_retry": "Повтор с резервной обработкой сложного типа",
"data_viewer.sql_log.phase.main_query": "Основной запрос",
"data_viewer.sql_log.phase.sort_buffer_retry": "Повтор ({{size}} sort_buffer)",
"database.label": "База данных",
"database.unnamed": "База данных без имени",
"db.backend.action.delete": "Удаление",
"db.backend.action.update": "Обновление",
"db.backend.error.batch_insert_exec_required": "Требуется функция выполнения",
"db.backend.error.batch_insert_failed": "Не удалось вставить данные: {{detail}}",
"db.backend.error.batch_insert_failed_with_sql": "Не удалось вставить данные: {{detail}}; SQL={{sql}}",
"db.backend.error.batch_insert_literal_required": "Требуется функция литерала",
"db.backend.error.batch_insert_no_rows_affected": "Вставка не была применена: не затронуто ни одной строки",
"db.backend.error.batch_insert_placeholder_required": "Требуется функция заполнителя",
"db.backend.error.batch_insert_quote_column_required": "Требуется функция экранирования имени столбца",
"db.backend.error.clickhouse_address_required": "Укажите адрес хоста ClickHouse или URI подключения",
"db.backend.error.clickhouse_attempt_tls_config_failed": "Ошибка настройки TLS при попытке {{attempt}} (protocol={{protocol}}): {{detail}}",
"db.backend.error.clickhouse_attempt_validation_failed": "Ошибка проверки подключения при попытке {{attempt}} (protocol={{protocol}}): {{detail}}",
"db.backend.error.clickhouse_delete_failed_with_sql": "Не удалось удалить строки ClickHouse: {{detail}}; SQL={{sql}}",
"db.backend.error.clickhouse_driver_detail_missing": "Драйвер не вернул подробности ошибки",
"db.backend.error.clickhouse_http_client_protocol_version_unsupported": "Текущий HTTP-порт ClickHouse не поддерживает client_protocol_version (часто встречается в ClickHouse 22.8); будет выполнена повторная попытка в режиме совместимости HTTP. Если ошибка сохранится, проверьте протокол подключения и порт",
"db.backend.error.clickhouse_http_protocol_mismatch": "Ответ сервера не похож на HTTP-ответ; текущий порт больше похож на Native-порт. Выберите протокол Native или проверьте HTTP-порт ClickHouse",
"db.backend.error.clickhouse_native_protocol_mismatch": "Ответ сервера не похож на Native-handshake; текущий порт больше похож на HTTP/HTTPS-порт. Выберите протокол HTTP или проверьте Native-порт ClickHouse",
"db.backend.error.clickhouse_unknown_error": "Неизвестная ошибка",
"db.backend.error.clickhouse_update_failed_with_sql": "Не удалось обновить строки ClickHouse: {{detail}}; SQL={{sql}}",
"db.backend.error.clickhouse_validation_failed_auto": "Проверка подключения ClickHouse не удалась: автоматическое определение протокола не удалось (типичные Native-порты 9000/9440, типичные HTTP-порты {{httpPorts}}; для нестандартных портов укажите протокол подключения вручную). {{detail}}",
"db.backend.error.clickhouse_validation_failed_manual": "Проверка подключения ClickHouse не удалась: использован выбранный пользователем протокол {{protocol}} для {{host}}:{{port}}. {{detail}}",
"db.backend.error.column_definitions_missing": "Определения столбцов не были получены",
"db.backend.error.connection_not_open": "Подключение не открыто",
"db.backend.error.connection_open_failed_prefix": "Не удалось открыть подключение к базе данных: ",
"db.backend.error.connection_verify_failed_prefix": "Не удалось проверить подключение после установления: ",
"db.backend.error.create_table_statement_not_found": "Инструкция CREATE TABLE не найдена",
"db.backend.error.custom_driver_system_odbc_unsupported_prefix": "Не удалось открыть подключение к базе данных: пользовательские подключения не поддерживают прямой ввод имени системного драйвера ODBC/JDBC \"{{driver}}\". Укажите имя драйвера Go database/sql, уже зарегистрированного в GoNavi. Текущая сборка не регистрирует универсальный ODBC-драйвер, поэтому подключение к InterSystems IRIS через \"{{driver}}\" пока не поддерживается: ",
"db.backend.error.custom_driver_unregistered_prefix": "Не удалось открыть подключение к базе данных: драйвер пользовательского подключения \"{{driver}}\" не зарегистрирован в GoNavi. Укажите зарегистрированное имя драйвера Go database/sql вместо имени системного драйвера ODBC/JDBC: ",
"db.backend.error.data_source_type_required": "Сначала выберите тип источника данных",
"db.backend.error.database_create_sphinx_unsupported": "Sphinx не поддерживает создание баз данных",
"db.backend.error.database_create_user_schema_unsupported": "Текущий источник данных ({{dbType}}) рассматривает базы данных как пользователей/схемы и не поддерживает их создание через эту точку входа. Используйте SQL-редактор для выполнения инструкции CREATE USER",
"db.backend.error.database_drop_unsupported": "Текущий источник данных ({{dbType}}) не поддерживает удаление баз данных",
"db.backend.error.database_name_required": "Требуется имя базы данных",
"db.backend.error.database_rename_direct_unsupported": "MySQL/MariaDB/OceanBase/StarRocks/Sphinx не поддерживает прямое переименование баз данных. Создайте новую базу данных и перенесите данные",
"db.backend.error.database_rename_unsupported": "Текущий источник данных ({{dbType}}) не поддерживает переименование баз данных",
"db.backend.error.database_same_name": "Старое и новое имена базы данных должны отличаться",
"db.backend.error.duckdb_build_unavailable": "Текущая сборка не содержит драйвер DuckDB (platform={{platform}}). Включите CGO и используйте поддерживаемую платформу (darwin/linux amd64|arm64, windows/amd64) или предоставьте пользовательскую библиотеку через -tags duckdb_use_lib / duckdb_use_static_lib",
"db.backend.error.duckdb_driver_unavailable": "Драйвер DuckDB недоступен: {{detail}}",
"db.backend.error.duckdb_procedure_drop_unsupported": "DuckDB пока не поддерживает хранимые процедуры",
"db.backend.error.http_tunnel_host_required": "Требуется хост HTTP Tunnel",
"db.backend.error.http_tunnel_port_invalid": "Недопустимый порт HTTP Tunnel: {{port}}",
"db.backend.error.http_tunnel_proxy_conflict": "HTTP Tunnel нельзя включать одновременно с обычным прокси",
"db.backend.error.managed_transaction_unsupported": "Текущий источник данных ({{dbType}}) не поддерживает управляемые транзакции редактора SQL",
"db.backend.error.mongo_member_discovery_unsupported": "Текущий драйвер MongoDB не поддерживает обнаружение участников",
"db.backend.error.mqtt_connect_timeout": "Превышено время ожидания подключения MQTT",
"db.backend.error.mqtt_publish_timeout": "Превышено время ожидания публикации MQTT",
"db.backend.error.mqtt_subscribe_timeout": "Превышено время ожидания подписки MQTT",
"db.backend.error.multi_statement_execution_failed": "Не удалось выполнить оператор {{index}}: {{detail}}",
"db.backend.error.multi_statement_previous_success": " ({{count}} предыдущих операторов уже выполнены успешно)",
"db.backend.error.oceanbase_oracle_show_create_table_fallback_failed": "{{metadataDetail}}; сбой резервного запроса OceanBase Oracle SHOW CREATE TABLE: {{showDetail}}",
"db.backend.error.old_table_name_required": "Старое имя таблицы обязательно",
"db.backend.error.old_view_name_required": "Старое имя представления обязательно",
"db.backend.error.oracle_column_metadata_load_failed": "Не удалось загрузить метаданные столбцов (table={{table}}): {{detail}}. Проверьте права на запрос ALL_TAB_COLUMNS и существование таблицы",
"db.backend.error.proxy_local_forward_addr_parse_failed": "Не удалось разобрать локальный адрес прокси-переадресации: {{address}}",
"db.backend.error.proxy_ssh_gateway_connect_failed": "Не удалось подключиться к SSH-шлюзу через прокси: {{detail}}",
"db.backend.error.proxy_target_port_invalid": "Целевой порт недопустим: {{port}}",
"db.backend.error.routine_drop_unsupported": "Текущий источник данных ({{dbType}}) не поддерживает удаление функций или хранимых процедур",
"db.backend.error.routine_name_required": "Требуется имя функции или хранимой процедуры",
"db.backend.error.row_action_not_effective_multiple_rows": "{{action}} не было применено: затронуто {{count}} строк; ожидалась ровно 1",
"db.backend.error.row_action_not_effective_no_rows_matched": "{{action}} не было применено: совпадающие строки не найдены",
"db.backend.error.row_action_not_effective_rows_affected_unknown": "{{action}} не было применено: не удалось определить число затронутых строк: {{detail}}",
"db.backend.error.row_delete_failed": "Не удалось удалить запись: {{detail}}",
"db.backend.error.row_update_failed": "Не удалось обновить запись: {{detail}}",
"db.backend.error.row_update_key_conditions_required": "Для операции обновления требуются условия ключа",
"db.backend.error.schema_create_unsupported": "Текущий источник данных ({{dbType}}) не поддерживает создание схем через эту точку входа",
"db.backend.error.schema_drop_unsupported": "Текущий источник данных ({{dbType}}) не поддерживает удаление схем через эту точку входа",
"db.backend.error.schema_name_required": "Требуется имя схемы",
"db.backend.error.schema_rename_unsupported": "Текущий источник данных ({{dbType}}) не поддерживает переименование схем через эту точку входа",
"db.backend.error.schema_same_name": "Старое и новое имена схемы должны отличаться",
"db.backend.error.sqlite_file_path_required": "SQLite требуется путь к локальному файлу базы данных (например, /path/to/demo.sqlite)",
"db.backend.error.sqlite_host_port_not_file_path": "SQLite требуется путь к локальному файлу базы данных; текущий ввод похож на адрес хоста: {{dsn}}",
"db.backend.error.table_columns_empty_for_ddl": "Полученные определения столбцов оказались пустыми, поэтому не удалось сформировать инструкцию CREATE TABLE",
"db.backend.error.table_columns_missing_for_ddl": "Не удалось получить определения столбцов, поэтому не удалось сформировать инструкцию CREATE TABLE",
"db.backend.error.table_drop_unsupported": "Текущий источник данных ({{dbType}}) не поддерживает удаление таблиц",
"db.backend.error.table_name_required": "Имя таблицы обязательно",
"db.backend.error.table_new_name_no_qualifier": "Новое имя таблицы не должно содержать префикс схемы или базы данных",
"db.backend.error.table_rename_unsupported": "Текущий источник данных ({{dbType}}) не поддерживает переименование таблиц",
"db.backend.error.table_same_name": "Старое и новое имя таблицы должны отличаться",
"db.backend.error.target_database_required": "Требуется целевая база данных",
"db.backend.error.tdengine_apply_changes_insert_only": "Целевые таблицы TDengine сейчас поддерживают только запись INSERT; ApplyChanges не поддерживает различия UPDATE/DELETE",
"db.backend.error.test_connection_close_failed": "Подключение выполнено, но не удалось закрыть тестовое подключение: {{detail}}",
"db.backend.error.transaction_already_finished": "Транзакция уже завершена",
"db.backend.error.transaction_commit_close_failed": "Транзакция зафиксирована, но не удалось закрыть сеанс: {{detail}}",
"db.backend.error.transaction_commit_failed": "Не удалось зафиксировать транзакцию: {{detail}}",
"db.backend.error.transaction_id_required": "Требуется ID транзакции",
"db.backend.error.transaction_not_found": "Транзакция не найдена или уже завершена",
"db.backend.error.transaction_not_open": "Транзакция не открыта",
"db.backend.error.transaction_query_unsupported": "Текущий сеанс транзакции не поддерживает операторы запроса",
"db.backend.error.transaction_rollback_close_failed": "Транзакция отменена, но не удалось закрыть сеанс: {{detail}}",
"db.backend.error.transaction_rollback_failed": "Не удалось откатить транзакцию: {{detail}}",
"db.backend.error.unsupported_database_type": "Неподдерживаемый тип базы данных: {{dbType}}",
"db.backend.error.view_drop_unsupported": "Текущий источник данных ({{dbType}}) не поддерживает удаление представлений",
"db.backend.error.view_name_required": "Имя представления обязательно",
"db.backend.error.view_new_name_no_qualifier": "Новое имя представления не должно содержать префикс схемы или базы данных",
"db.backend.error.view_rename_unsupported": "Текущий источник данных ({{dbType}}) не поддерживает переименование представлений",
"db.backend.error.view_same_name": "Старое и новое имя представления должны отличаться",
"db.backend.message.connect_failure_cooldown": "Подключение недавно завершилось ошибкой и сейчас находится на охлаждении. Повторите попытку через {{remaining}}; последняя ошибка: {{detail}}",
"db.backend.message.connect_success": "Подключение выполнено",
"db.backend.message.connect_timeout_detail": "Тайм-аут подключения к базе данных: {{dbType}} {{host}}:{{port}}/{{database}}: {{detail}}",
"db.backend.message.database_created": "База данных создана",
"db.backend.message.database_dropped": "База данных удалена",
"db.backend.message.database_renamed": "База данных переименована",
"db.backend.message.function_dropped": "Функция удалена",
"db.backend.message.mongo_members_discovered": "Обнаружено участников: {{count}}",
"db.backend.message.mongo_primary_credentials_label": "учетные данные primary",
"db.backend.message.mongo_replica_credentials_label": "учетные данные реплики",
"db.backend.message.multi_statement_sequential_fallback": "Текущий источник данных ({{dbType}}) не поддерживает нативное выполнение нескольких операторов. Запрос был автоматически разделен на {{count}} операторов и выполнен последовательно.",
"db.backend.message.procedure_dropped": "Хранимая процедура удалена",
"db.backend.message.release_success": "Подключение освобождено",
"db.backend.message.schema_created": "Схема создана",
"db.backend.message.schema_dropped": "Схема удалена",
"db.backend.message.schema_renamed": "Схема переименована",
"db.backend.message.table_dropped": "Таблица удалена",
"db.backend.message.table_renamed": "Таблица переименована",
"db.backend.message.transaction_committed": "Транзакция зафиксирована",
"db.backend.message.transaction_rolled_back": "Транзакция отменена",
"db.backend.message.view_dropped": "Представление удалено",
"db.backend.message.view_renamed": "Представление переименовано",
"definition_viewer.action.edit_object": "Изменить объект",
"definition_viewer.edit.comment_compatibility": "Перед выполнением убедитесь, что синтаксис совместим с текущей базой данных",
"definition_viewer.edit.comment_empty_definition": "Текущее определение объекта пусто. Перед выполнением дополните DDL для {{name}}",
"definition_viewer.edit.comment_title": "Изменить {{object}}: {{name}}",
"definition_viewer.edit.tab_title": "Изменить {{object}}: {{name}}",
"definition_viewer.editor.event_definition_not_found": "Определение события не найдено",
"definition_viewer.editor.event_fragment_fallback.header": "Текущий источник данных не вернул полный оператор CREATE EVENT; возвращен фрагмент определения события",
"definition_viewer.editor.metadata_fallback.header": "Текущий источник данных не вернул исполняемый текст определения; возвращены метаданные",
"definition_viewer.editor.metadata_fallback.name_label": "Имя",
"definition_viewer.editor.metadata_fallback.type_label": "Тип",
"definition_viewer.editor.object_definition_not_found": "Определение {{object}} не найдено",
"definition_viewer.editor.routine_definition_not_found": "Определение функции/процедуры не найдено",
"definition_viewer.editor.sphinx.compat_queries_hint": "Было выполнено несколько совместимых запросов. Причиной могут быть ограничения версии или неподдерживаемый тип объекта.",
"definition_viewer.editor.sphinx.empty_result": "Текущий экземпляр Sphinx{{version}} не вернул определение {{object}}.",
"definition_viewer.editor.sphinx.failed_message_label": "Возвращенное сообщение об ошибке",
"definition_viewer.editor.sphinx.failed_message_unknown": "Возвращенное сообщение об ошибке: неизвестная ошибка",
"definition_viewer.editor.sphinx.unsupported_query": "Текущий экземпляр Sphinx{{version}} не поддерживает запрос определений {{object}}.",
"definition_viewer.editor.sphinx.version_suffix": " (версия: {{version}})",
"definition_viewer.editor.unsupported_event_definition": "Этот тип базы данных не поддерживает просмотр определений событий",
"definition_viewer.editor.unsupported_object_definition": "Просмотр определения этого объекта не поддерживается",
"definition_viewer.editor.unsupported_routine_definition": "Этот тип базы данных не поддерживает просмотр определений функций/процедур",
"definition_viewer.editor.unsupported_sqlite_routine_definition": "SQLite не поддерживает управление определениями функций/процедур",
"definition_viewer.editor.unsupported_view_definition": "Этот тип базы данных не поддерживает просмотр определений представлений",
"definition_viewer.editor.view_definition_not_found": "Определение представления не найдено",
"definition_viewer.error.connection_not_found": "Подключение к базе данных не найдено",
"definition_viewer.error.event_name_empty": "Имя события пустое",
"definition_viewer.error.load_failed": "Не удалось загрузить",
"definition_viewer.error.query_failed": "Не удалось запросить определение",
"definition_viewer.error.query_failed_detail": "Не удалось запросить определение: {{detail}}",
"definition_viewer.error.routine_name_empty": "Имя функции/процедуры пустое",
"definition_viewer.error.view_name_empty": "Имя представления пустое",
"definition_viewer.field.database": "База данных",
"definition_viewer.field.type": "Тип",
"definition_viewer.loading.event_definition": "Загрузка определения события...",
"definition_viewer.loading.routine_definition": "Загрузка определения функции/процедуры...",
"definition_viewer.loading.view_definition": "Загрузка определения представления...",
"definition_viewer.object.event": "Событие",
"definition_viewer.object.materialized_view": "Материализованное представление",
"definition_viewer.object.routine": "Функция/процедура",
"definition_viewer.object.view": "Представление",
"definition_viewer.warning.refresh_latest_failed": "Не удалось обновить последнее определение",
"dev.perf_data_grid.columns": "Столбцы",
"dev.perf_data_grid.density.comfortable": "Стандартная",
"dev.perf_data_grid.density.compact": "Очень компактная",
"dev.perf_data_grid.density.standard": "Компактная",
"dev.perf_data_grid.notice.description": "Текущий {{uiVersion}} UI, {{rows}} строк / {{columns}} столбцов. Измеряйте вертикальную, горизонтальную и Shift+колесо прокрутку прямо в области таблицы.",
"dev.perf_data_grid.notice.message": "Эта страница предназначена только для измерения производительности прокрутки в режиме разработки",
"dev.perf_data_grid.rows": "Строки",
"dev.perf_data_grid.title": "Страница воспроизведения производительности DataGrid",
"dev.perf_data_grid.trigger_layout": "Пересчитать макет",
"dev.perf_data_grid.ui_version.legacy": "Старый UI",
"dev.perf_data_grid.ui_version.legacy_short": "старый",
"dev.perf_data_grid.ui_version.v2": "Новый UI",
"dev.perf_data_grid.ui_version.v2_short": "новый",
"driver_manager.action.close": "Закрыть",
"driver_manager.action.import_directory": "Импортировать каталог драйверов",
"driver_manager.action.import_package": "Импортировать пакет драйвера",
"driver_manager.action.install_enable": "Установить и включить",
"driver_manager.action.logs": "Журнал",
"driver_manager.action.network_check": "Проверка сети",
"driver_manager.action.open_directory": "Открыть каталог драйверов",
"driver_manager.action.open_global_proxy_settings": "Открыть настройки глобального прокси",
"driver_manager.action.refresh": "Обновить",
"driver_manager.action.remove": "Удалить",
"driver_manager.action.switch_version": "Переключить версию",
"driver_manager.backend.dialog.select_download_directory": "Выберите каталог загрузки драйверов",
"driver_manager.backend.dialog.select_package_directory": "Выберите каталог пакета драйвера",
"driver_manager.backend.dialog.select_package_file": "Выберите файл пакета драйвера (не JDBC Jar)",
"driver_manager.backend.driver_fallback_name": "драйвер",
"driver_manager.backend.error.agent_hash_failed": "Не удалось вычислить checksum агента драйвера: {{detail}}",
"driver_manager.backend.error.agent_metadata_unavailable": "Метаданные версии driver-agent {{name}} недоступны. Установите driver-agent, соответствующий текущей версии: {{detail}}",
"driver_manager.backend.error.agent_path_occupied_by_directory": "Путь агента драйвера {{name}} занят каталогом: {{path}}",
"driver_manager.backend.error.agent_revision_mismatch": "Revision driver-agent {{name}} не совпадает (установлено: {{actual}}, требуется: {{expected}}). Установите driver-agent, соответствующий текущей версии.",
"driver_manager.backend.error.agent_revision_mismatch_empty_actual": "Revision driver-agent {{name}} не совпадает (установлено: пусто, требуется: {{expected}}). Установите driver-agent, соответствующий текущей версии.",
"driver_manager.backend.error.api_url_empty": "API URL пуст",
"driver_manager.backend.error.asset_name_empty": "Имя ресурса драйвера пустое",
"driver_manager.backend.error.builtin_download_not_required": "Встроенным драйверам не требуется загрузка пакетов расширения",
"driver_manager.backend.error.builtin_install_not_required": "Встроенным драйверам не требуется установка пакетов расширения",
"driver_manager.backend.error.builtin_package_not_required": "У встроенных драйверов нет установочных пакетов",
"driver_manager.backend.error.builtin_remove_not_allowed": "Встроенные драйверы нельзя удалить",
"driver_manager.backend.error.builtin_version_not_required": "Встроенным драйверам не требуется выбор версии",
"driver_manager.backend.error.bundle_download_failed": "Не удалось скачать комплект драйверов: {{detail}}",
"driver_manager.backend.error.bundle_entry_missing": "{{name}} не найден в комплекте драйверов (ожидаемый путь: {{path}})",
"driver_manager.backend.error.bundle_index_asset_missing": "Ресурс индекса комплекта драйверов не найден",
"driver_manager.backend.error.bundle_index_empty": "Индекс комплекта драйверов пуст",
"driver_manager.backend.error.bundle_index_fetch_failed": "Не удалось получить индекс комплекта драйверов: {{detail}}",
"driver_manager.backend.error.bundle_index_parse_failed": "Не удалось разобрать индекс комплекта драйверов: {{detail}}",
"driver_manager.backend.error.bundle_url_empty": "URL загрузки комплекта драйверов пуст",
"driver_manager.backend.error.bundled_agent_hash_failed": "Не удалось вычислить checksum встроенного агента драйвера {{name}}: {{detail}}",
"driver_manager.backend.error.cache_key_empty": "Cache key пуст",
"driver_manager.backend.error.chmod_agent_failed": "Не удалось настроить права агента драйвера: {{detail}}",
"driver_manager.backend.error.close_agent_file_failed": "Не удалось закрыть файл агента драйвера: {{detail}}",
"driver_manager.backend.error.copy_bundled_agent_failed": "Не удалось скопировать встроенный агент драйвера {{name}}: {{detail}}",
"driver_manager.backend.error.copy_runtime_dependency_entry_failed": "Не удалось скопировать зависимость времени выполнения {{name}}: {{detail}}",
"driver_manager.backend.error.copy_runtime_dependency_failed": "Не удалось скопировать runtime-зависимости {{name}}: {{detail}}",
"driver_manager.backend.error.create_agent_temp_file_failed": "Не удалось создать временный файл агента драйвера: {{detail}}",
"driver_manager.backend.error.create_directory_failed": "Не удалось создать каталог драйверов: {{detail}}",
"driver_manager.backend.error.create_named_directory_failed": "Не удалось создать каталог драйвера {{name}}: {{detail}}",
"driver_manager.backend.error.download_failed": "Загрузка не удалась: {{detail}}",
"driver_manager.backend.error.download_url_empty": "Download URL пуст",
"driver_manager.backend.error.driver_type_empty": "Тип драйвера пуст",
"driver_manager.backend.error.driver_version_list_fetch_failed": "Не удалось получить список версий драйвера: {{detail}}",
"driver_manager.backend.error.driver_version_list_parse_failed": "Не удалось разобрать список версий драйвера: {{detail}}",
"driver_manager.backend.error.driver_version_unsupported": "Версия {{version}} для {{name}} не поддерживается",
"driver_manager.backend.error.extract_runtime_dependency_failed": "Не удалось распаковать зависимость времени выполнения {{name}}: {{detail}}",
"driver_manager.backend.error.file_manifest_url_invalid": "Недопустимый файловый URL манифеста драйверов",
"driver_manager.backend.error.file_path_empty": "Путь файла пуст",
"driver_manager.backend.error.go_not_found_prebuilt_missing": "Go не установлен в текущей среде, и доступный готовый пакет агента {{name}} не найден",
"driver_manager.backend.error.import_local_agent_failed": "Не удалось импортировать локальный агент драйвера: {{detail}}",
"driver_manager.backend.error.import_local_agent_runtime_failed": "Не удалось импортировать runtime-зависимости локального агента драйвера: {{detail}}",
"driver_manager.backend.error.install_prebuilt_package_failed": "Не удалось установить готовый пакет драйвера: {{detail}}",
"driver_manager.backend.error.local_directory_entry_missing": "Файл агента {{name}} не найден в каталоге (предпочтительный путь: {{path}}, кандидаты имен файлов: {{assetCandidates}} / {{baseCandidates}})",
"driver_manager.backend.error.local_directory_not_directory": "Путь локального каталога драйверов не является каталогом: {{path}}",
"driver_manager.backend.error.local_directory_path_empty": "Путь локального каталога драйверов пуст",
"driver_manager.backend.error.local_directory_scan_limit": "В локальном каталоге драйверов слишком много записей (более {{max}}). Сузьте каталог или выберите zip/отдельный файл напрямую.",
"driver_manager.backend.error.local_manifest_url_invalid": "Недопустимый локальный URL манифеста драйверов",
"driver_manager.backend.error.local_package_entry_missing": "Файл агента {{name}} не найден в локальном пакете драйвера (ожидаемый путь: {{path}})",
"driver_manager.backend.error.local_package_path_empty": "Путь локального пакета драйвера пуст",
"driver_manager.backend.error.manifest_fetch_failed": "Не удалось получить манифест драйверов: {{detail}}",
"driver_manager.backend.error.manifest_parse_failed": "Не удалось разобрать манифест драйверов: {{detail}}",
"driver_manager.backend.error.manifest_scheme_unsupported": "Неподдерживаемая схема URL манифеста драйверов: {{scheme}}",
"driver_manager.backend.error.manifest_too_large": "Манифест драйверов превышает ограничение размера",
"driver_manager.backend.error.manifest_url_empty": "URL манифеста драйверов пуст",
"driver_manager.backend.error.metadata_file_write_failed": "Не удалось записать файл метаданных драйвера: {{detail}}",
"driver_manager.backend.error.metadata_payload_encode_failed": "Не удалось сериализовать метаданные драйвера: {{detail}}",
"driver_manager.backend.error.module_path_empty": "Путь модуля пуст",
"driver_manager.backend.error.module_version_list_empty": "Список версий модуля пуст",
"driver_manager.backend.error.module_version_list_fetch_failed": "Не удалось получить список версий модуля: {{detail}}",
"driver_manager.backend.error.module_version_list_read_failed": "Не удалось прочитать список версий модуля: {{detail}}",
"driver_manager.backend.error.mongo_version_unsupported": "Версия MongoDB {{version}} не поддерживается; поддерживаются только 1.17.x и 2.x",
"driver_manager.backend.error.named_agent_hash_failed": "Не удалось вычислить checksum агента драйвера {{name}}: {{detail}}",
"driver_manager.backend.error.named_chmod_agent_failed": "Не удалось настроить права агента драйвера {{name}}: {{detail}}",
"driver_manager.backend.error.no_driver_versions": "Доступные версии драйвера не найдены",
"driver_manager.backend.error.open_bundle_failed": "Не удалось открыть комплект драйверов: {{detail}}",
"driver_manager.backend.error.open_directory_failed": "Не удалось открыть каталог драйверов: {{detail}}",
"driver_manager.backend.error.open_directory_unsupported": "На этой платформе нельзя открывать каталоги: {{platform}}",
"driver_manager.backend.error.open_local_package_failed": "Не удалось открыть локальный пакет драйвера: {{detail}}",
"driver_manager.backend.error.optional_go_only": "Здесь можно устанавливать и включать только дополнительные Go-драйверы",
"driver_manager.backend.error.package_size_unsupported": "Этот драйвер не поддерживает запрос размера установочного пакета",
"driver_manager.backend.error.prebuilt_downloads_failed": "Не удалось скачать готовый пакет: {{detail}}",
"driver_manager.backend.error.read_bundle_entry_failed": "Не удалось прочитать запись комплекта драйверов: {{detail}}",
"driver_manager.backend.error.read_local_directory_failed": "Не удалось прочитать локальный каталог драйверов: {{detail}}",
"driver_manager.backend.error.read_local_package_entry_failed": "Не удалось прочитать запись локального пакета драйвера: {{detail}}",
"driver_manager.backend.error.read_local_package_failed": "Не удалось прочитать локальный пакет драйвера: {{detail}}",
"driver_manager.backend.error.release_empty": "Release пуст",
"driver_manager.backend.error.release_info_fetch_failed": "Не удалось получить сведения Release: {{detail}}",
"driver_manager.backend.error.remove_installed_agent_failed": "Не удалось удалить установленный агент драйвера {{name}}: {{detail}}",
"driver_manager.backend.error.remove_package_failed": "Не удалось удалить пакет драйвера: {{detail}}",
"driver_manager.backend.error.replace_agent_failed": "Не удалось заменить агент драйвера: {{detail}}",
"driver_manager.backend.error.runtime_dependency_directory_empty": "Каталог зависимостей времени выполнения пуст",
"driver_manager.backend.error.runtime_dependency_entry_missing": "В пакете драйвера отсутствует зависимость времени выполнения: {{name}}",
"driver_manager.backend.error.runtime_dependency_required": "{{name}} требует поставляемые вместе runtime-зависимости на текущей платформе ({{files}}); установка агента одним файлом не поддерживается. Используйте комплект драйверов, отдельный driver zip или локальную сборку из исходников.",
"driver_manager.backend.error.runtime_dependency_target_directory_empty": "Целевой каталог зависимостей времени выполнения пуст",
"driver_manager.backend.error.scan_local_directory_failed": "Не удалось просканировать локальный каталог драйверов: {{detail}}",
"driver_manager.backend.error.source_build_command_failed": "Не удалось собрать агент драйвера {{name}}: {{detail}}; вывод: {{output}}",
"driver_manager.backend.error.source_build_duckdb_windows_cgo_toolchain_prepare_failed": "Не удалось подготовить CGO toolchain DuckDB Windows: {{detail}}",
"driver_manager.backend.error.source_build_duckdb_windows_dlltool_resolve_failed": "Не удалось найти DuckDB Windows dlltool: {{detail}}",
"driver_manager.backend.error.source_build_duckdb_windows_dynamic_library_missing_files": "В официальном пакете динамической библиотеки DuckDB отсутствуют файлы: {{files}}",
"driver_manager.backend.error.source_build_duckdb_windows_dynamic_library_prepare_failed": "Не удалось подготовить динамическую библиотеку DuckDB Windows: {{detail}}",
"driver_manager.backend.error.source_build_duckdb_windows_gcc_not_found": "Не найден пригодный gcc.exe/g++.exe; {{hint}}",
"driver_manager.backend.error.source_build_duckdb_windows_gcc_not_found_with_checked": "Не найден пригодный gcc.exe/g++.exe. Проверено: {{checked}}; {{hint}}",
"driver_manager.backend.error.source_build_duckdb_windows_toolchain_install_hint": "Сначала установите toolchain MSYS2 UCRT64: winget install --id MSYS2.MSYS2 -e; затем выполните C:\\msys64\\usr\\bin\\bash.exe -lc \"pacman -S --needed --noconfirm mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-binutils\"",
"driver_manager.backend.error.source_build_failed": "Локальная сборка из исходников не удалась: {{detail}}",
"driver_manager.backend.error.source_build_go_mod_read_failed": "Не удалось прочитать go.mod: {{detail}}",
"driver_manager.backend.error.source_build_module_dependency_missing": "Зависимость драйвера не найдена в go.mod: {{modulePath}}",
"driver_manager.backend.error.source_build_module_or_version_empty": "Путь модуля драйвера или версия пусты",
"driver_manager.backend.error.source_build_project_root_missing": "Исходники общего драйвер-агента не найдены в проекте; используйте опубликованную сборку",
"driver_manager.backend.error.source_build_tag_unconfigured": "Для типа драйвера не настроены теги сборки: {{driverType}}",
"driver_manager.backend.error.source_build_temp_directory_create_failed": "Не удалось создать временный каталог для сборки драйвера: {{detail}}",
"driver_manager.backend.error.source_build_temp_go_mod_write_failed": "Не удалось записать временный go.mod: {{detail}}",
"driver_manager.backend.error.source_build_temp_go_sum_write_failed": "Не удалось записать временный go.sum: {{detail}}",
"driver_manager.backend.error.source_build_timeout": "Сборка агента драйвера {{name}} превысила лимит времени (более {{timeout}}). Рекомендуется использовать готовый пакет драйвера или импорт локального пакета драйвера.",
"driver_manager.backend.error.source_build_workdir_unavailable": "Не удалось определить текущий каталог: {{detail}}",
"driver_manager.backend.error.sync_agent_failed": "Не удалось сбросить агент драйвера на диск: {{detail}}",
"driver_manager.backend.error.tag_empty": "Tag пуст",
"driver_manager.backend.error.unknown": "Неизвестная ошибка",
"driver_manager.backend.error.unsupported_driver_type": "Неподдерживаемый тип драйвера",
"driver_manager.backend.error.version_empty": "Версия пустая",
"driver_manager.backend.error.write_agent_failed": "Не удалось записать агент драйвера: {{detail}}",
"driver_manager.backend.error.zip_entry_empty": "Элемент zip пуст",
"driver_manager.backend.message.download_failed_detail": "Не удалось скачать и установить драйвер: {{detail}}",
"driver_manager.backend.message.driver_install_success": "Драйвер успешно установлен",
"driver_manager.backend.message.jdbc_jar_unsupported": "Прямой импорт файлов JDBC Jar не поддерживается. GoNavi использует Go-драйверы и дополнительные пакеты driver-agent; используйте пакет драйвера или каталог драйвера. Для подключения к Kingbase предпочтительно выберите тип подключения Kingbase либо укажите kingbase / kingbase8 в пользовательском подключении.",
"driver_manager.backend.message.local_import_failed_detail": "Не удалось импортировать локальный пакет драйвера: {{detail}}",
"driver_manager.backend.message.log_hint": " (подробный журнал: {{path}})",
"driver_manager.backend.message.metadata_write_failed_detail": "Не удалось записать метаданные драйвера: {{detail}}",
"driver_manager.backend.message.opened_directory": "Каталог драйверов открыт: {{path}}",
"driver_manager.backend.message.package_removed": "Пакет драйвера удален",
"driver_manager.backend.message.runtime_directory_configured": "Каталог среды выполнения драйверов настроен",
"driver_manager.backend.message.unsupported_builtin_manifest_url": "Неподдерживаемый URL встроенного манифеста драйверов: {{url}}",
"driver_manager.backend.network.error.probe_host_missing": "В URL проверки отсутствует хост",
"driver_manager.backend.network.error.probe_url_empty": "URL проверки пуст",
"driver_manager.backend.network.error.timeout": "Время ожидания сетевого соединения истекло",
"driver_manager.backend.network.probe.github_driver_release": "Релизы драйверов GitHub",
"driver_manager.backend.network.probe.github_release_asset_domain": "Домен ресурсов GitHub Release",
"driver_manager.backend.network.probe.go_module_proxy": "Прокси модулей Go",
"driver_manager.backend.network.summary.download_chain_unreachable": "GitHub API доступен, но цепочка загрузки драйверов недоступна. Сначала включите глобальный прокси GoNavi, разрешите github.com, api.github.com, release-assets.githubusercontent.com, objects.githubusercontent.com и raw.githubusercontent.com в правилах прокси, а если ошибка останется, рассмотрите режим TUN.",
"driver_manager.backend.package_size.built_in": "Встроенный",
"driver_manager.backend.package_size.to_be_published": "Ожидает публикации",
"driver_manager.backend.progress.fallback.bundle_available": "Прямая ссылка недоступна; переключаемся на комплект драйверов ({{name}}, осталось источников: {{bundle}})",
"driver_manager.backend.progress.fallback.direct_to_bundle": "Прямые ссылки на готовую сборку не подошли; переключаемся на комплект драйверов ({{name}}, осталось источников: {{bundle}})",
"driver_manager.backend.progress.fallback.explicit_skip_bundle": "Прямые ссылки на готовую сборку не подошли; разрешены только явные ресурсы, комплект драйверов пропускается ({{name}})",
"driver_manager.backend.progress.fallback.source_build": "Ресурсы выпуска не подошли; готовится резервная локальная сборка из исходников ({{name}})",
"driver_manager.backend.progress.plan.bundle_only": "Подготовка установки агента драйвера {{name}} (версия {{version}}); прямые ссылки на готовую сборку не указаны, пробуем {{bundle}} источников комплектов драйверов",
"driver_manager.backend.progress.plan.direct_only": "Подготовка установки агента драйвера {{name}} (версия {{version}}); пробуем {{direct}} прямых ссылок на готовую сборку",
"driver_manager.backend.progress.plan.direct_then_bundle": "Подготовка установки агента драйвера {{name}} (версия {{version}}); сначала {{direct}} прямых ссылок на готовую сборку, затем {{bundle}} источников комплектов драйверов",
"driver_manager.backend.progress.plan.explicit_direct": "Подготовка установки агента драйвера {{name}} (версия {{version}}); только явные ресурсы версии, пробуем {{direct}} прямых ссылок на готовую сборку",
"driver_manager.backend.progress.plan.source_fallback": "Подготовка установки агента драйвера {{name}} (версия {{version}}); если ресурсы выпуска не совпадут, будет локальная сборка из исходников",
"driver_manager.backend.progress.plan.source_first": "Подготовка установки агента драйвера {{name}} (версия {{version}}); сначала локальная сборка из исходников, затем резервная загрузка",
"driver_manager.backend.progress.plan.source_only": "Подготовка установки агента драйвера {{name}} (версия {{version}}); эта версия разрешает только локальную сборку из исходников",
"driver_manager.backend.status.affected_connections": "Затрагивает {{count}} сохраненных подключений",
"driver_manager.backend.status.agent_arch_incompatible_detail": "Архитектура агента драйвера {{name}} несовместима: файл={{file}}, текущий процесс={{process}}. Переустановите и включите его в Driver Manager.",
"driver_manager.backend.status.agent_missing": "Агент драйвера {{name}} отсутствует. Переустановите и включите его в Driver Manager.",
"driver_manager.backend.status.agent_path_failed": "Не удалось определить путь агента драйвера {{name}}. Переустановите и включите его в Driver Manager.",
"driver_manager.backend.status.agent_revision_update_detail": "Причина: текущая версия GoNavi требует обновленный {{name}} driver-agent (revision: {{expected}}). Влияние: driver-agent является отдельным бинарным файлом и не обновляется автоматически вместе с основным приложением. Без переустановки продолжит работать старая логика agent, поэтому исправления или оптимизации на стороне драйвера не вступят в силу, и проблемы старой версии могут сохраняться. Настоятельно рекомендуется переустановить соответствующий driver-agent.",
"driver_manager.backend.status.agent_revision_update_detail_with_actual": "Причина: текущая версия GoNavi требует обновленный {{name}} driver-agent (revision: {{expected}}). Влияние: driver-agent является отдельным бинарным файлом и не обновляется автоматически вместе с основным приложением. Без переустановки продолжит работать старая логика agent, поэтому исправления или оптимизации на стороне драйвера не вступят в силу, и проблемы старой версии могут сохраняться. Настоятельно рекомендуется переустановить соответствующий driver-agent (установленная метка: {{actual}}, требуется: {{expected}}).",
"driver_manager.backend.status.agent_unavailable_reinstall": "Агент драйвера {{name}} недоступен: {{detail}}. Переустановите и включите его в Driver Manager.",
"driver_manager.backend.status.built_in_available": "Встроенный драйвер готов к подключению",
"driver_manager.backend.status.expected_revision": "требуемая revision {{revision}}.",
"driver_manager.backend.status.installed_pending": "Драйвер установлен и ожидает активации",
"driver_manager.backend.status.installed_pending_with_version": "Драйвер установлен (версия: {{version}}) и ожидает активации",
"driver_manager.backend.status.installed_revision": "установленная revision {{revision}}.",
"driver_manager.backend.status.mongodb_compatibility_update_detail": "Причина: рекомендуемая совместимая версия драйвера MongoDB — {{recommended}}, установленная версия — {{installed}}. Влияние: MongoDB 2.x driver-agent использует официальный драйвер v2 и требует MongoDB server 4.2+; при подключении к MongoDB 4.0 возможна несовместимость wire version 7. Настоятельно рекомендуется переустановить соответствующий driver-agent.",
"driver_manager.backend.status.needs_update": "Требуется переустановка, чтобы применить обновления драйвера.",
"driver_manager.backend.status.optional_disabled": "Go-драйвер {{name}} не включен. Установите и включите его в Driver Manager.",
"driver_manager.backend.status.optional_disabled_generic": "Не включен",
"driver_manager.backend.status.optional_disabled_with_version": "Не включен (версия: {{version}})",
"driver_manager.backend.status.optional_enabled": "Go-драйвер включен и готов к подключению",
"driver_manager.backend.status.slim_build_required": "{{name}} не входит в текущий slim build. Установите Full-версию, чтобы использовать этот драйвер.",
"driver_manager.backend.status.unrecognized_driver_type": "Неизвестный тип источника данных",
"driver_manager.backend.version.latest_suffix": " (последняя)",
"driver_manager.backend.version.recommended_suffix": " (рекомендуется)",
"driver_manager.backend.version.unlabeled": "Версия без метки",
"driver_manager.column.actions": "Действия",
"driver_manager.column.data_source": "Источник данных",
"driver_manager.column.package_size": "Размер пакета",
"driver_manager.column.progress": "Ход установки",
"driver_manager.column.status": "Состояние",
"driver_manager.column.version": "Версия драйвера",
"driver_manager.description.install_required": "Для источников данных, кроме MySQL / Redis / Oracle / PostgreSQL, перед подключением нужно установить и включить драйвер.",
"driver_manager.directory_info.details_label": "Показать каталог драйверов и пояснение о повторном использовании",
"driver_manager.directory_info.log_file": "Файл журнала выполнения: {{path}}",
"driver_manager.directory_info.reuse_help": "Автоматически скачанные и вручную импортированные драйверы сохраняются в этом каталоге. Их можно повторно использовать при последующих обновлениях версий.",
"driver_manager.directory_info.root_dir": "Корневой каталог драйверов: {{path}}",
"driver_manager.directory_info.title": "Каталог драйверов и повторное использование",
"driver_manager.empty.default": "Нет данных о драйверах",
"driver_manager.empty.search": "Нет драйверов, совпадающих с «{{keyword}}»",
"driver_manager.filter_summary.match": "Совпадений {{filtered}} / {{total}}",
"driver_manager.filter_summary.total": "Драйверов: {{total}}",
"driver_manager.import.directory_help": "Если загрузка из приложения не работает, сначала вручную скачайте пакет драйвера в этот каталог, затем используйте «Импортировать пакет драйвера» или «Импортировать каталог драйверов», чтобы завершить установку.",
"driver_manager.import.single_file_help": "Строчное действие «Импортировать пакет драйвера» предназначено только для отдельного файла драйвера или архива, например `mariadb-driver-agent`, `mariadb-driver-agent.exe` или `GoNavi-DriverAgents.zip`. Прямой импорт JDBC Jar не поддерживается; для пакетного импорта используйте «Импортировать каталог драйверов» выше.",
"driver_manager.local_source.directory": "каталог",
"driver_manager.local_source.file": "файл",
"driver_manager.log_modal.empty": "Для этого драйвера пока нет журналов операций.",
"driver_manager.log_modal.executable_path": "Исполняемый файл драйвера: {{path}}",
"driver_manager.log_modal.install_dir": "Каталог установки: {{path}}",
"driver_manager.log_modal.title": "Журнал драйвера - {{name}}",
"driver_manager.log.done_auto_install": "Автоматическая установка завершена{{version}}",
"driver_manager.log.done_local_import": "Установка через локальный импорт завершена{{version}}",
"driver_manager.log.done_remove": "Удаление драйвера завершено",
"driver_manager.log.force_overwrite_reinstall": "Включен режим перезаписи установленных драйверов; будет выполнен повторный импорт",
"driver_manager.log.progress_line": "{{status}}: {{message}} ({{percent}} %)",
"driver_manager.log.skip_installed_dedupe": "Драйвер уже установлен; импорт каталога пропущен из-за устранения дублей",
"driver_manager.log.skip_slim_build": "Текущий пакет выпуска является slim-сборкой; импорт каталога пропущен",
"driver_manager.log.start_auto_install": "Начата автоматическая установка",
"driver_manager.log.start_local_import": "Начат локальный импорт{{version}} ({{source}}): {{path}}",
"driver_manager.log.start_remove": "Начато удаление драйвера",
"driver_manager.message.directory_import_completed": "Импорт каталога завершен{{mode}}: успешно {{success}}{{skip}}",
"driver_manager.message.directory_import_completed_with_failure": "Импорт каталога завершен{{mode}}: успешно {{success}}, с ошибкой {{failed}}{{skip}}",
"driver_manager.message.directory_import_failed": "Импорт каталога не удался{{mode}}: с ошибкой {{failed}}{{skip}}",
"driver_manager.message.install_failed": "Не удалось установить {{name}}",
"driver_manager.message.install_failed_detail": "Не удалось установить {{name}}: {{detail}}",
"driver_manager.message.install_failed_fallback": "Не удалось установить {{name}}",
"driver_manager.message.install_start": "Начата установка",
"driver_manager.message.install_success": "{{name}}{{version}} установлен и включен",
"driver_manager.message.install_watchdog_timeout": "Установка {{name}} не завершилась за {{minutes}} мин. Фоновая задача, возможно, всё еще загружает или собирает файлы. Обновите статус позже; если это повторяется, проверьте прокси или импортируйте локальный пакет драйвера.",
"driver_manager.message.load_status_failed": "Не удалось загрузить состояние драйверов",
"driver_manager.message.load_status_failed_detail": "Не удалось загрузить состояние драйверов: {{detail}}",
"driver_manager.message.load_version_failed": "Не удалось загрузить список версий для {{name}}",
"driver_manager.message.load_version_failed_detail": "Не удалось загрузить список версий для {{name}}: {{detail}}",
"driver_manager.message.local_directory_required": "Выберите допустимый каталог пакета драйвера",
"driver_manager.message.local_file_required": "Выберите допустимый файл пакета драйвера",
"driver_manager.message.local_import_failed": "Не удалось импортировать локальный пакет драйвера для {{name}}",
"driver_manager.message.local_import_failed_detail": "Не удалось импортировать локальный пакет драйвера для {{name}}: {{detail}}",
"driver_manager.message.local_import_start": "Начат импорт локального пакета драйвера",
"driver_manager.message.local_import_success": "Локальный пакет драйвера для {{name}}{{version}} установлен и включен",
"driver_manager.message.local_path_required": "Выберите допустимый локальный источник импорта: {{source}}",
"driver_manager.message.network_check_completed": "Проверка сети для драйверов завершена",
"driver_manager.message.network_check_failed": "Проверка сети для драйверов не удалась",
"driver_manager.message.network_check_failed_detail": "Проверка сети для драйверов не удалась: {{detail}}",
"driver_manager.message.no_external_drivers_to_import": "Нет внешних драйверов для импорта",
"driver_manager.message.open_directory_failed": "Не удалось открыть каталог драйверов",
"driver_manager.message.open_directory_failed_detail": "Не удалось открыть каталог драйверов: {{detail}}",
"driver_manager.message.overwrite_suffix": " (с перезаписью установленных)",
"driver_manager.message.remove_failed": "Не удалось удалить {{name}}",
"driver_manager.message.remove_failed_detail": "Не удалось удалить {{name}}: {{detail}}",
"driver_manager.message.remove_success": "{{name}} удален",
"driver_manager.message.select_local_directory_failed": "Не удалось выбрать локальный каталог пакета драйвера",
"driver_manager.message.select_local_directory_failed_detail": "Не удалось выбрать локальный каталог пакета драйвера: {{detail}}",
"driver_manager.message.select_local_file_failed": "Не удалось выбрать локальный файл пакета драйвера",
"driver_manager.message.select_local_file_failed_detail": "Не удалось выбрать локальный файл пакета драйвера: {{detail}}",
"driver_manager.message.skip_suffix": ", {{items}}",
"driver_manager.message.skip.dedupe": "Пропущено дублей: {{count}}",
"driver_manager.message.skip.slim": "Пропущено slim-сборок: {{count}}",
"driver_manager.network.alert.download_chain_unreachable": "Важно: домены маршрута загрузки драйверов недоступны",
"driver_manager.network.alert.download_network_unreachable": "Важно: сеть загрузки драйверов недоступна",
"driver_manager.network.chain_alert.allow_hosts": "Если ошибка сохраняется, разрешите эти узлы в правилах прокси: {{hosts}}. Если правила изменить нельзя, рассмотрите включение режима TUN.",
"driver_manager.network.chain_alert.description": "Страницы GitHub могут открываться, но загрузка пакетов драйверов перенаправляется на домены ресурсов. Сначала включите глобальный прокси в верхнем пункте GoNavi «Прокси», указав локальный адрес и порт приложения прокси.",
"driver_manager.network.checking": "Проверяется сеть загрузки драйверов...",
"driver_manager.network.details_label": "Показать детали проверки сети",
"driver_manager.network.error_value": ", {{detail}}",
"driver_manager.network.github_latency": "Задержка подключения через прокси к GitHub: {{status}}{{latency}}{{detail}}",
"driver_manager.network.latency_value": ", {{latency}}ms",
"driver_manager.network.no_proxy_env": "Системные переменные окружения прокси не обнаружены.",
"driver_manager.network.no_result": "нет результата",
"driver_manager.network.not_checked": "Проверка сети еще не завершена",
"driver_manager.network.proxy_env_detected": "Обнаружены переменные окружения прокси: {{keys}}",
"driver_manager.network.reachable": "доступно",
"driver_manager.network.summary.download_chain_unreachable": "GitHub API доступен, но домены ресурсов для загрузки драйверов недоступны.",
"driver_manager.network.summary.proxy_recommended": "Некоторые точки загрузки драйверов недоступны. Перед установкой настройте прокси HTTP/HTTPS/SOCKS5.",
"driver_manager.network.summary.reachable": "Сеть загрузки драйверов доступна. Драйверы можно устанавливать напрямую.",
"driver_manager.network.summary.reachable_with_proxy": "Сеть загрузки драйверов доступна через настроенный прокси.",
"driver_manager.network.summary.unreachable": "Некоторые точки загрузки драйверов недоступны. Проверьте сеть и повторите попытку.",
"driver_manager.network.summary.unreachable_proxy_configured": "Некоторые точки загрузки драйверов недоступны. Проверьте, что настроенный прокси работает, и повторите попытку.",
"driver_manager.network.unreachable": "недоступно",
"driver_manager.option.force_overwrite_installed": "Перезаписывать установленные",
"driver_manager.package_size.built_in": "Встроенный",
"driver_manager.package_size.pending_release": "Ожидает публикации",
"driver_manager.progress.agent_install_done": "Установка агента драйвера {{name}} завершена",
"driver_manager.progress.agent_install_start": "Начата установка агента драйвера {{name}}",
"driver_manager.progress.backend_detail": "Деталь backend: {{detail}}",
"driver_manager.progress.backend_empty": "Backend не вернул деталей прогресса",
"driver_manager.progress.dev_build_fallback": "Предварительно собранный пакет не найден; пробуем локальную сборку для разработки",
"driver_manager.progress.download_bundle": "Загрузка комплекта драйвера {{name}}",
"driver_manager.progress.download_prebuilt_agent": "Загрузка предварительно собранного агента драйвера {{name}}",
"driver_manager.progress.download_prebuilt_package": "Загрузка предварительно собранного пакета драйвера {{name}}",
"driver_manager.progress.extract_agent_from_bundle": "Извлечение агента {{name}} из комплекта драйверов",
"driver_manager.progress.fallback.bundle_available": "Прямая ссылка недоступна; переключаемся на комплект драйверов ({{name}}, осталось источников: {{bundle}})",
"driver_manager.progress.fallback.direct_to_bundle": "Прямые ссылки на готовую сборку не подошли; переключаемся на комплект драйверов ({{name}}, осталось источников: {{bundle}})",
"driver_manager.progress.fallback.explicit_skip_bundle": "Прямые ссылки на готовую сборку не подошли; разрешены только явные ресурсы, комплект драйверов пропускается ({{name}})",
"driver_manager.progress.fallback.source_build": "Ресурсы выпуска не подошли; готовится резервная локальная сборка из исходников ({{name}})",
"driver_manager.progress.install_start": "Начата установка",
"driver_manager.progress.local_package_done": "Импорт локального пакета драйвера завершен",
"driver_manager.progress.local_package_start": "Начата установка локального пакета драйвера",
"driver_manager.progress.metadata_write": "Запись метаданных драйвера",
"driver_manager.progress.plan.bundle_only": "Подготовка установки агента драйвера {{name}} (версия {{version}}); прямые ссылки на готовую сборку не указаны, пробуем {{bundle}} источников комплектов драйверов",
"driver_manager.progress.plan.direct_only": "Подготовка установки агента драйвера {{name}} (версия {{version}}); пробуем {{direct}} прямых ссылок на готовую сборку",
"driver_manager.progress.plan.direct_then_bundle": "Подготовка установки агента драйвера {{name}} (версия {{version}}); сначала {{direct}} прямых ссылок на готовую сборку, затем {{bundle}} источников комплектов драйверов",
"driver_manager.progress.plan.explicit_direct": "Подготовка установки агента драйвера {{name}} (версия {{version}}); только явные ресурсы версии, пробуем {{direct}} прямых ссылок на готовую сборку",
"driver_manager.progress.plan.require_source_first": "Подготовка установки агента драйвера {{name}} (версия {{version}}); dev-сборка использует только локальную сборку из исходников и не переходит к пакетам релиза",
"driver_manager.progress.plan.source_fallback": "Подготовка установки агента драйвера {{name}} (версия {{version}}); если ресурсы выпуска не совпадут, будет локальная сборка из исходников",
"driver_manager.progress.plan.source_first": "Подготовка установки агента драйвера {{name}} (версия {{version}}); сначала локальная сборка из исходников, затем резервная загрузка",
"driver_manager.progress.plan.source_only": "Подготовка установки агента драйвера {{name}} (версия {{version}}); эта версия разрешает только локальную сборку из исходников",
"driver_manager.progress.pure_go_enabled": "Установка завершена; чистый Go-драйвер включен",
"driver_manager.progress.source_build_preferred": "Сначала используется локальная сборка из исходников для агента драйвера {{name}}",
"driver_manager.progress.status.done": "ГОТОВО",
"driver_manager.progress.status.downloading": "ЗАГРУЗКА",
"driver_manager.progress.status.error": "ОШИБКА",
"driver_manager.progress.status.start": "СТАРТ",
"driver_manager.progress.status.unknown": "НЕИЗВЕСТНО",
"driver_manager.progress.unzip_agent": "Распаковка агента драйвера {{name}}",
"driver_manager.progress.wait_bundle": "Ожидание завершения загрузки комплекта драйвера {{name}}",
"driver_manager.punctuation.list_separator": ", ",
"driver_manager.search.built_in": "встроенный",
"driver_manager.search.external": "внешний",
"driver_manager.search.placeholder": "Поиск по имени или типу драйвера, например DuckDB или clickhouse",
"driver_manager.status.built_in_available": "Встроенный доступен",
"driver_manager.status.calculating": "Вычисляется...",
"driver_manager.status.disabled": "Не включен",
"driver_manager.status.enabled": "Включен",
"driver_manager.status.full_required": "Требуется Full-версия",
"driver_manager.status.installed": "Установлен",
"driver_manager.status.installing_percent": "Установка {{percent}}%",
"driver_manager.title": "Управление драйверами",
"driver_manager.version.current_fallback": "текущая версия",
"driver_manager.version.default": "Версия по умолчанию",
"driver_manager.version.group.other": "Другое",
"driver_manager.version.group.year": "{{year}} год",
"driver_manager.version.inline_suffix": " (версия {{version}})",
"driver_manager.version.installed": "Установлено{{suffix}}",
"driver_manager.version.installed_locked": "Установлено (удалите, чтобы изменить)",
"driver_manager.version.installed_locked_with_version": "{{version}} (установлена; удалите, чтобы изменить)",
"driver_manager.version.installed_with_version": "{{version}} (установлена{{suffix}})",
"driver_manager.version.latest_suffix": " (последняя)",
"driver_manager.version.mongodb_hint": "Сейчас поддерживаются только MongoDB 1.17.x и 2.x. Более старые версии 1.x недоступны для установки.",
"driver_manager.version.needs_reinstall_suffix": ", требуется переустановка",
"driver_manager.version.placeholder.load_on_expand": "Разверните, чтобы загрузить версии",
"driver_manager.version.placeholder.select": "Выберите версию драйвера",
"driver_manager.version.recommended_suffix": " (рекомендуемая)",
"driver_manager.version.switch_pending": "Сейчас установлена {{installedVersion}}; выбрана {{targetVersion}}. Нажмите «Переключить версию», чтобы применить.",
"driver_manager.version.target_fallback": "целевая версия",
"driver_manager.version.unlabeled": "Версия не указана",
"driver.guidance.customConnectionDriverHelp": "Поддерживаются: mysql, starrocks, oceanbase, postgres, opengauss, sqlite, oracle, dm, kingbase; псевдонимы: postgresql/pgx, open_gauss/open-gauss, dm8, kingbase8/kingbasees/kingbasev8. Укажите имя драйвера Go database/sql, уже зарегистрированного в GoNavi. Не вводите напрямую имя системного драйвера ODBC/JDBC и не импортируйте JDBC Jar.",
"file.backend.dialog.export_connections": "Экспорт подключений",
"file.backend.dialog.export_data": "Экспорт данных",
"file.backend.dialog.export_database_sql": "Экспорт {{database}} (SQL)",
"file.backend.dialog.export_query_result": "Экспорт результата запроса",
"file.backend.dialog.export_table": "Экспорт {{table}}",
"file.backend.dialog.export_tables_sql": "Экспорт таблиц (SQL)",
"file.backend.dialog.import_data": "Импорт в {{table}}",
"file.backend.dialog.select_batch_export_directory": "Выберите каталог для пакетного экспорта",
"file.backend.dialog.select_ca_server_certificate_file": "Выберите файл сертификата CA/сервера",
"file.backend.dialog.select_client_certificate_file": "Выберите файл клиентского сертификата",
"file.backend.dialog.select_client_private_key_file": "Выберите файл клиентского приватного ключа",
"file.backend.dialog.select_config_file": "Выберите файл конфигурации",
"file.backend.dialog.select_database_file": "Выберите файл базы данных",
"file.backend.dialog.select_duckdb_file": "Выберите файл данных DuckDB",
"file.backend.dialog.select_sql_directory": "Выберите каталог SQL",
"file.backend.dialog.select_sql_file": "Выберите SQL-файл",
"file.backend.dialog.select_sqlite_file": "Выберите файл данных SQLite",
"file.backend.dialog.select_ssh_key_file": "Выберите файл приватного ключа SSH",
"file.backend.dialog.select_tls_certificate_file": "Выберите файл сертификата TLS",
"file.backend.error.app_log_file_not_found": "Файл журнала GoNavi не найден",
"file.backend.error.batch_commit_unsupported": "Текущий тип базы данных не поддерживает пакетный commit",
"file.backend.error.connection_export_file_too_large": "Файл экспорта подключений слишком большой",
"file.backend.error.connection_import_file_too_large": "Файл импорта подключений слишком большой",
"file.backend.error.connection_package_decrypt_failed": "Пароль файла неверен или файл поврежден",
"file.backend.error.connection_package_password_required": "Пароль пакета восстановления не может быть пустым",
"file.backend.error.connection_package_payload_too_large": "Содержимое пакета подключений слишком большое",
"file.backend.error.connection_package_unsupported": "Неподдерживаемый формат пакета восстановления подключений",
"file.backend.error.create_directory_failed": "Не удалось создать каталог: {{detail}}",
"file.backend.error.create_sql_file_failed": "Не удалось создать SQL-файл: {{detail}}",
"file.backend.error.database_name_required": "Имя базы данных не может быть пустым",
"file.backend.error.delete_sql_directory_failed": "Не удалось удалить каталог: {{detail}} (можно удалять только пустые каталоги)",
"file.backend.error.delete_sql_file_failed": "Не удалось удалить SQL-файл: {{detail}}",
"file.backend.error.directory_exists": "Каталог уже существует",
"file.backend.error.directory_name_no_separator": "Имя каталога не может содержать разделители пути",
"file.backend.error.directory_name_required": "Имя каталога не может быть пустым",
"file.backend.error.directory_path_required": "Путь к каталогу не может быть пустым",
"file.backend.error.export_driver_agent_streaming_required": "Для экспорта требуется актуальный потоковый протокол driver-agent для {{driver}}. Чтобы избежать отката к буферизованному режиму с высоким потреблением памяти при больших результатах, переустановите его в управлении драйверами и повторите попытку: {{detail}}",
"file.backend.error.export_unsupported_format": "Неподдерживаемый формат экспорта: {{format}}",
"file.backend.error.file_path_empty": "Путь к файлу пуст",
"file.backend.error.file_path_required": "Путь к файлу не может быть пустым",
"file.backend.error.import_csv_empty_or_missing_header": "CSV пуст или отсутствует строка заголовка",
"file.backend.error.import_csv_open_failed": "Не удалось открыть CSV: {{detail}}",
"file.backend.error.import_csv_read_failed": "Не удалось прочитать CSV: {{detail}}",
"file.backend.error.import_excel_empty_or_missing_header": "Excel пуст или отсутствует строка заголовка",
"file.backend.error.import_excel_no_sheets": "В файле Excel нет листов",
"file.backend.error.import_excel_parse_failed": "Не удалось разобрать Excel: {{detail}}",
"file.backend.error.import_excel_read_failed": "Не удалось прочитать Excel: {{detail}}",
"file.backend.error.import_file_empty": "Путь к файлу не может быть пустым",
"file.backend.error.import_json_parse_failed": "Не удалось разобрать JSON: {{detail}}",
"file.backend.error.import_json_root_not_array": "Корень JSON должен быть массивом",
"file.backend.error.import_unsupported_format": "Неподдерживаемый формат файла",
"file.backend.error.invalid_export_mode": "Недопустимый режим экспорта",
"file.backend.error.mysql_workbench_no_connections": "В XML не найдены допустимые конфигурации подключений",
"file.backend.error.mysql_workbench_parse_failed": "Не удалось разобрать XML MySQL Workbench: {{detail}}",
"file.backend.error.navicat_connection_password_parse_failed": "Не удалось разобрать пароль для подключения {{name}}",
"file.backend.error.navicat_connection_proxy_password_parse_failed": "Не удалось разобрать пароль прокси для подключения {{name}}",
"file.backend.error.navicat_connection_ssh_password_parse_failed": "Не удалось разобрать SSH-пароль для подключения {{name}}",
"file.backend.error.navicat_ncx_no_connections": "В Navicat NCX не найдены допустимые конфигурации подключений, поддерживаемые GoNavi",
"file.backend.error.navicat_ncx_parse_failed": "Не удалось разобрать Navicat NCX",
"file.backend.error.navicat_secret_decrypt_failed": "Не удалось расшифровать пароль Navicat",
"file.backend.error.open_file_failed": "Не удалось открыть файл: {{detail}}",
"file.backend.error.query_required": "Запрос не может быть пустым",
"file.backend.error.read_directory_info_failed": "Не удалось прочитать информацию о каталоге: {{detail}}",
"file.backend.error.read_file_error_summary": "Ошибка чтения файла: {{detail}}. Выполнено: {{count}}.",
"file.backend.error.read_file_info_failed": "Не удалось прочитать информацию о файле: {{detail}}",
"file.backend.error.read_target_directory_info_failed": "Не удалось прочитать информацию о целевом каталоге: {{detail}}",
"file.backend.error.read_target_file_info_failed": "Не удалось прочитать информацию о целевом файле: {{detail}}",
"file.backend.error.rename_directory_failed": "Не удалось переименовать каталог: {{detail}}",
"file.backend.error.rename_sql_file_failed": "Не удалось переименовать SQL-файл: {{detail}}",
"file.backend.error.schema_export_no_objects": "В схеме {{schema}} не найдены таблицы или представления для экспорта",
"file.backend.error.schema_name_required": "Имя схемы не может быть пустым",
"file.backend.error.select_with_query_required": "Поддерживается экспорт только SELECT/WITH-запросов",
"file.backend.error.selected_path_not_directory": "Выбранный путь не является каталогом",
"file.backend.error.selected_path_not_sql_file": "Выбранный путь не является SQL-файлом",
"file.backend.error.sql_file_batch_execution_failed": "Ошибка пакетного выполнения, начиная с инструкции {{index}}: {{detail}}",
"file.backend.error.sql_file_batch_rollback_failed": "Ошибка пакетного выполнения: {{detail}}; ошибка отката: {{rollbackDetail}}",
"file.backend.error.sql_file_exists": "SQL-файл уже существует",
"file.backend.error.sql_file_extension_required": "Поддерживаются только SQL-файлы",
"file.backend.error.sql_file_name_no_separator": "Имя SQL-файла не может содержать разделители пути",
"file.backend.error.sql_file_name_required": "Имя SQL-файла не может быть пустым",
"file.backend.error.sql_file_statement_execution_failed": "Ошибка выполнения инструкции {{index}}: {{detail}}",
"file.backend.error.table_data_batch_limit": "За один раз можно обработать не более {{max}} таблиц; сейчас выбрано {{count}}",
"file.backend.error.table_data_clear_failed": "Не удалось очистить {{table}}: {{detail}}",
"file.backend.error.table_data_clear_failed_partial": "Не удалось очистить {{table}}: {{detail}}. Предупреждение: первые {{count}} таблиц уже очищены, их нельзя восстановить",
"file.backend.error.table_data_mode_unsupported": "Неподдерживаемый режим очистки данных таблицы: {{mode}}",
"file.backend.error.table_data_no_tables": "Таблицы не выбраны",
"file.backend.error.table_data_truncate_failed": "Не удалось выполнить TRUNCATE для {{table}}: {{detail}}",
"file.backend.error.table_data_truncate_failed_partial": "Не удалось выполнить TRUNCATE для {{table}}: {{detail}}. Предупреждение: для первых {{count}} таблиц уже выполнен TRUNCATE, их нельзя восстановить",
"file.backend.error.table_data_truncate_unsupported": "Текущий тип базы данных {{type}} не поддерживает TRUNCATE для таблиц. Используйте очистку",
"file.backend.error.target_directory_exists": "Целевой каталог уже существует",
"file.backend.error.target_sql_file_exists": "Целевой SQL-файл уже существует",
"file.backend.error.task_not_found": "Задача не найдена",
"file.backend.error.write_failed": "Ошибка записи: {{detail}}",
"file.backend.filter.all_files": "Все файлы",
"file.backend.filter.all_files_pattern": "Все файлы (*.*)",
"file.backend.filter.certificate_files": "Файлы сертификатов",
"file.backend.filter.connection_package": "Пакет подключений GoNavi (*.gonavi-conn)",
"file.backend.filter.data_files": "Файлы данных",
"file.backend.filter.database_files": "Файлы баз данных",
"file.backend.filter.duckdb_files": "Файлы DuckDB",
"file.backend.filter.json_files": "Файлы JSON (*.json)",
"file.backend.filter.mysql_workbench_connections": "Подключения MySQL Workbench (*.xml)",
"file.backend.filter.private_key_files": "Файлы приватных ключей",
"file.backend.filter.sql_files": "Файлы SQL (*.sql)",
"file.backend.filter.sqlite_files": "Файлы SQLite",
"file.backend.html_export.document_title": "Экспорт данных GoNavi",
"file.backend.html_export.empty_rows": "(0 строк)",
"file.backend.html_export.heading": "Экспорт данных GoNavi",
"file.backend.html_export.meta": "Строк: {{rowCount}} · Столбцов: {{columnCount}} · Создано: {{generatedAt}}",
"file.backend.message.cancel_requested": "Запрос на отмену отправлен",
"file.backend.message.execution_cancelled": "Выполнение отменено. Выполнено: {{executed}}, ошибок: {{failed}}, длительность: {{duration}}.",
"file.backend.message.execution_completed": "Выполнение завершено. Успешно: {{success}}, ошибок: {{failed}}, длительность: {{duration}}.",
"file.backend.message.execution_error_detail_header": "Сведения об ошибках (первые {{count}}):",
"file.backend.message.execution_more_errors": "...еще {{count}} ошибок не показано",
"file.backend.message.export_completed": "Экспорт завершен",
"file.backend.message.import_no_data": "Нет данных для импорта",
"file.backend.message.import_row_failed": "Ошибка импорта строки {{index}}: {{detail}}",
"file.backend.message.import_summary": "Импортировано: {{imported}}, ошибок: {{failed}}",
"file.backend.message.statement_failed": "Ошибка выполнения инструкции {{index}}: {{detail}}\n SQL: {{sql}}",
"file.backend.message.table_data_clear_succeeded": "Очистка выполнена успешно",
"file.backend.message.table_data_truncate_succeeded": "TRUNCATE выполнен успешно",
"file.backend.message.transaction_committed": "Транзакция успешно закоммичена",
"file.backend.message.user_cancelled": "Пользователь отменил выполнение",
"file.backend.sql_dump.database": "База данных: {{database}}",
"file.backend.sql_dump.empty_rows": "(0 строк)",
"file.backend.sql_dump.generated_at": "Создано: {{generatedAt}}",
"file.backend.sql_dump.table": "Таблица: {{objectName}}",
"file.backend.sql_dump.title": "Экспорт GoNavi SQL",
"file.backend.sql_dump.view": "Представление: {{objectName}}",
"file.backend.sql_dump.view_data_skipped": "Экспорт данных представления пропущен (INSERT для представлений не выводится).",
"find_in_database.column.action": "Действия",
"find_in_database.column.match_count": "Строк с совпадениями",
"find_in_database.column.matched_columns": "Совпавшие столбцы",
"find_in_database.column.table_name": "Таблица",
"find_in_database.detail.row_count": "{{count}} строк",
"find_in_database.detail.title": "{{table}} - подробности строк с совпадениями",
"find_in_database.match.contains": "Содержит",
"find_in_database.match.exact": "Точное совпадение",
"find_in_database.message.connection_config_not_found": "Конфигурация подключения не найдена",
"find_in_database.message.get_tables_failed": "Не удалось получить список таблиц: {{detail}}",
"find_in_database.message.keyword_required": "Введите ключевое слово для поиска",
"find_in_database.message.no_matches": "Совпадающие данные не найдены",
"find_in_database.message.no_tables": "В текущей базе данных нет таблиц",
"find_in_database.message.search_failed": "Ошибка поиска: {{detail}}",
"find_in_database.placeholder.keyword": "Введите строку для поиска...",
"find_in_database.progress.searching_table": "Поиск в {{table}}... ({{current}}/{{total}})",
"find_in_database.summary.found_tables": "Найдено таблиц с совпадающими данными: {{count}}",
"find_in_database.summary.searching": " (поиск продолжается...)",
"find_in_database.title": "Поиск в базе данных - {{dbName}}",
"find_in_database.tooltip.collapse_details": "Свернуть подробности",
"find_in_database.tooltip.view_details": "Показать подробности",
"import_preview.action.start": "Начать импорт",
"import_preview.error.connection_config_not_found": "Конфигурация подключения не найдена",
"import_preview.error.import_failed": "Не удалось выполнить импорт",
"import_preview.error.import_failed_detail": "Не удалось выполнить импорт: {{detail}}",
"import_preview.error.preview_failed": "Не удалось выполнить предпросмотр",
"import_preview.error.preview_failed_detail": "Не удалось выполнить предпросмотр: {{detail}}",
"import_preview.preview.description": "Ниже показаны первые 5 строк. Начните импорт после проверки данных.",
"import_preview.preview.field_list": "Список полей:",
"import_preview.preview.summary": "{{rows}} строк и {{columns}} полей",
"import_preview.preview.table_title": "Предпросмотр данных (первые 5 строк):",
"import_preview.progress.error_count": "Ошибок {{count}}",
"import_preview.progress.processed_rows": "Обработано {{current}} / {{total}} строк",
"import_preview.progress.success_count": "Успешно {{count}}",
"import_preview.result.completed": "Импорт завершен",
"import_preview.result.error_logs": "Журнал ошибок:",
"import_preview.result.failed_rows": "Строк с ошибками: {{count}}",
"import_preview.result.success_rows": "Успешно импортировано строк: {{count}}",
"import_preview.status.importing": "Импорт данных...",
"import_preview.status.loading_preview": "Загрузка данных предпросмотра...",
"import_preview.title": "Предпросмотр импорта данных",
"jvm_ai_plan.actions.description": ": {{description}}",
"jvm_ai_plan.actions.field_separator": ", ",
"jvm_ai_plan.actions.label": " ({{label}})",
"jvm_ai_plan.actions.none": "Текущий ресурс не объявляет поддерживаемые действия. Если вы создаете план, указывайте action только когда его можно явно вывести из снимка, и оставляйте payload JSON-объектом.",
"jvm_ai_plan.actions.payload_fields": "; поля payload: {{fields}}",
"jvm_ai_plan.actions.required_suffix": "(required)",
"jvm_ai_plan.error.action_missing": "В плане AI отсутствует исполняемое action.",
"jvm_ai_plan.error.payload_json_object_required": "Текущий предварительный просмотр JVM требует, чтобы payload оставался JSON-объектом.",
"jvm_ai_plan.error.reason_missing": "В плане AI отсутствует причина изменения.",
"jvm_ai_plan.error.resource_locator_missing": "В плане AI отсутствует пригодная информация для поиска ресурса.",
"jvm_ai_plan.prompt.connection_name": "Имя подключения: {{connectionName}}",
"jvm_ai_plan.prompt.connection_policy": "Политика подключения: {{policy}}",
"jvm_ai_plan.prompt.connection_policy.read_only": "Подключение только для чтения. Можно создать только план и анализ рисков; нельзя предполагать, что выполнение уже произошло.",
"jvm_ai_plan.prompt.connection_policy.writable": "Подключение доступно для записи, но изменение все равно сначала должно быть просмотрено и подтверждено вручную.",
"jvm_ai_plan.prompt.environment": "Среда: {{environmentLabel}}",
"jvm_ai_plan.prompt.environment_unknown": "unknown",
"jvm_ai_plan.prompt.example_reason": "Исправить грязное значение кэша",
"jvm_ai_plan.prompt.example_title": "Пример JSON:",
"jvm_ai_plan.prompt.intro": "Проанализируйте следующий ресурс JVM и создайте структурированный план изменения для GoNavi \"Предварительный просмотр изменения\".",
"jvm_ai_plan.prompt.output_requirements_title": "Требования к выводу:",
"jvm_ai_plan.prompt.provider_mode": "Режим Provider: {{providerMode}}",
"jvm_ai_plan.prompt.requirement.action": "4. Предпочитайте выбирать action из \"Поддерживаемые действия для текущего ресурса\"; выводите его из снимка только если поддерживаемые действия не объявлены.",
"jvm_ai_plan.prompt.requirement.fields": "2. Поля JSON внутри блока кода должны быть строго такими: targetType, selector, action, payload, reason.",
"jvm_ai_plan.prompt.requirement.no_execute": "6. Не утверждайте, что изменение уже выполнено, и не выводите скрипты или команды.",
"jvm_ai_plan.prompt.requirement.payload": "5. payload должен быть обернут как JSON-объект. Не выводите скрипты, команды или сырые двоичные данные. Если нужно текстовое значение, оберните его как {\"format\":\"text\",\"value\":\"...\"}.",
"jvm_ai_plan.prompt.requirement.resource_path": "3. Предпочитайте selector.resourcePath с текущим путем ресурса {{resourcePath}}. Не придумывайте другой путь.",
"jvm_ai_plan.prompt.requirement.single_json_block": "1. Сначала можно добавить короткий анализ, но ответ должен содержать ровно один блок кода ```json.",
"jvm_ai_plan.prompt.resource_path": "Текущий путь ресурса: {{resourcePath}}",
"jvm_ai_plan.prompt.resource_path_missing": "(путь ресурса не указан)",
"jvm_ai_plan.prompt.snapshot_title": "Текущий снимок ресурса:",
"jvm_ai_plan.prompt.supported_actions_title": "Поддерживаемые действия для текущего ресурса:",
"jvm_ai_plan.prompt.target_host": "Целевой хост: {{host}}",
"jvm_ai_plan.snapshot.unavailable": "Текущий снимок ресурса еще не был успешно загружен.",
"jvm_audit.action.refresh": "Обновить",
"jvm_audit.card.records": "Записи аудита",
"jvm_audit.column.action": "Действие",
"jvm_audit.column.mode": "Режим",
"jvm_audit.column.reason": "Причина",
"jvm_audit.column.resource": "Ресурс",
"jvm_audit.column.result": "Результат",
"jvm_audit.column.source": "Источник",
"jvm_audit.column.time": "Время",
"jvm_audit.description.current_range": "Текущий диапазон: последние {{limit}} записей",
"jvm_audit.empty.load_failed": "Записи аудита сейчас недоступны",
"jvm_audit.empty.no_records": "Нет записей аудита",
"jvm_audit.error.backend_unavailable": "Метод бэкенда JVMListAuditRecords недоступен.",
"jvm_audit.error.connection_missing": "Подключение не существует или было удалено.",
"jvm_audit.error.load_failed": "Не удалось загрузить записи аудита JVM{{separator}}{{detail}}",
"jvm_audit.eyebrow": "Аудит JVM",
"jvm_audit.option.last_records": "Последние {{limit}} записей",
"jvm_audit.source.ai_plan": "С помощью AI",
"jvm_audit.source.manual": "Вручную",
"jvm_audit.title": "Аудит изменений JVM",
"jvm_change_preview_modal.action.close": "Закрыть",
"jvm_change_preview_modal.action.confirm_execute": "Подтвердить выполнение",
"jvm_change_preview_modal.blocking.alert_message": "Текущее изменение нельзя выполнить",
"jvm_change_preview_modal.blocking.label": "Причина блокировки",
"jvm_change_preview_modal.field.format": "Формат",
"jvm_change_preview_modal.field.resource_id": "ID ресурса",
"jvm_change_preview_modal.field.version": "Версия",
"jvm_change_preview_modal.permission.allowed": "Выполнение разрешено",
"jvm_change_preview_modal.permission.forbidden": "Выполнение запрещено",
"jvm_change_preview_modal.permission.requires_confirmation": "Требуется подтверждение",
"jvm_change_preview_modal.risk.high": "Высокий",
"jvm_change_preview_modal.risk.label": "Риск: {{level}}",
"jvm_change_preview_modal.risk.low": "Низкий",
"jvm_change_preview_modal.risk.medium": "Средний",
"jvm_change_preview_modal.risk.unknown": "Неизвестно",
"jvm_change_preview_modal.section.after": "После изменения",
"jvm_change_preview_modal.section.before": "До изменения",
"jvm_change_preview_modal.section.summary": "Сводка изменения",
"jvm_change_preview_modal.status.generated": "Предпросмотр создан",
"jvm_change_preview_modal.status.no_preview": "Нет результата предпросмотра",
"jvm_change_preview_modal.title": "Предпросмотр изменения JVM",
"jvm_diagnostic.ai_plan.default_reason": "Диагностический AI-план: {{intent}}",
"jvm_diagnostic.ai_plan.error.transport_mismatch": "Диагностический transport в AI-плане: {{planTransport}}, он не совпадает с текущей консолью {{currentTransport}}. Перед применением создайте план заново.",
"jvm_diagnostic.ai_plan.message.filled": "Диагностический AI-план перенесен в консоль",
"jvm_diagnostic.capability_result.mutating_allowed": "Команды высокого риска",
"jvm_diagnostic.capability_result.observe_allowed": "Команды Observe",
"jvm_diagnostic.capability_result.observe_denied": "Observe запрещен",
"jvm_diagnostic.capability_result.session_allowed": "Сеансы доступны",
"jvm_diagnostic.capability_result.session_denied": "Сеансы недоступны",
"jvm_diagnostic.capability_result.streaming_supported": "Потоковый вывод",
"jvm_diagnostic.capability_result.streaming_unsupported": "Потоковая передача не поддерживается",
"jvm_diagnostic.capability_result.title": "Результаты проверки возможностей",
"jvm_diagnostic.capability_result.trace_allowed": "Команды Trace",
"jvm_diagnostic.capability.empty.description": "Проверка возможностей только считывает права канала и политику команд. Она не создает сеанс и не выполняет команды.",
"jvm_diagnostic.capability.empty.title": "Возможности еще не проверены",
"jvm_diagnostic.command_input.command_description": "Введите команду Arthas/диагностики, например thread -n 5, dashboard или jvm; шаблоны ниже заполняют ее одним щелчком.",
"jvm_diagnostic.command_input.command_label": "Диагностическая команда",
"jvm_diagnostic.command_input.description": "Поддерживает автодополнение. Нажмите Ctrl/Cmd + Enter для запуска.",
"jvm_diagnostic.command_input.reason_help": "Используется для записей аудита и контекста AI. Не отправляется в целевую JVM как команда Arthas.",
"jvm_diagnostic.command_input.reason_label": "Причина (необязательно)",
"jvm_diagnostic.command_input.reason_placeholder": "Например: исследовать высокую нагрузку CPU, подтвердить блокировку потоков или найти медленный метод",
"jvm_diagnostic.command_input.title": "Ввод команды",
"jvm_diagnostic.command_templates.title": "Шаблоны команд",
"jvm_diagnostic.completion.argument.classloader.hash.documentation": "Показывает детали указанного загрузчика классов.",
"jvm_diagnostic.completion.argument.classloader.hash.label": "Указанный Hash загрузчика классов",
"jvm_diagnostic.completion.argument.classloader.tree.documentation": "Выводит дерево загрузчиков классов.",
"jvm_diagnostic.completion.argument.classloader.tree.label": "Древовидный вид (-t)",
"jvm_diagnostic.completion.argument.classloader.url_stat.documentation": "Показывает статистику URL загрузчиков классов.",
"jvm_diagnostic.completion.argument.classloader.url_stat.label": "Вся статистика URL (--url-stat)",
"jvm_diagnostic.completion.argument.command_template.label": "шаблон {{command}}",
"jvm_diagnostic.completion.argument.dashboard.direct.documentation": "Показывает текущую сводку времени выполнения JVM.",
"jvm_diagnostic.completion.argument.dashboard.direct.label": "dashboard",
"jvm_diagnostic.completion.argument.detail_mode_d.label": "Подробный режим (-d)",
"jvm_diagnostic.completion.argument.jad.template.documentation": "Декомпилирует указанный класс.",
"jvm_diagnostic.completion.argument.jad.template.label": "Шаблон декомпиляции",
"jvm_diagnostic.completion.argument.jvm.direct.documentation": "Показывает память JVM, потоки, загрузку классов, GC и аргументы запуска.",
"jvm_diagnostic.completion.argument.jvm.direct.label": "jvm",
"jvm_diagnostic.completion.argument.monitor.template.documentation": "Собирает статистику вызовов методов с интервалом.",
"jvm_diagnostic.completion.argument.ognl.template.documentation": "Выполняет выражение OGNL; команды высокого риска по умолчанию ограничены политикой.",
"jvm_diagnostic.completion.argument.redefine.template.documentation": "Переопределяет путь к файлу байткода класса.",
"jvm_diagnostic.completion.argument.retransform.template.documentation": "Повторно преобразует указанный класс.",
"jvm_diagnostic.completion.argument.sc.class_pattern.documentation": "Ищет по шаблону имени класса.",
"jvm_diagnostic.completion.argument.sc.class_pattern.label": "Шаблон класса",
"jvm_diagnostic.completion.argument.sc.detail.documentation": "Выводит подробную информацию о классе.",
"jvm_diagnostic.completion.argument.sm.detail.documentation": "Выводит подробные сигнатуры методов.",
"jvm_diagnostic.completion.argument.sm.method_signature.documentation": "Показывает сигнатуры методов класса.",
"jvm_diagnostic.completion.argument.sm.method_signature.label": "Шаблон сигнатуры метода",
"jvm_diagnostic.completion.argument.stack.template.documentation": "Выводит стеки вызовов методов.",
"jvm_diagnostic.completion.argument.stop.direct.documentation": "Останавливает текущую фоновую задачу.",
"jvm_diagnostic.completion.argument.stop.direct.label": "stop",
"jvm_diagnostic.completion.argument.sysenv.variable.documentation": "Читает указанную переменную окружения.",
"jvm_diagnostic.completion.argument.sysenv.variable.label": "Показать переменную окружения",
"jvm_diagnostic.completion.argument.sysprop.property.documentation": "Читает указанное системное свойство.",
"jvm_diagnostic.completion.argument.sysprop.property.label": "Показать свойство",
"jvm_diagnostic.completion.argument.thread.blocking.documentation": "Находит потоки, которые сейчас блокируют другие потоки.",
"jvm_diagnostic.completion.argument.thread.blocking.label": "Заблокированные потоки (-b)",
"jvm_diagnostic.completion.argument.thread.busy_top.documentation": "Показывает N потоков с наибольшей нагрузкой CPU.",
"jvm_diagnostic.completion.argument.thread.busy_top.label": "Загруженные потоки TOP N (-n)",
"jvm_diagnostic.completion.argument.thread.thread_id.documentation": "Показывает подробную информацию о стеке указанного потока.",
"jvm_diagnostic.completion.argument.thread.thread_id.label": "Указанный ID потока",
"jvm_diagnostic.completion.argument.trace.condition.documentation": "Добавляет выражение условия trace.",
"jvm_diagnostic.completion.argument.trace.condition.label": "Фильтр условия '#cost > 100'",
"jvm_diagnostic.completion.argument.trace.template.documentation": "Трассирует цепочки медленных вызовов методов.",
"jvm_diagnostic.completion.argument.tt.list.documentation": "Показывает текущий список записей.",
"jvm_diagnostic.completion.argument.tt.list.label": "Показать список записей (-l)",
"jvm_diagnostic.completion.argument.tt.record.documentation": "Записывает вызовы указанного метода.",
"jvm_diagnostic.completion.argument.tt.record.label": "шаблон записи tt",
"jvm_diagnostic.completion.argument.tt.replay.documentation": "Показывает детали указанной записи.",
"jvm_diagnostic.completion.argument.tt.replay.label": "Воспроизвести запись (-i)",
"jvm_diagnostic.completion.argument.vmtool.get_instances.documentation": "Получает экземпляры указанного класса; команды высокого риска по умолчанию ограничены политикой.",
"jvm_diagnostic.completion.argument.vmtool.get_instances.label": "vmtool getInstances",
"jvm_diagnostic.completion.argument.watch.expand_depth.documentation": "Задает глубину раскрытия объекта.",
"jvm_diagnostic.completion.argument.watch.expand_depth.label": "Глубина раскрытия -x 2",
"jvm_diagnostic.completion.argument.watch.template.documentation": "Наблюдает параметры, возвращаемые значения или исключения.",
"jvm_diagnostic.completion.category.control": "команда управления",
"jvm_diagnostic.completion.category.mutating": "команда высокого риска",
"jvm_diagnostic.completion.category.observe": "команда наблюдения",
"jvm_diagnostic.completion.category.trace": "команда трассировки",
"jvm_diagnostic.completion.command.classloader.documentation": "Показывает информацию о загрузчиках классов.",
"jvm_diagnostic.completion.command.dashboard.documentation": "Показывает сводку времени выполнения JVM.",
"jvm_diagnostic.completion.command.jad.documentation": "Декомпилирует указанный класс.",
"jvm_diagnostic.completion.command.jvm.documentation": "Показывает память JVM, потоки, загрузку классов, GC и аргументы запуска.",
"jvm_diagnostic.completion.command.monitor.documentation": "Периодически собирает статистику вызовов методов.",
"jvm_diagnostic.completion.command.ognl.documentation": "Выполняет выражение OGNL; по умолчанию требуется дополнительная авторизация.",
"jvm_diagnostic.completion.command.redefine.documentation": "Переопределяет байткод класса.",
"jvm_diagnostic.completion.command.retransform.documentation": "Повторно запускает преобразование класса.",
"jvm_diagnostic.completion.command.sc.documentation": "Ищет подходящую информацию о классах.",
"jvm_diagnostic.completion.command.sm.documentation": "Показывает сигнатуры методов класса.",
"jvm_diagnostic.completion.command.stack.documentation": "Выводит стеки вызовов методов.",
"jvm_diagnostic.completion.command.stop.documentation": "Останавливает текущую фоновую задачу.",
"jvm_diagnostic.completion.command.sysenv.documentation": "Показывает переменные окружения.",
"jvm_diagnostic.completion.command.sysprop.documentation": "Показывает системные свойства.",
"jvm_diagnostic.completion.command.thread.documentation": "Показывает горячие потоки, стеки потоков и заблокированные потоки.",
"jvm_diagnostic.completion.command.trace.documentation": "Трассирует временные пути вызовов методов.",
"jvm_diagnostic.completion.command.tt.documentation": "Временной туннель методов для записи и повторного воспроизведения вызовов.",
"jvm_diagnostic.completion.command.vmtool.documentation": "Напрямую работает с объектами JVM или выполняет действия VMTool.",
"jvm_diagnostic.completion.command.watch.documentation": "Наблюдает параметры, возвращаемые значения или исключения.",
"jvm_diagnostic.completion.detail.class_search_template": "шаблон поиска класса",
"jvm_diagnostic.completion.detail.classloader_template": "шаблон загрузчика классов",
"jvm_diagnostic.completion.detail.decompile_template": "шаблон декомпиляции",
"jvm_diagnostic.completion.detail.environment_variable_template": "шаблон переменной окружения",
"jvm_diagnostic.completion.detail.execute_directly": "выполнить напрямую",
"jvm_diagnostic.completion.detail.high_risk_template": "шаблон высокого риска",
"jvm_diagnostic.completion.detail.method_search_template": "шаблон поиска метода",
"jvm_diagnostic.completion.detail.monitor_template": "шаблон monitor",
"jvm_diagnostic.completion.detail.stack_template": "шаблон stack",
"jvm_diagnostic.completion.detail.system_property_template": "шаблон системного свойства",
"jvm_diagnostic.completion.detail.thread_option": "параметр потока",
"jvm_diagnostic.completion.detail.time_tunnel_template": "шаблон временного туннеля",
"jvm_diagnostic.completion.detail.trace_option": "параметр trace",
"jvm_diagnostic.completion.detail.trace_template": "шаблон trace",
"jvm_diagnostic.completion.detail.watch_option": "параметр watch",
"jvm_diagnostic.completion.detail.watch_template": "шаблон watch",
"jvm_diagnostic.completion.preset.category.mutating": "команда высокого риска",
"jvm_diagnostic.completion.preset.category.observe": "команда наблюдения",
"jvm_diagnostic.completion.preset.category.trace": "команда трассировки",
"jvm_diagnostic.completion.preset.dashboard.documentation": "Показывает сводку времени выполнения JVM.",
"jvm_diagnostic.completion.preset.ognl-sample.documentation": "Команда выражения высокого риска, по умолчанию показана только как пример.",
"jvm_diagnostic.completion.preset.thread-top.documentation": "Показывает самые загруженные потоки, чтобы быстро найти заблокированные потоки или потоки с высокой нагрузкой CPU.",
"jvm_diagnostic.completion.preset.trace-slow-method.documentation": "Трассирует пути медленных вызовов методов.",
"jvm_diagnostic.completion.preset.watch-return.documentation": "Наблюдает параметры и возвращаемые значения.",
"jvm_diagnostic.connection_missing.message": "Подключение не существует или было удалено",
"jvm_diagnostic.error.cancel_failed": "Не удалось отменить диагностическую команду",
"jvm_diagnostic.error.cancel_unavailable": "Метод бэкенда JVMCancelDiagnosticCommand недоступен",
"jvm_diagnostic.error.execute_command_required": "Диагностическая команда обязательна",
"jvm_diagnostic.error.execute_failed": "Не удалось выполнить диагностическую команду",
"jvm_diagnostic.error.execute_session_required": "Перед выполнением команды создайте диагностический сеанс",
"jvm_diagnostic.error.execute_unavailable": "Метод бэкенда JVMExecuteDiagnosticCommand недоступен",
"jvm_diagnostic.error.history_load_failed": "Не удалось загрузить историю диагностики",
"jvm_diagnostic.error.probe_failed": "Не удалось проверить диагностические возможности",
"jvm_diagnostic.error.probe_unavailable": "Метод backend JVMProbeDiagnosticCapabilities недоступен",
"jvm_diagnostic.error.start_failed": "Не удалось создать диагностический сеанс",
"jvm_diagnostic.error.start_unavailable": "Метод бэкенда JVMStartDiagnosticSession недоступен",
"jvm_diagnostic.history.current_session": "Текущий сеанс",
"jvm_diagnostic.history.description": "Последние команды и состояние выполнения",
"jvm_diagnostic.history.no_records": "История диагностики отсутствует",
"jvm_diagnostic.history.no_session": "Диагностический сеанс еще не создан",
"jvm_diagnostic.history.reason_missing": "Причина диагностики не указана",
"jvm_diagnostic.history.recent_records": "Последние записи",
"jvm_diagnostic.history.title": "История аудита",
"jvm_diagnostic.message.cancel_sent": "Запрос на отмену отправлен",
"jvm_diagnostic.no_session.action.probe": "Сначала проверить возможности",
"jvm_diagnostic.no_session.action.start": "Создать диагностический сеанс",
"jvm_diagnostic.no_session.alert.description": "Это не дает принять несвязанный с сеансом ввод за готовую к выполнению команду и привязывает аудит, поток вывода и отмену к одному сеансу.",
"jvm_diagnostic.no_session.alert.title": "Ввод команды появится после создания сеанса",
"jvm_diagnostic.no_session.description": "Сначала создайте сеанс, затем появятся редактор команд и шаблоны",
"jvm_diagnostic.no_session.title": "Начать диагностический сеанс",
"jvm_diagnostic.output.description": "Добавляется из потока событий backend",
"jvm_diagnostic.output.empty.description": "Оперативного вывода пока нет. После выполнения команды вывод бэкенда будет появляться здесь в хронологическом порядке.",
"jvm_diagnostic.output.frontend_completed_fallback": "Вызов диагностической команды вернулся, но терминальное событие backend не было получено. Frontend завершил состояние ожидания как fallback.",
"jvm_diagnostic.output.local_pending": "Диагностическая команда отправлена; ожидание вывода backend: {{command}}",
"jvm_diagnostic.output.title": "Вывод в реальном времени",
"jvm_diagnostic.presentation.category.mutating": "Команды высокого риска",
"jvm_diagnostic.presentation.category.observe": "Команды наблюдения",
"jvm_diagnostic.presentation.category.trace": "Команды трассировки",
"jvm_diagnostic.presentation.chunk.empty_event": "Пустое событие",
"jvm_diagnostic.presentation.command_type.mutating": "Высокий риск",
"jvm_diagnostic.presentation.command_type.observe": "Наблюдение",
"jvm_diagnostic.presentation.command_type.trace": "Трассировка",
"jvm_diagnostic.presentation.event.chunk": "Фрагмент вывода",
"jvm_diagnostic.presentation.event.diagnostic": "Диагностический вывод",
"jvm_diagnostic.presentation.event.done": "Выполнение завершено",
"jvm_diagnostic.presentation.fallback.unknown": "Неизвестно",
"jvm_diagnostic.presentation.phase.canceled": "Отменено",
"jvm_diagnostic.presentation.phase.canceling": "Отмена",
"jvm_diagnostic.presentation.phase.completed": "Завершено",
"jvm_diagnostic.presentation.phase.diagnostic": "Диагностическое событие",
"jvm_diagnostic.presentation.phase.failed": "Не удалось",
"jvm_diagnostic.presentation.phase.running": "Выполняется",
"jvm_diagnostic.presentation.risk.high": "Высокий риск",
"jvm_diagnostic.presentation.risk.low": "Низкий риск",
"jvm_diagnostic.presentation.risk.medium": "Средний риск",
"jvm_diagnostic.presentation.source.ai_plan": "AI-план",
"jvm_diagnostic.presentation.source.manual": "Ручной ввод",
"jvm_diagnostic.presentation.transport.agent_bridge": "Agent Bridge",
"jvm_diagnostic.presentation.transport.arthas_tunnel": "Arthas Tunnel",
"jvm_diagnostic.session_capability.action.clear_output": "Очистить вывод",
"jvm_diagnostic.session_capability.action.refresh_history": "Обновить историю",
"jvm_diagnostic.session_capability.description": "Текущий канал, права и быстрое обслуживание",
"jvm_diagnostic.session_capability.note": "Проверка возможностей не выполняет команды; перед выполнением команды нужно создать сеанс. История аудита показывает последние записи команд и может содержать записи прошлых сеансов даже без текущего сеанса.",
"jvm_diagnostic.session_capability.session_id_hint": "ID сеанса появится здесь после создания сеанса.",
"jvm_diagnostic.session_capability.status.command_running": "Команда выполняется",
"jvm_diagnostic.session_capability.status.idle": "Ожидание",
"jvm_diagnostic.session_capability.status.no_session": "Нет сеанса",
"jvm_diagnostic.session_capability.status.session_established": "Сеанс установлен",
"jvm_diagnostic.session_capability.title": "Сеанс и возможности",
"jvm_diagnostic.session.default_reason": "Сеанс запущен из консоли",
"jvm_diagnostic.session.default_title": "Консоль диагностики JVM",
"jvm_diagnostic.workbench.action.cancel_command": "Отменить команду",
"jvm_diagnostic.workbench.action.execute_command": "Выполнить команду",
"jvm_diagnostic.workbench.action.probe": "Проверить возможности",
"jvm_diagnostic.workbench.action.restart_session": "Пересоздать сеанс",
"jvm_diagnostic.workbench.action.start_session": "Создать сеанс",
"jvm_diagnostic.workbench.eyebrow": "Диагностика JVM",
"jvm_diagnostic.workbench.status.command_running": "Команда выполняется",
"jvm_diagnostic.workbench.status.no_session": "Нет сеанса",
"jvm_diagnostic.workbench.status.session_established": "Сеанс установлен",
"jvm_diagnostic.workbench.title": "Рабочая область диагностики JVM",
"jvm_diagnostic.workflow.command.description": "После создания сеанса отображаются редактор команды, поле причины и шаблоны.",
"jvm_diagnostic.workflow.command.title": "Выполнить команду",
"jvm_diagnostic.workflow.probe.description": "Считывает только диагностический канал, потоковый вывод и права на команды, не создавая сеанс.",
"jvm_diagnostic.workflow.probe.title": "Проверить возможности",
"jvm_diagnostic.workflow.session.description": "Создает диагностический контекст, чтобы последующие команды были привязаны к этому сеансу.",
"jvm_diagnostic.workflow.session.title": "Создать сеанс",
"jvm_monitoring_charts.empty.classes.metric_unavailable": "Текущий источник мониторинга не предоставляет метрики загрузки классов",
"jvm_monitoring_charts.empty.classes.no_samples": "Пока нет выборок загрузки классов",
"jvm_monitoring_charts.empty.gc.metric_unavailable": "Текущий источник мониторинга не предоставляет метрики сборки мусора",
"jvm_monitoring_charts.empty.gc.no_samples": "Пока нет выборок сборки мусора",
"jvm_monitoring_charts.empty.heap.metric_unavailable": "Текущий источник мониторинга не предоставляет метрики памяти кучи",
"jvm_monitoring_charts.empty.heap.no_samples": "Пока нет выборок памяти кучи",
"jvm_monitoring_charts.empty.threads.metric_unavailable": "Текущий источник мониторинга не предоставляет метрики потоков",
"jvm_monitoring_charts.empty.threads.no_samples": "Пока нет выборок потоков",
"jvm_monitoring_charts.legend.daemon_thread_count": "Демон-потоки",
"jvm_monitoring_charts.legend.gc_count": "Количество GC",
"jvm_monitoring_charts.legend.gc_time_ms": "Время GC (мс)",
"jvm_monitoring_charts.legend.heap_committed": "Зарезервировано кучи",
"jvm_monitoring_charts.legend.heap_used": "Использовано кучи",
"jvm_monitoring_charts.legend.loaded_classes": "Загруженные классы",
"jvm_monitoring_charts.legend.peak_thread_count": "Пиковое количество потоков",
"jvm_monitoring_charts.legend.thread_count": "Количество потоков",
"jvm_monitoring_charts.legend.unloaded_classes": "Выгруженные классы",
"jvm_monitoring_charts.title.classes": "Загрузка классов",
"jvm_monitoring_charts.title.gc": "Сборка мусора",
"jvm_monitoring_charts.title.heap": "Память кучи",
"jvm_monitoring_charts.title.threads": "Потоки",
"jvm_monitoring_dashboard.action.refresh": "Обновить",
"jvm_monitoring_dashboard.action.start": "Запустить мониторинг",
"jvm_monitoring_dashboard.action.stop": "Остановить мониторинг",
"jvm_monitoring_dashboard.connection_missing.message": "Подключение не существует или было удалено",
"jvm_monitoring_dashboard.degraded.message": "Возможности мониторинга снижены",
"jvm_monitoring_dashboard.empty.description": "После нажатия \"Запустить мониторинг\" GoNavi сохраняет результаты сбора данных для этого подключения в текущем сеансе; переключение вкладок не останавливает сбор данных.",
"jvm_monitoring_dashboard.empty.title": "Непрерывный мониторинг еще не запущен",
"jvm_monitoring_dashboard.error.history_load_failed": "Не удалось загрузить историю мониторинга",
"jvm_monitoring_dashboard.error.history_unavailable": "Метод backend JVMGetMonitoringHistory недоступен",
"jvm_monitoring_dashboard.error.start_failed": "Не удалось запустить мониторинг",
"jvm_monitoring_dashboard.error.start_unavailable": "Метод backend JVMStartMonitoring недоступен",
"jvm_monitoring_dashboard.error.stop_failed": "Не удалось остановить мониторинг",
"jvm_monitoring_dashboard.error.stop_unavailable": "Метод backend JVMStopMonitoring недоступен",
"jvm_monitoring_dashboard.status.sampling": "Идет сбор",
"jvm_monitoring_dashboard.status.stopped": "Не запущено",
"jvm_monitoring_dashboard.title": "Непрерывный мониторинг JVM",
"jvm_monitoring_detail_panel.empty.gc_events_unavailable": "Текущий источник мониторинга не предоставляет событийные данные сборки мусора.",
"jvm_monitoring_detail_panel.empty.recent_gc_events": "В последнем окне нет событий сборки мусора.",
"jvm_monitoring_detail_panel.empty.thread_states": "Пока нет выборок состояний потоков.",
"jvm_monitoring_detail_panel.field.process_cpu": "CPU процесса",
"jvm_monitoring_detail_panel.field.process_physical_memory": "Физическая память процесса",
"jvm_monitoring_detail_panel.field.process_virtual_memory": "Виртуальная память процесса",
"jvm_monitoring_detail_panel.field.system_cpu": "CPU системы",
"jvm_monitoring_detail_panel.gc.after": "После сборки",
"jvm_monitoring_detail_panel.gc.before": "До сборки",
"jvm_monitoring_detail_panel.memory_missing.default": "Текущий источник мониторинга не вернул метрику резидентной физической памяти процесса. Проверьте, что HTTP endpoint или расширенный agent собирает и передает физическую память процесса.",
"jvm_monitoring_detail_panel.memory_missing.jmx": "Подключение JMX не предоставляет атрибут резидентной физической памяти процесса, поэтому сейчас можно читать только метрику виртуальной памяти процесса. Чтобы собирать физическую память процесса, переключитесь на HTTP endpoint или расширенный agent.",
"jvm_monitoring_detail_panel.memory_missing.title": "Почему отсутствует физическая память процесса",
"jvm_monitoring_detail_panel.title.capabilities_and_degradation": "Возможности и деградация",
"jvm_monitoring_detail_panel.title.recent_gc_details": "Последние сведения о сборке мусора",
"jvm_monitoring_detail_panel.title.thread_state_distribution": "Распределение состояний потоков",
"jvm_monitoring_detail_panel.title.troubleshooting_metrics": "Метрики диагностики",
"jvm_monitoring_presentation.availability.missing_metrics": "Отсутствующие метрики: {{metrics}}",
"jvm_monitoring_presentation.availability.no_obvious_degradation": "В текущем сеансе мониторинга явная деградация не обнаружена.",
"jvm_monitoring_presentation.availability.provider_warnings": "Предупреждение источника мониторинга: {{warnings}}",
"jvm_monitoring_presentation.metric.class_loading": "Загрузка классов",
"jvm_monitoring_presentation.metric.cpu_process": "CPU процесса",
"jvm_monitoring_presentation.metric.cpu_system": "CPU системы",
"jvm_monitoring_presentation.metric.gc_count": "Количество сборок мусора",
"jvm_monitoring_presentation.metric.gc_events": "Последние события сборки мусора",
"jvm_monitoring_presentation.metric.gc_time": "Время сборки мусора",
"jvm_monitoring_presentation.metric.heap_non_heap": "Память non-heap",
"jvm_monitoring_presentation.metric.heap_used": "Память heap",
"jvm_monitoring_presentation.metric.memory_rss": "Физическая память процесса",
"jvm_monitoring_presentation.metric.memory_virtual": "Виртуальная память процесса",
"jvm_monitoring_presentation.metric.thread_count": "Количество потоков",
"jvm_monitoring_presentation.metric.thread_states": "Состояния потоков",
"jvm_monitoring_presentation.thread_state.blocked": "Заблокирован",
"jvm_monitoring_presentation.thread_state.new": "Новый",
"jvm_monitoring_presentation.thread_state.runnable": "Готов к выполнению",
"jvm_monitoring_presentation.thread_state.terminated": "Завершен",
"jvm_monitoring_presentation.thread_state.timed_waiting": "Ожидает с тайм-аутом",
"jvm_monitoring_presentation.thread_state.waiting": "Ожидает",
"jvm_monitoring_status_cards.meta.gc_total_time": "Всего {{value}}",
"jvm_monitoring_status_cards.meta.heap_committed": "Зарезервировано {{value}}",
"jvm_monitoring_status_cards.meta.thread_peak": "Пик {{value}}",
"jvm_monitoring_status_cards.meta.waiting_samples": "Ожидание выборок",
"jvm_monitoring_status_cards.status.sampling": "Идет сбор",
"jvm_monitoring_status_cards.status.stopped": "Остановлено",
"jvm_monitoring_status_cards.thread_state.runnable_count": "Готово к выполнению {{count}}",
"jvm_monitoring_status_cards.title.classes": "Загрузка классов",
"jvm_monitoring_status_cards.title.gc_pressure": "Нагрузка GC",
"jvm_monitoring_status_cards.title.heap": "Память кучи",
"jvm_monitoring_status_cards.title.threads": "Потоки",
"jvm_overview.badge.read_only": "Подключение только для чтения",
"jvm_overview.badge.writable": "Подключение с записью",
"jvm_overview.capability.can_browse": "Можно просматривать",
"jvm_overview.capability.cannot_browse": "Нельзя просматривать",
"jvm_overview.capability.preview_supported": "Предпросмотр поддерживается",
"jvm_overview.capability.preview_unsupported": "Предпросмотр не поддерживается",
"jvm_overview.capability.read_only": "Только чтение",
"jvm_overview.capability.writable": "Запись разрешена",
"jvm_overview.card.connection_summary": "Сводка подключения",
"jvm_overview.card.mode_capability": "Возможности режимов",
"jvm_overview.connection_missing.message": "Подключение не существует или было удалено",
"jvm_overview.empty.capabilities": "Нет данных о возможностях режима",
"jvm_overview.error.capability_load_failed": "Не удалось прочитать возможности режима JVM",
"jvm_overview.eyebrow": "Среда выполнения JVM",
"jvm_overview.field.agent": "Agent",
"jvm_overview.field.allowed_modes": "Разрешенные режимы",
"jvm_overview.field.current_mode": "Текущий режим",
"jvm_overview.field.endpoint": "Endpoint",
"jvm_overview.field.jmx_address": "JMX-адрес",
"jvm_overview.field.resource_browse": "Просмотр ресурсов",
"jvm_overview.title": "Обзор среды выполнения JVM",
"jvm_overview.value.enabled": "Включено",
"jvm_overview.value.not_configured": "Не настроено",
"jvm_overview.value.resource_browse_lazy_load": "Ленивая загрузка после раскрытия узла режима на боковой панели",
"jvm_resource.action.ask_ai_plan": "Попросить AI создать план",
"jvm_resource.action.audit": "Журнал аудита",
"jvm_resource.action.generate_ai_plan": "Создать план AI",
"jvm_resource.action.preview_change": "Предпросмотр изменения",
"jvm_resource.badge.read_only": "Подключение только для чтения",
"jvm_resource.badge.writable": "Подключение с записью",
"jvm_resource.card.change_draft": "Черновик изменения",
"jvm_resource.card.snapshot": "Снимок ресурса",
"jvm_resource.draft_source.ai_plan": "Черновик с помощью AI",
"jvm_resource.draft_source.manual": "Ручное редактирование",
"jvm_resource.empty.no_resource_data": "Нет данных ресурса",
"jvm_resource.error.ai_plan_context_mismatch": "Текущая вкладка JVM не совпадает с исходным контекстом плана AI, поэтому автоматическое применение отклонено.",
"jvm_resource.error.ai_plan_missing_context": "В плане AI отсутствует исходный контекст. Сначала создайте его заново на странице целевого ресурса JVM.",
"jvm_resource.error.ai_plan_to_draft_failed": "Сейчас не удалось преобразовать план AI в черновик предварительного просмотра JVM.",
"jvm_resource.error.apply_failed": "Не удалось выполнить изменение JVM.",
"jvm_resource.error.apply_unavailable": "Выполнение изменений JVM недоступно в этой сборке.",
"jvm_resource.error.confirmation_missing": "Отсутствует токен подтверждения. Перед выполнением снова выполните предварительный просмотр.",
"jvm_resource.error.connection_missing": "Подключение не существует или было удалено.",
"jvm_resource.error.context_changed": "Контекст ресурса изменился. Перед выполнением снова выполните предварительный просмотр.",
"jvm_resource.error.draft_invalid": "Черновик изменения недействителен.",
"jvm_resource.error.get_value_unavailable": "Чтение значения JVM недоступно в этой сборке.",
"jvm_resource.error.payload_object_required": "Payload должен быть JSON-объектом.",
"jvm_resource.error.preview_failed": "Не удалось предварительно просмотреть изменение JVM.",
"jvm_resource.error.preview_required": "Перед подтверждением выполнения сначала просмотрите изменение.",
"jvm_resource.error.preview_result_invalid": "Результат предварительного просмотра имеет неверный формат.",
"jvm_resource.error.preview_unavailable": "Предварительный просмотр изменений JVM недоступен в этой сборке.",
"jvm_resource.error.read_failed": "Не удалось прочитать ресурс JVM.",
"jvm_resource.error.reason_required": "Укажите причину изменения.",
"jvm_resource.error.resource_id_empty": "ID ресурса пуст, поэтому невозможно создать черновик изменения.",
"jvm_resource.error.resource_path_empty": "Путь к ресурсу пуст.",
"jvm_resource.field.action": "Действие",
"jvm_resource.field.available_actions": "Доступные действия",
"jvm_resource.field.draft_source": "Источник черновика",
"jvm_resource.field.format": "Формат",
"jvm_resource.field.payload": "Payload (JSON)",
"jvm_resource.field.payload_fields": "Поля Payload: ",
"jvm_resource.field.reason": "Причина изменения",
"jvm_resource.field.resource_id": "ID ресурса",
"jvm_resource.field.resource_path": "Путь к ресурсу",
"jvm_resource.field.resource_type": "Тип ресурса",
"jvm_resource.field.resource_version": "Версия ресурса",
"jvm_resource.field.target_resource": "Целевой ресурс",
"jvm_resource.field.version": "Версия",
"jvm_resource.list_separator": ", ",
"jvm_resource.marker.required_suffix": " (обязательно)",
"jvm_resource.message.ai_plan_draft_filled": "Черновик заполнен из плана AI для {{resourceId}}. Перед подтверждением записи сначала просмотрите изменение.",
"jvm_resource.message.apply_success": "Изменение JVM выполнено.",
"jvm_resource.message.current_action": "Текущее действие: ",
"jvm_resource.message.payload_hint": "Предварительный просмотр использует текущий черновик. Подтверждение выполнения использует последний успешный запрос предварительного просмотра. После изменения черновика выполните просмотр снова.",
"jvm_resource.message.payload_template_applied": "Для текущего действия заполнен рекомендуемый шаблон.",
"jvm_resource.placeholder.action_default": "Например, put / clear / evict",
"jvm_resource.placeholder.action_jmx": "Например, set или invoke",
"jvm_resource.placeholder.reason": "Введите причину этого изменения ресурса JVM",
"jvm_resource.presentation.action.clear.description": "Очищает данные или состояние в текущем ресурсе JVM.",
"jvm_resource.presentation.action.clear.label": "Очистить ресурс",
"jvm_resource.presentation.action.delete.description": "Удаляет текущий ресурс или отменяет его регистрацию.",
"jvm_resource.presentation.action.delete.label": "Удалить ресурс",
"jvm_resource.presentation.action.evict.description": "Вытесняет целевой элемент кэша из текущей среды выполнения JVM.",
"jvm_resource.presentation.action.evict.label": "Вытеснить кэш",
"jvm_resource.presentation.action.invoke.description": "Вызывает управляющую операцию, предоставляемую текущим ресурсом.",
"jvm_resource.presentation.action.invoke.label": "Вызвать операцию",
"jvm_resource.presentation.action.put.description": "Записывает содержимое payload в текущий ресурс JVM.",
"jvm_resource.presentation.action.put.label": "Записать ресурс",
"jvm_resource.presentation.action.refresh.description": "Обновляет состояние выполнения текущего ресурса.",
"jvm_resource.presentation.action.refresh.label": "Обновить ресурс",
"jvm_resource.presentation.action.reload.description": "Перезагружает текущий ресурс или его конфигурацию.",
"jvm_resource.presentation.action.reload.label": "Перезагрузить",
"jvm_resource.presentation.action.remove.description": "Удаляет указанную запись из текущего ресурса.",
"jvm_resource.presentation.action.remove.label": "Удалить запись",
"jvm_resource.presentation.action.reset.description": "Возвращает текущий ресурс в начальное состояние или состояние по умолчанию.",
"jvm_resource.presentation.action.reset.label": "Сбросить состояние",
"jvm_resource.presentation.action.set.description": "Обновляет доступное для записи значение свойства текущего ресурса.",
"jvm_resource.presentation.action.set.label": "Установить свойство",
"jvm_resource.presentation.audit_result.applied": "Выполнено",
"jvm_resource.presentation.audit_result.blocked": "Заблокировано",
"jvm_resource.presentation.audit_result.failed": "Ошибка",
"jvm_resource.presentation.audit_result.success": "Успешно",
"jvm_resource.presentation.audit_result.unknown": "Неизвестно",
"jvm_resource.presentation.audit_result.warning": "Предупреждение",
"jvm_resource.presentation.risk.high": "Высокий",
"jvm_resource.presentation.risk.low": "Низкий",
"jvm_resource.presentation.risk.medium": "Средний",
"jvm_resource.presentation.risk.unknown": "Неизвестно",
"jvm_resource.presentation.unnamed_action": "Действие без имени",
"jvm_resource.section.metadata": "Метаданные",
"jvm_resource.section.resource_value": "Значение ресурса",
"jvm_resource.section.supported_actions": "Поддерживаемые действия ресурса",
"jvm_resource.title": "Рабочая область ресурсов JVM",
"jvm.backend.capability.reason.read_only": "Текущее подключение доступно только для чтения",
"jvm.backend.connection_error.agent.base_url_invalid.help": "Укажите полный URL http:// или https://, например http://127.0.0.1:19090/gonavi/agent/jvm.",
"jvm.backend.connection_error.agent.base_url_invalid.summary": "Подключение Agent не удалось: Agent Base URL недействителен.",
"jvm.backend.connection_error.agent.base_url_required": "Подключение Agent не удалось: Agent Base URL отсутствует.",
"jvm.backend.connection_error.agent.connection_refused.help": "Убедитесь, что Java service запущен с GoNavi Agent через `-javaagent`, и проверьте Base URL, port mapping и правила firewall.",
"jvm.backend.connection_error.agent.connection_refused.summary": "Подключение Agent не удалось: целевой management port Agent не слушается или адрес недоступен.",
"jvm.backend.connection_error.agent.forbidden.help": "Убедитесь, что источник клиента, настройки authentication и access policy Agent разрешают GoNavi доступ.",
"jvm.backend.connection_error.agent.forbidden.summary": "Подключение Agent не удалось: Agent отклонил этот запрос.",
"jvm.backend.connection_error.agent.scheme_unsupported.help": "Измените Agent Base URL на адрес, начинающийся с http:// или https://.",
"jvm.backend.connection_error.agent.scheme_unsupported.summary": "Подключение Agent не удалось: поддерживаются только HTTP или HTTPS.",
"jvm.backend.connection_error.agent.timeout.help": "Убедитесь, что целевой адрес доступен, Agent запущен, и при необходимости увеличьте connection timeout.",
"jvm.backend.connection_error.agent.timeout.summary": "Подключение Agent не удалось: истекло время ожидания доступа к management port Agent.",
"jvm.backend.connection_error.agent.unauthorized.help": "Проверьте, совпадает ли Agent API Key в подключении с параметрами запуска целевого сервиса.",
"jvm.backend.connection_error.agent.unauthorized.summary": "Подключение Agent не удалось: Agent ответил, но API Key отсутствует или недействителен.",
"jvm.backend.connection_error.endpoint.base_url_invalid.help": "Укажите полный URL http:// или https://, который указывает на корневой путь management API, реализующего GoNavi JVM HTTP contract, например http://127.0.0.1:19090/manage/jvm.",
"jvm.backend.connection_error.endpoint.base_url_invalid.summary": "Подключение Endpoint не удалось: Endpoint Base URL недействителен.",
"jvm.backend.connection_error.endpoint.base_url_required": "Подключение Endpoint не удалось: Endpoint Base URL отсутствует.",
"jvm.backend.connection_error.endpoint.connection_refused.help": "Убедитесь, что Base URL указывает на management API, реализующий GoNavi JVM HTTP contract, и проверьте прослушивание сервиса, port mapping и правила firewall.",
"jvm.backend.connection_error.endpoint.connection_refused.summary": "Подключение Endpoint не удалось: целевой management API не слушает порт или адрес недоступен.",
"jvm.backend.connection_error.endpoint.forbidden.help": "Убедитесь, что источник клиента, настройки authentication и access policy разрешают GoNavi доступ к этому management API.",
"jvm.backend.connection_error.endpoint.forbidden.summary": "Подключение Endpoint не удалось: целевой management API отклонил этот запрос.",
"jvm.backend.connection_error.endpoint.not_found.help": "Убедитесь, что Base URL указывает на корневой путь management API JVM, а не на бизнес-endpoint, health check или домашнюю страницу gateway.",
"jvm.backend.connection_error.endpoint.not_found.summary": "Подключение Endpoint не удалось: целевой адрес ответил, но management API GoNavi JVM не найден.",
"jvm.backend.connection_error.endpoint.scheme_unsupported.help": "Измените Endpoint Base URL на адрес, начинающийся с http:// или https://.",
"jvm.backend.connection_error.endpoint.scheme_unsupported.summary": "Подключение Endpoint не удалось: поддерживаются только HTTP или HTTPS.",
"jvm.backend.connection_error.endpoint.timeout.help": "Убедитесь, что Base URL доступен, целевой сервис запущен, и при необходимости увеличьте connection timeout.",
"jvm.backend.connection_error.endpoint.timeout.summary": "Подключение Endpoint не удалось: истекло время ожидания доступа к целевому management API.",
"jvm.backend.connection_error.endpoint.unauthorized.help": "Проверьте, совпадает ли Endpoint API Key в подключении с конфигурацией целевого сервиса.",
"jvm.backend.connection_error.endpoint.unauthorized.summary": "Подключение Endpoint не удалось: целевой management API ответил, но API Key отсутствует или недействителен.",
"jvm.backend.connection_error.generic": "Подключение JVM не удалось",
"jvm.backend.connection_error.jmx.auth.help": "Проверьте, отключена ли authentication у целевого JMX. Если authentication требуется, укажите username и password перед подключением.",
"jvm.backend.connection_error.jmx.auth.summary": "Подключение JMX не удалось: {{target}} требует authentication или текущие credentials недействительны.",
"jvm.backend.connection_error.jmx.connection_refused.help": "Убедитесь, что на целевой JVM включен remote JMX, и проверьте host, firewall, port mapping, SSH и настройки proxy.",
"jvm.backend.connection_error.jmx.connection_refused.summary": "Подключение JMX не удалось: не удалось подключиться к {{target}}, потому что port не слушается или сеть недоступна.",
"jvm.backend.connection_error.jmx.connection_reset.help": "Убедитесь, что настроенный port является открытым JMX port JVM, а не бизнес-портом, debug port или проксированным port.",
"jvm.backend.connection_error.jmx.connection_reset.summary": "Подключение JMX не удалось: сервис на {{target}} закрыл соединение; port не является совместимым стандартным JMX RMI port.",
"jvm.backend.connection_error.jmx.host_required": "Подключение JMX не удалось: host отсутствует.",
"jvm.backend.connection_error.jmx.java_missing.help": "Сначала установите JRE/JDK или укажите правильный исполняемый файл `java` через переменную окружения GONAVI_JMX_JAVA_BIN.",
"jvm.backend.connection_error.jmx.java_missing.summary": "Подключение JMX не удалось: на текущей машине не найден runtime `java`, поэтому GoNavi не может запустить JMX helper.",
"jvm.backend.connection_error.jmx.no_such_object.help": "Обычно это означает, что указан port RMI registry, debug port или другой port Java service. Проверьте настройки `jmxremote.port` и `jmxremote.rmi.port`.",
"jvm.backend.connection_error.jmx.no_such_object.summary": "Подключение JMX не удалось: на {{target}} есть RMI service, но это не пригодный JMX RMIServer port.",
"jvm.backend.connection_error.jmx.non_jrmp.help": "Используйте фактический JMX port, открытый приложением, а не бизнес `server.port`. Если сервис только включает `-Dcom.sun.management.jmxremote`, но не задает `jmxremote.port`, удаленное подключение невозможно.",
"jvm.backend.connection_error.jmx.non_jrmp.summary": "Подключение JMX не удалось: {{target}} не является стандартным удаленным management port JMX; это похоже на бизнес-порт или HTTP port.",
"jvm.backend.connection_error.jmx.port_invalid": "Подключение JMX не удалось: port недействителен. Укажите допустимый port от 1 до 65535.",
"jvm.backend.connection_error.jmx.timeout.help": "Убедитесь, что port доступен, сеть не заблокирована, и при необходимости увеличьте connection timeout.",
"jvm.backend.connection_error.jmx.timeout.summary": "Подключение JMX не удалось: время ожидания подключения к {{target}} истекло.",
"jvm.backend.connection_error.suggestion": "Рекомендация: {{detail}}",
"jvm.backend.connection_error.technical_detail": "Технические сведения: {{detail}}",
"jvm.backend.diagnostic.arthas.base_url_invalid": "Адрес Arthas Tunnel недействителен: {{detail}}",
"jvm.backend.diagnostic.arthas.base_url_required": "Требуется адрес Arthas Tunnel",
"jvm.backend.diagnostic.arthas.cancel_command_mismatch": "Активная command в этой Arthas Tunnel session не совпадает с command для отмены.",
"jvm.backend.diagnostic.arthas.command_already_running": "В этой Arthas Tunnel session уже выполняется command. Дождитесь завершения или сначала отмените ее.",
"jvm.backend.diagnostic.arthas.command_canceled": "Arthas Tunnel command отменена",
"jvm.backend.diagnostic.arthas.command_timeout": "Arthas Tunnel command завершилась по timeout за {{timeout}}",
"jvm.backend.diagnostic.arthas.connect_canceled": "WebSocket-подключение Arthas Tunnel отменено",
"jvm.backend.diagnostic.arthas.connect_failed": "WebSocket-подключение Arthas Tunnel не удалось: {{detail}}",
"jvm.backend.diagnostic.arthas.connect_timeout": "WebSocket-подключение Arthas Tunnel не получило ответ за {{timeout}} и завершилось по timeout",
"jvm.backend.diagnostic.arthas.connection_closed": "Подключение Arthas Tunnel закрыто: {{detail}}",
"jvm.backend.diagnostic.arthas.connection_closed_code": "Подключение Arthas Tunnel закрыто: code={{code}}",
"jvm.backend.diagnostic.arthas.connection_not_ready": "Подключение Arthas Tunnel еще не готово. Повторите попытку позже.",
"jvm.backend.diagnostic.arthas.http_failed": "Подключение Arthas Tunnel не удалось: HTTP {{status}}",
"jvm.backend.diagnostic.arthas.no_running_command": "В этой Arthas Tunnel session нет выполняющейся command.",
"jvm.backend.diagnostic.arthas.read_canceled": "Чтение вывода Arthas Tunnel отменено",
"jvm.backend.diagnostic.arthas.read_deadline_failed": "Не удалось задать read deadline Arthas Tunnel: {{detail}}",
"jvm.backend.diagnostic.arthas.read_failed": "Не удалось прочитать вывод Arthas Tunnel: {{detail}}",
"jvm.backend.diagnostic.arthas.read_timeout": "Чтение вывода Arthas Tunnel не получило ответ за {{timeout}} и завершилось по timeout",
"jvm.backend.diagnostic.arthas.request_encode_failed": "Не удалось закодировать запрос Arthas Tunnel: {{detail}}",
"jvm.backend.diagnostic.arthas.scheme_unsupported": "Arthas Tunnel поддерживает только адреса http/https/ws/wss: {{scheme}}",
"jvm.backend.diagnostic.arthas.send_canceled": "Отправка terminal command в Arthas Tunnel отменена",
"jvm.backend.diagnostic.arthas.send_failed": "Не удалось отправить terminal command в Arthas Tunnel: {{detail}}",
"jvm.backend.diagnostic.arthas.send_timeout": "Отправка terminal command в Arthas Tunnel не получила ответ за {{timeout}} и завершилась по timeout",
"jvm.backend.diagnostic.arthas.session_config_changed": "Конфигурация Arthas Tunnel session изменилась. Создайте diagnostic session заново.",
"jvm.backend.diagnostic.arthas.session_missing": "Diagnostic session не существует. Создайте Arthas Tunnel session заново.",
"jvm.backend.diagnostic.arthas.target_id_required": "Требуется target ID для Arthas Tunnel (targetId / agentId)",
"jvm.backend.diagnostic.arthas.target_not_found": "Целевой instance не найден. Проверьте targetId / agentId и убедитесь, что tunnel client онлайн.",
"jvm.backend.diagnostic.arthas.target_not_found_with_id": "Целевой instance {{target}} не найден. Проверьте targetId / agentId и убедитесь, что tunnel client онлайн.",
"jvm.backend.diagnostic.arthas.terminal_command_encode_failed": "Не удалось закодировать terminal command Arthas Tunnel: {{detail}}",
"jvm.backend.diagnostic.arthas.write_deadline_failed": "Не удалось задать write deadline Arthas Tunnel: {{detail}}",
"jvm.backend.diagnostic.error.audit_write_blocked": "Не удалось записать diagnostic audit record, выполнение command заблокировано: {{detail}}",
"jvm.backend.diagnostic.error.cancel_identifiers_required": "Для cancel command требуются sessionId и commandId",
"jvm.backend.diagnostic.error.command_required": "Diagnostic command не может быть пустой",
"jvm.backend.diagnostic.error.disabled": "Для этого подключения не включен режим расширенной диагностики JVM",
"jvm.backend.diagnostic.error.execute_canceled": "Запрос выполнения диагностики отменен: {{detail}}",
"jvm.backend.diagnostic.error.session_id_required": "Diagnostic session ID обязателен. Сначала создайте session.",
"jvm.backend.diagnostic.error.transport_unsupported": "Неподдерживаемый транспорт диагностики JVM: {{transport}}",
"jvm.backend.diagnostic.message.arthas_command_canceled": "Arthas command отменена",
"jvm.backend.diagnostic.message.arthas_command_completed": "Arthas command выполнена",
"jvm.backend.diagnostic.message.cancel_requested": "Cancel request отправлен; ожидание остановки command диагностическим bridge",
"jvm.backend.diagnostic.message.command_completed": "Diagnostic command выполнена",
"jvm.backend.diagnostic.policy.multiline_not_supported": "Diagnostic command не поддерживает переносы строк или несколько commands",
"jvm.backend.diagnostic.policy.mutating_not_allowed": "High-risk diagnostic commands не включены для этого подключения: {{command}}",
"jvm.backend.diagnostic.policy.observe_not_allowed": "Observe diagnostic commands не включены для этого подключения: {{command}}",
"jvm.backend.diagnostic.policy.read_only_observe_only": "Текущее подключение доступно только для чтения. Разрешены только observe diagnostic commands",
"jvm.backend.diagnostic.policy.trace_not_allowed": "Trace diagnostic commands не включены для этого подключения: {{command}}",
"jvm.backend.diagnostic.warning.audit_write_failed": "Не удалось записать audit record: {{detail}}",
"jvm.backend.error.audit_write_blocked": "Не удалось записать запись аудита, изменение JVM заблокировано: {{detail}}",
"jvm.backend.error.change_action_required": "Действие изменения JVM обязательно",
"jvm.backend.error.change_blocked_by_guard": "Текущее изменение заблокировано Guard",
"jvm.backend.error.change_blocked_read_only": "Текущее подключение доступно только для чтения, поэтому запись заблокирована",
"jvm.backend.error.change_confirmation_token_failed": "Не удалось создать токен подтверждения изменения JVM: {{detail}}",
"jvm.backend.error.change_reason_required": "Причина изменения JVM обязательна",
"jvm.backend.error.change_resource_id_required": "ID ресурса JVM обязателен",
"jvm.backend.error.confirmation_token_expired": "Срок действия токена подтверждения истек. Выполните предварительный просмотр и подтвердите снова.",
"jvm.backend.error.confirmation_token_invalid": "Токен подтверждения недействителен. Выполните предварительный просмотр и подтвердите снова.",
"jvm.backend.error.confirmation_token_missing": "Токен подтверждения отсутствует. Сначала завершите подтверждение предварительного просмотра.",
"jvm.backend.error.disallowed_mode": "Текущее подключение не разрешает режим {{mode}}",
"jvm.backend.error.preview_confirmation_missing": "Токен подтверждения предварительного просмотра отсутствует. Перед отправкой выполните предварительный просмотр еще раз.",
"jvm.backend.error.preview_context_hash_failed": "Не удалось создать контекст предварительного просмотра JVM: {{detail}}",
"jvm.backend.error.preview_payload_hash_failed": "Не удалось создать digest Payload предварительного просмотра JVM: {{detail}}",
"jvm.backend.error.resource_path_invalid": "Недопустимый путь ресурса JVM: {{detail}}",
"jvm.backend.message.connect_success": "Подключение JVM успешно выполнено",
"jvm.backend.monitoring.error.session_not_found": "Сеанс мониторинга JVM для {{connectionId}} {{providerMode}} не найден",
"jvm.backend.monitoring.error.snapshot_unsupported": "Снимок мониторинга {{provider}} пока не поддерживается",
"jvm.backend.monitoring.warning.sample_auto_stopped": "Сбор данных мониторинга завершился с ошибкой {{count}} раз подряд, поэтому этот сеанс был автоматически остановлен",
"jvm.backend.separator.message_warning": "; ",
"jvm.backend.warning.failed_audit_write_failed": "Не удалось записать аудит сбоя: {{detail}}",
"jvm.backend.warning.terminal_audit_write_failed": "Не удалось записать финальный аудит: {{detail}}",
"log_panel.action.clear": "Очистить журнал",
"log_panel.action.close": "Закрыть панель",
"log_panel.affected_rows": "Затронуто строк: {{count}}",
"log_panel.column.duration": "Длительность",
"log_panel.column.sql_message": "SQL / сообщение",
"log_panel.column.status": "Статус",
"log_panel.column.time": "Время",
"log_panel.description": "Фиксирует статус выполнения, длительность и ошибки для быстрого анализа.",
"log_panel.empty": "Нет журналов выполнения SQL",
"log_panel.short_title": "Логи",
"log_panel.title": "Журнал выполнения SQL",
"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.body_mode.label": "Тип тела сообщения",
"message_publish_modal.field.body.extra": "В режиме JSON требуется корректный JSON. В текстовом режиме содержимое отправляется как есть.",
"message_publish_modal.field.body.label": "Тело сообщения",
"message_publish_modal.field.body.placeholder": "Введите тело сообщения",
"message_publish_modal.field.body.required": "Введите тело сообщения",
"message_publish_modal.field.delay_level.extra": "RocketMQ использует фиксированные уровни задержки. 0 означает немедленную отправку.",
"message_publish_modal.field.delay_level.label": "Delay Level (необязательно)",
"message_publish_modal.field.exchange.extra": "Оставьте пустым, чтобы использовать exchange по умолчанию. Если указан пользовательский exchange, убедитесь, что для целевой Queue создан binding.",
"message_publish_modal.field.exchange.label": "Exchange (необязательно)",
"message_publish_modal.field.exchange.placeholder": "Пример: events.topic",
"message_publish_modal.field.headers.extra": "Должно быть JSON-объектом, например {{example}}.",
"message_publish_modal.field.headers.label": "Headers (необязательно)",
"message_publish_modal.field.properties.extra": "Должно быть JSON-объектом, например {{example}}.",
"message_publish_modal.field.properties.label": "Properties (необязательно)",
"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.routing_key.extra": "Оставьте пустым, чтобы по умолчанию использовать имя текущей Queue.",
"message_publish_modal.field.routing_key.label": "Routing Key (необязательно)",
"message_publish_modal.field.routing_key.placeholder": "Пример: orders.queue",
"message_publish_modal.field.tag.extra": "Оставьте пустым, чтобы не фильтровать и не записывать Tag.",
"message_publish_modal.field.tag.label": "Tag (необязательно)",
"message_publish_modal.footer.success_prefix": "При успешной отправке возвращается",
"message_publish_modal.footer.success_suffix": ", чтобы подтвердить, было ли отправлено это тестовое сообщение.",
"message_publish_modal.option.no_delay": "Без задержки",
"message_publish_modal.option.text": "Текст",
"message_publish_modal.title": "Тестовая отправка сообщения",
"message_publish_modal.title_with_connection": "Тестовая отправка сообщения · {{connectionName}}",
"message_publish.error.destination_required": "Введите целевой Topic / Queue",
"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.required_field": "Введите {{field}}",
"message_publish.error.unsupported_type": "Текущий источник данных не поддерживает тестовую отправку сообщений: {{type}}",
"message_publish.field.body": "Тело сообщения",
"message_publish.field.message_key": "Ключ сообщения",
"message_publish.presentation.kafka.alert": "Эта форма автоматически собирает Kafka publish JSON-команду и вызывает backend для тестовой отправки.",
"message_publish.presentation.kafka.destination_placeholder": "Пример: orders.events",
"message_publish.presentation.kafka.key_placeholder": "Необязательно. В режиме JSON введите одну корректную строку JSON.",
"message_publish.presentation.kafka.success_hint": "Headers отправляются как Kafka Record Headers.",
"message_publish.presentation.key_label": "Ключ сообщения Key (необязательно)",
"message_publish.presentation.keys_label": "Ключи сообщения Keys (необязательно)",
"message_publish.presentation.mqtt.alert": "Эта форма автоматически собирает MQTT publish JSON-команду и отправляет тестовое сообщение напрямую через broker.",
"message_publish.presentation.mqtt.destination_placeholder": "Пример: devices/device-001/telemetry",
"message_publish.presentation.mqtt.success_hint": "QoS и retain можно задать отдельно. Пустые поля используют значения по умолчанию из текущего подключения.",
"message_publish.presentation.rabbitmq.alert": "Эта форма автоматически собирает RabbitMQ publish JSON-команду и отправляет тестовое сообщение через Management API.",
"message_publish.presentation.rabbitmq.destination_placeholder": "Пример: orders.queue",
"message_publish.presentation.rabbitmq.destination_required": "Введите Queue",
"message_publish.presentation.rabbitmq.success_hint": "Если Exchange пустой, используется exchange по умолчанию, а имя Queue применяется как routing key.",
"message_publish.presentation.rocketmq.alert": "Эта форма автоматически собирает RocketMQ publish JSON-команду и отправляет тестовое сообщение через NameServer/Broker.",
"message_publish.presentation.rocketmq.destination_placeholder": "Пример: orders.events",
"message_publish.presentation.rocketmq.key_placeholder": "Можно ввести несколько значений Key через запятую",
"message_publish.presentation.rocketmq.success_hint": "Tag, Keys, Delay Level и Properties записываются в атрибуты сообщения RocketMQ.",
"message_publish.presentation.rocketmq.tag_placeholder": "Пример: TagA",
"message_publish.presentation.topic_required": "Введите Topic",
"proxy.backend.error.host_empty": "Хост прокси пуст",
"proxy.backend.error.http_connect_failed": "Не удалось подключиться к HTTP-прокси: {{detail}}",
"proxy.backend.error.http_connect_read_failed": "Не удалось прочитать ответ HTTP CONNECT: {{detail}}",
"proxy.backend.error.http_connect_status_failed": "HTTP-прокси CONNECT завершился ошибкой: {{status}}",
"proxy.backend.error.http_connect_write_failed": "Не удалось отправить запрос HTTP CONNECT: {{detail}}",
"proxy.backend.error.listen_failed": "Не удалось создать локальный слушатель прокси: {{detail}}",
"proxy.backend.error.port_invalid": "Недопустимый порт прокси: {{port}}",
"proxy.backend.error.remote_addr_invalid": "Недопустимый удалённый адрес: {{address}}",
"proxy.backend.error.socks5_connect_failed": "Не удалось подключиться через SOCKS5-прокси: {{detail}}",
"proxy.backend.error.socks5_dialer_failed": "Не удалось создать dialer для SOCKS5-прокси: {{detail}}",
"proxy.backend.error.unsupported_type": "Неподдерживаемый тип прокси: {{type}}",
"query_editor.action.ai_explain_sql": "AI: объяснить SQL",
"query_editor.action.ai_explain_sql_menu": "Объяснить SQL",
"query_editor.action.ai_generate_sql": "AI: сгенерировать SQL",
"query_editor.action.ai_generate_sql_menu": "Сгенерировать SQL",
"query_editor.action.ai_optimize_sql": "AI: оптимизировать SQL",
"query_editor.action.ai_optimize_sql_menu": "Оптимизировать SQL",
"query_editor.action.ai_schema_analysis": "Анализ схемы",
"query_editor.action.export_sql_file": "Экспортировать SQL-файл",
"query_editor.action.format": "Форматировать",
"query_editor.action.format_sql": "Форматировать SQL",
"query_editor.action.hide_results_panel": "Скрыть область результатов",
"query_editor.action.hide_results_panel_with_shortcut": "Скрыть область результатов ({{shortcut}})",
"query_editor.action.more": "Еще",
"query_editor.action.rename_query": "Переименовать запрос",
"query_editor.action.resize_editor": "Перетащите, чтобы изменить высоту",
"query_editor.action.results": "Результаты",
"query_editor.action.run": "Выполнить",
"query_editor.action.run_with_shortcut": "Выполнить ({{shortcut}})",
"query_editor.action.save": "Сохранить",
"query_editor.action.save_with_shortcut": "Сохранить ({{shortcut}})",
"query_editor.action.show_object_info": "Показать сведения об объекте",
"query_editor.action.show_results_panel": "Показать область результатов",
"query_editor.action.show_results_panel_with_shortcut": "Показать область результатов ({{shortcut}})",
"query_editor.action.stop": "Остановить",
"query_editor.ai_prompt.context": "Контекст: {{type}} {{name}}, выбранная база данных {{database}}.\n",
"query_editor.ai_prompt.default_database": "По умолчанию",
"query_editor.ai_prompt.default_source": "База данных",
"query_editor.ai_prompt.diagnose": "При выполнении этого SQL возникла ошибка:\n```sql\n{{sql}}\n```\n\nБаза данных вернула ошибку:\n```text\n{{error}}\n```\n\nПроанализируй причину и предложи исправление.",
"query_editor.ai_prompt.explain": "Объясни логику выполнения этой SQL-инструкции:\n```sql\n{{sql}}\n```",
"query_editor.ai_prompt.generate": "Сгенерируй запрос на основе текущей схемы базы данных.",
"query_editor.ai_prompt.optimize": "Проанализируй эту SQL-инструкцию на проблемы производительности и предложи оптимизацию:\n```sql\n{{sql}}\n```",
"query_editor.ai_prompt.schema": "Проанализируй текущую схему базы данных и предложи улучшения производительности и дизайна.",
"query_editor.completion.action.absolute_value": "абсолютное значение",
"query_editor.completion.action.approximate_distinct": "приблизительные уникальные значения",
"query_editor.completion.action.approximate_distinct_count": "приблизительный подсчет уникальных значений",
"query_editor.completion.action.approximate_percentile": "приблизительный перцентиль",
"query_editor.completion.action.approximate_quantile": "приблизительный квантиль",
"query_editor.completion.action.array_aggregation": "агрегация массива",
"query_editor.completion.action.array_length": "длина массива",
"query_editor.completion.action.average": "среднее",
"query_editor.completion.action.bitmap_aggregation": "агрегация Bitmap",
"query_editor.completion.action.bitmap_construction": "построить Bitmap",
"query_editor.completion.action.bitmap_count": "количество Bitmap",
"query_editor.completion.action.boolean_and_aggregation": "булева AND-агрегация",
"query_editor.completion.action.boolean_or_aggregation": "булева OR-агрегация",
"query_editor.completion.action.character_length": "длина строки",
"query_editor.completion.action.concat_with_separator": "конкатенация с разделителем",
"query_editor.completion.action.concatenation": "конкатенация",
"query_editor.completion.action.condition_mapping": "сопоставление условий",
"query_editor.completion.action.conditional_check": "проверка условия",
"query_editor.completion.action.count": "подсчет",
"query_editor.completion.action.current_database": "текущая база данных",
"query_editor.completion.action.current_date": "текущая дата",
"query_editor.completion.action.current_date_time": "текущая дата и время",
"query_editor.completion.action.current_time": "текущее время",
"query_editor.completion.action.current_timestamp": "текущая временная метка",
"query_editor.completion.action.current_user": "текущий пользователь",
"query_editor.completion.action.database_current_time": "текущее время базы данных",
"query_editor.completion.action.date_addition": "прибавление даты",
"query_editor.completion.action.date_conversion": "преобразовать в дату",
"query_editor.completion.action.date_difference": "разница дат",
"query_editor.completion.action.date_field_extraction": "извлечь поле даты",
"query_editor.completion.action.date_formatting": "форматирование даты",
"query_editor.completion.action.date_subtraction": "вычитание даты",
"query_editor.completion.action.date_truncation": "усечение даты",
"query_editor.completion.action.date_value": "дата",
"query_editor.completion.action.datetime_conversion": "преобразовать в дату и время",
"query_editor.completion.action.datetime_value": "дата и время",
"query_editor.completion.action.decimal_truncation": "усечь десятичные знаки",
"query_editor.completion.action.dense_rank": "плотный ранг",
"query_editor.completion.action.distinct_array_aggregation": "агрегация уникальных массивов",
"query_editor.completion.action.e_power": "степень числа e",
"query_editor.completion.action.elapsed_time": "прошедшее время",
"query_editor.completion.action.epoch_seconds": "секунды эпохи",
"query_editor.completion.action.exact_distinct": "точные уникальные значения",
"query_editor.completion.action.first_non_null": "вернуть первое не-NULL значение",
"query_editor.completion.action.first_value": "первое значение",
"query_editor.completion.action.format_as_text": "форматировать как текст",
"query_editor.completion.action.group_concatenation": "групповая конкатенация",
"query_editor.completion.action.guid_generation": "сгенерировать GUID",
"query_editor.completion.action.hexadecimal": "шестнадцатеричное значение",
"query_editor.completion.action.high_precision_current_time": "текущее время высокой точности",
"query_editor.completion.action.hll_aggregation": "HLL-агрегация",
"query_editor.completion.action.hll_hash": "HLL-хеш",
"query_editor.completion.action.instant_rate_of_change": "мгновенная скорость изменения",
"query_editor.completion.action.int64_conversion": "преобразовать в Int64",
"query_editor.completion.action.interpolation": "интерполяция",
"query_editor.completion.action.json_string_extraction": "извлечение JSON-строки",
"query_editor.completion.action.json_unquote": "убрать кавычки JSON",
"query_editor.completion.action.json_value_extraction": "извлечение JSON-значения",
"query_editor.completion.action.json_value_set": "задать JSON-значение",
"query_editor.completion.action.jsonb_path_extraction": "извлечение пути JSONB",
"query_editor.completion.action.julian_day": "юлианский день",
"query_editor.completion.action.last_insert_id": "последний ID вставки",
"query_editor.completion.action.last_row": "последняя строка",
"query_editor.completion.action.last_value": "последнее значение",
"query_editor.completion.action.least_squares": "метод наименьших квадратов",
"query_editor.completion.action.left_padding": "дополнить слева",
"query_editor.completion.action.left_space_trimming": "убрать пробелы слева",
"query_editor.completion.action.left_substring": "извлечь слева",
"query_editor.completion.action.length": "длина",
"query_editor.completion.action.list_aggregation": "агрегация списка",
"query_editor.completion.action.list_unnest": "развернуть список",
"query_editor.completion.action.log_base_10": "логарифм по основанию 10",
"query_editor.completion.action.log_base_2": "логарифм по основанию 2",
"query_editor.completion.action.logarithm": "логарифм",
"query_editor.completion.action.lowercase": "преобразовать в нижний регистр",
"query_editor.completion.action.maximum": "максимум",
"query_editor.completion.action.md5_hash": "MD5-хеш",
"query_editor.completion.action.minimum": "минимум",
"query_editor.completion.action.modulo": "остаток от деления",
"query_editor.completion.action.month_addition": "добавить месяцы",
"query_editor.completion.action.month_difference": "разница месяцев",
"query_editor.completion.action.month_end_date": "дата конца месяца",
"query_editor.completion.action.next_row": "следующая строка",
"query_editor.completion.action.null_branch": "ветвь NULL",
"query_editor.completion.action.null_if_equal": "вернуть NULL при равенстве",
"query_editor.completion.action.null_replacement": "замена NULL",
"query_editor.completion.action.number_conversion": "преобразовать в число",
"query_editor.completion.action.number_formatting": "форматирование числа",
"query_editor.completion.action.position_lookup": "найти позицию",
"query_editor.completion.action.power_operation": "возведение в степень",
"query_editor.completion.action.previous_row": "предыдущая строка",
"query_editor.completion.action.quantile": "квантиль",
"query_editor.completion.action.random_number": "случайное число",
"query_editor.completion.action.rank": "ранг",
"query_editor.completion.action.rate_of_change": "скорость изменения",
"query_editor.completion.action.regex_match": "совпадение по регулярному выражению",
"query_editor.completion.action.regex_replace": "замена по регулярному выражению",
"query_editor.completion.action.replacement": "замена",
"query_editor.completion.action.right_padding": "дополнить справа",
"query_editor.completion.action.right_space_trimming": "убрать пробелы справа",
"query_editor.completion.action.right_substring": "извлечь справа",
"query_editor.completion.action.round_down": "округлить вниз",
"query_editor.completion.action.round_up": "округлить вверх",
"query_editor.completion.action.rounding": "округление",
"query_editor.completion.action.row_number": "номер строки",
"query_editor.completion.action.set_lookup": "поиск по множеству",
"query_editor.completion.action.sha1_hash": "SHA1-хеш",
"query_editor.completion.action.sha2_hash": "SHA2-хеш",
"query_editor.completion.action.space_trimming": "убрать пробелы",
"query_editor.completion.action.spread": "разброс",
"query_editor.completion.action.sql_literal": "SQL-литерал",
"query_editor.completion.action.square_root": "квадратный корень",
"query_editor.completion.action.string_aggregation": "агрегация строк",
"query_editor.completion.action.string_conversion": "преобразовать в строку",
"query_editor.completion.action.string_repetition": "повторить строку",
"query_editor.completion.action.string_reversal": "обратить строку",
"query_editor.completion.action.string_to_date": "преобразовать строку в дату",
"query_editor.completion.action.string_to_timestamp": "преобразовать строку во временную метку",
"query_editor.completion.action.struct_construction": "построить структуру",
"query_editor.completion.action.substring_extraction": "извлечение подстроки",
"query_editor.completion.action.sum": "сумма",
"query_editor.completion.action.time_difference": "разница времени",
"query_editor.completion.action.time_value": "время",
"query_editor.completion.action.time_weighted_average": "среднее, взвешенное по времени",
"query_editor.completion.action.timestamp_difference": "разница временных меток",
"query_editor.completion.action.truncate_date_or_number": "усечь дату или число",
"query_editor.completion.action.try_conversion": "попытаться преобразовать",
"query_editor.completion.action.type_conversion": "преобразование типа",
"query_editor.completion.action.unix_time_to_datetime": "преобразовать Unix-время в дату и время",
"query_editor.completion.action.unix_timestamp": "Unix-временная метка",
"query_editor.completion.action.uppercase": "преобразовать в верхний регистр",
"query_editor.completion.action.uuid_generation": "сгенерировать UUID",
"query_editor.completion.action.value_formatting": "форматирование значения",
"query_editor.completion.action.version": "версия",
"query_editor.completion.detail.aggregate": "Агрегатная функция",
"query_editor.completion.detail.aggregate_count": "Агрегат - подсчет",
"query_editor.completion.detail.conditional": "Условная функция",
"query_editor.completion.detail.conditional_if": "Условие - IF",
"query_editor.completion.detail.conversion": "Функция преобразования типа",
"query_editor.completion.detail.conversion_cast": "Преобразование - приведение типа",
"query_editor.completion.detail.crypto_md5": "Хеш - MD5",
"query_editor.completion.detail.date_now": "Дата - текущая дата и время",
"query_editor.completion.detail.date_time": "Функция даты и времени",
"query_editor.completion.detail.info": "Информационная функция",
"query_editor.completion.detail.info_database": "Информация - текущая база данных",
"query_editor.completion.detail.json": "JSON-функция",
"query_editor.completion.detail.json_extract": "JSON - извлечь значение",
"query_editor.completion.detail.math": "Математическая функция",
"query_editor.completion.detail.math_abs": "Математика - абсолютное значение",
"query_editor.completion.detail.modifier_distinct": "Модификатор - уникальные значения",
"query_editor.completion.detail.sql_function": "SQL-функция",
"query_editor.completion.detail.string": "Строковая функция",
"query_editor.completion.detail.string_concat": "Строка - конкатенация",
"query_editor.completion.detail.utility": "Служебная функция",
"query_editor.completion.detail.window": "Оконная функция",
"query_editor.completion.detail.window_row_number": "Окно - номер строки",
"query_editor.completion.documentation.comment": "Комментарий: {{comment}}",
"query_editor.empty_state.description": "Запустите запрос, и результаты отобразятся ниже в новой таблице данных.",
"query_editor.empty_state.title": "Ожидание выполнения SQL",
"query_editor.format.keyword_lower": "Ключевые слова в нижнем регистре",
"query_editor.format.keyword_upper": "Ключевые слова в верхнем регистре",
"query_editor.format.restore_last_format": "Вернуть состояние до последнего форматирования",
"query_editor.format.shortcut_settings": "Настройки сочетаний клавиш...",
"query_editor.format.snippet_settings": "Настройки сниппетов...",
"query_editor.hover.open_function_with_shortcut": "{{shortcut}} + щелчок, чтобы открыть эту функцию",
"query_editor.hover.open_materialized_view_with_shortcut": "{{shortcut}} + щелчок, чтобы открыть это материализованное представление",
"query_editor.hover.open_procedure_with_shortcut": "{{shortcut}} + щелчок, чтобы открыть эту хранимую процедуру",
"query_editor.hover.open_table_with_shortcut": "{{shortcut}} + щелчок, чтобы открыть эту таблицу",
"query_editor.hover.open_trigger_with_shortcut": "{{shortcut}} + щелчок, чтобы открыть этот триггер",
"query_editor.hover.open_view_with_shortcut": "{{shortcut}} + щелчок, чтобы открыть это представление",
"query_editor.hover.switch_database_with_shortcut": "{{shortcut}} + щелчок, чтобы переключиться на эту базу данных",
"query_editor.max_rows.option_1000": "Макс. строк: 1000",
"query_editor.max_rows.option_20000": "Макс. строк: 20000",
"query_editor.max_rows.option_500": "Макс. строк: 500",
"query_editor.max_rows.option_5000": "Макс. строк: 5000",
"query_editor.max_rows.option_unlimited": "Макс. строк: без ограничения",
"query_editor.max_rows.tooltip": "Максимальное число возвращаемых строк. Для SELECT автоматически добавляется LIMIT, чтобы большие результаты не блокировали интерфейс.",
"query_editor.message.append_success": "Код добавлен.",
"query_editor.message.cancel_failed": "Не удалось отменить запрос: {{error}}",
"query_editor.message.cancel_no_running": "Нет выполняющегося запроса для отмены.",
"query_editor.message.cancel_success": "Запрос отменен.",
"query_editor.message.connection_not_found": "Подключение не найдено.",
"query_editor.message.connection_readonly_blocked": "Для этого подключения включена защита production, разрешены только операции запроса.",
"query_editor.message.execution_failed_with_error": "Ошибка выполнения запроса: {{error}}",
"query_editor.message.execution_multi_success": "Выполнено инструкций: {{statements}}, создано наборов результатов: {{results}}.",
"query_editor.message.execution_result_sets_success": "Выполнение завершено, создано наборов результатов: {{results}}.",
"query_editor.message.execution_success": "Выполнение успешно.",
"query_editor.message.export_sql_file_failed": "Не удалось экспортировать файл SQL: {{error}}",
"query_editor.message.export_sql_file_success": "Файл SQL экспортирован.",
"query_editor.message.format_failed": "Ошибка форматирования: возможно, синтаксис SQL неверен.",
"query_editor.message.format_restore_success": "Восстановлено состояние SQL до форматирования.",
"query_editor.message.insert_success": "Код вставлен в текущую позицию курсора.",
"query_editor.message.no_executable_sql": "Нет SQL для выполнения.",
"query_editor.message.no_format_restore_snapshot": "Нет сохранённого состояния SQL до форматирования для восстановления.",
"query_editor.message.no_selectable_sql": "Нет SQL-инструкции для выбора.",
"query_editor.message.object_info_target_not_found": "Текущий курсор не указывает на распознанную таблицу или колонку.",
"query_editor.message.page_query_empty": "Запрос страницы не вернул набор результатов.",
"query_editor.message.page_query_failed": "Ошибка запроса страницы: {{error}}",
"query_editor.message.read_only_index_metadata_unavailable": "Не удалось загрузить метаданные уникального индекса, поэтому изменения нельзя безопасно зафиксировать.",
"query_editor.message.read_only_no_safe_locator": "Первичный ключ или подходящий уникальный индекс не обнаружен, поэтому изменения нельзя безопасно зафиксировать.",
"query_editor.message.read_only_oracle_rowid_injection_unavailable": "В Oracle-запросе используется *, поэтому столбец-локатор ROWID не удалось автоматически внедрить. Результат остается только для чтения.",
"query_editor.message.read_only_system_metadata": "Результаты запросов к системным метаданным остаются доступными только для чтения.",
"query_editor.message.read_only_table_locator_metadata_unavailable": "Не удалось загрузить метаданные первичного ключа/уникального индекса для {{table}}, поэтому изменения нельзя безопасно зафиксировать.",
"query_editor.message.read_only_warning_with_detail": "Результаты запроса остаются доступными только для чтения: {{detail}}",
"query_editor.message.refresh_failed": "Не удалось обновить: {{error}}",
"query_editor.message.renamed": "Запрос переименован.",
"query_editor.message.save_first_before_rename": "Сначала сохраните запрос, а затем переименуйте его.",
"query_editor.message.save_query_failed": "Не удалось сохранить запрос: {{error}}",
"query_editor.message.save_sql_file_failed": "Не удалось сохранить SQL-файл: {{error}}",
"query_editor.message.saved": "Запрос сохранен.",
"query_editor.message.select_database_first": "Сначала выберите базу данных.",
"query_editor.message.sql_file_saved": "SQL-файл сохранен.",
"query_editor.message.statement_failed_prefix": "Ошибка в инструкции {{index}}: ",
"query_editor.message.unsupported_source": "Этот источник данных не поддерживает редактор SQL-запросов. Используйте соответствующую страницу.",
"query_editor.object_info.column": "Столбец",
"query_editor.object_info.database": "База данных",
"query_editor.object_info.label.database": "База данных",
"query_editor.object_info.label.schema": "Схема",
"query_editor.object_info.label.separator": ": ",
"query_editor.object_info.label.table": "Таблица",
"query_editor.object_info.label.type": "Тип",
"query_editor.object_info.materialized_view": "Материализованное представление",
"query_editor.object_info.table": "Таблица",
"query_editor.placeholder.connection": "Выберите подключение",
"query_editor.placeholder.database": "Выберите базу данных",
"query_editor.result.affected_rows": "Затронуто строк: {{count}}",
"query_editor.result.ai_diagnose": "AI-диагностика",
"query_editor.result.close": "Закрыть результат",
"query_editor.result.execution_failed": "Ошибка выполнения",
"query_editor.result.execution_success": "Выполнение успешно",
"query_editor.result.tab_title": "Результат {{index}} ({{count}})",
"query_editor.result.tab_title_success": "Результат {{index}} ✓",
"query_editor.results_panel.action.hide": "Скрыть",
"query_editor.results_panel.aria.hide": "Скрыть область результатов",
"query_editor.results_panel.menu.close_all": "Закрыть все вкладки",
"query_editor.results_panel.menu.close_left": "Закрыть вкладки слева",
"query_editor.results_panel.menu.close_other": "Закрыть другие вкладки",
"query_editor.results_panel.menu.close_right": "Закрыть вкладки справа",
"query_editor.results_panel.message.action.copy": "Копировать",
"query_editor.results_panel.message.copy_failed": "Не удалось скопировать сообщение: {{detail}}",
"query_editor.results_panel.message.copy_unsupported": "Буфер обмена недоступен в текущей среде",
"query_editor.results_panel.message.title": "Сообщения выполнения",
"query_editor.results_panel.panel.title": "Область результатов",
"query_editor.results_panel.tab.message": "Сообщение {{index}}",
"query_editor.results_panel.tab.result": "Результат {{index}}",
"query_editor.results_panel.tooltip.hide": "Скрыть область результатов",
"query_editor.results_panel.tooltip.hide_with_shortcut": "Скрыть область результатов ({{shortcut}})",
"query_editor.save_modal.name_label": "Имя запроса",
"query_editor.save_modal.name_placeholder": "Например: запросить всех пользователей",
"query_editor.save_modal.name_required": "Введите имя запроса.",
"query_editor.save_modal.rename_ok": "Переименовать",
"query_editor.save_modal.rename_title": "Переименовать запрос",
"query_editor.save_modal.title": "Сохранить запрос",
"query_editor.save_modal.unnamed": "Запрос без имени",
"query_editor.slash_command.diff.description": "Сравнить различия таблиц и создать изменения",
"query_editor.slash_command.diff.label": "Сравнение таблиц",
"query_editor.slash_command.diff.prompt": "Сравни структуры двух таблиц и сгенерируй ALTER-инструкции для миграции со старой версии на новую.",
"query_editor.slash_command.explain.description": "Объяснить логику выбранного SQL",
"query_editor.slash_command.explain.label": "Объяснить SQL",
"query_editor.slash_command.explain.prompt": "Объясни логику выполнения этой SQL-инструкции:\n```sql\n{{sql}}\n```",
"query_editor.slash_command.index.description": "Рекомендовать стратегию индексов",
"query_editor.slash_command.index.label": "Рекомендации по индексам",
"query_editor.slash_command.index.prompt": "На основе текущей структуры таблиц и типичных сценариев запросов предложи стратегию индексов и при необходимости добавь SQL.",
"query_editor.slash_command.mock.description": "Сгенерировать тестовые INSERT-данные",
"query_editor.slash_command.mock.label": "Тестовые данные",
"query_editor.slash_command.mock.prompt": "Сгенерируй 10 осмысленных тестовых INSERT-строк для связанной таблицы.",
"query_editor.slash_command.optimize.description": "Проанализировать узкие места производительности SQL",
"query_editor.slash_command.optimize.label": "Анализ оптимизации",
"query_editor.slash_command.optimize.prompt": "Проанализируй эту SQL-инструкцию на проблемы производительности и предложи оптимизацию:\n```sql\n{{sql}}\n```",
"query_editor.slash_command.query.description": "Опишите, что нужно запросить",
"query_editor.slash_command.query.label": "Запрос на естественном языке",
"query_editor.slash_command.query.prompt": "Напиши SQL-запрос для этого требования:",
"query_editor.slash_command.schema.description": "Проверить качество структуры таблиц",
"query_editor.slash_command.schema.label": "Ревью дизайна таблиц",
"query_editor.slash_command.schema.prompt": "Проверь дизайн связанных таблиц, включая типы полей, нормализацию, индексы и предложения по улучшению.",
"query_editor.slash_command.sql.description": "Описать требование и сгенерировать инструкцию",
"query_editor.slash_command.sql.label": "Сгенерировать SQL",
"query_editor.slash_command.sql.prompt": "Сгенерируй SQL для этого требования:",
"query_editor.sql_error.rule.column_missing.explanation": "SQL ссылается на столбец, которого нет в наборе результатов, имя отличается по написанию или столбца нет в текущей таблице.",
"query_editor.sql_error.rule.column_missing.label": "Столбец не существует",
"query_editor.sql_error.rule.column_missing.suggestion": "Проверьте имена столбцов, алиасы, регистр, алиасы таблиц и принадлежность столбца текущему объекту FROM/JOIN.",
"query_editor.sql_error.rule.connection_or_auth.explanation": "Клиент не смог подключиться к базе данных, либо есть проблема с учетными данными, сетью или состоянием экземпляра.",
"query_editor.sql_error.rule.connection_or_auth.label": "Ошибка подключения к базе данных или аутентификации",
"query_editor.sql_error.rule.connection_or_auth.suggestion": "Проверьте хост, порт, имя пользователя, пароль, доступность сети, proxy/SSH-туннель и состояние службы базы данных.",
"query_editor.sql_error.rule.constraint_failed.explanation": "Данные нарушают внешний ключ, NOT NULL, CHECK-ограничение или правило ссылочной целостности.",
"query_editor.sql_error.rule.constraint_failed.label": "Ошибка проверки ограничения",
"query_editor.sql_error.rule.constraint_failed.suggestion": "Проверьте связанные записи родительской таблицы, обязательные поля, условия CHECK и правильность порядка записи.",
"query_editor.sql_error.rule.generic.explanation": "База данных вернула ошибку выполнения, но более конкретный тип ошибки не был определен.",
"query_editor.sql_error.rule.generic.label": "Ошибка выполнения в базе данных",
"query_editor.sql_error.rule.generic.suggestion": "Продолжайте диагностику по исходной ошибке, фрагменту SQL и текущему диалекту базы данных.",
"query_editor.sql_error.rule.object_missing.explanation": "SQL ссылается на таблицу, представление, последовательность или другой объект базы данных, которого нет в текущей базе или schema.",
"query_editor.sql_error.rule.object_missing.label": "Таблица или объект не существует",
"query_editor.sql_error.rule.object_missing.suggestion": "Проверьте имя объекта, регистр, префикс schema/database и правильность выбранной для запроса базы данных.",
"query_editor.sql_error.rule.permission_denied.explanation": "У текущей учетной записи базы данных нет прав на выполнение этого SQL или доступ к связанным объектам.",
"query_editor.sql_error.rule.permission_denied.label": "Недостаточно прав",
"query_editor.sql_error.rule.permission_denied.suggestion": "Проверьте права учетной записи, права на schema, ограничения подключения только для чтения и необходимость выдачи прав администратором.",
"query_editor.sql_error.rule.syntax.explanation": "Обычно причина в ключевых словах, запятых, скобках, кавычках, порядке инструкций или несовпадении текущего SQL-диалекта.",
"query_editor.sql_error.rule.syntax.label": "Синтаксическая ошибка SQL",
"query_editor.sql_error.rule.syntax.suggestion": "Проверьте фрагмент SQL рядом с указанной позицией и убедитесь, что тип текущего источника данных соответствует SQL-диалекту.",
"query_editor.sql_error.rule.timeout_or_canceled.explanation": "SQL выполнялся дольше лимита таймаута или выполнение было отменено вручную.",
"query_editor.sql_error.rule.timeout_or_canceled.label": "Запрос превысил таймаут или был отменен",
"query_editor.sql_error.rule.timeout_or_canceled.suggestion": "Проверьте план выполнения SQL, условия фильтрации и индексы; при необходимости сузьте диапазон запроса или измените таймаут.",
"query_editor.sql_error.rule.type_mismatch.explanation": "Записываемое, сравниваемое или преобразуемое значение не соответствует целевому столбцу или формату выражения.",
"query_editor.sql_error.rule.type_mismatch.label": "Несоответствие типа или формата данных",
"query_editor.sql_error.rule.type_mismatch.suggestion": "Проверьте даты, числа, булевы значения, enum-значения, неявные преобразования и типы столбцов; при необходимости используйте явный CAST.",
"query_editor.sql_error.rule.unique_conflict.explanation": "Вставляемые или обновляемые данные дублируют существующее значение в уникальном индексе, первичном ключе или уникальном ограничении.",
"query_editor.sql_error.rule.unique_conflict.label": "Конфликт уникального ограничения или первичного ключа",
"query_editor.sql_error.rule.unique_conflict.suggestion": "Проверьте дублирующееся значение ключа; при необходимости используйте UPDATE или UPSERT либо измените значение уникального ключа.",
"query_editor.sql_error.unknown": "Неизвестная ошибка",
"query_editor.sql_error.wrapper.raw_line": "Исходная ошибка: {{error}}",
"query_editor.sql_error.wrapper.semantic_line": "Смысл: {{label}}. {{explanation}}",
"query_editor.sql_error.wrapper.suggestion_line": "Рекомендация: {{suggestion}}",
"query_editor.transaction.action.commit": "Commit",
"query_editor.transaction.action.commit_with_count": "Commit ({{count}})",
"query_editor.transaction.action.rollback": "Rollback",
"query_editor.transaction.delay.immediate": "Сразу",
"query_editor.transaction.delay.immediate_commit": "Commit сразу",
"query_editor.transaction.delay.seconds_commit": "Commit через {{seconds}}s",
"query_editor.transaction.message.pending_managed_transaction": "В SQL-редакторе уже есть незавершённая транзакция. Перед выполнением нового DML-оператора выполните commit или rollback.",
"query_editor.transaction.mode.auto": "Авто",
"query_editor.transaction.mode.manual": "Вручную",
"query_editor.transaction.mode.tooltip": "Как в DBeaver: когда SQL-редактор выполняет DML, например INSERT/UPDATE/DELETE/MERGE/REPLACE, GoNavi сначала открывает управляемую транзакцию. В ручном режиме нужно выполнить commit/rollback; в автоматическом режиме после успешного выполнения автоматически запускается COMMIT.",
"query_editor.transaction.status.auto_commit_countdown": "Автоматический commit через {{seconds}}s",
"query_editor.transaction.status.auto_committing": "Выполняется автоматический commit",
"query_history.backend.error.connection_fingerprint_invalid": "Не удалось разобрать отпечаток подключения",
"query_history.backend.message.cleared": "История медленных запросов очищена",
"query_history.backend.message.loaded": "Загрузка завершена",
"query.format": "Форматировать SQL",
"query.new": "Новый запрос",
"query.run": "Выполнить",
"query.save": "Сохранить запрос",
"query.stop": "Остановить",
"redis_command.action.clear_console": "Очистить консоль",
"redis_command.action.execute": "Выполнить (Cmd+Enter)",
"redis_command.completion.detail": "Команда Redis",
"redis_command.message.command_required": "Введите команду для выполнения",
"redis_command.output.empty_hint": "Выполняйте команды в этой консоли; результаты отображаются как возвращены.",
"redis_command.output.selection_tip": "Подсказка: выделите строки и нажмите Ctrl + Enter, чтобы выполнить только выделение.",
"redis_command.output.title": "Вывод выполнения",
"redis_command.state.connection_not_found": "Подключение не найдено",
"redis_command.title.console": "Консоль Redis",
"redis_monitor.action.pause_refresh": "Приостановить обновление",
"redis_monitor.action.refresh_now": "Обновить сейчас",
"redis_monitor.action.resume_refresh": "Возобновить обновление",
"redis_monitor.chart.clients_keys": "Сведения о подключениях (клиенты и Keys)",
"redis_monitor.chart.cpu_usage": "Использование CPU",
"redis_monitor.chart.memory": "Расход памяти",
"redis_monitor.chart.qps": "Пропускная способность запросов (QPS)",
"redis_monitor.message.fetch_failed": "Не удалось получить сведения Redis: {{detail}}",
"redis_monitor.metric.blocked_clients": "Заблокировано: {{value}}",
"redis_monitor.metric.clients": "Клиенты",
"redis_monitor.metric.days": "Дней: {{value}}",
"redis_monitor.metric.memory_peak": "Пик: {{value}}",
"redis_monitor.metric.memory_used": "Используемая память",
"redis_monitor.metric.ops": "Пропускная способность (OPS)",
"redis_monitor.metric.uptime": "Время работы",
"redis_monitor.series.clients": "Клиенты",
"redis_monitor.series.rss_memory": "Память RSS",
"redis_monitor.series.system": "Система",
"redis_monitor.series.total_keys": "Всего Keys",
"redis_monitor.series.used_memory": "Используемая память",
"redis_monitor.series.user": "Пользователь",
"redis_monitor.server_details.title": "Подробные параметры сервера",
"redis_monitor.state.connection_not_found": "Подключение не найдено",
"redis_monitor.title.instance": "Монитор Redis-инстанса",
"redis_viewer.action.add_field": "Добавить поле",
"redis_viewer.action.add_list_head": "Добавить в начало",
"redis_viewer.action.add_list_tail": "Добавить в конец",
"redis_viewer.action.add_member": "Добавить участника",
"redis_viewer.action.add_stream_entry": "Добавить запись",
"redis_viewer.action.clear_group_selection": "Снять выбор",
"redis_viewer.action.clear_selection": "Снять выбор",
"redis_viewer.action.copy": "Копировать",
"redis_viewer.action.copy_key_name": "Копировать имя Key",
"redis_viewer.action.copy_value": "Копировать значение",
"redis_viewer.action.delete_key": "Удалить Key",
"redis_viewer.action.delete_selected": "Удалить выбранное ({{count}})",
"redis_viewer.action.edit": "Редактировать",
"redis_viewer.action.load_more": "Загрузить еще",
"redis_viewer.action.new_key": "Создать",
"redis_viewer.action.refresh": "Обновить",
"redis_viewer.action.rename_key": "Переименовать Key",
"redis_viewer.action.select_all_loaded": "Выбрать все загруженные",
"redis_viewer.action.select_group": "Выбрать",
"redis_viewer.action.set_ttl": "Задать TTL",
"redis_viewer.aria.collapse_group": "Свернуть группу",
"redis_viewer.aria.expand_group": "Развернуть группу",
"redis_viewer.confirm.delete_field": "Удалить это поле?",
"redis_viewer.confirm.delete_key": "Удалить Key \"{{key}}\"?",
"redis_viewer.confirm.delete_member": "Удалить этого участника?",
"redis_viewer.confirm.delete_selected": "Удалить выбранные Keys: {{count}}?",
"redis_viewer.confirm.delete_stream_entry": "Удалить эту запись Stream?",
"redis_viewer.field.field_name": "Имя поля",
"redis_viewer.field.fields_json": "Поля JSON:",
"redis_viewer.field.key": "Key",
"redis_viewer.field.member": "Участник:",
"redis_viewer.field.new_key_name": "Новое имя Key",
"redis_viewer.field.new_score": "Новая оценка:",
"redis_viewer.field.score": "Оценка:",
"redis_viewer.field.stream_id": "ID (необязательно, по умолчанию *):",
"redis_viewer.field.ttl_seconds": "TTL (секунды)",
"redis_viewer.field.value": "Значение",
"redis_viewer.help.ttl_forever": "-1 означает без срока действия",
"redis_viewer.hint.binary_readonly": "Двоичные данные нельзя редактировать",
"redis_viewer.hint.switch_auto_to_edit": "Переключитесь в режим Auto для редактирования",
"redis_viewer.label.encoding": "Кодировка: {{encoding}}",
"redis_viewer.label.keys_count": "Keys: {{count}}",
"redis_viewer.label.length": "Длина: {{count}}",
"redis_viewer.label.node_count": "Узлов: {{count}}",
"redis_viewer.label.original_key": "Исходный Key: {{key}}",
"redis_viewer.message.add_failed": "Не удалось добавить: {{detail}}",
"redis_viewer.message.add_success": "Добавлено",
"redis_viewer.message.add_success_with_id": "Добавлено {{id}}",
"redis_viewer.message.copied": "Скопировано",
"redis_viewer.message.copy_failed": "Не удалось скопировать",
"redis_viewer.message.create_failed": "Не удалось создать: {{detail}}",
"redis_viewer.message.create_success": "Создано",
"redis_viewer.message.delete_failed": "Не удалось удалить: {{detail}}",
"redis_viewer.message.delete_success": "Удалено",
"redis_viewer.message.deleted_keys": "Удалено Keys: {{count}}",
"redis_viewer.message.fields_json_invalid": "Поля JSON недействительны",
"redis_viewer.message.fields_must_be_json_object": "Поля должны быть объектом JSON",
"redis_viewer.message.fields_required": "Укажите хотя бы одно поле",
"redis_viewer.message.key_check_failed": "Не удалось проверить целевой Key: {{detail}}",
"redis_viewer.message.key_missing_removed": "Key больше не существует или истек и был удален из списка",
"redis_viewer.message.key_name_copied": "Имя Key скопировано",
"redis_viewer.message.load_keys_failed": "Не удалось загрузить Keys: {{detail}}",
"redis_viewer.message.new_key_name_required": "Введите новое имя Key",
"redis_viewer.message.rename_failed": "Не удалось переименовать: {{detail}}",
"redis_viewer.message.rename_same_key": "Новое имя Key должно отличаться от исходного",
"redis_viewer.message.rename_success": "Key переименован",
"redis_viewer.message.save_failed": "Не удалось сохранить: {{detail}}",
"redis_viewer.message.save_success": "Сохранено",
"redis_viewer.message.set_failed": "Не удалось задать значение: {{detail}}",
"redis_viewer.message.stream_entry_not_deleted": "Запись Stream не удалена; возможно, ее уже нет",
"redis_viewer.message.target_key_exists": "Целевой Key уже существует: {{key}}",
"redis_viewer.message.ttl_set_success": "TTL обновлен",
"redis_viewer.message.update_failed": "Не удалось обновить: {{detail}}",
"redis_viewer.message.update_success": "Обновлено",
"redis_viewer.message.value_load_failed": "Не удалось получить значение: {{detail}}",
"redis_viewer.modal.add_element": "Добавить элемент",
"redis_viewer.modal.add_element_head": "Добавить элемент в начало",
"redis_viewer.modal.add_field": "Добавить поле",
"redis_viewer.modal.add_member": "Добавить участника",
"redis_viewer.modal.add_stream_entry": "Добавить запись Stream",
"redis_viewer.modal.edit_field": "Редактировать поле: {{field}}",
"redis_viewer.modal.edit_index": "Редактировать индекс {{index}}",
"redis_viewer.modal.edit_value": "Редактировать значение",
"redis_viewer.modal.new_key": "Новый Key",
"redis_viewer.modal.rename_key": "Переименовать Key",
"redis_viewer.modal.set_ttl": "Задать TTL",
"redis_viewer.modal.update_score": "Обновить оценку",
"redis_viewer.notice.large_keyspace_mode": "Включен режим производительности для большого keyspace. Отрисовка узлов упрощена, сохраняется до {{count}} развернутых групп.",
"redis_viewer.placeholder.key_name": "Имя Key",
"redis_viewer.placeholder.member_value": "Введите значение участника",
"redis_viewer.placeholder.new_element_value": "Введите значение нового элемента",
"redis_viewer.placeholder.new_key_name": "new:key:name",
"redis_viewer.placeholder.new_member_value": "Введите значение нового участника",
"redis_viewer.placeholder.search_exact": "Введите полный Key или namespace для точного поиска",
"redis_viewer.placeholder.search_fuzzy": "Поиск Keys (нечеткое совпадение)",
"redis_viewer.placeholder.stream_id": "Например: * или 1723110000000-0",
"redis_viewer.placeholder.value": "Значение",
"redis_viewer.search.exact": "Точно",
"redis_viewer.search.fuzzy": "Нечетко",
"redis_viewer.state.connection_not_found": "Подключение не найдено",
"redis_viewer.state.empty_selection": "Выберите Key, чтобы просмотреть детали",
"redis_viewer.table.action": "Действия",
"redis_viewer.table.field": "Поле",
"redis_viewer.table.fields": "Поля",
"redis_viewer.table.index": "Индекс",
"redis_viewer.table.member": "Участник",
"redis_viewer.table.score": "Оценка",
"redis_viewer.table.value": "Значение",
"redis_viewer.title.active_key": "Активный Key",
"redis_viewer.title.key_explorer": "Обозреватель Keys",
"redis_viewer.title.namespace_key": "Пространство имен / Key",
"redis_viewer.title.type_ttl": "Тип / TTL",
"redis_viewer.tooltip.copy_fields_json": "Копировать поля JSON",
"redis_viewer.tooltip.copy_id": "Копировать ID",
"redis_viewer.tooltip.copy_key_name": "Копировать имя Key",
"redis_viewer.tooltip.copy_value": "Копировать значение",
"redis_viewer.tooltip.resize_panels": "Перетащите, чтобы изменить размер",
"redis_viewer.topology.cluster": "Cluster",
"redis_viewer.topology.sentinel": "Sentinel",
"redis_viewer.topology.single": "Одиночный",
"redis_viewer.ttl.days_hours": "{{days}} д. {{hours}} ч.",
"redis_viewer.ttl.expired": "Истек",
"redis_viewer.ttl.forever": "Постоянный",
"redis_viewer.ttl.hours_minutes": "{{hours}} ч. {{minutes}} мин.",
"redis_viewer.ttl.minutes_seconds": "{{minutes}} мин. {{seconds}} сек.",
"redis_viewer.ttl.seconds": "{{seconds}} сек.",
"redis_viewer.validation.key_required": "Введите Key",
"redis_viewer.validation.new_key_name_required": "Введите новое имя Key",
"redis_viewer.validation.value_required": "Введите значение",
"redis_viewer.view.auto": "Auto",
"redis_viewer.view.hex": "Hex",
"redis_viewer.view.text": "Исходный текст",
"redis_viewer.view.title": "Режим просмотра",
"redis.backend.error.address_required": "Адрес подключения Redis не может быть пустым",
"redis.backend.error.argument_invalid_type": "{{name}} имеет недопустимый тип",
"redis.backend.error.argument_required": "{{name}} обязателен",
"redis.backend.error.cluster_connect_failed": "Не удалось подключиться к Redis Cluster: {{detail}}",
"redis.backend.error.command_required": "Command не может быть пустым",
"redis.backend.error.connect_attempt_failed": "Попытка подключения {{attempt}} завершилась ошибкой: {{detail}}",
"redis.backend.error.connect_failed": "Не удалось подключиться к Redis: {{detail}}",
"redis.backend.error.connect_tls_setup_failed": "Сбой настройки TLS на попытке {{attempt}}: {{detail}}",
"redis.backend.error.invalid_node_address": "Недопустимый адрес узла Redis: {{address}}",
"redis.backend.error.invalid_port": "Недопустимый порт Redis: {{address}}",
"redis.backend.error.node_address_required": "Адрес узла Redis не может быть пустым",
"redis.backend.error.select_db_index_invalid": "Недопустимый индекс базы данных: {{value}}",
"redis.backend.error.select_db_index_out_of_range": "Индекс базы данных должен быть в диапазоне от {{min}} до {{max}}",
"redis.backend.error.select_db_index_required": "Для команды SELECT требуется индекс базы данных",
"redis.backend.error.sentinel_connect_failed": "Не удалось подключиться к Redis Sentinel: {{detail}}",
"redis.backend.error.sentinel_master_required": "Для режима Redis Sentinel требуется имя master",
"redis.backend.error.ssh_tunnel_create_failed": "Не удалось создать SSH-туннель: {{detail}}",
"redis.backend.error.test_connection_close_failed": "Подключение выполнено, но не удалось закрыть тестовое подключение: {{detail}}",
"redis.backend.error.topology_ssh_tunnel_unsupported": "Режим Redis {{topology}} пока не поддерживает SSH-туннели. Отключите SSH и повторите попытку.",
"redis.backend.label.topology_cluster": "кластер",
"redis.backend.label.topology_multi_node": "многоузловой",
"redis.backend.label.topology_sentinel": "Sentinel",
"redis.backend.message.add_success": "Добавление выполнено",
"redis.backend.message.connect_success": "Подключение выполнено",
"redis.backend.message.delete_success": "Удаление выполнено",
"redis.backend.message.flush_success": "Очистка выполнена",
"redis.backend.message.rename_success": "Переименование выполнено",
"redis.backend.message.select_db_success": "База данных переключена",
"redis.backend.message.set_success": "Значение задано",
"redis.db_alias.menu.set": "Задать псевдоним",
"redis.db_alias.modal.placeholder": "напр. cache, sessions (оставьте пустым для сброса)",
"redis.db_alias.modal.title": "Псевдоним для {{db}}",
"saved_query.default_name": "Запрос {{index}}",
"saved_query.error.missing_context": "В сохраненном запросе отсутствует SQL, подключение или контекст базы данных",
"security_update.action.open_ai_settings": "Настройки AI",
"security_update.action.open_connection": "Открыть подключение",
"security_update.action.open_proxy_settings": "Настройки прокси",
"security_update.action.retry_update": "Проверить снова",
"security_update.action.view_details": "Показать сведения",
"security_update.backend.issue.ai_provider.migration_required": "Конфигурация AI-провайдера все еще сохранена в текущей конфигурации приложения. После завершения безопасного обновления она будет перенесена в новое безопасное хранилище.",
"security_update.backend.issue.ai_provider.missing_or_resave": "Конфигурация AI-провайдера больше не существует или ее нужно сохранить заново перед завершением безопасного обновления.",
"security_update.backend.issue.ai_provider.secret_missing": "Для конфигурации AI-провайдера нужно добавить данные перед завершением безопасного обновления.",
"security_update.backend.issue.connection.incomplete": "Для конфигурации подключения нужно добавить данные перед завершением безопасного обновления.",
"security_update.backend.issue.connection.missing_or_resave": "Конфигурация подключения больше не существует или ее нужно сохранить заново перед завершением безопасного обновления.",
"security_update.backend.issue.connection.password_missing": "Пароль подключения потерян. Сохраните его заново перед продолжением.",
"security_update.backend.issue.global_proxy.missing_or_resave": "Настройки глобального прокси больше не существуют или их нужно сохранить заново перед завершением безопасного обновления.",
"security_update.backend.issue.global_proxy.password_incomplete": "Для пароля глобального прокси нужно добавить данные перед завершением безопасного обновления.",
"security_update.backend.issue.global_proxy.password_missing": "Пароль глобального прокси потерян. Сохраните его заново перед продолжением.",
"security_update.backend.issue.global_proxy.title": "Глобальный прокси",
"security_update.backend.issue.system.message": "Текущая среда не смогла завершить это безопасное обновление. Повторите попытку позже.",
"security_update.backend.issue.system.title": "Безопасное обновление не завершено",
"security_update.banner.action.restart_update": "Запустить обновление заново",
"security_update.banner.action.retry_check": "Проверить снова",
"security_update.banner.action.start_now": "Обновить сейчас",
"security_update.banner.action.view_details": "Показать сведения",
"security_update.banner.title": "Сохраненные конфигурации можно безопасно обновить",
"security_update.bootstrap.legacy.connection.message": "Это подключение все еще сохранено в локальной конфигурации текущего приложения. После завершения безопасного обновления оно будет перенесено в новое безопасное хранилище.",
"security_update.bootstrap.legacy.global_proxy.message": "Глобальные настройки прокси все еще сохранены в локальной конфигурации текущего приложения. После завершения безопасного обновления они будут перенесены в новое безопасное хранилище.",
"security_update.bootstrap.legacy.global_proxy.title": "Глобальный прокси",
"security_update.error.capability_unavailable": "Функция безопасного обновления недоступна",
"security_update.intro.action.details": "Показать сведения",
"security_update.intro.action.later": "Напомнить позже",
"security_update.intro.action.start_now": "Обновить сейчас",
"security_update.intro.description": "Чтобы сохраненные подключения, прокси и связанные настройки служб использовали новое безопасное хранилище, это обновление нужно один раз выполнить локально. Перед обновлением автоматически создается локальная резервная копия. Если обновление не завершится, система сохранит текущую рабочую конфигурацию, а вы сможете продолжить позже.",
"security_update.intro.subtitle": "Перед использованием нового безопасного хранилища нужно выполнить локальное обновление конфигурации.",
"security_update.intro.title": "Безопасное обновление сохраненных конфигураций",
"security_update.item_status.failed": "Ошибка",
"security_update.item_status.needs_attention": "Требует внимания",
"security_update.item_status.pending": "Ожидает обновления",
"security_update.item_status.skipped": "Пропущено",
"security_update.item_status.updated": "Обновлено",
"security_update.progress.default_detail": "Текущая рабочая конфигурация будет сохранена во время обновления. Подождите.",
"security_update.repair.warning.connection_not_found": "Соответствующее подключение не найдено. Сначала проверьте актуальный статус.",
"security_update.settings.action.close": "Закрыть",
"security_update.settings.action.restart_update": "Запустить обновление заново",
"security_update.settings.action.retry_check": "Проверить снова",
"security_update.settings.action.start": "Начать обновление",
"security_update.settings.backup_path": "Расположение резервной копии: ",
"security_update.settings.current_status": "Текущий статус: {{status}}",
"security_update.settings.empty_pending": "Ожидающих пунктов нет",
"security_update.settings.item_default_message": "Этот пункт требует дополнительной обработки перед завершением безопасного обновления.",
"security_update.settings.item_severity": "Уровень: {{severity}}",
"security_update.settings.item_status": "Статус: {{status}}",
"security_update.settings.last_error": "Последняя ошибка: ",
"security_update.settings.pending_list": "Ожидающие пункты",
"security_update.settings.recent_result": "Последний результат",
"security_update.settings.scope_title": "Область влияния",
"security_update.settings.subtitle": "Управление статусом безопасного обновления и ожидающими пунктами сохраненных конфигураций.",
"security_update.settings.summary.failed": "Ошибки",
"security_update.settings.summary.pending": "Ожидает обработки",
"security_update.settings.summary.skipped": "Пропущено",
"security_update.settings.summary.total": "Всего",
"security_update.settings.summary.updated": "Обновлено",
"security_update.settings.title": "Безопасное обновление",
"security_update.severity.high": "Высокий риск",
"security_update.severity.low": "Низкий риск",
"security_update.severity.medium": "Средний риск",
"security_update.status.completed.description": "Безопасное обновление сохраненных конфигураций завершено.",
"security_update.status.completed.label": "Завершено",
"security_update.status.in_progress.description": "Проверяется и обновляется безопасное хранилище сохраненных конфигураций.",
"security_update.status.in_progress.label": "Обновляется",
"security_update.status.needs_attention.description": "Обновление еще не завершено. Несколько конфигураций требуют внимания.",
"security_update.status.needs_attention.label": "Требует внимания",
"security_update.status.not_detected.description": "Сейчас нет безопасных обновлений, требующих внимания.",
"security_update.status.not_detected.label": "Не обнаружено",
"security_update.status.pending.description": "Доступно безопасное обновление. Можно начать сейчас или продолжить позже.",
"security_update.status.pending.label": "Ожидает обновления",
"security_update.status.postponed.description": "Это безопасное обновление отложено. Текущая рабочая конфигурация сохранена.",
"security_update.status.postponed.label": "Ожидает обновления",
"security_update.status.rolled_back.description": "Это обновление не завершено. Система сохранила текущую рабочую конфигурацию.",
"security_update.status.rolled_back.label": "Откат выполнен",
"settings.language.description": "Выберите язык интерфейса GoNavi.",
"settings.language.english": "English",
"settings.language.follow_system": "Как в системе",
"settings.language.german": "Deutsch",
"settings.language.japanese": "日本語",
"settings.language.restart_hint": "Для полного применения в некоторых редакторах и системных меню может потребоваться заново открыть окно.",
"settings.language.russian": "Русский",
"settings.language.simplified_chinese": "简体中文",
"settings.language.title": "Язык",
"settings.language.traditional_chinese": "繁體中文",
"settings.title": "Настройки",
"sidebar.action.backup_database_count": "Создать резервные копии баз данных ({{count}})",
"sidebar.action.backup_schema_data": "Резервная копия (структура + данные)",
"sidebar.action.batch_databases": "Пакетные операции с базами данных",
"sidebar.action.batch_tables": "Пакетные операции с таблицами",
"sidebar.action.cancel": "Отмена",
"sidebar.action.clear_selection": "Снять выбор со всех",
"sidebar.action.clear_tables": "Очистить таблицы",
"sidebar.action.close": "Закрыть",
"sidebar.action.continue": "Продолжить",
"sidebar.action.delete": "Удалить",
"sidebar.action.export_data_only": "Только данные (INSERT)",
"sidebar.action.export_database_schema_count": "Экспортировать структуры баз данных ({{count}})",
"sidebar.action.export_schema": "Экспортировать структуру",
"sidebar.action.invert_selection": "Инвертировать выбор",
"sidebar.action.locate_current_tab": "Найти текущую вкладку",
"sidebar.action.locate_current_table": "Найти текущую открытую таблицу",
"sidebar.action.new_group": "Новая группа",
"sidebar.action.pin_table": "Закрепить таблицу",
"sidebar.action.select_all": "Выбрать все",
"sidebar.action.unpin_table": "Открепить таблицу",
"sidebar.active_connection.actions": "Действия с подключением",
"sidebar.active_connection.current_host_database": "Текущий Host и база данных",
"sidebar.active_connection.no_database_selected": "База данных не выбрана",
"sidebar.active_connection.no_host_selected": "Host не выбран",
"sidebar.ai_prompt.explain.detail": "Особо опишите значения полей, первичные ключи/индексы, возможные связи, типовые сценарии запросов и риски.",
"sidebar.ai_prompt.explain.intro": "Объясните структуру и бизнес-смысл таблицы {{table}}.",
"sidebar.ai_prompt.query.detail": "Включите: запрос предварительного просмотра данных, запрос с фильтрацией по ключевым полям и один агрегирующий или статистический запрос.",
"sidebar.ai_prompt.query.intro": "Создайте 3 распространенных SQL-запроса для таблицы {{table}}.",
"sidebar.aria.switch_connection": "Переключиться на подключение {{name}}",
"sidebar.badge.recommended": "Рекомендуется",
"sidebar.batch_databases": "Пакетные базы данных",
"sidebar.batch_tables": "Пакетные таблицы",
"sidebar.batch.filtered_count": "Показано объектов: {{filtered}} / {{total}}",
"sidebar.batch.group.tables": "Таблицы",
"sidebar.batch.group.views": "Представления",
"sidebar.batch.no_matching_objects": "Нет подходящих объектов",
"sidebar.batch.selected_databases": "Выбрано баз данных: {{selected}} / {{total}}",
"sidebar.batch.selected_objects": "Выбрано объектов: {{selected}} / {{total}}",
"sidebar.command_search.action.ask_ai.title": "Спросить AI",
"sidebar.command_search.action.new_connection.meta": "Создать подключение к базе данных, среде выполнения или другому источнику данных",
"sidebar.command_search.action.new_connection.title": "Новый источник данных",
"sidebar.command_search.action.new_query.meta": "Открыть новую вкладку SQL-редактора",
"sidebar.command_search.action.open_ai.meta": "AI проанализирует текущий контекст базы данных",
"sidebar.command_search.action.open_ai.title": "Открыть AI-анализ данных",
"sidebar.command_search.action.open_sql_log.meta": "Открыть панель недавней истории выполнения",
"sidebar.command_search.action.open_sql_log.title": "Показать журнал выполнения SQL",
"sidebar.command_search.empty.ai": "Введите вопрос после \"?\" и нажмите Enter, чтобы отправить его на панель AI.",
"sidebar.command_search.empty.default": "Совпадений нет. Введите @таблица, чтобы искать только объекты таблиц, или ?вопрос, чтобы спросить AI.",
"sidebar.command_search.empty.object": "Подходящие таблицы, представления или материализованные представления не найдены.",
"sidebar.command_search.footer.ask_ai": "Отправить AI",
"sidebar.command_search.footer.navigate": "Навигация",
"sidebar.command_search.footer.object_only": "Только объекты таблиц",
"sidebar.command_search.footer.select": "Выбрать",
"sidebar.command_search.label": "Искать таблицы, подключения, действия",
"sidebar.command_search.no_filter_content": "Нет текста фильтра",
"sidebar.command_search.no_synced_filter": "Нет синхронизированного фильтра боковой панели",
"sidebar.command_search.object_kind.all": "Все",
"sidebar.command_search.object_kind.events": "События",
"sidebar.command_search.object_kind.filter_aria": "Фильтр объектов",
"sidebar.command_search.object_kind.packages": "Пакеты",
"sidebar.command_search.object_kind.routines": "Подпрограммы",
"sidebar.command_search.object_kind.sequences": "Последовательности",
"sidebar.command_search.object_kind.tables": "Таблицы",
"sidebar.command_search.object_kind.views": "Представления",
"sidebar.command_search.placeholder": "Искать таблицы, подключения, действия... или спросить AI",
"sidebar.command_search.recent_sql_fallback": "Запись SQL",
"sidebar.command_search.reset_filter": "Сбросить фильтр боковой панели",
"sidebar.command_search.scope.compact_smart": "Умно",
"sidebar.command_search.scope.database": "База данных",
"sidebar.command_search.scope.description": "\"Умный\" автоматически подбирает наиболее вероятные совпадения; ручной режим позволяет комбинировать измерения фильтрации.",
"sidebar.command_search.scope.host": "Host",
"sidebar.command_search.scope.manual_help": "Умный режим взаимоисключается с другими пунктами. Если точно известно, что нужно искать объекты, базы данных, Host или теги, переключитесь на ручную область, чтобы уменьшить шум в результатах.",
"sidebar.command_search.scope.manual_title": "Ручная область",
"sidebar.command_search.scope.multi_select": "Можно выбрать несколько",
"sidebar.command_search.scope.object": "Объекты таблиц",
"sidebar.command_search.scope.recommended": "Рекомендуется",
"sidebar.command_search.scope.smart": "Умный",
"sidebar.command_search.scope.smart_help": "Подходит для ежедневного поиска: автоматически охватывает имена, базы данных, Host и теги.",
"sidebar.command_search.scope.summary_smart": "Умный",
"sidebar.command_search.scope.tag": "Теги",
"sidebar.command_search.scope.title": "Область поиска",
"sidebar.command_search.scope.tooltip": "Область поиска: {{scope}}",
"sidebar.command_search.section.actions": "Действия",
"sidebar.command_search.section.ai": "AI · Вопрос",
"sidebar.command_search.section.goto": "Перейти",
"sidebar.command_search.section.recent": "Недавние запросы",
"sidebar.command_search.sync_to_filter_aria": "Синхронизировать с левым фильтром",
"sidebar.command_search.sync_to_filter_tooltip": "Синхронизировать ввод с левым фильтром",
"sidebar.copy_object_name.copied": "{{label}} скопировано в буфер обмена",
"sidebar.copy_object_name.empty": "{{label}} пусто, копирование невозможно",
"sidebar.copy_object_name.failed": "Не удалось скопировать {{label}}: {{error}}",
"sidebar.copy_object_name.label.event": "Имя события",
"sidebar.copy_object_name.label.materialized_view": "Имя материализованного представления",
"sidebar.copy_object_name.label.package": "Имя пакета",
"sidebar.copy_object_name.label.sequence": "Имя последовательности",
"sidebar.copy_object_name.label.table": "Имя таблицы",
"sidebar.copy_object_name.label.view": "Имя представления",
"sidebar.error.unknown": "Неизвестная ошибка",
"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.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.external_sql_modal.title.create_directory": "Создать каталог",
"sidebar.external_sql_modal.title.create_file": "Создать SQL-файл",
"sidebar.external_sql_modal.title.rename_directory": "Переименовать каталог",
"sidebar.external_sql_modal.title.rename_file": "Переименовать SQL-файл",
"sidebar.external_sql_modal.validation.directory_name_no_separator": "Имя каталога не должно содержать разделители пути",
"sidebar.external_sql_modal.validation.directory_name_required": "Введите имя каталога",
"sidebar.external_sql_modal.validation.sql_file_name_no_separator": "Имя файла не должно содержать разделители пути",
"sidebar.external_sql_modal.validation.sql_file_name_required": "Введите имя SQL-файла",
"sidebar.external_sql.directory_fallback": "SQL-каталог",
"sidebar.external_sql.root": "Внешние SQL-файлы",
"sidebar.field.database_name": "Имя базы данных",
"sidebar.field.new_database_name": "Новое имя базы данных",
"sidebar.field.new_table_name": "Новое имя таблицы",
"sidebar.field.new_view_name": "Новое имя представления",
"sidebar.field.schema_name": "Имя schema",
"sidebar.field.select_connection": "Подключение",
"sidebar.field.select_connections": "Выберите подключения",
"sidebar.field.select_database": "База данных",
"sidebar.field.tag_name": "Имя группы",
"sidebar.filter.all_objects": "Все объекты",
"sidebar.filter.scope_all": "Применить выбор к: всем объектам",
"sidebar.filter.scope_filtered": "Применить выбор к: текущим результатам фильтрации",
"sidebar.filter.tables_only": "Только таблицы",
"sidebar.filter.views_only": "Только представления",
"sidebar.jvm.action.diagnostic": "Расширенная диагностика",
"sidebar.jvm.action.monitoring": "Непрерывный мониторинг",
"sidebar.jvm.tab.audit": "Аудит JVM",
"sidebar.jvm.tab.diagnostic": "Диагностика JVM",
"sidebar.jvm.tab.monitoring": "Мониторинг JVM",
"sidebar.jvm.tab.overview": "Обзор JVM",
"sidebar.jvm.tab.resource": "Ресурсы JVM",
"sidebar.locate.object.materialized_view": "Материализованное представление",
"sidebar.locate.object.routine": "Функция/процедура",
"sidebar.locate.object.table": "Таблица",
"sidebar.locate.object.trigger": "Триггер",
"sidebar.locate.object.view": "Представление",
"sidebar.menu.add_sql_directory": "Добавить SQL-каталог",
"sidebar.menu.backup_all_tables_sql": "Создать резервную копию всех таблиц (схема + данные SQL)",
"sidebar.menu.backup_current_schema_sql": "Создать резервную копию всех таблиц текущей schema (структура и данные SQL)",
"sidebar.menu.backup_table_sql": "Создать резервную копию таблицы (SQL)",
"sidebar.menu.bind_to_connection": "Привязать к подключению",
"sidebar.menu.browse_keys": "Просмотреть ключи",
"sidebar.menu.browse_materialized_view_data": "Просмотреть данные материализованного представления",
"sidebar.menu.browse_view_data": "Просмотреть данные представления",
"sidebar.menu.clear_table": "Очистить таблицу",
"sidebar.menu.close_database": "Закрыть базу данных",
"sidebar.menu.copy_object_name": "Копировать имя",
"sidebar.menu.copy_table_name": "Копировать имя таблицы",
"sidebar.menu.copy_table_structure": "Копировать структуру таблицы",
"sidebar.menu.create_database": "Новая база данных",
"sidebar.menu.create_event": "Новое событие",
"sidebar.menu.create_function": "Новая функция",
"sidebar.menu.create_procedure": "Новая процедура",
"sidebar.menu.create_table": "Новая таблица",
"sidebar.menu.create_view": "Новое представление",
"sidebar.menu.danger_operations": "Опасные операции",
"sidebar.menu.delete_connection": "удалить подключение",
"sidebar.menu.delete_database": "Удалить базу данных",
"sidebar.menu.delete_local_directory": "Удалить локальный каталог",
"sidebar.menu.delete_query": "Удалить запрос",
"sidebar.menu.delete_routine": "Удалить {{type}}",
"sidebar.menu.delete_schema": "Удалить schema",
"sidebar.menu.delete_sql_directory": "Удалить каталог",
"sidebar.menu.delete_sql_file": "Удалить SQL-файл",
"sidebar.menu.delete_table": "Удалить таблицу",
"sidebar.menu.delete_tag": "Удалить группу",
"sidebar.menu.delete_view": "Удалить представление",
"sidebar.menu.design_table": "Проектировать таблицу",
"sidebar.menu.disconnect": "Отключить",
"sidebar.menu.duplicate_connection": "Дублировать подключение",
"sidebar.menu.edit_connection": "изменить подключение",
"sidebar.menu.edit_definition": "Редактировать определение",
"sidebar.menu.edit_schema": "Редактировать schema",
"sidebar.menu.edit_tag": "Изменить группу",
"sidebar.menu.edit_view": "Редактировать представление",
"sidebar.menu.export_all_table_schema_sql": "Экспортировать структуру всех таблиц в SQL",
"sidebar.menu.export_csv": "Экспортировать CSV",
"sidebar.menu.export_current_schema_sql": "Экспортировать структуру таблиц текущей schema (SQL)",
"sidebar.menu.export_html": "Экспортировать HTML",
"sidebar.menu.export_json": "Экспортировать JSON",
"sidebar.menu.export_markdown": "Экспортировать Markdown",
"sidebar.menu.export_table_data": "Экспортировать данные таблицы",
"sidebar.menu.export_xlsx": "Экспортировать XLSX",
"sidebar.menu.materialized_view_definition": "Определение материализованного представления",
"sidebar.menu.move_out_of_tag": "Убрать из группы",
"sidebar.menu.move_to_tag": "Переместить в группу",
"sidebar.menu.new_command_window": "Новое командное окно",
"sidebar.menu.new_query": "Новый запрос",
"sidebar.menu.new_sql_directory": "Создать каталог",
"sidebar.menu.new_sql_directory_in_directory": "Создать каталог в этом каталоге",
"sidebar.menu.new_sql_file": "Создать SQL-файл",
"sidebar.menu.new_sql_file_in_directory": "Создать SQL-файл в этом каталоге",
"sidebar.menu.new_table": "Новая таблица",
"sidebar.menu.open_query": "Открыть запрос",
"sidebar.menu.open_sql_file": "Открыть SQL-файл",
"sidebar.menu.redis_monitor": "Redis мониторинг",
"sidebar.menu.refresh": "Обновить",
"sidebar.menu.refresh_directory": "Обновить каталог",
"sidebar.menu.remove_directory": "Удалить каталог",
"sidebar.menu.rename_database": "Переименовать базу данных",
"sidebar.menu.rename_query": "Переименовать запрос",
"sidebar.menu.rename_sql_directory": "Переименовать каталог",
"sidebar.menu.rename_sql_file": "Переименовать SQL-файл",
"sidebar.menu.rename_table": "Переименовать таблицу",
"sidebar.menu.rename_view": "Переименовать представление",
"sidebar.menu.sort_by_frequency": "Сортировать по частоте использования",
"sidebar.menu.sort_by_name": "Сортировать по имени",
"sidebar.menu.table_structure": "Структура таблицы",
"sidebar.menu.truncate_table": "Усечь таблицу",
"sidebar.menu.view_definition": "Определение представления",
"sidebar.menu.view_object_definition": "Показать определение",
"sidebar.menu.view_routine_definition": "Показать определение",
"sidebar.message.add_sql_directory_database_required": "Выберите базу данных перед добавлением SQL-каталога.",
"sidebar.message.ai_table_context_missing": "У текущей таблицы нет контекста подключения, поэтому ее нельзя отправить AI.",
"sidebar.message.backing_up_database": "Создается резервная копия базы данных {{database}}...",
"sidebar.message.backing_up_selected_objects": "Создается резервная копия выбранных объектов: {{count}}...",
"sidebar.message.backing_up_selected_tables": "Создается резервная копия выбранных таблиц: {{count}}...",
"sidebar.message.clear_failed": "Ошибка очистки: {{error}}",
"sidebar.message.clear_success": "Очистка завершена.",
"sidebar.message.clearing_selected_tables": "Очищаются выбранные таблицы: {{count}}...",
"sidebar.message.connection_config_not_found": "Конфигурация подключения не найдена.",
"sidebar.message.connection_deleted": "Подключение удалено.",
"sidebar.message.connection_failed": "Ошибка подключения: {{error}}",
"sidebar.message.connection_release_failed": "Не удалось освободить подключение",
"sidebar.message.connection_release_failed_from_sidebar": "Подключение отключено из боковой панели, но backend не смог освободить подключение",
"sidebar.message.create_failed": "Не удалось создать: {{error}}",
"sidebar.message.create_sql_directory_failed": "Не удалось создать каталог: {{error}}",
"sidebar.message.create_sql_file_failed": "Не удалось создать SQL-файл: {{error}}",
"sidebar.message.database_closed": "База данных закрыта.",
"sidebar.message.database_created": "База данных создана.",
"sidebar.message.database_deleted": "База данных удалена.",
"sidebar.message.database_export_failed": "Не удалось экспортировать {{database}}: {{error}}",
"sidebar.message.database_export_success": "{{database}} экспортирована.",
"sidebar.message.database_name_required": "Введите имя базы данных.",
"sidebar.message.database_name_unchanged": "Имя базы данных не изменилось.",
"sidebar.message.database_renamed": "База данных переименована.",
"sidebar.message.delete_connection_backend_unavailable": "Удаление подключений недоступно в этой сборке.",
"sidebar.message.delete_connection_failed": "Не удалось удалить подключение.",
"sidebar.message.delete_failed": "Не удалось удалить: {{error}}",
"sidebar.message.delete_sql_directory_failed": "Не удалось удалить SQL-каталог: {{error}}",
"sidebar.message.delete_sql_file_failed": "Не удалось удалить SQL-файл: {{error}}",
"sidebar.message.disconnected": "Отключено.",
"sidebar.message.duplicate_backend_unavailable": "Дублирование подключений недоступно в этой сборке.",
"sidebar.message.duplicate_empty_result": "Дублированное подключение не было возвращено.",
"sidebar.message.duplicate_failed": "Не удалось дублировать подключение.",
"sidebar.message.duplicated_connection": "Подключение {{name}} продублировано.",
"sidebar.message.export_failed": "Ошибка экспорта: {{error}}",
"sidebar.message.export_success": "Экспорт выполнен.",
"sidebar.message.export_success_skipped_views": "Экспорт завершен. Представления пропущены при экспорте данных: {{count}}.",
"sidebar.message.export_tables_same_database_required": "Выберите таблицы из одной базы данных.",
"sidebar.message.exporting_database_backup": "Создается резервная копия {{database}} (структура и данные)...",
"sidebar.message.exporting_database_schema": "Экспортируется структура базы данных {{database}}...",
"sidebar.message.exporting_schema_backup": "Создается резервная копия схемы {{schema}} (структура и данные)...",
"sidebar.message.exporting_schema_structure": "Экспортируется структура схемы {{schema}}...",
"sidebar.message.exporting_selected_object_data": "Экспортируются данные {{format}} для выбранных объектов: {{count}}...",
"sidebar.message.exporting_selected_object_schema": "Экспортируется структура выбранных объектов: {{count}}...",
"sidebar.message.exporting_selected_table_schema": "Экспортируется структура выбранных таблиц: {{count}}...",
"sidebar.message.exporting_table_format": "Экспорт {{table}} в формате {{format}}...",
"sidebar.message.external_sql_directory_added": "SQL-каталог добавлен.",
"sidebar.message.external_sql_directory_context_missing": "Контекст SQL-каталога отсутствует.",
"sidebar.message.external_sql_directory_delete_target_missing": "SQL-каталог для удаления не найден.",
"sidebar.message.external_sql_directory_not_found": "SQL-каталог не найден.",
"sidebar.message.external_sql_directory_parent_missing": "Не найдено место для создания каталога.",
"sidebar.message.external_sql_directory_read_failed": "Не удалось прочитать SQL-каталог {{name}}: {{error}}",
"sidebar.message.external_sql_directory_refreshed": "SQL-каталог обновлен.",
"sidebar.message.external_sql_directory_removed": "SQL-каталог удален.",
"sidebar.message.external_sql_directory_rename_sync_failed": "Каталог переименован, но список внешних SQL-каталогов не удалось синхронизировать. Добавьте каталог заново.",
"sidebar.message.external_sql_directory_rename_target_missing": "Не найден каталог для переименования.",
"sidebar.message.external_sql_file_delete_target_missing": "SQL-файл для удаления не найден.",
"sidebar.message.external_sql_file_parent_missing": "Не найден каталог для создания SQL-файла.",
"sidebar.message.external_sql_file_rename_target_missing": "Не найден SQL-файл для переименования.",
"sidebar.message.jvm_provider_probe_exception": "Проверка провайдеров JVM завершилась ошибкой: {{error}}",
"sidebar.message.jvm_provider_probe_exception_with_diagnostic": "Во время проверки JVM Provider возникло исключение: {{error}}. Вход в режим расширенной диагностики остается доступным.",
"sidebar.message.jvm_provider_probe_failed": "Не удалось проверить провайдеры JVM: {{error}}",
"sidebar.message.jvm_provider_probe_failed_with_diagnostic": "Не удалось проверить JVM Provider: {{error}}. Вход в режим расширенной диагностики остается доступным.",
"sidebar.message.jvm_resources_backend_unavailable": "Просмотр ресурсов JVM недоступен в этой сборке.",
"sidebar.message.load_database_list_failed": "Не удалось загрузить базы данных: {{error}}",
"sidebar.message.load_jvm_resources_failed": "Не удалось загрузить ресурсы JVM: {{error}}",
"sidebar.message.load_table_list_failed": "Не удалось загрузить таблицы: {{error}}",
"sidebar.message.load_tables_failed": "Не удалось загрузить объекты: {{error}}",
"sidebar.message.locate_connection_not_found_for_object": "Подключение для текущего объекта не найдено",
"sidebar.message.locate_connection_not_in_tree": "Текущее подключение не найдено в левом дереве",
"sidebar.message.locate_current_tab_unavailable": "В текущей вкладке нет содержимого, которое можно найти",
"sidebar.message.locate_current_table_unavailable": "В текущей вкладке нет таблицы, которую можно найти",
"sidebar.message.locate_database_loading": "Узел базы данных ещё загружается: {{database}}. Повторите попытку позже",
"sidebar.message.locate_database_not_found": "База данных не найдена в левом дереве: {{database}}",
"sidebar.message.locate_external_sql_file_not_found": "SQL-файл не найден во внешних SQL-каталогах: {{path}}",
"sidebar.message.locate_object_loading": "Объекты базы данных для {{object}} в {{database}} ещё загружаются. Повторите попытку позже",
"sidebar.message.locate_object_not_found": "{{object}} не найден в левом дереве: {{name}}. Обновите узел базы данных и повторите попытку",
"sidebar.message.message_publish_success": "Тестовое сообщение отправлено в {{destination}}",
"sidebar.message.message_publish_success_with_count": "Тестовое сообщение отправлено в {{destination}} (отправлено {{count}})",
"sidebar.message.message_publish_target_fallback": "цель",
"sidebar.message.message_publish_unsupported": "Текущий объект не поддерживает тестовую отправку сообщений",
"sidebar.message.no_visible_databases": "Видимые базы данных или схемы не возвращены. Проверьте права учетной записи или обновите через контекстное меню.",
"sidebar.message.operation_create_failed": "Не удалось создать: {{error}}",
"sidebar.message.operation_drop_failed": "Не удалось удалить: {{error}}",
"sidebar.message.operation_rename_failed": "Не удалось переименовать: {{error}}",
"sidebar.message.read_file_failed": "Не удалось прочитать файл: {{error}}",
"sidebar.message.read_sql_file_failed": "Не удалось прочитать SQL-файл: {{error}}",
"sidebar.message.rename_failed": "Не удалось переименовать: {{error}}",
"sidebar.message.rename_sql_directory_failed": "Не удалось переименовать каталог: {{error}}",
"sidebar.message.rename_sql_file_failed": "Не удалось переименовать SQL-файл: {{error}}",
"sidebar.message.routine_deleted": "{{type}} удалена.",
"sidebar.message.saved_query_delete_failed": "Не удалось удалить запрос: {{error}}",
"sidebar.message.saved_query_deleted": "Запрос удален.",
"sidebar.message.saved_query_name_unchanged": "Имя запроса не изменилось.",
"sidebar.message.saved_query_rebind_failed": "Не удалось привязать запрос: {{error}}",
"sidebar.message.saved_query_rebind_success": "Запрос привязан к {{name}}",
"sidebar.message.saved_query_rename_failed": "Не удалось переименовать запрос: {{error}}",
"sidebar.message.saved_query_renamed": "Запрос переименован.",
"sidebar.message.schema_create_unsupported": "Эта база данных не поддерживает создание schema.",
"sidebar.message.schema_created": "schema создана.",
"sidebar.message.schema_deleted": "schema удалена.",
"sidebar.message.schema_edit_unsupported": "Текущий узел не поддерживает редактирование schema через этот вход.",
"sidebar.message.schema_export_target_missing": "Целевая схема не найдена, экспорт невозможен.",
"sidebar.message.schema_name_unchanged": "Имя schema не изменилось.",
"sidebar.message.schema_renamed": "schema переименована.",
"sidebar.message.schema_target_delete_missing": "Не найдена целевая schema для удаления.",
"sidebar.message.schema_target_edit_missing": "Не найдена целевая schema для редактирования.",
"sidebar.message.schema_target_missing": "Выберите базу данных для создания schema.",
"sidebar.message.select_connection_or_database_first": "Сначала выберите подключение или базу данных.",
"sidebar.message.select_database_required": "Выберите хотя бы одну базу данных.",
"sidebar.message.select_host_before_large_sql_file": "Выберите Host перед запуском большого SQL-файла.",
"sidebar.message.select_object_required": "Выберите хотя бы один объект.",
"sidebar.message.select_sql_directory_failed": "Не удалось выбрать SQL-каталог: {{error}}",
"sidebar.message.sidebar_filter_reset": "Фильтр боковой панели сброшен.",
"sidebar.message.sidebar_filter_sync_disabled": "Синхронизация левого фильтра отключена.",
"sidebar.message.sidebar_filter_sync_enabled": "Синхронизация левого фильтра включена.",
"sidebar.message.sphinx_unsupported_objects": "Этот экземпляр Sphinx не предоставляет следующие возможности объектов: {{objects}}. Применен режим совместимости.",
"sidebar.message.sql_directory_created": "Каталог создан.",
"sidebar.message.sql_directory_deleted": "SQL-каталог удален.",
"sidebar.message.sql_directory_name_required": "Имя каталога обязательно.",
"sidebar.message.sql_directory_path_invalid": "Путь к SQL-каталогу недействителен.",
"sidebar.message.sql_directory_renamed": "Каталог переименован.",
"sidebar.message.sql_file_context_incomplete": "Контекст SQL-файла неполный.",
"sidebar.message.sql_file_created": "SQL-файл создан.",
"sidebar.message.sql_file_deleted": "SQL-файл удален.",
"sidebar.message.sql_file_name_required": "Имя SQL-файла обязательно.",
"sidebar.message.sql_file_path_incomplete": "Путь к SQL-файлу неполный, открыть файл невозможно.",
"sidebar.message.sql_file_renamed": "SQL-файл переименован.",
"sidebar.message.table_data_action_failed": "{{action}} завершилось ошибкой: {{error}}",
"sidebar.message.table_data_action_loading": "{{action}} {{table}}...",
"sidebar.message.table_data_action_success": "{{action}} завершено.",
"sidebar.message.table_deleted": "Таблица удалена.",
"sidebar.message.table_export_target_missing": "Не удалось определить имя таблицы, экспорт невозможен.",
"sidebar.message.table_name_required": "Введите имя таблицы.",
"sidebar.message.table_name_unchanged": "Имя таблицы не изменилось.",
"sidebar.message.table_pinned": "Таблица закреплена",
"sidebar.message.table_renamed": "Таблица переименована.",
"sidebar.message.table_structure_copied": "Структура таблицы скопирована.",
"sidebar.message.table_unpinned": "Таблица откреплена",
"sidebar.message.view_deleted": "Представление удалено.",
"sidebar.message.view_name_required": "Введите имя представления.",
"sidebar.message.view_name_unchanged": "Имя представления не изменилось.",
"sidebar.message.view_renamed": "Представление переименовано.",
"sidebar.message.visual_new_table_unsupported": "Этот источник данных пока не поддерживает визуальное создание таблиц.",
"sidebar.modal.batch_databases.description": "Пакетно экспортируйте структуру по базам данных или создавайте резервные копии со структурой и данными.",
"sidebar.modal.batch_databases.selection_hint": "После выбора подключения будет загружен список баз данных, доступных для пакетного экспорта в этом подключении.",
"sidebar.modal.batch_databases.title": "Пакетные операции с базами данных",
"sidebar.modal.batch_tables.description": "Пакетно экспортируйте структуру, данные или полные резервные копии для объектов.",
"sidebar.modal.batch_tables.selection_hint": "Сначала выберите подключение и базу данных, затем определите диапазон экспорта и целевые объекты.",
"sidebar.modal.batch_tables.title": "Пакетные операции с объектами",
"sidebar.modal.confirm_clear_selected_tables.content": "Очистить данные выбранных объектов в {{connection}} / {{database}}? Это действие нельзя отменить.",
"sidebar.modal.confirm_clear_selected_tables.title": "Подтвердите очистку выбранных таблиц",
"sidebar.modal.confirm_delete_connection.content": "Удалить {{name}}?",
"sidebar.modal.confirm_delete_database.content": "Удалить {{name}}? Это действие нельзя отменить.",
"sidebar.modal.confirm_delete_database.title": "Удалить базу данных",
"sidebar.modal.confirm_delete_routine.content": "Удалить {{type}} {{name}}? Это действие нельзя отменить.",
"sidebar.modal.confirm_delete_routine.title": "Удалить {{type}}",
"sidebar.modal.confirm_delete_saved_query.content": "Удалить сохраненный запрос \"{{name}}\"? Это действие нельзя отменить.",
"sidebar.modal.confirm_delete_schema.content": "Удалить schema {{name}}? schema и все объекты внутри будут удалены. Это действие нельзя отменить.",
"sidebar.modal.confirm_delete_schema.title": "Удалить schema",
"sidebar.modal.confirm_delete_sql_directory.content": "Удалить \"{{name}}\"? Это удалит локальный каталог с диска; удалить можно только пустой каталог.",
"sidebar.modal.confirm_delete_sql_directory.title": "Удалить SQL-каталог",
"sidebar.modal.confirm_delete_sql_file.content": "Удалить \"{{name}}\"? Это удалит локальный файл с диска без возможности восстановления.",
"sidebar.modal.confirm_delete_sql_file.title": "Удалить SQL-файл",
"sidebar.modal.confirm_delete_table.content": "Удалить {{name}}? Это действие нельзя отменить.",
"sidebar.modal.confirm_delete_table.title": "Удалить таблицу",
"sidebar.modal.confirm_delete_tag.content": "Удалить группу \"{{name}}\"? Подключения внутри нее не будут удалены.",
"sidebar.modal.confirm_delete_view.content": "Удалить {{name}}? Это действие нельзя отменить.",
"sidebar.modal.confirm_delete_view.title": "Удалить представление",
"sidebar.modal.confirm_delete.title": "Подтвердите удаление",
"sidebar.modal.confirm_table_data_action.content": "Выполнить {{action}} для {{table}}? Это действие нельзя отменить.",
"sidebar.modal.confirm_table_data_action.title": "Подтвердите {{action}}",
"sidebar.modal.create_database.title": "Создать базу данных",
"sidebar.modal.rename_database.title": "Переименовать базу данных: {{name}}",
"sidebar.modal.rename_schema.title": "Редактировать schema: {{name}}",
"sidebar.modal.rename_table.title": "Переименовать таблицу: {{name}}",
"sidebar.modal.rename_view.title": "Переименовать представление: {{name}}",
"sidebar.modal.tag.create_description": "Создайте группу для организации подключений.",
"sidebar.modal.tag.create_title": "Создать группу",
"sidebar.modal.tag.edit_description": "Обновите имя группы и входящие в нее подключения.",
"sidebar.modal.tag.edit_title": "Изменить группу",
"sidebar.object_group.events": "События",
"sidebar.object_group.materialized_views": "Материализованные представления",
"sidebar.object_group.packages": "Пакеты",
"sidebar.object_group.routines": "Функции и процедуры",
"sidebar.object_group.sequences": "Последовательности",
"sidebar.object_group.tables": "Таблицы",
"sidebar.object_group.triggers": "Триггеры",
"sidebar.object_group.views": "Представления",
"sidebar.object.function": "Функция",
"sidebar.object.procedure": "Процедура",
"sidebar.object.view": "Представление",
"sidebar.placeholder.filter_table_view": "Фильтр таблиц и представлений",
"sidebar.placeholder.select_connection": "Выберите подключение",
"sidebar.placeholder.select_connection_first": "Сначала выберите подключение",
"sidebar.placeholder.tag_name": "Имя группы",
"sidebar.punctuation.list_separator": ", ",
"sidebar.rail.object_actions": "Быстрые действия в области объектов",
"sidebar.rail.system_actions": "Системные действия",
"sidebar.search.manual_scope": "Ручная область",
"sidebar.search.multi_select_supported": "Можно выбрать несколько областей",
"sidebar.search.placeholder": "Поиск...",
"sidebar.search.scope_description": "Выберите, где должен искать сайдбар.",
"sidebar.search.scope_hint": "В умном режиме поиск учитывает контекст и ищет по именам, хостам, базам данных и объектам.",
"sidebar.search.scope_title": "Область поиска",
"sidebar.search.scope_tooltip": "Текущая область поиска: {{scope}}",
"sidebar.search.scope.database": "База данных",
"sidebar.search.scope.host": "Хост",
"sidebar.search.scope.object": "Объект",
"sidebar.search.scope.smart": "Умный",
"sidebar.search.scope.smart_description": "Автоматически сужает поиск по выбранному узлу.",
"sidebar.search.scope.smart_short": "Умный",
"sidebar.search.scope.tag": "Тег",
"sidebar.sql_directory.default_name": "SQL-каталог",
"sidebar.sql_file_exec.cancel": "Отменить выполнение",
"sidebar.sql_file_exec.executed_label": "Выполнено: ",
"sidebar.sql_file_exec.file_size": "Размер файла: ",
"sidebar.sql_file_exec.rows_separator": " строк | Ошибок: ",
"sidebar.sql_file_exec.rows_suffix": " строк",
"sidebar.sql_file_exec.status_label": "Статус: ",
"sidebar.sql_file_exec.status.cancelled": "Отменено",
"sidebar.sql_file_exec.status.done": "Готово",
"sidebar.sql_file_exec.status.error": "Ошибка",
"sidebar.sql_file_exec.status.running": "Выполняется",
"sidebar.sql_file_exec.title": "Запустить внешний SQL-файл",
"sidebar.sql_file.default_name": "SQL-файл",
"sidebar.sql_template.duckdb_macro_hint": "Используйте SQL Macro для поведения, похожего на функцию",
"sidebar.sql_template.duckdb_procedure_unsupported": "DuckDB пока не поддерживает хранимые процедуры",
"sidebar.sql_template.edit_routine": "Изменить {{type}} {{name}}",
"sidebar.sql_template.edit_view": "Изменить представление {{name}}",
"sidebar.sql_template.modify_then_execute": "Изменить и выполнить",
"sidebar.status.pinned": "Закреплено",
"sidebar.tab.batch_export_databases": "Пакетный экспорт баз данных",
"sidebar.tab.batch_export_objects": "Пакетный экспорт объектов",
"sidebar.tab.batch_export_objects_database": "Пакетный экспорт объектов {{database}}",
"sidebar.tab.create_function": "Новая функция",
"sidebar.tab.create_procedure": "Новая процедура",
"sidebar.tab.create_view": "Новое представление",
"sidebar.tab.design_table": "Проектирование таблицы ({{table}})",
"sidebar.tab.edit_event": "Изменить событие: {{name}}",
"sidebar.tab.edit_routine": "Изменить {{type}}: {{name}}",
"sidebar.tab.edit_view": "Изменить представление: {{name}}",
"sidebar.tab.event": "Событие: {{name}}",
"sidebar.tab.materialized_view_definition": "Материализованное представление: {{name}}",
"sidebar.tab.new_event": "Новое событие",
"sidebar.tab.new_query": "Новый запрос",
"sidebar.tab.new_query_database": "Новый запрос ({{database}})",
"sidebar.tab.new_table": "Новая таблица - {{database}}",
"sidebar.tab.recent_query": "Недавний запрос",
"sidebar.tab.redis_command": "Команда - {{database}}",
"sidebar.tab.redis_monitor": "Мониторинг - {{database}}",
"sidebar.tab.routine_definition": "{{type}}: {{name}}",
"sidebar.tab.table_overview": "Обзор таблицы - {{database}}{{schema}}",
"sidebar.tab.table_structure": "Структура таблицы ({{table}})",
"sidebar.tab.trigger": "Триггер: {{name}}",
"sidebar.tab.view_definition": "Представление: {{name}}",
"sidebar.table_action.clear.label": "Очистить таблицу",
"sidebar.table_action.clear.progress": "Очищается",
"sidebar.table_action.truncate.label": "Очистить таблицу через TRUNCATE",
"sidebar.table_action.truncate.progress": "Выполняется TRUNCATE",
"sidebar.table_folder.columns": "Столбцы",
"sidebar.table_folder.foreign_keys": "Внешние ключи",
"sidebar.table_folder.indexes": "Индексы",
"sidebar.table_folder.triggers": "Триггеры",
"sidebar.tree.all_saved_queries": "Все сохраненные запросы",
"sidebar.tree.default_database": "База данных по умолчанию",
"sidebar.tree.default_schema": "Схема по умолчанию",
"sidebar.tree.saved_queries": "Сохраненные запросы",
"sidebar.tree.unknown_connection": "Неизвестное подключение",
"sidebar.tree.unmatched_saved_queries": "Несопоставленные",
"sidebar.tree.untitled_query": "Запрос без имени",
"sidebar.v2_database_menu.backup_all_tables_sql": "Резервная копия всех таблиц · схема + данные SQL",
"sidebar.v2_database_menu.export_all_table_schema_sql": "Экспортировать схемы всех таблиц · SQL",
"sidebar.v2_database_menu.export_backup_section": "Экспорт и резервное копирование",
"sidebar.v2_database_menu.meta": "{{dialect}} · Действия с базой данных",
"sidebar.v2_database_menu.new_external_catalog": "Новый внешний Catalog",
"sidebar.v2_database_menu.new_materialized_view": "Новое материализованное представление",
"sidebar.v2_database_menu.new_schema": "Новая schema",
"sidebar.v2_database_menu.refresh_object_tree": "Обновить дерево объектов",
"sidebar.v2_schema_menu.backup_current_schema_sql": "Резервная копия всех таблиц текущей схемы · схема + данные",
"sidebar.v2_schema_menu.delete_schema_cascade": "Удалить схему · DROP CASCADE",
"sidebar.v2_schema_menu.edit_schema": "Редактировать схему",
"sidebar.v2_schema_menu.export_current_schema_sql": "Экспортировать структуры таблиц текущей схемы · SQL",
"sidebar.v2_schema_menu.meta": "{{database}} · Действия со схемой",
"sidebar.v2_table_group_menu.current_database": "Текущая база данных",
"sidebar.v2_table_group_menu.meta": "{{database}} · {{count}} таблиц · сортировка по {{sort}}",
"sidebar.v2_table_group_menu.sort_frequency": "частоте использования",
"sidebar.v2_table_group_menu.sort_name": "имени",
"sidebar.v2_table_group_menu.title": "Таблицы",
"sidebar.v2_table_menu.ai_explain_table": "Объяснить эту таблицу с помощью AI",
"sidebar.v2_table_menu.ai_generate_query": "Сгенерировать запрос с помощью AI",
"sidebar.v2_table_menu.backup_sql_dump": "Резервная копия · {{keyword}}",
"sidebar.v2_table_menu.copy_section": "Копировать",
"sidebar.v2_table_menu.copy_table_as_insert": "Копировать всю таблицу как {{keyword}}",
"sidebar.v2_table_menu.copy_table_name": "Копировать имя таблицы",
"sidebar.v2_table_menu.design_table_detail": "столбцы / индексы / внешние ключи",
"sidebar.v2_table_menu.item_with_suffix": "{{label}} · {{suffix}}",
"sidebar.v2_table_menu.maintenance_section": "Обслуживание",
"sidebar.v2_table_menu.meta.idle": "Нажмите обновить, чтобы загрузить статистику",
"sidebar.v2_table_menu.meta.loading": "Загрузка статистики таблицы...",
"sidebar.v2_table_menu.meta.rows": "{{count}} строк",
"sidebar.v2_table_menu.meta.rows_empty": "— строк",
"sidebar.v2_table_menu.meta.summary": "{{rows}} · {{data}} данные · {{indexes}} индексы",
"sidebar.v2_table_menu.meta.unavailable": "Статистика таблицы недоступна",
"sidebar.v2_table_menu.metadata_section": "Метаданные",
"sidebar.v2_table_menu.new_rollup": "Новый {{keyword}}",
"sidebar.v2_table_menu.open_data": "Просмотреть данные",
"sidebar.v2_table_menu.open_export_workbench": "Открыть рабочую область экспорта…",
"sidebar.v2_table_menu.open_in_new_tab": "Открыть в новой вкладке",
"sidebar.v2_table_menu.refresh_stats": "Обновить статистику",
"sidebar.v2_table_menu.rename_compact": "Переименовать...",
"sidebar.v2_table_menu.truncate_table": "Усечь таблицу",
"sidebar.v2_table_menu.view_in_er": "Показать в ER-диаграмме",
"sidebar.validation.name_required": "Введите имя.",
"sidebar.validation.new_database_name_required": "Введите новое имя базы данных.",
"sidebar.validation.new_table_name_required": "Введите новое имя таблицы.",
"sidebar.validation.new_view_name_required": "Введите новое имя представления.",
"sidebar.validation.schema_name_required": "Введите имя schema.",
"sidebar.validation.tag_name_required": "Введите имя группы.",
"snippet_settings.action.close": "Закрыть",
"snippet_settings.action.delete": "Удалить",
"snippet_settings.action.new": "Новый сниппет",
"snippet_settings.action.reset": "Сбросить к стандартному",
"snippet_settings.action.save": "Сохранить",
"snippet_settings.confirm.delete.description": "Вы уверены, что хотите удалить этот сниппет?",
"snippet_settings.confirm.delete.title": "Удалить сниппет",
"snippet_settings.confirm.reset.description": "Восстановить исходное содержимое этого встроенного сниппета",
"snippet_settings.confirm.reset.title": "Сбросить к стандартному",
"snippet_settings.empty_state": "Выберите сниппет слева для редактирования или нажмите «{{action}}»",
"snippet_settings.field.body.label": "Содержимое сниппета",
"snippet_settings.field.description.label": "Описание (необязательно)",
"snippet_settings.field.description.placeholder": "Описание, показываемое в деталях автодополнения",
"snippet_settings.field.name.label": "Название",
"snippet_settings.field.name.placeholder": "Отображаемое имя сниппета",
"snippet_settings.field.prefix.label": "Префикс",
"snippet_settings.field.prefix.placeholder": "например, sel, ins",
"snippet_settings.list.title": "Список сниппетов",
"snippet_settings.message.body_required": "Содержимое сниппета обязательно",
"snippet_settings.message.deleted": "Сниппет удалён",
"snippet_settings.message.name_required": "Название обязательно",
"snippet_settings.message.prefix_duplicate": "Префикс \"{{prefix}}\" уже используется другим сниппетом",
"snippet_settings.message.prefix_required": "Префикс обязателен",
"snippet_settings.message.reset_default": "Сброшено к стандартному",
"snippet_settings.message.saved": "Сниппет сохранён",
"snippet_settings.syntax_help.label": "Памятка по синтаксису сниппетов (редактируемая)",
"snippet_settings.syntax_help.placeholder": "Подсказка для деталей автодополнения, например значения плейсхолдеров, соглашения по параметрам или примечания",
"snippet_settings.syntax_reference.builtin_variables": "Встроенные переменные (автоматически подставляются при разворачивании):",
"snippet_settings.syntax_reference.current_date": "${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE} Текущая дата",
"snippet_settings.syntax_reference.current_time": "${CURRENT_HOUR}:${CURRENT_MINUTE}:${CURRENT_SECOND} Текущее время",
"snippet_settings.syntax_reference.example": "Пример: SELECT ${1:имя_столбца} FROM ${2:имя_таблицы} WHERE date >= '${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE}';$0",
"snippet_settings.syntax_reference.final_cursor": "$0 Итоговая позиция курсора",
"snippet_settings.syntax_reference.first_tabstop": "${1:плейсхолдер} Первая позиция Tab; плейсхолдер служит текстом-подсказкой",
"snippet_settings.syntax_reference.label": "Справка по синтаксису плейсхолдеров",
"snippet_settings.syntax_reference.linked_tabstop": "${1:имя_таблицы} Повтор одного и того же номера синхронизирует редактирование",
"snippet_settings.syntax_reference.random": "${RANDOM} 6-значное случайное число",
"snippet_settings.syntax_reference.second_tabstop": "${2:значение_по_умолчанию} Вторая позиция Tab; значение по умолчанию можно сразу принять",
"snippet_settings.syntax_reference.unix_seconds": "${CURRENT_SECONDS_UNIX} Unix-временная метка",
"snippet_settings.syntax_reference.uuid": "${UUID} Случайный UUID",
"snippet_settings.tag.builtin": "Встроенный",
"sql_analysis.backend.error.driver_explain_failed": "Ошибка выполнения EXPLAIN драйвером: {{detail}}",
"sql_analysis.backend.error.explain_dialect_unsupported": "Диалект EXPLAIN для {{dbType}} не поддерживается",
"sql_analysis.backend.error.explain_execution_failed": "Ошибка выполнения EXPLAIN: {{detail}}",
"sql_analysis.backend.error.explain_query_not_implemented": "Генерация EXPLAIN-запроса для {{dbType}} не реализована",
"sql_analysis.backend.error.explain_result_empty": "Набор результатов EXPLAIN пуст",
"sql_analysis.backend.error.explain_result_missing": "Набор результатов EXPLAIN не был возвращён",
"sql_analysis.backend.error.query_required": "SQL-запрос не может быть пустым",
"sql_analysis.backend.error.select_only": "Диагностика поддерживает только запросы SELECT / WITH. Для операций записи используйте режим EXPLAIN PLAN (поддержка PR2).",
"sql_analysis.backend.error.unsupported_db_type": "Текущий источник данных ({{dbType}}) пока не поддерживает диагностику SQL. На первом этапе поддерживаются MySQL/PostgreSQL/SQLite/ClickHouse/Oracle/SQLServer/OceanBase.",
"sql_analysis.backend.message.completed": "Диагностика завершена",
"sql_analysis.explain_graph.flag.filesort": "Дополнительная сортировка",
"sql_analysis.explain_graph.flag.full_scan": "Полное сканирование",
"sql_analysis.explain_graph.flag.temp_table": "Временная таблица",
"sql_analysis.explain_graph.label.index": "Индекс: ",
"sql_analysis.explain_graph.label.table": "Таблица: ",
"sql_analysis.explain_graph.metric.actual_rows": "Факт",
"sql_analysis.explain_graph.metric.cost": "Стоимость",
"sql_analysis.explain_graph.metric.est_rows": "Оценка",
"sql_analysis.explain.empty": "Введите SQL и запустите диагностику",
"sql_analysis.explain.error.query_required": "Текст запроса пуст",
"sql_analysis.explain.error.run_failed": "Диагностика не выполнена",
"sql_analysis.explain.error.title": "Диагностика не выполнена: ",
"sql_analysis.explain.loading": "Выполняется EXPLAIN и разбор плана...",
"sql_analysis.explain.meta.node_count": "{{count}} узлов",
"sql_analysis.explain.raw.empty": "(нет исходного текста)",
"sql_analysis.explain.view.plan": "План выполнения",
"sql_analysis.explain.view.raw": "Исходный текст",
"sql_analysis.sidebar.node.actual_rows": "Фактические строки",
"sql_analysis.sidebar.node.buffer_hit": "Попадание в буфер",
"sql_analysis.sidebar.node.cost": "Стоимость",
"sql_analysis.sidebar.node.duration": "Длительность",
"sql_analysis.sidebar.node.est_rows": "Оценка строк",
"sql_analysis.sidebar.node.extra": "Поля Extra ({{count}})",
"sql_analysis.sidebar.node.flags": "Флаги",
"sql_analysis.sidebar.node.index": "Индекс",
"sql_analysis.sidebar.node.loops": "Число циклов",
"sql_analysis.sidebar.node.op_detail": "Детали операции",
"sql_analysis.sidebar.node.op_type": "Тип операции",
"sql_analysis.sidebar.node.table": "Таблица",
"sql_analysis.sidebar.node.title": "Сведения об узле",
"sql_analysis.sidebar.stats.buffer_hit": "Попадание в буфер",
"sql_analysis.sidebar.stats.max_est_rows": "Макс. оценка строк узла",
"sql_analysis.sidebar.stats.rows_read": "Прочитано строк",
"sql_analysis.sidebar.stats.title": "Статистика выполнения",
"sql_analysis.sidebar.stats.total_cost": "Общая стоимость",
"sql_analysis.sidebar.stats.total_duration": "Общее время",
"sql_analysis.sidebar.suggestions.empty": "Явных проблем с производительностью не найдено",
"sql_analysis.sidebar.suggestions.rows": "{{count}} строк",
"sql_analysis.sidebar.suggestions.table": "Таблица: {{table}}",
"sql_analysis.sidebar.suggestions.title": "Рекомендации по индексам ({{count}})",
"sql_analysis.sidebar.warning.filesort": "Обнаружена дополнительная сортировка",
"sql_analysis.sidebar.warning.full_scan": "Обнаружено полное сканирование таблицы",
"sql_analysis.sidebar.warning.temp_table": "Используется временная таблица",
"sql_analysis.slow_query.current_connection": "(текущее подключение)",
"sql_analysis.slow_query.empty": "Записей о медленных запросах пока нет (порог {{threshold}}ms)",
"sql_analysis.slow_query.error.clear_failed": "Не удалось очистить",
"sql_analysis.slow_query.error.load_failed": "Не удалось загрузить",
"sql_analysis.slow_query.error.title": "Не удалось загрузить: ",
"sql_analysis.slow_query.loading": "Загрузка истории медленных запросов...",
"sql_analysis.slow_query.message.cleared": "История медленных запросов очищена",
"sql_analysis.slow_query.metric.rows_read": "Прочитано",
"sql_analysis.slow_query.metric.rows_returned": "Возвращено",
"sql_analysis.slow_query.preview.empty": "(нет предпросмотра SQL)",
"sql_analysis.slow_query.rail.aria_label": "Рабочая область медленных SQL",
"sql_analysis.slow_query.rail.tooltip.no_connection": "Сначала откройте вкладку с подключением к базе данных",
"sql_analysis.slow_query.rail.tooltip.open": "Открыть рабочую область анализа SQL для текущего подключения",
"sql_analysis.slow_query.relative.days_ago": "{{count}} дн. назад",
"sql_analysis.slow_query.relative.hours_ago": "{{count}} ч назад",
"sql_analysis.slow_query.relative.just_now": "Только что",
"sql_analysis.slow_query.relative.minutes_ago": "{{count}} мин. назад",
"sql_analysis.slow_query.sort.duration": "По длительности",
"sql_analysis.slow_query.sort.recent": "По времени",
"sql_analysis.slow_query.sort.rows_read": "По прочитанным строкам",
"sql_analysis.slow_query.title": "История медленных SQL",
"sql_analysis.slow_query.tooltip.clear_current": "Очистить историю текущего подключения",
"sql_analysis.workbench.action.run": "Запустить диагностику",
"sql_analysis.workbench.alert.connection_missing_description": "Снова выберите корректное подключение перед повторным открытием рабочей области анализа SQL.",
"sql_analysis.workbench.alert.connection_missing_title": "Подключение для этой рабочей области больше недоступно",
"sql_analysis.workbench.editor.hint": "Можно сразу подставить запись из списка медленных SQL",
"sql_analysis.workbench.editor.placeholder": "Введите SQL для диагностики или подставьте его, выбрав запись из списка медленных SQL",
"sql_analysis.workbench.tab_title": "SQL-анализ",
"sql_analysis.workbench.tab_title_with_database": "SQL-анализ · {{database}}",
"sql_analysis.workbench.title": "Рабочая область анализа SQL",
"sql_analysis.workbench.validation.sql_required": "Введите SQL для диагностики",
"sql_analysis.workbench.view.diagnose": "Диагностика SQL",
"sql_analysis.workbench.view.slow_query": "Медленные SQL",
"sql_snippets.builtin.alt.description": "Шаблон ALTER TABLE для добавления столбца",
"sql_snippets.builtin.alt.name": "ALTER TABLE",
"sql_snippets.builtin.ct.description": "Шаблон CREATE TABLE",
"sql_snippets.builtin.ct.name": "CREATE TABLE",
"sql_snippets.builtin.ctt.description": "Шаблон создания таблицы со столбцами времени created_at / updated_at",
"sql_snippets.builtin.ctt.name": "CREATE TABLE (со столбцами времени)",
"sql_snippets.builtin.del.description": "Шаблон удаления данных DELETE",
"sql_snippets.builtin.del.name": "DELETE",
"sql_snippets.builtin.dro.description": "Шаблон DROP TABLE",
"sql_snippets.builtin.dro.name": "DROP TABLE",
"sql_snippets.builtin.grp.description": "Шаблон агрегирующего запроса с GROUP BY",
"sql_snippets.builtin.grp.name": "GROUP BY",
"sql_snippets.builtin.ins.description": "Шаблон вставки данных INSERT",
"sql_snippets.builtin.ins.name": "INSERT",
"sql_snippets.builtin.inst.description": "Шаблон INSERT с автоматической подстановкой текущей временной метки",
"sql_snippets.builtin.inst.name": "INSERT (с временной меткой)",
"sql_snippets.builtin.lim.description": "Шаблон постраничного запроса с LIMIT",
"sql_snippets.builtin.lim.name": "LIMIT-запрос",
"sql_snippets.builtin.ljo.description": "Шаблон LEFT JOIN",
"sql_snippets.builtin.ljo.name": "LEFT JOIN",
"sql_snippets.builtin.ord.description": "Шаблон запроса с сортировкой",
"sql_snippets.builtin.ord.name": "ORDER BY",
"sql_snippets.builtin.sel.description": "Шаблон базового SELECT-запроса",
"sql_snippets.builtin.sel.name": "Базовый SELECT-запрос",
"sql_snippets.builtin.seld.description": "SELECT-запрос с фильтром по дате, автоматически подставляет сегодняшнюю дату",
"sql_snippets.builtin.seld.name": "SELECT по дате",
"sql_snippets.builtin.selj.description": "SELECT-запрос с INNER JOIN",
"sql_snippets.builtin.selj.name": "SELECT JOIN",
"sql_snippets.builtin.selw.description": "SELECT-запрос с условием WHERE",
"sql_snippets.builtin.selw.name": "SELECT WHERE",
"sql_snippets.builtin.sub.description": "Шаблон подзапроса IN",
"sql_snippets.builtin.sub.name": "Подзапрос",
"sql_snippets.builtin.upd.description": "Шаблон обновления данных UPDATE",
"sql_snippets.builtin.upd.name": "UPDATE",
"store.fallback.connection_name": "Подключение {{index}}",
"store.fallback.connection_tag_name": "Тег {{index}}",
"store.fallback.sql_snippet_name": "Фрагмент {{index}}",
"tab_manager.close_aria": "Закрыть {{title}}",
"tab_manager.empty.action.open_ai": "Открыть AI",
"tab_manager.empty.aria.start_workbench": "Стартовая рабочая область GoNavi",
"tab_manager.empty.eyebrow.connections": "{{count}} подключений",
"tab_manager.empty.eyebrow.workbench": "РАБОЧАЯ ОБЛАСТЬ",
"tab_manager.empty.hero.description": "Выберите источник данных, откройте редактор запросов или продолжите с контекстом в AI-панели.",
"tab_manager.empty.hero.title": "Подключения, запросы и анализ начинаются в одной рабочей области.",
"tab_manager.empty.quick.ai_assist.description": "Объяснение SQL, генерация запросов и проверка результатов",
"tab_manager.empty.quick.ai_assist.title": "Открыть AI-помощь",
"tab_manager.empty.quick.aria": "Быстрый рабочий процесс",
"tab_manager.empty.quick.configure_source.description": "Настроить URI, SSH, прокси и драйвер в одном месте",
"tab_manager.empty.quick.configure_source.title": "Настроить источник данных",
"tab_manager.empty.quick.heading": "Быстрый рабочий процесс",
"tab_manager.empty.quick.sql_workspace.description": "Открыть редактор запросов с текущим контекстом",
"tab_manager.empty.quick.sql_workspace.title": "Запустить рабочую область SQL",
"tab_manager.hover.fallback.database_not_specified": "Не указано",
"tab_manager.hover.fallback.host_not_configured": "Не настроено",
"tab_manager.hover.fallback.unbound_connection": "Непривязанное подключение",
"tab_manager.hover.kind.design": "Дизайн таблицы",
"tab_manager.hover.kind.event": "Событие",
"tab_manager.hover.kind.fallback": "Вкладка",
"tab_manager.hover.kind.jvm_audit": "Аудит JVM",
"tab_manager.hover.kind.jvm_diagnostic": "Диагностика JVM",
"tab_manager.hover.kind.jvm_monitoring": "Мониторинг JVM",
"tab_manager.hover.kind.jvm_overview": "Обзор JVM",
"tab_manager.hover.kind.jvm_resource": "Ресурс JVM",
"tab_manager.hover.kind.materialized_view": "Материализованное представление",
"tab_manager.hover.kind.query": "SQL-запрос",
"tab_manager.hover.kind.redis_command": "Команда Redis",
"tab_manager.hover.kind.redis_keys": "Redis Key",
"tab_manager.hover.kind.redis_monitor": "Монитор Redis",
"tab_manager.hover.kind.routine": "Функция / процедура",
"tab_manager.hover.kind.sql_analysis": "Рабочая область анализа SQL",
"tab_manager.hover.kind.table": "Данные таблицы",
"tab_manager.hover.kind.table_export": "Рабочая область экспорта",
"tab_manager.hover.kind.table_overview": "Обзор таблицы",
"tab_manager.hover.kind.trigger": "Триггер",
"tab_manager.hover.kind.view": "Представление",
"tab_manager.hover.label.connection": "Подключение",
"tab_manager.hover.label.database": "База данных",
"tab_manager.hover.label.object": "Объект",
"tab_manager.hover.label.type": "Тип",
"tab_manager.kind_badge.design": "Дизайн",
"tab_manager.kind_badge.event": "Событие",
"tab_manager.kind_badge.fallback": "Вкладка",
"tab_manager.kind_badge.jvm": "JVM",
"tab_manager.kind_badge.materialized_view": "MV",
"tab_manager.kind_badge.query": "SQL",
"tab_manager.kind_badge.redis": "Redis",
"tab_manager.kind_badge.routine": "Функция",
"tab_manager.kind_badge.sql_analysis": "Анализ",
"tab_manager.kind_badge.table": "Таблица",
"tab_manager.kind_badge.table_export": "Экспорт",
"tab_manager.kind_badge.table_overview": "БД",
"tab_manager.kind_badge.trigger": "Триггер",
"tab_manager.kind_badge.view": "Вид",
"tab_manager.menu.close_all": "Закрыть все вкладки",
"tab_manager.menu.close_left": "Закрыть вкладки слева",
"tab_manager.menu.close_other": "Закрыть остальные вкладки",
"tab_manager.menu.close_right": "Закрыть вкладки справа",
"tab_manager.menu.tab_display_settings": "Настройки вкладок",
"tab_manager.sql_file_close.close_tabs": "Закрыть вкладки",
"tab_manager.sql_file_close.continue_close": "Продолжить закрытие",
"tab_manager.sql_file_close.dirty_multiple_label": "{{count}} SQL-файлов",
"tab_manager.sql_file_close.dirty_single_label": "\"{{title}}\"",
"tab_manager.sql_file_close.discard": "Не сохранять",
"tab_manager.sql_file_close.missing_confirm_content": "Внешний SQL-файл для {{label}} больше не существует или был перемещен. При закрытии локальный черновик во вкладке будет отброшен.",
"tab_manager.sql_file_close.missing_confirm_title": "Закрыть вкладки отсутствующих SQL-файлов?",
"tab_manager.sql_file_close.missing_multiple_label": "{{count}} вкладок SQL-файлов",
"tab_manager.sql_file_close.missing_single_label": "\"{{title}}\"",
"tab_manager.sql_file_close.read_failed_cancel_close": "Не удалось прочитать SQL-файл, закрытие отменено: {{detail}}",
"tab_manager.sql_file_close.save_and_close": "Сохранить и закрыть",
"tab_manager.sql_file_close.save_confirm_content": "В {{label}} есть несохраненные изменения. Сохранить перед закрытием?",
"tab_manager.sql_file_close.save_confirm_title": "Сохранить изменения SQL-файлов?",
"tab_manager.sql_file_close.save_failed": "Не удалось сохранить {{title}}: {{detail}}",
"tab_manager.sql_file_close.saved": "SQL-файл сохранен",
"tab_manager.sql_file_close.unknown_error": "Неизвестная ошибка",
"table_designer.action.add": "Добавить",
"table_designer.action.add_after_selected": "Добавить после выбранного столбца",
"table_designer.action.add_column": "Добавить столбец",
"table_designer.action.apply": "Применить",
"table_designer.action.cancel": "Отмена",
"table_designer.action.copy_selected_to_new_table": "Скопировать выбранное в новую таблицу",
"table_designer.action.create": "Создать",
"table_designer.action.create_table": "Создать таблицу",
"table_designer.action.delete": "Удалить",
"table_designer.action.edit": "Изменить",
"table_designer.action.execute": "Выполнить",
"table_designer.action.refresh": "Обновить",
"table_designer.action.refresh_anyway": "Все равно обновить",
"table_designer.action.save": "Сохранить",
"table_designer.action.table_comment": "Комментарий таблицы",
"table_designer.action.view_statement": "Показать оператор",
"table_designer.column.actions": "Действия",
"table_designer.column.auto_increment": "Автоинкремент",
"table_designer.column.comment": "Комментарий",
"table_designer.column.default": "По умолчанию",
"table_designer.column.name": "Имя",
"table_designer.column.not_null": "NOT NULL",
"table_designer.column.primary_key": "Первичный ключ",
"table_designer.column.type": "Тип",
"table_designer.empty.triggers": "У этой таблицы нет триггеров",
"table_designer.fallback.empty": "(пусто)",
"table_designer.fallback.unknown_error": "Неизвестная ошибка",
"table_designer.fallback.unnamed_foreign_key": "(внешний ключ без имени)",
"table_designer.fallback.unnamed_index": "(индекс без имени)",
"table_designer.foreign_key.column.constraint_name": "Имя ограничения",
"table_designer.foreign_key.column.fields": "Поля",
"table_designer.foreign_key.column.ref_fields": "Ссылочные поля",
"table_designer.foreign_key.column.ref_table": "Ссылочная таблица",
"table_designer.index.column.fields": "Поля",
"table_designer.index.column.name": "Имя индекса",
"table_designer.index.column.type": "Тип индекса",
"table_designer.index.column.uniqueness": "Уникальность",
"table_designer.index.kind.fulltext": "Полнотекстовый индекс",
"table_designer.index.kind.normal": "Обычный индекс",
"table_designer.index.kind.normal_nonclustered": "Обычный индекс (некластеризованный)",
"table_designer.index.kind.primary_clustered": "Индекс первичного ключа (кластеризованный)",
"table_designer.index.kind.spatial": "Пространственный индекс",
"table_designer.index.kind.unique": "Уникальный индекс",
"table_designer.index.uniqueness.normal": "Обычный",
"table_designer.index.uniqueness.unique": "Уникальный",
"table_designer.label.create_statement": "CREATE-оператор для {{name}}",
"table_designer.label.create_statement_plain": "CREATE-оператор",
"table_designer.message.add_at_least_one_column": "Добавьте хотя бы один столбец",
"table_designer.message.columns_copied_to_new_table": "{{count}} столбцов скопировано в новую таблицу {{table}}",
"table_designer.message.connection_not_found": "Подключение не найдено",
"table_designer.message.delete_failed": "Не удалось удалить: {{detail}}",
"table_designer.message.drop_old_trigger_failed": "Не удалось удалить старый триггер: {{detail}}",
"table_designer.message.duckdb_primary_key_change_unsupported": "DuckDB сейчас поддерживает только добавление первичного ключа в таблицы без него. Изменение или удаление существующего первичного ключа требует пересоздания таблицы.",
"table_designer.message.execution_failed": "Не удалось выполнить: {{detail}}",
"table_designer.message.execution_failed_plain": "Не удалось выполнить",
"table_designer.message.execution_failed_prefix": "Не удалось выполнить: ",
"table_designer.message.foreign_key_column_count_mismatch": "Количество локальных полей должно совпадать с количеством ссылочных полей",
"table_designer.message.foreign_key_created": "Внешний ключ создан",
"table_designer.message.foreign_key_delete_unsupported": "Эта база данных не поддерживает удаление этого внешнего ключа здесь",
"table_designer.message.foreign_key_deleted": "Внешний ключ удален",
"table_designer.message.foreign_key_maintenance_unsupported": "Эта база данных не поддерживает управление внешними ключами здесь",
"table_designer.message.foreign_key_name_exists": "Ограничение внешнего ключа уже существует: {{name}}",
"table_designer.message.foreign_key_name_required": "Введите имя ограничения внешнего ключа",
"table_designer.message.foreign_key_updated": "Внешний ключ обновлен",
"table_designer.message.index_create_sql_placeholder": "SQL создания индекса пока недоступен",
"table_designer.message.index_create_sql_unavailable": "Не удалось получить SQL создания индекса",
"table_designer.message.index_created": "Индекс создан",
"table_designer.message.index_delete_named_unsupported": "Эта база данных не поддерживает удаление индекса \"{{name}}\"",
"table_designer.message.index_delete_unsupported": "Эта база данных не поддерживает удаление этого индекса",
"table_designer.message.index_deleted": "Индекс удален",
"table_designer.message.index_kind_unsupported": "Эта база данных не поддерживает этот тип индекса",
"table_designer.message.index_maintenance_unsupported": "Эта база данных не поддерживает управление индексами здесь",
"table_designer.message.index_name_exists": "Имя индекса уже существует: {{name}}",
"table_designer.message.index_name_required": "Введите имя индекса",
"table_designer.message.index_restore_failed": "{{detail}}; не удалось восстановить исходный индекс: {{restoreDetail}}",
"table_designer.message.index_restore_unavailable": "{{detail}}; исходный индекс не удалось восстановить автоматически. Проверьте его как можно скорее.",
"table_designer.message.index_restored_after_failure": "{{detail}}; исходный индекс восстановлен автоматически.",
"table_designer.message.index_updated": "Индекс обновлен",
"table_designer.message.indexes_deleted": "{{count}} индексов удалено",
"table_designer.message.load_columns_failed": "Не удалось загрузить столбцы: {{detail}}",
"table_designer.message.no_changes_detected": "Изменения не обнаружены",
"table_designer.message.no_copyable_columns": "Не выбраны столбцы для копирования",
"table_designer.message.no_index_changes": "Изменения индекса не обнаружены",
"table_designer.message.only_normal_unique_index_supported": "Эта база данных поддерживает управление только обычными и уникальными индексами",
"table_designer.message.ref_columns_required": "Введите хотя бы одно ссылочное поле",
"table_designer.message.ref_table_required": "Введите ссылочную таблицу",
"table_designer.message.relational_index_unsupported": "Этот источник данных не поддерживает управление реляционными индексами",
"table_designer.message.schema_saved_alter": "Структура таблицы обновлена.",
"table_designer.message.schema_saved_create": "Таблица создана.",
"table_designer.message.select_at_least_one_column": "Выберите хотя бы один столбец",
"table_designer.message.select_column_before_insert": "Перед вставкой выберите столбец.",
"table_designer.message.select_columns_to_copy": "Сначала выберите столбцы для копирования",
"table_designer.message.select_index_to_delete": "Сначала выберите индекс для удаления",
"table_designer.message.select_local_columns": "Выберите хотя бы одно локальное поле",
"table_designer.message.select_one_foreign_key": "Сначала выберите один внешний ключ",
"table_designer.message.select_one_index": "Сначала выберите один индекс",
"table_designer.message.statement_execution_failed_prefix": "Не удалось выполнить оператор {{current}}/{{total}}: ",
"table_designer.message.switch_index_kind": "Переключите категорию индекса на индекс {{kind}}",
"table_designer.message.table_comment_unsupported": "Эта база данных не поддерживает редактирование комментария таблицы здесь",
"table_designer.message.table_comment_updated": "Комментарий таблицы обновлен",
"table_designer.message.table_name_required": "Введите имя таблицы",
"table_designer.message.target_table_required": "Введите имя целевой таблицы",
"table_designer.message.trigger_created": "Триггер создан",
"table_designer.message.trigger_deleted": "Триггер удален",
"table_designer.message.trigger_updated": "Триггер обновлен",
"table_designer.modal.column_comment_title": "Комментарий столбца",
"table_designer.modal.column_comment_title_named": "Комментарий столбца - {{name}}",
"table_designer.modal.confirm_sql_title": "Подтверждение изменений SQL",
"table_designer.modal.copy_columns_title": "Скопировать выбранные столбцы в новую таблицу",
"table_designer.modal.delete_foreign_key_content": "Удалить ограничение внешнего ключа \"{{name}}\"?",
"table_designer.modal.delete_foreign_key_title": "Удаление внешнего ключа",
"table_designer.modal.delete_index_many": "Удалить эти индексы ({{count}})?\n{{names}}",
"table_designer.modal.delete_index_one": "Удалить индекс {{names}}?",
"table_designer.modal.delete_index_title": "Удаление индекса",
"table_designer.modal.delete_trigger_content": "Удалить триггер \"{{name}}\"? Это действие нельзя отменить.",
"table_designer.modal.delete_trigger_title": "Удаление триггера",
"table_designer.modal.foreign_key_create_title": "Добавить внешний ключ",
"table_designer.modal.foreign_key_edit_title": "Изменить внешний ключ",
"table_designer.modal.index_create_title": "Добавить индекс",
"table_designer.modal.index_edit_title": "Изменить индекс",
"table_designer.modal.table_comment_title": "Изменить комментарий таблицы",
"table_designer.modal.trigger_create_title": "Добавить триггер",
"table_designer.modal.trigger_detail_title": "Сведения о триггере",
"table_designer.modal.trigger_detail_title_named": "Триггер: {{name}}",
"table_designer.modal.trigger_edit_title": "Изменить триггер",
"table_designer.modal.unsaved_changes_content": "При обновлении несохраненные изменения столбцов в текущем черновике будут потеряны. Все равно обновить и перезаписать черновик?",
"table_designer.modal.unsaved_changes_title": "Есть несохраненные изменения столбцов",
"table_designer.notice.foreign_key_readonly": "Эта база данных не поддерживает редактирование внешних ключей здесь. Доступен только просмотр.",
"table_designer.notice.foreign_key_replace_hint": "При изменении внешнего ключа сначала удаляется старый внешний ключ, затем создается новый.",
"table_designer.notice.index_readonly": "Эта база данных не поддерживает редактирование индексов здесь. Доступен только просмотр.",
"table_designer.notice.index_restore_hint": "Если при изменении индекса создание нового индекса завершится ошибкой, система попытается восстановить исходный индекс.",
"table_designer.notice.sql_irreversible": "Внимательно проверьте SQL. После выполнения действие нельзя отменить.",
"table_designer.notice.sql_statement_irreversible": "Внимательно проверьте оператор SQL. После выполнения действие нельзя отменить.",
"table_designer.notice.trigger_replace_hint": "При изменении триггера сначала удаляется исходный триггер, затем создается новый.",
"table_designer.option.default": "По умолчанию",
"table_designer.option.recommended_suffix": "(рекомендуется)",
"table_designer.placeholder.column_comment": "Введите комментарий столбца",
"table_designer.placeholder.foreign_key_name": "Имя ограничения внешнего ключа, например fk_order_user",
"table_designer.placeholder.index_columns": "Выберите столбцы индекса; используется порядок выбора",
"table_designer.placeholder.index_name": "Имя индекса, например idx_user_name",
"table_designer.placeholder.local_columns": "Выберите локальные поля; порядок должен совпадать со ссылочными полями",
"table_designer.placeholder.primary_index_name": "Индекс первичного ключа использует фиксированное имя: PRIMARY",
"table_designer.placeholder.ref_columns": "Введите ссылочные поля; можно указать несколько",
"table_designer.placeholder.ref_table": "Ссылочная таблица; поддерживается db.table",
"table_designer.placeholder.table_comment": "Введите комментарий таблицы",
"table_designer.placeholder.table_name": "Введите имя таблицы",
"table_designer.placeholder.target_table_name": "Введите имя целевой таблицы",
"table_designer.schema_sql.doris.primary_key_hint": "-- Изменения модели первичного ключа/Key в Doris требуют ручной миграции с учетом модели таблицы. Специфичные для MySQL фразы DROP/ADD PRIMARY KEY пропущены.",
"table_designer.schema_sql.duckdb.comment_hint": "-- DuckDB не может сохранять комментарии столбцов через COMMENT ON COLUMN. Комментарий для столбца {{column}} останется только в предпросмотре дизайнера.",
"table_designer.schema_sql.duckdb.primary_key_hint": "-- DuckDB сейчас поддерживает только добавление PRIMARY KEY к таблицам без существующего первичного ключа. Изменение или удаление существующего первичного ключа требует перестройки таблицы.",
"table_designer.schema_sql.limited_column_hint": "-- Синтаксис ограничений столбцов, значений по умолчанию и комментариев в {{dialect}} отличается от MySQL. Специфичные для MySQL фразы пропущены; добавьте SQL для целевого диалекта перед выполнением.",
"table_designer.schema_sql.sqlite.modify_column_hint": "-- SQLite не может напрямую изменять свойства столбцов. Для столбца {{column}} создайте новую таблицу, перенесите данные и замените старую таблицу.",
"table_designer.schema_sql.sqlserver.drop_primary_key_hint": "-- SQL Server требует исходное имя ограничения для удаления старого первичного ключа. Перед удалением проверьте его на вкладке индексов.",
"table_designer.schema_sql.tdengine.timestamp_hint": "-- Обычным таблицам TDengine обычно нужен столбец времени TIMESTAMP. Перед выполнением проверьте модель таблицы.",
"table_designer.selection.columns_selected": "Выбрано столбцов: {{count}}",
"table_designer.selection.foreign_key_selected": "Выбрано: {{name}}",
"table_designer.selection.indexes_selected": "Выбрано индексов: {{count}}",
"table_designer.selection.trigger_prompt": "Щелкните, чтобы выбрать триггер",
"table_designer.selection.trigger_selected": "Выбрано: {{name}}",
"table_designer.sql_preview.change.add": "Добавление",
"table_designer.sql_preview.change.comment": "Изменение комментария",
"table_designer.sql_preview.change.constraint": "Изменение ограничения",
"table_designer.sql_preview.change.create": "Структура новой таблицы",
"table_designer.sql_preview.change.create_index": "Создание индекса",
"table_designer.sql_preview.change.drop": "Удаление",
"table_designer.sql_preview.change.modify": "Изменение свойств столбца",
"table_designer.sql_preview.change.rename": "Переименование",
"table_designer.starrocks.bucket_mode.auto": "Авточисло сегментов",
"table_designer.starrocks.bucket_mode.number": "Фиксированное число сегментов",
"table_designer.starrocks.distribution.hash": "Хеш-распределение",
"table_designer.starrocks.distribution.none": "Без распределения",
"table_designer.starrocks.distribution.random": "Случайное распределение",
"table_designer.starrocks.key_model.aggregate": "Агрегатный ключ",
"table_designer.starrocks.key_model.duplicate": "Дублирующий ключ",
"table_designer.starrocks.key_model.unique": "Уникальный ключ",
"table_designer.starrocks.placeholder.bucket_count": "Число сегментов",
"table_designer.starrocks.placeholder.distribution_columns": "Столбцы распределения, например user_id",
"table_designer.starrocks.placeholder.key_columns": "Ключевые столбцы, например id, date",
"table_designer.starrocks.placeholder.partition_clause": "Секция партиционирования, например PARTITION BY RANGE(date_col)(...)",
"table_designer.starrocks.table_kind.external": "Внешняя таблица",
"table_designer.starrocks.table_kind.olap": "OLAP-таблица",
"table_designer.status.read_only": "Только чтение",
"table_designer.summary.columns": "{{count}} столбцов",
"table_designer.summary.indexes": "Индексов: {{count}}, индексных полей: {{fields}}",
"table_designer.tab.columns": "Столбцы",
"table_designer.tab.edit_trigger_title": "Редактировать триггер: {{name}}",
"table_designer.tab.foreign_keys": "Внешние ключи",
"table_designer.tab.indexes": "Индексы",
"table_designer.tab.triggers": "Триггеры",
"table_designer.table_comment.current": "Текущий комментарий: {{comment}}",
"table_designer.title.default_database": "База данных по умолчанию",
"table_designer.title.schema_designer": "Конструктор схемы",
"table_designer.title.untitled_table": "Таблица без имени",
"table_designer.tooltip.edit_comment_popup": "Редактировать комментарий во всплывающем окне",
"table_designer.trigger.column.event": "Событие",
"table_designer.trigger.column.name": "Имя",
"table_designer.trigger.column.timing": "Момент",
"table_designer.trigger.definition_unavailable": "Не удалось получить полное определение триггера",
"table_designer.trigger.field.event": "Событие",
"table_designer.trigger.field.timing": "Момент",
"table_designer.trigger.template.body_comment": "Логика триггера",
"table_designer.trigger.template.enter_create": "Введите оператор CREATE TRIGGER",
"table_overview.action.show_more": "Показать еще таблицы (осталось {{count}})",
"table_overview.empty.no_matches": "Совпадений нет",
"table_overview.empty.no_tables": "Таблиц нет",
"table_overview.menu.backup_table_sql": "Резервная копия таблицы (SQL)",
"table_overview.menu.clear_table": "Очистить таблицу",
"table_overview.menu.copy_structure": "Копировать структуру таблицы",
"table_overview.menu.copy_table_name": "Копировать имя таблицы",
"table_overview.menu.danger_operations": "Опасные операции",
"table_overview.menu.delete_table": "Удалить таблицу",
"table_overview.menu.design_table": "Конструктор таблицы",
"table_overview.menu.export_csv": "Экспорт CSV",
"table_overview.menu.export_html": "Экспорт HTML",
"table_overview.menu.export_json": "Экспорт JSON",
"table_overview.menu.export_markdown": "Экспорт Markdown",
"table_overview.menu.export_table_data": "Экспорт данных таблицы",
"table_overview.menu.export_xlsx": "Экспорт XLSX",
"table_overview.menu.new_query": "Новый запрос",
"table_overview.menu.rename_table": "Переименовать таблицу",
"table_overview.menu.table_structure": "Структура таблицы",
"table_overview.menu.truncate_table": "Усечь таблицу",
"table_overview.message.copy_structure_failed": "Не удалось скопировать структуру таблицы: {{detail}}",
"table_overview.message.copy_structure_success": "Структура таблицы скопирована в буфер обмена",
"table_overview.message.copy_table_name_empty": "Имя таблицы пустое, копирование невозможно",
"table_overview.message.copy_table_name_failed": "Не удалось скопировать имя таблицы: {{detail}}",
"table_overview.message.copy_table_name_success": "Имя таблицы скопировано в буфер обмена",
"table_overview.message.delete_table_failed": "Не удалось удалить таблицу: {{detail}}",
"table_overview.message.delete_table_success": "Таблица удалена",
"table_overview.message.export_failed": "Ошибка экспорта: {{detail}}",
"table_overview.message.export_success": "Экспорт выполнен",
"table_overview.message.exporting_table_format": "Экспорт {{table}} в формате {{format}}...",
"table_overview.message.load_tables_failed": "Не удалось загрузить сведения о таблицах: {{detail}}",
"table_overview.message.pinned": "Таблица закреплена",
"table_overview.message.rename_table_failed": "Не удалось переименовать таблицу: {{detail}}",
"table_overview.message.rename_table_success": "Таблица переименована",
"table_overview.message.table_data_action_failed": "{{action}} завершилось ошибкой: {{detail}}",
"table_overview.message.table_data_action_loading": "Выполняется {{action}} для {{table}}...",
"table_overview.message.table_data_action_success": "{{action}} выполнено",
"table_overview.message.unknown_error": "Неизвестная ошибка",
"table_overview.message.unpinned": "Закрепление таблицы снято",
"table_overview.metric.data_size": "Размер данных",
"table_overview.metric.engine": "Движок",
"table_overview.metric.index_size": "Размер индекса",
"table_overview.metric.relative_size": "Относительный размер",
"table_overview.modal.delete_table.content": "Удалить таблицу \"{{table}}\"? Это действие нельзя отменить.",
"table_overview.modal.delete_table.title": "Удалить таблицу",
"table_overview.modal.rename_table.placeholder": "Введите новое имя таблицы",
"table_overview.modal.rename_table.title": "Переименовать таблицу",
"table_overview.modal.table_data_action.content": "{{action}} безвозвратно удалит все данные в таблице \"{{table}}\". Это действие нельзя отменить. Продолжить?",
"table_overview.modal.table_data_action.title": "Подтвердите {{action}}",
"table_overview.placeholder.search": "Поиск по именам таблиц или комментариям...",
"table_overview.row.engine_table": "Таблица {{engine}}",
"table_overview.row.open_hint": "Дважды щелкните, чтобы открыть данные; щелкните правой кнопкой для дополнительных действий",
"table_overview.section.all": "Все",
"table_overview.section.pinned": "Закрепленные",
"table_overview.sort.name": "Имя",
"table_overview.sort.rows": "Строки",
"table_overview.sort.size": "Размер",
"table_overview.status.hidden_count_hint": "Еще не отображено: {{count}}. Загрузите больше или сузьте поиск.",
"table_overview.status.loading_tables": "Загрузка сведений о таблицах...",
"table_overview.status.matching_rendered": "Найдено таблиц: {{matched}}, отображается: {{rendered}}",
"table_overview.status.updating_filter": "Обновление результатов фильтра...",
"table_overview.tab.design_table_title": "Проектирование таблицы ({{table}})",
"table_overview.tab.table_structure_title": "Структура таблицы ({{table}})",
"table_overview.table_data_action.clear.label": "Очистить таблицу",
"table_overview.table_data_action.truncate.label": "Усечь таблицу",
"table_overview.toolbar.summary": "{{count}} табл. · {{rows}} строк · {{size}}",
"table_overview.tooltip.card_view": "Карточки",
"table_overview.tooltip.list_view": "Список",
"table_overview.tooltip.refresh": "Обновить",
"table_overview.tooltip.sort": "Сортировка",
"table_overview.validation.table_name_required": "Имя таблицы обязательно",
"table_overview.validation.table_name_unchanged": "Новое имя таблицы совпадает с текущим",
"trigger_viewer.action.edit_object": "Изменить объект",
"trigger_viewer.edit_sql.compatibility_hint": "Перед выполнением проверьте совместимость синтаксиса с текущей базой данных.",
"trigger_viewer.edit_sql.empty_definition": "Определение триггера пустое. Дополните инструкцию CREATE TRIGGER перед выполнением.",
"trigger_viewer.edit_sql.fragment_definition": "Текущий источник данных вернул только фрагмент определения триггера. Дополните инструкцию CREATE TRIGGER перед выполнением.",
"trigger_viewer.edit_sql.header": "Изменить триггер: {{name}}",
"trigger_viewer.edit_sql.replace_hint": "Изменение структуры таблицы сначала удалит исходный триггер, а затем создаст новый. Проверьте перед выполнением.",
"trigger_viewer.editor.definition_not_found": "Определение триггера не найдено",
"trigger_viewer.editor.sphinx.compat_queries_hint": "Выполнено несколько совместимых запросов. Причиной могут быть ограничения версии или неподдерживаемый тип объекта.",
"trigger_viewer.editor.sphinx.empty_result": "Текущий экземпляр Sphinx{{version}} не вернул определение триггера.",
"trigger_viewer.editor.sphinx.failed_message_label": "Возвращенное сообщение об ошибке",
"trigger_viewer.editor.sphinx.failed_message_unknown": "Возвращенное сообщение об ошибке: неизвестная ошибка",
"trigger_viewer.editor.sphinx.unsupported_query": "Текущий экземпляр Sphinx{{version}} не поддерживает запрос определений триггеров.",
"trigger_viewer.editor.sphinx.version_suffix": " (версия: {{version}})",
"trigger_viewer.editor.unsupported.duckdb": "DuckDB не поддерживает триггеры",
"trigger_viewer.editor.unsupported.generic": "Этот тип базы данных не поддерживает просмотр определений триггеров",
"trigger_viewer.editor.unsupported.mongodb": "MongoDB не поддерживает триггеры",
"trigger_viewer.editor.unsupported.tdengine": "TDengine не поддерживает триггеры",
"trigger_viewer.error.connection_not_found": "Подключение к базе данных не найдено",
"trigger_viewer.error.load_failed": "Не удалось загрузить",
"trigger_viewer.error.query_failed": "Не удалось запросить определение триггера",
"trigger_viewer.error.query_failed_detail": "Не удалось запросить определение триггера: {{detail}}",
"trigger_viewer.error.trigger_name_empty": "Имя триггера пустое",
"trigger_viewer.field.database": "База данных",
"trigger_viewer.field.trigger": "Триггер",
"trigger_viewer.loading.definition": "Загрузка определения триггера...",
"trigger_viewer.tab.edit_trigger_title": "Изменить триггер: {{name}}",
"trigger_viewer.warning.refresh_latest_failed": "Не удалось обновить последнее определение"
}