Files
MyGoNavi/shared/i18n/ru-RU.json
tianqijiuyun-latiao 5fc29a6fd3 feat(i18n): 推进多语言剩余切片闭环
- 补齐 DataGrid、DataViewer、DefinitionViewer、JVM 等模块多语言文案与回归测试
- 收口 JVM 前后端展示、诊断、监控和资源呈现相关多语言路径
- 更新六语言共享词典并保留 raw 边界
2026-06-16 12:40:33 +08:00

4396 lines
520 KiB
JSON
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.
{
"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.sidebar.group.untitled": "Группа без имени",
"connection.sidebar.group.meta": "{{count}} подключений · Группа подключений",
"connection.sidebar.group.badge": "Группа",
"connection.sidebar.group.edit": "Изменить группу",
"connection.sidebar.group.delete": "Удалить группу",
"connection.sidebar.group.deleteConfirmTitle": "Подтвердить удаление",
"connection.sidebar.group.deleteConfirmContent": "Удалить группу \"{{name}}\"? Подключения внутри останутся.",
"connection.sidebar.group.expandAria": "Развернуть группу подключений {{name}}",
"connection.sidebar.group.collapseAria": "Свернуть группу подключений {{name}}",
"connection.sidebar.menu.section": "Подключение",
"connection.sidebar.menu.groupSection": "Группы подключений",
"connection.sidebar.menu.copy": "Копировать подключение",
"connection.sidebar.menu.disconnect": "Отключить",
"connection.sidebar.menu.delete": "Удалить подключение",
"connection.sidebar.menu.hostFallback": "Адрес не указан",
"connection.sidebar.menu.hostBadge": "HOST",
"connection.sidebar.menu.moveToTag": "Переместить в тег",
"connection.sidebar.menu.moveOutTag": "Убрать из тега",
"connection.sidebar.menu.moveToUngrouped": "Убрать из группы",
"connection.sidebar.menu.createDatabase": "Новая база данных",
"connection.sidebar.menu.refresh": "Обновить подключение",
"connection.sidebar.menu.current": "Текущий",
"connection.sidebar.duplicate.backendUnavailable": "Не удалось скопировать подключение: интерфейс бэкенда недоступен",
"connection.sidebar.duplicate.noResult": "Не удалось скопировать подключение: бэкенд не вернул результат",
"connection.sidebar.duplicate.success": "Подключение скопировано: {{name}}",
"connection.sidebar.duplicate.failureFallback": "Не удалось скопировать подключение",
"connection.sidebar.disconnect.success": "Подключение отключено",
"connection.sidebar.delete.confirmTitle": "Подтвердить удаление",
"connection.sidebar.delete.confirmContent": "Удалить подключение \"{{name}}\"?",
"connection.sidebar.delete.backendUnavailable": "Не удалось удалить подключение: интерфейс бэкенда недоступен",
"connection.sidebar.delete.success": "Подключение удалено",
"connection.sidebar.delete.failureFallback": "Не удалось удалить подключение",
"find_in_database.title": "Поиск в базе данных - {{dbName}}",
"find_in_database.placeholder.keyword": "Введите строку для поиска...",
"find_in_database.match.contains": "Содержит",
"find_in_database.match.exact": "Точное совпадение",
"find_in_database.message.keyword_required": "Введите ключевое слово для поиска",
"find_in_database.message.connection_config_not_found": "Конфигурация подключения не найдена",
"find_in_database.message.get_tables_failed": "Не удалось получить список таблиц: {{detail}}",
"find_in_database.message.no_tables": "В текущей базе данных нет таблиц",
"find_in_database.message.no_matches": "Совпадающие данные не найдены",
"find_in_database.message.search_failed": "Ошибка поиска: {{detail}}",
"find_in_database.column.table_name": "Таблица",
"find_in_database.column.matched_columns": "Совпавшие столбцы",
"find_in_database.column.match_count": "Строк с совпадениями",
"find_in_database.column.action": "Действия",
"find_in_database.tooltip.collapse_details": "Свернуть подробности",
"find_in_database.tooltip.view_details": "Показать подробности",
"find_in_database.progress.searching_table": "Поиск в {{table}}... ({{current}}/{{total}})",
"find_in_database.summary.found_tables": "Найдено таблиц с совпадающими данными: {{count}}",
"find_in_database.summary.searching": " (поиск продолжается...)",
"find_in_database.detail.title": "{{table}} - подробности строк с совпадениями",
"find_in_database.detail.row_count": "{{count}} строк",
"import_preview.title": "Предпросмотр импорта данных",
"import_preview.action.start": "Начать импорт",
"import_preview.status.loading_preview": "Загрузка данных предпросмотра...",
"import_preview.status.importing": "Импорт данных...",
"import_preview.progress.processed_rows": "Обработано {{current}} / {{total}} строк",
"import_preview.progress.success_count": "Успешно {{count}}",
"import_preview.progress.error_count": "Ошибок {{count}}",
"import_preview.preview.summary": "{{rows}} строк и {{columns}} полей",
"import_preview.preview.description": "Ниже показаны первые 5 строк. Начните импорт после проверки данных.",
"import_preview.preview.field_list": "Список полей:",
"import_preview.preview.table_title": "Предпросмотр данных (первые 5 строк):",
"import_preview.error.preview_failed": "Не удалось выполнить предпросмотр",
"import_preview.error.preview_failed_detail": "Не удалось выполнить предпросмотр: {{detail}}",
"import_preview.error.connection_config_not_found": "Конфигурация подключения не найдена",
"import_preview.error.import_failed": "Не удалось выполнить импорт",
"import_preview.error.import_failed_detail": "Не удалось выполнить импорт: {{detail}}",
"import_preview.result.completed": "Импорт завершен",
"import_preview.result.success_rows": "Успешно импортировано строк: {{count}}",
"import_preview.result.failed_rows": "Строк с ошибками: {{count}}",
"import_preview.result.error_logs": "Журнал ошибок:",
"log_panel.title": "Журнал выполнения SQL",
"log_panel.description": "Фиксирует статус выполнения, длительность и ошибки для быстрого анализа.",
"log_panel.action.clear": "Очистить журнал",
"log_panel.action.close": "Закрыть панель",
"log_panel.empty": "Нет журналов выполнения SQL",
"log_panel.column.time": "Время",
"log_panel.column.status": "Статус",
"log_panel.column.duration": "Длительность",
"log_panel.column.sql_message": "SQL / сообщение",
"log_panel.affected_rows": "Затронуто строк: {{count}}",
"table_overview.status.loading_tables": "Загрузка сведений о таблицах...",
"table_overview.message.load_tables_failed": "Не удалось загрузить сведения о таблицах: {{detail}}",
"table_overview.message.pinned": "Таблица закреплена",
"table_overview.message.unpinned": "Закрепление таблицы снято",
"table_overview.message.copy_structure_success": "Структура таблицы скопирована в буфер обмена",
"table_overview.message.copy_structure_failed": "Не удалось скопировать структуру таблицы: {{detail}}",
"table_overview.message.exporting_table_format": "Экспорт {{table}} в формате {{format}}...",
"table_overview.message.export_success": "Экспорт выполнен",
"table_overview.message.export_failed": "Ошибка экспорта: {{detail}}",
"table_overview.message.delete_table_success": "Таблица удалена",
"table_overview.message.delete_table_failed": "Не удалось удалить таблицу: {{detail}}",
"table_overview.table_data_action.truncate.label": "Усечь таблицу",
"table_overview.table_data_action.clear.label": "Очистить таблицу",
"table_overview.modal.table_data_action.title": "Подтвердите {{action}}",
"table_overview.modal.table_data_action.content": "{{action}} безвозвратно удалит все данные в таблице \"{{table}}\". Это действие нельзя отменить. Продолжить?",
"table_overview.message.table_data_action_loading": "Выполняется {{action}} для {{table}}...",
"table_overview.message.table_data_action_success": "{{action}} выполнено",
"table_overview.message.table_data_action_failed": "{{action}} завершилось ошибкой: {{detail}}",
"table_overview.message.rename_table_success": "Таблица переименована",
"table_overview.message.rename_table_failed": "Не удалось переименовать таблицу: {{detail}}",
"table_overview.message.unknown_error": "Неизвестная ошибка",
"table_overview.modal.delete_table.title": "Удалить таблицу",
"table_overview.modal.delete_table.content": "Удалить таблицу \"{{table}}\"? Это действие нельзя отменить.",
"table_overview.modal.rename_table.title": "Переименовать таблицу",
"table_overview.modal.rename_table.placeholder": "Введите новое имя таблицы",
"table_overview.validation.table_name_required": "Имя таблицы обязательно",
"table_overview.validation.table_name_unchanged": "Новое имя таблицы совпадает с текущим",
"table_overview.toolbar.summary": "{{count}} табл. · {{rows}} строк · {{size}}",
"table_overview.placeholder.search": "Поиск по именам таблиц или комментариям...",
"table_overview.tooltip.sort": "Сортировка",
"table_overview.tooltip.card_view": "Карточки",
"table_overview.tooltip.list_view": "Список",
"table_overview.tooltip.refresh": "Обновить",
"table_overview.sort.name": "Имя",
"table_overview.sort.rows": "Строки",
"table_overview.sort.size": "Размер",
"table_overview.metric.data_size": "Размер данных",
"table_overview.metric.index_size": "Размер индекса",
"table_overview.metric.relative_size": "Относительный размер",
"table_overview.metric.engine": "Движок",
"table_overview.section.all": "Все",
"table_overview.section.pinned": "Закрепленные",
"table_overview.row.engine_table": "Таблица {{engine}}",
"table_overview.row.open_hint": "Дважды щелкните, чтобы открыть данные; щелкните правой кнопкой для дополнительных действий",
"table_overview.status.updating_filter": "Обновление результатов фильтра...",
"table_overview.status.matching_rendered": "Найдено таблиц: {{matched}}, отображается: {{rendered}}",
"table_overview.status.hidden_count_hint": "Еще не отображено: {{count}}. Загрузите больше или сузьте поиск.",
"table_overview.empty.no_matches": "Совпадений нет",
"table_overview.empty.no_tables": "Таблиц нет",
"table_overview.action.show_more": "Показать еще таблицы (осталось {{count}})",
"table_overview.menu.new_query": "Новый запрос",
"table_overview.menu.design_table": "Конструктор таблицы",
"table_overview.menu.copy_structure": "Копировать структуру таблицы",
"table_overview.menu.backup_table_sql": "Резервная копия таблицы (SQL)",
"table_overview.menu.rename_table": "Переименовать таблицу",
"table_overview.menu.danger_operations": "Опасные операции",
"table_overview.menu.truncate_table": "Усечь таблицу",
"table_overview.menu.clear_table": "Очистить таблицу",
"table_overview.menu.delete_table": "Удалить таблицу",
"table_overview.menu.export_table_data": "Экспорт данных таблицы",
"table_overview.menu.export_csv": "Экспорт CSV",
"table_overview.menu.export_xlsx": "Экспорт XLSX",
"table_overview.menu.export_json": "Экспорт JSON",
"table_overview.menu.export_markdown": "Экспорт Markdown",
"table_overview.menu.export_html": "Экспорт HTML",
"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": "Настройки",
"app.about.action.check_updates": "Проверить обновления",
"app.about.action.download_progress": "Ход загрузки",
"app.about.action.download_update": "Скачать обновление",
"app.about.action.mute_this_version": "Не напоминать в этот раз",
"app.about.community.ai_book": "AI全书",
"app.about.description": "Просмотр версии, ссылок на репозиторий, статуса обновлений и загрузок.",
"app.about.field.author": "Автор",
"app.about.field.community": "Сообщество",
"app.about.field.update_status": "Статус обновления",
"app.about.field.version": "Версия",
"app.about.message.load_failed": "Не удалось получить информацию о приложении: {{error}}",
"app.about.project_links": "Ссылки проекта",
"app.about.title": "О GoNavi",
"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.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.current_directory": "Текущий каталог",
"app.data_root.default_directory": "Каталог по умолчанию",
"app.data_root.description": "Единое управление корневым каталогом файловых данных, таких как подключения, прокси, настройки AI и драйверы.",
"app.data_root.driver_directory": "Каталог драйверов",
"app.data_root.backend.dialog.select_directory": "Выбрать каталог данных GoNavi",
"app.data_root.backend.error.create_target_failed": "Не удалось создать целевой каталог данных: {{detail}}",
"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.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.read_source_failed": "Не удалось прочитать исходные данные ({{entry}}): {{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.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.proxy.description": "Единая настройка проверки обновлений, управления драйверами и сетевого выхода для подключений без отдельного прокси.",
"app.proxy.enable": "Включить глобальный прокси",
"app.proxy.host": "Хост прокси",
"app.proxy.host_placeholder": "Пример: 127.0.0.1",
"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": "Имя пользователя (необязательно)",
"proxy.backend.error.unsupported_type": "Неподдерживаемый тип прокси: {{type}}",
"proxy.backend.error.host_empty": "Хост прокси пуст",
"proxy.backend.error.port_invalid": "Недопустимый порт прокси: {{port}}",
"proxy.backend.error.remote_addr_invalid": "Недопустимый удалённый адрес: {{address}}",
"proxy.backend.error.listen_failed": "Не удалось создать локальный слушатель прокси: {{detail}}",
"proxy.backend.error.socks5_dialer_failed": "Не удалось создать dialer для SOCKS5-прокси: {{detail}}",
"proxy.backend.error.socks5_connect_failed": "Не удалось подключиться через SOCKS5-прокси: {{detail}}",
"proxy.backend.error.http_connect_failed": "Не удалось подключиться к HTTP-прокси: {{detail}}",
"proxy.backend.error.http_connect_write_failed": "Не удалось отправить запрос HTTP CONNECT: {{detail}}",
"proxy.backend.error.http_connect_read_failed": "Не удалось прочитать ответ HTTP CONNECT: {{detail}}",
"proxy.backend.error.http_connect_status_failed": "HTTP-прокси CONNECT завершился ошибкой: {{status}}",
"app.startup_readiness.loading_local_config": "Загрузка локальной конфигурации...",
"app.startup_readiness.loading_security_config": "Загрузка конфигурации безопасности...",
"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": "Проверка результата обновления",
"security_update.banner.title": "Сохраненные конфигурации можно безопасно обновить",
"security_update.banner.action.start_now": "Обновить сейчас",
"security_update.banner.action.view_details": "Показать сведения",
"security_update.banner.action.restart_update": "Запустить обновление заново",
"security_update.banner.action.retry_check": "Проверить снова",
"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.intro.title": "Безопасное обновление сохраненных конфигураций",
"security_update.intro.subtitle": "Перед использованием нового безопасного хранилища нужно выполнить локальное обновление конфигурации.",
"security_update.intro.description": "Чтобы сохраненные подключения, прокси и связанные настройки служб использовали новое безопасное хранилище, это обновление нужно один раз выполнить локально. Перед обновлением автоматически создается локальная резервная копия. Если обновление не завершится, система сохранит текущую рабочую конфигурацию, а вы сможете продолжить позже.",
"security_update.intro.action.details": "Показать сведения",
"security_update.intro.action.later": "Напомнить позже",
"security_update.intro.action.start_now": "Обновить сейчас",
"security_update.progress.default_detail": "Текущая рабочая конфигурация будет сохранена во время обновления. Подождите.",
"security_update.settings.title": "Безопасное обновление",
"security_update.settings.subtitle": "Управление статусом безопасного обновления и ожидающими пунктами сохраненных конфигураций.",
"security_update.settings.action.retry_check": "Проверить снова",
"security_update.settings.action.restart_update": "Запустить обновление заново",
"security_update.settings.action.start": "Начать обновление",
"security_update.settings.action.close": "Закрыть",
"security_update.settings.current_status": "Текущий статус: {{status}}",
"security_update.settings.scope_title": "Область влияния",
"security_update.settings.summary.total": "Всего",
"security_update.settings.summary.updated": "Обновлено",
"security_update.settings.summary.pending": "Ожидает обработки",
"security_update.settings.summary.skipped": "Пропущено",
"security_update.settings.summary.failed": "Ошибки",
"security_update.settings.pending_list": "Ожидающие пункты",
"security_update.settings.empty_pending": "Ожидающих пунктов нет",
"security_update.settings.item_status": "Статус: {{status}}",
"security_update.settings.item_severity": "Уровень: {{severity}}",
"security_update.settings.item_default_message": "Этот пункт требует дополнительной обработки перед завершением безопасного обновления.",
"security_update.settings.recent_result": "Последний результат",
"security_update.settings.backup_path": "Расположение резервной копии: ",
"security_update.settings.last_error": "Последняя ошибка: ",
"security_update.status.pending.label": "Ожидает обновления",
"security_update.status.pending.description": "Доступно безопасное обновление. Можно начать сейчас или продолжить позже.",
"security_update.status.postponed.label": "Ожидает обновления",
"security_update.status.postponed.description": "Это безопасное обновление отложено. Текущая рабочая конфигурация сохранена.",
"security_update.status.in_progress.label": "Обновляется",
"security_update.status.in_progress.description": "Проверяется и обновляется безопасное хранилище сохраненных конфигураций.",
"security_update.status.needs_attention.label": "Требует внимания",
"security_update.status.needs_attention.description": "Обновление еще не завершено. Несколько конфигураций требуют внимания.",
"security_update.status.completed.label": "Завершено",
"security_update.status.completed.description": "Безопасное обновление сохраненных конфигураций завершено.",
"security_update.status.rolled_back.label": "Откат выполнен",
"security_update.status.rolled_back.description": "Это обновление не завершено. Система сохранила текущую рабочую конфигурацию.",
"security_update.status.not_detected.label": "Не обнаружено",
"security_update.status.not_detected.description": "Сейчас нет безопасных обновлений, требующих внимания.",
"security_update.action.open_connection": "Открыть подключение",
"security_update.action.open_proxy_settings": "Настройки прокси",
"security_update.action.open_ai_settings": "Настройки AI",
"security_update.action.retry_update": "Проверить снова",
"security_update.action.view_details": "Показать сведения",
"security_update.item_status.pending": "Ожидает обновления",
"security_update.item_status.updated": "Обновлено",
"security_update.item_status.needs_attention": "Требует внимания",
"security_update.item_status.skipped": "Пропущено",
"security_update.item_status.failed": "Ошибка",
"security_update.severity.high": "Высокий риск",
"security_update.severity.medium": "Средний риск",
"security_update.severity.low": "Низкий риск",
"security_update.repair.warning.connection_not_found": "Соответствующее подключение не найдено. Сначала проверьте актуальный статус.",
"security_update.bootstrap.legacy.connection.message": "Это подключение все еще сохранено в локальной конфигурации текущего приложения. После завершения безопасного обновления оно будет перенесено в новое безопасное хранилище.",
"security_update.bootstrap.legacy.global_proxy.title": "Глобальный прокси",
"security_update.bootstrap.legacy.global_proxy.message": "Глобальные настройки прокси все еще сохранены в локальной конфигурации текущего приложения. После завершения безопасного обновления они будут перенесены в новое безопасное хранилище.",
"security_update.error.capability_unavailable": "Функция безопасного обновления недоступна",
"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.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.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.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.tools.entry.snippets.description": "Управление SQL-сниппетами и автодополнением по префиксу.",
"app.tools.entry.snippets.title": "Управление сниппетами",
"app.theme.action.restore_defaults": "Восстановить значения по умолчанию",
"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.appearance_settings_description": "Единая настройка масштаба, размера шрифта, прозрачности и размытия.",
"app.theme.appearance_settings_title": "Настройки внешнего вида",
"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.title": "Отображение таблицы данных",
"app.theme.data_table.vertical_borders": "Показывать вертикальные разделители таблицы данных",
"app.theme.data_table.vertical_borders_hint": "Влияет только на DataGrid на страницах таблиц данных и не затрагивает другие табличные компоненты.",
"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.dark.description": "Подходит для слабого освещения и более спокойного визуального восприятия.",
"app.theme.mode.dark.label": "Темная тема",
"app.theme.mode.light.description": "Подходит для яркой среды и более легкой визуальной иерархии.",
"app.theme.mode.light.label": "Светлая тема",
"app.theme.mode_title": "Режим темы",
"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.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.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_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.security_update.description": "Просмотр статуса безопасного обновления сохраненных конфигураций.",
"app.tools.entry.security_update.status_description": "Текущий статус: {{status}}",
"app.tools.entry.security_update.title": "Безопасное обновление",
"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",
"app.tools.entry.shortcuts.description": "Просмотр и настройка глобальных горячих клавиш.",
"app.tools.entry.shortcuts.title": "Управление горячими клавишами",
"app.tools.entry.sync.description": "Открыть рабочий процесс синхронизации между источниками.",
"app.tools.entry.sync.title": "Синхронизация данных",
"app.tools.title": "Центр инструментов",
"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.message.editable_load_failed": "Не удалось загрузить сведения сохраненного подключения. Вместо этого будет открыта маскированная конфигурация.",
"app.connection.message.editable_load_failed_with_detail": "Не удалось загрузить сведения сохраненного подключения: {{detail}}. Вместо этого будет открыта маскированная конфигурация.",
"app.connection_package.message.no_connections_to_export": "Нет подключений для экспорта",
"app.connection_package.message.unsupported_file_format": "Ошибка формата файла: поддерживаются только пакеты восстановления GoNavi, старые массивы подключений JSON или MySQL Workbench XML",
"app.browser_mock.export_sql_unsupported": "Браузерный mock не поддерживает экспорт SQL-файлов",
"app.browser_mock.import_connection_package_unsupported": "Браузерный mock не поддерживает импорт пакетов восстановления; поддерживаются только старые массивы подключений JSON",
"app.browser_mock.export_connection_package_unsupported": "Браузерный mock не поддерживает экспорт пакетов восстановления",
"app.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": "Не проверено",
"connection.delete": "Удалить подключение",
"connection.edit": "Изменить подключение",
"connection.new": "Новое подключение",
"connection.test": "Проверить подключение",
"connection.unnamed": "Безымянное подключение",
"database.unnamed": "База данных без имени",
"database.label": "База данных",
"connection.copy_suffix": " - копия",
"query.format": "Форматировать SQL",
"query.new": "Новый запрос",
"query.run": "Выполнить",
"query.save": "Сохранить запрос",
"query.stop": "Остановить",
"connection_modal.action.browse": "Выбрать...",
"connection_modal.action.disable": "Отключить",
"connection_modal.action.discover_members": "Обнаружить участников",
"connection_modal.action.enable_and_prefer": "Включить и предпочесть",
"connection_modal.badge.current_editing": "Редактируется",
"connection_modal.badge.preferred": "Предпочтительный",
"connection_modal.field.additional_hosts": "Дополнительные хосты",
"connection_modal.field.additional_srv_hosts_optional": "Дополнительные SRV-хосты (необязательно)",
"connection_modal.field.auth_source": "База аутентификации (authSource)",
"connection_modal.field.cluster_additional_hosts": "Дополнительные узлы кластера",
"connection_modal.field.connection_timeout_seconds": "Тайм-аут подключения (секунды)",
"connection_modal.field.connection_timeout_seconds_ascii": "Тайм-аут подключения (секунды)",
"connection_modal.field.default_database_optional": "База данных по умолчанию (необязательно)",
"connection_modal.field.display_databases_optional": "Отображаемые базы данных (необязательно)",
"connection_modal.field.file_path_absolute": "Путь к файлу (абсолютный)",
"connection_modal.field.host_address": "Адрес хоста",
"connection_modal.field.password_optional": "Пароль (необязательно)",
"connection_modal.field.port": "Порт",
"connection_modal.field.port_plain": "Порт",
"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.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.defaultDatabase.placeholder": "Например: appdb",
"connection_modal.field.serviceName.placeholder": "Например: ORCLPDB1",
"connection_modal.field.clickHouseProtocol.auto": "Авто",
"connection_modal.field.oceanBaseProtocol.label": "Протокол OceanBase",
"connection_modal.field.oceanBaseProtocol.help.primary": "Для арендаторов MySQL выберите MySQL, для арендаторов Oracle выберите Oracle. GoNavi автоматически выбирает режим по порту: для порта OB MySQL wire используется внедрение возможностей OBClient (тот же путь, что и в Navicat), для порта OBProxy Oracle listener используется стандартный TNS.",
"connection_modal.field.oceanBaseProtocol.help.connectionAttributes": "Если при подключении к Oracle-арендатору возникает \"Error 1235\" или сбой рукопожатия OBClient, в поле \"Параметры подключения\" можно через {{attributes}} переопределить OBClient capability, которую GoNavi внедряет по умолчанию.",
"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.username": "Имя пользователя",
"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.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.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.transport.agent_bridge": "Agent Bridge",
"connection_modal.jvm.diagnostic.transport.arthas_tunnel": "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_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.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.message.srv_with_ssh_dns_warning": "SRV вместе с SSH Tunnel может зависеть от локального DNS. Если разрешение не удается, используйте стандартные хосты.",
"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.auth_mechanism": "Механизм аутентификации",
"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.srv_address": "SRV-адрес",
"connection_modal.mongodb.srv_address_description": "Использовать запись MongoDB SRV для обнаружения хостов.",
"connection_modal.mongodb.standard_address": "Стандартный адрес",
"connection_modal.mongodb.standard_address_description": "Использовать хост и порт, а также необязательный список участников.",
"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_tls": "SSL/TLS",
"connection_modal.network.ssl_disabled_hint": "Включите SSL/TLS для настройки политики сертификатов.",
"connection_modal.network.ssl_mode": "Режим SSL",
"connection_modal.network.ssl_mode.preferred_description": "Сначала попробовать SSL и откатиться, если сервер не требует шифрования.",
"connection_modal.network.ssl_mode.required_description": "Требовать SSL и завершать ошибкой, если шифрованное подключение невозможно.",
"connection_modal.network.ssl_mode.skip_verify_description": "Использовать SSL, но пропустить проверку сертификата. Только для тестов или самоподписанных сертификатов.",
"connection_modal.network.ssl_panel_description": "Настройте политику 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.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.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.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.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.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.error.saved_connection_missing": "Сохраненный секрет для текущего подключения не найден. Повторно введите пароль, сохраните и попробуйте снова.",
"connection_modal.secret.error.store_unavailable": "Безопасное хранилище секретов сейчас недоступно. Проверьте системную связку ключей или диспетчер учетных данных и попробуйте снова.",
"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.section.advanced_connection": "Расширенное подключение",
"connection_modal.section.config_sections": "Разделы конфигурации",
"connection_modal.status.disabled": "Отключено",
"connection_modal.status.enabled": "Включено",
"connection_modal.status.healthy": "Исправен",
"connection_modal.status.unhealthy": "Неисправен",
"connection_modal.switch.off": "Выкл",
"connection_modal.switch.on": "Вкл",
"connection_modal.table.health": "Состояние",
"connection_modal.table.role": "Роль",
"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.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.endpoint_url_required": "Введите URL Endpoint",
"connection_modal.validation.jvm_access_mode_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": "Введите имя пользователя",
"sidebar.batch_databases": "Пакетные базы данных",
"sidebar.batch_tables": "Пакетные таблицы",
"connection_modal.ssl_hint.mysql_like": "Включите SSL, если MySQL/MariaDB/Doris/Sphinx требует защищенную передачу. Для самоподписанных сертификатов сначала проверьте Preferred или Skip Verify.",
"connection_modal.ssl_hint.dameng": "Для SSL в Dameng нужны пути к клиентскому сертификату и закрытому ключу (sslCertPath / sslKeyPath).",
"connection_modal.ssl_hint.sqlserver": "Для SQL Server в продакшене используйте Required и отключите TrustServerCertificate.",
"connection_modal.ssl_hint.mongodb": "Подключения MongoDB можно защитить через TLS. Если проверка сертификата мешает тесту, сначала используйте Skip Verify.",
"connection_modal.ssl_hint.default": "Предпочитайте Required. Используйте Skip Verify только для тестов или самоподписанных сертификатов.",
"connection_modal.secret.new_value_replaces_saved": "Введено новое значение. При сохранении оно заменит текущие сохраненные данные.",
"connection_modal.badge.current": "Текущий",
"connection_modal.message.driver_not_enabled_with_name": "Драйвер {{name}} не установлен или не включен. Сначала установите или включите его в управлении драйверами.",
"connection_modal.driver.current": "Текущий",
"connection_modal.message.driver_unavailable_title": "Драйвер {{name}} недоступен",
"connection_modal.action.open_driver_manager": "Открыть управление драйверами",
"connection_modal.action.cancel": "Отмена",
"connection_modal.placeholder.uri_example_postgres": "postgresql://user:pass@localhost:5432/appdb?sslmode=require",
"connection_modal.message.uri_generated": "URI сформирован",
"connection_modal.message.uri_generate_failed": "Операция не удалась",
"connection_modal.message.uri_required": "Заполните обязательное поле",
"connection_modal.message.uri_type_mismatch": "Тип URI не соответствует выбранному источнику данных",
"connection_modal.message.uri_parsed": "URI разобран и перенесен в форму",
"connection_modal.message.uri_parse_failed": "Операция не удалась",
"connection_modal.message.uri_empty_copy": "URI пуст: нечего копировать",
"connection_modal.message.uri_copied": "URI скопирован",
"connection_modal.message.copy_failed": "Операция не удалась",
"connection_modal.message.select_ssh_key_failed": "Не удалось выбрать закрытый ключ SSH: {{error}}",
"connection_modal.error.unknown": "Неизвестная ошибка",
"connection_modal.message.select_database_file_failed": "Не удалось выбрать файл базы данных: {{error}}",
"connection_modal.message.save_backend_unavailable": "Операция не удалась",
"connection_modal.message.save_updated_disconnected": "Конфигурация сохранена (не подключено)",
"connection_modal.message.save_created_disconnected": "Конфигурация сохранена (без подключения).",
"connection_modal.message.save_security_refresh_failed": "Операция не удалась",
"connection_modal.message.save_failed": "Операция не удалась",
"connection_modal.message.test_requires_new_password": "Перед проверкой введите новый пароль подключения.",
"connection_modal.message.test_requires_new_ssh_password": "Перед проверкой введите новый SSH-пароль.",
"connection_modal.message.test_requires_new_proxy_password": "Перед проверкой введите новый пароль прокси.",
"connection_modal.message.test_requires_new_tunnel_password": "Перед проверкой введите новый пароль HTTP Tunnel.",
"connection_modal.message.test_requires_new_replica_password": "Перед проверкой введите новый пароль реплики.",
"connection_modal.message.test_requires_new_mongo_replica_password": "Перед проверкой введите новый пароль MongoDB Replica Set.",
"connection_modal.message.test_requires_new_mongodb_password": "Перед проверкой введите новый пароль MongoDB.",
"connection_modal.message.driver_not_enabled": "Драйвер не установлен или не включен.",
"connection_modal.message.connection_params_incomplete": "Параметры подключения неполные.",
"connection_modal.message.test_timeout": "Время операции истекло через {{seconds}} с",
"connection_modal.message.database_list_timeout": "Время операции истекло через {{seconds}} с",
"connection_modal.message.no_visible_schema": "Видимые схемы не возвращены.",
"connection_modal.message.no_visible_databases": "Видимые базы данных не возвращены.",
"connection_modal.message.database_list_failed": "Не удалось загрузить список баз данных: {{error}}",
"connection_modal.message.connection_rejected": "Подключение отклонено.",
"connection_modal.message.required_fields_before_test": "Заполните обязательные поля перед проверкой подключения.",
"connection_modal.message.test_failed_detail": "Проверка не удалась: {{detail}}",
"connection_modal.error.unknown_exception": "Неизвестная ошибка",
"connection_modal.message.member_discovery_failed": "Операция не удалась",
"connection_modal.message.member_discovery_success": "Обнаружено участников: {{count}}",
"connection_modal.message.unsupported_jvm_modes": "Выбранный режим доступа JVM не поддерживается",
"connection_modal.message.unsupported_jvm_diagnostic_transport": "Выбранный диагностический транспорт JVM не поддерживается",
"connection_modal.message.dameng_ssl_cert_required": "Заполните обязательное поле",
"connection_modal.message.http_tunnel_host_required": "Заполните обязательное поле",
"connection_modal.message.http_tunnel_port_invalid": "Недопустимый порт HTTP Tunnel",
"connection_modal.message.unsupported_jvm_modes_current": "Это подключение содержит неподдерживаемые режимы доступа JVM",
"connection_modal.group.relational": "Реляционные базы данных",
"connection_modal.group.chinese_databases": "Китайские базы данных",
"connection_modal.step1.group.nosql": "Базы данных NoSQL",
"connection_modal.step1.group.relational": "Реляционные базы данных",
"connection_modal.step1.group.domestic": "Отечественные базы данных",
"connection_modal.step1.group.timeseries": "Базы данных временных рядов",
"connection_modal.step1.group.other": "Другое",
"connection_modal.group.time_series": "Базы данных временных рядов",
"connection_modal.group.other": "Другое",
"connection_modal.db_type.custom": "Пользовательский",
"connection_modal.layout.mysql_compatible": "MySQL-совместимое подключение",
"connection_modal.layout.mongodb": "Подключение MongoDB",
"connection_modal.layout.redis": "Подключение Redis",
"connection_modal.layout.postgres_compatible": "PostgreSQL-совместимое подключение",
"connection_modal.layout.oracle": "Подключение Oracle",
"connection_modal.layout.file": "Подключение к файловой базе данных",
"connection_modal.layout.custom": "Подключение через пользовательский драйвер",
"connection_modal.layout.jvm": "Подключение к среде JVM",
"connection_modal.layout.generic_sql": "Универсальное SQL-подключение",
"connection_modal.db_type_hint.custom": "Подключение с пользовательским драйвером и DSN.",
"connection_modal.db_type_hint.redis": "Подключение к Redis Standalone или Redis Cluster.",
"connection_modal.db_type_hint.mongodb": "Подключение к MongoDB Standalone, Replica Set или SRV-адресам.",
"connection_modal.db_type_hint.file": "Выберите локальный файл базы данных SQLite или DuckDB.",
"connection_modal.db_type_hint.standard": "Введите хост, порт, данные аутентификации и необязательную базу данных.",
"connection_modal.step1.hint.jvm": "JMX / Endpoint / Agent",
"connection_modal.step1.hint.custom": "Пользовательский драйвер и DSN",
"connection_modal.step1.hint.redis": "Одиночный узел / кластер",
"connection_modal.step1.hint.mongodb": "Одиночный узел / Replica Set",
"connection_modal.step1.hint.oceanBase": "MySQL / Oracle арендатор",
"connection_modal.step1.hint.file": "Подключение к локальному файлу",
"connection_modal.step1.hint.standard": "Стандартная конфигурация подключения",
"connection_modal.step.select_source": "Выбор источника данных",
"connection_modal.step.select_source_description": "Выберите тип создаваемого подключения.",
"connection_modal.message.driver_not_enabled_with_name_short": "Драйвер {{name}} не установлен или не включен. Сначала откройте управление драйверами.",
"connection_modal.section.basic.title": "Основная информация",
"connection_modal.section.basic.description": "Назовите подключение и укажите цель, драйвер и данные аутентификации.",
"connection_modal.field.connection_name": "Имя подключения",
"connection_modal.placeholder.jvm_name": "jvm имя",
"connection_modal.placeholder.connection_name": "подключение имя",
"connection_modal.field.uri": "URI",
"connection_modal.help.uri": "Вставьте или сформируйте URI подключения.",
"connection_modal.action.generate_uri": "Сформировать URI",
"connection_modal.action.parse_uri": "Разобрать URI",
"connection_modal.action.copy_uri": "Копировать URI",
"connection_modal.secret.clear_saved_uri": "Очистить сохраненный URI",
"connection_modal.secret.saved_uri_description": "URI подключения уже сохранен в защищенном хранилище. Оставьте поле пустым, чтобы сохранить его.",
"connection_modal.field.driver_name": "драйвер имя",
"connection_modal.field.driver.placeholder": "Например: mysql, postgres",
"connection_modal.validation.driver_name_required": "Введите имя драйвера.",
"connection_modal.placeholder.driver_name": "драйвер имя",
"connection_modal.field.dsn": "DSN",
"connection_modal.field.dsn.placeholder": "Например: user:pass@tcp(localhost:3306)/dbname?charset=utf8",
"connection_modal.validation.custom_dsn_required": "Введите строку подключения.",
"connection_modal.validation.custom_dsn_required_when_clearing_saved": "Введите новую строку подключения или отмените очистку сохраненного DSN.",
"connection_modal.secret.clear_saved_dsn": "Очистить сохраненный DSN",
"connection_modal.secret.saved_dsn_description": "DSN уже сохранен в защищенном хранилище. Оставьте поле пустым, чтобы сохранить его.",
"connection_modal.message.unsupported_jvm_modes_detected": "Обнаружены неподдерживаемые режимы доступа JVM",
"connection_modal.jvm.target_title": "Цель JVM",
"connection_modal.jvm.target_description": "Настройте хост, порт и способ доступа к Endpoint управления JVM.",
"connection_modal.field.host": "Хост",
"connection_modal.validation.jvm_host_required": "Введите хост JVM.",
"connection_modal.field.primary_port": "Основной порт",
"connection_modal.validation.jvm_port_required": "Введите порт JVM.",
"connection_modal.section.network.title": "Сеть и безопасность",
"connection_modal.section.network.description": "Настройте SSL/TLS, SSH Tunnel, прокси и HTTP Tunnel.",
"connection_modal.message.current_driver_not_enabled": "Текущий драйвер не установлен или не включен.",
"connection_modal.section.basic.jvm_description": "Настройте цель JVM, режимы доступа и учетные данные.",
"connection_modal.section.basic.sql_description": "Настройте цель, драйвер, учетные данные и область баз данных.",
"connection_modal.section.network.nav_description": "Настройте сеть и безопасность для этого подключения.",
"connection_modal.section.appearance.title": "Внешний вид",
"connection_modal.section.appearance.description": "Задайте значок и цвет подключения в боковой панели.",
"connection_modal.appearance.icon": "Значок",
"connection_modal.appearance.current_icon": "Текущий значок: {{icon}}",
"connection_modal.db_icon_label.custom": "Пользовательский",
"connection_modal.appearance.color": "Цвет",
"connection_modal.appearance.custom_color": "Пользовательский цвет",
"connection_modal.appearance.preview": "Предпросмотр",
"connection_modal.placeholder.connection_name_fallback": "Имя подключения",
"connection_modal.action.reset_default": "Сбросить по умолчанию",
"connection_modal.message.connection_failed": "Не удалось подключиться",
"connection_modal.action.previous_step": "Назад",
"connection_modal.message.connection_success": "Подключение успешно",
"connection_modal.action.view_reason": "Показать причину",
"connection_modal.action.test": "Проверить подключение",
"connection_modal.action.save": "Сохранить",
"connection_modal.title.select_type": "Выберите тип источника данных",
"connection_modal.title.select_type_description": "Выберите один из поддерживаемых типов источников данных.",
"connection_modal.title.edit": "Изменить подключение",
"connection_modal.title.edit_description": "Измените конфигурацию подключения {{type}}.",
"connection_modal.title.create": "Новое подключение {{type}}",
"connection_modal.title.create_description": "Введите и сохраните конфигурацию подключения.",
"connection_modal.test_error.title": "Сведения об ошибке проверки подключения",
"connection_modal.test_error.description": "Просмотрите полный текст ошибки, возвращенной backend.",
"connection_modal.action.close": "Закрыть",
"connection_modal.test_error.empty": "Нет сведений об ошибке",
"sidebar.message.duplicate_backend_unavailable": "Дублирование подключений недоступно в этой сборке.",
"sidebar.message.duplicate_empty_result": "Дублированное подключение не было возвращено.",
"sidebar.message.duplicated_connection": "Подключение {{name}} продублировано.",
"sidebar.message.duplicate_failed": "Не удалось дублировать подключение.",
"sidebar.message.jvm_provider_probe_failed_with_diagnostic": "Не удалось проверить JVM Provider: {{error}}. Вход в режим расширенной диагностики остается доступным.",
"sidebar.message.jvm_provider_probe_failed": "Не удалось проверить провайдеры JVM: {{error}}",
"sidebar.error.unknown": "Неизвестная ошибка",
"sidebar.message.jvm_provider_probe_exception_with_diagnostic": "Во время проверки JVM Provider возникло исключение: {{error}}. Вход в режим расширенной диагностики остается доступным.",
"sidebar.message.jvm_provider_probe_exception": "Проверка провайдеров JVM завершилась ошибкой: {{error}}",
"sidebar.message.connection_failed": "Ошибка подключения: {{error}}",
"sidebar.message.load_jvm_resources_failed": "Не удалось загрузить ресурсы JVM: {{error}}",
"sidebar.message.load_tables_failed": "Не удалось загрузить объекты: {{error}}",
"sidebar.message.table_pinned": "Таблица закреплена",
"sidebar.message.table_unpinned": "Таблица откреплена",
"sidebar.message.table_structure_copied": "Структура таблицы скопирована.",
"sidebar.message.exporting_table_format": "Экспорт {{table}} в формате {{format}}...",
"sidebar.message.export_success": "Экспорт выполнен.",
"sidebar.message.export_failed": "Ошибка экспорта: {{error}}",
"sidebar.message.backing_up_database": "Создается резервная копия базы данных {{database}}...",
"sidebar.message.exporting_database_schema": "Экспортируется структура базы данных {{database}}...",
"sidebar.message.export_tables_same_database_required": "Выберите таблицы из одной базы данных.",
"sidebar.message.backing_up_selected_tables": "Создается резервная копия выбранных таблиц: {{count}}...",
"sidebar.message.exporting_selected_table_schema": "Экспортируется структура выбранных таблиц: {{count}}...",
"sidebar.message.load_database_list_failed": "Не удалось загрузить базы данных: {{error}}",
"sidebar.message.load_table_list_failed": "Не удалось загрузить таблицы: {{error}}",
"sidebar.message.select_object_required": "Выберите хотя бы один объект.",
"sidebar.message.backing_up_selected_objects": "Создается резервная копия выбранных объектов: {{count}}...",
"sidebar.message.exporting_selected_object_data": "Экспортируются данные выбранных объектов: {{count}}...",
"sidebar.message.exporting_selected_object_schema": "Экспортируется структура выбранных объектов: {{count}}...",
"sidebar.message.export_success_skipped_views": "Экспорт завершен. Представления пропущены при экспорте данных: {{count}}.",
"sidebar.modal.confirm_clear_selected_tables.title": "Подтвердите очистку выбранных таблиц",
"sidebar.modal.confirm_clear_selected_tables.content": "Очистить данные выбранных объектов в {{connection}} / {{database}}? Это действие нельзя отменить.",
"sidebar.action.continue": "Продолжить",
"sidebar.action.cancel": "Отмена",
"sidebar.message.clearing_selected_tables": "Очищаются выбранные таблицы: {{count}}...",
"sidebar.message.clear_success": "Очистка завершена.",
"sidebar.message.clear_failed": "Ошибка очистки: {{error}}",
"sidebar.message.select_database_required": "Выберите хотя бы одну базу данных.",
"sidebar.message.database_export_success": "{{database}} экспортирована.",
"sidebar.message.database_export_failed": "Не удалось экспортировать {{database}}: {{error}}",
"sidebar.message.connection_config_not_found": "Конфигурация подключения не найдена.",
"sidebar.sql_file_exec.title": "Запустить внешний SQL-файл",
"sidebar.message.read_file_failed": "Не удалось прочитать файл: {{error}}",
"sidebar.message.select_connection_or_database_first": "Сначала выберите подключение или базу данных.",
"sidebar.message.schema_create_unsupported": "Эта база данных не поддерживает создание schema.",
"sidebar.message.schema_target_missing": "Выберите базу данных для создания schema.",
"sidebar.message.schema_created": "schema создана.",
"sidebar.message.operation_create_failed": "Не удалось создать: {{error}}",
"sidebar.sql_file.default_name": "SQL-файл",
"sidebar.message.sql_file_context_incomplete": "Контекст SQL-файла неполный.",
"sidebar.message.read_sql_file_failed": "Не удалось прочитать SQL-файл: {{error}}",
"sidebar.message.add_sql_directory_database_required": "Выберите базу данных перед добавлением SQL-каталога.",
"sidebar.message.select_sql_directory_failed": "Не удалось выбрать SQL-каталог: {{error}}",
"sidebar.message.sql_directory_path_invalid": "Путь к SQL-каталогу недействителен.",
"sidebar.sql_directory.default_name": "SQL-каталог",
"sidebar.message.external_sql_directory_added": "SQL-каталог добавлен.",
"sidebar.message.external_sql_directory_not_found": "SQL-каталог не найден.",
"sidebar.message.external_sql_directory_removed": "SQL-каталог удален.",
"sidebar.message.external_sql_directory_context_missing": "Контекст SQL-каталога отсутствует.",
"sidebar.message.external_sql_directory_refreshed": "SQL-каталог обновлен.",
"sidebar.message.database_created": "База данных создана.",
"sidebar.message.create_failed": "Не удалось создать: {{error}}",
"sidebar.modal.confirm_delete_database.title": "Удалить базу данных",
"sidebar.modal.confirm_delete_database.content": "Удалить {{name}}? Это действие нельзя отменить.",
"sidebar.modal.confirm_delete_table.title": "Удалить таблицу",
"sidebar.modal.confirm_delete_table.content": "Удалить {{name}}? Это действие нельзя отменить.",
"sidebar.modal.confirm_table_data_action.title": "Подтвердите {{action}}",
"sidebar.modal.confirm_table_data_action.content": "Выполнить {{action}} для {{table}}? Это действие нельзя отменить.",
"sidebar.modal.confirm_delete_view.title": "Удалить представление",
"sidebar.modal.confirm_delete_view.content": "Удалить {{name}}? Это действие нельзя отменить.",
"sidebar.modal.confirm_delete_routine.title": "Удалить {{type}}",
"sidebar.modal.confirm_delete_routine.content": "Удалить {{type}} {{name}}? Это действие нельзя отменить.",
"sidebar.search.scope.smart": "Умный",
"sidebar.search.scope_title": "Область поиска",
"sidebar.search.scope_description": "Выберите, где должен искать сайдбар.",
"sidebar.badge.recommended": "Рекомендуется",
"sidebar.search.scope.smart_description": "Автоматически сужает поиск по выбранному узлу.",
"sidebar.search.manual_scope": "Ручная область",
"sidebar.search.multi_select_supported": "Можно выбрать несколько областей",
"sidebar.search.scope_hint": "В умном режиме поиск учитывает контекст и ищет по именам, хостам, базам данных и объектам.",
"sidebar.modal.confirm_delete.title": "Подтвердите удаление",
"sidebar.modal.confirm_delete_tag.content": "Удалить {{name}}?",
"sidebar.menu.edit_connection": "изменить подключение",
"sidebar.menu.delete_connection": "удалить подключение",
"sidebar.modal.confirm_delete_connection.content": "Удалить {{name}}?",
"sidebar.message.delete_connection_backend_unavailable": "Удаление подключений недоступно в этой сборке.",
"sidebar.message.connection_deleted": "Подключение удалено.",
"sidebar.message.delete_connection_failed": "Не удалось удалить подключение.",
"sidebar.modal.confirm_delete_saved_query.content": "Удалить сохраненный запрос \"{{name}}\"? Это действие нельзя отменить.",
"sidebar.search.placeholder": "Поиск...",
"sidebar.command_search.label": "Искать таблицы, подключения, действия",
"sidebar.command_search.placeholder": "Искать таблицы, подключения, действия... или спросить AI",
"sidebar.command_search.object_kind.all": "Все",
"sidebar.command_search.object_kind.tables": "Таблицы",
"sidebar.command_search.object_kind.views": "Представления",
"sidebar.command_search.object_kind.routines": "Подпрограммы",
"sidebar.command_search.object_kind.events": "События",
"sidebar.command_search.object_kind.filter_aria": "Фильтр объектов",
"sidebar.command_search.scope.smart": "Умный",
"sidebar.command_search.scope.object": "Объекты таблиц",
"sidebar.command_search.scope.database": "База данных",
"sidebar.command_search.scope.host": "Host",
"sidebar.command_search.scope.tag": "Теги",
"sidebar.command_search.scope.summary_smart": "Умный",
"sidebar.command_search.scope.title": "Область поиска",
"sidebar.command_search.scope.description": "\"Умный\" автоматически подбирает наиболее вероятные совпадения; ручной режим позволяет комбинировать измерения фильтрации.",
"sidebar.command_search.scope.recommended": "Рекомендуется",
"sidebar.command_search.scope.smart_help": "Подходит для ежедневного поиска: автоматически охватывает имена, базы данных, Host и теги.",
"sidebar.command_search.scope.manual_title": "Ручная область",
"sidebar.command_search.scope.multi_select": "Можно выбрать несколько",
"sidebar.command_search.scope.manual_help": "Умный режим взаимоисключается с другими пунктами. Если точно известно, что нужно искать объекты, базы данных, Host или теги, переключитесь на ручную область, чтобы уменьшить шум в результатах.",
"sidebar.command_search.scope.tooltip": "Область поиска: {{scope}}",
"sidebar.command_search.scope.compact_smart": "Умно",
"sidebar.search.scope_tooltip": "Текущая область поиска: {{scope}}",
"sidebar.search.scope.smart_short": "Умный",
"sidebar.rail.object_actions": "Быстрые действия в области объектов",
"sidebar.rail.system_actions": "Системные действия",
"sidebar.action.new_group": "Новая группа",
"sidebar.action.batch_tables": "Пакетные операции с таблицами",
"sidebar.action.batch_databases": "Пакетные операции с базами данных",
"sidebar.action.locate_current_table": "Найти текущую открытую таблицу",
"sidebar.action.pin_table": "Закрепить таблицу",
"sidebar.action.unpin_table": "Открепить таблицу",
"sidebar.status.pinned": "Закреплено",
"sidebar.v2_table_menu.meta.rows_empty": "— строк",
"sidebar.v2_table_menu.meta.rows": "{{count}} строк",
"sidebar.v2_table_menu.meta.idle": "Нажмите обновить, чтобы загрузить статистику",
"sidebar.v2_table_menu.meta.loading": "Загрузка статистики таблицы...",
"sidebar.v2_table_menu.meta.unavailable": "Статистика таблицы недоступна",
"sidebar.v2_table_menu.meta.summary": "{{rows}} · {{data}} данные · {{indexes}} индексы",
"sidebar.v2_table_menu.open_data": "Просмотреть данные",
"sidebar.v2_table_menu.design_table_detail": "столбцы / индексы / внешние ключи",
"sidebar.v2_table_menu.open_in_new_tab": "Открыть в новой вкладке",
"sidebar.v2_table_menu.metadata_section": "Метаданные",
"sidebar.v2_table_menu.view_in_er": "Показать в ER-диаграмме",
"sidebar.v2_table_menu.copy_section": "Копировать",
"sidebar.v2_table_menu.copy_table_name": "Копировать имя таблицы",
"sidebar.v2_table_menu.copy_table_as_insert": "Копировать всю таблицу как {{keyword}}",
"sidebar.v2_table_menu.maintenance_section": "Обслуживание",
"sidebar.v2_table_menu.rename_compact": "Переименовать...",
"sidebar.v2_table_menu.new_rollup": "Новый {{keyword}}",
"sidebar.v2_table_menu.backup_sql_dump": "Резервная копия · {{keyword}}",
"sidebar.v2_table_menu.refresh_stats": "Обновить статистику",
"sidebar.v2_table_menu.item_with_suffix": "{{label}} · {{suffix}}",
"sidebar.v2_table_menu.truncate_table": "Усечь таблицу",
"sidebar.v2_table_menu.ai_explain_table": "Объяснить эту таблицу с помощью AI",
"sidebar.v2_table_menu.ai_generate_query": "Сгенерировать запрос с помощью AI",
"sidebar.v2_table_group_menu.title": "Таблицы",
"sidebar.v2_table_group_menu.current_database": "Текущая база данных",
"sidebar.v2_table_group_menu.sort_name": "имени",
"sidebar.v2_table_group_menu.sort_frequency": "частоте использования",
"sidebar.v2_table_group_menu.meta": "{{database}} · {{count}} таблиц · сортировка по {{sort}}",
"sidebar.message.locate_current_table_unavailable": "В текущей вкладке нет таблицы, которую можно найти",
"sidebar.active_connection.current_host_database": "Текущий Host и база данных",
"sidebar.active_connection.no_database_selected": "База данных не выбрана",
"sidebar.active_connection.no_host_selected": "Host не выбран",
"sidebar.active_connection.actions": "Действия с подключением",
"sidebar.modal.tag.edit_title": "Изменить группу",
"sidebar.modal.tag.create_title": "Создать группу",
"sidebar.modal.tag.edit_description": "Обновите имя группы и входящие в нее подключения.",
"sidebar.modal.tag.create_description": "Создайте группу для организации подключений.",
"sidebar.field.tag_name": "Имя группы",
"sidebar.validation.tag_name_required": "Введите имя группы.",
"sidebar.placeholder.tag_name": "Имя группы",
"sidebar.field.select_connections": "Выберите подключения",
"sidebar.modal.create_database.title": "Создать базу данных",
"sidebar.field.database_name": "Имя базы данных",
"sidebar.validation.name_required": "Введите имя.",
"sidebar.modal.rename_database.title": "Переименовать базу данных: {{name}}",
"sidebar.field.new_database_name": "Новое имя базы данных",
"sidebar.validation.new_database_name_required": "Введите новое имя базы данных.",
"sidebar.field.schema_name": "Имя schema",
"sidebar.validation.schema_name_required": "Введите имя schema.",
"sidebar.modal.rename_table.title": "Переименовать таблицу: {{name}}",
"sidebar.field.new_table_name": "Новое имя таблицы",
"sidebar.validation.new_table_name_required": "Введите новое имя таблицы.",
"sidebar.modal.rename_view.title": "Переименовать представление: {{name}}",
"sidebar.field.new_view_name": "Новое имя представления",
"sidebar.validation.new_view_name_required": "Введите новое имя представления.",
"sidebar.modal.batch_tables.title": "Пакетные операции с таблицами",
"sidebar.modal.batch_tables.description": "Выберите таблицы и представления, затем экспортируйте или очистите их одной операцией.",
"sidebar.action.clear_tables": "Очистить таблицы",
"sidebar.action.export_schema": "Экспортировать структуру",
"sidebar.action.export_data_only": "Экспортировать только данные",
"sidebar.action.backup_schema_data": "Создать резервную копию структуры и данных",
"sidebar.field.select_connection": "Подключение",
"sidebar.placeholder.select_connection": "Выберите подключение",
"sidebar.field.select_database": "База данных",
"sidebar.placeholder.select_connection_first": "Сначала выберите подключение",
"sidebar.modal.batch_tables.selection_hint": "Выберите таблицы или представления для этой пакетной операции.",
"sidebar.placeholder.filter_table_view": "Фильтр таблиц и представлений",
"sidebar.filter.all_objects": "Все объекты",
"sidebar.filter.tables_only": "Только таблицы",
"sidebar.filter.views_only": "Только представления",
"sidebar.filter.scope_filtered": "Отфильтрованные результаты",
"sidebar.filter.scope_all": "Все результаты",
"sidebar.batch.filtered_count": "Показано объектов: {{filtered}} / {{total}}",
"sidebar.action.select_all": "Выбрать все",
"sidebar.action.clear_selection": "Снять выбор",
"sidebar.action.invert_selection": "Инвертировать выбор",
"sidebar.batch.selected_objects": "Выбрано объектов: {{selected}} / {{total}}",
"sidebar.modal.batch_databases.title": "Пакетные операции с базами данных",
"sidebar.modal.batch_databases.description": "Выберите базы данных и экспортируйте схемы или полные резервные копии.",
"sidebar.action.export_database_schema_count": "Экспортировать структуру баз данных ({{count}})",
"sidebar.action.backup_database_count": "Создать резервные копии баз данных ({{count}})",
"sidebar.modal.batch_databases.selection_hint": "Выберите базы данных из выбранного подключения.",
"sidebar.batch.selected_databases": "Выбрано баз данных: {{selected}} / {{total}}",
"sidebar.sql_file_exec.cancel": "Отменить выполнение",
"sidebar.action.close": "Закрыть",
"sidebar.sql_file_exec.file_size": "Размер файла: ",
"sidebar.sql_file_exec.status_label": "Статус: ",
"sidebar.sql_file_exec.status.running": "Выполняется",
"sidebar.sql_file_exec.status.done": "Готово",
"sidebar.sql_file_exec.status.cancelled": "Отменено",
"sidebar.sql_file_exec.status.error": "Ошибка",
"sidebar.sql_file_exec.executed_label": "Выполнено: ",
"sidebar.sql_file_exec.rows_separator": " строк | Ошибок: ",
"sidebar.sql_file_exec.rows_suffix": " строк",
"connection_modal.config_section.identity.title": "Идентификация",
"connection_modal.config_section.identity.description": "Настройте Идентификация.",
"connection_modal.config_section.uri.title": "URI подключения",
"connection_modal.config_section.uri.description": "Введите, сформируйте или разберите URI подключения.",
"connection_modal.config_section.target.title": "Адрес назначения",
"connection_modal.config_section.target.description": "Настройте Адрес назначения.",
"connection_modal.config_section.fileTarget.title": "Файловая база данных",
"connection_modal.config_section.fileTarget.description": "Настройте Файловая база данных.",
"connection_modal.config_section.connectionMode.title": "Режим подключения",
"connection_modal.config_section.connectionMode.description": "Настройте Режим подключения.",
"connection_modal.config_section.mongoDiscovery.title": "Обнаружение MongoDB",
"connection_modal.config_section.mongoDiscovery.description": "Настройте Обнаружение MongoDB.",
"connection_modal.config_section.replica.title": "Реплики",
"connection_modal.config_section.replica.description": "Настройте Реплики.",
"connection_modal.config_section.service.title": "Сервис и база данных",
"connection_modal.config_section.service.description": "Настройте Сервис и база данных.",
"connection_modal.config_section.mongoPolicy.title": "Политика MongoDB",
"connection_modal.config_section.mongoPolicy.description": "Настройте Политика MongoDB.",
"connection_modal.config_section.credentials.title": "Учетные данные",
"connection_modal.config_section.credentials.description": "Настройте Учетные данные.",
"connection_modal.config_section.databaseScope.title": "Область баз данных",
"connection_modal.config_section.databaseScope.description": "Настройте Область баз данных.",
"connection_modal.config_section.customDriver.title": "Пользовательский драйвер",
"connection_modal.config_section.customDriver.description": "Настройте Пользовательский драйвер.",
"connection_modal.config_section.customDsn.title": "Пользовательский DSN",
"connection_modal.config_section.customDsn.description": "Настройте Пользовательский DSN.",
"connection_modal.config_section.jvmRuntime.title": "Среда JVM",
"connection_modal.config_section.jvmRuntime.description": "Настройте Среда JVM.",
"connection_modal.field.password": "Пароль",
"sidebar.menu.refresh": "Обновить",
"sidebar.search.scope.object": "Объект",
"sidebar.search.scope.database": "База данных",
"sidebar.search.scope.host": "Хост",
"sidebar.search.scope.tag": "Тег",
"sidebar.tree.saved_queries": "Сохраненные запросы",
"sidebar.tree.default_schema": "Схема по умолчанию",
"sidebar.object_group.tables": "Таблицы",
"sidebar.object_group.views": "Представления",
"sidebar.object_group.routines": "Функции и процедуры",
"sidebar.object_group.triggers": "Триггеры",
"sidebar.object_group.events": "События",
"sidebar.object_group.materialized_views": "Материализованные представления",
"sidebar.table_folder.columns": "Столбцы",
"sidebar.table_folder.indexes": "Индексы",
"sidebar.table_folder.foreign_keys": "Внешние ключи",
"sidebar.table_folder.triggers": "Триггеры",
"sidebar.object.view": "Представление",
"sidebar.object.function": "Функция",
"sidebar.object.procedure": "Процедура",
"sidebar.table_action.truncate.label": "Очистить таблицу через TRUNCATE",
"sidebar.table_action.truncate.progress": "Выполняется TRUNCATE",
"sidebar.table_action.clear.label": "Очистить таблицу",
"sidebar.table_action.clear.progress": "Очищается",
"sidebar.tab.table_structure": "Структура таблицы ({{table}})",
"sidebar.tab.design_table": "Проектирование таблицы ({{table}})",
"sidebar.tab.new_table": "Новая таблица - {{database}}",
"sidebar.tab.table_overview": "Обзор таблицы - {{database}}{{schema}}",
"sidebar.tab.trigger": "Триггер: {{name}}",
"sidebar.tab.materialized_view_definition": "Материализованное представление: {{name}}",
"sidebar.tab.view_definition": "Представление: {{name}}",
"sidebar.tab.edit_view": "Изменить представление: {{name}}",
"sidebar.tab.create_view": "Новое представление",
"sidebar.tab.routine_definition": "{{type}}: {{name}}",
"sidebar.tab.edit_routine": "Изменить {{type}}: {{name}}",
"sidebar.tab.create_function": "Новая функция",
"sidebar.tab.create_procedure": "Новая процедура",
"sidebar.tab.new_query": "Новый запрос",
"sidebar.tab.new_query_database": "Новый запрос ({{database}})",
"sidebar.tab.redis_command": "Команда - {{database}}",
"sidebar.tab.redis_monitor": "Мониторинг - {{database}}",
"tab_manager.menu.close_all": "Закрыть все вкладки",
"tab_manager.menu.close_left": "Закрыть вкладки слева",
"tab_manager.menu.close_other": "Закрыть остальные вкладки",
"tab_manager.menu.close_right": "Закрыть вкладки справа",
"tab_manager.close_aria": "Закрыть {{title}}",
"tab_manager.kind_badge.query": "SQL",
"tab_manager.kind_badge.table": "Таблица",
"tab_manager.kind_badge.design": "Дизайн",
"tab_manager.kind_badge.table_overview": "БД",
"tab_manager.kind_badge.redis": "Redis",
"tab_manager.kind_badge.jvm": "JVM",
"tab_manager.kind_badge.trigger": "Триггер",
"tab_manager.kind_badge.materialized_view": "MV",
"tab_manager.kind_badge.view": "Вид",
"tab_manager.kind_badge.event": "Событие",
"tab_manager.kind_badge.routine": "Функция",
"tab_manager.kind_badge.fallback": "Вкладка",
"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.table": "Данные таблицы",
"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": "Тип",
"sidebar.message.no_visible_databases": "Видимые базы данных или схемы не возвращены. Проверьте права учетной записи или обновите через контекстное меню.",
"sidebar.message.jvm_resources_backend_unavailable": "Просмотр ресурсов JVM недоступен в этой сборке.",
"sidebar.message.external_sql_directory_read_failed": "Не удалось прочитать SQL-каталог {{name}}: {{error}}",
"sidebar.message.sphinx_unsupported_objects": "Этот экземпляр Sphinx не предоставляет следующие возможности объектов: {{objects}}. Применен режим совместимости.",
"sidebar.message.database_name_required": "Введите имя базы данных.",
"sidebar.message.database_name_unchanged": "Имя базы данных не изменилось.",
"sidebar.message.database_renamed": "База данных переименована.",
"sidebar.message.database_deleted": "База данных удалена.",
"sidebar.message.table_name_required": "Введите имя таблицы.",
"sidebar.message.table_name_unchanged": "Имя таблицы не изменилось.",
"sidebar.message.table_renamed": "Таблица переименована.",
"sidebar.message.table_deleted": "Таблица удалена.",
"sidebar.message.view_name_required": "Введите имя представления.",
"sidebar.message.view_name_unchanged": "Имя представления не изменилось.",
"sidebar.message.view_deleted": "Представление удалено.",
"sidebar.message.view_renamed": "Представление переименовано.",
"sidebar.message.routine_deleted": "{{type}} удалена.",
"sidebar.message.rename_failed": "Не удалось переименовать: {{error}}",
"sidebar.message.delete_failed": "Не удалось удалить: {{error}}",
"sidebar.message.table_data_action_loading": "{{action}} {{table}}...",
"sidebar.message.table_data_action_success": "{{action}} завершено.",
"sidebar.message.table_data_action_failed": "{{action}} завершилось ошибкой: {{error}}",
"sidebar.message.disconnected": "Отключено.",
"sidebar.message.database_closed": "База данных закрыта.",
"sidebar.message.saved_query_deleted": "Запрос удален.",
"sidebar.message.saved_query_name_unchanged": "Имя запроса не изменилось.",
"sidebar.message.saved_query_renamed": "Запрос переименован.",
"sidebar.menu.sort_by_name": "Сортировать по имени",
"sidebar.menu.sort_by_frequency": "Сортировать по частоте использования",
"sidebar.menu.create_view": "Новое представление",
"sidebar.menu.create_function": "Новая функция",
"sidebar.menu.create_procedure": "Новая процедура",
"sidebar.menu.edit_tag": "Изменить группу",
"sidebar.menu.delete_tag": "Удалить группу",
"sidebar.menu.new_command_window": "Новое командное окно",
"sidebar.menu.redis_monitor": "Redis мониторинг",
"sidebar.menu.duplicate_connection": "Дублировать подключение",
"sidebar.menu.disconnect": "Отключить",
"sidebar.menu.move_out_of_tag": "Убрать из группы",
"sidebar.menu.create_database": "Новая база данных",
"sidebar.menu.new_query": "Новый запрос",
"sidebar.menu.move_to_tag": "Переместить в группу",
"sidebar.menu.browse_keys": "Просмотреть ключи",
"sidebar.menu.create_table": "Новая таблица",
"sidebar.menu.rename_database": "Переименовать базу данных",
"sidebar.menu.danger_operations": "Опасные операции",
"sidebar.menu.delete_database": "Удалить базу данных",
"sidebar.menu.export_all_table_schema_sql": "Экспортировать структуру всех таблиц в SQL",
"sidebar.menu.backup_all_tables_sql": "Создать резервную копию всех таблиц (схема + данные SQL)",
"sidebar.menu.close_database": "Закрыть базу данных",
"sidebar.menu.browse_view_data": "Просмотреть данные представления",
"sidebar.menu.view_definition": "Определение представления",
"sidebar.menu.edit_view": "Редактировать представление",
"sidebar.menu.rename_view": "Переименовать представление",
"sidebar.menu.delete_view": "Удалить представление",
"sidebar.menu.view_routine_definition": "Показать определение",
"sidebar.menu.edit_definition": "Редактировать определение",
"sidebar.menu.delete_routine": "Удалить {{type}}",
"sidebar.menu.design_table": "Проектировать таблицу",
"sidebar.menu.copy_table_structure": "Копировать структуру таблицы",
"sidebar.menu.backup_table_sql": "Создать резервную копию таблицы (SQL)",
"sidebar.menu.rename_table": "Переименовать таблицу",
"sidebar.menu.truncate_table": "Усечь таблицу",
"sidebar.menu.clear_table": "Очистить таблицу",
"sidebar.menu.delete_table": "Удалить таблицу",
"sidebar.menu.export_table_data": "Экспортировать данные таблицы",
"sidebar.menu.export_csv": "Экспортировать CSV",
"sidebar.menu.export_xlsx": "Экспортировать XLSX",
"sidebar.menu.export_json": "Экспортировать JSON",
"sidebar.menu.export_markdown": "Экспортировать Markdown",
"sidebar.menu.export_html": "Экспортировать HTML",
"sidebar.menu.open_query": "Открыть запрос",
"sidebar.menu.rename_query": "Переименовать запрос",
"sidebar.menu.delete_query": "Удалить запрос",
"sidebar.menu.add_sql_directory": "Добавить SQL-каталог",
"sidebar.menu.refresh_directory": "Обновить каталог",
"sidebar.menu.remove_directory": "Удалить каталог",
"sidebar.menu.open_sql_file": "Открыть SQL-файл",
"sidebar.batch.group.tables": "Таблицы",
"sidebar.batch.group.views": "Представления",
"sidebar.batch.no_matching_objects": "Нет подходящих объектов",
"sidebar.sql_template.edit_view": "Изменить представление {{name}}",
"sidebar.sql_template.modify_then_execute": "Изменить и выполнить",
"sidebar.sql_template.edit_routine": "Изменить {{type}} {{name}}",
"sidebar.sql_template.duckdb_procedure_unsupported": "DuckDB пока не поддерживает хранимые процедуры",
"sidebar.sql_template.duckdb_macro_hint": "Используйте SQL Macro для поведения, похожего на функцию",
"connection_modal.network.ssl_mode.preferred": "Предпочтительно",
"connection_modal.network.ssl_mode.required": "Обязательно",
"connection_modal.network.ssl_mode.skip_verify": "Без проверки",
"sidebar.external_sql.root": "Внешние SQL-файлы",
"sidebar.external_sql.directory_fallback": "SQL-каталог",
"sidebar.jvm.action.monitoring": "Непрерывный мониторинг",
"sidebar.jvm.action.diagnostic": "Расширенная диагностика",
"sidebar.jvm.tab.overview": "Обзор JVM",
"sidebar.jvm.tab.resource": "Ресурсы JVM",
"sidebar.jvm.tab.audit": "Аудит JVM",
"sidebar.jvm.tab.diagnostic": "Диагностика JVM",
"sidebar.jvm.tab.monitoring": "Мониторинг JVM",
"jvm.backend.message.connect_success": "Подключение JVM успешно выполнено",
"jvm.backend.error.preview_confirmation_missing": "Токен подтверждения предварительного просмотра отсутствует. Перед отправкой выполните предварительный просмотр еще раз.",
"jvm.backend.error.confirmation_token_missing": "Токен подтверждения отсутствует. Сначала завершите подтверждение предварительного просмотра.",
"jvm.backend.error.confirmation_token_invalid": "Токен подтверждения недействителен. Выполните предварительный просмотр и подтвердите снова.",
"jvm.backend.error.confirmation_token_expired": "Срок действия токена подтверждения истек. Выполните предварительный просмотр и подтвердите снова.",
"jvm.backend.error.preview_context_hash_failed": "Не удалось создать контекст предварительного просмотра JVM: {{detail}}",
"jvm.backend.error.preview_payload_hash_failed": "Не удалось создать digest Payload предварительного просмотра JVM: {{detail}}",
"jvm.backend.error.change_blocked_by_guard": "Текущее изменение заблокировано Guard",
"jvm.backend.error.change_blocked_read_only": "Текущее подключение доступно только для чтения, поэтому запись заблокирована",
"jvm.backend.error.change_resource_id_required": "ID ресурса JVM обязателен",
"jvm.backend.error.change_action_required": "Действие изменения JVM обязательно",
"jvm.backend.error.change_reason_required": "Причина изменения JVM обязательна",
"jvm.backend.error.change_confirmation_token_failed": "Не удалось создать токен подтверждения изменения JVM: {{detail}}",
"jvm.backend.error.disallowed_mode": "Текущее подключение не разрешает режим {{mode}}",
"jvm.backend.error.resource_path_invalid": "Недопустимый путь ресурса JVM: {{detail}}",
"jvm.backend.error.audit_write_blocked": "Не удалось записать запись аудита, изменение JVM заблокировано: {{detail}}",
"jvm.backend.warning.failed_audit_write_failed": "Не удалось записать аудит сбоя: {{detail}}",
"jvm.backend.warning.terminal_audit_write_failed": "Не удалось записать финальный аудит: {{detail}}",
"jvm.backend.separator.message_warning": "; ",
"jvm.backend.capability.reason.read_only": "Текущее подключение доступно только для чтения",
"jvm.backend.monitoring.error.snapshot_unsupported": "Снимок мониторинга {{provider}} пока не поддерживается",
"jvm.backend.monitoring.error.session_not_found": "Сеанс мониторинга JVM для {{connectionId}} {{providerMode}} не найден",
"jvm.backend.monitoring.warning.sample_auto_stopped": "Сбор данных мониторинга завершился с ошибкой {{count}} раз подряд, поэтому этот сеанс был автоматически остановлен",
"jvm.backend.connection_error.suggestion": "Рекомендация: {{detail}}",
"jvm.backend.connection_error.technical_detail": "Технические сведения: {{detail}}",
"jvm.backend.connection_error.generic": "Подключение JVM не удалось",
"jvm.backend.connection_error.endpoint.base_url_required": "Подключение Endpoint не удалось: Endpoint Base URL отсутствует.",
"jvm.backend.connection_error.endpoint.base_url_invalid.summary": "Подключение Endpoint не удалось: Endpoint Base URL недействителен.",
"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.scheme_unsupported.summary": "Подключение Endpoint не удалось: поддерживаются только HTTP или HTTPS.",
"jvm.backend.connection_error.endpoint.scheme_unsupported.help": "Измените Endpoint Base URL на адрес, начинающийся с http:// или https://.",
"jvm.backend.connection_error.endpoint.not_found.summary": "Подключение Endpoint не удалось: целевой адрес ответил, но management API GoNavi JVM не найден.",
"jvm.backend.connection_error.endpoint.not_found.help": "Убедитесь, что Base URL указывает на корневой путь management API JVM, а не на бизнес-endpoint, health check или домашнюю страницу gateway.",
"jvm.backend.connection_error.endpoint.connection_refused.summary": "Подключение Endpoint не удалось: целевой management API не слушает порт или адрес недоступен.",
"jvm.backend.connection_error.endpoint.connection_refused.help": "Убедитесь, что Base URL указывает на management API, реализующий GoNavi JVM HTTP contract, и проверьте прослушивание сервиса, port mapping и правила firewall.",
"jvm.backend.connection_error.endpoint.unauthorized.summary": "Подключение Endpoint не удалось: целевой management API ответил, но API Key отсутствует или недействителен.",
"jvm.backend.connection_error.endpoint.unauthorized.help": "Проверьте, совпадает ли Endpoint API Key в подключении с конфигурацией целевого сервиса.",
"jvm.backend.connection_error.endpoint.forbidden.summary": "Подключение Endpoint не удалось: целевой management API отклонил этот запрос.",
"jvm.backend.connection_error.endpoint.forbidden.help": "Убедитесь, что источник клиента, настройки authentication и access policy разрешают GoNavi доступ к этому management API.",
"jvm.backend.connection_error.endpoint.timeout.summary": "Подключение Endpoint не удалось: истекло время ожидания доступа к целевому management API.",
"jvm.backend.connection_error.endpoint.timeout.help": "Убедитесь, что Base URL доступен, целевой сервис запущен, и при необходимости увеличьте connection timeout.",
"jvm.backend.connection_error.agent.base_url_required": "Подключение Agent не удалось: Agent Base URL отсутствует.",
"jvm.backend.connection_error.agent.base_url_invalid.summary": "Подключение Agent не удалось: Agent Base URL недействителен.",
"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.scheme_unsupported.summary": "Подключение Agent не удалось: поддерживаются только HTTP или HTTPS.",
"jvm.backend.connection_error.agent.scheme_unsupported.help": "Измените Agent Base URL на адрес, начинающийся с http:// или https://.",
"jvm.backend.connection_error.agent.connection_refused.summary": "Подключение Agent не удалось: целевой management port Agent не слушается или адрес недоступен.",
"jvm.backend.connection_error.agent.connection_refused.help": "Убедитесь, что Java service запущен с GoNavi Agent через `-javaagent`, и проверьте Base URL, port mapping и правила firewall.",
"jvm.backend.connection_error.agent.unauthorized.summary": "Подключение Agent не удалось: Agent ответил, но API Key отсутствует или недействителен.",
"jvm.backend.connection_error.agent.unauthorized.help": "Проверьте, совпадает ли Agent API Key в подключении с параметрами запуска целевого сервиса.",
"jvm.backend.connection_error.agent.forbidden.summary": "Подключение Agent не удалось: Agent отклонил этот запрос.",
"jvm.backend.connection_error.agent.forbidden.help": "Убедитесь, что источник клиента, настройки authentication и access policy Agent разрешают GoNavi доступ.",
"jvm.backend.connection_error.agent.timeout.summary": "Подключение Agent не удалось: истекло время ожидания доступа к management port Agent.",
"jvm.backend.connection_error.agent.timeout.help": "Убедитесь, что целевой адрес доступен, Agent запущен, и при необходимости увеличьте connection timeout.",
"jvm.backend.connection_error.jmx.host_required": "Подключение JMX не удалось: host отсутствует.",
"jvm.backend.connection_error.jmx.port_invalid": "Подключение JMX не удалось: port недействителен. Укажите допустимый port от 1 до 65535.",
"jvm.backend.connection_error.jmx.java_missing.summary": "Подключение JMX не удалось: на текущей машине не найден runtime `java`, поэтому GoNavi не может запустить JMX helper.",
"jvm.backend.connection_error.jmx.java_missing.help": "Сначала установите JRE/JDK или укажите правильный исполняемый файл `java` через переменную окружения GONAVI_JMX_JAVA_BIN.",
"jvm.backend.connection_error.jmx.non_jrmp.summary": "Подключение JMX не удалось: {{target}} не является стандартным удаленным management port JMX; это похоже на бизнес-порт или HTTP port.",
"jvm.backend.connection_error.jmx.non_jrmp.help": "Используйте фактический JMX port, открытый приложением, а не бизнес `server.port`. Если сервис только включает `-Dcom.sun.management.jmxremote`, но не задает `jmxremote.port`, удаленное подключение невозможно.",
"jvm.backend.connection_error.jmx.no_such_object.summary": "Подключение JMX не удалось: на {{target}} есть RMI service, но это не пригодный JMX RMIServer port.",
"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.connection_reset.summary": "Подключение JMX не удалось: сервис на {{target}} закрыл соединение; port не является совместимым стандартным JMX RMI port.",
"jvm.backend.connection_error.jmx.connection_reset.help": "Убедитесь, что настроенный port является открытым JMX port JVM, а не бизнес-портом, debug port или проксированным port.",
"jvm.backend.connection_error.jmx.connection_refused.summary": "Подключение JMX не удалось: не удалось подключиться к {{target}}, потому что port не слушается или сеть недоступна.",
"jvm.backend.connection_error.jmx.connection_refused.help": "Убедитесь, что на целевой JVM включен remote JMX, и проверьте host, firewall, port mapping, SSH и настройки proxy.",
"jvm.backend.connection_error.jmx.auth.summary": "Подключение JMX не удалось: {{target}} требует authentication или текущие credentials недействительны.",
"jvm.backend.connection_error.jmx.auth.help": "Проверьте, отключена ли authentication у целевого JMX. Если authentication требуется, укажите username и password перед подключением.",
"jvm.backend.connection_error.jmx.timeout.summary": "Подключение JMX не удалось: время ожидания подключения к {{target}} истекло.",
"jvm.backend.connection_error.jmx.timeout.help": "Убедитесь, что port доступен, сеть не заблокирована, и при необходимости увеличьте connection timeout.",
"jvm.backend.diagnostic.error.disabled": "Для этого подключения не включен режим расширенной диагностики JVM",
"jvm.backend.diagnostic.error.session_id_required": "Diagnostic session ID обязателен. Сначала создайте session.",
"jvm.backend.diagnostic.error.command_required": "Diagnostic command не может быть пустой",
"jvm.backend.diagnostic.error.cancel_identifiers_required": "Для cancel command требуются sessionId и commandId",
"jvm.backend.diagnostic.error.audit_write_blocked": "Не удалось записать diagnostic audit record, выполнение command заблокировано: {{detail}}",
"jvm.backend.diagnostic.error.execute_canceled": "Запрос выполнения диагностики отменен: {{detail}}",
"jvm.backend.diagnostic.error.transport_unsupported": "Неподдерживаемый транспорт диагностики JVM: {{transport}}",
"jvm.backend.diagnostic.warning.audit_write_failed": "Не удалось записать audit record: {{detail}}",
"jvm.backend.diagnostic.message.command_completed": "Diagnostic command выполнена",
"jvm.backend.diagnostic.message.cancel_requested": "Cancel request отправлен; ожидание остановки command диагностическим bridge",
"jvm.backend.diagnostic.message.arthas_command_completed": "Arthas command выполнена",
"jvm.backend.diagnostic.message.arthas_command_canceled": "Arthas command отменена",
"jvm.backend.diagnostic.policy.observe_not_allowed": "Observe diagnostic commands не включены для этого подключения: {{command}}",
"jvm.backend.diagnostic.policy.trace_not_allowed": "Trace diagnostic commands не включены для этого подключения: {{command}}",
"jvm.backend.diagnostic.policy.mutating_not_allowed": "High-risk diagnostic commands не включены для этого подключения: {{command}}",
"jvm.backend.diagnostic.policy.read_only_observe_only": "Текущее подключение доступно только для чтения. Разрешены только observe diagnostic commands",
"jvm.backend.diagnostic.policy.multiline_not_supported": "Diagnostic command не поддерживает переносы строк или несколько commands",
"jvm.backend.diagnostic.arthas.base_url_required": "Требуется адрес Arthas Tunnel",
"jvm.backend.diagnostic.arthas.base_url_invalid": "Адрес Arthas Tunnel недействителен: {{detail}}",
"jvm.backend.diagnostic.arthas.target_id_required": "Требуется target ID для Arthas Tunnel (targetId / agentId)",
"jvm.backend.diagnostic.arthas.scheme_unsupported": "Arthas Tunnel поддерживает только адреса http/https/ws/wss: {{scheme}}",
"jvm.backend.diagnostic.arthas.session_missing": "Diagnostic session не существует. Создайте Arthas Tunnel session заново.",
"jvm.backend.diagnostic.arthas.session_config_changed": "Конфигурация Arthas Tunnel session изменилась. Создайте diagnostic session заново.",
"jvm.backend.diagnostic.arthas.command_already_running": "В этой Arthas Tunnel session уже выполняется command. Дождитесь завершения или сначала отмените ее.",
"jvm.backend.diagnostic.arthas.no_running_command": "В этой Arthas Tunnel session нет выполняющейся command.",
"jvm.backend.diagnostic.arthas.cancel_command_mismatch": "Активная command в этой Arthas Tunnel session не совпадает с command для отмены.",
"jvm.backend.diagnostic.arthas.connection_not_ready": "Подключение Arthas Tunnel еще не готово. Повторите попытку позже.",
"jvm.backend.diagnostic.arthas.http_failed": "Подключение Arthas Tunnel не удалось: HTTP {{status}}",
"jvm.backend.diagnostic.arthas.connect_timeout": "WebSocket-подключение Arthas Tunnel не получило ответ за {{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.request_encode_failed": "Не удалось закодировать запрос Arthas Tunnel: {{detail}}",
"jvm.backend.diagnostic.arthas.write_deadline_failed": "Не удалось задать write deadline Arthas Tunnel: {{detail}}",
"jvm.backend.diagnostic.arthas.send_timeout": "Отправка terminal command в Arthas Tunnel не получила ответ за {{timeout}} и завершилась по timeout",
"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.read_deadline_failed": "Не удалось задать read deadline Arthas Tunnel: {{detail}}",
"jvm.backend.diagnostic.arthas.read_timeout": "Чтение вывода Arthas Tunnel не получило ответ за {{timeout}} и завершилось по timeout",
"jvm.backend.diagnostic.arthas.read_canceled": "Чтение вывода Arthas Tunnel отменено",
"jvm.backend.diagnostic.arthas.read_failed": "Не удалось прочитать вывод Arthas Tunnel: {{detail}}",
"jvm.backend.diagnostic.arthas.connection_closed": "Подключение Arthas Tunnel закрыто: {{detail}}",
"jvm.backend.diagnostic.arthas.connection_closed_code": "Подключение Arthas Tunnel закрыто: code={{code}}",
"jvm.backend.diagnostic.arthas.command_timeout": "Arthas Tunnel command завершилась по timeout за {{timeout}}",
"jvm.backend.diagnostic.arthas.command_canceled": "Arthas Tunnel command отменена",
"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_resource.error.connection_missing": "Подключение не существует или было удалено.",
"jvm_resource.error.resource_path_empty": "Путь к ресурсу пуст.",
"jvm_resource.error.get_value_unavailable": "Чтение значения JVM недоступно в этой сборке.",
"jvm_resource.error.read_failed": "Не удалось прочитать ресурс JVM.",
"jvm_resource.error.ai_plan_missing_context": "В плане AI отсутствует исходный контекст. Сначала создайте его заново на странице целевого ресурса JVM.",
"jvm_resource.error.ai_plan_context_mismatch": "Текущая вкладка JVM не совпадает с исходным контекстом плана AI, поэтому автоматическое применение отклонено.",
"jvm_resource.error.ai_plan_to_draft_failed": "Сейчас не удалось преобразовать план AI в черновик предварительного просмотра JVM.",
"jvm_resource.message.ai_plan_draft_filled": "Черновик заполнен из плана AI для {{resourceId}}. Перед подтверждением записи сначала просмотрите изменение.",
"jvm_ai_plan.error.resource_locator_missing": "В плане AI отсутствует пригодная информация для поиска ресурса.",
"jvm_ai_plan.error.reason_missing": "В плане AI отсутствует причина изменения.",
"jvm_ai_plan.error.action_missing": "В плане AI отсутствует исполняемое action.",
"jvm_ai_plan.error.payload_json_object_required": "Текущий предварительный просмотр JVM требует, чтобы payload оставался JSON-объектом.",
"jvm_ai_plan.snapshot.unavailable": "Текущий снимок ресурса еще не был успешно загружен.",
"jvm_ai_plan.actions.none": "Текущий ресурс не объявляет поддерживаемые действия. Если вы создаете план, указывайте action только когда его можно явно вывести из снимка, и оставляйте payload JSON-объектом.",
"jvm_ai_plan.actions.label": " ({{label}})",
"jvm_ai_plan.actions.description": ": {{description}}",
"jvm_ai_plan.actions.payload_fields": "; поля payload: {{fields}}",
"jvm_ai_plan.actions.field_separator": ", ",
"jvm_ai_plan.actions.required_suffix": "(required)",
"jvm_ai_plan.prompt.resource_path_missing": "(путь ресурса не указан)",
"jvm_ai_plan.prompt.environment_unknown": "unknown",
"jvm_ai_plan.prompt.intro": "Проанализируйте следующий ресурс JVM и создайте структурированный план изменения для GoNavi \"Предварительный просмотр изменения\".",
"jvm_ai_plan.prompt.connection_name": "Имя подключения: {{connectionName}}",
"jvm_ai_plan.prompt.target_host": "Целевой хост: {{host}}",
"jvm_ai_plan.prompt.provider_mode": "Режим Provider: {{providerMode}}",
"jvm_ai_plan.prompt.environment": "Среда: {{environmentLabel}}",
"jvm_ai_plan.prompt.connection_policy.read_only": "Подключение только для чтения. Можно создать только план и анализ рисков; нельзя предполагать, что выполнение уже произошло.",
"jvm_ai_plan.prompt.connection_policy.writable": "Подключение доступно для записи, но изменение все равно сначала должно быть просмотрено и подтверждено вручную.",
"jvm_ai_plan.prompt.connection_policy": "Политика подключения: {{policy}}",
"jvm_ai_plan.prompt.resource_path": "Текущий путь ресурса: {{resourcePath}}",
"jvm_ai_plan.prompt.snapshot_title": "Текущий снимок ресурса:",
"jvm_ai_plan.prompt.supported_actions_title": "Поддерживаемые действия для текущего ресурса:",
"jvm_ai_plan.prompt.output_requirements_title": "Требования к выводу:",
"jvm_ai_plan.prompt.requirement.single_json_block": "1. Сначала можно добавить короткий анализ, но ответ должен содержать ровно один блок кода ```json.",
"jvm_ai_plan.prompt.requirement.fields": "2. Поля JSON внутри блока кода должны быть строго такими: targetType, selector, action, payload, reason.",
"jvm_ai_plan.prompt.requirement.resource_path": "3. Предпочитайте selector.resourcePath с текущим путем ресурса {{resourcePath}}. Не придумывайте другой путь.",
"jvm_ai_plan.prompt.requirement.action": "4. Предпочитайте выбирать action из \"Поддерживаемые действия для текущего ресурса\"; выводите его из снимка только если поддерживаемые действия не объявлены.",
"jvm_ai_plan.prompt.requirement.payload": "5. payload должен быть обернут как JSON-объект. Не выводите скрипты, команды или сырые двоичные данные. Если нужно текстовое значение, оберните его как {\"format\":\"text\",\"value\":\"...\"}.",
"jvm_ai_plan.prompt.requirement.no_execute": "6. Не утверждайте, что изменение уже выполнено, и не выводите скрипты или команды.",
"jvm_ai_plan.prompt.example_title": "Пример JSON:",
"jvm_ai_plan.prompt.example_reason": "Исправить грязное значение кэша",
"jvm_resource.error.reason_required": "Укажите причину изменения.",
"jvm_resource.error.payload_object_required": "Payload должен быть JSON-объектом.",
"jvm_resource.error.resource_id_empty": "ID ресурса пуст, поэтому невозможно создать черновик изменения.",
"jvm_resource.error.preview_unavailable": "Предварительный просмотр изменений JVM недоступен в этой сборке.",
"jvm_resource.error.draft_invalid": "Черновик изменения недействителен.",
"jvm_resource.error.preview_failed": "Не удалось предварительно просмотреть изменение JVM.",
"jvm_resource.error.preview_result_invalid": "Результат предварительного просмотра имеет неверный формат.",
"jvm_resource.error.apply_unavailable": "Выполнение изменений JVM недоступно в этой сборке.",
"jvm_resource.error.preview_required": "Перед подтверждением выполнения сначала просмотрите изменение.",
"jvm_resource.error.context_changed": "Контекст ресурса изменился. Перед выполнением снова выполните предварительный просмотр.",
"jvm_resource.error.confirmation_missing": "Отсутствует токен подтверждения. Перед выполнением снова выполните предварительный просмотр.",
"jvm_resource.presentation.action.set.label": "Установить свойство",
"jvm_resource.presentation.action.set.description": "Обновляет доступное для записи значение свойства текущего ресурса.",
"jvm_resource.presentation.action.invoke.label": "Вызвать операцию",
"jvm_resource.presentation.action.invoke.description": "Вызывает управляющую операцию, предоставляемую текущим ресурсом.",
"jvm_resource.presentation.action.put.label": "Записать ресурс",
"jvm_resource.presentation.action.put.description": "Записывает содержимое payload в текущий ресурс JVM.",
"jvm_resource.presentation.action.clear.label": "Очистить ресурс",
"jvm_resource.presentation.action.clear.description": "Очищает данные или состояние в текущем ресурсе JVM.",
"jvm_resource.presentation.action.evict.label": "Вытеснить кэш",
"jvm_resource.presentation.action.evict.description": "Вытесняет целевой элемент кэша из текущей среды выполнения JVM.",
"jvm_resource.presentation.action.remove.label": "Удалить запись",
"jvm_resource.presentation.action.remove.description": "Удаляет указанную запись из текущего ресурса.",
"jvm_resource.presentation.action.delete.label": "Удалить ресурс",
"jvm_resource.presentation.action.delete.description": "Удаляет текущий ресурс или отменяет его регистрацию.",
"jvm_resource.presentation.action.refresh.label": "Обновить ресурс",
"jvm_resource.presentation.action.refresh.description": "Обновляет состояние выполнения текущего ресурса.",
"jvm_resource.presentation.action.reload.label": "Перезагрузить",
"jvm_resource.presentation.action.reload.description": "Перезагружает текущий ресурс или его конфигурацию.",
"jvm_resource.presentation.action.reset.label": "Сбросить состояние",
"jvm_resource.presentation.action.reset.description": "Возвращает текущий ресурс в начальное состояние или состояние по умолчанию.",
"jvm_resource.presentation.unnamed_action": "Действие без имени",
"jvm_resource.presentation.risk.low": "Низкий",
"jvm_resource.presentation.risk.medium": "Средний",
"jvm_resource.presentation.risk.high": "Высокий",
"jvm_resource.presentation.risk.unknown": "Неизвестно",
"jvm_resource.presentation.audit_result.unknown": "Неизвестно",
"jvm_resource.presentation.audit_result.applied": "Выполнено",
"jvm_resource.presentation.audit_result.success": "Успешно",
"jvm_resource.presentation.audit_result.warning": "Предупреждение",
"jvm_resource.presentation.audit_result.blocked": "Заблокировано",
"jvm_resource.presentation.audit_result.failed": "Ошибка",
"jvm_resource.error.apply_failed": "Не удалось выполнить изменение JVM.",
"jvm_resource.message.apply_success": "Изменение JVM выполнено.",
"jvm_resource.title": "Рабочая область ресурсов JVM",
"jvm_resource.badge.read_only": "Подключение только для чтения",
"jvm_resource.badge.writable": "Подключение с записью",
"jvm_resource.action.audit": "Журнал аудита",
"jvm_resource.action.generate_ai_plan": "Создать план AI",
"jvm_resource.action.ask_ai_plan": "Попросить AI создать план",
"jvm_resource.card.snapshot": "Снимок ресурса",
"jvm_resource.field.resource_id": "ID ресурса",
"jvm_resource.field.resource_type": "Тип ресурса",
"jvm_resource.field.format": "Формат",
"jvm_resource.field.version": "Версия",
"jvm_resource.field.available_actions": "Доступные действия",
"jvm_resource.section.resource_value": "Значение ресурса",
"jvm_resource.section.metadata": "Метаданные",
"jvm_resource.empty.no_resource_data": "Нет данных ресурса",
"jvm_resource.card.change_draft": "Черновик изменения",
"jvm_resource.field.resource_path": "Путь к ресурсу",
"jvm_resource.field.target_resource": "Целевой ресурс",
"jvm_resource.field.resource_version": "Версия ресурса",
"jvm_resource.field.draft_source": "Источник черновика",
"jvm_resource.draft_source.ai_plan": "Черновик с помощью AI",
"jvm_resource.draft_source.manual": "Ручное редактирование",
"jvm_resource.section.supported_actions": "Поддерживаемые действия ресурса",
"jvm_resource.field.payload_fields": "Поля Payload: ",
"jvm_resource.marker.required_suffix": " (обязательно)",
"jvm_resource.list_separator": ", ",
"jvm_resource.field.action": "Действие",
"jvm_resource.placeholder.action_jmx": "Например, set или invoke",
"jvm_resource.placeholder.action_default": "Например, put / clear / evict",
"jvm_resource.message.current_action": "Текущее действие: ",
"jvm_resource.field.reason": "Причина изменения",
"jvm_resource.placeholder.reason": "Введите причину этого изменения ресурса JVM",
"jvm_resource.field.payload": "Payload (JSON)",
"jvm_resource.message.payload_hint": "Предварительный просмотр использует текущий черновик. Подтверждение выполнения использует последний успешный запрос предварительного просмотра. После изменения черновика выполните просмотр снова.",
"jvm_resource.message.payload_template_applied": "Для текущего действия заполнен рекомендуемый шаблон.",
"jvm_resource.action.preview_change": "Предпросмотр изменения",
"jvm_overview.connection_missing.message": "Подключение не существует или было удалено",
"jvm_overview.error.capability_load_failed": "Не удалось прочитать возможности режима JVM",
"jvm_overview.eyebrow": "Среда выполнения JVM",
"jvm_overview.title": "Обзор среды выполнения JVM",
"jvm_overview.badge.read_only": "Подключение только для чтения",
"jvm_overview.badge.writable": "Подключение с записью",
"jvm_overview.card.connection_summary": "Сводка подключения",
"jvm_overview.card.mode_capability": "Возможности режимов",
"jvm_overview.field.current_mode": "Текущий режим",
"jvm_overview.field.allowed_modes": "Разрешенные режимы",
"jvm_overview.field.jmx_address": "JMX-адрес",
"jvm_overview.field.endpoint": "Endpoint",
"jvm_overview.field.agent": "Agent",
"jvm_overview.field.resource_browse": "Просмотр ресурсов",
"jvm_overview.value.enabled": "Включено",
"jvm_overview.value.not_configured": "Не настроено",
"jvm_overview.value.resource_browse_lazy_load": "Ленивая загрузка после раскрытия узла режима на боковой панели",
"jvm_overview.empty.capabilities": "Нет данных о возможностях режима",
"jvm_overview.capability.can_browse": "Можно просматривать",
"jvm_overview.capability.cannot_browse": "Нельзя просматривать",
"jvm_overview.capability.writable": "Запись разрешена",
"jvm_overview.capability.read_only": "Только чтение",
"jvm_overview.capability.preview_supported": "Предпросмотр поддерживается",
"jvm_overview.capability.preview_unsupported": "Предпросмотр не поддерживается",
"jvm_monitoring_dashboard.connection_missing.message": "Подключение не существует или было удалено",
"jvm_monitoring_dashboard.error.history_unavailable": "Метод backend JVMGetMonitoringHistory недоступен",
"jvm_monitoring_dashboard.error.history_load_failed": "Не удалось загрузить историю мониторинга",
"jvm_monitoring_dashboard.error.start_unavailable": "Метод backend JVMStartMonitoring недоступен",
"jvm_monitoring_dashboard.error.start_failed": "Не удалось запустить мониторинг",
"jvm_monitoring_dashboard.error.stop_unavailable": "Метод backend JVMStopMonitoring недоступен",
"jvm_monitoring_dashboard.error.stop_failed": "Не удалось остановить мониторинг",
"jvm_monitoring_dashboard.title": "Непрерывный мониторинг JVM",
"jvm_monitoring_dashboard.status.sampling": "Идет сбор",
"jvm_monitoring_dashboard.status.stopped": "Не запущено",
"jvm_monitoring_dashboard.action.refresh": "Обновить",
"jvm_monitoring_dashboard.action.start": "Запустить мониторинг",
"jvm_monitoring_dashboard.action.stop": "Остановить мониторинг",
"jvm_monitoring_dashboard.degraded.message": "Возможности мониторинга снижены",
"jvm_monitoring_dashboard.empty.title": "Непрерывный мониторинг еще не запущен",
"jvm_monitoring_dashboard.empty.description": "После нажатия \"Запустить мониторинг\" GoNavi сохраняет результаты сбора данных для этого подключения в текущем сеансе; переключение вкладок не останавливает сбор данных.",
"jvm_diagnostic.workbench.eyebrow": "Диагностика JVM",
"jvm_diagnostic.workbench.title": "Рабочая область диагностики JVM",
"jvm_diagnostic.workbench.status.session_established": "Сеанс установлен",
"jvm_diagnostic.workbench.status.no_session": "Нет сеанса",
"jvm_diagnostic.workbench.status.command_running": "Команда выполняется",
"jvm_diagnostic.workbench.action.probe": "Проверить возможности",
"jvm_diagnostic.workbench.action.restart_session": "Пересоздать сеанс",
"jvm_diagnostic.workbench.action.start_session": "Создать сеанс",
"jvm_diagnostic.workbench.action.execute_command": "Выполнить команду",
"jvm_diagnostic.workbench.action.cancel_command": "Отменить команду",
"jvm_diagnostic.connection_missing.message": "Подключение не существует или было удалено",
"jvm_diagnostic.error.probe_unavailable": "Метод backend JVMProbeDiagnosticCapabilities недоступен",
"jvm_diagnostic.error.probe_failed": "Не удалось проверить диагностические возможности",
"jvm_diagnostic.error.start_unavailable": "Метод бэкенда JVMStartDiagnosticSession недоступен",
"jvm_diagnostic.error.start_failed": "Не удалось создать диагностический сеанс",
"jvm_diagnostic.error.history_load_failed": "Не удалось загрузить историю диагностики",
"jvm_diagnostic.error.execute_unavailable": "Метод бэкенда JVMExecuteDiagnosticCommand недоступен",
"jvm_diagnostic.error.execute_session_required": "Перед выполнением команды создайте диагностический сеанс",
"jvm_diagnostic.error.execute_command_required": "Диагностическая команда обязательна",
"jvm_diagnostic.error.execute_failed": "Не удалось выполнить диагностическую команду",
"jvm_diagnostic.error.cancel_unavailable": "Метод бэкенда JVMCancelDiagnosticCommand недоступен",
"jvm_diagnostic.error.cancel_failed": "Не удалось отменить диагностическую команду",
"jvm_diagnostic.message.cancel_sent": "Запрос на отмену отправлен",
"jvm_diagnostic.session.default_title": "Консоль диагностики JVM",
"jvm_diagnostic.session.default_reason": "Сеанс запущен из консоли",
"jvm_diagnostic.ai_plan.error.transport_mismatch": "Диагностический transport в AI-плане: {{planTransport}}, он не совпадает с текущей консолью {{currentTransport}}. Перед применением создайте план заново.",
"jvm_diagnostic.ai_plan.message.filled": "Диагностический AI-план перенесен в консоль",
"jvm_diagnostic.session_capability.title": "Сеанс и возможности",
"jvm_diagnostic.session_capability.description": "Текущий канал, права и быстрое обслуживание",
"jvm_diagnostic.session_capability.status.session_established": "Сеанс установлен",
"jvm_diagnostic.session_capability.status.no_session": "Нет сеанса",
"jvm_diagnostic.session_capability.status.command_running": "Команда выполняется",
"jvm_diagnostic.session_capability.status.idle": "Ожидание",
"jvm_diagnostic.session_capability.session_id_hint": "ID сеанса появится здесь после создания сеанса.",
"jvm_diagnostic.session_capability.note": "Проверка возможностей не выполняет команды; перед выполнением команды нужно создать сеанс. История аудита показывает последние записи команд и может содержать записи прошлых сеансов даже без текущего сеанса.",
"jvm_diagnostic.session_capability.action.clear_output": "Очистить вывод",
"jvm_diagnostic.session_capability.action.refresh_history": "Обновить историю",
"jvm_diagnostic.workflow.probe.title": "Проверить возможности",
"jvm_diagnostic.workflow.probe.description": "Считывает только диагностический канал, потоковый вывод и права на команды, не создавая сеанс.",
"jvm_diagnostic.workflow.session.title": "Создать сеанс",
"jvm_diagnostic.workflow.session.description": "Создает диагностический контекст, чтобы последующие команды были привязаны к этому сеансу.",
"jvm_diagnostic.workflow.command.title": "Выполнить команду",
"jvm_diagnostic.workflow.command.description": "После создания сеанса отображаются редактор команды, поле причины и шаблоны.",
"jvm_diagnostic.capability.empty.title": "Возможности еще не проверены",
"jvm_diagnostic.capability.empty.description": "Проверка возможностей только считывает права канала и политику команд. Она не создает сеанс и не выполняет команды.",
"jvm_diagnostic.capability_result.title": "Результаты проверки возможностей",
"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.observe_allowed": "Команды Observe",
"jvm_diagnostic.capability_result.observe_denied": "Observe запрещен",
"jvm_diagnostic.capability_result.trace_allowed": "Команды Trace",
"jvm_diagnostic.capability_result.mutating_allowed": "Команды высокого риска",
"jvm_diagnostic.no_session.title": "Начать диагностический сеанс",
"jvm_diagnostic.no_session.description": "Сначала создайте сеанс, затем появятся редактор команд и шаблоны",
"jvm_diagnostic.no_session.alert.title": "Ввод команды появится после создания сеанса",
"jvm_diagnostic.no_session.alert.description": "Это не дает принять несвязанный с сеансом ввод за готовую к выполнению команду и привязывает аудит, поток вывода и отмену к одному сеансу.",
"jvm_diagnostic.no_session.action.start": "Создать диагностический сеанс",
"jvm_diagnostic.no_session.action.probe": "Сначала проверить возможности",
"jvm_diagnostic.command_input.title": "Ввод команды",
"jvm_diagnostic.command_input.description": "Поддерживает автодополнение. Нажмите Ctrl/Cmd + Enter для запуска.",
"jvm_diagnostic.command_input.command_label": "Диагностическая команда",
"jvm_diagnostic.command_input.command_description": "Введите команду Arthas/диагностики, например thread -n 5, dashboard или jvm; шаблоны ниже заполняют ее одним щелчком.",
"jvm_diagnostic.command_input.reason_label": "Причина (необязательно)",
"jvm_diagnostic.command_input.reason_placeholder": "Например: исследовать высокую нагрузку CPU, подтвердить блокировку потоков или найти медленный метод",
"jvm_diagnostic.command_input.reason_help": "Используется для записей аудита и контекста AI. Не отправляется в целевую JVM как команда Arthas.",
"jvm_diagnostic.command_templates.title": "Шаблоны команд",
"jvm_diagnostic.output.title": "Вывод в реальном времени",
"jvm_diagnostic.output.description": "Добавляется из потока событий backend",
"jvm_diagnostic.output.empty.description": "Оперативного вывода пока нет. После выполнения команды вывод бэкенда будет появляться здесь в хронологическом порядке.",
"jvm_diagnostic.output.local_pending": "Диагностическая команда отправлена; ожидание вывода backend: {{command}}",
"jvm_diagnostic.output.frontend_completed_fallback": "Вызов диагностической команды вернулся, но терминальное событие backend не было получено. Frontend завершил состояние ожидания как fallback.",
"jvm_diagnostic.presentation.category.observe": "Команды наблюдения",
"jvm_diagnostic.presentation.category.trace": "Команды трассировки",
"jvm_diagnostic.presentation.category.mutating": "Команды высокого риска",
"jvm_diagnostic.presentation.phase.running": "Выполняется",
"jvm_diagnostic.presentation.phase.completed": "Завершено",
"jvm_diagnostic.presentation.phase.failed": "Не удалось",
"jvm_diagnostic.presentation.phase.canceling": "Отмена",
"jvm_diagnostic.presentation.phase.diagnostic": "Диагностическое событие",
"jvm_diagnostic.presentation.event.diagnostic": "Диагностический вывод",
"jvm_diagnostic.presentation.event.chunk": "Фрагмент вывода",
"jvm_diagnostic.presentation.event.done": "Выполнение завершено",
"jvm_diagnostic.presentation.chunk.empty_event": "Пустое событие",
"jvm_diagnostic.history.title": "История аудита",
"jvm_diagnostic.history.description": "Последние команды и состояние выполнения",
"jvm_diagnostic.history.current_session": "Текущий сеанс",
"jvm_diagnostic.history.no_session": "Диагностический сеанс еще не создан",
"jvm_diagnostic.history.recent_records": "Последние записи",
"jvm_diagnostic.history.reason_missing": "Причина диагностики не указана",
"jvm_diagnostic.history.no_records": "История диагностики отсутствует",
"jvm_audit.eyebrow": "Аудит JVM",
"jvm_audit.title": "Аудит изменений JVM",
"jvm_audit.card.records": "Записи аудита",
"jvm_audit.description.current_range": "Текущий диапазон: последние {{limit}} записей",
"jvm_audit.option.last_records": "Последние {{limit}} записей",
"jvm_audit.action.refresh": "Обновить",
"jvm_audit.column.time": "Время",
"jvm_audit.column.mode": "Режим",
"jvm_audit.column.action": "Действие",
"jvm_audit.column.resource": "Ресурс",
"jvm_audit.column.reason": "Причина",
"jvm_audit.column.source": "Источник",
"jvm_audit.column.result": "Результат",
"jvm_audit.source.ai_plan": "С помощью AI",
"jvm_audit.source.manual": "Вручную",
"jvm_audit.error.connection_missing": "Подключение не существует или было удалено.",
"jvm_audit.error.backend_unavailable": "Метод бэкенда JVMListAuditRecords недоступен.",
"jvm_audit.error.load_failed": "Не удалось загрузить записи аудита JVM{{separator}}{{detail}}",
"jvm_audit.empty.load_failed": "Записи аудита сейчас недоступны",
"jvm_audit.empty.no_records": "Нет записей аудита",
"query_editor.placeholder.connection": "Выберите подключение",
"query_editor.placeholder.database": "Выберите базу данных",
"query_editor.max_rows.tooltip": "Максимальное число возвращаемых строк. Для SELECT автоматически добавляется LIMIT, чтобы большие результаты не блокировали интерфейс.",
"query_editor.max_rows.option_500": "Макс. строк: 500",
"query_editor.max_rows.option_1000": "Макс. строк: 1000",
"query_editor.max_rows.option_5000": "Макс. строк: 5000",
"query_editor.max_rows.option_20000": "Макс. строк: 20000",
"query_editor.max_rows.option_unlimited": "Макс. строк: без ограничения",
"query_editor.action.run": "Выполнить",
"query_editor.action.run_with_shortcut": "Выполнить ({{shortcut}})",
"query_editor.action.stop": "Остановить",
"query_editor.action.save": "Сохранить",
"query_editor.action.save_with_shortcut": "Сохранить ({{shortcut}})",
"query_editor.completion.documentation.comment": "Комментарий: {{comment}}",
"query_editor.hover.switch_database_with_shortcut": "{{shortcut}} + щелчок, чтобы переключиться на эту базу данных",
"query_editor.hover.open_table_with_shortcut": "{{shortcut}} + щелчок, чтобы открыть эту таблицу",
"query_editor.hover.open_view_with_shortcut": "{{shortcut}} + щелчок, чтобы открыть это представление",
"query_editor.hover.open_materialized_view_with_shortcut": "{{shortcut}} + щелчок, чтобы открыть это материализованное представление",
"query_editor.hover.open_trigger_with_shortcut": "{{shortcut}} + щелчок, чтобы открыть этот триггер",
"query_editor.hover.open_procedure_with_shortcut": "{{shortcut}} + щелчок, чтобы открыть эту хранимую процедуру",
"query_editor.hover.open_function_with_shortcut": "{{shortcut}} + щелчок, чтобы открыть эту функцию",
"query_editor.object_info.database": "База данных",
"query_editor.object_info.table": "Таблица",
"query_editor.object_info.column": "Столбец",
"query_editor.object_info.materialized_view": "Материализованное представление",
"query_editor.object_info.label.database": "База данных",
"query_editor.object_info.label.table": "Таблица",
"query_editor.object_info.label.type": "Тип",
"query_editor.object_info.label.schema": "Схема",
"query_editor.object_info.label.separator": ": ",
"query_editor.action.more": "Еще",
"query_editor.action.format": "Форматировать",
"query_editor.action.format_sql": "Форматировать SQL",
"query_editor.action.resize_editor": "Перетащите, чтобы изменить высоту",
"query_editor.action.ai_generate_sql": "AI: сгенерировать SQL",
"query_editor.action.ai_explain_sql": "AI: объяснить SQL",
"query_editor.action.ai_optimize_sql": "AI: оптимизировать SQL",
"query_editor.action.ai_generate_sql_menu": "Сгенерировать SQL",
"query_editor.action.ai_explain_sql_menu": "Объяснить SQL",
"query_editor.action.ai_optimize_sql_menu": "Оптимизировать SQL",
"query_editor.action.ai_schema_analysis": "Анализ схемы",
"query_editor.action.show_object_info": "Показать сведения об объекте",
"query_editor.action.rename_query": "Переименовать запрос",
"query_editor.action.export_sql_file": "Экспортировать SQL-файл",
"query_editor.format.keyword_upper": "Ключевые слова в верхнем регистре",
"query_editor.format.keyword_lower": "Ключевые слова в нижнем регистре",
"query_editor.format.snippet_settings": "Настройки сниппетов...",
"query_editor.format.shortcut_settings": "Настройки сочетаний клавиш...",
"query_editor.message.format_failed": "Ошибка форматирования: возможно, синтаксис SQL неверен.",
"query_editor.message.refresh_failed": "Не удалось обновить: {{error}}",
"query_editor.message.select_database_first": "Сначала выберите базу данных.",
"query_editor.message.connection_not_found": "Подключение не найдено.",
"query_editor.message.unsupported_source": "Этот источник данных не поддерживает редактор SQL-запросов. Используйте соответствующую страницу.",
"query_editor.message.no_executable_sql": "Нет SQL для выполнения.",
"query_editor.message.no_selectable_sql": "Нет SQL-инструкции для выбора.",
"query_editor.message.statement_failed_prefix": "Ошибка в инструкции {{index}}: ",
"query_editor.message.execution_success": "Выполнение успешно.",
"query_editor.message.execution_multi_success": "Выполнено инструкций: {{statements}}, создано наборов результатов: {{results}}.",
"query_editor.message.execution_result_sets_success": "Выполнение завершено, создано наборов результатов: {{results}}.",
"query_editor.message.execution_failed_with_error": "Ошибка выполнения запроса: {{error}}",
"query_editor.message.cancel_no_running": "Нет выполняющегося запроса для отмены.",
"query_editor.message.cancel_success": "Запрос отменен.",
"query_editor.message.cancel_failed": "Не удалось отменить запрос: {{error}}",
"query_editor.message.read_only_no_safe_locator": "Первичный ключ или подходящий уникальный индекс не обнаружен, поэтому изменения нельзя безопасно зафиксировать.",
"query_editor.message.read_only_index_metadata_unavailable": "Не удалось загрузить метаданные уникального индекса, поэтому изменения нельзя безопасно зафиксировать.",
"query_editor.message.read_only_table_locator_metadata_unavailable": "Не удалось загрузить метаданные первичного ключа/уникального индекса для {{table}}, поэтому изменения нельзя безопасно зафиксировать.",
"query_editor.message.read_only_oracle_rowid_injection_unavailable": "В Oracle-запросе используется *, поэтому столбец-локатор ROWID не удалось автоматически внедрить. Результат остается только для чтения.",
"query_editor.message.read_only_warning_with_detail": "Результаты запроса остаются доступными только для чтения: {{detail}}",
"query_editor.message.object_info_target_not_found": "Текущий курсор не указывает на распознанную таблицу или колонку.",
"query_editor.message.insert_success": "Код вставлен в текущую позицию курсора.",
"query_editor.message.append_success": "Код добавлен.",
"query_editor.message.saved": "Запрос сохранен.",
"query_editor.message.sql_file_saved": "SQL-файл сохранен.",
"query_editor.message.save_sql_file_failed": "Не удалось сохранить SQL-файл: {{error}}",
"query_editor.message.export_sql_file_success": "Файл SQL экспортирован.",
"query_editor.message.export_sql_file_failed": "Не удалось экспортировать файл SQL: {{error}}",
"query_editor.message.save_first_before_rename": "Сначала сохраните запрос, а затем переименуйте его.",
"query_editor.message.renamed": "Запрос переименован.",
"query_editor.empty_state.title": "Ожидание выполнения SQL",
"query_editor.empty_state.description": "Запустите запрос, и результаты отобразятся ниже в новой таблице данных.",
"query_editor.result.tab_title": "Результат {{index}} ({{count}})",
"query_editor.result.tab_title_success": "Результат {{index}} ✓",
"query_editor.result.close": "Закрыть результат",
"query_editor.result.execution_success": "Выполнение успешно",
"query_editor.result.affected_rows": "Затронуто строк: {{count}}",
"query_editor.result.execution_failed": "Ошибка выполнения",
"query_editor.result.ai_diagnose": "AI-диагностика",
"query_editor.save_modal.title": "Сохранить запрос",
"query_editor.save_modal.rename_title": "Переименовать запрос",
"query_editor.save_modal.rename_ok": "Переименовать",
"query_editor.save_modal.name_label": "Имя запроса",
"query_editor.save_modal.name_required": "Введите имя запроса.",
"query_editor.save_modal.name_placeholder": "Например: запросить всех пользователей",
"query_editor.save_modal.unnamed": "Запрос без имени",
"query_editor.ai_prompt.default_source": "База данных",
"query_editor.ai_prompt.default_database": "По умолчанию",
"query_editor.ai_prompt.context": "Контекст: {{type}} {{name}}, выбранная база данных {{database}}.\n",
"query_editor.ai_prompt.generate": "Сгенерируй запрос на основе текущей схемы базы данных.",
"query_editor.ai_prompt.explain": "Объясни логику выполнения этой SQL-инструкции:\n```sql\n{{sql}}\n```",
"query_editor.ai_prompt.optimize": "Проанализируй эту SQL-инструкцию на проблемы производительности и предложи оптимизацию:\n```sql\n{{sql}}\n```",
"query_editor.ai_prompt.schema": "Проанализируй текущую схему базы данных и предложи улучшения производительности и дизайна.",
"query_editor.ai_prompt.diagnose": "При выполнении этого SQL возникла ошибка:\n```sql\n{{sql}}\n```\n\nБаза данных вернула ошибку:\n```text\n{{error}}\n```\n\nПроанализируй причину и предложи исправление.",
"query_editor.slash_command.query.label": "Запрос на естественном языке",
"query_editor.slash_command.query.description": "Опишите, что нужно запросить",
"query_editor.slash_command.query.prompt": "Напиши SQL-запрос для этого требования:",
"query_editor.slash_command.sql.label": "Сгенерировать SQL",
"query_editor.slash_command.sql.description": "Описать требование и сгенерировать инструкцию",
"query_editor.slash_command.sql.prompt": "Сгенерируй SQL для этого требования:",
"query_editor.slash_command.explain.label": "Объяснить SQL",
"query_editor.slash_command.explain.description": "Объяснить логику выбранного SQL",
"query_editor.slash_command.explain.prompt": "Объясни логику выполнения этой SQL-инструкции:\n```sql\n{{sql}}\n```",
"query_editor.slash_command.optimize.label": "Анализ оптимизации",
"query_editor.slash_command.optimize.description": "Проанализировать узкие места производительности SQL",
"query_editor.slash_command.optimize.prompt": "Проанализируй эту SQL-инструкцию на проблемы производительности и предложи оптимизацию:\n```sql\n{{sql}}\n```",
"query_editor.slash_command.schema.label": "Ревью дизайна таблиц",
"query_editor.slash_command.schema.description": "Проверить качество структуры таблиц",
"query_editor.slash_command.schema.prompt": "Проверь дизайн связанных таблиц, включая типы полей, нормализацию, индексы и предложения по улучшению.",
"query_editor.slash_command.index.label": "Рекомендации по индексам",
"query_editor.slash_command.index.description": "Рекомендовать стратегию индексов",
"query_editor.slash_command.index.prompt": "На основе текущей структуры таблиц и типичных сценариев запросов предложи стратегию индексов и при необходимости добавь SQL.",
"query_editor.slash_command.diff.label": "Сравнение таблиц",
"query_editor.slash_command.diff.description": "Сравнить различия таблиц и создать изменения",
"query_editor.slash_command.diff.prompt": "Сравни структуры двух таблиц и сгенерируй ALTER-инструкции для миграции со старой версии на новую.",
"query_editor.slash_command.mock.label": "Тестовые данные",
"query_editor.slash_command.mock.description": "Сгенерировать тестовые INSERT-данные",
"query_editor.slash_command.mock.prompt": "Сгенерируй 10 осмысленных тестовых INSERT-строк для связанной таблицы.",
"query_editor.completion.detail.aggregate": "Агрегатная функция",
"query_editor.completion.detail.string": "Строковая функция",
"query_editor.completion.detail.math": "Математическая функция",
"query_editor.completion.detail.date_time": "Функция даты и времени",
"query_editor.completion.detail.conditional": "Условная функция",
"query_editor.completion.detail.conversion": "Функция преобразования типа",
"query_editor.completion.detail.json": "JSON-функция",
"query_editor.completion.detail.utility": "Служебная функция",
"query_editor.completion.detail.info": "Информационная функция",
"query_editor.completion.detail.window": "Оконная функция",
"query_editor.completion.detail.sql_function": "SQL-функция",
"query_editor.completion.detail.aggregate_count": "Агрегат - подсчет",
"query_editor.completion.detail.string_concat": "Строка - конкатенация",
"query_editor.completion.detail.math_abs": "Математика - абсолютное значение",
"query_editor.completion.detail.date_now": "Дата - текущая дата и время",
"query_editor.completion.detail.conditional_if": "Условие - IF",
"query_editor.completion.detail.conversion_cast": "Преобразование - приведение типа",
"query_editor.completion.detail.json_extract": "JSON - извлечь значение",
"query_editor.completion.detail.crypto_md5": "Хеш - MD5",
"query_editor.completion.detail.info_database": "Информация - текущая база данных",
"query_editor.completion.detail.window_row_number": "Окно - номер строки",
"query_editor.completion.detail.modifier_distinct": "Модификатор - уникальные значения",
"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": "версия",
"data_grid.action.apply": "Применить",
"data_grid.ai_prompt.analyze_page": "Проанализируй следующие данные результата запроса (первые {{count}} строк-образцов):\n```json\n{{json}}\n```\n\nОпредели особенности данных, найди закономерности или дай бизнес-выводы.",
"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.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.column_quick_find.placeholder": "Перейти к столбцу...",
"data_grid.column_quick_find.tooltip": "Введите имя столбца, затем нажмите Enter или кнопку перехода, чтобы перейти к этому столбцу",
"data_grid.ai_insight.prompt": "Проанализируй следующие результаты запроса (первые {{count}} строк примера):\n```json\n{{json}}\n```\n\nПроанализируй характеристики данных, найди закономерности или предложи бизнес-инсайты.",
"data_grid.datetime_picker.now": "Сейчас",
"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.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_data": "Копировать данные строки",
"data_grid.context_menu.current_marker": "Текущий",
"data_grid.context_menu.current_row": "Текущая строка",
"data_grid.context_menu.current_cell": "Текущая ячейка",
"data_grid.context_menu.edit_section": "Редактировать",
"data_grid.context_menu.edit_row": "Редактировать эту строку",
"data_grid.context_menu.copy_row_as_new": "Копировать эту строку как новую",
"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.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.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.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.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.selected_rows": "Экспорт выбранных строк ({{count}})",
"data_grid.table_fallback.query_result": "Результат запроса",
"data_grid.metadata_view.fields_badge": "Поля",
"data_grid.metadata_view.er_table_badge": "Таблица",
"data_grid.metadata_view.er_field_badge": "Поле",
"data_grid.metadata_view.field_count": "{{count}} полей",
"data_grid.metadata_view.column_name": "Имя",
"data_grid.metadata_view.column_type": "Тип",
"data_grid.metadata_view.default_value": "Значение по умолчанию",
"data_grid.metadata_view.comment": "Комментарий",
"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.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_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.current_field_not_editable": "Текущее поле недоступно для редактирования",
"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_safe_locator": "Для текущего результата нет безопасного способа определить строку, поэтому изменения нельзя отправить.",
"data_grid.message.no_filter_applied": "Сейчас не применено ни одно условие фильтра",
"data_grid.message.no_rows_selected": "Строки не выбраны",
"data_grid.message.no_other_rows_to_fill": "Нет других выбранных строк, которые можно заполнить",
"data_grid.message.no_pasteable_editable_fields": "Нет редактируемых полей, которые можно вставить",
"data_grid.message.no_pasteable_rows": "Нет строк, которые можно вставить",
"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.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.message.result_set_no_copyable_content": "В текущем наборе результатов нет копируемого содержимого",
"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_viewer.message.result_not_ready": "Текущий набор результатов еще не готов. Сначала загрузите данные один раз.",
"data_viewer.message.query_failed": "Ошибка запроса",
"data_viewer.message.query_timeout": "Запрос превысил тайм-аут подключения и был прерван. Увеличьте тайм-аут подключения или сократите область запроса и повторите попытку.",
"data_viewer.message.duckdb_query_timeout": "Запрос DuckDB превысил тайм-аут подключения и был прерван. Увеличьте тайм-аут подключения или сократите область сортировки/фильтрации и повторите попытку.",
"data_viewer.message.connection_not_found": "Подключение не найдено",
"data_viewer.message.fetch_data_failed_detail": "Ошибка при получении данных: {{detail}}",
"data_viewer.message.total_count_failed": "Не удалось подсчитать общее количество строк",
"data_viewer.message.total_count_failed_detail": "Не удалось подсчитать общее количество строк: {{detail}}",
"data_viewer.message.total_count_parse_failed": "Не удалось разобрать результат подсчета общего количества строк",
"data_viewer.message.mongo_filter_invalid_detail": "Недопустимое условие фильтра MongoDB: {{detail}}",
"data_viewer.message.mongo_filter_parse_failed": "Не удалось разобрать",
"data_viewer.message.sort_buffer_retry_succeeded": "Буфер сортировки был автоматически увеличен, повторный запрос выполнен успешно.",
"data_viewer.read_only.reason.mongo_id_missing": "В наборе результатов MongoDB отсутствует _id, поэтому изменения нельзя безопасно отправить.",
"data_viewer.read_only.reason.metadata_unavailable": "Не удалось загрузить метаданные первичного ключа или уникального индекса, поэтому изменения нельзя безопасно отправить.",
"data_viewer.read_only.reason.index_metadata_unavailable": "Не удалось загрузить метаданные уникального индекса, поэтому изменения нельзя безопасно отправить.",
"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.table": "Таблица {{target}} остается только для чтения: {{reason}}",
"data_viewer.read_only.warning.collection": "Коллекция {{target}} остается только для чтения: {{reason}}",
"data_viewer.sql_log.phase.main_query": "Основной запрос",
"data_viewer.sql_log.phase.complex_type_fallback_retry": "Повтор с резервной обработкой сложного типа",
"data_viewer.sql_log.phase.sort_buffer_retry": "Повтор ({{size}} sort_buffer)",
"definition_viewer.object.view": "Представление",
"definition_viewer.object.materialized_view": "Материализованное представление",
"definition_viewer.object.routine": "Функция/процедура",
"definition_viewer.object.event": "Событие",
"definition_viewer.loading.view_definition": "Загрузка определения представления...",
"definition_viewer.loading.routine_definition": "Загрузка определения функции/процедуры...",
"definition_viewer.loading.event_definition": "Загрузка определения события...",
"definition_viewer.error.load_failed": "Не удалось загрузить",
"definition_viewer.error.connection_not_found": "Подключение к базе данных не найдено",
"definition_viewer.error.view_name_empty": "Имя представления пустое",
"definition_viewer.error.event_name_empty": "Имя события пустое",
"definition_viewer.error.routine_name_empty": "Имя функции/процедуры пустое",
"definition_viewer.error.query_failed": "Не удалось запросить определение",
"definition_viewer.error.query_failed_detail": "Не удалось запросить определение: {{detail}}",
"definition_viewer.field.database": "База данных",
"definition_viewer.field.type": "Тип",
"definition_viewer.editor.unsupported_view_definition": "Этот тип базы данных не поддерживает просмотр определений представлений",
"definition_viewer.editor.unsupported_sqlite_routine_definition": "SQLite не поддерживает управление определениями функций/процедур",
"definition_viewer.editor.unsupported_routine_definition": "Этот тип базы данных не поддерживает просмотр определений функций/процедур",
"definition_viewer.editor.unsupported_event_definition": "Этот тип базы данных не поддерживает просмотр определений событий",
"definition_viewer.editor.unsupported_object_definition": "Просмотр определения этого объекта не поддерживается",
"definition_viewer.editor.view_definition_not_found": "Определение представления не найдено",
"definition_viewer.editor.routine_definition_not_found": "Определение функции/процедуры не найдено",
"definition_viewer.editor.event_definition_not_found": "Определение события не найдено",
"definition_viewer.editor.object_definition_not_found": "Определение {{object}} не найдено",
"definition_viewer.editor.metadata_fallback.header": "Текущий источник данных не вернул исполняемый текст определения; возвращены метаданные",
"definition_viewer.editor.metadata_fallback.name_label": "Имя",
"definition_viewer.editor.metadata_fallback.type_label": "Тип",
"definition_viewer.editor.event_fragment_fallback.header": "Текущий источник данных не вернул полный оператор CREATE EVENT; возвращен фрагмент определения события",
"definition_viewer.editor.sphinx.empty_result": "Текущий экземпляр Sphinx{{version}} не вернул определение {{object}}.",
"definition_viewer.editor.sphinx.compat_queries_hint": "Было выполнено несколько совместимых запросов. Причиной могут быть ограничения версии или неподдерживаемый тип объекта.",
"definition_viewer.editor.sphinx.unsupported_query": "Текущий экземпляр Sphinx{{version}} не поддерживает запрос определений {{object}}.",
"definition_viewer.editor.sphinx.failed_message_label": "Возвращенное сообщение об ошибке",
"definition_viewer.editor.sphinx.failed_message_unknown": "Возвращенное сообщение об ошибке: неизвестная ошибка",
"definition_viewer.editor.sphinx.version_suffix": " (версия: {{version}})",
"trigger_viewer.loading.definition": "Загрузка определения триггера...",
"trigger_viewer.error.load_failed": "Не удалось загрузить",
"trigger_viewer.error.connection_not_found": "Подключение к базе данных не найдено",
"trigger_viewer.error.trigger_name_empty": "Имя триггера пустое",
"trigger_viewer.error.query_failed": "Не удалось запросить определение триггера",
"trigger_viewer.error.query_failed_detail": "Не удалось запросить определение триггера: {{detail}}",
"trigger_viewer.field.trigger": "Триггер",
"trigger_viewer.field.database": "База данных",
"trigger_viewer.editor.unsupported.duckdb": "DuckDB не поддерживает триггеры",
"trigger_viewer.editor.unsupported.tdengine": "TDengine не поддерживает триггеры",
"trigger_viewer.editor.unsupported.mongodb": "MongoDB не поддерживает триггеры",
"trigger_viewer.editor.unsupported.generic": "Этот тип базы данных не поддерживает просмотр определений триггеров",
"trigger_viewer.editor.definition_not_found": "Определение триггера не найдено",
"trigger_viewer.editor.sphinx.version_suffix": " (версия: {{version}})",
"trigger_viewer.editor.sphinx.empty_result": "Текущий экземпляр Sphinx{{version}} не вернул определение триггера.",
"trigger_viewer.editor.sphinx.compat_queries_hint": "Выполнено несколько совместимых запросов. Причиной могут быть ограничения версии или неподдерживаемый тип объекта.",
"trigger_viewer.editor.sphinx.unsupported_query": "Текущий экземпляр Sphinx{{version}} не поддерживает запрос определений триггеров.",
"trigger_viewer.editor.sphinx.failed_message_label": "Возвращенное сообщение об ошибке",
"trigger_viewer.editor.sphinx.failed_message_unknown": "Возвращенное сообщение об ошибке: неизвестная ошибка",
"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.preview_panel.no_cell_description": "Нажмите ячейку таблицы, чтобы посмотреть полные данные",
"data_grid.preview_panel.no_cell_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.pagination.jump_action": "ОК",
"data_grid.pagination.jump_aria": "Перейти на страницу",
"data_grid.pagination.jump_label": "Перейти",
"data_grid.pagination.page.current": "Страница {{current}}",
"data_grid.pagination.page.known": "Страница {{current}} / {{totalPages}}",
"data_grid.pagination.page_size_aria": "Строк на странице",
"data_grid.pagination.page_size_option": "{{count}} строк / страница",
"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.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.pending_changes": "Не отправлено {{count}}",
"data_grid.secondary.row_count": "{{count}} строк",
"data_grid.secondary.view_ddl": "Показать DDL",
"data_grid.row_editor.popup_edit": "Редактировать во всплывающем окне",
"data_grid.row_editor.title": "Редактировать строку",
"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_label": "Зафиксировать транзакцию",
"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": "Текст",
"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.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_created": "Индекс создан",
"table_designer.message.index_create_sql_unavailable": "Не удалось получить SQL создания индекса",
"table_designer.message.index_create_sql_placeholder": "SQL создания индекса пока недоступен",
"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.duckdb.comment_hint": "-- DuckDB не может сохранять комментарии столбцов через COMMENT ON COLUMN. Комментарий для столбца {{column}} останется только в предпросмотре дизайнера.",
"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.starrocks.table_kind.olap": "OLAP-таблица",
"table_designer.starrocks.table_kind.external": "Внешняя таблица",
"table_designer.starrocks.key_model.duplicate": "Дублирующий ключ",
"table_designer.starrocks.key_model.unique": "Уникальный ключ",
"table_designer.starrocks.key_model.aggregate": "Агрегатный ключ",
"table_designer.starrocks.placeholder.key_columns": "Ключевые столбцы, например id, date",
"table_designer.starrocks.placeholder.partition_clause": "Секция партиционирования, например PARTITION BY RANGE(date_col)(...)",
"table_designer.starrocks.distribution.hash": "Хеш-распределение",
"table_designer.starrocks.distribution.random": "Случайное распределение",
"table_designer.starrocks.distribution.none": "Без распределения",
"table_designer.starrocks.placeholder.distribution_columns": "Столбцы распределения, например user_id",
"table_designer.starrocks.bucket_mode.auto": "Авточисло сегментов",
"table_designer.starrocks.bucket_mode.number": "Фиксированное число сегментов",
"table_designer.starrocks.placeholder.bucket_count": "Число сегментов",
"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.drop": "Удаление",
"table_designer.sql_preview.change.modify": "Изменение свойств столбца",
"table_designer.sql_preview.change.rename": "Переименование",
"table_designer.summary.indexes": "Индексов: {{count}}, индексных полей: {{fields}}",
"table_designer.summary.columns": "{{count}} столбцов",
"table_designer.status.read_only": "Только чтение",
"table_designer.title.untitled_table": "Таблица без имени",
"table_designer.title.default_database": "База данных по умолчанию",
"table_designer.title.schema_designer": "Конструктор схемы",
"table_designer.tab.columns": "Столбцы",
"table_designer.tab.foreign_keys": "Внешние ключи",
"table_designer.tab.indexes": "Индексы",
"table_designer.tab.triggers": "Триггеры",
"table_designer.table_comment.current": "Текущий комментарий: {{comment}}",
"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",
"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.backend.message.connect_success": "Подключение выполнено",
"redis.backend.message.set_success": "Значение задано",
"redis.backend.message.select_db_success": "База данных переключена",
"redis.backend.message.rename_success": "Переименование выполнено",
"redis.backend.message.delete_success": "Удаление выполнено",
"redis.backend.message.add_success": "Добавление выполнено",
"redis.backend.message.flush_success": "Очистка выполнена",
"redis.backend.error.command_required": "Command не может быть пустым",
"redis.backend.error.argument_required": "{{name}} обязателен",
"redis.backend.error.argument_invalid_type": "{{name}} имеет недопустимый тип",
"redis.backend.error.address_required": "Адрес подключения Redis не может быть пустым",
"redis.backend.error.node_address_required": "Адрес узла Redis не может быть пустым",
"redis.backend.error.invalid_node_address": "Недопустимый адрес узла Redis: {{address}}",
"redis.backend.error.invalid_port": "Недопустимый порт Redis: {{address}}",
"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.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.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": "Режим просмотра",
"ai_chat.header.default_session_title": "Новый чат",
"ai_chat.header.export_time": "Время экспорта:",
"ai_chat.header.export_user": "Вы",
"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.header.session.connected": "{{title}} · Подключено",
"ai_chat.header.mode_tabs.aria_label": "Режим работы AI",
"ai_chat.header.mode.chat": "Чат",
"ai_chat.header.mode.insights": "Автоинсайты",
"ai_chat.header.mode.history": "История",
"ai_chat.header.action.export": "Экспорт",
"ai_chat.history.action.new_chat": "Начать новый чат",
"ai_chat.history.default_session_title": "Новый чат",
"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.welcome.description.default": "Я ваш помощник по базам данных. Я могу помочь создавать SQL-запросы, анализировать схемы, объяснять логику выполнения и оптимизировать производительность базы данных.",
"ai_chat.welcome.description.with_context": "Связано структур таблиц: {{count}}. Используйте быстрые действия ниже, чтобы начать анализ.",
"ai_chat.welcome.title": "Здравствуйте, я GoNavi AI",
"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.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.input.action.send": "Отправить",
"ai_chat.input.action.stop": "Остановить генерацию",
"ai_chat.input.context.connection_tooltip": "Текущий контекст запроса данных",
"ai_chat.input.context.memory_tooltip": "Использование памяти текущего сеанса. При достижении лимита {{limit}} начнется автоматическое сжатие.",
"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_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": "Введите сообщение... (Enter — отправить, Shift+Enter — новая строка, / — команды)",
"ai_chat.input.slash.diff.desc": "Сравнить две таблицы и создать изменения",
"ai_chat.input.slash.diff.label": "🔄 Сравнение таблиц",
"ai_chat.input.slash.diff.prompt": "Сравните различия структуры этих двух таблиц и создайте ALTER-выражения для миграции со старой версии на новую:",
"ai_chat.input.slash.explain.desc": "Объяснить логику выбранного SQL",
"ai_chat.input.slash.explain.label": "💡 Объяснить SQL",
"ai_chat.input.slash.explain.prompt": "Объясните логику выполнения этого SQL и назначение каждого шага:\n```sql\n\n```",
"ai_chat.input.slash.index.desc": "Рекомендовать оптимальный план индексов",
"ai_chat.input.slash.index.label": "📊 Рекомендации по индексам",
"ai_chat.input.slash.index.prompt": "Рекомендуйте оптимальный план индексов на основе текущей структуры таблиц и типовых сценариев запросов, а также предоставьте DDL:",
"ai_chat.input.slash.mock.desc": "Создать тестовые данные 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.label": "⚡ Анализ оптимизации",
"ai_chat.input.slash.optimize.prompt": "Проанализируйте этот SQL на проблемы производительности и предоставьте оптимизированную версию:\n```sql\n\n```",
"ai_chat.input.slash.query.desc": "Опишите, что хотите запросить",
"ai_chat.input.slash.query.label": "🔍 Запрос на естественном языке",
"ai_chat.input.slash.query.prompt": "Напишите SQL-запрос:",
"ai_chat.input.slash.schema.desc": "Оценить качество проектирования таблиц",
"ai_chat.input.slash.schema.label": "🏗️ Ревью дизайна таблиц",
"ai_chat.input.slash.schema.prompt": "Проведите ревью текущего связанного дизайна таблиц, включая типы полей, нормализацию, стратегию индексов и предложения по улучшению:",
"ai_chat.input.slash.sql.desc": "Описать требования и создать выражения",
"ai_chat.input.slash.sql.label": "📝 Создать SQL",
"ai_chat.input.slash.sql.prompt": "Создайте SQL по следующим требованиям:",
"ai_chat.input.tooltip.attach_table_context": "Добавить контекст таблиц базы данных",
"ai_chat.input.tooltip.upload_image": "Загрузить изображение или скриншот",
"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.message.action.copy_full": "Копировать весь текст",
"ai_chat.message.action.copied": "Скопировано",
"ai_chat.message.action.delete": "Удалить сообщение",
"ai_chat.message.action.edit": "Редактировать это сообщение, удалить последующие записи и отправить заново",
"ai_chat.message.action.retry": "Сгенерировать заново из предыдущего сообщения пользователя",
"ai_chat.message.action.copy_error_raw": "Копировать исходный текст ошибки",
"ai_chat.message.action.copied_error_raw": "Исходный текст ошибки скопирован",
"ai_chat.message.role.user": "Вы",
"ai_chat.message.image_alt": "Вложенное изображение {{index}}",
"ai_chat.message.code.copy": "Копировать код",
"ai_chat.message.code.copied": "Скопировано",
"ai_chat.message.code.insert": "Вставить",
"ai_chat.message.code.insert_tooltip": "Вставить этот SQL в рабочую область запросов для быстрого изменения или выполнения",
"ai_chat.message.code.execute": "Выполнить",
"ai_chat.message.code.execute_tooltip": "Выполнить сейчас с учетом политики безопасности AI",
"ai_chat.message.code.executing": "Выполняется...",
"ai_chat.message.code.preview": "Предпросмотр",
"ai_chat.message.code.preview_tooltip": "Просмотреть результаты запроса в чате, максимум 20 строк",
"ai_chat.message.code.expand_all": "Развернуть весь код",
"ai_chat.message.code.collapse": "Свернуть код",
"ai_chat.message.code.preview_result": "Результат предпросмотра (строк: {{rows}}, столбцов: {{columns}})",
"ai_chat.message.code.preview_collapse": "Свернуть",
"ai_chat.message.code.view_result": "Показать результат (строк: {{rows}})",
"ai_chat.message.code.query_no_result": "Запрос не вернул результатов",
"ai_chat.message.code.execute_failed": "Выполнение не удалось",
"ai_chat.message.security.blocked": "🔒 Политика безопасности заблокировала этот SQL: текущий уровень безопасности не разрешает операции {{operationType}}. Измените уровень безопасности в настройках AI.",
"ai_chat.message.security.confirm_title": "⚠️ Подтверждение безопасности",
"ai_chat.message.security.default_warning": "Этот SQL является операцией {{operationType}}. Выполнить?",
"ai_chat.message.security.confirm_execute": "Выполнить",
"ai_chat.message.thinking.title": "Ход рассуждений",
"ai_chat.message.thinking.active": "Идет рассуждение...",
"ai_chat.message.thinking.count": "({{count}} симв.)",
"ai_chat.message.tool_result.title": "Результат проверки ({{name}})",
"ai_chat.message.tool_result.char_count": "{{count}} симв.",
"ai_chat.message.tool_result.no_data": "Нет данных",
"ai_chat.message.tool_call.get_connections": "Загрузить доступные подключения",
"ai_chat.message.tool_call.get_databases": "Сканировать список баз данных",
"ai_chat.message.tool_call.get_tables": "Анализировать сведения о структуре таблиц",
"ai_chat.message.tool_call.get_columns": "Прочитать список столбцов",
"ai_chat.message.tool_call.get_table_ddl": "Прочитать выражение CREATE TABLE",
"ai_chat.message.tool_call.execute_sql": "Выполнить SQL-запрос",
"ai_chat.message.tool_call.running": "Выполняются проверки данных...",
"ai_chat.message.tool_call.done": "Проверки данных завершены ({{count}})",
"ai_chat.message.wait.connecting": "Подключение",
"ai_chat.message.jvm.apply_preview": "Применить к предпросмотру JVM",
"ai_chat.message.jvm.apply_diagnostic": "Применить к диагностической консоли",
"ai_chat.message.jvm.missing_plan_context": "В этом плане JVM отсутствует контекст исходной вкладки. Сгенерируйте его заново на целевой странице ресурса JVM.",
"ai_chat.message.jvm.plan_target_not_found": "Не найдена вкладка ресурса, соответствующая этому плану JVM. Откройте исходный целевой ресурс перед применением.",
"ai_chat.message.jvm.missing_diagnostic_context": "В этом диагностическом плане отсутствует контекст исходной вкладки. Сгенерируйте его заново в целевой диагностической консоли.",
"ai_chat.message.jvm.diagnostic_target_not_found": "Не найдена вкладка диагностической консоли, соответствующая этому плану. Откройте исходную целевую консоль перед применением.",
"ai_chat.message.mermaid.parse_failed": "Не удалось разобрать Mermaid: {{detail}}",
"ai_chat.message.mermaid.render_failed": "Ошибка отрисовки Mermaid: {{detail}}",
"ai_chat.panel.history.empty": "Истории чатов пока нет",
"ai_chat.panel.insight.context.linked_title": "Связано таблиц: {{count}}",
"ai_chat.panel.insight.context.empty_title": "Структура таблиц пока не связана",
"ai_chat.panel.insight.context.linked_body": "В этот диалог включен контекст структуры для {{tables}}.",
"ai_chat.panel.insight.context.empty_body": "При открытии AI со страницы таблицы текущая таблица связывается автоматически. Контекст также можно добавить вручную над полем ввода.",
"ai_chat.panel.insight.context.table_separator": ", ",
"ai_chat.panel.insight.context.more_tables_suffix": " и другие таблицы",
"ai_chat.panel.insight.query.slowest_title": "Самый медленный недавний запрос {{duration}}ms",
"ai_chat.panel.insight.query.empty_title": "Пока нет образцов длительности запросов",
"ai_chat.panel.insight.query.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.status.empty_body": "Журналов SQL пока нет.",
"ai_chat.panel.insight.write.detected_title": "Обнаружено операций записи: {{count}}",
"ai_chat.panel.insight.write.readonly_title": "Сейчас основной режим - анализ только для чтения",
"ai_chat.panel.insight.write.detected_body": "Для SQL с записью перед фиксацией лучше сгенерировать предпросмотр и операторы отката.",
"ai_chat.panel.insight.write.readonly_body": "По умолчанию AI сначала объясняет, генерирует SELECT, анализирует Schema и оптимизирует индексы.",
"ai_chat.panel.render_error.title": "Это сообщение AI не удалось отрисовать, поэтому оно изолировано",
"ai_chat.panel.render_error.description": "Остальная переписка остается доступной. Можно удалить это проблемное сообщение и продолжить.",
"ai_chat.panel.render_error.unknown": "Неизвестная ошибка отрисовки",
"ai_chat.panel.render_error.retry": "Повторить отрисовку",
"ai_chat.panel.render_error.delete": "Удалить это сообщение",
"ai_chat.panel.status.memory_compressing": "⚙️ Диалог перегружен. Запускается сжатие памяти...",
"ai_chat.panel.status.memory_compress_failed": "❌ Сжатие памяти не удалось. Продолжаем с исходным контекстом...",
"ai_chat.panel.status.memory_summary": "[Автоматическое перестроение памяти] Длинная история сжата в резюме:\n\n{{summary}}",
"ai_chat.panel.status.memory_probe_summary": "[Автоматическое перестроение памяти] Длинная история проверок и чат сжаты в резюме:\n\n{{summary}}",
"ai_chat.panel.prompt.memory_summary": "Это история слишком длинного диалога. Чтобы освободить место в контексте и сохранить ядро памяти, внимательно прочитай ее и подготовь сильно сжатое структурированное резюме на основе технических фактов, исследованного состояния структур данных, центрального запроса пользователя и текущего прогресса.\nПримечания:\n1. Будь объективным и точным; не пропускай важную бизнес-логику и найденные имена таблиц/полей.\n2. Убери незначимые шаги выполнения, вежливые фразы и сами JSON-возвраты.\n3. Удерживай объем примерно в 1000-2000 слов и выводи только сжатый Markdown.\n4. Начинай сразу с резюме; не добавляй приветствия.",
"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.jvm_diagnostic.policy.read_only": "По умолчанию отвечай в режиме диагностики только для чтения; генерируй только команды observe, trace и устранения неполадок и не предполагай, что что-либо уже выполнено.",
"ai_chat.panel.jvm_diagnostic.policy.plan_first": "Диагностические команды можно генерировать, но всегда сначала давай план и оставляй пользователю решение о выполнении.",
"ai_chat.panel.jvm_diagnostic.permission.allowed": "разрешено",
"ai_chat.panel.jvm_diagnostic.permission.forbidden": "запрещено",
"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.jvm_runtime.policy.read_only": "Подключение только для чтения; только анализируй и генерируй планы изменений, и никогда не предполагай, что записи уже выполнены.",
"ai_chat.panel.jvm_runtime.policy.preview_required": "Подключение доступно для записи, но каждое изменение должно сначала создать предпросмотр и дождаться подтверждения человеком.",
"ai_chat.panel.jvm_runtime.resource_path.current": "Текущий resourcePath: {{resourcePath}}",
"ai_chat.panel.jvm_runtime.resource_path.missing": "Конкретный resourcePath сейчас не выбран.",
"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_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.prompt.sql.no_connections": "Ты профессиональный помощник по базам данных. Сейчас в приложении нет доступных подключений к базам данных.\n\nЕсли вопрос пользователя требует структуры базы данных или SQL, сначала объясни, что get_connections, get_databases, get_tables и get_columns не могут получить реальные сведения о базе без существующего подключения, затем попроси пользователя создать подключение и повторить попытку. Не угадывай connectionId, dbName, имена таблиц или имена полей.\n\nНа общие вопросы, не связанные с запросами к базе данных, отвечай обычно.",
"ai_chat.panel.model_control.force_tool_call": "Используй function call напрямую, чтобы вызвать инструмент и выполнить операцию; не ограничивайся текстовым описанием плана.",
"ai_chat.panel.model_control.continue_after_summary": "На основе последнего состояния и результатов исследования выше продолжи незавершенный анализ или выполни следующий шаг.",
"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_tables.description": "После того как целевое подключение и dbName известны, если пользователь спрашивает о таблице или неявно упоминает ее, но точный tableName неизвестен, вызови этот инструмент, чтобы получить список всех имен таблиц в этой базе данных (только имена таблиц) и определить целевую таблицу.",
"ai_chat.panel.local_tool.get_columns.description": "Получает список field для указанной таблицы, включая имена field, типы, признак NULL, значения по умолчанию, комментарии и другие метаданные. Перед генерацией SQL обязательно вызови этот инструмент, чтобы подтвердить реальные имена field; не угадывай имена field.",
"ai_chat.panel.local_tool.get_table_ddl.description": "Получает полный CREATE TABLE DDL для указанной таблицы, включая fields, индексы, ограничения и полную информацию о структуре.",
"ai_chat.panel.local_tool.execute_sql.description": "Выполняет SQL-запрос в указанном подключении и базе данных, затем возвращает результат. Управляется уровнем безопасности: в режиме только для чтения разрешены только SELECT/SHOW/DESCRIBE и похожие операции запроса. Возвращает не более 50 строк.",
"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.table_name": "tableName (имя таблицы)",
"ai_chat.panel.local_tool.param.sql": "SQL-выражение для выполнения",
"ai_chat.panel.tool_error.connection_not_found": "Подключение не найдено",
"ai_chat.panel.tool_error.unknown_function": "Неизвестная функция: {{functionName}}",
"ai_chat.panel.tool_error.fetch_databases_failed": "Не удалось получить список баз данных: {{detail}}",
"ai_chat.panel.tool_error.fetch_tables_failed": "Не удалось получить список таблиц: {{detail}}",
"ai_chat.panel.tool_result.columns_exact_fields": "⚠️ Ниже приведен точный список полей таблицы {{tableName}}. При создании SQL используй только эти значения field как имена столбцов, строго без изменений. Не изменяй, не сокращай и не придумывай имена полей.\nДоступные поля: {{fieldNames}}\nПодробности: {{detailJson}}",
"ai_chat.panel.tool_error.fetch_columns_failed": "Не удалось получить список столбцов: {{detail}}",
"ai_chat.panel.tool_error.fetch_table_ddl_failed": "Не удалось получить выражение CREATE TABLE: {{detail}}",
"ai_chat.panel.tool_error.sql_blocked": "Политика безопасности заблокировала этот запрос: текущий уровень безопасности не разрешает {{operationType}} SQL. Покажите SQL пользователю и попросите выполнить его вручную.",
"ai_chat.panel.tool_error.sql_execute_failed": "Не удалось выполнить SQL",
"ai_chat.panel.tool_error.sql_execute_exception": "Исключение при выполнении SQL: {{detail}}",
"ai_chat.panel.error.unknown": "Неизвестная ошибка",
"ai_chat.panel.error.http_server": "Ошибка сервера HTTP {{code}}",
"ai_chat.panel.error.html_response": "Сервер вернул необычный HTML-ответ; возможно, истекло время ожидания шлюза или служба недоступна",
"ai_chat.panel.error.truncated_suffix": "...(обрезано)",
"ai_chat.panel.notice.fetch_models_failed": "Не удалось получить список моделей: {{detail}}",
"ai_chat.panel.message.error": "❌ Ошибка: {{detail}}",
"ai_chat.panel.message.empty_response": "❌ Модель не вернула содержимое. Возможны ограничение частоты, перегрузка контекста или отказ.",
"ai_chat.panel.message.request_interrupted": "❌ Запрос прерван: конкретный ответ не получен.",
"ai_chat.panel.message.service_not_ready": "❌ AI Service не готов",
"ai_chat.panel.message.send_failed": "❌ Не удалось отправить: {{detail}}",
"ai_chat.panel.probe.max_rounds": "⚠️ Вызовы инструментов достигли лимита {{count}} раундов и были остановлены. Отправьте новое сообщение, чтобы продолжить исследование.",
"ai_chat.panel.probe.consecutive_failed": "⚠️ Проверки завершились ошибкой 3 раунда подряд и были остановлены. Проверьте состояние подключения и повторите попытку.",
"ai_chat.panel.status.summarizing_probe": "Сводка результатов проверок",
"ai_chat.panel.status.returning_runtime_data": "Передача данных выполнения модели",
"ai_chat.panel.status.deep_reasoning": "Модель выполняет глубокое рассуждение",
"ai_chat.panel.status.waiting_instruction": "Ожидание инструкции операции",
"ai_chat.panel.status.analyzing_chain": "Глубокий анализ цепочки и логики",
"ai_chat.panel.status.model_connecting": "Подключение к модели",
"ai_chat.panel.status.waking_engine": "Пробуждение механизма рассуждений",
"ai_chat.panel.status.waiting_response": "Ожидание ответа модели",
"ai_chat.panel.session.default_title": "Новый чат",
"ai_settings.title": "Настройки AI",
"ai_settings.subtitle": "Настройка моделей AI, уровня безопасности и контекста",
"ai_settings.nav.title": "Навигация настроек",
"ai_settings.nav.providers.title": "Поставщики моделей",
"ai_settings.nav.providers.description": "Настройка конечных точек моделей и секретов",
"ai_settings.nav.safety.title": "Контроль безопасности",
"ai_settings.nav.safety.description": "Ограничение уровня риска операций AI",
"ai_settings.nav.context.title": "Контекст",
"ai_settings.nav.context.description": "Настройка контекста схемы базы данных",
"ai_settings.nav.tools.title": "Встроенные инструменты",
"ai_settings.nav.tools.description": "Просмотр доступных AI зондов данных",
"ai_settings.nav.prompts.title": "Встроенные промпты",
"ai_settings.nav.prompts.description": "Просмотр системных базовых требований",
"ai_settings.provider.empty.title": "Поставщик модели не настроен",
"ai_settings.provider.empty.description": "Добавьте поставщика, чтобы начать использовать AI-ассистента",
"ai_settings.provider.no_model": "Модель не выбрана",
"ai_settings.provider.next_provider": "следующий поставщик",
"ai_settings.provider.action.add": "Добавить поставщика модели",
"ai_settings.provider.action.edit": "Редактировать",
"ai_settings.provider.action.delete": "Удалить",
"ai_settings.provider.confirm_delete": "Удалить этого поставщика?",
"ai_settings.provider.editor.add_title": "Добавить поставщика модели",
"ai_settings.provider.editor.edit_title": "Редактировать поставщика модели",
"ai_settings.provider_preset.openai.label": "OpenAI",
"ai_settings.provider_preset.openai.desc": "Серия GPT-5.4 / 5.3",
"ai_settings.provider_preset.deepseek.label": "DeepSeek",
"ai_settings.provider_preset.deepseek.desc": "Модели DeepSeek-V4 / R1",
"ai_settings.provider_preset.qwen_bailian.label": "Qwen (Bailian общий)",
"ai_settings.provider_preset.qwen_bailian.desc": "Anthropic-совместимая конечная точка Bailian / удаленный список моделей",
"ai_settings.provider_preset.qwen_coding_plan.label": "Qwen (Coding Plan)",
"ai_settings.provider_preset.qwen_coding_plan.desc": "Прокси-цепочка Claude Code CLI / официальный список поддерживаемых моделей",
"ai_settings.provider_preset.zhipu.label": "Zhipu GLM",
"ai_settings.provider_preset.zhipu.desc": "Модели GLM-5 / GLM-5-Turbo",
"ai_settings.provider_preset.moonshot.label": "Kimi",
"ai_settings.provider_preset.moonshot.desc": "Kimi K2.5 (Anthropic-совместимый)",
"ai_settings.provider_preset.anthropic.label": "Claude",
"ai_settings.provider_preset.anthropic.desc": "Модели Claude Opus/Sonnet",
"ai_settings.provider_preset.gemini.label": "Gemini",
"ai_settings.provider_preset.gemini.desc": "Серия Gemini 3.1 / 2.5",
"ai_settings.provider_preset.volcengine_ark.label": "Volcengine Ark",
"ai_settings.provider_preset.volcengine_ark.desc": "Общий инференс Ark / модели Doubao",
"ai_settings.provider_preset.volcengine_coding.label": "Volcengine Coding Plan",
"ai_settings.provider_preset.volcengine_coding.desc": "Среда Ark Code / Coding Plan",
"ai_settings.provider_preset.minimax.label": "MiniMax",
"ai_settings.provider_preset.minimax.desc": "Серия M2.7 / M2.5 (Anthropic-совместимая)",
"ai_settings.provider_preset.ollama.label": "Ollama",
"ai_settings.provider_preset.ollama.desc": "Локально развернутые модели с открытым кодом",
"ai_settings.provider_preset.custom.label": "Пользовательский",
"ai_settings.provider_preset.custom.desc": "Пользовательская конечная точка API",
"ai_settings.form.section.service_type": "Тип сервиса",
"ai_settings.form.section.basic": "Основная информация",
"ai_settings.form.section.auth_connection": "Аутентификация и подключение",
"ai_settings.form.provider_name": "Имя поставщика",
"ai_settings.form.provider_name_required": "Введите имя",
"ai_settings.form.provider_name_placeholder": "Пример: собственная OpenAI-совместимая конечная точка / частная модель",
"ai_settings.form.api_format": "Формат API",
"ai_settings.form.model_list": "Список доступных моделей (необязательно)",
"ai_settings.form.model_list_placeholder": "Укажите ID моделей; оставьте пустым, чтобы получить их с сервера",
"ai_settings.form.api_key": "API Key",
"ai_settings.form.api_key_required": "Введите API Key",
"ai_settings.form.api_key_keep_placeholder": "Оставьте пустым, чтобы продолжить использовать сохраненный секрет",
"ai_settings.form.api_key_placeholder": "sk-... / ваш API Key",
"ai_settings.form.api_key_saved_hint": "API Key уже сохранен. Оставьте поле пустым, чтобы использовать его дальше, или введите новое значение для замены.",
"ai_settings.form.clear_saved_api_key": "Очистить сохраненный API Key",
"ai_settings.form.api_endpoint": "API Endpoint (URL)",
"ai_settings.form.api_endpoint_required": "Введите корректный URL конечной точки",
"ai_settings.action.back": "Назад",
"ai_settings.action.save": "Сохранить",
"ai_settings.action.test": "Проверить подключение",
"ai_settings.action.retest": "Проверить снова",
"ai_settings.action.connection_ok": "Подключение в порядке",
"ai_settings.message.deleted": "Удалено",
"ai_settings.message.deleted_and_switched": "Удалено, выполнено автоматическое переключение на «{{name}}»",
"ai_settings.message.delete_failed": "Не удалось удалить",
"ai_settings.message.delete_failed_detail": "Не удалось удалить: {{detail}}",
"ai_settings.message.saved": "Сохранено",
"ai_settings.message.save_failed": "Не удалось сохранить",
"ai_settings.message.save_failed_detail": "Не удалось сохранить: {{detail}}",
"ai_settings.message.switched": "Переключено",
"ai_settings.message.switch_failed": "Не удалось переключить",
"ai_settings.message.switch_failed_detail": "Не удалось переключить: {{detail}}",
"ai_settings.message.test_requires_new_api_key": "Перед проверкой подключения введите новый API Key или отмените очистку сохраненного секрета",
"ai_settings.message.test_success": "Подключение успешно",
"ai_settings.message.test_failed": "Проверка не удалась",
"ai_settings.message.test_failed_detail": "Проверка не удалась: {{detail}}",
"ai_settings.message.unknown_error": "Неизвестная ошибка",
"ai_settings.safety.description": "Управляет типами SQL-операций, которые AI может выполнять, чтобы защитить данные",
"ai_settings.safety.readonly.label": "Режим только чтения",
"ai_settings.safety.readonly.desc": "AI может выполнять только SELECT и похожие запросы. Это самый безопасный режим.",
"ai_settings.safety.readwrite.label": "Режим чтения и записи",
"ai_settings.safety.readwrite.desc": "AI может выполнять INSERT/UPDATE/DELETE. Для рискованных операций требуется подтверждение.",
"ai_settings.safety.full.label": "Полный режим",
"ai_settings.safety.full.desc": "AI может выполнять все операции, включая DDL. Для операций высокого риска предупреждения показываются автоматически.",
"ai_settings.context.description": "Управляет объемом контекста базы данных, отправляемым AI",
"ai_settings.context.schema_only.label": "Только схема",
"ai_settings.context.schema_only.desc": "AI получает только структуру таблиц и столбцов",
"ai_settings.context.with_samples.label": "С примерами данных",
"ai_settings.context.with_samples.desc": "Добавляет небольшой объем примеров данных, чтобы AI лучше понимал их особенности",
"ai_settings.context.with_results.label": "С результатами запросов",
"ai_settings.context.with_results.desc": "Передает последние результаты запросов как контекст",
"ai_settings.prompts.description": "Ниже показаны системные AI-промпты, встроенные в текущую версию GoNavi. Они доступны только для чтения и динамически добавляются в контекст запроса для соответствующих сценариев.",
"ai_settings.tools.description": "При работе с вопросами по базам данных AI-ассистент может автоматически вызывать эти встроенные инструменты, чтобы получить реальные данные без ручного вмешательства.",
"ai_settings.tools.workflow": "💡 Процесс: get_connections → get_databases → get_tables → get_columns → сформировать SQL",
"ai_settings.tools.params_label": "Параметры:",
"ai_settings.tools.params.none": "Без параметров",
"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_tables.desc": "Получить все имена таблиц в базе данных",
"ai_settings.tools.get_tables.detail": "Передайте connectionId и dbName, чтобы получить список таблиц. AI использует его для поиска целевой таблицы, о которой говорит пользователь.",
"ai_settings.tools.get_columns.desc": "Получить структуру столбцов таблицы",
"ai_settings.tools.get_columns.detail": "Передайте connectionId, dbName и tableName, чтобы получить имя, тип, признак NULL, значение по умолчанию и комментарий каждого столбца. Перед генерацией SQL AI должен вызвать этот инструмент, чтобы подтвердить реальные имена столбцов.",
"ai_settings.tools.get_table_ddl.desc": "Получить DDL таблицы",
"ai_settings.tools.get_table_ddl.detail": "Передайте connectionId, dbName и tableName, чтобы получить полный оператор CREATE TABLE, включая определения столбцов, индексы, ограничения и метаданные.",
"ai_settings.tools.execute_sql.desc": "Выполнить SQL-запрос и вернуть результат",
"ai_settings.tools.execute_sql.detail": "Передайте connectionId, dbName и sql, чтобы выполнить SQL в целевой базе данных и вернуть до 50 строк результата. Применяется уровень безопасности; в режиме только чтения разрешены только SELECT/SHOW/DESCRIBE.",
"driver_manager.title": "Управление драйверами",
"driver_manager.action.refresh": "Обновить",
"driver_manager.action.network_check": "Проверка сети",
"driver_manager.action.close": "Закрыть",
"driver_manager.action.open_global_proxy_settings": "Открыть настройки глобального прокси",
"driver_manager.action.open_directory": "Открыть каталог драйверов",
"driver_manager.action.import_directory": "Импортировать каталог драйверов",
"driver_manager.action.import_package": "Импортировать пакет драйвера",
"driver_manager.action.install_enable": "Установить и включить",
"driver_manager.action.remove": "Удалить",
"driver_manager.action.logs": "Журнал",
"driver_manager.column.data_source": "Источник данных",
"driver_manager.column.package_size": "Размер пакета",
"driver_manager.column.status": "Состояние",
"driver_manager.column.progress": "Ход установки",
"driver_manager.column.version": "Версия драйвера",
"driver_manager.column.actions": "Действия",
"driver_manager.description.install_required": "Для источников данных, кроме MySQL / Redis / Oracle / PostgreSQL, перед подключением нужно установить и включить драйвер.",
"driver_manager.directory_info.title": "Каталог драйверов и повторное использование",
"driver_manager.directory_info.details_label": "Показать каталог драйверов и пояснение о повторном использовании",
"driver_manager.directory_info.reuse_help": "Автоматически скачанные и вручную импортированные драйверы сохраняются в этом каталоге. Их можно повторно использовать при последующих обновлениях версий.",
"driver_manager.directory_info.root_dir": "Корневой каталог драйверов: {{path}}",
"driver_manager.directory_info.log_file": "Файл журнала выполнения: {{path}}",
"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.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.",
"driver_manager.local_source.file": "файл",
"driver_manager.local_source.directory": "каталог",
"driver_manager.log.start_auto_install": "Начата автоматическая установка",
"driver_manager.log.done_auto_install": "Автоматическая установка завершена{{version}}",
"driver_manager.log.start_local_import": "Начат локальный импорт{{version}} ({{source}}): {{path}}",
"driver_manager.log.done_local_import": "Установка через локальный импорт завершена{{version}}",
"driver_manager.log.skip_installed_dedupe": "Драйвер уже установлен; импорт каталога пропущен из-за устранения дублей",
"driver_manager.log.force_overwrite_reinstall": "Включен режим перезаписи установленных драйверов; будет выполнен повторный импорт",
"driver_manager.log.skip_slim_build": "Текущий пакет выпуска является slim-сборкой; импорт каталога пропущен",
"driver_manager.log.start_remove": "Начато удаление драйвера",
"driver_manager.log.done_remove": "Удаление драйвера завершено",
"driver_manager.log.progress_line": "{{status}}: {{message}} ({{percent}} %)",
"driver_manager.log_modal.title": "Журнал драйвера - {{name}}",
"driver_manager.log_modal.install_dir": "Каталог установки: {{path}}",
"driver_manager.log_modal.executable_path": "Исполняемый файл драйвера: {{path}}",
"driver_manager.log_modal.empty": "Для этого драйвера пока нет журналов операций.",
"driver_manager.message.load_status_failed": "Не удалось загрузить состояние драйверов",
"driver_manager.message.load_status_failed_detail": "Не удалось загрузить состояние драйверов: {{detail}}",
"driver_manager.message.network_check_failed": "Проверка сети для драйверов не удалась",
"driver_manager.message.network_check_failed_detail": "Проверка сети для драйверов не удалась: {{detail}}",
"driver_manager.message.network_check_completed": "Проверка сети для драйверов завершена",
"driver_manager.message.load_version_failed": "Не удалось загрузить список версий для {{name}}",
"driver_manager.message.load_version_failed_detail": "Не удалось загрузить список версий для {{name}}: {{detail}}",
"driver_manager.message.install_start": "Начата установка",
"driver_manager.message.install_failed": "Не удалось установить {{name}}",
"driver_manager.message.install_failed_detail": "Не удалось установить {{name}}: {{detail}}",
"driver_manager.message.install_success": "{{name}}{{version}} установлен и включен",
"driver_manager.message.local_path_required": "Выберите допустимый локальный источник импорта: {{source}}",
"driver_manager.message.local_import_start": "Начат импорт локального пакета драйвера",
"driver_manager.message.local_import_failed": "Не удалось импортировать локальный пакет драйвера для {{name}}",
"driver_manager.message.local_import_failed_detail": "Не удалось импортировать локальный пакет драйвера для {{name}}: {{detail}}",
"driver_manager.message.local_import_success": "Локальный пакет драйвера для {{name}}{{version}} установлен и включен",
"driver_manager.message.select_local_file_failed": "Не удалось выбрать локальный файл пакета драйвера",
"driver_manager.message.select_local_file_failed_detail": "Не удалось выбрать локальный файл пакета драйвера: {{detail}}",
"driver_manager.message.local_file_required": "Выберите допустимый файл пакета драйвера",
"driver_manager.message.select_local_directory_failed": "Не удалось выбрать локальный каталог пакета драйвера",
"driver_manager.message.select_local_directory_failed_detail": "Не удалось выбрать локальный каталог пакета драйвера: {{detail}}",
"driver_manager.message.local_directory_required": "Выберите допустимый каталог пакета драйвера",
"driver_manager.message.no_external_drivers_to_import": "Нет внешних драйверов для импорта",
"driver_manager.message.skip.dedupe": "Пропущено дублей: {{count}}",
"driver_manager.message.skip.slim": "Пропущено slim-сборок: {{count}}",
"driver_manager.message.skip_suffix": ", {{items}}",
"driver_manager.message.overwrite_suffix": " (с перезаписью установленных)",
"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.open_directory_failed": "Не удалось открыть каталог драйверов",
"driver_manager.message.open_directory_failed_detail": "Не удалось открыть каталог драйверов: {{detail}}",
"driver_manager.message.remove_failed": "Не удалось удалить {{name}}",
"driver_manager.message.remove_failed_detail": "Не удалось удалить {{name}}: {{detail}}",
"driver_manager.message.remove_success": "{{name}} удален",
"driver_manager.network.alert.download_chain_unreachable": "Важно: домены маршрута загрузки драйверов недоступны",
"driver_manager.network.alert.download_network_unreachable": "Важно: сеть загрузки драйверов недоступна",
"driver_manager.network.summary.download_chain_unreachable": "GitHub API доступен, но домены ресурсов для загрузки драйверов недоступны.",
"driver_manager.network.summary.unreachable_proxy_configured": "Некоторые точки загрузки драйверов недоступны. Проверьте, что настроенный прокси работает, и повторите попытку.",
"driver_manager.network.summary.proxy_recommended": "Некоторые точки загрузки драйверов недоступны. Перед установкой настройте прокси HTTP/HTTPS/SOCKS5.",
"driver_manager.network.summary.unreachable": "Некоторые точки загрузки драйверов недоступны. Проверьте сеть и повторите попытку.",
"driver_manager.network.summary.reachable_with_proxy": "Сеть загрузки драйверов доступна через настроенный прокси.",
"driver_manager.network.summary.reachable": "Сеть загрузки драйверов доступна. Драйверы можно устанавливать напрямую.",
"driver_manager.network.chain_alert.description": "Страницы GitHub могут открываться, но загрузка пакетов драйверов перенаправляется на домены ресурсов. Сначала включите глобальный прокси в верхнем пункте GoNavi «Прокси», указав локальный адрес и порт приложения прокси.",
"driver_manager.network.chain_alert.allow_hosts": "Если ошибка сохраняется, разрешите эти узлы в правилах прокси: {{hosts}}. Если правила изменить нельзя, рассмотрите включение режима TUN.",
"driver_manager.network.proxy_env_detected": "Обнаружены переменные окружения прокси: {{keys}}",
"driver_manager.network.details_label": "Показать детали проверки сети",
"driver_manager.network.github_latency": "Задержка подключения через прокси к GitHub: {{status}}{{latency}}{{detail}}",
"driver_manager.network.reachable": "доступно",
"driver_manager.network.unreachable": "недоступно",
"driver_manager.network.no_result": "нет результата",
"driver_manager.network.latency_value": ", {{latency}}ms",
"driver_manager.network.error_value": ", {{detail}}",
"driver_manager.network.no_proxy_env": "Системные переменные окружения прокси не обнаружены.",
"driver_manager.network.checking": "Проверяется сеть загрузки драйверов...",
"driver_manager.network.not_checked": "Проверка сети еще не завершена",
"driver_manager.progress.local_package_start": "Начата установка локального пакета драйвера",
"driver_manager.progress.metadata_write": "Запись метаданных драйвера",
"driver_manager.progress.local_package_done": "Импорт локального пакета драйвера завершен",
"driver_manager.progress.install_start": "Начата установка",
"driver_manager.progress.pure_go_enabled": "Установка завершена; чистый Go-драйвер включен",
"driver_manager.progress.agent_install_start": "Начата установка агента драйвера {{name}}",
"driver_manager.progress.agent_install_done": "Установка агента драйвера {{name}} завершена",
"driver_manager.progress.download_prebuilt_agent": "Загрузка предварительно собранного агента драйвера {{name}}",
"driver_manager.progress.download_bundle": "Загрузка комплекта драйвера {{name}}",
"driver_manager.progress.extract_agent_from_bundle": "Извлечение агента {{name}} из комплекта драйверов",
"driver_manager.progress.unzip_agent": "Распаковка агента драйвера {{name}}",
"driver_manager.progress.source_build_preferred": "Сначала используется локальная сборка из исходников для агента драйвера {{name}}",
"driver_manager.progress.dev_build_fallback": "Предварительно собранный пакет не найден; пробуем локальную сборку для разработки",
"driver_manager.progress.plan.source_only": "Подготовка установки агента драйвера {{name}} (версия {{version}}); эта версия разрешает только локальную сборку из исходников",
"driver_manager.progress.plan.source_first": "Подготовка установки агента драйвера {{name}} (версия {{version}}); сначала локальная сборка из исходников, затем резервная загрузка",
"driver_manager.progress.plan.direct_then_bundle": "Подготовка установки агента драйвера {{name}} (версия {{version}}); сначала {{direct}} прямых ссылок на готовую сборку, затем {{bundle}} источников комплектов драйверов",
"driver_manager.progress.plan.explicit_direct": "Подготовка установки агента драйвера {{name}} (версия {{version}}); только явные ресурсы версии, пробуем {{direct}} прямых ссылок на готовую сборку",
"driver_manager.progress.plan.direct_only": "Подготовка установки агента драйвера {{name}} (версия {{version}}); пробуем {{direct}} прямых ссылок на готовую сборку",
"driver_manager.progress.plan.bundle_only": "Подготовка установки агента драйвера {{name}} (версия {{version}}); прямые ссылки на готовую сборку не указаны, пробуем {{bundle}} источников комплектов драйверов",
"driver_manager.progress.plan.source_fallback": "Подготовка установки агента драйвера {{name}} (версия {{version}}); если ресурсы выпуска не совпадут, будет локальная сборка из исходников",
"driver_manager.progress.fallback.direct_to_bundle": "Прямые ссылки на готовую сборку не подошли; переключаемся на комплект драйверов ({{name}}, осталось источников: {{bundle}})",
"driver_manager.progress.fallback.explicit_skip_bundle": "Прямые ссылки на готовую сборку не подошли; разрешены только явные ресурсы, комплект драйверов пропускается ({{name}})",
"driver_manager.progress.fallback.bundle_available": "Прямая ссылка недоступна; переключаемся на комплект драйверов ({{name}}, осталось источников: {{bundle}})",
"driver_manager.progress.fallback.source_build": "Ресурсы выпуска не подошли; готовится резервная локальная сборка из исходников ({{name}})",
"driver_manager.progress.backend_empty": "Backend не вернул деталей прогресса",
"driver_manager.progress.backend_detail": "Деталь backend: {{detail}}",
"driver_manager.progress.status.start": "СТАРТ",
"driver_manager.progress.status.downloading": "ЗАГРУЗКА",
"driver_manager.progress.status.done": "ГОТОВО",
"driver_manager.progress.status.error": "ОШИБКА",
"driver_manager.progress.status.unknown": "НЕИЗВЕСТНО",
"driver_manager.option.force_overwrite_installed": "Перезаписывать установленные",
"driver_manager.punctuation.list_separator": ", ",
"driver_manager.search.placeholder": "Поиск по имени или типу драйвера, например DuckDB или clickhouse",
"driver_manager.search.built_in": "встроенный",
"driver_manager.search.external": "внешний",
"driver_manager.status.calculating": "Вычисляется...",
"driver_manager.status.built_in_available": "Встроенный доступен",
"driver_manager.status.installing_percent": "Установка {{percent}}%",
"driver_manager.status.enabled": "Включен",
"driver_manager.status.installed": "Установлен",
"driver_manager.status.disabled": "Не включен",
"driver_manager.status.full_required": "Требуется Full-версия",
"driver_manager.version.default": "Версия по умолчанию",
"driver_manager.version.inline_suffix": " (версия {{version}})",
"driver_manager.version.group.year": "{{year}} год",
"driver_manager.version.group.other": "Другое",
"driver_manager.version.placeholder.select": "Выберите версию драйвера",
"driver_manager.version.placeholder.load_on_expand": "Разверните, чтобы загрузить версии",
"driver_manager.version.installed_locked_with_version": "{{version}} (установлена; удалите, чтобы изменить)",
"driver_manager.version.installed_locked": "Установлено (удалите, чтобы изменить)",
"driver_manager.version.mongodb_hint": "Сейчас поддерживаются только MongoDB 1.17.x и 2.x. Более старые версии 1.x недоступны для установки.",
"driver_manager.backend.dialog.select_download_directory": "Выберите каталог загрузки драйверов",
"driver_manager.backend.dialog.select_package_file": "Выберите файл пакета драйвера (не JDBC Jar)",
"driver_manager.backend.dialog.select_package_directory": "Выберите каталог пакета драйвера",
"driver_manager.backend.driver_fallback_name": "драйвер",
"driver_manager.backend.package_size.built_in": "Встроенный",
"driver_manager.backend.package_size.to_be_published": "Ожидает публикации",
"driver_manager.backend.version.unlabeled": "Версия без метки",
"driver_manager.backend.version.latest_suffix": " (последняя)",
"driver_manager.backend.version.recommended_suffix": " (рекомендуется)",
"driver_manager.backend.message.unsupported_builtin_manifest_url": "Неподдерживаемый URL встроенного манифеста драйверов: {{url}}",
"driver_manager.backend.message.jdbc_jar_unsupported": "Прямой импорт файлов JDBC Jar не поддерживается. GoNavi использует Go-драйверы и дополнительные пакеты driver-agent; используйте пакет драйвера или каталог драйвера. Для подключения к Kingbase предпочтительно выберите тип подключения Kingbase либо укажите kingbase / kingbase8 в пользовательском подключении.",
"driver_manager.backend.message.runtime_directory_configured": "Каталог среды выполнения драйверов настроен",
"driver_manager.backend.message.opened_directory": "Каталог драйверов открыт: {{path}}",
"driver_manager.backend.message.log_hint": " (подробный журнал: {{path}})",
"driver_manager.backend.message.local_import_failed_detail": "Не удалось импортировать локальный пакет драйвера: {{detail}}",
"driver_manager.backend.message.metadata_write_failed_detail": "Не удалось записать метаданные драйвера: {{detail}}",
"driver_manager.backend.message.driver_install_success": "Драйвер успешно установлен",
"driver_manager.backend.message.download_failed_detail": "Не удалось скачать и установить драйвер: {{detail}}",
"driver_manager.backend.message.package_removed": "Пакет драйвера удален",
"driver_manager.backend.error.unknown": "Неизвестная ошибка",
"driver_manager.backend.error.unsupported_driver_type": "Неподдерживаемый тип драйвера",
"driver_manager.backend.error.builtin_download_not_required": "Встроенным драйверам не требуется загрузка пакетов расширения",
"driver_manager.backend.error.builtin_install_not_required": "Встроенным драйверам не требуется установка пакетов расширения",
"driver_manager.backend.error.builtin_version_not_required": "Встроенным драйверам не требуется выбор версии",
"driver_manager.backend.error.builtin_package_not_required": "У встроенных драйверов нет установочных пакетов",
"driver_manager.backend.error.builtin_remove_not_allowed": "Встроенные драйверы нельзя удалить",
"driver_manager.backend.error.optional_go_only": "Здесь можно устанавливать и включать только дополнительные Go-драйверы",
"driver_manager.backend.error.package_size_unsupported": "Этот драйвер не поддерживает запрос размера установочного пакета",
"driver_manager.backend.error.version_empty": "Версия пустая",
"driver_manager.backend.error.asset_name_empty": "Имя ресурса драйвера пустое",
"driver_manager.backend.error.mongo_version_unsupported": "Версия MongoDB {{version}} не поддерживается; поддерживаются только 1.17.x и 2.x",
"driver_manager.backend.error.open_directory_unsupported": "На этой платформе нельзя открывать каталоги: {{platform}}",
"driver_manager.backend.error.open_directory_failed": "Не удалось открыть каталог драйверов: {{detail}}",
"driver_manager.backend.error.create_directory_failed": "Не удалось создать каталог драйверов: {{detail}}",
"driver_manager.backend.error.remove_package_failed": "Не удалось удалить пакет драйвера: {{detail}}",
"driver_manager.backend.error.manifest_scheme_unsupported": "Неподдерживаемая схема URL манифеста драйверов: {{scheme}}",
"driver_manager.backend.error.manifest_fetch_failed": "Не удалось получить манифест драйверов: {{detail}}",
"driver_manager.backend.error.manifest_parse_failed": "Не удалось разобрать манифест драйверов: {{detail}}",
"driver_manager.backend.error.manifest_url_empty": "URL манифеста драйверов пуст",
"driver_manager.backend.error.manifest_too_large": "Манифест драйверов превышает ограничение размера",
"driver_manager.backend.error.local_manifest_url_invalid": "Недопустимый локальный URL манифеста драйверов",
"driver_manager.backend.error.file_manifest_url_invalid": "Недопустимый файловый URL манифеста драйверов",
"driver_manager.backend.error.driver_type_empty": "Тип драйвера пуст",
"driver_manager.backend.error.no_driver_versions": "Доступные версии драйвера не найдены",
"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.driver_version_list_fetch_failed": "Не удалось получить список версий драйвера: {{detail}}",
"driver_manager.backend.error.driver_version_list_parse_failed": "Не удалось разобрать список версий драйвера: {{detail}}",
"driver_manager.backend.error.cache_key_empty": "Cache key пуст",
"driver_manager.backend.error.release_empty": "Release пуст",
"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.tag_empty": "Tag пуст",
"driver_manager.backend.error.api_url_empty": "API URL пуст",
"driver_manager.backend.error.release_info_fetch_failed": "Не удалось получить сведения Release: {{detail}}",
"driver_manager.backend.error.local_package_path_empty": "Путь локального пакета драйвера пуст",
"driver_manager.backend.error.local_directory_path_empty": "Путь локального каталога драйверов пуст",
"driver_manager.backend.error.file_path_empty": "Путь файла пуст",
"driver_manager.backend.error.download_url_empty": "Download URL пуст",
"driver_manager.backend.error.bundle_url_empty": "URL загрузки комплекта драйверов пуст",
"driver_manager.backend.error.read_local_package_failed": "Не удалось прочитать локальный пакет драйвера: {{detail}}",
"driver_manager.backend.error.read_local_directory_failed": "Не удалось прочитать локальный каталог драйверов: {{detail}}",
"driver_manager.backend.error.scan_local_directory_failed": "Не удалось просканировать локальный каталог драйверов: {{detail}}",
"driver_manager.backend.error.open_local_package_failed": "Не удалось открыть локальный пакет драйвера: {{detail}}",
"driver_manager.backend.error.read_local_package_entry_failed": "Не удалось прочитать запись локального пакета драйвера: {{detail}}",
"driver_manager.backend.error.download_failed": "Загрузка не удалась: {{detail}}",
"driver_manager.backend.error.bundle_download_failed": "Не удалось скачать комплект драйверов: {{detail}}",
"driver_manager.backend.error.open_bundle_failed": "Не удалось открыть комплект драйверов: {{detail}}",
"driver_manager.backend.error.read_bundle_entry_failed": "Не удалось прочитать запись комплекта драйверов: {{detail}}",
"driver_manager.backend.error.source_build_failed": "Локальная сборка из исходников не удалась: {{detail}}",
"driver_manager.backend.error.prebuilt_downloads_failed": "Не удалось скачать готовый пакет: {{detail}}",
"driver_manager.backend.status.built_in_available": "Встроенный драйвер готов к подключению",
"driver_manager.backend.status.optional_enabled": "Go-драйвер включен и готов к подключению",
"driver_manager.backend.status.installed_pending_with_version": "Драйвер установлен (версия: {{version}}) и ожидает активации",
"driver_manager.backend.status.installed_pending": "Драйвер установлен и ожидает активации",
"driver_manager.backend.status.optional_disabled_with_version": "Не включен (версия: {{version}})",
"driver_manager.backend.status.optional_disabled_generic": "Не включен",
"driver_manager.backend.status.needs_update": "Требуется переустановка, чтобы применить обновления драйвера.",
"driver_manager.backend.status.installed_revision": "установленная revision {{revision}}.",
"driver_manager.backend.status.expected_revision": "требуемая revision {{revision}}.",
"driver_manager.backend.status.affected_connections": "Затрагивает {{count}} сохраненных подключений",
"driver_manager.backend.status.unrecognized_driver_type": "Неизвестный тип источника данных",
"driver_manager.backend.status.slim_build_required": "{{name}} не входит в текущий slim build. Установите Full-версию, чтобы использовать этот драйвер.",
"driver_manager.backend.status.agent_path_failed": "Не удалось определить путь агента драйвера {{name}}. Переустановите и включите его в Driver Manager.",
"driver_manager.backend.status.agent_missing": "Агент драйвера {{name}} отсутствует. Переустановите и включите его в Driver Manager.",
"driver_manager.backend.status.optional_disabled": "Go-драйвер {{name}} не включен. Установите и включите его в Driver Manager.",
"driver_manager.backend.status.agent_unavailable_reinstall": "Агент драйвера {{name}} недоступен: {{detail}}. Переустановите и включите его в Driver Manager.",
"driver_manager.backend.status.agent_arch_incompatible_detail": "Архитектура агента драйвера {{name}} несовместима: файл={{file}}, текущий процесс={{process}}. Переустановите и включите его в Driver Manager.",
"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.error.probe_url_empty": "URL проверки пуст",
"driver_manager.backend.network.error.probe_host_missing": "В URL проверки отсутствует хост",
"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.progress.plan.source_only": "Подготовка установки агента драйвера {{name}} (версия {{version}}); эта версия разрешает только локальную сборку из исходников",
"driver_manager.backend.progress.plan.source_first": "Подготовка установки агента драйвера {{name}} (версия {{version}}); сначала локальная сборка из исходников, затем резервная загрузка",
"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.direct_only": "Подготовка установки агента драйвера {{name}} (версия {{version}}); пробуем {{direct}} прямых ссылок на готовую сборку",
"driver_manager.backend.progress.plan.bundle_only": "Подготовка установки агента драйвера {{name}} (версия {{version}}); прямые ссылки на готовую сборку не указаны, пробуем {{bundle}} источников комплектов драйверов",
"driver_manager.backend.progress.plan.source_fallback": "Подготовка установки агента драйвера {{name}} (версия {{version}}); если ресурсы выпуска не совпадут, будет локальная сборка из исходников",
"driver_manager.backend.progress.fallback.direct_to_bundle": "Прямые ссылки на готовую сборку не подошли; переключаемся на комплект драйверов ({{name}}, осталось источников: {{bundle}})",
"driver_manager.backend.progress.fallback.explicit_skip_bundle": "Прямые ссылки на готовую сборку не подошли; разрешены только явные ресурсы, комплект драйверов пропускается ({{name}})",
"driver_manager.backend.progress.fallback.bundle_available": "Прямая ссылка недоступна; переключаемся на комплект драйверов ({{name}}, осталось источников: {{bundle}})",
"driver_manager.backend.progress.fallback.source_build": "Ресурсы выпуска не подошли; готовится резервная локальная сборка из исходников ({{name}})",
"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_scope": "Автоматическое создание таблиц сейчас поддерживает только MySQL в Kingbase. Переносятся столбцы, первичные ключи, обычные индексы, уникальные индексы и составные индексы; полнотекстовые, пространственные, префиксные и функциональные индексы явно пропускаются.",
"data_sync.alert.auto_create_planner_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.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.backend.error.restore_source_secret_failed": "Не удалось восстановить секрет подключения к исходной базе данных: {{detail}}",
"data_sync.backend.error.restore_target_secret_failed": "Не удалось восстановить секрет подключения к целевой базе данных: {{detail}}",
"data_sync.backend.error.connect_source_failed": "Не удалось подключиться к исходной базе данных: {{detail}}",
"data_sync.backend.error.connect_target_failed": "Не удалось подключиться к целевой базе данных: {{detail}}",
"data_sync.backend.error.init_source_driver_failed": "Не удалось инициализировать драйвер исходной базы данных: {{detail}}",
"data_sync.backend.error.init_target_driver_failed": "Не удалось инициализировать драйвер целевой базы данных: {{detail}}",
"data_sync.backend.error.preview_composite_pk_unsupported": "Составной первичный ключ ({{columns}}) не поддерживается для предпросмотра данных",
"data_sync.backend.error.preview_pk_required": "Нет первичного ключа, предпросмотр данных не поддерживается",
"data_sync.backend.error.target_pk_required_for_query_diff": "В целевой таблице нет первичного ключа, поэтому анализ различий SQL-набора результатов не поддерживается",
"data_sync.backend.result.analyzed_tables": "Анализ различий завершен для {{count}} таблиц",
"data_sync.backend.result.analyzed_target_tables": "Анализ различий завершен для {{count}} целевых таблиц",
"data_sync.backend.summary.diff_completed": "Анализ различий завершен",
"data_sync.backend.summary.source_query_diff_completed": "Анализ различий SQL-набора результатов завершен",
"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.index_columns_missing": "У индекса {{name}} нет определения столбцов, он пропущен",
"data_sync.backend.warning.index_prefix_length_unsupported": "Индекс {{name}} использует длину префикса и пока не может быть автоматически мигрирован",
"data_sync.backend.warning.index_type_unsupported": "Индекс {{name}}, тип={{type}}, пока не может быть автоматически мигрирован",
"data_sync.confirm.full_overwrite.content": "Полная перезапись сначала очищает целевую таблицу, а затем вставляет строки. Подтвердите, что целевая база данных сохранена в резервной копии.",
"data_sync.confirm.full_overwrite.ok": "Продолжить",
"data_sync.confirm.full_overwrite.title": "Подтвердите полную перезапись",
"data_sync.modal.full_overwrite_title": "Подтвердите полную перезапись",
"data_sync.modal.full_overwrite_content": "Полная перезапись сначала очищает целевую таблицу, а затем вставляет строки. Подтвердите, что целевая база данных сохранена в резервной копии.",
"data_sync.modal.full_overwrite_ok": "Продолжить",
"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.message.precheck_warnings": "Предварительная проверка нашла риски или понижение возможностей. Проверьте их перед выполнением.",
"data_sync.message.more_items_collapsed": "Еще {{count}} не показано",
"data_sync.table.table_name": "Таблица",
"data_sync.table.target_table": "Целевая таблица",
"data_sync.table.target_exists": "Есть",
"data_sync.table.target_missing": "Нет",
"data_sync.table.plan": "План",
"data_sync.table.insert": "Вставка",
"data_sync.table.update": "Обновление",
"data_sync.table.delete": "Удаление",
"data_sync.table.same": "Совпадает",
"data_sync.table.risk": "Риск",
"data_sync.table.preview": "Предпросмотр",
"data_sync.title.compare_result": "Результат сравнения",
"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.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.workflow_type": "Выберите, синхронизирует ли этот запуск существующие целевые таблицы или выполняет межбазовую миграцию. Страница подстроит более безопасные значения по умолчанию под тип операции.",
"data_sync.help.select_tables": "Выберите таблицы для синхронизации:",
"data_sync.help.source_query_mode": "Введите SQL-запрос источника и выберите одну целевую таблицу. Анализ различий напрямую сравнит этот результат с целевой таблицей.",
"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.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.sync_execution_failed": "Не удалось выполнить синхронизацию",
"data_sync.message.sync_execution_failed_detail": "Не удалось выполнить синхронизацию: {{detail}}",
"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.source_dataset.query": "Синхронизация по результату SQL",
"data_sync.option.source_dataset.table": "Синхронизация по таблицам",
"data_sync.option.show_same_tables": "Показывать совпадающие таблицы",
"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.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.plan.use_existing_target": "Импорт в существующую целевую таблицу",
"data_sync.plan.target_missing_manual_create": "Целевая таблица отсутствует; сначала создайте ее вручную",
"data_sync.plan.target_missing_auto_create": "Целевая таблица отсутствует; она будет автоматически создана перед импортом",
"data_sync.plan.target_missing_cannot_sync": "Целевая таблица отсутствует; синхронизацию выполнить нельзя",
"data_sync.plan.target_missing_auto_create_all": "Целевая таблица отсутствует; при выполнении она будет автоматически создана, затем будут импортированы все исходные данные",
"data_sync.plan.schema_changes_detected": "Обнаружено структурных изменений: {{count}}",
"data_sync.plan.add_missing_columns_before_import": "Дополнить отсутствующие поля перед импортом: {{count}}",
"data_sync.plan.missing_columns_no_executable_sql": "В целевой таблице отсутствуют поля: {{count}}, но исполняемый SQL для дополнения не создан",
"data_sync.plan.missing_columns_auto_add_unsupported": "В целевой таблице отсутствуют поля: {{count}}, и автоматическое дополнение не поддерживается для этой пары баз данных",
"data_sync.plan.missing_columns_auto_add_disabled": "В целевой таблице отсутствуют поля: {{count}}, и автоматическое дополнение не включено",
"data_sync.plan.schema_only_no_data_diff": "Синхронизируется только структура; анализ различий данных не выполнялся",
"data_sync.plan.schema_only": "Синхронизация только структуры",
"data_sync.plan.schema_preview": "Предпросмотр структуры",
"data_sync.plan.schema_aligned": "Структура таблицы уже совпадает",
"data_sync.plan.auto_create_unsupported": "Автоматическое создание таблиц не поддерживается для этой пары баз данных",
"data_sync.plan.tdengine_time_column_missing": "В исходной таблице не найден столбец времени, который можно сопоставить с первым столбцом TDengine; автоматическое создание таблицы невозможно",
"data_sync.plan.use_existing_target_collection": "Импорт в существующую целевую коллекцию",
"data_sync.plan.target_collection_missing_manual_create": "Целевая коллекция отсутствует; сначала создайте ее вручную",
"data_sync.plan.target_collection_missing_auto_create": "Целевая коллекция отсутствует; она будет автоматически создана перед импортом",
"data_sync.plan.redis_key_to_mongodb_document": "Создать документы MongoDB из Redis Keys и импортировать их",
"data_sync.plan.migrate_to_collection": "Миграция в коллекцию {{collection}}",
"data_sync.plan.migrate_to_target": "Миграция в {{target}}",
"data_sync.plan.source_query_preview": "Предпросмотр синхронизации SQL-результата",
"data_sync.plan.migration_kernel_planning": "Эта пара баз данных перешла в этап планирования миграции и ожидает вывода структуры и генерации целевого диалекта",
"data_sync.plan.backend_summary": "Сводка плана",
"data_sync.progress.stage.analysis_started": "Начат анализ различий",
"data_sync.progress.stage.analysis_completed": "Анализ различий завершен",
"data_sync.progress.stage.sync_started": "Синхронизация начата",
"data_sync.progress.stage.connecting_source": "Подключение к исходной базе данных",
"data_sync.progress.stage.connecting_target": "Подключение к целевой базе данных",
"data_sync.progress.stage.analyzing_table": "Анализ таблицы ({{current}}/{{total}})",
"data_sync.progress.stage.syncing_table": "Синхронизация таблицы ({{current}}/{{total}})",
"data_sync.progress.stage.table_completed": "Обработка таблицы завершена",
"data_sync.progress.stage.creating_target_table": "Создание целевой таблицы",
"data_sync.progress.stage.syncing_schema": "Синхронизация структуры таблицы",
"data_sync.progress.stage.creating_indexes": "Создание индексов",
"data_sync.progress.stage.reading_source": "Чтение данных исходной таблицы",
"data_sync.progress.stage.reading_target": "Чтение данных целевой таблицы",
"data_sync.progress.stage.comparing_diff": "Сравнение различий",
"data_sync.progress.stage.clearing_target": "Очистка целевой таблицы",
"data_sync.progress.stage.checking_columns": "Проверка согласованности полей",
"data_sync.progress.stage.applying_changes": "Применение изменений",
"data_sync.progress.stage.completed": "Синхронизация завершена",
"data_sync.progress.stage.failed": "Синхронизация не удалась",
"data_sync.progress.stage.redis_keyspace_started": "Начата миграция пространства ключей Redis",
"data_sync.progress.stage.creating_target_collection": "Создание целевой коллекции",
"data_sync.progress.stage.migrating_key": "Миграция Key ({{current}}/{{total}})",
"data_sync.progress.stage.mongodb_keyspace_started": "Начата миграция пространства ключей MongoDB",
"data_sync.progress.stage.migrating_collection": "Миграция коллекции ({{current}}/{{total}})",
"data_sync.progress.stage.collection_completed": "Обработка коллекции завершена",
"data_sync.progress.stage.backend_update": "Обработка обновления прогресса",
"data_sync.progress.stage.analyzing_diff": "Анализ различий",
"data_sync.progress.stage.executing": "Выполнение",
"data_sync.progress.stage.preparing": "Подготовка",
"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.section.migration_options": "Параметры миграции",
"data_sync.section.source_database": "База данных источника",
"data_sync.section.sync_options": "Параметры синхронизации",
"data_sync.section.target_database": "Целевая база данных",
"data_sync.title.source_database": "База данных источника",
"data_sync.title.target_database": "Целевая база данных",
"data_sync.title.migration_options": "Параметры миграции",
"data_sync.title.sync_options": "Параметры синхронизации",
"data_sync.title.execution_log": "Журнал выполнения",
"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.transfer.source_tables": "???????? ???????",
"data_sync.transfer.selected_tables": "Выбранные таблицы",
"data_sync.transfer.item_unit": "элемент",
"data_sync.transfer.items_unit": "элементы",
"data_sync.transfer.search_placeholder": "Поиск таблиц...",
"data_sync.transfer.empty": "Нет данных",
"data_sync.title.migration_description": "Создание таблиц, импорт данных и предварительная проверка рисков от источника до цели.",
"data_sync.title.migration_workbench": "Рабочая область межбазовой миграции",
"data_sync.title.sync_description": "Сравнение различий, запуск синхронизации и подтверждение результатов с существующими целевыми таблицами.",
"data_sync.title.sync_workbench": "Рабочая область синхронизации данных",
"data_sync.title.migration": "Миграция между источниками данных",
"data_sync.title.sync": "Синхронизация данных",
"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.plan.use_existing_target_table": "Импорт в существующую целевую таблицу",
"data_sync.plan.missing_columns_auto_add": "Дополнить отсутствующие поля перед импортом: {{count}}",
"data_sync.plan.tdengine_target_missing_timestamp_auto_create_unavailable": "В исходной таблице не найден столбец времени, который можно сопоставить с первым столбцом TDengine; автоматическое создание таблицы невозможно",
"data_sync.plan.redis_mongo_keyspace_import": "Создать документы MongoDB из Redis Keys и импортировать их",
"data_sync.plan.redis_mongo_target_collection_missing_manual": "Целевая коллекция отсутствует; сначала создайте ее вручную",
"data_sync.plan.redis_mongo_target_collection_auto_create": "Целевая коллекция отсутствует; она будет автоматически создана перед импортом",
"data_sync.backend.summary.redis_mongo_planned_action": "Миграция в коллекцию {{collection}}",
"data_sync.backend.summary.mongo_redis_planned_action": "Миграция в {{target}}",
"data_sync.plan.mongo_relational_kernel_planned": "Эта пара баз данных перешла в этап планирования миграции и ожидает вывода структуры и генерации целевого диалекта",
"data_sync.progress.stage.redis_mongo_creating_collection": "Создание целевой коллекции",
"data_sync.progress.stage.redis_mongo_migrating_key": "Миграция Key ({{current}}/{{total}})",
"data_sync.progress.stage.mongo_redis_migrating_collection": "Миграция коллекции ({{current}}/{{total}})",
"data_sync.progress.stage.mongo_redis_collection_completed": "Обработка коллекции завершена",
"data_sync.backend.error.apply_changes_unsupported": "Целевой драйвер не поддерживает применение изменений данных",
"data_sync.backend.error.apply_source_query_changes_failed": "Не удалось применить изменения набора результатов SQL: {{detail}}",
"data_sync.backend.error.clear_target_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_mongodb_failed": "Не удалось подключиться к целевой MongoDB: {{detail}}",
"data_sync.backend.error.connect_target_redis_failed": "Не удалось подключиться к целевому Redis: {{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.execute_source_query_failed": "Не удалось выполнить исходный запрос: {{detail}}",
"data_sync.backend.error.init_source_mongodb_driver_failed": "Не удалось инициализировать драйвер исходной MongoDB: {{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_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.read_redis_key_failed": "Не удалось прочитать Redis Key {{key}}: {{detail}}",
"data_sync.backend.error.read_source_table_failed": "Не удалось прочитать исходную таблицу: {{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.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.scan_redis_keys_failed": "Не удалось просканировать Redis Key: {{detail}}",
"data_sync.backend.error.target_composite_pk_query_diff_unsupported": "Целевая таблица имеет составной первичный ключ ({{columns}}), поэтому анализ различий набора результатов SQL не поддерживается",
"data_sync.backend.error.target_table_columns_missing": "Целевая таблица {{table}} отсутствует или ее определения столбцов не удалось прочитать",
"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.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.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_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_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.plan.data_import_without_diff": "Текущий режим импортирует данные исходной таблицы без сравнения различий.",
"data_sync.plan.mongo_relational_entry_warning": "Для миграции {{objectKind}} из {{sourceType}} в {{targetType}} сейчас доступно только уведомление о планировании вывода структуры",
"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_existing_only_warning": "Текущая стратегия требует существующую целевую MongoDB collection; при выполнении она не будет создана автоматически",
"data_sync.plan.redis_mongo_unsupported_objects": "Redis Consumer Group / PubSub / Lua scripts / transaction state пока не мигрируются",
"data_sync.plan.target_missing_preview_unavailable": "Целевая таблица отсутствует. Предпросмотр различий недоступен.",
"data_sync.progress.stage.redis_mongo_started": "Миграция Redis -> MongoDB keyspace начата",
"data_sync.progress.stage.mongo_redis_started": "Миграция MongoDB -> Redis keyspace начата",
"data_sync.schema_inference.mongo_relational_issue": "Вывод структуры для {{sourceType}} -> {{targetType}} все еще в разработке; сейчас доступно только уведомление о планировании миграции.",
"data_sync.schema_inference.mongo_relational_resolution": "В следующих итерациях определения столбцов и политики деградации типов будут создаваться по выборочным данным.",
"data_sync.backend.unsupported.clickhouse_objects_to_pg_like": "Семантика ClickHouse ORDER BY/PARTITION/TTL/Projection/materialized-view пока не мигрируется автоматически в цели PG-like",
"data_sync.backend.warning.auto_create_pair_unsupported": "Автоматическое создание таблиц сейчас поддерживает только MySQL -> Kingbase; текущая пара={{sourceType}} -> {{targetType}}",
"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_type_degraded_clickhouse_string": "Столбец {{column}} типа {{type}} деградирован до String",
"data_sync.backend.warning.column_type_empty_clickhouse_string": "Тип столбца {{column}} пуст и деградирован до String",
"data_sync.backend.warning.column_user_defined_degraded_clickhouse_string": "Столбец {{column}} является пользовательским типом и деградирован до String",
"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.pg_like_identity_not_preserved_clickhouse": "Семантика identity/auto-increment столбца {{column}} не сохраняется в ClickHouse",
"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_table_existing_only_required": "Текущая стратегия требует существующую целевую таблицу, поэтому при выполнении она не будет создана автоматически.",
"data_sync.unsupported.clickhouse_to_tdengine_schema_semantics": "Семантика источника ORDER BY/PARTITION/TTL/Projection/materialized-view пока не мигрируется автоматически в TDengine",
"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.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_sync.backend.error.analyze_prepare_secrets_failed": "Не удалось подготовить секреты анализа синхронизации данных: {{detail}}",
"data_sync.backend.error.apply_changes_failed": "Не удалось применить изменения: {{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.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.exec_ddl_statement_failed": "Сбой на этапе {{stage}}: SQL={{sql}}, ошибка={{detail}}",
"data_sync.backend.error.mongo_read_source_samples_failed": "Не удалось прочитать образцы исходной MongoDB collection: {{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_failed": "Не удалось выполнить предпросмотр синхронизации данных: {{detail}}",
"data_sync.backend.error.preview_prepare_secrets_failed": "Не удалось подготовить секреты предпросмотра синхронизации данных: {{detail}}",
"data_sync.backend.error.read_source_table_failed_with_table": "Не удалось прочитать исходную таблицу {{table}}: {{detail}}",
"data_sync.backend.error.read_target_table_failed_with_table": "Не удалось прочитать целевую таблицу {{table}}: {{detail}}",
"data_sync.backend.error.refresh_columns_after_create_failed": "Не удалось загрузить столбцы после создания целевой таблицы: таблица={{table}}, ошибка={{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_table_columns_failed": "Не удалось получить столбцы целевой таблицы: {{detail}}",
"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.preview_ready": "Предпросмотр синхронизации данных готов",
"data_sync.backend.result.sync_completed": "Синхронизация завершена: таблиц={{tables}}, вставлено={{rowsInserted}}, обновлено={{rowsUpdated}}, удалено={{rowsDeleted}}",
"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.backend.warning.apply_changes_unsupported": "Целевой драйвер не поддерживает применение изменений данных.",
"data_sync.backend.warning.auto_add_column_sql_generation_failed": "Не удалось создать SQL для автоматического добавления столбца {{column}}: {{detail}}",
"data_sync.backend.warning.auto_increment_not_preserved_existing_target_add_column": "Столбец {{column}} является автоинкрементным; {{feature}} не будет автоматически создан заново при добавлении в существующую целевую таблицу",
"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_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.composite_pk_skipped": "Таблица {{table}} имеет составной первичный ключ ({{columns}}); синхронизация различий пока не поддерживается и пропущена",
"data_sync.backend.warning.full_overwrite_clearing_target": "Режим полной перезаписи: целевая таблица {{table}} будет очищена",
"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_unsigned_bigint_auto_increment_degraded": "Столбец {{column}} является unsigned bigint auto_increment; он деградирован до {{targetType}}, семантика автоинкремента не сохранена",
"data_sync.backend.warning.refresh_columns_after_add_failed": "Не удалось обновить целевые столбцы после добавления: таблица={{table}}, ошибка={{detail}}",
"data_sync.backend.warning.redis_mongo_full_overwrite_downgrade": "При миграции Redis -> MongoDB полная перезапись понижается до инкрементальной синхронизации",
"data_sync.backend.warning.source_indexes_read_failed": "Не удалось прочитать индексы исходной таблицы; миграция индексов пропущена: {{detail}}",
"data_sync.backend.warning.table_pk_required_skipped": "У таблицы {{table}} нет первичного ключа; текущий режим требует сравнения различий, таблица пропущена",
"data_sync.backend.warning.target_missing_skip_auto_create_disabled": "Целевая таблица для {{table}} отсутствует; текущая стратегия не разрешает автоматическое создание таблицы, поэтому она пропущена",
"data_sync.backend.warning.unknown_content_default_data": "Неизвестное содержимое синхронизации {{content}}; автоматически выбран режим только данных",
"data_sync.backend.warning.unknown_mode_default_insert_update": "Неизвестный режим синхронизации {{mode}}; автоматически выбрана инкрементальная синхронизация",
"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.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.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, проверки целевых столбцов не выполняются",
"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_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.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.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 для представлений не выводится).",
"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.database_name_required": "Имя базы данных не может быть пустым",
"file.backend.error.directory_path_required": "Путь к каталогу не может быть пустым",
"file.backend.error.export_unsupported_format": "Неподдерживаемый формат экспорта: {{format}}",
"file.backend.error.file_path_empty": "Путь к файлу пуст",
"file.backend.error.file_path_required": "Путь к файлу не может быть пустым",
"file.backend.error.import_file_empty": "Путь к файлу не может быть пустым",
"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_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.open_file_failed": "Не удалось открыть файл: {{detail}}",
"file.backend.error.query_required": "Запрос не может быть пустым",
"file.backend.error.read_file_error_summary": "Ошибка чтения файла: {{detail}}. Выполнено: {{count}}.",
"file.backend.error.read_file_info_failed": "Не удалось прочитать информацию о файле: {{detail}}",
"file.backend.error.selected_path_not_directory": "Выбранный путь не является каталогом",
"file.backend.error.selected_path_not_sql_file": "Выбранный путь не является SQL-файлом",
"file.backend.error.select_with_query_required": "Поддерживается экспорт только SELECT/WITH-запросов",
"file.backend.error.task_not_found": "Задача не найдена",
"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.write_failed": "Ошибка записи: {{detail}}",
"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.filter.all_files": "Все файлы",
"file.backend.filter.all_files_pattern": "Все файлы (*.*)",
"file.backend.filter.connection_package": "Пакет подключений GoNavi (*.gonavi-conn)",
"file.backend.filter.database_files": "Файлы баз данных",
"file.backend.filter.data_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",
"ai_service.backend.message.provider_test_success": "Проверка подключения к эндпоинту выполнена успешно",
"ai_service.backend.error.provider_test_failed": "Проверка подключения не удалась: {{detail}}",
"ai_service.backend.error.provider_auth_failed": "API Key недействителен или запрос был отклонен (HTTP {{status}}){{body}}",
"ai_service.backend.error.provider_http_status_failed": "Эндпоинт вернул неожиданный статус (HTTP {{status}}){{body}}",
"ai_service.backend.error.provider_http_server_error": "Вышестоящий сервер вернул внутреннюю ошибку (HTTP {{status}}){{body}}",
"ai_service.backend.error.provider_request_create_failed": "Не удалось создать запрос: {{detail}}",
"ai_service.backend.error.provider_request_serialize_failed": "Не удалось сериализовать запрос: {{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_secret_delete_failed": "Не удалось удалить Provider secret: {{detail}}",
"ai_service.backend.error.provider_secret_load_failed": "Не удалось загрузить AI Provider secret (provider={{provider}}): {{detail}}",
"ai_service.backend.error.config_rewrite_failed": "Не удалось перезаписать конфигурацию AI: {{detail}}",
"ai_service.backend.error.config_read_failed": "Не удалось прочитать конфигурацию AI: {{detail}}",
"ai_service.backend.error.config_load_failed": "Не удалось загрузить конфигурацию AI: {{detail}}",
"ai_service.backend.error.config_serialize_failed": "Не удалось сериализовать конфигурацию AI: {{detail}}",
"ai_service.backend.error.config_dir_create_failed": "Не удалось создать каталог конфигурации: {{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.secret_store_unavailable": "Secret store недоступен: {{detail}}",
"ai_service.backend.error.provider_secret_bundle_parse_failed": "Не удалось разобрать provider secret bundle: {{detail}}",
"ai_service.backend.error.models_request_create_failed": "Не удалось создать запрос списка моделей: {{detail}}",
"ai_service.backend.error.models_request_failed": "Не удалось запросить список моделей: {{detail}}",
"ai_service.backend.error.models_http_status_failed": "Эндпоинт списка моделей вернул неожиданный статус (HTTP {{status}}){{body}}",
"ai_service.backend.error.models_parse_failed": "Не удалось разобрать список моделей: {{detail}}",
"ai_service.backend.error.active_provider_not_found": "Активный AI Provider не найден",
"ai_service.backend.error.editable_provider_not_found": "AI Provider для редактирования не найден: {{detail}}",
"ai_service.backend.error.provider_not_configured": "AI Provider не настроен. Сначала настройте его в параметрах.",
"ai_service.backend.error.volcengine_coding_models_empty": "Текущий эндпоинт не вернул доступные модели Volcengine Coding Plan. Проверьте права аккаунта или переключитесь на Provider \"Volcengine Ark\"",
"ai_service.backend.error.session_missing": "Сеанс не существует",
"ai_service.backend.error.session_corrupt": "Данные сеанса повреждены",
"ai_service.backend.error.sessions_dir_create_failed": "Не удалось создать каталог sessions: {{detail}}",
"ai_service.backend.error.session_serialize_failed": "Не удалось сериализовать данные сеанса: {{detail}}",
"ai_service.backend.error.session_write_failed": "Не удалось сохранить сеанс: {{detail}}",
"ai_service.backend.error.session_delete_failed": "Не удалось удалить сеанс: {{detail}}",
"ai_service.backend.warning.sql_drop": "SQL высокого риска: DROP безвозвратно удаляет объекты базы данных",
"ai_service.backend.warning.sql_truncate": "SQL высокого риска: TRUNCATE удаляет все строки из таблицы",
"ai_service.backend.warning.sql_delete_without_where": "SQL высокого риска: DELETE без WHERE удалит все строки",
"ai_service.backend.warning.sql_update_without_where": "SQL высокого риска: UPDATE без WHERE обновит все строки",
"jvm_monitoring_charts.title.heap": "Память кучи",
"jvm_monitoring_charts.title.gc": "Сборка мусора",
"jvm_monitoring_charts.title.threads": "Потоки",
"jvm_monitoring_charts.title.classes": "Загрузка классов",
"jvm_monitoring_charts.empty.heap.no_samples": "Пока нет выборок памяти кучи",
"jvm_monitoring_charts.empty.heap.metric_unavailable": "Текущий источник мониторинга не предоставляет метрики памяти кучи",
"jvm_monitoring_charts.empty.gc.no_samples": "Пока нет выборок сборки мусора",
"jvm_monitoring_charts.empty.gc.metric_unavailable": "Текущий источник мониторинга не предоставляет метрики сборки мусора",
"jvm_monitoring_charts.empty.threads.no_samples": "Пока нет выборок потоков",
"jvm_monitoring_charts.empty.threads.metric_unavailable": "Текущий источник мониторинга не предоставляет метрики потоков",
"jvm_monitoring_charts.empty.classes.no_samples": "Пока нет выборок загрузки классов",
"jvm_monitoring_charts.empty.classes.metric_unavailable": "Текущий источник мониторинга не предоставляет метрики загрузки классов",
"jvm_monitoring_charts.legend.heap_used": "Использовано кучи",
"jvm_monitoring_charts.legend.heap_committed": "Зарезервировано кучи",
"jvm_monitoring_charts.legend.gc_count": "Количество GC",
"jvm_monitoring_charts.legend.gc_time_ms": "Время GC (мс)",
"jvm_monitoring_charts.legend.thread_count": "Количество потоков",
"jvm_monitoring_charts.legend.daemon_thread_count": "Демон-потоки",
"jvm_monitoring_charts.legend.peak_thread_count": "Пиковое количество потоков",
"jvm_monitoring_charts.legend.loaded_classes": "Загруженные классы",
"jvm_monitoring_charts.legend.unloaded_classes": "Выгруженные классы",
"jvm_monitoring_status_cards.title.heap": "Память кучи",
"jvm_monitoring_status_cards.title.gc_pressure": "Нагрузка GC",
"jvm_monitoring_status_cards.title.threads": "Потоки",
"jvm_monitoring_status_cards.title.classes": "Загрузка классов",
"jvm_monitoring_status_cards.meta.heap_committed": "Зарезервировано {{value}}",
"jvm_monitoring_status_cards.meta.waiting_samples": "Ожидание выборок",
"jvm_monitoring_status_cards.meta.gc_total_time": "Всего {{value}}",
"jvm_monitoring_status_cards.meta.thread_peak": "Пик {{value}}",
"jvm_monitoring_status_cards.status.sampling": "Идет сбор",
"jvm_monitoring_status_cards.status.stopped": "Остановлено",
"jvm_monitoring_status_cards.thread_state.runnable_count": "Готово к выполнению {{count}}",
"jvm_monitoring_detail_panel.title.troubleshooting_metrics": "Метрики диагностики",
"jvm_monitoring_detail_panel.title.thread_state_distribution": "Распределение состояний потоков",
"jvm_monitoring_detail_panel.title.recent_gc_details": "Последние сведения о сборке мусора",
"jvm_monitoring_detail_panel.title.capabilities_and_degradation": "Возможности и деградация",
"jvm_monitoring_detail_panel.field.process_cpu": "CPU процесса",
"jvm_monitoring_detail_panel.field.system_cpu": "CPU системы",
"jvm_monitoring_detail_panel.field.process_physical_memory": "Физическая память процесса",
"jvm_monitoring_detail_panel.field.process_virtual_memory": "Виртуальная память процесса",
"jvm_monitoring_detail_panel.memory_missing.title": "Почему отсутствует физическая память процесса",
"jvm_monitoring_detail_panel.memory_missing.jmx": "Подключение JMX не предоставляет атрибут резидентной физической памяти процесса, поэтому сейчас можно читать только метрику виртуальной памяти процесса. Чтобы собирать физическую память процесса, переключитесь на HTTP endpoint или расширенный agent.",
"jvm_monitoring_detail_panel.memory_missing.default": "Текущий источник мониторинга не вернул метрику резидентной физической памяти процесса. Проверьте, что HTTP endpoint или расширенный agent собирает и передает физическую память процесса.",
"jvm_monitoring_detail_panel.empty.thread_states": "Пока нет выборок состояний потоков.",
"jvm_monitoring_detail_panel.empty.gc_events_unavailable": "Текущий источник мониторинга не предоставляет событийные данные сборки мусора.",
"jvm_monitoring_detail_panel.empty.recent_gc_events": "В последнем окне нет событий сборки мусора.",
"jvm_monitoring_detail_panel.gc.before": "До сборки",
"jvm_monitoring_detail_panel.gc.after": "После сборки",
"jvm_monitoring_presentation.metric.heap_used": "Память heap",
"jvm_monitoring_presentation.metric.heap_non_heap": "Память non-heap",
"jvm_monitoring_presentation.metric.gc_count": "Количество сборок мусора",
"jvm_monitoring_presentation.metric.gc_time": "Время сборки мусора",
"jvm_monitoring_presentation.metric.gc_events": "Последние события сборки мусора",
"jvm_monitoring_presentation.metric.thread_count": "Количество потоков",
"jvm_monitoring_presentation.metric.thread_states": "Состояния потоков",
"jvm_monitoring_presentation.metric.class_loading": "Загрузка классов",
"jvm_monitoring_presentation.metric.cpu_process": "CPU процесса",
"jvm_monitoring_presentation.metric.cpu_system": "CPU системы",
"jvm_monitoring_presentation.metric.memory_rss": "Физическая память процесса",
"jvm_monitoring_presentation.metric.memory_virtual": "Виртуальная память процесса",
"jvm_monitoring_presentation.thread_state.new": "Новый",
"jvm_monitoring_presentation.thread_state.runnable": "Готов к выполнению",
"jvm_monitoring_presentation.thread_state.blocked": "Заблокирован",
"jvm_monitoring_presentation.thread_state.waiting": "Ожидает",
"jvm_monitoring_presentation.thread_state.timed_waiting": "Ожидает с тайм-аутом",
"jvm_monitoring_presentation.thread_state.terminated": "Завершен",
"jvm_monitoring_presentation.availability.missing_metrics": "Отсутствующие метрики: {{metrics}}",
"jvm_monitoring_presentation.availability.provider_warnings": "Предупреждение источника мониторинга: {{warnings}}",
"jvm_monitoring_presentation.availability.no_obvious_degradation": "В текущем сеансе мониторинга явная деградация не обнаружена.",
"jvm_change_preview_modal.title": "Предпросмотр изменения JVM",
"jvm_change_preview_modal.status.no_preview": "Нет результата предпросмотра",
"jvm_change_preview_modal.status.generated": "Предпросмотр создан",
"jvm_change_preview_modal.action.confirm_execute": "Подтвердить выполнение",
"jvm_change_preview_modal.action.close": "Закрыть",
"jvm_change_preview_modal.section.summary": "Сводка изменения",
"jvm_change_preview_modal.section.before": "До изменения",
"jvm_change_preview_modal.section.after": "После изменения",
"jvm_change_preview_modal.field.resource_id": "ID ресурса",
"jvm_change_preview_modal.field.version": "Версия",
"jvm_change_preview_modal.field.format": "Формат",
"jvm_change_preview_modal.risk.label": "Риск: {{level}}",
"jvm_change_preview_modal.risk.low": "Низкий",
"jvm_change_preview_modal.risk.medium": "Средний",
"jvm_change_preview_modal.risk.high": "Высокий",
"jvm_change_preview_modal.risk.unknown": "Неизвестно",
"jvm_change_preview_modal.permission.requires_confirmation": "Требуется подтверждение",
"jvm_change_preview_modal.permission.allowed": "Выполнение разрешено",
"jvm_change_preview_modal.permission.forbidden": "Выполнение запрещено",
"jvm_change_preview_modal.blocking.label": "Причина блокировки",
"jvm_change_preview_modal.blocking.alert_message": "Текущее изменение нельзя выполнить",
"jvm_diagnostic.completion.category.observe": "команда наблюдения",
"jvm_diagnostic.completion.category.trace": "команда трассировки",
"jvm_diagnostic.completion.category.mutating": "команда высокого риска",
"jvm_diagnostic.completion.category.control": "команда управления",
"jvm_diagnostic.completion.preset.category.observe": "команда наблюдения",
"jvm_diagnostic.completion.preset.category.trace": "команда трассировки",
"jvm_diagnostic.completion.preset.category.mutating": "команда высокого риска",
"jvm_diagnostic.completion.preset.thread-top.documentation": "Показывает самые загруженные потоки, чтобы быстро найти заблокированные потоки или потоки с высокой нагрузкой CPU.",
"jvm_diagnostic.completion.preset.dashboard.documentation": "Показывает сводку времени выполнения JVM.",
"jvm_diagnostic.completion.preset.trace-slow-method.documentation": "Трассирует пути медленных вызовов методов.",
"jvm_diagnostic.completion.preset.watch-return.documentation": "Наблюдает параметры и возвращаемые значения.",
"jvm_diagnostic.completion.preset.ognl-sample.documentation": "Команда выражения высокого риска, по умолчанию показана только как пример.",
"jvm_diagnostic.completion.command.dashboard.documentation": "Показывает сводку времени выполнения JVM.",
"jvm_diagnostic.completion.command.jvm.documentation": "Показывает память JVM, потоки, загрузку классов, GC и аргументы запуска.",
"jvm_diagnostic.completion.command.thread.documentation": "Показывает горячие потоки, стеки потоков и заблокированные потоки.",
"jvm_diagnostic.completion.command.sc.documentation": "Ищет подходящую информацию о классах.",
"jvm_diagnostic.completion.command.sm.documentation": "Показывает сигнатуры методов класса.",
"jvm_diagnostic.completion.command.jad.documentation": "Декомпилирует указанный класс.",
"jvm_diagnostic.completion.command.sysprop.documentation": "Показывает системные свойства.",
"jvm_diagnostic.completion.command.sysenv.documentation": "Показывает переменные окружения.",
"jvm_diagnostic.completion.command.classloader.documentation": "Показывает информацию о загрузчиках классов.",
"jvm_diagnostic.completion.command.trace.documentation": "Трассирует временные пути вызовов методов.",
"jvm_diagnostic.completion.command.watch.documentation": "Наблюдает параметры, возвращаемые значения или исключения.",
"jvm_diagnostic.completion.command.stack.documentation": "Выводит стеки вызовов методов.",
"jvm_diagnostic.completion.command.monitor.documentation": "Периодически собирает статистику вызовов методов.",
"jvm_diagnostic.completion.command.tt.documentation": "Временной туннель методов для записи и повторного воспроизведения вызовов.",
"jvm_diagnostic.completion.command.ognl.documentation": "Выполняет выражение OGNL; по умолчанию требуется дополнительная авторизация.",
"jvm_diagnostic.completion.command.vmtool.documentation": "Напрямую работает с объектами JVM или выполняет действия VMTool.",
"jvm_diagnostic.completion.command.redefine.documentation": "Переопределяет байткод класса.",
"jvm_diagnostic.completion.command.retransform.documentation": "Повторно запускает преобразование класса.",
"jvm_diagnostic.completion.command.stop.documentation": "Останавливает текущую фоновую задачу.",
"jvm_diagnostic.completion.detail.execute_directly": "выполнить напрямую",
"jvm_diagnostic.completion.detail.thread_option": "параметр потока",
"jvm_diagnostic.completion.detail.class_search_template": "шаблон поиска класса",
"jvm_diagnostic.completion.detail.method_search_template": "шаблон поиска метода",
"jvm_diagnostic.completion.detail.decompile_template": "шаблон декомпиляции",
"jvm_diagnostic.completion.detail.system_property_template": "шаблон системного свойства",
"jvm_diagnostic.completion.detail.environment_variable_template": "шаблон переменной окружения",
"jvm_diagnostic.completion.detail.classloader_template": "шаблон загрузчика классов",
"jvm_diagnostic.completion.detail.trace_template": "шаблон trace",
"jvm_diagnostic.completion.detail.trace_option": "параметр trace",
"jvm_diagnostic.completion.detail.watch_template": "шаблон watch",
"jvm_diagnostic.completion.detail.watch_option": "параметр watch",
"jvm_diagnostic.completion.detail.stack_template": "шаблон stack",
"jvm_diagnostic.completion.detail.monitor_template": "шаблон monitor",
"jvm_diagnostic.completion.detail.time_tunnel_template": "шаблон временного туннеля",
"jvm_diagnostic.completion.detail.high_risk_template": "шаблон высокого риска",
"jvm_diagnostic.completion.argument.command_template.label": "шаблон {{command}}",
"jvm_diagnostic.completion.argument.detail_mode_d.label": "Подробный режим (-d)",
"jvm_diagnostic.completion.argument.dashboard.direct.label": "dashboard",
"jvm_diagnostic.completion.argument.dashboard.direct.documentation": "Показывает текущую сводку времени выполнения JVM.",
"jvm_diagnostic.completion.argument.jvm.direct.label": "jvm",
"jvm_diagnostic.completion.argument.jvm.direct.documentation": "Показывает память JVM, потоки, загрузку классов, GC и аргументы запуска.",
"jvm_diagnostic.completion.argument.thread.busy_top.label": "Загруженные потоки TOP N (-n)",
"jvm_diagnostic.completion.argument.thread.busy_top.documentation": "Показывает N потоков с наибольшей нагрузкой CPU.",
"jvm_diagnostic.completion.argument.thread.blocking.label": "Заблокированные потоки (-b)",
"jvm_diagnostic.completion.argument.thread.blocking.documentation": "Находит потоки, которые сейчас блокируют другие потоки.",
"jvm_diagnostic.completion.argument.thread.thread_id.label": "Указанный ID потока",
"jvm_diagnostic.completion.argument.thread.thread_id.documentation": "Показывает подробную информацию о стеке указанного потока.",
"jvm_diagnostic.completion.argument.sc.class_pattern.label": "Шаблон класса",
"jvm_diagnostic.completion.argument.sc.class_pattern.documentation": "Ищет по шаблону имени класса.",
"jvm_diagnostic.completion.argument.sc.detail.documentation": "Выводит подробную информацию о классе.",
"jvm_diagnostic.completion.argument.sm.method_signature.label": "Шаблон сигнатуры метода",
"jvm_diagnostic.completion.argument.sm.method_signature.documentation": "Показывает сигнатуры методов класса.",
"jvm_diagnostic.completion.argument.sm.detail.documentation": "Выводит подробные сигнатуры методов.",
"jvm_diagnostic.completion.argument.jad.template.label": "Шаблон декомпиляции",
"jvm_diagnostic.completion.argument.jad.template.documentation": "Декомпилирует указанный класс.",
"jvm_diagnostic.completion.argument.sysprop.property.label": "Показать свойство",
"jvm_diagnostic.completion.argument.sysprop.property.documentation": "Читает указанное системное свойство.",
"jvm_diagnostic.completion.argument.sysenv.variable.label": "Показать переменную окружения",
"jvm_diagnostic.completion.argument.sysenv.variable.documentation": "Читает указанную переменную окружения.",
"jvm_diagnostic.completion.argument.classloader.tree.label": "Древовидный вид (-t)",
"jvm_diagnostic.completion.argument.classloader.tree.documentation": "Выводит дерево загрузчиков классов.",
"jvm_diagnostic.completion.argument.classloader.url_stat.label": "Вся статистика URL (--url-stat)",
"jvm_diagnostic.completion.argument.classloader.url_stat.documentation": "Показывает статистику URL загрузчиков классов.",
"jvm_diagnostic.completion.argument.classloader.hash.label": "Указанный Hash загрузчика классов",
"jvm_diagnostic.completion.argument.classloader.hash.documentation": "Показывает детали указанного загрузчика классов.",
"jvm_diagnostic.completion.argument.trace.template.documentation": "Трассирует цепочки медленных вызовов методов.",
"jvm_diagnostic.completion.argument.trace.condition.label": "Фильтр условия '#cost > 100'",
"jvm_diagnostic.completion.argument.trace.condition.documentation": "Добавляет выражение условия trace.",
"jvm_diagnostic.completion.argument.watch.template.documentation": "Наблюдает параметры, возвращаемые значения или исключения.",
"jvm_diagnostic.completion.argument.watch.expand_depth.label": "Глубина раскрытия -x 2",
"jvm_diagnostic.completion.argument.watch.expand_depth.documentation": "Задает глубину раскрытия объекта.",
"jvm_diagnostic.completion.argument.stack.template.documentation": "Выводит стеки вызовов методов.",
"jvm_diagnostic.completion.argument.monitor.template.documentation": "Собирает статистику вызовов методов с интервалом.",
"jvm_diagnostic.completion.argument.tt.record.label": "шаблон записи tt",
"jvm_diagnostic.completion.argument.tt.record.documentation": "Записывает вызовы указанного метода.",
"jvm_diagnostic.completion.argument.tt.list.label": "Показать список записей (-l)",
"jvm_diagnostic.completion.argument.tt.list.documentation": "Показывает текущий список записей.",
"jvm_diagnostic.completion.argument.tt.replay.label": "Воспроизвести запись (-i)",
"jvm_diagnostic.completion.argument.tt.replay.documentation": "Показывает детали указанной записи.",
"jvm_diagnostic.completion.argument.ognl.template.documentation": "Выполняет выражение OGNL; команды высокого риска по умолчанию ограничены политикой.",
"jvm_diagnostic.completion.argument.vmtool.get_instances.label": "vmtool getInstances",
"jvm_diagnostic.completion.argument.vmtool.get_instances.documentation": "Получает экземпляры указанного класса; команды высокого риска по умолчанию ограничены политикой.",
"jvm_diagnostic.completion.argument.redefine.template.documentation": "Переопределяет путь к файлу байткода класса.",
"jvm_diagnostic.completion.argument.retransform.template.documentation": "Повторно преобразует указанный класс.",
"jvm_diagnostic.completion.argument.stop.direct.label": "stop",
"jvm_diagnostic.completion.argument.stop.direct.documentation": "Останавливает текущую фоновую задачу.",
"app.about.action.open_install_directory": "Открыть каталог установки",
"app.about.action.install_update": "Установить обновление",
"app.about.action.hide_to_background": "Скрыть в фон",
"app.about.download_progress.title": "Скачать обновление",
"app.about.download_progress.title_with_version": "Скачать обновление {{version}}",
"app.about.update_status.not_checked": "Не проверялось",
"app.about.update_status.checking": "Проверка обновлений...",
"app.about.update_status.check_failed": "Проверка обновлений не удалась: {{error}}",
"app.about.update_status.new_version_downloaded": "Найдена новая версия {{version}} (загружена; откройте ход загрузки для установки)",
"app.about.update_status.new_version_not_downloaded": "Найдена новая версия {{version}} (не загружена)",
"app.about.update_status.latest": "У вас установлена последняя версия ({{version}})",
"app.about.message.update_package_ready": "Пакет обновления готов ({{version}})",
"app.about.message.update_package_ready_with_path": "Пакет обновления готов ({{version}}), путь: {{path}}",
"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.open_install_directory_failed_with_error": "Не удалось открыть каталог установки: {{error}}",
"app.about.message.install_failed_with_error": "Не удалось установить обновление: {{error}}",
"app.about.message.check_failed_with_error": "Проверка обновлений не удалась: {{error}}",
"app.about.message.new_version_found": "Найдена новая версия {{version}}",
"app.theme.font_family.title": "Семейство шрифтов",
"app.theme.font_family.ui_title": "Семейство шрифтов UI",
"app.theme.font_family.mono_title": "Моноширинное семейство шрифтов",
"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.data_table.density": "Плотность таблицы",
"app.theme.data_table.density.comfortable": "Комфортная",
"app.theme.data_table.density.standard": "Стандартная",
"app.theme.data_table.density.compact": "Компактная",
"app.theme.data_table.density_hint": "Управляет высотой строк, шириной столбцов и отступами. Комфортная плотность удобна для больших экранов; компактная увеличивает плотность информации. Ширина столбцов, измененная вручную, сохраняется в приоритете.",
"app.theme.data_table.font_size": "Размер шрифта таблицы данных",
"app.theme.data_table.sidebar_tree_font_size": "Размер шрифта левого дерева схем",
"app.theme.data_table.follow_global": "Следовать глобально",
"sidebar.message.operation_rename_failed": "Не удалось переименовать: {{error}}",
"sidebar.message.operation_drop_failed": "Не удалось удалить: {{error}}",
"sidebar.v2_database_menu.meta": "{{dialect}} · Действия с базой данных",
"sidebar.v2_database_menu.new_schema": "Новая schema",
"sidebar.v2_database_menu.new_materialized_view": "Новое материализованное представление",
"sidebar.v2_database_menu.new_external_catalog": "Новый внешний Catalog",
"sidebar.v2_database_menu.refresh_object_tree": "Обновить дерево объектов",
"sidebar.v2_database_menu.export_backup_section": "Экспорт и резервное копирование",
"sidebar.v2_database_menu.export_all_table_schema_sql": "Экспортировать схемы всех таблиц · SQL",
"sidebar.v2_database_menu.backup_all_tables_sql": "Резервная копия всех таблиц · схема + данные SQL",
"ai_settings.message.load_provider_failed": "Не удалось прочитать конфигурацию поставщика"
}