mirror of
https://github.com/tinyhumansai/openhuman.git
synced 2026-07-27 21:08:00 +00:00
4497 lines
356 KiB
TypeScript
4497 lines
356 KiB
TypeScript
import type { TranslationMap } from './types';
|
||
|
||
// Russian (Русский) translations. Keys mirror en.ts; missing/
|
||
// English-identical values fall back to English via I18nContext.resolveEn().
|
||
const messages: TranslationMap = {
|
||
'nav.home': 'Главная',
|
||
'nav.human': 'Человек',
|
||
'nav.chat': 'Чат',
|
||
'nav.connections': 'Подключения',
|
||
'nav.memory': 'Интеллект',
|
||
'nav.alerts': 'Оповещения',
|
||
'nav.rewards': 'Награды',
|
||
'nav.settings': 'Настройки',
|
||
'common.cancel': 'Отмена',
|
||
'common.save': 'Сохранить',
|
||
'common.confirm': 'Подтвердить',
|
||
'common.delete': 'Удалить',
|
||
'common.edit': 'Редактировать',
|
||
'common.create': 'Создать',
|
||
'common.search': 'Поиск',
|
||
'common.loading': 'загрузка…',
|
||
'common.error': 'Ошибка',
|
||
'common.success': 'Готово',
|
||
'common.back': 'Назад',
|
||
'common.next': 'Далее',
|
||
'common.finish': 'Завершить',
|
||
'common.close': 'Закрыть',
|
||
'common.enabled': 'Включено',
|
||
'common.disabled': 'Отключено',
|
||
'common.on': 'Вкл',
|
||
'common.off': 'Выкл',
|
||
'common.yes': 'Да',
|
||
'common.no': 'Нет',
|
||
'common.ok': 'Понятно',
|
||
'common.name': 'Имя',
|
||
'common.retry': 'Повторить',
|
||
'common.copy': 'Копировать',
|
||
'common.copied': 'Скопировано',
|
||
'common.learnMore': 'Узнать больше',
|
||
'common.seeAll': 'Посмотреть',
|
||
'common.dismiss': 'Закрыть',
|
||
'common.clear': 'Очистить',
|
||
'common.reset': 'Сбросить',
|
||
'common.refresh': 'Обновить',
|
||
'common.export': 'Экспорт',
|
||
'common.import': 'Импорт',
|
||
'common.upload': 'Загрузить',
|
||
'common.download': 'Скачать',
|
||
'common.add': 'Добавить',
|
||
'common.remove': 'Убрать',
|
||
'common.showMore': 'Показать больше',
|
||
'common.showLess': 'Показать меньше',
|
||
'common.submit': 'Отправить',
|
||
'common.continue': 'Продолжить',
|
||
'common.comingSoon': 'Скоро',
|
||
'common.breadcrumb': 'Breadcrumb',
|
||
'settings.general': 'Общие',
|
||
'settings.featuresAndAI': 'Функции и AI',
|
||
'settings.billingAndRewards': 'Оплата и награды',
|
||
'settings.support': 'Поддержка',
|
||
'settings.advanced': 'Дополнительно',
|
||
'settings.dangerZone': 'Опасная зона',
|
||
'settings.account': 'Аккаунт',
|
||
'settings.accountDesc': 'Фраза восстановления, команда, подключения и конфиденциальность',
|
||
'settings.notifications': 'Уведомления',
|
||
'settings.notificationsDesc':
|
||
'Режим «Не беспокоить» и настройки уведомлений для каждого аккаунта',
|
||
'settings.notifications.tabs.preferences': 'Настройки',
|
||
'settings.notifications.tabs.routing': 'Маршрутизация',
|
||
'settings.features': 'Функции',
|
||
'settings.featuresDesc': 'Слежение за экраном, мессенджеры и инструменты',
|
||
'settings.aiModels': 'AI и модели',
|
||
'settings.aiModelsDesc': 'Настройка локальных AI-моделей, загрузки и LLM-провайдер',
|
||
'settings.ai': 'Настройки AI',
|
||
'settings.aiDesc': 'Облачные провайдеры, локальные модели Ollama и маршрутизация по задачам',
|
||
'settings.billingUsage': 'Оплата и использование',
|
||
'settings.billingUsageDesc': 'Подписка, кредиты и способы оплаты',
|
||
'settings.rewards': 'Награды',
|
||
'settings.rewardsDesc': 'Рефералы, купоны и заработанные кредиты',
|
||
'settings.restartTour': 'Повторить тур',
|
||
'settings.restartTourDesc': 'Запустить обучение заново с самого начала',
|
||
'settings.about': 'О приложении',
|
||
'settings.aboutDesc': 'Версия приложения и обновления',
|
||
'settings.developerOptions': 'Дополнительно',
|
||
'settings.developerOptionsDesc':
|
||
'Настройки AI, каналы связи, инструменты, диагностика и панели отладки',
|
||
'settings.clearAppData': 'Очистить данные приложения',
|
||
'settings.clearAppDataDesc': 'Выйти из аккаунта и удалить все локальные данные приложения',
|
||
'settings.logOut': 'Выйти',
|
||
'settings.logOutDesc': 'Выйти из своего аккаунта',
|
||
'settings.exitLocalSession': 'Выход из локального сеанса',
|
||
'settings.exitLocalSessionDesc': 'Возврат к экрану входа в систему',
|
||
'settings.language': 'Язык',
|
||
'settings.betaBuild': 'Бета-сборка — v{version}',
|
||
'settings.languageDesc': 'Язык отображения интерфейса',
|
||
'settings.alerts': 'Оповещения',
|
||
'settings.alertsDesc': 'Смотри последние оповещения и активность во входящих',
|
||
'settings.account.recoveryPhrase': 'Фраза восстановления',
|
||
'settings.account.recoveryPhraseDesc': 'Просмотр и резервное копирование фразы восстановления',
|
||
'settings.account.team': 'Команда',
|
||
'settings.account.teamDesc': 'Управление участниками команды и правами',
|
||
'settings.account.connections': 'Подключения',
|
||
'settings.account.connectionsDesc': 'Управление привязанными аккаунтами и сервисами',
|
||
'settings.account.privacy': 'Конфиденциальность',
|
||
'settings.account.privacyDesc': 'Контролируй, какие данные покидают твой компьютер',
|
||
'migration.title': 'Импорт из другого ассистента',
|
||
'migration.description':
|
||
'Перенесите память и заметки из другого локального ассистента в это рабочее пространство. Сначала запустите «Предпросмотр», чтобы увидеть, что изменится, затем нажмите «Применить», чтобы скопировать данные. Текущая память сохраняется в резервную копию первой.',
|
||
'migration.vendorLabel': 'Источник',
|
||
'migration.vendor.openclaw': 'OpenClaw',
|
||
'migration.vendor.hermes': 'Hermes Agent',
|
||
'migration.sourceLabel': 'Путь к исходному рабочему пространству (необязательно)',
|
||
'migration.sourcePlaceholder':
|
||
'Оставьте пустым для автоопределения (например, ~/.openclaw/workspace)',
|
||
'migration.sourcePlaceholderHermes': 'Оставьте пустым для автоопределения (например, ~/.hermes)',
|
||
'migration.sourceHint':
|
||
'Если пусто, используется стандартное расположение источника. Укажите явный путь, если вы перенесли рабочее пространство.',
|
||
'migration.previewAction': 'Предпросмотр',
|
||
'migration.previewRunning': 'Предпросмотр…',
|
||
'migration.applyAction': 'Применить импорт',
|
||
'migration.applyRunning': 'Импорт…',
|
||
'migration.applyDisclaimer':
|
||
'«Применить» разблокируется только после успешного предпросмотра того же источника. Существующая память сохраняется перед любым импортом.',
|
||
'migration.reportTitlePreview': 'Предпросмотр — ничего ещё не импортировано',
|
||
'migration.reportTitleApplied': 'Импорт завершён',
|
||
'migration.report.source': 'Исходное пространство',
|
||
'migration.report.target': 'Целевое пространство',
|
||
'migration.report.fromSqlite': 'Из SQLite (brain.db)',
|
||
'migration.report.fromMarkdown': 'Из Markdown',
|
||
'migration.report.imported': 'Импортировано',
|
||
'migration.report.skippedUnchanged': 'Пропущено (без изменений)',
|
||
'migration.report.renamedConflicts': 'Переименовано при конфликте',
|
||
'migration.report.warnings': 'Предупреждения',
|
||
'migration.report.previewHint':
|
||
'Данные ещё не импортированы. Нажмите «Применить импорт», чтобы скопировать.',
|
||
'migration.report.appliedHint':
|
||
'Импортированные записи теперь в вашей памяти. Запустите «Предпросмотр» снова для сравнения.',
|
||
'migration.confirmImport.singular':
|
||
'Импортировать {count} запись в текущее рабочее пространство?\n\nИсточник: {source}\nЦель: {target}\n\nПеред импортом будет сохранена резервная копия памяти.',
|
||
'migration.confirmImport.plural':
|
||
'Импортировать {count} записей в текущее рабочее пространство?\n\nИсточник: {source}\nЦель: {target}\n\nПеред импортом будет сохранена резервная копия памяти.',
|
||
'settings.notifications.doNotDisturb': 'Не беспокоить',
|
||
'settings.notifications.doNotDisturbDesc': 'Отключить все уведомления на заданный период',
|
||
'settings.notifications.channelControls': 'По каналам',
|
||
'settings.notifications.channelControlsDesc': 'Настройка уведомлений для каждого канала',
|
||
'settings.features.screenAwareness': 'Слежение за экраном',
|
||
'settings.features.screenAwarenessDesc': 'Разреши ассистенту видеть активное окно',
|
||
'settings.features.messaging': 'Мессенджеры',
|
||
'settings.features.messagingDesc': 'Настройки каналов и интеграции мессенджеров',
|
||
'settings.features.tools': 'Инструменты',
|
||
'settings.features.toolsDesc': 'Управление подключёнными инструментами и интеграциями',
|
||
'settings.ai.localSetup': 'Настройка локального AI',
|
||
'settings.ai.localSetupDesc': 'Загрузка и настройка локальных AI-моделей',
|
||
'settings.ai.llmProvider': 'LLM-провайдер',
|
||
'settings.ai.llmProviderDesc': 'Выбери и настрой своего AI-провайдера',
|
||
'clearData.title': 'Очистить данные приложения',
|
||
'clearData.warning': 'Это выйдет из аккаунта и навсегда удалит локальные данные, включая:',
|
||
'clearData.bulletSettings': 'Настройки и переписки',
|
||
'clearData.bulletCache': 'Все локальные кэши интеграций',
|
||
'clearData.bulletWorkspace': 'Данные рабочего пространства',
|
||
'clearData.bulletOther': 'Все прочие локальные данные',
|
||
'clearData.irreversible': 'Это действие нельзя отменить.',
|
||
'clearData.clearing': 'Очистка данных…',
|
||
'clearData.failed': 'Не удалось очистить данные и выйти. Попробуй ещё раз.',
|
||
'clearData.failedLogout': 'Не удалось выйти. Попробуй ещё раз.',
|
||
'clearData.failedPersist': 'Не удалось сбросить состояние приложения. Попробуй ещё раз.',
|
||
'welcome.title': 'Добро пожаловать в OpenHuman',
|
||
'welcome.subtitle': 'Твой персональный суперинтеллект. Приватный, простой и невероятно мощный.',
|
||
'welcome.connectPrompt': 'Настроить RPC URL (дополнительно)',
|
||
'welcome.selectRuntime': 'Выбрать среду выполнения',
|
||
'welcome.clearingAppData': 'Очистка данных приложения...',
|
||
'welcome.clearAppDataAndRestart': 'Очистка данных приложения и перезапуск',
|
||
'welcome.clearAppDataWarning':
|
||
'Это удалит локально сохранённые секреты и аккаунты на этом устройстве. Ваш облачный аккаунт не затрагивается — вы можете войти снова сразу после этого.',
|
||
'welcome.resetErrorFallback':
|
||
'Не удалось очистить данные приложения. Закройте и снова откройте OpenHuman, затем повторите попытку.',
|
||
'welcome.signingIn': 'Выполняете вход...',
|
||
'welcome.termsIntro': 'Продолжая, вы соглашаетесь с',
|
||
'welcome.termsOfUse': 'Условиями',
|
||
'welcome.termsJoiner': 'и',
|
||
'welcome.privacyPolicy': 'Политикой конфиденциальности.',
|
||
'welcome.termsOutro': '.',
|
||
'welcome.urlPlaceholder': 'http://localhost:8089',
|
||
'welcome.invalidUrl': 'Введи корректный URL (http или https)',
|
||
'welcome.connecting': 'Проверка',
|
||
'welcome.connect': 'Проверить',
|
||
'home.greeting': 'Доброе утро',
|
||
'home.greetingAfternoon': 'Добрый день',
|
||
'home.greetingEvening': 'Добрый вечер',
|
||
'home.askAssistant': 'Спроси ассистента о чём угодно...',
|
||
'home.statusOk':
|
||
'Устройство подключено. Не закрывай приложение, чтобы поддерживать соединение. Отправь сообщение агенту с помощью кнопки ниже.',
|
||
'home.statusBackendOnly': 'Переподключение к серверу… агент скоро снова будет доступен.',
|
||
'home.statusCoreUnreachable':
|
||
'Локальный процесс OpenHuman не отвечает. Возможно, он завис или не запустился.',
|
||
'home.statusInternetOffline':
|
||
'Нет подключения к интернету. Проверь сеть или перезапусти приложение.',
|
||
'home.restartCore': 'Перезапустить ядро',
|
||
'home.restartingCore': 'Перезапуск ядра…',
|
||
'home.themeToggle.toLight': 'Переключить на светлую тему',
|
||
'home.themeToggle.toDark': 'Переключить на тёмную тему',
|
||
'home.usageExhaustedTitle': 'Вы исчерпали лимит использования',
|
||
'home.usageExhaustedBody':
|
||
'Включённый объём использования пока исчерпан. Оформите подписку, чтобы получить больше постоянной мощности.',
|
||
'home.usageExhaustedCta': 'Оформить подписку',
|
||
'home.routinesCard': 'Ваши подпрограммы',
|
||
'home.routinesActive': '{count} активных',
|
||
'routines.title': 'Ваши рутины',
|
||
'routines.subtitle': 'Что ваш помощник делает автоматически',
|
||
'routines.loading': 'Загрузка процедур…',
|
||
'routines.empty': 'Пока нет процедур',
|
||
'routines.emptyHint':
|
||
'Ваш помощник может выполнять задачи по расписанию — например, утренние брифинги или ежедневные сводки.',
|
||
'routines.refresh': 'Обновить',
|
||
'routines.nextRun': 'Следующий запуск',
|
||
'routines.lastRunSuccess': 'Последний запуск удался',
|
||
'routines.lastRunFailed': 'Последний запуск не удался',
|
||
'routines.notRunYet': 'Еще не запущен',
|
||
'routines.runNow': 'Беги сейчас',
|
||
'routines.running': 'Бег…',
|
||
'routines.viewHistory': 'Посмотреть историю',
|
||
'routines.loadingHistory': 'Загрузка…',
|
||
'routines.noHistory': 'Истории запусков пока нет.',
|
||
'routines.statusSuccess': 'Успех',
|
||
'routines.statusError': 'Ошибка',
|
||
'routines.showOutput': 'Показать вывод',
|
||
'routines.hideOutput': 'Скрыть вывод',
|
||
'routines.toggleEnabled': 'Включить или отключить эту процедуру',
|
||
'routines.typeAgent': 'Агент',
|
||
'routines.typeCommand': 'Команда',
|
||
'nav.routines': 'Routines',
|
||
'chat.newThread': 'Новый чат',
|
||
'chat.typeMessage': 'Введи сообщение...',
|
||
'chat.send': 'Отправить сообщение',
|
||
'chat.thinking': 'Думаю...',
|
||
'chat.noMessages': 'Сообщений пока нет',
|
||
'chat.startConversation': 'Начни разговор',
|
||
'chat.regenerate': 'Сгенерировать снова',
|
||
'chat.copyResponse': 'Скопировать ответ',
|
||
'chat.citations': 'Источники',
|
||
'chat.toolUsed': 'Использован инструмент',
|
||
'scope.legacy': 'Устаревшее',
|
||
'scope.user': 'Пользователь',
|
||
'scope.project': 'Проект',
|
||
'skills.title': 'Подключения',
|
||
'skills.search': 'Поиск подключений...',
|
||
'skills.noResults': 'Подключения не найдены',
|
||
'skills.connect': 'Подключить',
|
||
'skills.disconnect': 'Отключить',
|
||
'skills.configure': 'Управление',
|
||
'skills.connected': 'Подключено',
|
||
'skills.available': 'Доступно',
|
||
'skills.addAccount': 'Добавить аккаунт',
|
||
'skills.channels': 'Каналы',
|
||
'skills.integrations': 'Интеграции',
|
||
'skills.integrationsSubtitle':
|
||
'Облачные OAuth-подключения — войдите в свой аккаунт, и Composio управляет токенами, чтобы агенты могли читать и действовать от вашего имени. Никаких API-ключей для управления.',
|
||
'skills.composio.noApiKeyTitle': 'Ключ API Composio не настроен',
|
||
'skills.composio.noApiKeyDescription':
|
||
'Локальный режим использует ваш собственный ключ API Composio. Откройте Настройки → Дополнительно → Composio, чтобы добавить ключ перед подключением интеграций здесь.',
|
||
'skills.composio.noApiKeyCta': 'Открыть в настройках',
|
||
'skills.tabs.composio': 'Composio',
|
||
'skills.tabs.channels': 'Каналы',
|
||
'skills.tabs.mcp': 'MCP Серверы',
|
||
'skills.tabs.runners': 'Runners',
|
||
'memory.title': 'Память',
|
||
'memory.search': 'Поиск воспоминаний...',
|
||
'memory.noResults': 'Воспоминания не найдены',
|
||
'memory.empty': 'Воспоминаний пока нет. Они создаются автоматически в процессе общения.',
|
||
'memory.tab.memory': 'Память',
|
||
'memory.tab.memoryTree': 'Дерево памяти',
|
||
'memory.tab.tasks': 'Задачи агента',
|
||
'memory.tab.tasksDescription':
|
||
'Создавайте и отслеживайте задачи — ваши личные дела и доски, которые агенты формируют в ходе разговоров.',
|
||
'memory.tab.subconscious': 'Подсознание',
|
||
'memory.tab.workflows': 'Workflows',
|
||
'memory.tab.workflowsDescription':
|
||
'Lifecycle-bound rule sets that guide how the agent behaves during tasks.',
|
||
'memory.tab.dreams': 'Сны',
|
||
'memory.tab.calls': 'Звонки',
|
||
'memory.tab.diagram': 'Diagram',
|
||
'memory.tab.centrality': 'Centrality',
|
||
'memory.tab.namespaces': 'Пространства имён',
|
||
'memory.tab.timeline': 'Timeline',
|
||
'memory.tab.settings': 'Настройки',
|
||
'memory.analyzeNow': 'Анализировать сейчас',
|
||
'memoryTimeline.title': 'Memory Timeline',
|
||
'memoryTimeline.intro':
|
||
'When the assistant learned about you — facts grouped by the month they were last reinforced. Surfaces growth, bursts of activity, and quiet stretches.',
|
||
'memoryTimeline.loading': 'Building the timeline…',
|
||
'memoryTimeline.errorPrefix': 'Could not load the graph:',
|
||
'memoryTimeline.retry': 'Retry',
|
||
'memoryTimeline.namespaceLabel': 'Namespace',
|
||
'memoryTimeline.namespaceAll': 'All namespaces',
|
||
'memoryTimeline.empty': 'No knowledge graph yet.',
|
||
'memoryTimeline.emptyHint':
|
||
'As the assistant records facts about you, their timeline will appear here.',
|
||
'memoryTimeline.metricTotal': 'Facts',
|
||
'memoryTimeline.metricMonths': 'Active months',
|
||
'memoryTimeline.metricRecent': 'Last 30 days',
|
||
'memoryTimeline.heading': 'Facts learned per month',
|
||
'memoryTimeline.busiestCaption': 'Busiest: {period} ({count})',
|
||
'memoryTimeline.undatedNote': '{count} fact(s) have no recorded date.',
|
||
'memoryTimeline.truncated': 'Showing the {shown} most recent of {total} months.',
|
||
'namespaceOverview.title': 'Обзор пространств имён',
|
||
'namespaceOverview.intro':
|
||
'Как ваши знания распределены по контекстам — количество фактов и уникальных сущностей, записанных в каждом пространстве имён.',
|
||
'namespaceOverview.loading': 'Агрегирование пространств имён…',
|
||
'namespaceOverview.errorPrefix': 'Не удалось загрузить график:',
|
||
'namespaceOverview.retry': 'Повторить попытку',
|
||
'namespaceOverview.empty': 'Графа знаний пока нет.',
|
||
'namespaceOverview.emptyHint':
|
||
'По мере того как ассистент записывает факты в разных контекстах, каждое пространство имён будет появляться здесь.',
|
||
'namespaceOverview.metricNamespaces': 'Пространства имён',
|
||
'namespaceOverview.metricFacts': 'Факты',
|
||
'namespaceOverview.metricEntities': 'Сущности',
|
||
'namespaceOverview.heading': 'По пространству имён',
|
||
'namespaceOverview.unnamespaced': '(без пространства имён)',
|
||
'namespaceOverview.factsLabel': '{count} фактов',
|
||
'namespaceOverview.entitiesLabel': '{count} сущностей',
|
||
'namespaceOverview.entitiesShort': '{count} сущ.',
|
||
'namespaceOverview.truncated': 'Показаны топ-{shown} из {total} пространств имён.',
|
||
'graphCentrality.title': 'Централизованность графа знаний',
|
||
'graphCentrality.intro':
|
||
'PageRank по вашему графику памяти отображает несущие нагрузку концентраторы — и объекты-соединители, которые связывают отдельные кластеры, которые не может выявить необработанный подсчет частоты.',
|
||
'graphCentrality.loading': 'Вычислительная центральность…',
|
||
'graphCentrality.errorPrefix': 'Не удалось загрузить график:',
|
||
'graphCentrality.retry': 'Повторить попытку',
|
||
'graphCentrality.empty': 'Графа знаний пока нет.',
|
||
'graphCentrality.emptyHint':
|
||
'По мере того, как помощник записывает факты о вас, здесь всплывают наиболее связанные между собой сущности.',
|
||
'graphCentrality.namespaceLabel': 'Пространство имен',
|
||
'graphCentrality.namespaceAll': 'Все пространства имен',
|
||
'graphCentrality.metricEntities': 'Сущности',
|
||
'graphCentrality.metricConnections': 'Соединения',
|
||
'graphCentrality.metricClusters': 'Кластеры',
|
||
'graphCentrality.clustersCaption': 'Кластеры {components} · крупнейшие холдинги {largest}',
|
||
'graphCentrality.approximateBadge': 'approximate',
|
||
'graphCentrality.approximateTitle': 'Остановился на пределе итерации перед полной сходимостью',
|
||
'graphCentrality.rankedHeading': 'Лучшие организации по влиянию',
|
||
'graphCentrality.colRank': '#',
|
||
'graphCentrality.colEntity': 'Сущность',
|
||
'graphCentrality.colInfluence': 'Влияние',
|
||
'graphCentrality.colLinks': 'Ссылки',
|
||
'graphCentrality.bridgeBadge': 'connector',
|
||
'graphCentrality.bridgeTitle':
|
||
'Коннектор — более влиятельный, чем предполагает количество ссылок.',
|
||
'graphCentrality.degreeTitle': '{in} вход · {out} выход',
|
||
'memory.tab.associations': 'Associations',
|
||
'entityAssociations.title': 'Entity Associations',
|
||
'entityAssociations.intro':
|
||
'Entities that share many of the same connections are associated — even when no single fact links them directly. Jaccard similarity surfaces these hidden pairings.',
|
||
'entityAssociations.loading': 'Scoring associations…',
|
||
'entityAssociations.errorPrefix': 'Could not load the graph:',
|
||
'entityAssociations.retry': 'Retry',
|
||
'entityAssociations.empty': 'No associations yet.',
|
||
'entityAssociations.emptyHint':
|
||
'When entities start sharing connections, the strongest pairings will surface here.',
|
||
'entityAssociations.namespaceLabel': 'Namespace',
|
||
'entityAssociations.namespaceAll': 'All namespaces',
|
||
'entityAssociations.metricEntities': 'Entities',
|
||
'entityAssociations.metricPairs': 'Associations',
|
||
'entityAssociations.rankedHeading': 'Strongest associations',
|
||
'entityAssociations.linkedBadge': 'linked',
|
||
'entityAssociations.inferredBadge': 'inferred',
|
||
'entityAssociations.linkedTitle': 'These entities are directly connected.',
|
||
'entityAssociations.inferredTitle':
|
||
'No direct link — associated only through shared connections.',
|
||
'entityAssociations.sharedLabel': '{shared} shared',
|
||
'entityAssociations.pairTitle': '{jaccard}% similar · {shared} of {union} connections shared',
|
||
'entityAssociations.truncated': 'Showing {shown} of {total} — strongest first.',
|
||
'memory.tab.freshness': 'Freshness',
|
||
'memoryFreshness.title': 'Knowledge Freshness',
|
||
'memoryFreshness.intro':
|
||
'Facts the assistant has not reconfirmed lately decay along a forgetting curve. This surfaces what is going stale and worth re-checking, so old facts are not treated as still-certain.',
|
||
'memoryFreshness.loading': 'Scoring freshness…',
|
||
'memoryFreshness.errorPrefix': 'Could not load the graph:',
|
||
'memoryFreshness.retry': 'Retry',
|
||
'memoryFreshness.empty': 'No knowledge graph yet.',
|
||
'memoryFreshness.emptyHint':
|
||
'As the assistant records facts about you, their freshness will be tracked here.',
|
||
'memoryFreshness.namespaceLabel': 'Namespace',
|
||
'memoryFreshness.namespaceAll': 'All namespaces',
|
||
'memoryFreshness.metricFresh': 'Fresh',
|
||
'memoryFreshness.metricFading': 'Fading',
|
||
'memoryFreshness.metricStale': 'Stale',
|
||
'memoryFreshness.recallCaption': 'Average recall {recall}% across {total} facts',
|
||
'memoryFreshness.queueHeading': 'Re-confirm queue',
|
||
'memoryFreshness.queueTruncated': 'Showing {shown} of {total} — address these first.',
|
||
'memoryFreshness.allFresh': 'Every fact is still fresh — nothing to re-confirm.',
|
||
'memoryFreshness.statusFading': 'fading',
|
||
'memoryFreshness.statusStale': 'stale',
|
||
'memoryFreshness.ageLabel': '{days}d old',
|
||
'memoryFreshness.recallTitle': '{recall}% recall · half-life {halfLife}d',
|
||
'memory.tab.path': 'Пути',
|
||
'connectionPath.title': 'Путь связи',
|
||
'connectionPath.intro':
|
||
'Проследите кратчайшую цепочку связей между любыми двумя сущностями — как граф соединяет их, даже через несколько переходов.',
|
||
'connectionPath.loading': 'Загрузка графа…',
|
||
'connectionPath.errorPrefix': 'Не удалось загрузить граф:',
|
||
'connectionPath.retry': 'Повторить',
|
||
'connectionPath.namespaceLabel': 'Пространство имён',
|
||
'connectionPath.namespaceAll': 'Все пространства имён',
|
||
'connectionPath.sourceLabel': 'От',
|
||
'connectionPath.targetLabel': 'До',
|
||
'connectionPath.sourcePlaceholder': 'Начальная сущность',
|
||
'connectionPath.targetPlaceholder': 'Конечная сущность',
|
||
'connectionPath.prompt': 'Выберите две сущности, чтобы проследить, как они связаны.',
|
||
'connectionPath.empty': 'Граф знаний пока пуст.',
|
||
'connectionPath.emptyHint':
|
||
'Как только ассистент запишет связанные факты, вы сможете прослеживать связи здесь.',
|
||
'connectionPath.resultHeading': 'Кратчайший путь',
|
||
'connectionPath.pathSummary': 'расстояние — {length} переход(ов)',
|
||
'connectionPath.sameMessage': 'Выберите две разные сущности.',
|
||
'connectionPath.missingSource': '«{entity}» отсутствует в графе.',
|
||
'connectionPath.missingTarget': '«{entity}» отсутствует в графе.',
|
||
'connectionPath.noPath': 'Связь между «{source}» и «{target}» не найдена.',
|
||
'memoryTree.status.title': 'Дерево памяти',
|
||
'memoryTree.status.autoSyncLabel': 'Автосинхронизация',
|
||
'memoryTree.status.autoSyncDescription':
|
||
'Пауза, чтобы остановить новый прием. Существующая вики остается доступной для запросов.',
|
||
'memoryTree.status.statusTile': 'Статус',
|
||
'memoryTree.status.lastSyncTile': 'Последняя синхронизация',
|
||
'memoryTree.status.totalChunksTile': 'Всего кусков',
|
||
'memoryTree.status.wikiSizeTile': 'Размер вики',
|
||
'memoryTree.status.statusRunning': 'Бег',
|
||
'memoryTree.status.statusPaused': 'Приостановлено',
|
||
'memoryTree.status.statusSyncing': 'Синхронизация',
|
||
'memoryTree.status.statusError': 'Ошибка',
|
||
'memoryTree.status.statusIdle': 'Праздный',
|
||
'memoryTree.status.never': 'Никогда',
|
||
'memoryTree.status.fetchError': 'Не удалось получить статус дерева памяти.',
|
||
'memoryTree.status.retry': 'Повторить попытку',
|
||
'memoryTree.status.toggleFailed': 'Не удалось включить автосинхронизацию.',
|
||
'memoryTree.status.justNow': 'прямо сейчас',
|
||
'memoryTree.status.secondsAgo': '{count} сек. назад',
|
||
'memoryTree.status.minuteAgo': '1 минуту назад',
|
||
'memoryTree.status.minutesAgo': '{count} мин назад',
|
||
'memoryTree.status.hourAgo': '1 час назад',
|
||
'memoryTree.status.hoursAgo': '{count} час назад',
|
||
'memoryTree.status.dayAgo': '1 день назад',
|
||
'memoryTree.status.daysAgo': '{count} дней назад',
|
||
'alerts.title': 'Оповещения',
|
||
'alerts.empty': 'Оповещений пока нет',
|
||
'alerts.markAllRead': 'Отметить всё прочитанным',
|
||
'alerts.unread': 'непрочитано',
|
||
'rewards.title': 'Награды',
|
||
'rewards.referrals': 'Рефералы',
|
||
'rewards.coupons': 'Активировать',
|
||
'rewards.localUnavailable':
|
||
'Локальный вход не приносит награды, купоны или реферальный кредит. Выйдите и войдите с аккаунтом OpenHuman, если хотите, чтобы награды начислялись.',
|
||
'rewards.localUnavailableCta': 'Открыть настройки аккаунта',
|
||
'rewards.credits': 'Кредиты',
|
||
'rewards.referralCode': 'Твой реферальный код',
|
||
'rewards.copyCode': 'Скопировать код',
|
||
'rewards.share': 'Поделиться',
|
||
'onboarding.welcome': 'Привет. Я OpenHuman.',
|
||
'onboarding.welcomeDesc':
|
||
'Твой суперинтеллектуальный AI-ассистент, работающий прямо на твоём компьютере. Приватный, простой и невероятно мощный.',
|
||
'onboarding.context': 'Сбор контекста',
|
||
'onboarding.contextDesc': 'Подключи инструменты и сервисы, которыми пользуешься каждый день.',
|
||
'onboarding.localAI': 'Локальный AI',
|
||
'onboarding.localAIDesc': 'Настрой локальную AI-модель, работающую прямо на твоём устройстве.',
|
||
'onboarding.chatProvider': 'Чат-провайдер',
|
||
'onboarding.chatProviderDesc': 'Выбери, как хочешь общаться с ассистентом.',
|
||
'onboarding.referral': 'Реферал',
|
||
'onboarding.referralDesc': 'Введи реферальный код, если он у тебя есть.',
|
||
'onboarding.finish': 'Завершить настройку',
|
||
'onboarding.finishDesc': 'Всё готово! Начни пользоваться OpenHuman.',
|
||
'onboarding.skip': 'Пропустить',
|
||
'onboarding.getStarted': 'Начать',
|
||
'onboarding.runtimeChoice.title': 'Как ты хочешь запустить OpenHuman?',
|
||
'onboarding.runtimeChoice.subtitle':
|
||
'Выбери подходящий вариант. Изменить можно позже в Настройках.',
|
||
'onboarding.runtimeChoice.cloud.title': 'Просто',
|
||
'onboarding.runtimeChoice.cloud.tagline': 'Пусть OpenHuman сам обо всём позаботится.',
|
||
'onboarding.runtimeChoice.cloud.f1': 'Встроенная безопасность',
|
||
'onboarding.runtimeChoice.cloud.f2': 'Сжатие токенов для экономии ресурсов',
|
||
'onboarding.runtimeChoice.cloud.f3': 'Одна подписка — все модели включены',
|
||
'onboarding.runtimeChoice.cloud.f4': 'Никаких API-ключей',
|
||
'onboarding.runtimeChoice.cloud.f5': 'Простая настройка',
|
||
'onboarding.runtimeChoice.custom.title': 'Свои настройки',
|
||
'onboarding.runtimeChoice.custom.tagline':
|
||
'Используй свои ключи. Полный контроль над тем, что используется.',
|
||
'onboarding.runtimeChoice.custom.f1': 'Для большинства функций потребуются API-ключи',
|
||
'onboarding.runtimeChoice.custom.f2': 'Переиспользует сервисы, за которые ты уже платишь',
|
||
'onboarding.runtimeChoice.custom.f3': 'Может быть бесплатным, если всё запускать локально',
|
||
'onboarding.runtimeChoice.custom.f4': 'Больше настроек и параметров',
|
||
'onboarding.runtimeChoice.custom.f5':
|
||
'Лучший выбор для продвинутых пользователей и разработчиков',
|
||
'onboarding.runtimeChoice.cloud.creditHighlight': '$1 бесплатный кредит для знакомства',
|
||
'onboarding.runtimeChoice.continueCloud': 'Продолжить с простым режимом',
|
||
'onboarding.runtimeChoice.continueCustom': 'Продолжить со своими настройками',
|
||
'onboarding.runtimeChoice.recommended': 'Рекомендуется',
|
||
'onboarding.apiKeys.title': 'Добавь свои API-ключи',
|
||
'onboarding.apiKeys.subtitle':
|
||
'Вставь их сейчас или пропусти и добавь позже в Настройки › AI. Ключи хранятся на этом устройстве в зашифрованном виде.',
|
||
'onboarding.apiKeys.openaiLabel': 'API-ключ OpenAI',
|
||
'onboarding.apiKeys.openaiPlaceholder': 'sk-...',
|
||
'onboarding.apiKeys.openaiOauthHint':
|
||
'Используйте ChatGPT Plus/Pro (подписка) или ключ OpenAI API — не оба обязательны.',
|
||
'onboarding.apiKeys.openaiOauthOpening': 'Открытие входа…',
|
||
'onboarding.apiKeys.openaiOauthConnect': 'Войти через ChatGPT',
|
||
'onboarding.apiKeys.openaiOauthConnected': 'Подключено через ChatGPT',
|
||
'onboarding.apiKeys.openaiOauthCallbackHint':
|
||
'После входа вставьте полный URL перенаправления из браузера (начинается с {url}).',
|
||
'onboarding.apiKeys.oauthDesktopOnly':
|
||
'Вход через ChatGPT доступен только в десктопном приложении.',
|
||
'onboarding.apiKeys.oauthStartFailed':
|
||
'Не удалось начать вход через ChatGPT. Повторите попытку или используйте ключ API.',
|
||
'onboarding.apiKeys.oauthPasteRedirect': 'Вставьте URL перенаправления из браузера после входа.',
|
||
'onboarding.apiKeys.oauthCompleteFailed':
|
||
'Вход через ChatGPT не завершён. Проверьте URL перенаправления и повторите попытку.',
|
||
'onboarding.apiKeys.finishSignIn': 'Завершите вход в ChatGPT',
|
||
'onboarding.apiKeys.orApiKey': 'или ключ API',
|
||
'onboarding.apiKeys.anthropicLabel': 'API-ключ Anthropic',
|
||
'onboarding.apiKeys.anthropicPlaceholder': 'sk-ant-...',
|
||
'onboarding.apiKeys.saveError': 'Не удалось сохранить ключ. Проверь его и попробуй снова.',
|
||
'onboarding.apiKeys.skipForNow': 'Пропустить',
|
||
'onboarding.apiKeys.continue': 'Сохранить и продолжить',
|
||
'onboarding.apiKeys.saving': 'Сохранение…',
|
||
'onboarding.custom.stepperInference': 'Инференс',
|
||
'onboarding.custom.stepperVoice': 'Голос',
|
||
'onboarding.custom.stepperOAuth': 'OAuth',
|
||
'onboarding.custom.stepperSearch': 'Поиск',
|
||
'onboarding.custom.stepperEmbeddings': 'Embeddings',
|
||
'onboarding.custom.stepperMemory': 'Память',
|
||
'onboarding.custom.stepCounter': 'Шаг {n} из {total}',
|
||
'onboarding.custom.defaultTitle': 'По умолчанию',
|
||
'onboarding.custom.defaultSubtitle': 'Пусть OpenHuman сам управляет этим.',
|
||
'onboarding.custom.configureTitle': 'Настроить',
|
||
'onboarding.custom.configureSubtitle': 'Я сам выберу, что использовать.',
|
||
'onboarding.custom.progressAriaLabel': 'Прогресс настройки',
|
||
'onboarding.custom.continue': 'Продолжить',
|
||
'onboarding.custom.back': 'Назад',
|
||
'onboarding.custom.finish': 'Завершить настройку',
|
||
'onboarding.custom.configureLater':
|
||
'Можно завершить настройку после онбординга. Мы откроем нужную страницу настроек.',
|
||
'onboarding.custom.openSettings': 'Открыть в настройках',
|
||
'onboarding.custom.inference.title': 'Инференс (текст)',
|
||
'onboarding.custom.inference.subtitle':
|
||
'Какая языковая модель будет отвечать на вопросы и запускать агентов?',
|
||
'onboarding.custom.inference.defaultDesc':
|
||
'OpenHuman автоматически выбирает подходящую модель. Без ключей и настроек.',
|
||
'onboarding.custom.inference.configureDesc':
|
||
'Используй свой ключ OpenAI или Anthropic для всех текстовых задач.',
|
||
'onboarding.custom.voice.title': 'Голос',
|
||
'onboarding.custom.voice.subtitle': 'Распознавание и синтез речи для голосового режима.',
|
||
'onboarding.custom.voice.defaultDesc':
|
||
'OpenHuman поставляется с управляемым STT/TTS, который работает сразу. Ничего настраивать не нужно.',
|
||
'onboarding.custom.voice.configureDesc':
|
||
'Используй свой ElevenLabs / OpenAI Whisper / другой сервис. Настрой в Настройки › Голос.',
|
||
'onboarding.custom.oauth.title': 'Подключения (OAuth)',
|
||
'onboarding.custom.oauth.subtitle': 'Gmail, Slack, Notion и другие сервисы, требующие OAuth.',
|
||
'onboarding.custom.oauth.defaultDesc':
|
||
'OpenHuman использует управляемое рабочее пространство Composio. Один клик для подключения каждого сервиса.',
|
||
'onboarding.custom.oauth.configureDesc':
|
||
'Используй свой аккаунт Composio / API-ключ. Настрой в Настройки › Подключения.',
|
||
'onboarding.custom.search.title': 'Поиск в интернете',
|
||
'onboarding.custom.search.subtitle': 'Как OpenHuman ищет информацию в интернете.',
|
||
'onboarding.custom.search.defaultDesc':
|
||
'OpenHuman использует управляемый поисковый бэкенд. Ключи не нужны.',
|
||
'onboarding.custom.search.configureDesc':
|
||
'Используй свой ключ поискового провайдера (Tavily, Brave и др.). Настрой в Настройки › Инструменты.',
|
||
'onboarding.custom.embeddings.title': 'Embeddings',
|
||
'onboarding.custom.embeddings.subtitle':
|
||
'Как OpenHuman создаёт векторные эмбеддинги для семантического поиска в памяти.',
|
||
'onboarding.custom.embeddings.defaultDesc':
|
||
'OpenHuman использует управляемый сервис эмбеддингов. API-ключ не требуется.',
|
||
'onboarding.custom.embeddings.configureDesc':
|
||
'Используйте собственного провайдера эмбеддингов (OpenAI, Voyage, Ollama и др.).',
|
||
'onboarding.custom.memory.title': 'Память',
|
||
'onboarding.custom.memory.subtitle':
|
||
'Как OpenHuman запоминает контекст, предпочтения и предыдущие разговоры.',
|
||
'onboarding.custom.memory.defaultDesc':
|
||
'OpenHuman автоматически управляет хранением и извлечением воспоминаний. Ничего настраивать не нужно.',
|
||
'onboarding.custom.memory.configureDesc':
|
||
'Просматривай, экспортируй или очищай память самостоятельно. Настрой в Настройки › Память.',
|
||
'accounts.addAccount': 'Добавить аккаунт',
|
||
'accounts.manageAccounts': 'Управление аккаунтами',
|
||
'accounts.noAccounts': 'Аккаунты не подключены',
|
||
'accounts.connectAccount': 'Подключи аккаунт для начала работы',
|
||
'accounts.agent': 'Агент',
|
||
'accounts.respondQueue': 'Очередь ответов',
|
||
'accounts.disconnect': 'Отключить',
|
||
'accounts.disconnectConfirm': 'Ты уверен, что хочешь отключить этот аккаунт?',
|
||
'accounts.disconnectClearMemory': 'Также удалить память из этого источника',
|
||
'accounts.disconnectClearMemoryHint':
|
||
'Навсегда удаляет локальные фрагменты памяти, связанные с этим подключением.',
|
||
'accounts.searchAccounts': 'Поиск аккаунтов...',
|
||
'channels.title': 'Каналы',
|
||
'channels.configure': 'Настроить канал',
|
||
'channels.setup': 'Настройка',
|
||
'channels.noChannels': 'Каналы не настроены',
|
||
'channels.localManagedUnavailable': 'Управляемые каналы недоступны для локальных пользователей.',
|
||
'channels.addChannel': 'Добавить канал',
|
||
'channels.status.connected': 'Подключено',
|
||
'channels.status.disconnected': 'Отключено',
|
||
'channels.status.error': 'Ошибка',
|
||
'channels.status.configuring': 'Настройка',
|
||
'channels.defaultMessaging': 'Канал по умолчанию',
|
||
'webhooks.title': 'Вебхуки',
|
||
'webhooks.create': 'Создать вебхук',
|
||
'webhooks.noWebhooks': 'Вебхуки не настроены',
|
||
'webhooks.url': 'URL',
|
||
'webhooks.secret': 'Секрет',
|
||
'webhooks.events': 'События',
|
||
'webhooks.archiveDirectory': 'Директория архива',
|
||
'webhooks.todayFile': 'Файл за сегодня',
|
||
'invites.title': 'Приглашения',
|
||
'invites.create': 'Создать приглашение',
|
||
'invites.noInvites': 'Активных приглашений нет',
|
||
'invites.code': 'Код приглашения',
|
||
'invites.copyLink': 'Скопировать ссылку',
|
||
'invites.generate': 'Создать приглашение',
|
||
'invites.generating': 'Создание...',
|
||
'invites.refreshing': 'Обновление приглашений...',
|
||
'invites.loading': 'Загрузка приглашений...',
|
||
'invites.copyCodeAria': 'Скопировать код приглашения',
|
||
'invites.revokeAria': 'Отозвать приглашение',
|
||
'invites.usedUp': 'Использовано',
|
||
'invites.uses': 'Используется: {current}{max}',
|
||
'invites.expiresOn': 'Срок действия истекает {date}',
|
||
'invites.empty': 'Пока нет приглашений',
|
||
'invites.emptyHint': 'Создайте код приглашения для обмена с другими',
|
||
'invites.revokeTitle': 'Отозвать код приглашения',
|
||
'invites.revokePromptPrefix': 'Вы уверены, что хотите отозвать код приглашения?',
|
||
'invites.revokeWarning':
|
||
'Этот код приглашения станет недействительным и не может быть использован для вступления в команду.',
|
||
'invites.revoking': 'Отзыв...',
|
||
'invites.revokeAction': 'Отозвать приглашение',
|
||
'invites.failedGenerate': 'Не удалось создать приглашение.',
|
||
'invites.failedRevoke': 'Не удалось отозвать приглашение.',
|
||
'team.refreshingMembers': 'Обновление участников...',
|
||
'team.loadingMembers': 'Загрузка участников...',
|
||
'team.memberCount': '{count} участник',
|
||
'team.memberCountPlural': '{count} участников',
|
||
'team.you': '(Вы)',
|
||
'team.removeAria': 'Удалить {name}',
|
||
'team.noMembers': 'Участники не найдены.',
|
||
'team.removeTitle': 'Удалить участника команды',
|
||
'team.removePromptPrefix': 'Вы уверены, что хотите удалить',
|
||
'team.removePromptSuffix': 'из команды?',
|
||
'team.removeWarning': 'Они потеряют доступ к команде и всем ее ресурсам.',
|
||
'team.removing': 'Удаление...',
|
||
'team.removeAction': 'Удалить участника',
|
||
'team.changeRoleTitle': 'Изменить роль участника',
|
||
'team.changeRolePrompt': 'Изменить роль {name} с {oldRole} на {newRole}?',
|
||
'team.changeRoleAdminGrant':
|
||
'Это предоставит им полные права администратора, включая возможность управлять участниками команды.',
|
||
'team.changeRoleAdminRemove':
|
||
'Это лишит их прав администратора, и они больше не смогут управлять командой.',
|
||
'team.changing': 'Изменение...',
|
||
'team.changeRoleAction': 'Изменить роль',
|
||
'team.failedChangeRole': 'Не удалось изменить роль.',
|
||
'team.failedRemoveMember': 'Не удалось удалить участника.',
|
||
'devOptions.title': 'Дополнительно',
|
||
'devOptions.diagnostics': 'Диагностика',
|
||
'devOptions.diagnosticsDesc': 'Состояние системы, логи и метрики производительности',
|
||
'devOptions.toolPolicyDiagnosticsDesc':
|
||
'Инвентаризация инструментов, положение политики, белые списки MCP и недавние блокировки',
|
||
'devOptions.toolPolicyDiagnostics.loading': 'Загрузка…',
|
||
'devOptions.toolPolicyDiagnostics.unavailable': 'Диагностика недоступна',
|
||
'devOptions.toolPolicyDiagnostics.posture.title': 'Политическая позиция',
|
||
'devOptions.toolPolicyDiagnostics.posture.autonomy': 'Автономия:',
|
||
'devOptions.toolPolicyDiagnostics.posture.workspaceOnly': 'Только рабочее пространство:',
|
||
'devOptions.toolPolicyDiagnostics.posture.maxActionsPerHour': 'Макс actions/hr:',
|
||
'devOptions.toolPolicyDiagnostics.posture.approvalMediumRisk': 'Одобрение (средний риск):',
|
||
'devOptions.toolPolicyDiagnostics.posture.blockHighRisk': 'Блокировать высокий риск:',
|
||
'devOptions.toolPolicyDiagnostics.inventory.title': 'Инвентарь',
|
||
'devOptions.toolPolicyDiagnostics.inventory.totalTools': 'Всего инструментов',
|
||
'devOptions.toolPolicyDiagnostics.inventory.enabledTools': 'Включенные инструменты',
|
||
'devOptions.toolPolicyDiagnostics.inventory.mcpStdioTools': 'MCP инструменты stdio',
|
||
'devOptions.toolPolicyDiagnostics.inventory.jsonRpcTools': 'JSON-RPC инструменты',
|
||
'devOptions.toolPolicyDiagnostics.mcpAllowlists.title': 'Белые списки MCP',
|
||
'devOptions.toolPolicyDiagnostics.mcpAllowlists.summary':
|
||
'Включено: {enabled} · Серверы: ZXHOLD1ZX/ZXHOLD2ZX',
|
||
'devOptions.toolPolicyDiagnostics.mcpAllowlists.unnamed': '<без имени>',
|
||
'devOptions.toolPolicyDiagnostics.mcpAllowlists.allowDeny':
|
||
'разрешить = {allowCount} запретить = {denyCount}',
|
||
'devOptions.toolPolicyDiagnostics.mcpWriteAudit.title': 'MCP аудит записи',
|
||
'devOptions.toolPolicyDiagnostics.mcpWriteAudit.summary':
|
||
'Включено: {enabled} · Последние (24 часа): {recentRows}',
|
||
'devOptions.toolPolicyDiagnostics.recentBlocked.title': 'Недавние заблокированные вызовы',
|
||
'devOptions.toolPolicyDiagnostics.recentBlocked.empty':
|
||
'Заблокированных вызовов не зарегистрировано.',
|
||
'devOptions.toolPolicyDiagnostics.redactedSurfaces.title': 'Отредактированные поверхности',
|
||
'devOptions.toolPolicyDiagnostics.redactedSurfaces.summary':
|
||
'Возможность записи: {writeCount} · Поверхности политик: {policyCount}',
|
||
'devOptions.debugPanels': 'Панели отладки',
|
||
'devOptions.debugPanelsDesc': 'Флаги функций, инспекция состояния и инструменты отладки',
|
||
'devOptions.webhooks': 'Вебхуки',
|
||
'devOptions.webhooksDesc': 'Настройка и тестирование вебхуков',
|
||
'devOptions.memoryInspection': 'Инспекция памяти',
|
||
'devOptions.memoryInspectionDesc': 'Просмотр, запросы и управление записями памяти',
|
||
'voice.pushToTalk': 'Нажми и говори',
|
||
'voice.recording': 'Запись...',
|
||
'voice.processing': 'Обработка...',
|
||
'voice.languageHint': 'Язык',
|
||
'misc.rehydrating': 'Загрузка данных...',
|
||
'misc.checkingServices': 'Проверка сервисов...',
|
||
'misc.serviceUnavailable': 'Сервис недоступен',
|
||
'misc.somethingWentWrong': 'Что-то пошло не так',
|
||
'misc.tryAgainLater': 'Попробуй позже.',
|
||
'misc.restartApp': 'Перезапустить приложение',
|
||
'misc.updateAvailable': 'Доступно обновление',
|
||
'misc.updateNow': 'Обновить сейчас',
|
||
'misc.updateLater': 'Позже',
|
||
'misc.downloading': 'Загрузка...',
|
||
'misc.installing': 'Установка...',
|
||
'misc.beta':
|
||
'OpenHuman находится в стадии раннего бета-тестирования. Делись отзывами и сообщай об ошибках — каждый репорт помогает нам двигаться быстрее.',
|
||
'misc.betaFeedback': 'Отправить отзыв',
|
||
'mnemonic.title': 'Фраза восстановления',
|
||
'mnemonic.warning': 'Запиши эти слова по порядку и храни в надёжном месте.',
|
||
'mnemonic.copyWarning':
|
||
'Никогда не делись фразой восстановления. Любой, кто её знает, получит доступ к твоему аккаунту.',
|
||
'mnemonic.copied': 'Фраза восстановления скопирована в буфер обмена',
|
||
'mnemonic.reveal': 'Показать фразу',
|
||
'mnemonic.revealPhrase': 'Показать фразу восстановления',
|
||
'mnemonic.hidden': 'Фраза восстановления скрыта',
|
||
'privacy.title': 'Конфиденциальность и безопасность',
|
||
'privacy.description': 'Отчёт о данных, отправляемых во внешние сервисы.',
|
||
'privacy.empty': 'Передачи данных во внешние сервисы не обнаружены.',
|
||
'privacy.whatLeavesComputer': 'Что покидает твой компьютер',
|
||
'privacy.loading': 'Загрузка данных о конфиденциальности...',
|
||
'privacy.loadError':
|
||
'Не удалось загрузить список. Настройки аналитики ниже по-прежнему работают.',
|
||
'privacy.noCapabilities': 'Ни одна функция не передаёт данные.',
|
||
'privacy.sentTo': 'Отправляется в',
|
||
'privacy.leavesDevice': 'Покидает устройство',
|
||
'privacy.staysLocal': 'Остаётся локально',
|
||
'privacy.anonymizedAnalytics': 'Анонимная аналитика',
|
||
'privacy.shareAnonymizedData': 'Делиться анонимными данными об использовании',
|
||
'privacy.shareAnonymizedDataDesc':
|
||
'Помоги улучшить OpenHuman, отправляя анонимные отчёты об ошибках и данные об использовании. Все данные полностью анонимизированы — личные данные, сообщения, ключи кошелька и информация о сессии никогда не собираются.',
|
||
'privacy.meetingFollowUps': 'Действия после встреч',
|
||
'privacy.autoHandoffMeet': 'Автоматически передавать транскрипты Google Meet оркестратору',
|
||
'privacy.autoHandoffMeetDesc':
|
||
'Когда звонок в Google Meet заканчивается, оркестратор OpenHuman может прочитать транскрипт и выполнить действия: составить сообщения, запланировать задачи или опубликовать итоги в Slack. По умолчанию выключено.',
|
||
'privacy.analyticsDisclaimer':
|
||
'Вся аналитика и отчёты об ошибках полностью анонимизированы. При включении мы собираем только информацию об ошибках, тип устройства и расположение файлов с ошибками. Мы никогда не получаем доступ к твоим сообщениям, данным сессии, ключам кошелька, API-ключам или любой личной информации. Ты можешь изменить этот параметр в любое время.',
|
||
'settings.about.version': 'Версия',
|
||
'settings.about.updateAvailable': 'доступна',
|
||
'settings.about.softwareUpdates': 'Обновления ПО',
|
||
'settings.about.lastChecked': 'Последняя проверка',
|
||
'settings.about.checking': 'Проверка...',
|
||
'settings.about.checkForUpdates': 'Проверить обновления',
|
||
'settings.about.releases': 'Релизы',
|
||
'settings.about.releasesDesc': 'Просмотр заметок к релизам и предыдущих сборок на GitHub.',
|
||
'settings.about.openReleases': 'Открыть релизы на GitHub',
|
||
'settings.about.connection': 'Соединение',
|
||
'settings.about.connectionMode': 'Режим',
|
||
'settings.about.connectionModeLocal': 'Локальный',
|
||
'settings.about.connectionModeCloud': 'Облачный',
|
||
'settings.about.connectionModeUnset': 'Не выбран',
|
||
'settings.about.serverUrl': 'Сервер URL',
|
||
'settings.about.serverUrlUnavailable': 'Недоступно',
|
||
'settings.about.connectionHelperLocal':
|
||
'Создается внутри процесса оболочкой Tauri при запуске приложения. Порт выбирается при запуске, поэтому этот URL меняется между запусками.',
|
||
'settings.about.connectionHelperCloud':
|
||
'Подключен к удаленному ядру. Измените это в BootCheck или в средстве выбора облачного режима.',
|
||
'settings.heartbeat.title': 'Heartbeat и циклы',
|
||
'settings.heartbeat.desc': 'Управляйте частотой фонового планирования и проверяйте карту циклов.',
|
||
'settings.ledgerUsage.title': 'Журнал использования',
|
||
'settings.ledgerUsage.desc':
|
||
'Недавние расходы по кредитам, математические расчеты бюджета и предыстория. API читает бюджет.',
|
||
'settings.costDashboard.title': 'Панель затрат',
|
||
'settings.costDashboard.desc':
|
||
'7-дневные расходы и сжигание токенов по всему множеству, с указанием темпа бюджета и разбивки по моделям.',
|
||
'settings.costDashboard.sevenDayCost': '7-дневная ежедневная стоимость',
|
||
'settings.costDashboard.sevenDayTokens': '7-дневное использование токена',
|
||
'settings.costDashboard.totalSpend': 'всего 7 дней',
|
||
'settings.costDashboard.monthlyPace': 'Ежемесячный темп',
|
||
'settings.costDashboard.budgetLimit': 'Ограничение бюджета',
|
||
'settings.costDashboard.utilization': 'Использование',
|
||
'settings.costDashboard.modelBreakdown': 'Разбивка по моделям',
|
||
'settings.costDashboard.model': 'Модель',
|
||
'settings.costDashboard.provider': 'Поставщик',
|
||
'settings.costDashboard.cost': 'Расходы',
|
||
'settings.costDashboard.tokens': 'Токены',
|
||
'settings.costDashboard.requests': 'Запросы',
|
||
'settings.costDashboard.percentOfTotal': '% от общего количества',
|
||
'settings.costDashboard.inputTokens': 'Вход',
|
||
'settings.costDashboard.outputTokens': 'Выход',
|
||
'settings.costDashboard.budgetNormal': 'На ходу',
|
||
'settings.costDashboard.budgetWarning': 'Предупреждение',
|
||
'settings.costDashboard.budgetExceeded': 'Превышение бюджета',
|
||
'settings.costDashboard.noBudget': 'Ограничение не установлено',
|
||
'settings.costDashboard.noData': 'За последние 7 дней стоимость еще не зафиксирована.',
|
||
'settings.costDashboard.noModels': 'Никакой активности модели за последние 7 дней.',
|
||
'settings.costDashboard.loading': 'Загрузка сводки расходов…',
|
||
'settings.costDashboard.disabledHint':
|
||
'Панель затрат отключена в конфигурации. Установите [cost.dashboard] Enabled = True в config.toml, чтобы повторно включить.',
|
||
'settings.costDashboard.subtitle':
|
||
'Расходы в реальном времени и сжигание токенов по всему множеству. Бары автоматически обновляются каждые несколько секунд — перезагрузка страницы не требуется.',
|
||
'settings.costDashboard.summaryAriaLabel': 'Сводные показатели затрат',
|
||
'settings.costDashboard.lastSevenDays': 'последние 7 дней',
|
||
'settings.costDashboard.utilizationOf': 'из',
|
||
'settings.costDashboard.thisMonth': 'в этом месяце',
|
||
'settings.costDashboard.monthlyPaceHint':
|
||
'Прогнозируемые ежемесячные расходы при текущем ежедневном расходе (в среднем × 30).',
|
||
'settings.costDashboard.budgetLimitHint':
|
||
'Ежемесячный бюджет считывается из Cost.monthly_limit_usd в config.toml.',
|
||
'settings.costDashboard.dailyTarget': 'Ежедневная цель',
|
||
'settings.costDashboard.today': 'Сегодня',
|
||
'settings.costDashboard.todayBadge': 'TODAY',
|
||
'settings.costDashboard.unknownProvider': '—',
|
||
'settings.costDashboard.justNow': 'Прямо сейчас',
|
||
'settings.costDashboard.secondsAgo': '{value} сек. назад',
|
||
'settings.costDashboard.minutesAgo': '{value}мин назад',
|
||
'settings.costDashboard.hoursAgo': '{value}ч назад',
|
||
'settings.costDashboard.daysAgo': '{value} дней назад',
|
||
'settings.costDashboard.updated': 'Обновлено',
|
||
'settings.costDashboard.refresh': 'Обновить',
|
||
'settings.costDashboard.utcNote': 'Дни, разбитые по UTC',
|
||
'settings.costDashboard.stackedNote': 'Вход + выход сложены',
|
||
'settings.costDashboard.modelBreakdownHint': 'Совокупно за последние 7 дней.',
|
||
'settings.costDashboard.noDataHint':
|
||
'Отправьте сообщение агенту — использование токена при следующем вызове провайдера заполнит диаграмму в течение примерно 10 секунд.',
|
||
'settings.search.title': 'Поисковая система',
|
||
'settings.search.menuDesc':
|
||
'По умолчанию используется поиск, управляемый OpenHuman, или подключите собственного провайдера с помощью ключа API.',
|
||
'settings.search.description':
|
||
'Выберите поисковую систему, которую использует агент, или полностью отключите инструменты поиска. Управляемый режим использует серверную часть OpenHuman (настройка не требуется). Parallel, Brave и Querit работают напрямую с вашего устройства, используя ваш API-ключ.',
|
||
'settings.search.engineAria': 'Поисковая система',
|
||
'settings.search.engineDisabledLabel': 'Disabled',
|
||
'settings.search.engineDisabledDesc':
|
||
'Удалить инструменты поиска из контекста агента и списка доступных инструментов.',
|
||
'settings.search.engineManagedLabel': 'OpenHuman Управляемый',
|
||
'settings.search.engineManagedDesc':
|
||
'По умолчанию. Маршрутизируется через серверную часть OpenHuman — ключ API не требуется.',
|
||
'settings.search.localManagedUnavailable':
|
||
'Поиск OpenHuman Managed недоступен для локальных пользователей. Добавьте свой ключ API Parallel или Brave, чтобы включить веб-поиск.',
|
||
'settings.search.engineParallelLabel': 'Параллельно',
|
||
'settings.search.engineParallelDesc':
|
||
'Direct Parallel API: инструменты поиска, извлечения, общения, исследования, обогащения и набора данных.',
|
||
'settings.search.engineBraveLabel': 'Brave Поиск',
|
||
'settings.search.engineBraveDesc':
|
||
'Прямой поиск Brave API: инструменты для Интернета, новостей, изображений и видео.',
|
||
'settings.search.engineQueritLabel': 'Керит',
|
||
'settings.search.engineQueritDesc':
|
||
'Direct Querit API: поиск в Интернете с фильтрами по сайту, временному диапазону, стране и языку.',
|
||
'settings.search.statusConfigured': 'Настроено',
|
||
'settings.search.statusNeedsKey': 'Требуется ключ API',
|
||
'settings.search.fallbackToManaged':
|
||
'Ключ не настроен — поиск будет переведен в режим «Управляемый», пока ключ не будет сохранен.',
|
||
'settings.search.getApiKey': 'Получите ключ API',
|
||
'settings.search.save': 'Сохранить',
|
||
'settings.search.clear': 'Очистить',
|
||
'settings.search.show': 'Показать',
|
||
'settings.search.hide': 'Скрыть',
|
||
'settings.search.statusSaving': 'Сохранение…',
|
||
'settings.search.statusSaved': 'Сохранено.',
|
||
'settings.search.statusError': 'Ошибка',
|
||
'settings.search.parallelKeyLabel': 'Parallel API ключ',
|
||
'settings.search.braveKeyLabel': 'Brave Поиск API ключ',
|
||
'settings.search.queritKeyLabel': 'Запросить ключ API',
|
||
'settings.search.placeholderStored': '•••••••• (сохранено)',
|
||
'settings.search.placeholderParallel': 'pk_...',
|
||
'settings.search.placeholderBrave': 'BSA...',
|
||
'settings.search.placeholderQuerit': 'Запросить ключ API',
|
||
'settings.search.allowedSitesLabel': 'Разрешенные веб-сайты',
|
||
'settings.search.allowedSitesHint':
|
||
'Хосты, которые ассистент может открывать и читать — через веб-запросы и браузерный инструмент — по одному на строку, например reuters.com. Хост также охватывает все его поддомены. Веб-поиск не ограничивается этим списком.',
|
||
'settings.search.allowedSitesAllOn':
|
||
'Помощник может открыть любой общедоступный веб-сайт. Локальные и частные адреса остаются заблокированными.',
|
||
'settings.search.allowedSitesPlaceholder': 'reuters.com\napnews.com\ngithub.com',
|
||
'settings.search.allowedSitesSave': 'Сохранение веб-сайтов',
|
||
'settings.search.accessModeAria': 'Режим веб-доступа',
|
||
'settings.search.accessAllowAll': 'Разрешить все',
|
||
'settings.search.accessCustom': 'Обычай',
|
||
'settings.search.accessBlockAll': 'Блокировать все',
|
||
'settings.search.accessBlockAllHint':
|
||
'Весь веб-доступ заблокирован — помощник не может открыть или прочитать какой-либо веб-сайт.',
|
||
'settings.embeddings.title': 'Эмбеддинги',
|
||
'settings.embeddings.description':
|
||
'Выберите провайдера эмбеддингов, который преобразует память в векторы для семантического поиска. Изменение провайдера, модели или размерности делает сохранённые векторы недействительными и требует полного сброса памяти.',
|
||
'settings.embeddings.providerAria': 'Провайдер эмбеддингов',
|
||
'settings.embeddings.statusConfigured': 'Настроено',
|
||
'settings.embeddings.statusNeedsKey': 'Нужен API-ключ',
|
||
'settings.embeddings.apiKeyLabel': 'API-ключ {provider}',
|
||
'settings.embeddings.placeholderStored': '•••••••• (сохранено)',
|
||
'settings.embeddings.placeholderKey': 'Вставьте API-ключ…',
|
||
'settings.embeddings.keyStoredEncrypted':
|
||
'Ваш API-ключ хранится в зашифрованном виде на этом устройстве.',
|
||
'settings.embeddings.show': 'Показать',
|
||
'settings.embeddings.hide': 'Скрыть',
|
||
'settings.embeddings.save': 'Сохранить',
|
||
'settings.embeddings.clear': 'Очистить',
|
||
'settings.embeddings.model': 'Модель',
|
||
'settings.embeddings.dimensions': 'Размерность',
|
||
'settings.embeddings.customEndpoint': 'Пользовательский эндпоинт',
|
||
'settings.embeddings.customModelPlaceholder': 'Название модели',
|
||
'settings.embeddings.customDimsPlaceholder': 'Разм.',
|
||
'settings.embeddings.applyCustom': 'Применить',
|
||
'settings.embeddings.testConnection': 'Проверить подключение',
|
||
'settings.embeddings.testing': 'Проверка…',
|
||
'settings.embeddings.testSuccess': 'Подключено — {dims} измерений',
|
||
'settings.embeddings.testFailed': 'Ошибка: {error}',
|
||
'settings.embeddings.saving': 'Сохранение…',
|
||
'settings.embeddings.saved': 'Сохранено.',
|
||
'settings.embeddings.errorPrefix': 'Ошибка',
|
||
'settings.embeddings.wipeTitle': 'Сбросить векторы памяти?',
|
||
'settings.embeddings.wipeBody':
|
||
'Изменение провайдера эмбеддингов, модели или размерности удалит все сохранённые векторы памяти. Память должна быть перестроена, прежде чем поиск снова заработает. Это действие нельзя отменить.',
|
||
'settings.embeddings.cancel': 'Отмена',
|
||
'settings.embeddings.confirmWipe': 'Очистить и применить',
|
||
'settings.embeddings.setupTitle': 'Настройка {provider}',
|
||
'settings.embeddings.saveAndSwitch': 'Сохранить и переключить',
|
||
'settings.embeddings.optional': 'необязательно',
|
||
'settings.embeddings.vectorSearchDisabled':
|
||
'Векторный поиск отключен. При вызове из памяти будут использоваться только сопоставление ключевых слов и актуальность — без семантического ранжирования.',
|
||
'settings.embeddings.clearKey': 'Удалить API-ключ',
|
||
'pages.settings.ai.embeddings': 'Эмбеддинги',
|
||
'pages.settings.ai.embeddingsDesc': 'Модель векторного кодирования для извлечения из памяти',
|
||
'mcp.alphaBadge': 'Альфа',
|
||
'mcp.alphaBannerText':
|
||
'Поддержка сервера MCP находится в ранней альфа-версии. Реестр Smithery, процесс установки и подключение инструментов могут работать неправильно или изменять форму между выпусками.',
|
||
'mcp.toolList.noTools': 'Инструменты недоступны.',
|
||
'mcp.setup.secretDialog.title': 'MCP Настройка — введите секретный код',
|
||
'mcp.setup.secretDialog.bodyPrefix': 'Агенту установки MCP требуется',
|
||
'mcp.setup.secretDialog.bodySuffix':
|
||
'. Ваше значение отправляется непосредственно в основной процесс и никогда не попадает в диалог AI.',
|
||
'mcp.setup.secretDialog.inputLabel': 'Значение',
|
||
'mcp.setup.secretDialog.inputPlaceholder': 'Вставить сюда',
|
||
'mcp.setup.secretDialog.show': 'Показать',
|
||
'mcp.setup.secretDialog.hide': 'Скрыть',
|
||
'mcp.setup.secretDialog.submit': 'Отправить',
|
||
'mcp.setup.secretDialog.cancel': 'Отмена',
|
||
'mcp.setup.secretDialog.submitting': 'Отправка…',
|
||
'mcp.setup.secretDialog.errorPrefix': 'Не удалось отправить:',
|
||
'mcp.setup.secretDialog.privacyNote':
|
||
'Хранится в зашифрованном виде в локальной таблице секретов MCP. Никогда не регистрировался и не отправлялся модели.',
|
||
'devices.betaBadge': 'Бета-версия',
|
||
'devices.betaText':
|
||
'Эта функция находится в стадии бета-тестирования. Подключите iPhone к этому OpenHuman для использования в качестве удалённого клиента.',
|
||
'devices.comingSoonDescription':
|
||
'Сопряжение устройств скоро появится. Эта страница будет местом для подключения iPhone и управления подключёнными устройствами.',
|
||
'devices.title': 'Устройства',
|
||
'devices.pairIphone': 'Сопряжение с iPhone',
|
||
'devices.noPaired': 'Нет сопряженных устройств',
|
||
'devices.emptyState':
|
||
'Отсканируйте QR-код на своём iPhone, чтобы подключить его к текущей сессии OpenHuman.',
|
||
'devices.devicePairedTitle': 'Устройство сопряжено.',
|
||
'devices.devicePairedMessage': 'iPhone успешно подключен.',
|
||
'devices.deviceRevokedTitle': 'Устройство отозвано.',
|
||
'devices.deviceRevokedMessage': '{label} удалено.',
|
||
'devices.revokeFailedTitle': 'Не удалось отозвать',
|
||
'devices.online': 'В сети',
|
||
'devices.offline': 'Не в сети',
|
||
'devices.lastSeenNever': 'Никогда',
|
||
'devices.lastSeenNow': 'Только сейчас',
|
||
'devices.lastSeenMinutes': '{count}м назад',
|
||
'devices.lastSeenHours': '{count}ч назад',
|
||
'devices.lastSeenDays': '{count}д назад',
|
||
'devices.revoke': 'Отозвать',
|
||
'devices.revokeAria': 'Отозвать {label}',
|
||
'devices.confirmRevokeTitle': 'Отозвать устройство?',
|
||
'devices.confirmRevokeBody': '{label} больше не сможет подключиться. Это невозможно отменить.',
|
||
'devices.loadFailed': 'Не удалось загрузить устройства: {message}',
|
||
'devices.pairModal.title': 'Сопряжение с iPhone',
|
||
'devices.pairModal.loading': 'Генерация кода сопряжения…',
|
||
'devices.pairModal.instructions':
|
||
'Откройте приложение OpenHuman на iPhone и отсканируйте этот код.',
|
||
'devices.pairModal.expiresIn': 'Срок действия кода истекает через ~{count} минуту.',
|
||
'devices.pairModal.expiresInPlural': 'Срок действия кода истекает через ~{count} минут.',
|
||
'devices.pairModal.showDetails': 'Показать подробности',
|
||
'devices.pairModal.hideDetails': 'Скрыть подробности',
|
||
'devices.pairModal.channelId': 'Идентификатор канала',
|
||
'devices.pairModal.pairingUrl': 'Сопряжение URL',
|
||
'devices.pairModal.expiredTitle': 'Срок действия QR code истек',
|
||
'devices.pairModal.expiredBody': 'Создайте новый код для продолжения сопряжения.',
|
||
'devices.pairModal.generateNewCode': 'Создать новый код.',
|
||
'devices.pairModal.successTitle': 'Соединение с iPhone.',
|
||
'devices.pairModal.autoClose': 'Автоматическое закрытие…',
|
||
'devices.pairModal.errorPrefix': 'Не удалось создать соединение: {message}',
|
||
'devices.pairModal.errorTitle': 'Что-то пошло не так',
|
||
'devices.pairModal.copyUrl': 'Копировать',
|
||
'mcp.catalog.searchAria': 'Поиск в каталоге кузнечного дела',
|
||
'mcp.catalog.searchPlaceholder': 'Поиск в каталоге кузнечного дела...',
|
||
'mcp.catalog.loadFailed': 'Не удалось загрузить каталог.',
|
||
'mcp.catalog.noResults': 'Серверы не найдены.',
|
||
'mcp.catalog.noResultsFor': 'Серверы для «{query}» не найдены.',
|
||
'mcp.catalog.loadMore': 'Загрузить больше',
|
||
'mcp.configAssistant.title': 'Помощник по настройке',
|
||
'mcp.configAssistant.empty':
|
||
'Спросите о конфигурации, необходимых переменных окружения или этапах настройки.',
|
||
'mcp.configAssistant.suggestedValues': 'Рекомендуемые значения:',
|
||
'mcp.configAssistant.valueHidden': '(значение скрыто)',
|
||
'mcp.configAssistant.applySuggested': 'Примените предложенные значения.',
|
||
'mcp.configAssistant.reinstallHint': 'Переустановите с этими значениями, чтобы применить их.',
|
||
'mcp.configAssistant.thinking': 'Думаю...',
|
||
'mcp.configAssistant.inputPlaceholder':
|
||
'Задайте вопрос (Enter для отправки, Shift+Enter для перевода строки)',
|
||
'mcp.configAssistant.send': 'Отправить',
|
||
'mcp.configAssistant.failedResponse': 'Не удалось получить ответ',
|
||
'mcp.toolList.availableSingular': 'Доступен инструмент {count}',
|
||
'mcp.toolList.availablePlural': 'Доступен инструмент {count}',
|
||
'mcp.toolList.tryTool': 'Пытаться',
|
||
'mcp.toolList.tryToolAria': 'Открытая площадка для исполнения {name}',
|
||
'mcp.playground.title': 'Запустите {name}',
|
||
'mcp.playground.close': 'Закрыть игровую площадку',
|
||
'mcp.playground.inputSchema': 'Входная схема',
|
||
'mcp.playground.argsLabel': 'Аргументы (JSON)',
|
||
'mcp.playground.argsHelp':
|
||
'Введите JSON, соответствующий входной схеме. Пустой ввод рассматривается как {}.',
|
||
'mcp.playground.runShortcut': '⌘/Ctrl + Enter для запуска',
|
||
'mcp.playground.format': 'Формат',
|
||
'mcp.playground.invalidJson': 'Неверный JSON',
|
||
'mcp.playground.run': 'Запустить инструмент',
|
||
'mcp.playground.running': 'Бег…',
|
||
'mcp.playground.result': 'Результат',
|
||
'mcp.playground.resultError': 'Инструмент возвратил ошибку',
|
||
'mcp.playground.copyResult': 'Копировать результат',
|
||
'mcp.playground.copied': 'Скопировано',
|
||
'mcp.playground.history': 'История',
|
||
'mcp.playground.historyEmpty': 'В этом сеансе пока нет вызовов.',
|
||
'mcp.playground.historyLoad': 'Нагрузка',
|
||
'mcp.playground.unexpectedError': 'Неожиданная ошибка при вызове инструмента.',
|
||
'mcp.catalog.deployed': 'Развернуто',
|
||
'mcp.catalog.installCount': '{count} устанавливает',
|
||
'app.update.dismissNotification': 'Отклонить уведомление об обновлении',
|
||
'bootCheck.rpcAuthSuffix': 'каждый раз RPC.',
|
||
'app.localAiDownload.expandAria': 'Развернуть ход загрузки',
|
||
'app.localAiDownload.collapseAria': 'Свернуть ход загрузки',
|
||
'app.localAiDownload.dismissAria': 'Закрыть уведомление о загрузке.',
|
||
'mobile.nav.ariaLabel': 'Мобильная навигация',
|
||
'progress.stepsAria': 'Шаги выполнения',
|
||
'progress.stepAria': 'Шаг {current} из {total}',
|
||
'workspace.vaultsTitle': 'Хранилища знаний',
|
||
'workspace.vaultsDesc':
|
||
'Укажите локальную папку; файлы разбиваются на части и зеркально отображаются в памяти.',
|
||
'calls.title': 'Звонки',
|
||
'calls.comingSoonBody': 'Скоро появятся звонки с помощью ИИ. Следите за обновлениями.',
|
||
'art.rotatingTetrahedronAria': 'Вращающийся космический корабль в виде перевернутого тетраэдра',
|
||
'mcp.installed.title': 'Установлен',
|
||
'mcp.installed.browseCatalog': 'Просмотр каталога',
|
||
'mcp.installed.empty': 'Серверы MCP пока не установлены.',
|
||
'mcp.installed.toolSingular': '{count} инструмент',
|
||
'mcp.installed.toolPlural': '{count} инструменты',
|
||
'mcp.health.title': 'Здоровье',
|
||
'mcp.health.summaryAria': 'Сводная информация о состоянии соединения MCP',
|
||
'mcp.health.connectedCount': '{count} подключен',
|
||
'mcp.health.connectingCount': '{count} подключение',
|
||
'mcp.health.errorCount': 'Ошибка {count}',
|
||
'mcp.health.disconnectedCount': '{count} простой',
|
||
'mcp.health.retryAll': 'Повторить все ({count})',
|
||
'mcp.health.retryAllAria': 'Повторить попытку на всех серверах {count} с ошибкой MCP.',
|
||
'mcp.health.disconnectAll': 'Отключить все ({count})',
|
||
'mcp.health.disconnectAllAria': 'Отключите все подключенные к {count} серверы MCP.',
|
||
'mcp.health.disconnectConfirm.title': 'Отключить все серверы MCP?',
|
||
'mcp.health.disconnectConfirm.body':
|
||
'Это отключит {count}, подключенные в данный момент серверы MCP. Установленные конфигурации и секреты сохраняются; вы можете повторно подключить любой сервер позже.',
|
||
'mcp.health.disconnectConfirm.cancel': 'Отмена',
|
||
'mcp.health.disconnectConfirm.confirm': 'Отключить все',
|
||
'mcp.health.opErrorGeneric': 'Массовая операция не удалась. Смотрите журналы.',
|
||
'mcp.health.bulkPartialFailure': '{failed} из {total} серверов дали сбой. Смотрите журналы.',
|
||
'mcp.installed.search.landmarkAria': 'Поиск установленных серверов MCP',
|
||
'mcp.installed.search.inputAria': 'Фильтровать установленные серверы MCP по имени',
|
||
'mcp.installed.search.placeholder': 'Фильтровать серверы…',
|
||
'mcp.installed.search.clearAria': 'Очистить фильтр',
|
||
'mcp.installed.search.countMatches': '{shown} из серверов {total}',
|
||
'mcp.installed.search.noMatches': 'Нет серверов, соответствующих «{query}».',
|
||
'mcp.inventory.openButton': 'Инвентарь',
|
||
'mcp.inventory.openAria': 'Откройте общую панель инвентаря MCP.',
|
||
'mcp.inventory.title': 'Общий инвентарь MCP',
|
||
'mcp.inventory.subtitle':
|
||
'Экспортируйте установленные серверы MCP в виде переносимого, несекретного манифеста или импортируйте его у товарища по команде. Секретные значения env никогда не включаются и не импортируются.',
|
||
'mcp.inventory.close': 'Закрыть панель инвентаря',
|
||
'mcp.inventory.tablistAria': 'Разделы инвентаря',
|
||
'mcp.inventory.tab.export': 'Экспорт',
|
||
'mcp.inventory.tab.import': 'Импорт',
|
||
'mcp.inventory.export.empty':
|
||
'Серверы MCP пока не установлены — экспортировать нечего. Сначала установите один из каталога.',
|
||
'mcp.inventory.export.privacyTitle': 'Что в этом манифесте',
|
||
'mcp.inventory.export.privacyBody':
|
||
'Только имена серверов, полные имена, ИМЕНА КЛЮЧЕЙ переменных env и несекретная конфигурация. Секретные значения, идентификаторы вашего компьютера и временные метки каждой установки намеренно удаляются.',
|
||
'mcp.inventory.export.serverCount': 'Серверы {count} в этом манифесте',
|
||
'mcp.inventory.export.copy': 'Копировать',
|
||
'mcp.inventory.export.copied': 'Скопировано',
|
||
'mcp.inventory.export.copyAria': 'Скопируйте манифест JSON в буфер обмена.',
|
||
'mcp.inventory.export.download': 'Скачать',
|
||
'mcp.inventory.export.downloadAria': 'Загрузите манифест в виде файла JSON.',
|
||
'mcp.inventory.import.trustTitle': 'Считайте импортированные манифесты ненадежным кодом.',
|
||
'mcp.inventory.import.trustBody':
|
||
'Сервер MCP — это инструмент, который вы предоставляете своему агенту. Импортируйте манифесты только из источников, которым вы доверяете. Каждая установка требует вашего явного щелчка мышью; ничего не устанавливается автоматически.',
|
||
'mcp.inventory.import.pasteLabel': 'Вставить манифест JSON',
|
||
'mcp.inventory.import.pastePlaceholder': 'Вставьте манифест сюда или загрузите файл.json ниже.',
|
||
'mcp.inventory.import.preview': 'Предварительный просмотр',
|
||
'mcp.inventory.import.clear': 'Прозрачный',
|
||
'mcp.inventory.import.uploadFile': 'или загрузите файл.json',
|
||
'mcp.inventory.import.uploadFileAria': 'Загрузите файл манифеста.json.',
|
||
'mcp.inventory.import.fileTooLarge': 'Файл слишком велик (более 1 МБ). Отказ загружаться.',
|
||
'mcp.inventory.import.fileReadFailed': 'Не удалось прочитать файл.',
|
||
'mcp.inventory.import.parseErrorPrefix': 'Не удалось разобрать манифест:',
|
||
'mcp.inventory.import.previewHeading': 'Предварительный просмотр',
|
||
'mcp.inventory.import.previewCounts': 'Серверы {total} — {newly} новый, {already} уже установлен',
|
||
'mcp.inventory.import.previewEmpty': 'Манифест не содержит серверов.',
|
||
'mcp.inventory.import.exportedFrom': 'Экспортировано из {exporter}.',
|
||
'mcp.inventory.import.exportedAt': 'в {when}',
|
||
'mcp.inventory.import.statusNew': 'Новый',
|
||
'mcp.inventory.import.statusAlreadyInstalled': 'Уже установлено',
|
||
'mcp.inventory.import.envKeysLabel': 'Ключи окружения',
|
||
'mcp.inventory.import.install': 'Установить',
|
||
'mcp.inventory.import.installAria': 'Установите {name} из этого манифеста.',
|
||
'mcp.inventory.import.skipped': 'skipped',
|
||
'mcp.inventory.parseError.empty': 'Манифест пуст.',
|
||
'mcp.inventory.parseError.invalidJson': 'Неверный JSON.',
|
||
'mcp.inventory.parseError.rootNotObject': 'Манифест должен быть объектом JSON в корне.',
|
||
'mcp.inventory.parseError.unsupportedSchema':
|
||
'Неподдерживаемая схема манифеста — этот файл не был создан совместимым экспортером.',
|
||
'mcp.inventory.parseError.missingExportedAt': 'Поле `exported_at` отсутствует или неверно.',
|
||
'mcp.inventory.parseError.missingExportedBy': 'Поле `exported_by` отсутствует или неверно.',
|
||
'mcp.inventory.parseError.invalidServers': 'Массив `servers` отсутствует или недействителен.',
|
||
'mcp.inventory.parseError.serverNotObject': 'Запись сервера не является объектом.',
|
||
'mcp.inventory.parseError.serverMissingQualifiedName':
|
||
'В записи сервера отсутствует квалифицированное_имя.',
|
||
'mcp.inventory.parseError.serverMissingDisplayName':
|
||
'В записи сервера отсутствует отображаемое_имя.',
|
||
'mcp.inventory.parseError.serverEnvKeysNotArray':
|
||
'Запись сервера имеет поле env_keys, которое не является массивом строк.',
|
||
'mcp.inventory.parseError.serverContainsEnv':
|
||
'Запись сервера содержит карту значений `env`. Отказ от импорта — манифесты должны содержать только env_keys (имена), а не секретные значения.',
|
||
'mcp.inventory.parseError.duplicateQualifiedName':
|
||
'В манифесте найдено повторяющееся квалифицированное_имя. Каждый сервер должен появиться не более одного раза.',
|
||
'mcp.tab.loading': 'Загрузка серверов MCP...',
|
||
'mcp.tab.emptyDetail': 'Выберите сервер или просмотрите каталог.',
|
||
'mcp.install.loadingDetail': 'Загрузка сведений о сервере...',
|
||
'mcp.install.back': 'Вернитесь назад',
|
||
'mcp.install.title': 'Установите {name}',
|
||
'mcp.install.requiredEnv': 'Необходимые переменные среды',
|
||
'mcp.install.enterValue': 'Введите {key}',
|
||
'mcp.install.show': 'Показать',
|
||
'mcp.install.hide': 'Скрыть',
|
||
'mcp.install.configLabel': 'Конфигурация (необязательный JSON)',
|
||
'mcp.install.configPlaceholder': '{"ключ": "значение"}',
|
||
'mcp.install.missingRequired': 'Требуется «{key}»',
|
||
'mcp.install.invalidJson': 'Конфигурация JSON недействительна. JSON',
|
||
'mcp.install.failedDetail': 'Не удалось загрузить сведения о сервере.',
|
||
'mcp.install.failedInstall': 'Не удалось установить',
|
||
'mcp.install.button': 'Установить',
|
||
'mcp.install.installing': 'Установка...',
|
||
'mcp.detail.suggestedEnvReady': 'Рекомендуемые значения среды готовы',
|
||
'mcp.detail.suggestedEnvBody':
|
||
'Чтобы применить их, переустановите этот сервер с предложенными значениями: {keys}.',
|
||
'mcp.detail.connect': 'Подключитесь',
|
||
'mcp.detail.connecting': 'Подключение...',
|
||
'mcp.detail.disconnect': 'Отключите',
|
||
'mcp.detail.hideAssistant': 'Скрыть помощника',
|
||
'mcp.detail.helpConfigure': 'Помогите мне настроить',
|
||
'mcp.detail.confirmUninstall': 'Подтвердить удаление?',
|
||
'mcp.detail.confirmUninstallAction': 'Да, удалить',
|
||
'mcp.detail.uninstall': 'Удалить',
|
||
'mcp.detail.envVars': 'Переменные среды',
|
||
'mcp.detail.reconfigure': 'Перенастроить',
|
||
'mcp.detail.reconfigureHint':
|
||
'Введите новые значения для каждой переменной, затем переподключитесь. Это заменит сохранённые значения.',
|
||
'mcp.detail.saveReconnect': 'Сохранить и переподключиться',
|
||
'mcp.detail.reconfigureSaving': 'Сохранение…',
|
||
'mcp.detail.reconfigureSuccess': 'Окружение обновлено, выполнено переподключение.',
|
||
'mcp.detail.reconfigureReconnectFailed':
|
||
'Сохранено, но переподключиться с новыми значениями не удалось.',
|
||
'mcp.detail.tools': 'Инструменты',
|
||
'onboarding.skipForNow': 'Пропустить сейчас',
|
||
'onboarding.localAI.continueWithCloud': 'Продолжить с Облако',
|
||
'onboarding.localAI.useLocalAnyway':
|
||
'Всё равно использовать локальный ИИ (не рекомендуется для вашего устройства)',
|
||
'onboarding.localAI.useLocalInstead': 'Использовать локальный ИИ (подключить Ollama сейчас)',
|
||
'onboarding.localAI.setupIssue': 'При настройке локального AI возникла проблема',
|
||
'autonomy.title': 'Автономия агента.',
|
||
'autonomy.maxActionsLabel': 'Максимальное количество действий в час.',
|
||
'autonomy.maxActionsHelp':
|
||
'Максимальное количество действий инструментов, которое агент может выполнить за скользящий час. Новое значение применяется к следующему чату. Задания cron и слушатели каналов сохраняют текущий лимит до перезапуска OpenHuman.',
|
||
'autonomy.statusSaving': 'Сохранение…',
|
||
'autonomy.statusSaved': 'Сохранено.',
|
||
'autonomy.statusFailed': 'Ошибка',
|
||
'autonomy.unlimitedNote': 'Unlimited — ограничение скорости отключено.',
|
||
'autonomy.invalidIntegerMsg':
|
||
'Должно быть положительным целым числом (используйте пресет «Без ограничений» для отключения лимита).',
|
||
'autonomy.presetUnlimited': 'Неограниченно (по умолчанию)',
|
||
'triggers.toggleFailed': '{action} не удалось для {trigger}: {message}',
|
||
'settings.ai.overview': 'Обзор AI-системы',
|
||
'settings.ai.configStatus': 'Статус конфигурации',
|
||
'settings.ai.fallbackMode': 'Резервный режим',
|
||
'settings.ai.loadedFromRuntime': 'Загружено из среды выполнения',
|
||
'settings.ai.loadingDuration': 'Время загрузки',
|
||
'settings.ai.localRuntime': 'Локальная среда выполнения модели',
|
||
'settings.ai.openManager': 'Открыть менеджер',
|
||
'settings.ai.retryDownload': 'Повторить загрузку',
|
||
'settings.ai.state': 'Состояние',
|
||
'settings.ai.targetModel': 'Целевая модель',
|
||
'settings.ai.download': 'Скачать',
|
||
'settings.ai.localModelUnavailable': 'Статус локальной модели недоступен.',
|
||
'settings.ai.soulConfig': 'Конфигурация персоны SOUL',
|
||
'settings.ai.refreshing': 'Обновление...',
|
||
'settings.ai.refreshSoul': 'Обновить SOUL',
|
||
'settings.ai.loadingSoul': 'Загрузка конфигурации SOUL...',
|
||
'settings.ai.identity': 'Идентичность',
|
||
'settings.ai.personality': 'Личность',
|
||
'settings.ai.safetyRules': 'Правила безопасности',
|
||
'settings.ai.source': 'Источник',
|
||
'settings.ai.loaded': 'Загружено',
|
||
'settings.ai.toolsConfig': 'Конфигурация TOOLS',
|
||
'settings.ai.refreshTools': 'Обновить TOOLS',
|
||
'settings.ai.toolsAvailable': 'Доступно инструментов',
|
||
'settings.ai.tools': 'инструменты',
|
||
'settings.ai.activeSkills': 'Активные навыки',
|
||
'settings.ai.skills': 'навыки',
|
||
'settings.ai.skillsOverview': 'Обзор навыков',
|
||
'settings.ai.refreshingAll': 'Обновление всего...',
|
||
'settings.ai.refreshAll': 'Обновить всю конфигурацию AI',
|
||
'settings.notifications.suppressAll': 'Отключить все уведомления',
|
||
'settings.notifications.suppressAllDesc':
|
||
'Блокировать все всплывающие уведомления ОС из встроенных приложений независимо от фокуса.',
|
||
'settings.notifications.toggleDnd': 'Включить/выключить «Не беспокоить»',
|
||
'settings.notifications.categories': 'Категории',
|
||
'settings.notifications.categoryFooter':
|
||
'Отключение категории останавливает появление новых уведомлений этого типа в центре уведомлений. Существующие уведомления остаются до их очистки.',
|
||
'settings.billing.movedToWeb': 'Оплата перенесена на сайт',
|
||
'settings.billing.openDashboard': 'Открыть панель оплаты',
|
||
'settings.billing.movedToWebDesc':
|
||
'Изменение подписки, способы оплаты, кредиты и счета теперь управляются в TinyHumans на сайте.',
|
||
'settings.billing.backToSettings': 'Назад к настройкам',
|
||
'settings.billing.openingBrowser': 'Открытие браузера...',
|
||
'settings.billing.browserNotOpen': 'Если браузер не открылся, используй кнопку выше.',
|
||
'settings.billing.browserOpenFailed': 'Браузер не открылся автоматически. Используй кнопку выше.',
|
||
'settings.tools.chooseCapabilities':
|
||
'Выбери, какие возможности OpenHuman может использовать от твоего имени.',
|
||
'settings.tools.saveChanges': 'Сохранить изменения',
|
||
'settings.tools.preferencesSaved': 'Настройки сохранены',
|
||
'settings.tools.saveFailed': 'Не удалось сохранить настройки. Попробуй ещё раз.',
|
||
'settings.screenAwareness.mode': 'Режим',
|
||
'settings.screenAwareness.allExceptBlacklist': 'Всё, кроме исключений',
|
||
'settings.screenAwareness.whitelistOnly': 'Только разрешённые',
|
||
'settings.screenAwareness.screenMonitoring': 'Мониторинг экрана',
|
||
'settings.screenAwareness.saveSettings': 'Сохранить настройки',
|
||
'settings.screenAwareness.session': 'Сессия',
|
||
'settings.screenAwareness.status': 'Статус',
|
||
'settings.screenAwareness.active': 'Активно',
|
||
'settings.screenAwareness.stopped': 'Остановлено',
|
||
'settings.screenAwareness.remaining': 'Осталось',
|
||
'settings.screenAwareness.startSession': 'Начать сессию',
|
||
'settings.screenAwareness.stopSession': 'Завершить сессию',
|
||
'settings.screenAwareness.analyzeNow': 'Анализировать сейчас',
|
||
'settings.screenAwareness.macosOnly':
|
||
'Захват экрана и управление разрешениями поддерживаются только на macOS.',
|
||
'connections.comingSoon': 'Скоро',
|
||
'connections.setUp': 'Настроить',
|
||
'connections.configured': 'Настроено',
|
||
'connections.unavailable': 'Недоступно',
|
||
'connections.checking': 'Проверка…',
|
||
'connections.walletConfigured':
|
||
'Локальные идентификаторы EVM, BTC, Solana и Tron настроены на основе твоей фразы восстановления.',
|
||
'connections.walletReady':
|
||
'Настрой локальные идентификаторы EVM, BTC, Solana и Tron из одной фразы восстановления.',
|
||
'connections.walletError':
|
||
'Не удалось проверить статус кошелька. Нажми, чтобы повторить в панели фразы восстановления.',
|
||
'connections.walletChecking': 'Проверка статуса кошелька...',
|
||
'connections.walletIdentities': 'Идентификаторы кошелька',
|
||
'connections.walletDerived':
|
||
'Вычислено локально из фразы восстановления и хранится только как безопасные метаданные.',
|
||
'connections.privacySecurity': 'Конфиденциальность и безопасность',
|
||
'connections.privacySecurityDesc':
|
||
'Все данные и учётные данные хранятся локально по политике нулевого хранения. Информация зашифрована и никогда не передаётся третьим лицам.',
|
||
'channels.status.connecting': 'Подключение',
|
||
'channels.status.notConfigured': 'Не настроено',
|
||
'channels.noActiveRoute': 'Нет активного маршрута',
|
||
'channels.activeRoute': 'Активный маршрут',
|
||
'channels.loadingDefinitions': 'Загрузка определений каналов...',
|
||
'channels.channelConnections': 'Подключения каналов',
|
||
'channels.configureAuthModes': 'Настрой режимы авторизации для каждого канала связи.',
|
||
'channels.configNotAvailable': 'Конфигурация для',
|
||
'channels.channel': 'канал',
|
||
'devOptions.coreModeNotSet': 'Режим ядра: не задан',
|
||
'devOptions.coreModeNotSetDesc':
|
||
'Выбор в загрузочном экране ещё не подтверждён. Используй «Сменить режим» для выбора между «Локальный» и «Облако».',
|
||
'devOptions.local': 'Локальный',
|
||
'devOptions.embeddedCoreSidecar': 'Встроенный процесс ядра',
|
||
'devOptions.sidecarSpawned': 'Запущен внутри процесса Tauri при старте приложения.',
|
||
'devOptions.cloud': 'Облако',
|
||
'devOptions.remoteCoreRpc': 'Удалённый RPC ядра',
|
||
'devOptions.token': 'Токен',
|
||
'devOptions.tokenNotSet': 'не задан — RPC вернёт 401',
|
||
'devOptions.triggerSentryTest': 'Тест Sentry (staging)',
|
||
'devOptions.triggerSentryTestDesc':
|
||
'Отправляет тегированную ошибку для проверки пайплайна Sentry. Issue #1072 — удалить после проверки.',
|
||
'devOptions.sendTestEvent': 'Отправить тестовое событие',
|
||
'devOptions.sending': 'Отправка…',
|
||
'devOptions.eventSent': 'Событие отправлено',
|
||
'devOptions.sentryDisabled': '(идентификатор отсутствует — охрана отключена в этой сборке)',
|
||
'devOptions.failed': 'Ошибка',
|
||
'devOptions.appLogs': 'Логи приложения',
|
||
'devOptions.appLogsDesc':
|
||
'Открыть папку с ежедневными лог-файлами. Прикрепляй последний файл при сообщении об ошибке.',
|
||
'devOptions.openLogsFolder': 'Открыть папку с логами',
|
||
'mnemonic.phraseSaved': 'Фраза восстановления сохранена',
|
||
'mnemonic.walletReady': 'Мультичейн-идентификаторы готовы. Возврат к настройкам...',
|
||
'mnemonic.writeDownWords': 'Запиши эти',
|
||
'mnemonic.wordsInOrder':
|
||
'слова по порядку и храни в надёжном месте. Эта фраза защищает твой локальный ключ шифрования и идентификаторы кошельков EVM, BTC, Solana и Tron.',
|
||
'mnemonic.cannotRecover':
|
||
'Эту фразу невозможно восстановить при потере — она должна оставаться только на твоём устройстве.',
|
||
'mnemonic.copyToClipboard': 'Скопировать в буфер обмена',
|
||
'mnemonic.alreadyHavePhrase': 'У меня уже есть фраза восстановления',
|
||
'mnemonic.consentSaved':
|
||
'Я сохранил эту фразу и соглашаюсь использовать её для настройки локального кошелька',
|
||
'mnemonic.enterPhraseToRestore':
|
||
'Введи фразу восстановления ниже для восстановления идентификаторов кошелька, или вставь полную фразу в любое поле (12 слов для новых бэкапов; фразы из 24 слов от старых версий тоже работают).',
|
||
'mnemonic.words': 'Слова',
|
||
'mnemonic.validPhrase': 'Верная фраза восстановления',
|
||
'mnemonic.generateNewPhrase': 'Сгенерировать новую фразу восстановления',
|
||
'mnemonic.securingData': 'Защита данных...',
|
||
'mnemonic.saveRecoveryPhrase': 'Сохранить фразу восстановления',
|
||
'mnemonic.userNotLoaded': 'Пользователь не загружен. Войди снова или обнови страницу.',
|
||
'mnemonic.invalidPhrase': 'Неверная фраза восстановления. Проверь слова и попробуй снова.',
|
||
'mnemonic.somethingWentWrong': 'Что-то пошло не так. Попробуй ещё раз.',
|
||
'team.failedToCreate': 'Не удалось создать команду',
|
||
'team.invalidInviteCode': 'Неверный или устаревший код приглашения',
|
||
'team.failedToSwitch': 'Не удалось переключить команду',
|
||
'team.failedToLeave': 'Не удалось покинуть команду',
|
||
'team.role.owner': 'Владелец',
|
||
'team.role.admin': 'Администратор',
|
||
'team.role.billingManager': 'Менеджер по оплате',
|
||
'team.role.member': 'Участник',
|
||
'team.active': 'Активная',
|
||
'team.personalTeam': 'Личная команда',
|
||
'team.manageTeam': 'Управление командой',
|
||
'team.switching': 'Переключение...',
|
||
'team.switch': 'Переключить',
|
||
'team.leaving': 'Выход...',
|
||
'team.leave': 'Покинуть',
|
||
'team.yourTeams': 'Твои команды',
|
||
'team.createNewTeam': 'Создать новую команду',
|
||
'team.teamName': 'Название команды',
|
||
'team.creating': 'Создание...',
|
||
'team.joinExistingTeam': 'Вступить в существующую команду',
|
||
'team.inviteCode': 'Код приглашения',
|
||
'team.joining': 'Вход...',
|
||
'team.join': 'Вступить',
|
||
'team.leaveTeam': 'Покинуть команду',
|
||
'team.confirmLeave': 'Ты уверен, что хочешь покинуть',
|
||
'team.leaveWarning':
|
||
'Ты потеряешь доступ к команде и всем её ресурсам. Для повторного входа потребуется новое приглашение.',
|
||
'team.management': 'Управление командой',
|
||
'team.notFound': 'Команда не найдена',
|
||
'team.accessDenied': 'Доступ запрещён',
|
||
'team.members': 'Участники',
|
||
'team.membersDesc': 'Управление участниками и ролями команды',
|
||
'team.invites': 'Приглашения',
|
||
'team.invitesDesc': 'Создание кодов приглашения и управление ими',
|
||
'team.settings': 'Настройки группы',
|
||
'team.settingsDesc': 'Изменить название и настройки команды',
|
||
'team.editSettings': 'Изменить настройки группы',
|
||
'team.enterName': 'Введите название команды',
|
||
'team.saving': 'Сохранение...',
|
||
'team.saveChanges': 'Сохранить изменения',
|
||
'team.delete': 'Удалить команду',
|
||
'team.deleteDesc': 'Удалить эту команду навсегда',
|
||
'team.deleting': 'Удаление...',
|
||
'team.failedToUpdate': 'Не удалось обновить команду.',
|
||
'team.failedToDelete': 'Не удалось удалить команду.',
|
||
'team.manageTitle': 'Управление {name}',
|
||
'team.planCreated': '{plan} План • Создано {date}',
|
||
'team.confirmDelete': 'Вы уверены, что хотите удалить {name}?',
|
||
'team.deleteWarning': 'Это действие нельзя отменить. Все данные команды будут навсегда удалены.',
|
||
'voice.title': 'Голосовой ввод',
|
||
'voice.settings': 'Настройки голоса',
|
||
'voice.settingsDesc': 'Удерживай горячую клавишу для диктовки и вставки текста в активное поле.',
|
||
'voice.hotkey': 'Горячая клавиша',
|
||
'voice.activationMode': 'Режим активации',
|
||
'voice.tapToToggle': 'Нажать для переключения',
|
||
'voice.writingStyle': 'Стиль письма',
|
||
'voice.verbatimTranscription': 'Дословная транскрипция',
|
||
'voice.naturalCleanup': 'Естественная обработка',
|
||
'voice.autoStart': 'Запускать голосовой сервер автоматически вместе с ядром',
|
||
'voice.customDictionary': 'Пользовательский словарь',
|
||
'voice.customDictionaryDesc':
|
||
'Добавляй имена, технические термины и специальные слова для улучшения точности распознавания.',
|
||
'voice.addWord': 'Добавить слово...',
|
||
'voice.sttDisabled':
|
||
'Голосовой ввод отключён, пока локальная STT-модель не загружена и не готова.',
|
||
'voice.openLocalAiModel': 'Открыть локальную AI-модель',
|
||
'voice.serverRestarted': 'Голосовой сервер перезапущен с новыми настройками.',
|
||
'voice.settingsSaved': 'Настройки голоса сохранены.',
|
||
'voice.serverStarted': 'Голосовой сервер запущен.',
|
||
'voice.serverStopped': 'Голосовой сервер остановлен.',
|
||
'voice.saveVoiceSettings': 'Сохранить настройки голоса',
|
||
'voice.startVoiceServer': 'Запустить голосовой сервер',
|
||
'voice.stopVoiceServer': 'Остановить голосовой сервер',
|
||
'voice.debugTitle': 'Отладка голоса',
|
||
'voice.failedToLoadSettings': 'Не удалось загрузить голосовые настройки.',
|
||
'voice.failedToSaveSettings': 'Не удалось сохранить голосовые настройки.',
|
||
'voice.failedToStartServer': 'Не удалось запустить голосовой сервер.',
|
||
'voice.failedToStopServer': 'Не удалось остановить голосовой сервер.',
|
||
'voice.sttDisabledPrefix':
|
||
'Голосовой ввод отключён, пока не загружена локальная модель STT. Используйте',
|
||
'voice.sttDisabledSuffix': 'выше, чтобы установить Whisper.',
|
||
'voice.debug.failedToLoadVoiceDebugData': 'Не удалось загрузить данные голосовой отладки.',
|
||
'voice.debug.settingsSaved': 'Настройки отладки сохранены.',
|
||
'voice.debug.failedToSaveSettings': 'Не удалось сохранить голосовые настройки.',
|
||
'voice.debug.runtimeStatus': 'Статус выполнения.',
|
||
'voice.debug.runtimeStatusDesc':
|
||
'Живая диагностика голосового сервера и движка преобразования речи в текст.',
|
||
'voice.debug.server': 'Сервер',
|
||
'voice.debug.unavailable': 'Недоступно',
|
||
'voice.debug.ready': 'Готов',
|
||
'voice.debug.notReady': 'Не готов',
|
||
'voice.debug.hotkey': 'Горячая клавиша',
|
||
'voice.debug.notAvailable': 'н/д',
|
||
'voice.debug.mode': 'Режим',
|
||
'voice.debug.transcriptions': 'Транскрипции',
|
||
'voice.debug.serverError': 'Ошибка сервера',
|
||
'voice.debug.advancedSettings': 'Расширенные настройки',
|
||
'voice.debug.advancedSettingsDesc':
|
||
'Низкоуровневые параметры настройки записи и определения тишины.',
|
||
'voice.debug.minimumRecordingSeconds': 'Минимальное количество секунд записи',
|
||
'voice.debug.silenceThreshold': 'Порог тишины (RMS)',
|
||
'voice.debug.silenceThresholdDesc':
|
||
'Записи с энергией ниже этого значения считаются тишиной и пропускаются. Меньше = чувствительнее.',
|
||
'voice.providers.saved': 'Поставщики голосовой связи сохранены.',
|
||
'voice.providers.failedToSave': 'Не удалось сохранить поставщиков голосовой связи.',
|
||
'voice.providers.ellipsis': '…',
|
||
'voice.providers.installing': 'Установка',
|
||
'voice.providers.installingBusy': 'Установка…',
|
||
'voice.providers.reinstallLocally': 'Переустановить локально',
|
||
'voice.providers.repair': 'Восстановить',
|
||
'voice.providers.retryLocally': 'Повторить локально.',
|
||
'voice.providers.installLocally': 'Установить локально.',
|
||
'voice.providers.whisperReady': 'Whisper готов.',
|
||
'voice.providers.whisperInstallStarted': 'Установка Whisper началась.',
|
||
'voice.providers.queued': 'поставлен в очередь.',
|
||
'voice.providers.failedToInstallWhisper': 'Не удалось установить Whisper.',
|
||
'voice.providers.piperReady': 'Piper готов.',
|
||
'voice.providers.piperInstallStarted': 'Началась установка Piper.',
|
||
'voice.providers.failedToInstallPiper': 'Не удалось установить Piper.',
|
||
'voice.providers.title': 'Поставщики голоса.',
|
||
'voice.providers.desc':
|
||
'Выберите, где выполняется транскрипция и синтез речи. Используйте кнопки «Установить локально» для загрузки бинарных файлов и моделей в вашу рабочую область. Локальные провайдеры можно сохранить до завершения установки — ручная настройка WHISPER_BIN или PIPER_BIN не требуется.',
|
||
'voice.providers.sttProvider': 'Поставщик преобразования речи в текст',
|
||
'voice.providers.sttProviderAria': 'Поставщик STT',
|
||
'voice.providers.cloudWhisperProxy': 'Облако (прокси-сервер Whisper)',
|
||
'voice.providers.localWhisper': 'Локальный Whisper',
|
||
'voice.providers.installRequired': '(требуется установка)',
|
||
'voice.providers.whisperInstalledTitle': 'Whisper установлен. Нажмите, чтобы переустановить.',
|
||
'voice.providers.whisperDownloadTitle':
|
||
'Загрузить whisper.cpp и модель GGML в вашу рабочую область.',
|
||
'voice.providers.installed': 'Установлено',
|
||
'voice.providers.installFailed': 'Не удалось установить',
|
||
'voice.providers.notInstalled': 'Не установлено',
|
||
'voice.providers.whisperModel': 'Модель Whisper',
|
||
'voice.providers.whisperModelAria': 'Модель Whisper',
|
||
'voice.providers.whisperModelTiny': 'Tiny (39 МБ, самый быстрый)',
|
||
'voice.providers.whisperModelBase': 'Базовый (74 МБ)',
|
||
'voice.providers.whisperModelSmall': 'Маленький (244 МБ)',
|
||
'voice.providers.whisperModelMedium': 'Средний (769 МБ, рекомендуется)',
|
||
'voice.providers.whisperModelLargeTurbo': 'Large v3 Turbo (1,5 ГБ, наилучшая точность)',
|
||
'voice.providers.ttsProvider': 'Поставщик преобразования текста в речь',
|
||
'voice.providers.ttsProviderAria': 'Поставщик TTS',
|
||
'voice.providers.cloudElevenLabsProxy': 'Облако (прокси-сервер ElevenLabs)',
|
||
'voice.providers.localPiper': 'Локальный Piper',
|
||
'voice.providers.piperInstalledTitle': 'Piper установлен. Нажмите, чтобы переустановить.',
|
||
'voice.providers.piperDownloadTitle':
|
||
'Загрузить Piper и встроенный голос en_US-lessac-medium в вашу рабочую область.',
|
||
'voice.providers.piperVoice': 'Голос Пайпера',
|
||
'voice.providers.piperVoiceAria': 'Голос Пайпера',
|
||
'voice.providers.customVoiceOption': 'Другое (введите ниже)…',
|
||
'voice.providers.customVoiceAria': 'Идентификатор голоса Пайпера (пользовательский)',
|
||
'voice.providers.customVoicePlaceholder': 'en_US-lessac-medium',
|
||
'voice.providers.piperVoicesDesc':
|
||
'Голоса поставляются с huggingface.co/rhasspy/piper-voices. Переключение голосов может потребовать нажатия «Установить/Переустановить» для загрузки нового файла .onnx.',
|
||
'voice.providers.mascotVoice': 'Голос талисмана',
|
||
'voice.providers.mascotVoiceDescPrefix':
|
||
'Голос ElevenLabs, используемый маскотом для устных ответов, настраивается в разделе',
|
||
'voice.providers.mascotSettings': 'Настройки талисмана',
|
||
'voice.providers.mascotVoiceDescSuffix': '.',
|
||
'voice.providers.hotkeyPlaceholder': 'Fn',
|
||
'voice.providers.piperPreset.lessacMedium': 'US · Лессак (нейтральный, рекомендуется)',
|
||
'voice.providers.piperPreset.lessacHigh': 'США · Лессак (более высокое качество, больше)',
|
||
'voice.providers.piperPreset.ryanMedium': 'США · Райан (мужчина)',
|
||
'voice.providers.piperPreset.amyMedium': 'США · Эми (женщина)',
|
||
'voice.providers.piperPreset.librittsHigh': 'США · LibriTTS (мультидинамик)',
|
||
'voice.providers.piperPreset.alanMedium': 'ГБ · Алан (мужчина)',
|
||
'voice.providers.piperPreset.jennyDiocoMedium': 'ГБ · Дженни Диоко (женщина)',
|
||
'voice.providers.piperPreset.northernEnglishMaleMedium': 'ГБ · Северный английский (мужчина)',
|
||
'voice.providers.chip.cloud': 'OpenHuman (управляемый)',
|
||
'voice.providers.chip.cloudAria': 'Управляемый провайдер OpenHuman всегда включён',
|
||
'voice.providers.chip.whisper': 'Whisper (локальный)',
|
||
'voice.providers.chip.enableWhisper': 'Включить локальный Whisper STT',
|
||
'voice.providers.chip.disableWhisper': 'Отключить локальный Whisper STT',
|
||
'voice.providers.chip.piper': 'Piper (локальный)',
|
||
'voice.providers.chip.enablePiper': 'Включить локальный Piper TTS',
|
||
'voice.providers.chip.disablePiper': 'Отключить локальный Piper TTS',
|
||
'voice.providers.chip.enableProvider': 'Enable',
|
||
'voice.providers.chip.disableProvider': 'Disable',
|
||
'voice.providers.chip.apiKeyLabel': 'API-ключ',
|
||
'voice.providers.chip.apiKeyPlaceholder': 'sk-…',
|
||
'voice.providers.chip.comingSoon': 'скоро',
|
||
'voice.modal.title': 'Configure',
|
||
'voice.modal.desc':
|
||
'Введите API-ключ для активации этого провайдера. Можно проверить подключение перед сохранением.',
|
||
'voice.modal.testKey': 'Проверить ключ',
|
||
'voice.modal.testing': 'Тестирование…',
|
||
'voice.modal.saveAndEnable': 'Сохранить и включить',
|
||
'voice.modal.enable': 'Enable',
|
||
'voice.modal.whisperDesc':
|
||
'Выберите размер модели и установите бинарный файл Whisper и модель GGML в вашу рабочую область. Более крупные модели точнее, но медленнее.',
|
||
'voice.modal.piperDesc':
|
||
'Выберите голос и установите бинарный файл Piper и модель ONNX в вашу рабочую область. Piper работает полностью офлайн с низкой задержкой.',
|
||
'voice.routing.title': 'Маршрутизация голоса',
|
||
'voice.routing.desc':
|
||
'Выберите, какие включённые провайдеры обрабатывают преобразование речи в текст и текста в речь.',
|
||
'voice.routing.save': 'Save',
|
||
'voice.routing.testStt': 'Тест STT',
|
||
'voice.routing.testTts': 'Тест TTS',
|
||
'voice.routing.elevenlabsVoice': 'Голос ElevenLabs',
|
||
'voice.routing.elevenlabsVoiceAria': 'Выбор голоса ElevenLabs',
|
||
'voice.routing.elevenlabsVoiceIdAria': 'ID голоса ElevenLabs (пользовательский)',
|
||
'voice.routing.elevenlabsVoiceDesc':
|
||
'Выберите подобранный голос или вставьте пользовательский ID голоса из вашей панели ElevenLabs.',
|
||
'voice.externalProviders.title': 'Внешние голосовые провайдеры',
|
||
'voice.externalProviders.desc':
|
||
'Подключайте сторонние STT/TTS API, такие как Deepgram, ElevenLabs или OpenAI, напрямую.',
|
||
'voice.externalProviders.keySet': 'Ключ установлен',
|
||
'voice.externalProviders.noKey': 'Нет API-ключа',
|
||
'voice.externalProviders.test': 'Test',
|
||
'voice.externalProviders.testing': 'Тестирование…',
|
||
'voice.externalProviders.remove': 'Remove',
|
||
'voice.externalProviders.provider': 'Provider',
|
||
'voice.externalProviders.selectProvider': 'Выберите провайдера…',
|
||
'voice.externalProviders.apiKey': 'API-ключ',
|
||
'voice.externalProviders.apiKeyPlaceholder': 'sk-…',
|
||
'voice.externalProviders.add': 'Add',
|
||
'autocomplete.title': 'Автодополнение',
|
||
'autocomplete.settings': 'Настройки',
|
||
'autocomplete.acceptWithTab': 'Принять с помощью Tab',
|
||
'autocomplete.stylePreset': 'Стиль',
|
||
'autocomplete.style.balanced': 'Сбалансированный',
|
||
'autocomplete.style.concise': 'Краткий',
|
||
'autocomplete.style.formal': 'Официальный',
|
||
'autocomplete.style.casual': 'Неформальный',
|
||
'autocomplete.style.custom': 'Пользовательский',
|
||
'autocomplete.disabledApps': 'Отключённые приложения (по одному bundle/токену на строку)',
|
||
'autocomplete.saveSettings': 'Сохранить настройки',
|
||
'autocomplete.saving': 'Сохранение…',
|
||
'autocomplete.runtime': 'Среда выполнения',
|
||
'autocomplete.running': 'Работает',
|
||
'autocomplete.start': 'Запустить',
|
||
'autocomplete.stop': 'Остановить',
|
||
'autocomplete.settingsSaved': 'Настройки автодополнения сохранены.',
|
||
'autocomplete.started': 'Автодополнение запущено.',
|
||
'autocomplete.didNotStart': 'Автодополнение не запустилось. Проверь, включено ли оно.',
|
||
'autocomplete.stopped': 'Автодополнение остановлено.',
|
||
'autocomplete.advancedSettings': 'Дополнительные настройки',
|
||
'autocomplete.debugTitle': 'Отладка автодополнения',
|
||
'chat.agentChat': 'Чат с агентом',
|
||
'chat.overrides': 'Переопределения',
|
||
'chat.model': 'Модель',
|
||
'chat.temperature': 'Температура',
|
||
'chat.conversation': 'Разговор',
|
||
'chat.startAgentConversation': 'Начни разговор с агентом.',
|
||
'chat.you': 'Ты',
|
||
'chat.agent': 'Агент',
|
||
'chat.askAgent': 'Спроси агента о чём угодно...',
|
||
'chat.sendMessage': 'Отправить сообщение',
|
||
'composio.triageTitle': 'Триггеры интеграций',
|
||
'composio.triageDesc':
|
||
'Когда активно, каждый входящий триггер Composio проходит через шаг AI-сортировки, который классифицирует событие и может запустить автоматические действия — один локальный LLM-запрос на триггер. Отключи глобально или для конкретных интеграций, если предпочитаешь ручной просмотр. Если переменная окружения',
|
||
'composio.disableAllTriage': 'Отключить AI-сортировку для всех триггеров',
|
||
'composio.triggersStillRecorded':
|
||
'Триггеры по-прежнему записываются в историю — LLM-запросы не выполняются.',
|
||
'composio.disableSpecificIntegrations': 'Отключить AI-сортировку для конкретных интеграций',
|
||
'composio.settingsSaved': 'Настройки сохранены',
|
||
'composio.saveFailed': 'Не удалось сохранить. Попробуй ещё раз.',
|
||
'cron.title': 'Задания по расписанию',
|
||
'cron.scheduledJobs': 'Запланированные задания',
|
||
'cron.manageCronJobs': 'Управление заданиями из основного планировщика.',
|
||
'cron.refreshCronJobs': 'Обновить задания',
|
||
'localModel.modelStatus': 'Статус модели',
|
||
'localModel.downloadModels': 'Скачать модели',
|
||
'localModel.usage': 'Использование',
|
||
'localModel.usageDesc':
|
||
'Выбери, какие подсистемы используют локальную модель. Остальное использует облако.',
|
||
'localModel.enableRuntime': 'Включить локальную AI-среду',
|
||
'localModel.enableRuntimeDesc':
|
||
'Главный переключатель. По умолчанию выключен — Ollama простаивает. При включении суммаризатор деревьев, интеллект экрана и автодополнение всегда используют локальную модель.',
|
||
'localModel.advancedSettings': 'Дополнительные настройки',
|
||
'localModel.debugTitle': 'Отладка локальной модели',
|
||
'screenAwareness.debugTitle': 'Отладка слежения за экраном',
|
||
'screenAwareness.debug.debugAndDiagnostics': 'Отладка и диагностика',
|
||
'screenAwareness.debug.collapse': 'Свернуть',
|
||
'screenAwareness.debug.expand': 'Развернуть',
|
||
'screenAwareness.debug.failedToSave': 'Не удалось сохранить интеллект экрана.',
|
||
'screenAwareness.debug.policyTitle': 'Политика интеллекта экрана',
|
||
'screenAwareness.debug.baselineFps': 'Базовый показатель FPS',
|
||
'screenAwareness.debug.useVisionModel': 'Использовать модель концепции.',
|
||
'screenAwareness.debug.useVisionModelDesc':
|
||
'Отправлять снимки экрана в визуальную языковую модель для более богатого контекста. Если отключено, используется только OCR-текст с текстовой моделью — быстрее и без требований к визуальной модели.',
|
||
'screenAwareness.debug.keepScreenshots': 'Сохранять снимки экрана.',
|
||
'screenAwareness.debug.keepScreenshotsDesc':
|
||
'Сохранять снимки экрана в рабочей области вместо удаления после обработки',
|
||
'screenAwareness.debug.allowlist': 'Список разрешенных (одно правило в строке)',
|
||
'screenAwareness.debug.denylist': 'Список запрещенных (одно правило в строке)',
|
||
'screenAwareness.debug.saveSettings': 'Сохранить настройки интеллекта экрана',
|
||
'screenAwareness.debug.sessionStats': 'Статистика сеанса',
|
||
'screenAwareness.debug.framesEphemeral': 'Кадры (эфемерные)',
|
||
'screenAwareness.debug.panicStop': 'Паника-стоп',
|
||
'screenAwareness.debug.defaultPanicHotkey': 'Cmd+Shift+.',
|
||
'screenAwareness.debug.vision': 'Видение',
|
||
'screenAwareness.debug.idle': 'бездействующее',
|
||
'screenAwareness.debug.visionQueue': 'Очередь видений',
|
||
'screenAwareness.debug.lastVision': 'Последнее видение',
|
||
'screenAwareness.debug.notAvailable': 'н/д',
|
||
'screenAwareness.debug.visionSummaries': 'Сводки видений',
|
||
'screenAwareness.debug.refreshing': 'Обновление…',
|
||
'screenAwareness.debug.noSummaries': 'Сводок пока нет.',
|
||
'screenAwareness.debug.unknownApp': 'Неизвестное приложение.',
|
||
'screenAwareness.debug.macosOnly':
|
||
'Screen Intelligence V1 в настоящее время поддерживается только на macOS.',
|
||
'memory.debugTitle': 'Отладка памяти',
|
||
'memory.documents': 'Документы',
|
||
'memory.filterByNamespace': 'Фильтровать по пространству имен...',
|
||
'memory.refresh': 'Обновить',
|
||
'memory.noDocumentsFound': 'Документы не найдены.',
|
||
'memory.delete': 'Удалить',
|
||
'memory.rawResponse': 'Необработанный ответ',
|
||
'memory.namespaces': 'Пространства имен',
|
||
'memory.noNamespacesFound': 'Пространства имен не найдены.',
|
||
'memory.queryRecall': 'Запрос и вызов',
|
||
'memory.namespace': 'Пространство имен',
|
||
'memory.queryText': 'Текст запроса...',
|
||
'memory.defaultMaxChunks': '10',
|
||
'memory.maxChunks': 'максимальное количество фрагментов',
|
||
'memory.query': 'Запрос',
|
||
'memory.recall': 'Вызов',
|
||
'memory.queryLabel': 'Запрос',
|
||
'memory.recallLabel': 'Вызов',
|
||
'memory.queryResult': 'Результат запроса',
|
||
'memory.recallResult': 'Результат вызова',
|
||
'memory.clearNamespace': 'Очистить пространство имен',
|
||
'memory.clearNamespaceDescription': 'Безвозвратно удалить все документы в пространстве имен.',
|
||
'memory.selectNamespace': 'Выберите пространство имен...',
|
||
'memory.exampleNamespace': 'например. навык:gmail:user@example.com',
|
||
'memory.clear': 'Очистить',
|
||
'memory.deleteConfirm': 'Удалить документ «{documentId}» в пространстве имен «{namespace}»?',
|
||
'memory.clearNamespaceConfirm':
|
||
'Это навсегда удалит ВСЕ документы в пространстве имён «{namespace}». Продолжить?',
|
||
'memory.clearNamespaceSuccess': 'Пространство имен «{namespace}» очищено.',
|
||
'memory.clearNamespaceEmpty': 'В «{namespace}» нечего очищать.',
|
||
'webhooks.debugTitle': 'Отладка вебхуков',
|
||
'webhooks.failedToLoadDebugData': 'Не удалось загрузить данные отладки веб-перехватчика.',
|
||
'webhooks.clearLogsConfirm': 'Очистить все записанные журналы отладки веб-перехватчиков?',
|
||
'webhooks.failedToClearLogs': 'Не удалось очистить журналы веб-перехватчиков.',
|
||
'webhooks.loading': 'Загрузка...',
|
||
'webhooks.refresh': 'Обновить',
|
||
'webhooks.clearing': 'Очистка...',
|
||
'webhooks.clearLogs': 'Очистить журналы',
|
||
'webhooks.registered': 'зарегистрирован',
|
||
'webhooks.captured': 'захвачен',
|
||
'webhooks.live': 'в прямом эфире',
|
||
'webhooks.disconnected': 'отключен',
|
||
'webhooks.lastEvent': 'Последнее событие',
|
||
'webhooks.at': 'в',
|
||
'webhooks.registeredWebhooks': 'Зарегистрированные вебхуки.',
|
||
'webhooks.noActiveRegistrations': 'Активных регистраций нет.',
|
||
'webhooks.resolvingBackendUrl': 'Разрешение серверной части URL…',
|
||
'webhooks.capturedRequests': 'Захваченные запросы',
|
||
'webhooks.noRequestsCaptured': 'Запросы веб-перехватчика еще не зафиксированы.',
|
||
'webhooks.unrouted': 'не маршрутизировано',
|
||
'webhooks.pending': 'в ожидании',
|
||
'webhooks.requestHeaders': 'Заголовки запроса',
|
||
'webhooks.queryParams': 'Параметры запроса',
|
||
'webhooks.requestBody': 'Тело запроса',
|
||
'webhooks.responseHeaders': 'Заголовки ответа',
|
||
'webhooks.responseBody': 'Тело ответа',
|
||
'webhooks.rawPayload': 'Необработанные полезные данные',
|
||
'webhooks.empty': '[пусто]',
|
||
'providerSetup.error.defaultDetails': 'Не удалось настроить поставщика.',
|
||
'providerSetup.error.providerFallback': 'Поставщик',
|
||
'providerSetup.error.credentialsRejected':
|
||
'{provider} отклонил учётные данные. Проверьте API-ключ и повторите попытку.',
|
||
'providerSetup.error.endpointNotRecognized':
|
||
'{provider} не распознал конечную точку. Проверьте базовый URL и повторите попытку.',
|
||
'providerSetup.error.providerUnavailable':
|
||
'{provider} временно недоступен. Повторите попытку или проверьте статус провайдера.',
|
||
'providerSetup.error.unreachable':
|
||
'Не удалось подключиться к {provider}. Проверьте URL конечной точки и сетевое подключение, затем повторите попытку.',
|
||
'providerSetup.error.couldNotReachWithMessage': 'Не удалось связаться с {provider}: {message}',
|
||
'providerSetup.error.technicalDetails': 'Технические подробности',
|
||
'notifications.routingTitle': 'Маршрутизация уведомлений',
|
||
'notifications.routing.pipelineStats': 'Статистика конвейера',
|
||
'notifications.routing.total': 'Всего',
|
||
'notifications.routing.unread': 'Непрочитано',
|
||
'notifications.routing.unscored': 'Без оценок',
|
||
'notifications.routing.intelligenceTitle': 'Аналитика уведомлений',
|
||
'notifications.routing.intelligenceDesc':
|
||
'Каждое уведомление из подключённых аккаунтов оценивается локальной моделью ИИ. Важные уведомления автоматически передаются агенту-оркестратору, чтобы ничто критическое не осталось незамеченным.',
|
||
'notifications.routing.howItWorks': 'Как это работает',
|
||
'notifications.routing.level.drop': 'Удаление',
|
||
'notifications.routing.level.dropDesc': 'Шум/спам — сохраняется, но не отображается',
|
||
'notifications.routing.level.acknowledge': 'Подтверждение',
|
||
'notifications.routing.level.acknowledgeDesc':
|
||
'Низкий приоритет — отображается в центре уведомлений',
|
||
'notifications.routing.level.react': 'Реагировать',
|
||
'notifications.routing.level.reactDesc':
|
||
'Средний приоритет — запускает сфокусированный ответ агента',
|
||
'notifications.routing.level.escalate': 'Эскалация',
|
||
'notifications.routing.level.escalateDesc': 'Высокий приоритет — передаётся агенту-оркестратору',
|
||
'notifications.routing.perProvider': 'Маршрутизация для каждого поставщика',
|
||
'notifications.routing.threshold': 'Порог',
|
||
'notifications.routing.routeToOrchestrator': 'Маршрут к оркестратору',
|
||
'notifications.routing.loadSettingsError':
|
||
'Не удалось загрузить настройки. Закройте и повторно откройте эту панель.',
|
||
'common.reload': 'Перезагрузить',
|
||
'common.skip': 'Пропустить',
|
||
'common.disable': 'Отключить',
|
||
'common.enable': 'Включить',
|
||
'chat.safetyTimeout':
|
||
'Агент не ответил в течение 2 минут. Попробуй снова или проверь соединение.',
|
||
'chat.filter.all': 'Все',
|
||
'chat.filter.work': 'Работа',
|
||
'chat.filter.briefing': 'Брифинг',
|
||
'chat.filter.notification': 'Уведомление',
|
||
'chat.filter.workers': 'Воркеры',
|
||
'chat.selectThread': 'Выбери чат',
|
||
'chat.threads': 'Чаты',
|
||
'chat.noThreads': 'Чатов пока нет',
|
||
'chat.noLabelThreads': 'Нет чатов «{label}»',
|
||
'chat.noWorkerThreads': 'Чатов воркеров пока нет',
|
||
'chat.deleteThread': 'Удалить чат',
|
||
'chat.deleteThreadConfirm': 'Удалить «{title}»?',
|
||
'chat.untitledThread': 'Чат без названия',
|
||
'chat.editThreadTitle': 'Изменить название ветки',
|
||
'chat.hideSidebar': 'Скрыть боковую панель',
|
||
'chat.showSidebar': 'Показать боковую панель',
|
||
'chat.newThreadShortcut': 'Новый чат (/new)',
|
||
'chat.new': 'Новый',
|
||
'chat.failedToLoadMessages': 'Не удалось загрузить сообщения',
|
||
'chat.thinkingIteration': 'Думаю... ({n})',
|
||
'chat.thinkingDots': 'Думаю...',
|
||
'chat.approachingLimit': 'Лимит использования близко',
|
||
'chat.approachingLimitMsg': 'Ты использовал {pct}% доступной квоты.',
|
||
'chat.upgrade': 'Улучшить',
|
||
'chat.weeklyLimitHit': 'Ты достиг еженедельного лимита.',
|
||
'chat.resets': 'Сбросится',
|
||
'chat.topUpToContinue': 'Пополни баланс для продолжения.',
|
||
'chat.budgetComplete':
|
||
'Включённый бюджет исчерпан. Добавь кредиты или улучши план для продолжения.',
|
||
'chat.topUp': 'Пополнить',
|
||
'chat.cycle': 'Цикл',
|
||
'chat.cycleSpent': 'Потрачено за цикл',
|
||
'chat.cycleRemaining': 'Осталось',
|
||
'chat.left': 'осталось',
|
||
'chat.setup': 'Настроить',
|
||
'chat.switchToText': 'Переключиться на текст',
|
||
'chat.transcribing': 'Транскрипция...',
|
||
'chat.stopAndSend': 'Остановить и отправить',
|
||
'chat.startTalking': 'Начни говорить',
|
||
'chat.playingVoiceReply': 'Воспроизведение голосового ответа',
|
||
'chat.voiceHint': 'Используй микрофон для речи',
|
||
'chat.micUnavailable': 'Микрофон недоступен',
|
||
'chat.turn': 'ход',
|
||
'chat.turns': 'ходов',
|
||
'chat.openWorkerThread': 'Открыть чат воркера',
|
||
'chat.attachment.attach': 'Прикрепить изображение',
|
||
'chat.attachment.remove': 'Удалить {name}',
|
||
'chat.attachment.tooMany': 'Максимум {max} изображений на сообщение',
|
||
'chat.attachment.tooLarge': 'Изображение превышает ограничение размера {max}',
|
||
'chat.attachment.unsupportedType':
|
||
'Неподдерживаемый тип файла. Используйте PNG, JPEG, WebP, GIF или BMP.',
|
||
'chat.attachment.readFailed': 'Не удалось прочитать файл',
|
||
'memory.searchAria': 'Поиск в памяти',
|
||
'memory.searchPlaceholder': 'Поиск записей памяти...',
|
||
'memory.sourceFilter.all': 'Все источники',
|
||
'memory.sourceFilter.email': 'Электронная почта',
|
||
'memory.sourceFilter.calendar': 'Календарь',
|
||
'memory.sourceFilter.telegram': 'Telegram',
|
||
'memory.sourceFilter.aiInsight': 'AI-инсайт',
|
||
'memory.sourceFilter.system': 'Система',
|
||
'memory.sourceFilter.trading': 'Трейдинг',
|
||
'memory.sourceFilter.security': 'Безопасность',
|
||
'memory.ingestionActivity': 'Активность загрузки',
|
||
'memory.events': 'событий',
|
||
'memory.event': 'событие',
|
||
'memory.overTheLast': 'за последние',
|
||
'memory.months': 'месяцев',
|
||
'memory.peak': 'Пик',
|
||
'memory.perDay': '/день',
|
||
'memory.less': 'Меньше',
|
||
'memory.more': 'Больше',
|
||
'memory.on': 'в',
|
||
'memory.loading': 'Загрузка памяти',
|
||
'memory.fetching': 'Получение записей памяти...',
|
||
'memory.analyzing': 'Анализ памяти',
|
||
'memory.analyzingHint': 'Обработка воспоминаний для извлечения инсайтов...',
|
||
'memory.noMatches': 'Ничего не найдено',
|
||
'memory.noMatchesHint': 'Попробуй изменить условия поиска или фильтры.',
|
||
'memory.allCaughtUp': 'Всё просмотрено',
|
||
'memory.allCaughtUpHint': 'Новых записей для обработки нет.',
|
||
'memory.noAnalysis': 'Анализа ещё нет',
|
||
'memory.noAnalysisHint': 'Запусти анализ, чтобы найти закономерности в воспоминаниях.',
|
||
'memory.emptyHint': 'Начни общаться, чтобы создать первые воспоминания.',
|
||
'mic.unavailable': 'Микрофон недоступен',
|
||
'mic.permissionDenied': 'Доступ к микрофону запрещён',
|
||
'mic.failedToStartRecorder': 'Не удалось запустить запись',
|
||
'mic.deviceUnavailable': 'Выбранный микрофон недоступен — попробуйте другое устройство.',
|
||
'mic.deviceInUse': 'Микрофон используется другим приложением.',
|
||
'mic.error': 'Ошибка микрофона',
|
||
'mic.transcribing': 'Транскрипция...',
|
||
'mic.retryingTranscription': 'Retrying... ({attempt} of {max})',
|
||
'mic.tapToSend': 'Нажми для отправки',
|
||
'mic.waitingForAgent': 'Ожидание агента...',
|
||
'mic.tapAndSpeak': 'Нажми и говори',
|
||
'mic.stopRecording': 'Остановить запись и отправить',
|
||
'mic.startRecording': 'Начать запись',
|
||
'mic.deviceSelector': 'Микрофонное устройство',
|
||
'mic.tapToSendCountdown': 'Нажми для отправки ({seconds}с)',
|
||
'token.usageLimitReached': 'Лимит использования достигнут',
|
||
'token.approachingLimit': 'Лимит близко',
|
||
'token.planClickForDetails': 'план — нажми для подробностей',
|
||
'token.sessionTokens': 'Вход: {in} | Выход: {out} | Ходов: {turns}',
|
||
'token.limit': 'Лимит достигнут',
|
||
'catalog.noCapabilityBinding': 'Нет привязки возможностей',
|
||
'catalog.downloadFailed': 'Загрузка не удалась',
|
||
'catalog.active': 'Активно',
|
||
'catalog.installed': 'Установлено',
|
||
'catalog.notDownloaded': 'Не загружено',
|
||
'catalog.inUse': 'Используется',
|
||
'catalog.use': 'Использовать',
|
||
'catalog.deleteModel': 'Удалить модель',
|
||
'catalog.download': 'Скачать',
|
||
'navigator.recent': 'Недавние',
|
||
'navigator.today': 'Сегодня',
|
||
'navigator.thisWeek': 'На этой неделе',
|
||
'navigator.sources': 'Источники',
|
||
'navigator.email': 'Электронная почта',
|
||
'navigator.slack': 'Slack',
|
||
'navigator.chat': 'Чат',
|
||
'navigator.documents': 'Документы',
|
||
'navigator.people': 'Люди',
|
||
'navigator.topics': 'Темы',
|
||
'dreams.description':
|
||
'Сны — это AI-отражения, которые синтезируют закономерности из твоих воспоминаний.',
|
||
'dreams.comingSoon': 'Скоро',
|
||
'assignment.memoryLlm': 'LLM памяти',
|
||
'assignment.memoryLlmAria': 'Выбор Memory LLM',
|
||
'assignment.embedder': 'Эмбеддер',
|
||
'assignment.loaded': 'Загружено',
|
||
'assignment.notDownloaded': 'Не загружено',
|
||
'assignment.usedForExtractSummarise': 'Используется для извлечения и суммаризации',
|
||
'insights.knownFacts': 'Известные факты',
|
||
'insights.preferences': 'Предпочтения',
|
||
'insights.relationships': 'Отношения',
|
||
'insights.skills': 'Навыки',
|
||
'insights.opinions': 'Мнения',
|
||
'insights.other': 'Другое',
|
||
'insights.title': 'Инсайты',
|
||
'insights.empty': 'Инсайтов пока нет. Они появляются по мере роста памяти.',
|
||
'insights.description': 'На основе {count} связей в твоём графе памяти.',
|
||
'insights.items': 'элементов',
|
||
'insights.more': 'ещё',
|
||
'calls.joiningCall': 'Подключение к звонку',
|
||
'calls.meetWindowOpening': 'Окно Meet открывается...',
|
||
'calls.failedToStart': 'Не удалось начать звонок Meet',
|
||
'calls.couldNotStart': 'Не удалось начать звонок',
|
||
'calls.failedToClose': 'Не удалось завершить звонок',
|
||
'calls.couldNotClose': 'Не удалось закрыть звонок',
|
||
'calls.joinMeet': 'Подключиться к звонку Google Meet',
|
||
'calls.joinMeetDescription': 'Введи ссылку Google Meet для подключения.',
|
||
'calls.meetLink': 'Ссылка Meet',
|
||
'calls.displayName': 'Отображаемое имя',
|
||
'calls.openingMeet': 'Открытие Meet...',
|
||
'calls.joinCall': 'Подключиться к звонку',
|
||
'calls.activeCalls': 'Активные звонки',
|
||
'calls.leave': 'Выйти',
|
||
'workspace.wipeConfirm': 'Ты уверен, что хочешь очистить всю память? Это нельзя отменить.',
|
||
'workspace.resetTreeConfirm': 'Ты уверен, что хочешь перестроить дерево памяти?',
|
||
'workspace.wipeTitle': 'Очистить память',
|
||
'workspace.resetting': 'Сброс...',
|
||
'workspace.resetMemory': 'Сбросить память',
|
||
'workspace.resetTreeTitle': 'Перестроить дерево памяти',
|
||
'workspace.rebuilding': 'Перестройка...',
|
||
'workspace.resetMemoryTree': 'Сбросить дерево памяти',
|
||
'workspace.building': 'Построение...',
|
||
'workspace.buildSummaryTrees': 'Построить деревья суммаризации',
|
||
'workspace.viewVault': 'Открыть хранилище',
|
||
'workspace.openingVaultTitle': 'Открытие хранилища в Obsidian',
|
||
'workspace.openingVaultMessage':
|
||
'Если Obsidian не открывается, установите его с obsidian.md или используйте «Показать папку». Путь к хранилищу:',
|
||
'workspace.openVaultFailedTitle': 'Не удалось открыть хранилище в Obsidian',
|
||
'workspace.openVaultFailedMessage':
|
||
'Используйте Reveal Folder, чтобы напрямую открыть каталог хранилища. Путь к хранилищу:',
|
||
'workspace.revealVaultFailed': 'Не удалось показать папку хранилища',
|
||
'workspace.revealFolder': 'Показать папку',
|
||
'workspace.checkingVault': 'Проверка…',
|
||
'workspace.vaultNotRegisteredHelp':
|
||
'Obsidian открывает только папки, добавленные как хранилище. В Obsidian выберите «Открыть папку как хранилище» и укажите папку ниже — это нужно сделать только один раз. Затем нажмите «Просмотр хранилища» снова.',
|
||
'workspace.obsidianNotFoundHelp':
|
||
'Obsidian не найден на этом устройстве. Установите его или — если он установлен в нестандартном месте — укажите папку конфигурации в разделе «Дополнительно».',
|
||
'workspace.openAnyway': 'Всё равно открыть в Obsidian',
|
||
'workspace.installObsidian': 'Установить Obsidian',
|
||
'workspace.obsidianAdvanced': 'Obsidian установлен в другом месте?',
|
||
'workspace.obsidianConfigDirLabel': 'Папка конфигурации Obsidian',
|
||
'workspace.obsidianConfigDirHint':
|
||
'Путь к папке, содержащей obsidian.json (например, ~/.config/obsidian). Оставьте пустым для автоопределения.',
|
||
'workspace.obsidianConfigDirPlaceholder': '~/.config/obsidian',
|
||
'workspace.graphLoadFailed': 'Не удалось загрузить граф памяти',
|
||
'workspace.loadingGraph': 'Загрузка графа памяти...',
|
||
'workspace.graphViewMode': 'Режим просмотра графа памяти',
|
||
'workspace.trees': 'Деревья',
|
||
'workspace.contacts': 'Контакты',
|
||
'graph.noContactMentions': 'Нет упоминаний контактов',
|
||
'graph.noMemory': 'Памяти нет',
|
||
'graph.source': 'Источник',
|
||
'graph.topic': 'Тема',
|
||
'graph.global': 'Глобальное',
|
||
'graph.document': 'Документ',
|
||
'graph.contact': 'Контакт',
|
||
'graph.nodes': 'узлов',
|
||
'graph.parentChild': 'родитель-потомок',
|
||
'graph.documentContact': 'документ-контакт',
|
||
'graph.link': 'связь',
|
||
'graph.links': 'связей',
|
||
'graph.children': 'потомки',
|
||
'graph.clickToOpenObsidian': 'Нажми, чтобы открыть в Obsidian',
|
||
'graph.person': 'Человек',
|
||
'graph.resetView': 'Сбросить вид',
|
||
'modal.dontShowAgain': 'Не показывать похожие предложения',
|
||
'reflections.loading': 'Загрузка рефлексий...',
|
||
'reflections.empty': 'Рефлексий пока нет',
|
||
'reflections.title': 'Рефлексии',
|
||
'reflections.proposedAction': 'Предлагаемое действие',
|
||
'reflections.act': 'Выполнить',
|
||
'reflections.dismiss': 'Закрыть',
|
||
'whatsapp.chatsSynced': 'чатов синхронизировано',
|
||
'whatsapp.chatSynced': 'чат синхронизирован',
|
||
'sync.active': 'Активно',
|
||
'sync.recent': 'Недавние',
|
||
'sync.idle': 'Ожидание',
|
||
'sync.memorySources': 'Источники памяти',
|
||
'sync.noConnectedSources': 'Нет подключённых источников',
|
||
'sync.chunks': 'блоков',
|
||
'sync.lastChunk': 'Последний блок:',
|
||
'sync.pending': 'ожидает',
|
||
'sync.processed': 'обработано',
|
||
'sync.syncing': 'Синхронизация…',
|
||
'sync.sync': 'Синхронизировать',
|
||
'sync.failedToLoad': 'Не удалось загрузить статус синхронизации',
|
||
'sync.noContent': 'Контент в память ещё не синхронизирован. Подключи интеграцию для начала.',
|
||
'memorySources.title': 'Источники памяти',
|
||
'memorySources.empty': 'Источников памяти пока нет. Добавьте один, чтобы начать кормить память.',
|
||
'memorySources.customSources': 'Пользовательские источники',
|
||
'memorySources.addSource': 'Добавить источник',
|
||
'memorySources.noCustomSources':
|
||
'Пользовательских источников пока нет. Для начала добавьте папку, репозиторий GitHub, канал RSS или веб-страницу.',
|
||
'memorySources.loadingConnections': 'Загрузка подключений…',
|
||
'memorySources.noConnections':
|
||
'Активных соединений Composio не найдено. Сначала подключите интеграцию.',
|
||
'memorySources.pickConnection': 'Выберите соединение',
|
||
'memorySources.selectConnection': '— Выберите соединение —',
|
||
'memorySources.composioListFailed': 'Не удалось загрузить соединения Composio.',
|
||
'memorySources.browse': 'Просматривать…',
|
||
'memorySources.folderPathPlaceholder': '/Users/you/notes',
|
||
'memorySources.globPatternPlaceholder': '**/*.md',
|
||
'memorySources.repoUrlPlaceholder': 'https://github.com/org/repo',
|
||
'memorySources.branchPlaceholder': 'main',
|
||
'memorySources.feedUrlPlaceholder': 'https://example.com/feed.xml',
|
||
'memorySources.pageUrlPlaceholder': 'https://example.com/article',
|
||
'memorySources.cssSelectorPlaceholder': 'article',
|
||
'memorySources.searchQueryPlaceholder': 'от:пользователь AI безопасность',
|
||
'memorySources.kind.composio': 'Интеграция',
|
||
'memorySources.kind.folder': 'Локальная папка',
|
||
'memorySources.kind.github_repo': 'Репо GitHub',
|
||
'memorySources.kind.twitter_query': 'Поиск в Твиттере',
|
||
'memorySources.kind.rss_feed': 'RSS Лента',
|
||
'memorySources.kind.web_page': 'Веб-страница',
|
||
'memorySources.sync.successTitle': 'Синхронизация',
|
||
'memorySources.sync.successMessage': 'Прогресс появится в ближайшее время.',
|
||
'memorySources.sync.failedTitle': 'Синхронизация не удалась:',
|
||
'time.justNow': 'только что',
|
||
'time.secondsAgoSuffix': 'с назад',
|
||
'time.minutesAgoSuffix': 'мин назад',
|
||
'time.hoursAgoSuffix': 'ч назад',
|
||
'time.daysAgoSuffix': 'д назад',
|
||
'memorySources.pickKind': 'Какой источник вы хотите добавить?',
|
||
'memorySources.backToKinds': 'Вернуться к типам источников',
|
||
'memorySources.label': 'Этикетка',
|
||
'memorySources.labelPlaceholder': 'Мои исследовательские заметки',
|
||
'memorySources.add': 'Добавлять',
|
||
'memorySources.adding': 'Добавление…',
|
||
'memorySources.added': 'Источник добавлен',
|
||
'memorySources.removed': 'Источник удален.',
|
||
'memorySources.remove': 'Удалять',
|
||
'memorySources.enable': 'Давать возможность',
|
||
'memorySources.disable': 'Запрещать',
|
||
'memorySources.toggleFailed': 'Переключить не удалось',
|
||
'memorySources.removeFailed': 'Удалить не удалось',
|
||
'memorySources.folderPath': 'Путь к папке',
|
||
'memorySources.globPattern': 'Шаблон глобуса',
|
||
'memorySources.repoUrl': 'Репозиторий URL',
|
||
'memorySources.branch': 'Ветвь',
|
||
'memorySources.feedUrl': 'Подача URL',
|
||
'memorySources.pageUrl': 'Страница URL',
|
||
'memorySources.cssSelector': 'Селектор CSS (опционально)',
|
||
'memorySources.searchQuery': 'Поисковый запрос',
|
||
'memorySources.build.title': 'Построить',
|
||
'memorySources.build.building': 'Построение…',
|
||
'memorySources.build.successTitle': 'Дерево построено',
|
||
'memorySources.build.failedTitle': 'Ошибка построения',
|
||
'memorySources.build.sealsMessage': 'запечатывание завершено',
|
||
'backend.aiBackend': 'AI-бэкенд',
|
||
'backend.cloud': 'Облако',
|
||
'backend.recommended': 'Рекомендуется',
|
||
'backend.cloudDescription':
|
||
'Быстрые и мощные модели на наших серверах. Готовы к использованию сразу.',
|
||
'backend.privacyNote':
|
||
'Личные данные, сообщения и ключи никогда не отправляются на наши серверы.',
|
||
'backend.local': 'Локально',
|
||
'backend.advanced': 'Дополнительно',
|
||
'backend.localDescription':
|
||
'Запускай модели на своём устройстве с помощью Ollama. Полная приватность, требует настройки.',
|
||
'backend.ramRecommended': 'Рекомендуется 16 ГБ+ RAM',
|
||
'subconscious.tasks': 'задач',
|
||
'subconscious.ticks': 'тиков',
|
||
'subconscious.last': 'Последний',
|
||
'subconscious.failed': 'ошибка',
|
||
'subconscious.tickInterval': 'Интервал тика',
|
||
'subconscious.runNow': 'Запустить сейчас',
|
||
'subconscious.providerUnavailableTitle': 'Подсознание приостановлено',
|
||
'subconscious.providerSettings': 'Настройки ИИ',
|
||
'subconscious.approvalNeeded': 'Требуется подтверждение',
|
||
'subconscious.requiresApproval': 'Требует подтверждения',
|
||
'subconscious.fixInConnections': 'Исправить в подключениях',
|
||
'subconscious.goAhead': 'Продолжить',
|
||
'subconscious.activeTasks': 'Активные задачи',
|
||
'subconscious.noActiveTasks': 'Активных задач нет',
|
||
'subconscious.default': 'По умолчанию',
|
||
'subconscious.addTaskPlaceholder': 'Добавить новую задачу...',
|
||
'subconscious.activityLog': 'Журнал активности',
|
||
'subconscious.noActivity': 'Активности пока нет',
|
||
'subconscious.decision.nothingNew': 'Ничего нового',
|
||
'subconscious.decision.completed': 'Завершено',
|
||
'subconscious.decision.evaluating': 'Оценка',
|
||
'subconscious.decision.waitingApproval': 'Ожидание подтверждения',
|
||
'subconscious.decision.failed': 'Ошибка',
|
||
'subconscious.decision.cancelled': 'Отменено',
|
||
'subconscious.decision.skipped': 'Пропущено',
|
||
'actionable.complete': 'Выполнить',
|
||
'actionable.dismiss': 'Закрыть',
|
||
'actionable.snooze': 'Отложить',
|
||
'actionable.new': 'Новое',
|
||
'stats.storage': 'Хранилище',
|
||
'stats.files': 'файлов',
|
||
'stats.documents': 'Документы',
|
||
'stats.today': 'сегодня',
|
||
'stats.namespaces': 'Пространства имён',
|
||
'stats.relations': 'Связи',
|
||
'stats.firstMemory': 'Первое воспоминание',
|
||
'stats.latest': 'Последнее',
|
||
'stats.sessions': 'Сессии',
|
||
'stats.tokens': 'токенов',
|
||
'bootCheck.invalidUrl': 'Введи URL среды выполнения.',
|
||
'bootCheck.urlMustStartWith': 'URL должен начинаться с http:// или https://',
|
||
'bootCheck.validUrlRequired':
|
||
'Похоже, это не корректный URL (попробуй https://core.example.com/rpc)',
|
||
'bootCheck.tokenRequired': 'Для подключения нужен токен авторизации.',
|
||
'bootCheck.httpPublicWarning':
|
||
'Это обычный HTTP-адрес на публичном хосте — трафик не будет зашифрован. Используйте HTTPS, если вы не доверяете этой сети.',
|
||
'bootCheck.chooseCoreMode': 'Выбрать среду выполнения',
|
||
'bootCheck.connectToCore': 'Подключиться к среде выполнения',
|
||
'bootCheck.desktopDescription':
|
||
'OpenHuman нужна среда выполнения для работы. Выбери, где она должна находиться.',
|
||
'bootCheck.webDescription':
|
||
'В браузере OpenHuman подключается к среде выполнения под твоим управлением. Введи URL и токен авторизации, или скачай настольное приложение для локального запуска.',
|
||
'bootCheck.preferDesktop': 'Хочешь держать всё на своём устройстве?',
|
||
'bootCheck.downloadDesktop': 'Скачать настольное приложение',
|
||
'bootCheck.localRecommended': 'Запустить локально (рекомендуется)',
|
||
'bootCheck.localDescription':
|
||
'Работает прямо на твоём компьютере. Быстро, полностью приватно, ничего настраивать не нужно.',
|
||
'bootCheck.cloudMode': 'Запустить в облаке (сложно)',
|
||
'bootCheck.cloudDescription':
|
||
'Подключись к среде выполнения, которую ты размещаешь в другом месте. Работает 24×7, не нужно держать это устройство включённым.',
|
||
'bootCheck.coreRpcUrl': 'URL среды выполнения',
|
||
'bootCheck.rpcUrlPlaceholder': 'https://core.example.com/rpc',
|
||
'bootCheck.authToken': 'Токен авторизации',
|
||
'bootCheck.bearerTokenPlaceholder': 'Bearer-токен от твоей удалённой среды выполнения',
|
||
'bootCheck.storedLocally': 'Хранится только на этом устройстве. Отправляется как ',
|
||
'bootCheck.testing': 'Проверка…',
|
||
'bootCheck.testConnection': 'Проверить соединение',
|
||
'bootCheck.connectedOk': 'Подключено. Всё готово.',
|
||
'bootCheck.authFailed': 'Токен не подошёл. Проверь его и попробуй снова.',
|
||
'bootCheck.unreachablePrefix': 'Не удалось достучаться:',
|
||
'bootCheck.checkingCore': 'Пробуждение среды выполнения…',
|
||
'bootCheck.cannotReach': 'Нет доступа к среде выполнения',
|
||
'bootCheck.cannotReachDesc': 'Не удалось подключиться к среде выполнения. Попробовать другую?',
|
||
'bootCheck.switchMode': 'Выбрать другую среду',
|
||
'bootCheck.quit': 'Выйти',
|
||
'bootCheck.legacyDetected': 'Обнаружена устаревшая фоновая среда',
|
||
'bootCheck.legacyDescription':
|
||
'На этом устройстве уже запущен отдельно установленный демон OpenHuman. Нужно его убрать, прежде чем встроенная среда сможет взять управление.',
|
||
'bootCheck.removing': 'Удаление…',
|
||
'bootCheck.removeContinue': 'Удалить и продолжить',
|
||
'bootCheck.localNeedsRestart': 'Требуется перезапуск локальной среды',
|
||
'bootCheck.localNeedsRestartDesc':
|
||
'Локальная среда выполнения и приложение используют разные версии. Быстрый перезапуск синхронизирует их.',
|
||
'bootCheck.restarting': 'Перезапуск…',
|
||
'bootCheck.restartCore': 'Перезапустить среду',
|
||
'bootCheck.cloudNeedsUpdate': 'Требуется обновление облачной среды',
|
||
'bootCheck.cloudNeedsUpdateDesc':
|
||
'Облачная среда и приложение используют разные версии. Запусти обновление для синхронизации.',
|
||
'bootCheck.updating': 'Обновление…',
|
||
'bootCheck.updateCloudCore': 'Обновить облачную среду',
|
||
'bootCheck.versionCheckFailed': 'Проверка версии среды не удалась',
|
||
'bootCheck.versionCheckFailedDesc':
|
||
'Среда работает, но не сообщает свою версию. Возможно, она устарела. Перезапусти или обнови её для продолжения.',
|
||
'bootCheck.working': 'Работаю…',
|
||
'bootCheck.restartUpdateCore': 'Перезапустить / обновить среду',
|
||
'bootCheck.unexpectedError': 'Неожиданная ошибка при загрузке',
|
||
'bootCheck.actionFailed': 'Что-то пошло не так. Попробуй ещё раз.',
|
||
'bootCheck.portConflictTitle': 'Не удалось запустить движок приложения',
|
||
'bootCheck.portConflictBody':
|
||
'Другой процесс использует сетевой порт, необходимый OpenHuman. Попробуем устранить это автоматически.',
|
||
'bootCheck.portConflictFixButton': 'Исправить автоматически',
|
||
'bootCheck.portConflictFixing': 'Исправление…',
|
||
'bootCheck.portConflictFixFailed':
|
||
'Автоматическое исправление не сработало. Перезагрузите компьютер и попробуйте снова.',
|
||
'notifications.justNow': 'только что',
|
||
'notifications.minAgo': '{n} мин назад',
|
||
'notifications.hrAgo': '{n} ч назад',
|
||
'notifications.dayAgo': '{n} д назад',
|
||
'notifications.category.messages': 'Сообщения',
|
||
'notifications.category.agents': 'Агенты',
|
||
'notifications.category.skills': 'Навыки',
|
||
'notifications.category.system': 'Система',
|
||
'notifications.category.meetings': 'Встречи',
|
||
'notifications.category.reminders': 'Напоминания',
|
||
'notifications.category.important': 'Важное',
|
||
'about.update.status.checking': 'Проверка...',
|
||
'about.update.status.available': 'доступна v{version}',
|
||
'about.update.status.availableNoVersion': 'Доступно обновление',
|
||
'about.update.status.downloading': 'Загрузка...',
|
||
'about.update.status.readyToInstall': 'v{version} готова к установке',
|
||
'about.update.status.readyToInstallNoVersion':
|
||
'Новая версия загружена и готова. Перезапусти для применения.',
|
||
'about.update.status.installing': 'Установка...',
|
||
'about.update.status.restarting': 'Перезапуск...',
|
||
'about.update.status.upToDate': 'У тебя установлена последняя версия.',
|
||
'about.update.status.error': 'Ошибка проверки обновлений',
|
||
'about.update.status.default': 'Проверить обновления',
|
||
'welcome.connectionFailed': 'Ошибка подключения: {status} {statusText}',
|
||
'welcome.connectionFailedMsg': 'Ошибка подключения: {message}',
|
||
'welcome.continueLocally': 'Продолжить локально',
|
||
'welcome.continueLocallyExperimental': 'Продолжить локально (Экспериментально)',
|
||
'welcome.localSessionStarting': 'Запуск локального сеанса...',
|
||
'welcome.localSessionDesc':
|
||
'Использует автономный локальный профиль и пропускает TinyHumans OAuth.',
|
||
'chat.agentChatDesc': 'Открыть прямой чат с агентом.',
|
||
'chat.modelPlaceholder': 'gpt-4o',
|
||
'channels.activeRouteValue': '{channel} через {authMode}',
|
||
'privacy.dataKind.messages': 'Сообщения',
|
||
'privacy.dataKind.agents': 'Агенты',
|
||
'privacy.dataKind.skills': 'Навыки',
|
||
'privacy.dataKind.system': 'Система',
|
||
'privacy.dataKind.meetings': 'Встречи',
|
||
'privacy.dataKind.reminders': 'Напоминания',
|
||
'privacy.dataKind.important': 'Важное',
|
||
'onboarding.enableLocalAI': 'Включить локальный AI',
|
||
'onboarding.skills.status.available': 'Доступно',
|
||
'onboarding.skills.status.connected': 'Подключено',
|
||
'onboarding.skills.status.connecting': 'Подключение',
|
||
'onboarding.skills.status.error': 'Ошибка',
|
||
'onboarding.skills.status.unavailable': 'Недоступно',
|
||
'composio.statusUnavailable': 'Статус недоступен',
|
||
'composio.authExpired': 'Срок авторизации истёк',
|
||
'composio.reconnect': 'Переподключить',
|
||
'composio.expiredAuthorization': 'Срок действия авторизации {name} истек',
|
||
'composio.expiredDescription':
|
||
'Повторно подключитесь, чтобы повторно включить инструменты {name}. OpenHuman будет держать эту интеграцию недоступной, пока вы не обновите доступ к OAuth.',
|
||
'composio.envVarOverrides': 'задана, она переопределяет этот параметр.',
|
||
'composio.previewBadge': 'Предварительный просмотр',
|
||
'composio.previewTooltip':
|
||
'Скоро интеграция агента — вы можете подключиться, но агент пока не может использовать этот набор инструментов.',
|
||
'memory.day.sun': 'Вс',
|
||
'memory.day.mon': 'Пн',
|
||
'memory.day.tue': 'Вт',
|
||
'memory.day.wed': 'Ср',
|
||
'memory.day.thu': 'Чт',
|
||
'memory.day.fri': 'Пт',
|
||
'memory.day.sat': 'Сб',
|
||
'memory.ingesting': 'Загрузка',
|
||
'memory.ingestionQueued': 'В очереди',
|
||
'memory.ingestingTitle': 'Загрузка {title}',
|
||
'mic.noAudioCaptured': 'Аудио не захвачено',
|
||
'mic.noSpeechDetected': 'Речь не обнаружена',
|
||
'mic.lowConfidenceResult': 'Не удалось чётко распознать аудио — попробуйте ещё раз',
|
||
'mic.failedToStopRecording': 'Не удалось остановить запись: {message}',
|
||
'mic.transcriptionFailed': 'Ошибка транскрипции: {message}',
|
||
'reflections.kind.retrospective': 'Ретроспектива',
|
||
'reflections.kind.derivedFact': 'Выведенный факт',
|
||
'reflections.kind.moodInsight': 'Инсайт о настроении',
|
||
'reflections.kind.relationshipInsight': 'Инсайт об отношениях',
|
||
'graph.tooltip.summary': 'Краткое содержание',
|
||
'graph.tooltip.contact': 'Контакт',
|
||
'localModel.usage.never': 'Никогда',
|
||
'localModel.usage.mediumLoad': 'Средняя нагрузка',
|
||
'localModel.usage.lowLoad': 'Низкая нагрузка',
|
||
'localModel.usage.idleMode': 'Режим ожидания',
|
||
'localModel.rebootstrapComplete': 'Повторная инициализация модели завершена.',
|
||
'localModel.modelsVerified': 'Локальные модели проверены.',
|
||
'accounts.addModal.allConnected': 'Все подключены',
|
||
'accounts.addModal.title': 'Добавить аккаунт',
|
||
'accounts.respondQueue.empty': 'Пусто',
|
||
'accounts.respondQueue.hide': 'Скрыть очередь ответов',
|
||
'accounts.respondQueue.loadFailed': 'Не удалось загрузить очередь ответов',
|
||
'accounts.respondQueue.loading': 'Загрузка очереди…',
|
||
'accounts.respondQueue.pending': 'Ожидает',
|
||
'accounts.respondQueue.show': 'Показать очередь ответов',
|
||
'accounts.respondQueue.title': 'Очередь ответов',
|
||
'accounts.webviewHost.almostReady': 'Почти готово...',
|
||
'accounts.webviewHost.loadTimeout': 'Таймаут загрузки',
|
||
'accounts.webviewHost.loading': 'Загрузка {providerName}...',
|
||
'accounts.webviewHost.loadingAccount': 'Загрузка аккаунта',
|
||
'accounts.webviewHost.restoringSession': 'Восстановление сессии...',
|
||
'accounts.webviewHost.retryLoading': 'Повторить загрузку',
|
||
'accounts.webviewHost.takingLonger': '{providerName} загружается дольше обычного.',
|
||
'accounts.webviewHost.timeoutHint': 'Подсказка по таймауту',
|
||
'app.connectionBadge.composio': 'Composio',
|
||
'app.connectionBadge.messaging': 'Мессенджеры',
|
||
'app.connectionIndicator.connected': 'Подключено к OpenHuman AI 🚀',
|
||
'app.connectionIndicator.connecting': 'Подключение',
|
||
'app.connectionIndicator.coreOffline': 'Ядро офлайн',
|
||
'app.connectionIndicator.disconnected': 'Отключено',
|
||
'app.connectionIndicator.offline': 'Офлайн',
|
||
'app.connectionIndicator.reconnecting': 'Переподключение…',
|
||
'app.errorFallback.componentStack': 'Стек компонентов',
|
||
'app.errorFallback.downloadLatest': 'Скачать последнюю версию',
|
||
'app.errorFallback.heading': 'Заголовок',
|
||
'app.errorFallback.hint': 'Подсказка',
|
||
'app.errorFallback.reloadApp': 'Перезагрузить приложение',
|
||
'app.errorFallback.subheading': 'Подзаголовок',
|
||
'app.errorFallback.tryRecover': 'Попробовать восстановить',
|
||
'app.localAiDownload.installing': 'Установка...',
|
||
'app.localAiDownload.preparing': 'Подготовка...',
|
||
'app.openhumanLink.accounts.continueWith': 'Продолжить со входом через {label}',
|
||
'app.openhumanLink.accounts.done': 'Готово',
|
||
'app.openhumanLink.accounts.intro': 'Введение',
|
||
'app.openhumanLink.accounts.webviewNote': 'Примечание о Webview',
|
||
'app.openhumanLink.billing.openDashboard': 'Открыть панель',
|
||
'app.openhumanLink.billing.stayOnTrial': 'Остаться на пробном периоде',
|
||
'app.openhumanLink.billing.trialCredit': 'Пробный кредит',
|
||
'app.openhumanLink.billing.trialDesc': 'Описание пробного периода',
|
||
'app.openhumanLink.defaultBody':
|
||
'Ещё не готово во всплывающем окне. Откройте полную страницу настроек, когда понадобится.',
|
||
'app.openhumanLink.discord.intro': 'Введение',
|
||
'app.openhumanLink.discord.openInvite': 'Открыть приглашение',
|
||
'app.openhumanLink.discord.perk1': 'Преимущество 1',
|
||
'app.openhumanLink.discord.perk2': 'Преимущество 2',
|
||
'app.openhumanLink.discord.perk3': 'Преимущество 3',
|
||
'app.openhumanLink.discord.perk4': 'Преимущество 4',
|
||
'app.openhumanLink.done': 'Готово',
|
||
'app.openhumanLink.loadingChannelSetup': 'Загрузка настроек канала',
|
||
'app.openhumanLink.maybeLater': 'Может, потом',
|
||
'app.openhumanLink.notifications.asking': 'Запрос у ОС…',
|
||
'app.openhumanLink.notifications.blocked': 'Заблокировано',
|
||
'app.openhumanLink.notifications.blockedStep1': 'Заблокировано, шаг 1',
|
||
'app.openhumanLink.notifications.blockedStep2': 'Заблокировано, шаг 2',
|
||
'app.openhumanLink.notifications.blockedStep3': 'Заблокировано, шаг 3',
|
||
'app.openhumanLink.notifications.intro': 'Введение',
|
||
'app.openhumanLink.notifications.promptHint': 'Подсказка',
|
||
'app.openhumanLink.notifications.retry': 'Повторить тестовое уведомление',
|
||
'app.openhumanLink.notifications.send': 'Отправить тестовое уведомление',
|
||
'app.openhumanLink.notifications.sendFailed': 'Не удалось отправить: {error}',
|
||
'app.openhumanLink.notifications.sent':
|
||
'Тестовое уведомление отправлено. Если вы его не получили, откройте «Системные настройки» → «Уведомления» → OpenHuman, включите «Разрешить уведомления» и установите стиль баннера «Постоянный».',
|
||
'app.openhumanLink.skipForNow': 'Пропустить',
|
||
'app.openhumanLink.telegramUnavailable': 'Telegram недоступен',
|
||
'app.openhumanLink.title.accounts': 'Подключи свои приложения',
|
||
'app.openhumanLink.title.billing': 'Оплата и кредиты',
|
||
'app.openhumanLink.title.discord': 'Вступи в сообщество',
|
||
'app.openhumanLink.title.messaging': 'Подключи канал связи',
|
||
'app.openhumanLink.title.notifications': 'Разрешить уведомления',
|
||
'app.persistRehydration.body': 'Текст',
|
||
'app.persistRehydration.heading': 'Заголовок',
|
||
'app.persistRehydration.resetCta': 'Сброс…',
|
||
'app.persistRehydration.resetting': 'Сброс…',
|
||
'app.routeLoading.initializing': 'Инициализация OpenHuman...',
|
||
'app.update.currentlyOn': '{version}',
|
||
'app.update.errorFallback': 'Что-то пошло не так при обновлении.',
|
||
'app.update.header.default': 'Обновление',
|
||
'app.update.header.error': 'Ошибка обновления',
|
||
'app.update.header.installing': 'Установка обновления',
|
||
'app.update.header.readyToInstall': 'Обновление готово к установке',
|
||
'app.update.header.restarting': 'Перезапуск…',
|
||
'app.update.later': 'Позже',
|
||
'app.update.newVersionReady': 'Новая версия готова к установке.',
|
||
'app.update.progress.downloaded': 'Загружено: {amount}',
|
||
'app.update.progress.installing': 'Установка новой версии…',
|
||
'app.update.progress.restarting': 'Перезапуск приложения…',
|
||
'app.update.progress.working': '{percent}%',
|
||
'app.update.restartNote': 'Примечание о перезапуске',
|
||
'app.update.restartNow': 'Перезапустить сейчас',
|
||
'app.update.versionReady': 'Версия {newVersion} готова к установке.',
|
||
'channels.discord.accountLinked': 'Аккаунт привязан',
|
||
'channels.discord.connect': 'Подключить',
|
||
'channels.discord.linkTokenExpired': 'Токен привязки истёк. Попробуй ещё раз.',
|
||
'channels.discord.linkTokenInstruction': '{token}',
|
||
'channels.discord.linkTokenLabel': 'Метка токена привязки',
|
||
'channels.discord.linkTokenOnce': 'Токен привязки (однократно)',
|
||
'channels.discord.picker.allPermissionsOk': 'Бот имеет все необходимые права в этом канале.',
|
||
'channels.discord.picker.botNotInServers': 'Бот не на серверах',
|
||
'channels.discord.picker.category': 'Категория',
|
||
'channels.discord.picker.channel': 'Канал',
|
||
'channels.discord.picker.checkingPermissions': 'Проверка прав',
|
||
'channels.discord.picker.loadingChannels': 'Загрузка каналов...',
|
||
'channels.discord.picker.loadingServers': 'Загрузка серверов...',
|
||
'channels.discord.picker.missingPermissions': 'Недостаточно прав',
|
||
'channels.discord.picker.noChannels': 'Текстовые каналы не найдены',
|
||
'channels.discord.picker.noServers': 'Серверы не найдены',
|
||
'channels.discord.picker.selectChannel': 'Выбери канал',
|
||
'channels.discord.picker.selectServer': 'Выбери сервер',
|
||
'channels.discord.picker.server': 'Сервер',
|
||
'channels.discord.picker.serverChannelSelection': 'Выбор сервера и канала',
|
||
'channels.discord.savedRestartRequired': 'Канал сохранён. Перезапусти приложение для активации.',
|
||
'channels.telegram.connect': 'Подключить',
|
||
'channels.telegram.managedDmConnecting': 'Подключение управляемого DM',
|
||
'channels.telegram.managedDmTimeout': 'Таймаут управляемого DM',
|
||
'channels.telegram.reconnect': 'Переподключить',
|
||
'channels.telegram.savedRestartRequired': 'Канал сохранён. Перезапусти приложение для активации.',
|
||
'channels.web.alwaysAvailable': 'Всегда доступно',
|
||
'chat.approval.approve': 'Утвердить',
|
||
'chat.approval.alwaysAllow': 'Всегда разрешать',
|
||
'chat.approval.alwaysAllowHint':
|
||
'Перестаньте запрашивать этот инструмент — добавьте его в свой список «Всегда разрешено».',
|
||
'chat.approval.deciding': 'Работающий…',
|
||
'chat.approval.deny': 'Отрицать',
|
||
'chat.approval.error': 'Не удалось записать свое решение — попробуйте еще раз.',
|
||
'chat.approval.fallback': 'Агент хочет выполнить действие, требующее вашего одобрения.',
|
||
'chat.approval.title': 'Требуется одобрение',
|
||
'chat.approval.tool': 'Инструмент:',
|
||
'channels.authMode.managed_dm': 'Войдите с помощью OpenHuman',
|
||
'channels.authMode.oauth': 'OAuth Вход в систему',
|
||
'channels.authMode.bot_token': 'Используйте свой собственный токен бота',
|
||
'channels.authMode.api_key': 'Используйте свой собственный ключ API',
|
||
'channels.fieldRequired': 'Требуется {field}',
|
||
'channels.mcp.title': 'MCP Серверы',
|
||
'channels.mcp.description':
|
||
'Просматривайте серверы протокола контекста модели и управляйте ими — они расширяют возможности ИИ новыми инструментами.',
|
||
'channels.discord.displayName': 'Discord',
|
||
'channels.discord.description': 'Отправляйте и получайте сообщения через Discord.',
|
||
'channels.discord.authMode.bot_token.description':
|
||
'Предоставьте свой собственный токен бота Discord.',
|
||
'channels.discord.authMode.oauth.description':
|
||
'Установите бот OpenHuman на свой сервер Discord через OAuth.',
|
||
'channels.discord.authMode.managed_dm.description':
|
||
'Свяжите свою личную учетную запись Discord с ботом OpenHuman.',
|
||
'channels.discord.fields.bot_token.label': 'Токен бота',
|
||
'channels.discord.fields.bot_token.placeholder': 'Ваш токен бота Discord',
|
||
'channels.discord.fields.guild_id.label': 'Идентификатор сервера (гильдии)',
|
||
'channels.discord.fields.guild_id.placeholder': 'Необязательно: ограничить конкретным сервером',
|
||
'channels.telegram.displayName': 'Telegram',
|
||
'channels.telegram.description': 'Отправка и получение сообщений через Telegram.',
|
||
'channels.telegram.authMode.managed_dm.description':
|
||
'Отправьте сообщение боту OpenHuman Telegram напрямую.',
|
||
'channels.telegram.authMode.bot_token.description':
|
||
'Предоставьте свой собственный токен бота Telegram от @BotFather.',
|
||
'channels.telegram.fields.bot_token.label': 'Токен бота',
|
||
'channels.telegram.fields.bot_token.placeholder': '123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11',
|
||
'channels.telegram.fields.allowed_users.label': 'Разрешенные пользователи',
|
||
'channels.telegram.fields.allowed_users.placeholder':
|
||
'Имена пользователей Telegram, разделенные запятыми',
|
||
'channels.telegram.remoteControlTitle': 'Удаленное управление (Telegram)',
|
||
'channels.telegram.remoteControlBody':
|
||
'Из разрешенного чата Telegram отправьте /status, /sessions, /new или /help. В маршрутизации моделей по-прежнему используются /model и /models.',
|
||
'channels.web.displayName': 'Интернет',
|
||
'channels.web.description': 'Общайтесь через встроенный веб-интерфейс.',
|
||
'channels.web.authMode.managed_dm.description':
|
||
'Используйте встроенный веб-чат — настройка не требуется.',
|
||
'channels.yuanbao.connect': 'Connect',
|
||
'channels.yuanbao.connecting': 'Подключение…',
|
||
'channels.yuanbao.fieldRequired': '{field} обязателен',
|
||
'channels.yuanbao.reconnect': 'Reconnect',
|
||
'channels.yuanbao.savedRestartRequired':
|
||
'Канал сохранён. Перезапустите приложение для его активации.',
|
||
'channels.yuanbao.unexpectedStatus': 'Неожиданный статус подключения: {status}',
|
||
'chat.unsubscribeApproval.approve': 'Подтвердить и отписаться',
|
||
'chat.unsubscribeApproval.approved': '✓ Подписка успешно отменена.',
|
||
'chat.unsubscribeApproval.denied': '✕ Запрос отклонён.',
|
||
'chat.unsubscribeApproval.deny': 'Отклонить',
|
||
'chat.unsubscribeApproval.processing': 'Обработка...',
|
||
'chat.unsubscribeApproval.title': 'Запрос на отписку',
|
||
'commandPalette.ariaLabel': 'Палитра команд',
|
||
'commandPalette.description': 'Описание',
|
||
'commandPalette.label': 'Команды',
|
||
'commandPalette.noResults': 'Ничего не найдено',
|
||
'commandPalette.placeholder': 'Введи команду или поиск…',
|
||
'commandPalette.searchAria': 'Поиск команд',
|
||
'commandPalette.shortcutHint': 'Нажмите ?, чтобы увидеть все сочетания',
|
||
'commandPalette.title': 'Палитра команд',
|
||
'kbd.ariaLabel': 'Сочетание клавиш: {shortcut}',
|
||
'iosMascot.connectedTo': 'Подключен к',
|
||
'iosMascot.defaultPairedLabel': 'Рабочий стол',
|
||
'iosMascot.disconnect': 'Отключиться',
|
||
'iosMascot.error.generic': 'Что-то пошло не так. Пожалуйста, попробуйте еще раз.',
|
||
'iosMascot.error.sendFailed': 'Не удалось отправить. Проверьте свое соединение.',
|
||
'iosMascot.pushToTalk': 'Нажми и говори',
|
||
'iosMascot.sendMessage': 'Отправить сообщение',
|
||
'iosMascot.thinking': 'Думаю...',
|
||
'iosMascot.typeMessage': 'Введите a сообщение...',
|
||
'iosPair.connectedLoading': 'Подключено! Загрузка... Срок действия',
|
||
'iosPair.connecting': 'Подключение к рабочему столу...',
|
||
'iosPair.desktopLabel': 'Рабочий стол',
|
||
'iosPair.error.camera':
|
||
'Сканирование камерой не удалось. Проверьте разрешения камеры и повторите попытку.',
|
||
'iosPair.error.connectionFailed':
|
||
'Не удалось подключиться. Убедитесь, что десктопное приложение запущено, и повторите попытку.',
|
||
'iosPair.error.invalidQr':
|
||
'Неверный QR-код. Убедитесь, что вы сканируете код сопряжения OpenHuman.',
|
||
'iosPair.error.unreachableDesktop':
|
||
'Не удалось подключиться к рабочему столу. Убедитесь, что оба устройства в сети, и повторите попытку.',
|
||
'iosPair.expired': 'QR code истек. Попросите рабочий стол повторно сгенерировать код.',
|
||
'iosPair.instructions':
|
||
'Откройте OpenHuman на рабочем столе, перейдите в Настройки > Устройства и нажмите «Привязать телефон», чтобы показать QR-код.',
|
||
'iosPair.retryScan': 'Повторить сканирование',
|
||
'iosPair.scanQrCode': 'Сканирование QR code',
|
||
'iosPair.scannerOpening': 'Открытие сканера...',
|
||
'iosPair.step.openDesktop': 'Откройте OpenHuman на рабочем столе',
|
||
'iosPair.step.openSettings': 'Перейдите в «Настройки» > «Устройства»',
|
||
'iosPair.step.showQr': 'Нажмите «Подключить телефон», чтобы отобразить QR',
|
||
'iosPair.title': 'Сопряжение с рабочим столом',
|
||
'composio.connect.additionalConfigRequired': 'Требуется дополнительная настройка',
|
||
'composio.connect.atlassianSubdomainHint': 'acme',
|
||
'composio.connect.atlassianSubdomainLabel': 'Поддомен Atlassian',
|
||
'composio.connect.connect': 'Подключить',
|
||
'composio.connect.dynamicsOrgNameHint':
|
||
'Например, "myorg" для myorg.crm.dynamics.com. Введите только короткое название организации, а не полный URL.',
|
||
'composio.connect.dynamicsOrgNameLabel': 'Название организации Dynamics 365',
|
||
'composio.connect.connectionFailed': 'Не удалось подключиться (статус: {status}).',
|
||
'composio.connect.disconnectFailed': 'Ошибка отключения: {msg}',
|
||
'composio.connect.disconnecting': 'Отключение…',
|
||
'composio.connect.idleDescription': 'Подключите свой',
|
||
'composio.connect.idleDescriptionSuffix':
|
||
'аккаунт. Мы откроем окно браузера, вы предоставите доступ там, и приложение автоматически обнаружит подключение.',
|
||
'composio.connect.isConnected': 'подключён.',
|
||
'composio.connect.manage': 'Управлять',
|
||
'composio.connect.needsFieldsPrefix': 'Чтобы подключить',
|
||
'composio.connect.needsFieldsSuffix':
|
||
'нам нужно немного больше информации. Заполните недостающие поля ниже и повторите попытку.',
|
||
'composio.connect.needsSubdomain': 'Чтобы подключить',
|
||
'composio.connect.needsSubdomainSuffix':
|
||
'введите ваш поддомен Atlassian (например, acme для acme.atlassian.net) и попробуйте снова.',
|
||
'composio.connect.oauthComplete': 'Ожидание завершения OAuth…',
|
||
'composio.connect.oauthTimeout': 'Таймаут OAuth',
|
||
'composio.connect.permissions': 'Разрешения',
|
||
'composio.connect.permissionsDefault': 'Чтение + запись включены по умолчанию',
|
||
'composio.connect.permissionsNote': 'может раскрыть',
|
||
'composio.connect.permissionsNoteSuffix':
|
||
'Собственные права агента OpenHuman настраиваются ниже переключателями чтения, записи и администратора.',
|
||
'composio.connect.reopenBrowser': 'Открыть браузер снова',
|
||
'composio.connect.requestingUrl': 'Запрос URL подключения…',
|
||
'composio.connect.requiredFieldEmpty': 'Это поле обязательно для заполнения.',
|
||
'composio.connect.retryConnection': 'Повторить подключение',
|
||
'composio.connect.scopeLoadError': 'Не удалось загрузить настройки области: {msg}',
|
||
'composio.connect.scopeSaveError': 'Не удалось сохранить область {key}: {msg}',
|
||
'composio.connect.scope.read': 'Чтение',
|
||
'composio.connect.scope.readHint': 'Разрешить агенту читать данные из этого соединения.',
|
||
'composio.connect.scope.write': 'Запись',
|
||
'composio.connect.scope.writeHint':
|
||
'Разрешить агенту создавать или изменять данные через это соединение.',
|
||
'composio.connect.scope.admin': 'Администратор',
|
||
'composio.connect.scope.adminHint':
|
||
'Разрешить агенту управлять настройками, разрешениями или деструктивными действиями.',
|
||
'composio.connect.subdomainInvalid':
|
||
'Введите только короткий поддомен (например, "acme"), а не полный URL. Допустимы только буквы, цифры и дефисы.',
|
||
'composio.connect.subdomainRequired': 'Введи свой поддомен Atlassian для продолжения.',
|
||
'composio.connect.wabaIdHint':
|
||
'Найдите его через GET /me/businesses, затем GET /{business_id}/owned_whatsapp_business_accounts, используя ваш токен доступа Meta.',
|
||
'composio.connect.wabaIdLabel': 'ID аккаунта WhatsApp Business',
|
||
'composio.connect.wabaIdRequired':
|
||
'Введи ID аккаунта WhatsApp Business (WABA ID) для продолжения.',
|
||
'composio.connect.waitingFor': 'Ожидание',
|
||
'composio.connect.waitingHint': 'Подсказка ожидания',
|
||
'composio.triggers.heading': 'Триггеры',
|
||
'composio.triggers.listenFrom': 'Слушать события от',
|
||
'composio.triggers.loadError': 'Не удалось загрузить триггеры',
|
||
'composio.triggers.needsConfiguration': 'Требуется настройка',
|
||
'composio.triggers.noneAvailable': 'Сейчас нет доступных триггеров для',
|
||
'conversations.taskKanban.moveLeft': 'Переместить влево',
|
||
'conversations.taskKanban.moveRight': 'Переместить вправо',
|
||
'conversations.taskKanban.title': 'Задачи',
|
||
'conversations.taskKanban.approval.default': 'По умолчанию',
|
||
'conversations.taskKanban.approval.notRequired': 'Не требуется',
|
||
'conversations.taskKanban.approval.notRequiredBadge': 'нет одобрения',
|
||
'conversations.taskKanban.approval.required': 'Необходимый',
|
||
'conversations.taskKanban.approval.requiredBadge': 'approval',
|
||
'conversations.taskKanban.approval.requiredBeforeExecution': 'Требуется перед выполнением',
|
||
'conversations.taskKanban.briefButton': 'Краткое описание задачи',
|
||
'conversations.taskKanban.briefTitle': 'Краткое описание задачи',
|
||
'conversations.taskKanban.closeBrief': 'Закрыть краткое описание задачи',
|
||
'conversations.taskKanban.field.acceptanceCriteria': 'Критерии приемки',
|
||
'conversations.taskKanban.field.allowedTools': 'Разрешенные инструменты',
|
||
'conversations.taskKanban.field.approval': 'Одобрение',
|
||
'conversations.taskKanban.field.assignedAgent': 'Назначенный агент',
|
||
'conversations.taskKanban.field.blocker': 'Блокатор',
|
||
'conversations.taskKanban.field.evidence': 'Доказательство',
|
||
'conversations.taskKanban.field.notes': 'Примечания',
|
||
'conversations.taskKanban.field.objective': 'Цель',
|
||
'conversations.taskKanban.field.plan': 'План',
|
||
'conversations.taskKanban.field.status': 'Статус',
|
||
'conversations.taskKanban.field.title': 'Заголовок',
|
||
'conversations.taskKanban.saveChanges': 'Сохранить изменения',
|
||
'conversations.taskKanban.deleteCard': 'Удалить',
|
||
'conversations.taskKanban.updateFailed': 'Не удалось обновить задачу; изменения не сохранились.',
|
||
'conversations.toolTimeline.turn': 'ход',
|
||
'conversations.toolTimeline.step': 'Шаг',
|
||
'conversations.toolTimeline.workerThread': 'чат воркера',
|
||
'conversations.subagent.viewProcessing': 'Посмотреть весь процесс',
|
||
'conversations.subagent.parent': 'Родительский',
|
||
'conversations.subagent.thinking': 'Думает',
|
||
'conversations.subagent.response': 'Ответ',
|
||
'conversations.subagent.toolCalls': 'Вызовы инструментов',
|
||
'conversations.subagent.working': 'Выполняется…',
|
||
'conversations.subagent.noOutputYet': 'Пока нет результата',
|
||
'conversations.subagent.close': 'Закрыть',
|
||
'conversations.subagent.statusRunning': 'выполняется',
|
||
'conversations.subagent.statusCompleted': 'завершено',
|
||
'conversations.subagent.statusFailed': 'ошибка',
|
||
'conversations.subagent.statusAwaitingUser': 'ожидание пользователя',
|
||
'daemon.serviceBlockingGate.body': 'Текст',
|
||
'daemon.serviceBlockingGate.downloadHint': 'Подсказка по загрузке',
|
||
'daemon.serviceBlockingGate.downloadLatest': 'Скачать последнюю версию',
|
||
'daemon.serviceBlockingGate.retryCore': 'Повторить запуск Core',
|
||
'daemon.serviceBlockingGate.retryFailed':
|
||
'Повтор не удался. Скачай последнюю версию и попробуй снова.',
|
||
'daemon.serviceBlockingGate.retrying': 'Повтор...',
|
||
'daemon.serviceBlockingGate.title': 'Ядро OpenHuman недоступно',
|
||
'home.banners.discordSubtitle': 'Подзаголовок Discord',
|
||
'home.banners.discordTitle': 'Вступи в наш Discord',
|
||
'home.banners.earlyBirdDismiss': 'Закрыть баннер',
|
||
'home.banners.earlyBirdFirstSub': 'первую подписку.',
|
||
'home.banners.earlyBirdOn': 'Скидка раннего доступа на',
|
||
'home.banners.earlyBirdTitle': 'Первые 1 000 пользователей получают скидку 60%.',
|
||
'home.banners.earlyBirdUseCode': 'Используйте промокод для раннего доступа',
|
||
'home.banners.getSubscription': 'оформить подписку',
|
||
'home.banners.promoCreditsBody': 'Описание промо-кредитов',
|
||
'home.banners.promoCreditsTitle': '{amount}',
|
||
'home.banners.promoCreditsUsage': 'Использование промо-кредитов',
|
||
'intelligence.memoryChunk.detail.chunk': 'Блок',
|
||
'intelligence.memoryChunk.detail.copyChunkId': 'Скопировать ID блока',
|
||
'intelligence.memoryChunk.detail.embeddingInfo': 'bge-m3 1024dim',
|
||
'intelligence.memoryChunk.detail.noEmbedding': 'Векторного вложения нет',
|
||
'intelligence.memoryChunk.letterhead.from': 'от',
|
||
'intelligence.memoryChunk.letterhead.to': 'кому',
|
||
'intelligence.memoryChunk.mentioned.chunkOne': '1 фрагмент',
|
||
'intelligence.memoryChunk.mentioned.chunkOther': '{count} фрагментов',
|
||
'intelligence.memoryChunk.mentioned.heading': 'у п о м я н у т о',
|
||
'intelligence.memoryChunk.scoreBars.ariaScore': '{name} оценка {pct} процентов',
|
||
'intelligence.memoryChunk.scoreBars.atThreshold': 'при {threshold}',
|
||
'intelligence.memoryChunk.scoreBars.dropped': 'отброшено',
|
||
'intelligence.memoryChunk.scoreBars.heading': 'п о ч е м у с о х р а н е н о',
|
||
'intelligence.memoryChunk.scoreBars.kept': 'сохранено',
|
||
'intelligence.diagram.title': 'Архитектурная диаграмма',
|
||
'intelligence.diagram.description':
|
||
'Последний локальный результат архитектуры с настроенного конечного точки диаграммы.',
|
||
'intelligence.diagram.refresh': 'Refresh',
|
||
'intelligence.diagram.refreshAria': 'Обновить диаграмму',
|
||
'intelligence.diagram.emptyTitle': 'Диаграмма пока недоступна',
|
||
'intelligence.diagram.emptyDescription':
|
||
'Создайте архитектурную диаграмму из оркестратора, и эта панель обновится с настроенной локальной конечной точки.',
|
||
'intelligence.diagram.skillInstallCommand': 'npx skills add yizhiyanhua-ai/fireworks-tech-graph',
|
||
'intelligence.diagram.promptExample':
|
||
'Создай архитектурную диаграмму текущего роя в тёмном терминальном стиле',
|
||
'intelligence.diagram.imageAlt': 'Последняя сгенерированная архитектурная диаграмма OpenHuman',
|
||
'intelligence.diagram.refreshesEvery': 'Обновляется каждые {seconds} с',
|
||
'intelligence.memoryText.entityTypePrefix': 'Тип сущности',
|
||
'intelligence.screenDebug.active': 'Активно',
|
||
'intelligence.screenDebug.app': 'Приложение',
|
||
'intelligence.screenDebug.bounds': 'Границы',
|
||
'intelligence.screenDebug.captureAlt': 'Результат тестового захвата',
|
||
'intelligence.screenDebug.captureFailed': 'Ошибка',
|
||
'intelligence.screenDebug.captureSuccess': 'Успех',
|
||
'intelligence.screenDebug.captureTest': 'Тест захвата',
|
||
'intelligence.screenDebug.capturing': 'Захват',
|
||
'intelligence.screenDebug.frames': 'Кадры',
|
||
'intelligence.screenDebug.idle': 'Ожидание',
|
||
'intelligence.screenDebug.lastApp': 'Последнее приложение',
|
||
'intelligence.screenDebug.mode': 'Режим',
|
||
'intelligence.screenDebug.permAccessibility': 'Доступность',
|
||
'intelligence.screenDebug.permInput': 'Ввод',
|
||
'intelligence.screenDebug.permScreen': 'Доступность',
|
||
'intelligence.screenDebug.permissions': 'Разрешения',
|
||
'intelligence.screenDebug.platformNotSupported': 'Платформа не поддерживается',
|
||
'intelligence.screenDebug.recentVisionSummaries': 'Недавние визуальные резюме',
|
||
'intelligence.screenDebug.session': 'Сессия',
|
||
'intelligence.screenDebug.size': 'Размер',
|
||
'intelligence.screenDebug.status': 'Статус',
|
||
'intelligence.screenDebug.testCapture': 'Тестовый захват',
|
||
'intelligence.screenDebug.time': 'Время',
|
||
'intelligence.screenDebug.title': 'Заголовок',
|
||
'intelligence.screenDebug.unknown': 'Неизвестно',
|
||
'intelligence.screenDebug.visionQueue': 'Очередь обработки изображений',
|
||
'intelligence.screenDebug.visionState': 'Состояние обработки изображений',
|
||
'intelligence.tasks.activeBoardOne': '1 активная доска в разговорах',
|
||
'intelligence.tasks.activeBoardOther': '{count} активных досок в разговорах',
|
||
'intelligence.tasks.empty': 'Досок задач агента пока нет',
|
||
'intelligence.tasks.emptyHint': 'Пусто',
|
||
'intelligence.tasks.failedToLoad': 'Не удалось загрузить',
|
||
'intelligence.tasks.live': 'в реальном времени',
|
||
'intelligence.tasks.loadingBoards': 'Загрузка досок задач…',
|
||
'intelligence.tasks.threadPrefix': 'Тред {thread}',
|
||
'intelligence.tasks.subtitle': 'Ваши задачи и доски задач агентов в рабочей области.',
|
||
'intelligence.tasks.newTask': 'Новая задача',
|
||
'intelligence.tasks.personalBoardTitle': 'Задачи агента',
|
||
'intelligence.tasks.personalEmpty': 'Личных задач пока нет',
|
||
'intelligence.tasks.composer.title': 'Новая задача',
|
||
'intelligence.tasks.composer.titleLabel': 'Заголовок',
|
||
'intelligence.tasks.composer.titlePlaceholder': 'Что нужно сделать?',
|
||
'intelligence.tasks.composer.statusLabel': 'Статус',
|
||
'intelligence.tasks.composer.attachLabel': 'Прикрепить к беседе',
|
||
'intelligence.tasks.composer.attachNone': 'Личное (без разговора)',
|
||
'intelligence.tasks.composer.objectiveLabel': 'Цель',
|
||
'intelligence.tasks.composer.objectivePlaceholder': 'Необязательно — желаемый результат',
|
||
'intelligence.tasks.composer.notesLabel': 'Примечания',
|
||
'intelligence.tasks.composer.notesPlaceholder': 'Дополнительные примечания',
|
||
'intelligence.tasks.composer.create': 'Создать задачу',
|
||
'intelligence.tasks.composer.creating': 'Создание…',
|
||
'intelligence.tasks.composer.createFailed': 'Не удалось создать задачу',
|
||
'notifications.card.dismiss': 'Закрыть уведомление',
|
||
'notifications.card.importanceTitle': 'Важность: {pct}%',
|
||
'notifications.center.empty': 'Уведомлений пока нет',
|
||
'notifications.center.emptyHint': 'Пусто',
|
||
'notifications.center.filterAll': 'Все',
|
||
'notifications.center.markAllRead': 'Отметить всё прочитанным',
|
||
'notifications.center.title': 'Уведомления',
|
||
'oauth.button.connecting': 'Подключение...',
|
||
'oauth.button.loopbackTimeout':
|
||
'Время входа истекло — браузер не завершил перенаправление OAuth. Пожалуйста, попробуйте снова.',
|
||
'oauth.login.continueWith': 'Продолжить через',
|
||
'onboarding.contextGathering.buildingDesc': 'Сборка профиля',
|
||
'onboarding.contextGathering.buildingProfile': 'Составление профиля...',
|
||
'onboarding.contextGathering.continueToChat': 'Перейти в чат',
|
||
'onboarding.contextGathering.coreAlive': 'Ядро доступно — первый запуск может занять минуту.',
|
||
'onboarding.contextGathering.coreAliveProbing': 'Проверка соединения с ядром…',
|
||
'onboarding.contextGathering.coreUnreachable':
|
||
'Ядро не отвечает. Можно продолжить и попробовать позже.',
|
||
'onboarding.contextGathering.errorDesc':
|
||
'Мы не смогли построить ваш полный профиль прямо сейчас, но это нормально — вы можете продолжить, и профиль будет дополняться со временем.',
|
||
'onboarding.contextGathering.stillWorkingDesc':
|
||
'Первый запуск может занять 30–60 секунд, пока мы прогреваем локальную модель и инструменты. Вы можете перейти в чат в любой момент — построение профиля продолжится в фоне.',
|
||
'onboarding.contextGathering.stillWorkingTitle': 'Профиль ещё составляется…',
|
||
'onboarding.contextGathering.title': 'Сбор контекста',
|
||
'openhuman.team_list_teams': 'Список команд',
|
||
'overlay.ariaAttention': 'Сообщение',
|
||
'overlay.ariaCompanion': 'Спутник активен',
|
||
'overlay.ariaOrb': 'Оверлей OpenHuman',
|
||
'overlay.ariaVoiceActive': 'Голосовой ввод активен',
|
||
'overlay.companion.error': 'Ошибка',
|
||
'overlay.companion.listening': 'Слушает…',
|
||
'overlay.companion.pointing': 'Указывает…',
|
||
'overlay.companion.speaking': 'Говорит…',
|
||
'overlay.companion.thinking': 'Думает…',
|
||
'overlay.orbTitle': 'Перетащи для перемещения · Двойной клик для сброса позиции',
|
||
'pages.settings.account.connections': 'Подключения',
|
||
'pages.settings.account.connectionsDesc': 'Описание подключений',
|
||
'pages.settings.account.migration': 'Импорт из другого ассистента',
|
||
'pages.settings.account.migrationDesc':
|
||
'Перенесите память и заметки из OpenClaw (а вскоре и Hermes) в это рабочее пространство.',
|
||
'pages.settings.account.privacy': 'Конфиденциальность',
|
||
'pages.settings.account.privacyDesc': 'Описание конфиденциальности',
|
||
'pages.settings.account.recoveryPhrase': 'Фраза восстановления',
|
||
'pages.settings.account.recoveryPhraseDesc': 'Описание фразы восстановления',
|
||
'pages.settings.account.team': 'Команда',
|
||
'pages.settings.account.teamDesc': 'Описание команды',
|
||
'pages.settings.accountSection.description':
|
||
'Фраза восстановления, команда, подключения и настройки конфиденциальности.',
|
||
'pages.settings.accountSection.title': 'Аккаунт',
|
||
'pages.settings.ai.llm': 'LLM',
|
||
'pages.settings.ai.llmDesc': 'Описание LLM',
|
||
'pages.settings.ai.voice': 'Голос',
|
||
'pages.settings.ai.voiceDesc': 'Описание голоса',
|
||
'pages.settings.aiSection.description': 'Языковые модели, локальный Ollama и голос (STT / TTS).',
|
||
'pages.settings.aiSection.title': 'ИИ',
|
||
'pages.settings.composioSection.title': 'Composio',
|
||
'pages.settings.composioSection.description':
|
||
'Маршрутизация, триггеры и история интеграций на базе Composio.',
|
||
'settings.developerMenu.composio.title': 'Composio',
|
||
'settings.developerMenu.composio.desc':
|
||
'Режим маршрутизации, триггеры интеграции и архив истории триггеров.',
|
||
'pages.settings.features.desktopCompanion': 'Десктоп-спутник',
|
||
'pages.settings.features.desktopCompanionDesc':
|
||
'Голосовой ассистент с распознаванием экрана — слушает, видит, говорит, указывает',
|
||
'pages.settings.features.messagingChannels': 'Каналы мессенджеров',
|
||
'pages.settings.features.messagingChannelsDesc': 'Описание каналов сообщений',
|
||
'pages.settings.features.notifications': 'Уведомления',
|
||
'pages.settings.features.notificationsDesc': 'Описание уведомлений',
|
||
'pages.settings.features.screenAwareness': 'Слежение за экраном',
|
||
'pages.settings.features.screenAwarenessDesc': 'Описание распознавания экрана',
|
||
'pages.settings.features.tools': 'Инструменты',
|
||
'pages.settings.features.toolsDesc': 'Описание инструментов',
|
||
'pages.settings.featuresSection.description': 'Слежение за экраном, мессенджеры и инструменты.',
|
||
'pages.settings.featuresSection.title': 'Функции',
|
||
'privacy.dataKind.credentials': 'Учётные данные',
|
||
'privacy.dataKind.derived': 'Производные данные',
|
||
'privacy.dataKind.diagnostics': 'Диагностика',
|
||
'privacy.dataKind.metadata': 'Метаданные',
|
||
'privacy.dataKind.raw': 'Необработанные данные',
|
||
'privacy.whatLeaves.link.label': 'Что покидает мой компьютер?',
|
||
'rewards.community.achievementsUnlocked': 'Открыто достижений: {unlocked} из {total}',
|
||
'rewards.community.connectDiscord': 'Подключить Discord',
|
||
'rewards.community.cumulativeTokens': 'Токенов всего',
|
||
'rewards.community.currentStreak': 'Текущая серия',
|
||
'rewards.community.discordLinkedNotInGuild': 'Discord привязан, но не в сервере',
|
||
'rewards.community.discordMember': 'Присоединился к серверу',
|
||
'rewards.community.discordNotLinked': 'Discord не привязан',
|
||
'rewards.community.discordServer': 'Сервер Discord',
|
||
'rewards.community.discordStatusUnavailable': 'Статус Discord недоступен',
|
||
'rewards.community.discordWaiting': 'Ожидание Discord',
|
||
'rewards.community.heroSubtitle': 'Подзаголовок',
|
||
'rewards.community.heroTitle': 'Заголовок',
|
||
'rewards.community.joinDiscord': 'Присоединиться к Discord',
|
||
'rewards.community.loadingRewards': 'Загрузка наград…',
|
||
'rewards.community.locked': 'Разблокировано',
|
||
'rewards.community.retrying': 'Повтор…',
|
||
'rewards.community.rolesAndRewards': 'Роли и награды',
|
||
'rewards.community.streakDays': '{n}',
|
||
'rewards.community.syncPending': 'Синхронизация наград ожидает',
|
||
'rewards.community.syncPendingDesc': 'Ожидание синхронизации',
|
||
'rewards.community.syncUnavailable': 'Синхронизация недоступна',
|
||
'rewards.community.tryAgain': 'Повтор…',
|
||
'rewards.community.unknown': 'Неизвестно',
|
||
'rewards.community.unlocked': 'Разблокировано',
|
||
'rewards.community.yourProgress': 'Твой прогресс',
|
||
'rewards.coupon.colCode': 'Код',
|
||
'rewards.coupon.colRedeemed': 'Активирован',
|
||
'rewards.coupon.colReward': 'Награда',
|
||
'rewards.coupon.colStatus': 'Статус',
|
||
'rewards.coupon.loadingHistory': 'Загрузка истории наград…',
|
||
'rewards.coupon.noCodes': 'Промокоды ещё не использованы.',
|
||
'rewards.coupon.pending': 'Ожидает',
|
||
'rewards.coupon.placeholder': 'Промокод',
|
||
'rewards.coupon.promoCredits': 'Промокредиты',
|
||
'rewards.coupon.recentRedemptions': 'Недавние активации',
|
||
'rewards.coupon.redeemAccepted':
|
||
'{code} принят. {amount} разблокируется после выполнения требуемого действия.',
|
||
'rewards.coupon.redeemButton': 'Использовать код',
|
||
'rewards.coupon.redeemSuccess': '{code} применён. {amount} добавлено к вашим кредитам.',
|
||
'rewards.coupon.redeemedCodes': 'Активированные коды',
|
||
'rewards.coupon.redeeming': 'Активация...',
|
||
'rewards.coupon.statusApplied': 'Применён',
|
||
'rewards.coupon.statusPendingAction': 'Ожидает действия',
|
||
'rewards.coupon.statusRedeemed': 'Использован',
|
||
'rewards.coupon.subtitle': 'Подзаголовок',
|
||
'rewards.coupon.title': 'Активировать промокод',
|
||
'rewards.referralSection.activity': 'Реферальная активность',
|
||
'rewards.referralSection.apply': 'Применение…',
|
||
'rewards.referralSection.applying': 'Применение…',
|
||
'rewards.referralSection.colReferredUser': 'Приглашённый пользователь',
|
||
'rewards.referralSection.colReward': 'Награда',
|
||
'rewards.referralSection.colStatus': 'Статус',
|
||
'rewards.referralSection.colUpdated': 'Обновлено',
|
||
'rewards.referralSection.completed': 'Завершено',
|
||
'rewards.referralSection.copyCode': 'Скопировать код',
|
||
'rewards.referralSection.copyFailed': 'Не удалось скопировать',
|
||
'rewards.referralSection.haveCode': 'Есть реферальный код?',
|
||
'rewards.referralSection.haveCodeDesc': 'Есть код',
|
||
'rewards.referralSection.linked': 'Привязан',
|
||
'rewards.referralSection.linkedCode': '(код {code})',
|
||
'rewards.referralSection.loading': 'Загрузка реферальной программы…',
|
||
'rewards.referralSection.retry': 'Повторить',
|
||
'rewards.referralSection.noReferrals': 'Рефералов нет',
|
||
'rewards.referralSection.pendingReferrals': 'Ожидающие рефералы',
|
||
'rewards.referralSection.placeholder': 'Реферальный код',
|
||
'rewards.referralSection.share': 'Поделиться',
|
||
'rewards.referralSection.statusCompleted': 'Завершено',
|
||
'rewards.referralSection.statusExpired': 'Истёк срок',
|
||
'rewards.referralSection.statusJoined': 'Вступил',
|
||
'rewards.referralSection.subtitle': 'Подзаголовок',
|
||
'rewards.referralSection.title': 'Приглашай друзей, зарабатывай кредиты',
|
||
'rewards.referralSection.totalEarned': 'Заработано всего',
|
||
'rewards.referralSection.yourCode': 'Твой код',
|
||
'settings.ai.addCloudProvider': 'Добавить облачного провайдера',
|
||
'settings.ai.addProvider': 'Сохранение…',
|
||
'settings.ai.apiKeyFieldLabel': 'Поле API-ключа',
|
||
'settings.ai.apiKeyRequired': 'Вставь свой API-ключ для продолжения.',
|
||
'settings.ai.apiKeyStoredEncrypted': 'API-ключ хранится в зашифрованном виде',
|
||
'settings.ai.apiKeysEncrypted': 'auth-profiles.json',
|
||
'settings.ai.clearStoredKey': 'Очистить сохранённый ключ',
|
||
'settings.ai.connectProvider': 'Подключить провайдера',
|
||
'settings.ai.customRouting': 'Пользовательская маршрутизация',
|
||
'settings.ai.defaultResolvesTo': 'По умолчанию используется',
|
||
'settings.ai.discard': 'Отменить',
|
||
'settings.ai.editProvider': 'Изменить провайдера',
|
||
'settings.ai.llmProviders': 'LLM-провайдеры',
|
||
'settings.ai.llmProvidersDesc': 'Описание провайдеров LLM',
|
||
'settings.ai.localOllama': 'Локально (Ollama)',
|
||
'settings.ai.modelLabel': 'Модель',
|
||
'settings.ai.noCustomProviders': 'Нет пользовательских провайдеров',
|
||
'settings.ai.openAiCompat.authHeaderExample': 'Авторизация: Носитель <ваш ключ>',
|
||
'settings.ai.openAiCompat.authHeaderLabel': 'Заголовок аутентификации',
|
||
'settings.ai.openAiCompat.baseUrlLabel': 'База URL',
|
||
'settings.ai.openAiCompat.baseUrlUnavailable': 'Недоступно',
|
||
'settings.ai.openAiCompat.clearKey': 'Очистить ключ',
|
||
'settings.ai.openAiCompat.description':
|
||
'Направьте локальные жгуты на этот сервер /v1 для маршрутизации через поставщиков, настроенных ниже. Для аутентификации используется стабильный ключ, который вы здесь установили, а не внутренний основной носитель приложения.',
|
||
'settings.ai.openAiCompat.keyConfigured': 'Ключ настроен',
|
||
'settings.ai.openAiCompat.keyRequired': 'Требуется ключ',
|
||
'settings.ai.openAiCompat.rotateKey': 'Повернуть ключ',
|
||
'settings.ai.openAiCompat.setKey': 'Установить ключ',
|
||
'settings.ai.openAiCompat.title': 'OpenAI-совместимая конечная точка',
|
||
'settings.ai.providerLabel': 'Провайдер',
|
||
'skills.mcpComingSoon.title': 'MCP Серверы',
|
||
'skills.mcpComingSoon.description':
|
||
'Управление MCP-серверами скоро появится. Этот раздел станет центром для обнаружения, подключения и мониторинга интеграций с MCP-серверами.',
|
||
'settings.ai.routing': 'Маршрутизация',
|
||
'settings.ai.routingCustom': 'Пользовательская маршрутизация',
|
||
'settings.ai.routingDefault': 'По умолчанию',
|
||
'settings.ai.routingDesc': 'Описание маршрутизации',
|
||
'settings.ai.saveChanges': 'Сохранение…',
|
||
'settings.ai.saving': 'Сохранение…',
|
||
'settings.ai.unsavedChange': 'несохранённое изменение',
|
||
'settings.ai.unsavedChanges': 'несохранённые изменения',
|
||
'settings.ai.workloadGroupBackground': 'Фоновые задачи',
|
||
'settings.ai.workloadGroupChat': 'Чат',
|
||
'settings.ai.disconnectProvider': 'Отключить {label}',
|
||
'settings.ai.connectProviderLabel': 'Подключить {label}',
|
||
'settings.ai.defaultLocalEndpoint': 'http://localhost:11434/v1',
|
||
'settings.ai.endpointUrlLabel': 'Конечная точка URL',
|
||
'settings.ai.localRuntimeHelper':
|
||
'Где доступен {label}. По умолчанию используется локальный хост; укажите это на удаленном хосте (например, http://10.0.0.4:11434/v1), чтобы использовать общий экземпляр.',
|
||
'settings.ai.endpointUrlRequired': 'Требуется конечная точка URL.',
|
||
'settings.ai.endpointProtocolRequired':
|
||
'Конечная точка должна начинаться с http:// или https://..',
|
||
'settings.ai.connectProviderDialog': 'Подключиться {label}',
|
||
'settings.ai.or': 'Или',
|
||
'settings.ai.codexOauthMissingAuthUrl':
|
||
'Codex OAuth не вернул URL авторизации. Попробуйте войти снова.',
|
||
'settings.ai.codexOauthMissingCallbackUrl':
|
||
'Вставьте URL перенаправления из браузера после входа.',
|
||
'settings.ai.openRouterOauthDescription':
|
||
'Войдите в систему с помощью OpenRouter и импортируйте управляемый пользователем ключ API с помощью PKCE.',
|
||
'settings.ai.connecting': 'Подключение...',
|
||
'settings.ai.backgroundLoops': 'Фоновые циклы',
|
||
'settings.ai.backgroundLoopsDesc':
|
||
'Посмотрите, что выполняется без сообщения чата, приостановите работу Heartbeat и проверьте последние строки кредитной книги.',
|
||
'settings.ai.heartbeatControls': 'Управление пульсом.',
|
||
'settings.ai.heartbeatControlsDesc':
|
||
'По умолчанию выключено. Включение запускает цикл; отключение прерывает выполняемую задачу.',
|
||
'settings.ai.heartbeatLoop': 'Цикл Heartbeat',
|
||
'settings.ai.heartbeatLoopDesc':
|
||
'Главный планировщик для планировщика + дополнительный подсознательный вывод.',
|
||
'settings.ai.subconsciousInference': 'Подсознательный вывод.',
|
||
'settings.ai.subconsciousInferenceDesc':
|
||
'Выполняет оценку task/reflection на основе модели по тактам пульса.',
|
||
'settings.ai.calendarMeetingChecks': 'Проверка собраний в календаре.',
|
||
'settings.ai.calendarMeetingChecksDesc':
|
||
'Вызывает список событий календаря для активных соединений календаря Google.',
|
||
'settings.ai.calendarCap': 'Окончание календаря',
|
||
'settings.ai.connectionsPerTick': '{count} подкл./тик',
|
||
'settings.ai.meetingLookahead': 'Предварительный просмотр собрания',
|
||
'settings.ai.minutesShort': '{count} мин',
|
||
'settings.ai.reminderLookahead': 'Предварительный просмотр напоминания',
|
||
'settings.ai.cronReminderChecks': 'Проверка напоминаний Cron.',
|
||
'settings.ai.cronReminderChecksDesc':
|
||
'Сканирование включает задания cron для предстоящих элементов, похожих на напоминания.',
|
||
'settings.ai.relevantNotificationChecks': 'Соответствующие проверки уведомлений.',
|
||
'settings.ai.relevantNotificationChecksDesc':
|
||
'Превращает срочные локальные уведомления в упреждающие оповещения.',
|
||
'settings.ai.externalDelivery': 'Внешняя доставка.',
|
||
'settings.ai.externalDeliveryDesc':
|
||
'Позволяет оповещениям о пульсе отправлять упреждающие сообщения во внешние каналы.',
|
||
'settings.ai.interval': 'Интервал',
|
||
'settings.ai.running': 'Выполняется...',
|
||
'settings.ai.plannerTickNow': 'Планировщик отметьте сейчас',
|
||
'settings.ai.loadingHeartbeatControls': 'Загрузка элементов управления пульсом...',
|
||
'settings.ai.heartbeatControlsUnavailable': 'Элементы управления пульсом недоступны.',
|
||
'settings.ai.loopMap': 'Карта цикла',
|
||
'settings.ai.plannerSummary':
|
||
'Планировщик: исходные события {sourceEvents}, отправлено {sent}, дедуплицировано {deduped}.',
|
||
'settings.ai.routeLabel': 'маршрут: {route}',
|
||
'settings.ai.on': 'на',
|
||
'settings.ai.off': 'выкл.',
|
||
'settings.ai.recentUsageLedger': 'Журнал недавнего использования',
|
||
'settings.ai.recentUsageLedgerDesc':
|
||
'Внутренние строки сегодня предоставляют доступ к action/time; исходные теги нуждаются в внутренней поддержке.',
|
||
'settings.ai.latestSpend': 'Последние расходы: {amount} в {time} ({action})',
|
||
'settings.ai.topActions': 'Популярные действия',
|
||
'settings.ai.noSpendRows': 'Строки расходов не загружены.',
|
||
'settings.ai.topHours': 'Максимальное количество часов',
|
||
'settings.ai.noHourlySpend': 'Почасовых затрат пока нет.',
|
||
'settings.ai.openhumanDefault': 'OpenHuman (по умолчанию)',
|
||
'settings.ai.localModelResolved': 'Ollama · {model}',
|
||
'settings.ai.customRoutingForWorkload': 'Пользовательская маршрутизация для {label}',
|
||
'settings.ai.loadingModels': 'Загрузка моделей...',
|
||
'settings.ai.enterModelIdManually': 'или введите идентификатор модели вручную:',
|
||
'settings.ai.modelIdPlaceholderForProvider': '{slug} идентификатор модели',
|
||
'settings.ai.modelIdPlaceholder': 'model-id',
|
||
'settings.ai.selectModel': 'Выберите модель...',
|
||
'settings.ai.temperatureOverride': 'Переопределение температуры',
|
||
'settings.ai.temperatureOverrideSlider': 'Переопределение температуры (ползунок)',
|
||
'settings.ai.temperatureOverrideValue': 'Переопределение температуры (значение)',
|
||
'settings.ai.temperatureOverrideDesc':
|
||
'Ниже = более детерминированно. Оставьте флажок неактивным, чтобы использовать поставщика по умолчанию.',
|
||
'settings.ai.testFailed': 'Тест не пройден.',
|
||
'settings.ai.testingModel': 'Модель тестирования...',
|
||
'settings.ai.modelResponse': 'Ответ модели',
|
||
'settings.ai.providerWithValue': 'Поставщик: {value}',
|
||
'settings.ai.noneDash': '—',
|
||
'settings.ai.promptHelloWorld': 'Подсказка: Привет, мир.',
|
||
'settings.ai.startedAt': 'Начало: {value}',
|
||
'settings.ai.waitingForModelResponse': 'Ожидание ответа от выбранной модели...',
|
||
'settings.ai.response': 'Ответ',
|
||
'settings.ai.testing': 'Тестирование...',
|
||
'settings.ai.test': 'Тест',
|
||
'settings.ai.slugMissingError': 'Введите имя провайдера для создания пула.',
|
||
'settings.ai.slugInUseError': 'Это имя провайдера уже используется.',
|
||
'settings.ai.slugReservedError': 'Выберите другое имя провайдера.',
|
||
'settings.ai.providerNamePlaceholder': 'Мой провайдер',
|
||
'settings.ai.slugLabel': 'Слаг:',
|
||
'settings.ai.openAiUrlLabel': 'URL OpenAI',
|
||
'settings.ai.openAiUrlPlaceholder': 'https://api.openai.com/v1',
|
||
'settings.ai.keepExistingKeyPlaceholder': 'Оставьте пустым, чтобы сохранить существующий ключ.',
|
||
'settings.ai.reindexingMemory': 'Переиндексация памяти',
|
||
'settings.ai.reindexingMemoryMessage':
|
||
'Вложения перерабатываются. Элементы памяти {pending} повторно встраиваются в текущую модель — семантический вызов снижается до тех пор, пока это не завершится. Поиск по ключевым словам продолжает работать, и повторное встраивание продолжается в фоновом режиме, если вы закроете это.',
|
||
'settings.ai.signInWithOpenRouter': 'Войдите с помощью OpenRouter',
|
||
'settings.ai.weekBudget': 'Недельный бюджет',
|
||
'settings.ai.cycleRemaining': 'Оставшийся цикл',
|
||
'settings.ai.cycleTotalSpend': 'Общие расходы за цикл',
|
||
'settings.ai.avgSpendRow': 'Строка средних расходов',
|
||
'settings.ai.backgroundApiReads': 'Bg API читает',
|
||
'settings.ai.backgroundWakeups': 'Bg пробуждения',
|
||
'settings.ai.budgetMath': 'Математические расчеты бюджета',
|
||
'settings.ai.rowsLeft': 'Осталось строк',
|
||
'settings.ai.rowsPerFullWeekBudget': 'Строков на полную неделю бюджета',
|
||
'settings.ai.sampleBurnRate': 'Скорость записи выборки',
|
||
'settings.ai.projectedEmpty': 'Прогнозируемая пустая',
|
||
'settings.ai.apiReadsPerDollarRemaining': 'API операций чтения на каждый оставшийся доллар',
|
||
'settings.ai.loopCallBudget': 'Бюджет циклических вызовов',
|
||
'settings.ai.heartbeatTicks': 'Тактов контрольного сигнала',
|
||
'settings.ai.calendarPlannerCalls': 'Звонки планировщика календаря',
|
||
'settings.ai.calendarFanoutCap': 'Крышка разветвления календаря',
|
||
'settings.ai.subconsciousModelCalls': 'Звонки модели подсознания',
|
||
'settings.ai.composioSyncScans': 'Composio синхронизируют сканирование',
|
||
'settings.ai.totalBackgroundApiReadBudget': 'Общий бюджет чтения API',
|
||
'settings.ai.memoryWorkerPolls': 'Опросы работников памяти',
|
||
'settings.ai.defaultProviderName': 'OpenHuman',
|
||
'settings.ai.routing.managed': 'Управляемый',
|
||
'settings.ai.routing.managedDesc':
|
||
'OpenHuman выполнит все логические выводы в облаке, выберет лучшую модель для задачи, оптимизирует затраты и сохранит самые безопасные настройки маршрутизации по умолчанию.',
|
||
'settings.ai.routing.managedMsg':
|
||
'OpenHuman будет обрабатывать все выводы для каждой рабочей нагрузки и автоматически выбирать лучший маршрут с точки зрения стоимости, качества и безопасности.',
|
||
'settings.ai.routing.useYourOwn': 'Используйте свои собственные модели',
|
||
'settings.ai.routing.useYourOwnDesc':
|
||
'Выберите одного поставщика + модель и направляйте через него всю рабочую нагрузку. Это просто, но может быть неэффективно, поскольку легкий и тяжелый вывод используют один и тот же маршрут.',
|
||
'settings.ai.routing.advanced': 'Расширенный',
|
||
'settings.ai.routing.advancedDesc':
|
||
'Выбирайте разные модели для разных задач. Это лучший вариант для жесткой оптимизации затрат и максимального контроля.',
|
||
'settings.ai.routing.customDesc':
|
||
'Детальная маршрутизация обеспечивает наилучшую оптимизацию затрат и максимальный контроль. Используйте строки ниже, чтобы решить, какие рабочие нагрузки остаются управляемыми, какие используют общие настройки по умолчанию и какие привязываются к конкретной модели.',
|
||
'settings.ai.routing.chatAndConversations': 'Чат и беседы',
|
||
'settings.ai.routing.chatDesc':
|
||
'Модели, используемые во время прямого взаимодействия с пользователем, ответов, рассуждений, циклов агента и помощи в кодировании.',
|
||
'settings.ai.routing.backgroundTasks': 'Фоновые задачи',
|
||
'settings.ai.routing.bgTasksDesc':
|
||
'Модели, используемые вне основного потока разговора для подведения итогов, сердцебиения, обучения и подсознательной оценки.',
|
||
'settings.ai.routing.addCustomProvider': 'Добавить специального поставщика.',
|
||
'settings.ai.globalModel.title': 'Выберите одну модель для всего.',
|
||
'settings.ai.globalModel.desc':
|
||
'Это направляет все выводы через одну модель. Это проще, но может оказаться неэффективным с точки зрения стоимости и качества, поскольку легкие и тяжелые задачи будут использовать один и тот же маршрут.',
|
||
'settings.ai.globalModel.noProviders':
|
||
'Сначала добавьте или подключите провайдера. Тогда вы сможете маршрутизировать каждую рабочую нагрузку через одну модель здесь.',
|
||
'settings.ai.globalModel.provider': 'Поставщик',
|
||
'settings.ai.globalModel.model': 'Модель',
|
||
'settings.ai.globalModel.loadingModels': 'Загрузка моделей…',
|
||
'settings.ai.globalModel.enterModelId': 'Введите идентификатор модели',
|
||
'settings.ai.globalModel.appliesToAll':
|
||
'Применяет один и тот же поставщик + модель к чату, рассуждениям, кодированию, памяти, сердцебиению, обучению и подсознанию. Вложения настраиваются отдельно. Изменения сохраняются при нажатии кнопки «Сохранить».',
|
||
'settings.ai.globalModel.saving': 'Сохранение…',
|
||
'settings.ai.globalModel.saved': 'Сохранено',
|
||
'settings.ai.workload.noModel': 'Модель не выбрана',
|
||
'settings.ai.workload.changeModel': 'Изменить модель',
|
||
'settings.ai.workload.chooseModel': 'Выберите модель',
|
||
'settings.ai.provider.ollama': 'Ollama',
|
||
'settings.autocomplete.appFilter.acceptSuggestion': 'Принять предложение',
|
||
'settings.autocomplete.appFilter.app': 'Приложение',
|
||
'settings.autocomplete.appFilter.currentSuggestion': 'Текущее предложение',
|
||
'settings.autocomplete.appFilter.contextOverride': 'Переопределение контекста (необязательно)',
|
||
'settings.autocomplete.appFilter.debounce': 'Отладка',
|
||
'settings.autocomplete.appFilter.debugFocus': 'Отладка фокуса',
|
||
'settings.autocomplete.appFilter.enabled': 'Включено',
|
||
'settings.autocomplete.appFilter.getSuggestion': 'Получить предложение',
|
||
'settings.autocomplete.appFilter.lastError': 'Последняя ошибка',
|
||
'settings.autocomplete.appFilter.liveLogs': 'Логи в реальном времени',
|
||
'settings.autocomplete.appFilter.model': 'Модель',
|
||
'settings.autocomplete.appFilter.noLogs': '):',
|
||
'settings.autocomplete.appFilter.phase': 'Фаза',
|
||
'settings.autocomplete.appFilter.platformSupported': 'Платформа поддерживается',
|
||
'settings.autocomplete.appFilter.refreshStatus': 'Обновление…',
|
||
'settings.autocomplete.appFilter.refreshing': 'Обновление…',
|
||
'settings.autocomplete.appFilter.running': 'Выполняется',
|
||
'settings.autocomplete.appFilter.runtime': 'Среда выполнения',
|
||
'settings.autocomplete.appFilter.test': 'Тест',
|
||
'settings.autocomplete.completionStyle.acceptedCompletion':
|
||
'Сохранено {count} принятое автозаполнение — используется для персонализации будущих подсказок.',
|
||
'settings.autocomplete.completionStyle.acceptedCompletions':
|
||
'Сохранено {count} принятых автозаполнений — используется для персонализации будущих подсказок.',
|
||
'settings.autocomplete.completionStyle.clearHistory': 'Очистка…',
|
||
'settings.autocomplete.completionStyle.clearing': 'Очистка…',
|
||
'settings.autocomplete.completionStyle.debounce': 'Задержка (ms)',
|
||
'settings.autocomplete.completionStyle.enabled': 'Включено',
|
||
'settings.autocomplete.completionStyle.maxChars': 'Макс. символов',
|
||
'settings.autocomplete.completionStyle.noHistory':
|
||
'Принятых предложений пока нет. Принимай предложения с помощью Tab, чтобы начать персонализацию.',
|
||
'settings.autocomplete.completionStyle.overlayTtl': 'Время отображения (ms)',
|
||
'settings.autocomplete.completionStyle.personalizationHistory': 'История персонализации',
|
||
'settings.autocomplete.completionStyle.styleExamples': 'Примеры стиля (по одному на строку)',
|
||
'settings.autocomplete.completionStyle.styleInstructions': 'Инструкции по стилю',
|
||
'settings.autocomplete.debug.acceptedPrefix': 'Принято: {value}',
|
||
'settings.autocomplete.debug.acceptFailed': 'Не удалось принять предложение',
|
||
'settings.autocomplete.debug.alreadyRunning': 'Автозаполнение уже запущено.',
|
||
'settings.autocomplete.debug.clearHistoryFailed': 'Не удалось очистить историю.',
|
||
'settings.autocomplete.debug.didNotStart': 'Автозаполнение не запустилось.',
|
||
'settings.autocomplete.debug.disabledInSettings':
|
||
'Автозаполнение отключено в настройках. Включите его и сначала сохраните.',
|
||
'settings.autocomplete.debug.fetchSuggestionFailed': 'Не удалось получить текущее предложение.',
|
||
'settings.autocomplete.debug.inspectFocusedElementFailed':
|
||
'Не удалось проверить элемент в фокусе.',
|
||
'settings.autocomplete.debug.loadSettingsFailed':
|
||
'Не удалось загрузить настройки автозаполнения.',
|
||
'settings.autocomplete.debug.noSuggestionApplied': 'Предложение не было применено.',
|
||
'settings.autocomplete.debug.noSuggestionReturned': 'Ни одно предложение не вернулось.',
|
||
'settings.autocomplete.debug.refreshStatusFailed': 'Не удалось обновить статус автозаполнения.',
|
||
'settings.autocomplete.debug.saveAdvancedSettingsFailed':
|
||
'Не удалось сохранить дополнительные настройки.',
|
||
'settings.autocomplete.debug.startFailed': 'Не удалось запустить автозаполнение.',
|
||
'settings.autocomplete.debug.stopFailed': 'Не удалось остановить автозаполнение.',
|
||
'settings.autocomplete.debug.suggestionPrefix': 'Предложение: {value}',
|
||
'settings.autocomplete.shared.none': 'Нет',
|
||
'settings.autocomplete.shared.notApplicable': 'н/д',
|
||
'settings.autocomplete.shared.unknown': 'Неизвестно',
|
||
'settings.billing.autoRecharge.addAmount': 'Добавить эту сумму',
|
||
'settings.billing.autoRecharge.addCard': 'Добавить карту',
|
||
'settings.billing.autoRecharge.amountHint': 'Подсказка по сумме',
|
||
'settings.billing.autoRecharge.defaultCard': 'Карта по умолчанию',
|
||
'settings.billing.autoRecharge.lastRechargeFailed': 'Последнее пополнение не удалось',
|
||
'settings.billing.autoRecharge.lastRecharged': 'Последнее пополнение',
|
||
'settings.billing.autoRecharge.expires': 'Срок действия истекает {date}',
|
||
'settings.billing.autoRecharge.noCards': 'Нет карт',
|
||
'settings.billing.autoRecharge.paymentMethods': 'Способы оплаты',
|
||
'settings.billing.autoRecharge.rechargeInProgress': 'Пополнение в процессе',
|
||
'settings.billing.autoRecharge.spentThisWeek':
|
||
'${spent} из ${limit}, использовано на этой неделе',
|
||
'settings.billing.autoRecharge.rechargeWhen': 'Пополнять, когда баланс ниже',
|
||
'settings.billing.autoRecharge.saveSettings': 'Сохранение…',
|
||
'settings.billing.autoRecharge.saving': 'Сохранение…',
|
||
'settings.billing.autoRecharge.setDefault': ':',
|
||
'settings.billing.autoRecharge.subtitle': 'Подзаголовок',
|
||
'settings.billing.autoRecharge.title': 'Включить автопополнение',
|
||
'settings.billing.autoRecharge.toggleAriaLabel': 'Переключить автопополнение',
|
||
'settings.billing.autoRecharge.weeklyLimit': 'Еженедельный лимит расходов',
|
||
'settings.billing.history.desc': 'Описание',
|
||
'settings.billing.history.empty': 'Пусто',
|
||
'settings.billing.history.openPortal': 'Открыть портал',
|
||
'settings.billing.history.posted': 'Проведено',
|
||
'settings.billing.history.title': 'Заголовок',
|
||
'settings.billing.inferenceBudget.cycleEnds': 'Цикл заканчивается',
|
||
'settings.billing.inferenceBudget.exhausted': 'Исчерпан',
|
||
'settings.billing.inferenceBudget.loadError': 'Ошибка загрузки',
|
||
'settings.billing.inferenceBudget.noBudgetDesc': 'Бюджет не задан',
|
||
'settings.billing.inferenceBudget.noRecurringBudget': 'Нет регулярного бюджета',
|
||
'settings.billing.inferenceBudget.noRecurringPlanBudget': 'Нет повторяющегося бюджета плана.',
|
||
'settings.billing.inferenceBudget.noRecurringWeeklyDesc':
|
||
'Ваш текущий план не включает повторяющийся еженедельный бюджет вывода. Вместо этого использование оплачивается из имеющихся кредитов.',
|
||
'settings.billing.inferenceBudget.remaining': 'Осталось',
|
||
'settings.billing.inferenceBudget.remainingSummary': 'Осталось {remaining} / {budget}',
|
||
'settings.billing.inferenceBudget.spentThisCycle': 'В этом цикле потрачено {amount}',
|
||
'settings.billing.inferenceBudget.cycleEndsOn': 'Цикл заканчивается {date}',
|
||
'settings.billing.inferenceBudget.exhaustedDesc':
|
||
'Использование включенной подписки исчерпано. Пополняйте кредиты, чтобы продолжать использовать AI, не дожидаясь следующего цикла.',
|
||
'settings.billing.inferenceBudget.discountVsPayg':
|
||
'{pct}% дешевле за звонок, чем при оплате по мере использования.',
|
||
'settings.billing.inferenceBudget.cycleSpend': 'Циклические расходы',
|
||
'settings.billing.inferenceBudget.totalAmount': '{amount} всего',
|
||
'settings.billing.inferenceBudget.inference': 'Вывод',
|
||
'settings.billing.inferenceBudget.integrations': 'Интеграции',
|
||
'settings.billing.inferenceBudget.calls': '{count} вызовы',
|
||
'settings.billing.inferenceBudget.dailySpend': 'Ежедневные расходы',
|
||
'settings.billing.inferenceBudget.dailySpendPoint': '{date}: {amount}',
|
||
'settings.billing.inferenceBudget.topModels': 'Лучшие модели',
|
||
'settings.billing.inferenceBudget.noInferenceUsage': 'В этом цикле не используются выводы.',
|
||
'settings.billing.inferenceBudget.topIntegrations': 'Топ интеграций',
|
||
'settings.billing.inferenceBudget.noIntegrationUsage': 'В этом цикле интеграция не используется.',
|
||
'settings.billing.inferenceBudget.tenHourCap': 'Ограничение 10 часов',
|
||
'settings.billing.inferenceBudget.title': 'Заголовок',
|
||
'settings.billing.inferenceBudget.unableToLoad': 'Невозможно загрузить данные об использовании.',
|
||
'settings.billing.inferenceBudget.notAvailable': 'н/д',
|
||
'settings.billing.payAsYouGo.available': 'Доступно',
|
||
'settings.billing.payAsYouGo.chargeCustomAmount': 'Открытие…',
|
||
'settings.billing.payAsYouGo.chooseTopUpDesc': 'Описание выбора пополнения',
|
||
'settings.billing.payAsYouGo.chooseTopUpTitle': 'Выберите сумму пополнения',
|
||
'settings.billing.payAsYouGo.creditBalanceDesc': 'Описание баланса кредитов',
|
||
'settings.billing.payAsYouGo.creditBalanceTitle': 'Баланс кредитов',
|
||
'settings.billing.payAsYouGo.customAmount': 'Произвольная сумма',
|
||
'settings.billing.payAsYouGo.enterAmount': 'Введи сумму',
|
||
'settings.billing.payAsYouGo.opening': 'Открытие',
|
||
'settings.billing.payAsYouGo.promotionalCredits': 'Промокредиты',
|
||
'settings.billing.payAsYouGo.topUpBalance': 'Пополнение баланса',
|
||
'settings.billing.payAsYouGo.topUpCredits': 'Пополнить кредиты',
|
||
'settings.billing.payAsYouGo.unableToLoad': 'Не удалось загрузить баланс.',
|
||
'settings.billing.subscription.annual': 'Годовая',
|
||
'settings.billing.subscription.billedAnnually': 'Оплата раз в год',
|
||
'settings.billing.subscription.chooseSubtitle': 'Подзаголовок выбора',
|
||
'settings.billing.subscription.chooseTitle': 'Заголовок выбора',
|
||
'settings.billing.subscription.cryptoDesc': 'Описание крипто',
|
||
'settings.billing.subscription.cryptoQuestion': 'Вопрос о крипто',
|
||
'settings.billing.subscription.current': 'Текущий',
|
||
'settings.billing.subscription.currentPlan': 'Текущий план',
|
||
'settings.billing.subscription.monthly': 'Ежемесячная',
|
||
'settings.billing.subscription.paymentConfirmed': 'Оплата подтверждена',
|
||
'settings.billing.subscription.perMonth': 'В месяц',
|
||
'settings.billing.subscription.popular': 'Популярное',
|
||
'settings.billing.subscription.save': '{pct}',
|
||
'settings.billing.subscription.upgrade': 'Улучшить',
|
||
'settings.billing.subscription.waiting': 'Ожидание',
|
||
'settings.billing.subscription.waitingPayment': 'Ожидание оплаты',
|
||
'settings.composio.apiKeyDesc': 'API-ключ Composio сейчас сохранён на этом устройстве.',
|
||
'settings.composio.apiKeyExamplePlaceholder': 'ck_live_xxxxxxxxxxxxxxxx',
|
||
'settings.composio.apiKeyLabel': 'API-ключ Composio',
|
||
'settings.composio.apiKeyStored': 'API-ключ сохранён',
|
||
'settings.composio.apiKeyStoredPlaceholder': '•••••••••••••••',
|
||
'settings.composio.clearedToBackend': 'Переключено в режим Backend',
|
||
'settings.composio.confirmItem1': 'Аккаунт на app.composio.dev с API-ключом',
|
||
'settings.composio.confirmItem2':
|
||
'Заново привязать каждую интеграцию через ваш личный аккаунт Composio',
|
||
'settings.composio.confirmItem3':
|
||
'Примечание: триггеры Composio (вебхуки в реальном времени) пока не работают в прямом режиме — только синхронные вызовы инструментов',
|
||
'settings.composio.confirmNeedItems': 'Вам понадобится:',
|
||
'settings.composio.confirmSwitch': 'Понятно, переключить на «Прямой»',
|
||
'settings.composio.confirmTitle': '⚠️ Переключение на прямой режим',
|
||
'settings.composio.confirmWarning':
|
||
'Ваши существующие интеграции (Gmail, Slack, GitHub и т. д., привязанные через OpenHuman) не будут видны — они находятся в управляемом OpenHuman тенанте Composio.',
|
||
'settings.composio.intro':
|
||
'Composio интегрирует 250+ внешних приложений как инструменты, которые может вызывать ваш агент. Выберите способ маршрутизации этих вызовов.',
|
||
'settings.composio.title': 'Composio',
|
||
'settings.composio.modeDirect': 'Прямой (собственный API-ключ)',
|
||
'settings.composio.modeDirectDesc':
|
||
'Вызовы идут напрямую на backend.composio.dev. Суверенно и подходит для офлайн. Выполнение инструментов работает синхронно; вебхуки триггеров в реальном времени пока не маршрутизируются в прямом режиме (см. отдельную задачу).',
|
||
'settings.composio.modeManaged': 'Управляемый (OpenHuman управляет за тебя)',
|
||
'settings.composio.modeManagedDesc':
|
||
'OpenHuman проксирует вызовы инструментов через наш бэкенд (рекомендуется). Авторизация брокеруется; вам не нужно вставлять API-ключ Composio. Вебхуки полностью маршрутизируются.',
|
||
'settings.composio.routingMode': 'Режим маршрутизации',
|
||
'settings.composio.saveErrorNoKey':
|
||
'Не удалось сохранить. Прямой режим требует непустой API-ключ.',
|
||
'settings.composio.saving': 'Сохранение…',
|
||
'settings.composio.switching': 'Переключение…',
|
||
'settings.companion.title': 'Настольный компаньон',
|
||
'settings.companion.session': 'Сеанс',
|
||
'settings.companion.activeLabel': 'Активен',
|
||
'settings.companion.inactiveStatus': 'Неактивен',
|
||
'settings.companion.stopping': 'Остановка…',
|
||
'settings.companion.stopSession': 'Остановить сеанс',
|
||
'settings.companion.starting': 'Начало…',
|
||
'settings.companion.startSession': 'Начало сеанса',
|
||
'settings.companion.sessionId': 'Идентификатор сеанса',
|
||
'settings.companion.turns': 'Выключает',
|
||
'settings.companion.remaining': 'Оставшуюся',
|
||
'settings.companion.configuration': 'конфигурацию',
|
||
'settings.companion.hotkey': 'Горячая клавиша',
|
||
'settings.companion.activationMode': 'Режим активации',
|
||
'settings.companion.sessionTtl': 'TTL сеанса',
|
||
'settings.companion.screenCapture': 'Снимок экрана',
|
||
'settings.companion.appContext': 'Контекст приложения',
|
||
'settings.cron.jobs.commandRequired': 'Для shell-задач требуется команда',
|
||
'settings.cron.jobs.createJob': 'Новая запланированная задача',
|
||
'settings.cron.jobs.created': 'Задача создана',
|
||
'settings.cron.jobs.custom': 'Свой вариант',
|
||
'settings.cron.jobs.desc': 'Описание',
|
||
'settings.cron.jobs.edit': 'Изменить',
|
||
'settings.cron.jobs.editJob': 'Изменить запланированную задачу',
|
||
'settings.cron.jobs.empty': 'Заданий по расписанию не найдено.',
|
||
'settings.cron.jobs.errorCreate': 'Не удалось создать cron-задачу: {message}',
|
||
'settings.cron.jobs.errorLoadList': 'Не удалось загрузить cron-задачи ядра: {message}',
|
||
'settings.cron.jobs.errorLoadRuns': 'Не удалось загрузить историю запусков: {message}',
|
||
'settings.cron.jobs.errorRemove': 'Не удалось удалить cron-задачу ядра: {message}',
|
||
'settings.cron.jobs.errorRun': 'Не удалось запустить cron-задачу ядра: {message}',
|
||
'settings.cron.jobs.errorToggle': 'Не удалось обновить cron-задачу ядра: {message}',
|
||
'settings.cron.jobs.errorUpdate': 'Не удалось обновить cron-задачу: {message}',
|
||
'settings.cron.jobs.formAtLabel': 'Запустить в',
|
||
'settings.cron.jobs.formCancel': 'Отмена',
|
||
'settings.cron.jobs.formCommand': 'Shell-команда',
|
||
'settings.cron.jobs.formCommandPlaceholder': 'напр. curl https://example.com/health',
|
||
'settings.cron.jobs.formCreate': 'Создать',
|
||
'settings.cron.jobs.formCronCustom': 'Своё выражение',
|
||
'settings.cron.jobs.formCronCustomPlaceholder': 'напр. */30 * * * *',
|
||
'settings.cron.jobs.formCronPreset': 'Шаблон',
|
||
'settings.cron.jobs.formCronPreview': 'Запуски: {preview}',
|
||
'settings.cron.jobs.formDeleteAfterRun': 'Удалить после первого запуска',
|
||
'settings.cron.jobs.formDelivery': 'Режим доставки',
|
||
'settings.cron.jobs.formDeliveryNone': 'Нет (только вывод)',
|
||
'settings.cron.jobs.formDeliveryProactive': 'Проактивный (push-уведомление)',
|
||
'settings.cron.jobs.formError': 'Не удалось сохранить задачу',
|
||
'settings.cron.jobs.formEveryLabel': 'Интервал (миллисекунды)',
|
||
'settings.cron.jobs.formEveryPlaceholder': 'напр. 3600000',
|
||
'settings.cron.jobs.formJobType': 'Тип задачи',
|
||
'settings.cron.jobs.formJobTypeAgent': 'Agent (запрос к ИИ)',
|
||
'settings.cron.jobs.formJobTypeShell': 'Shell-команда',
|
||
'settings.cron.jobs.formName': 'Название задачи',
|
||
'settings.cron.jobs.formNamePlaceholder': 'напр. daily-report, cleanup-task',
|
||
'settings.cron.jobs.formPrompt': 'Запрос для агента',
|
||
'settings.cron.jobs.formPromptPlaceholder': 'Что агент должен делать при каждом запуске?',
|
||
'settings.cron.jobs.formPromptRequired': 'Для задач агента требуется запрос',
|
||
'settings.cron.jobs.formSave': 'Сохранить',
|
||
'settings.cron.jobs.formSaving': 'Сохранение…',
|
||
'settings.cron.jobs.formScheduleAt': 'Однократно (запуск в)',
|
||
'settings.cron.jobs.formScheduleCron': 'Повторяющаяся (cron)',
|
||
'settings.cron.jobs.formScheduleEvery': 'Интервал (каждые N мс)',
|
||
'settings.cron.jobs.formScheduleRequired': 'Требуется расписание',
|
||
'settings.cron.jobs.formScheduleType': 'Тип расписания',
|
||
'settings.cron.jobs.formSessionIsolated': 'Изолированная (рекомендуется)',
|
||
'settings.cron.jobs.formSessionMain': 'Основная сессия',
|
||
'settings.cron.jobs.formSessionTarget': 'Целевая сессия',
|
||
'settings.cron.jobs.lastStatus': 'Последний статус',
|
||
'settings.cron.jobs.loading': 'Загрузка заданий...',
|
||
'settings.cron.jobs.loadingRuns': 'Загрузка запусков',
|
||
'settings.cron.jobs.nextRun': 'Следующий запуск',
|
||
'settings.cron.jobs.pause': 'Приостановить',
|
||
'settings.cron.jobs.paused': 'Приостановлено',
|
||
'settings.cron.jobs.recentRuns': 'Последние запуски',
|
||
'settings.cron.jobs.removing': 'Удаление',
|
||
'settings.cron.jobs.resume': 'Возобновить',
|
||
'settings.cron.jobs.runningNow': 'Выполняется сейчас',
|
||
'settings.cron.jobs.saving': 'Сохранение…',
|
||
'settings.cron.jobs.schedule': 'Расписание',
|
||
'settings.cron.jobs.title': 'Задания ядра по расписанию',
|
||
'settings.cron.jobs.updated': 'Задача обновлена',
|
||
'settings.cron.jobs.viewRuns': 'Посмотреть запуски',
|
||
'settings.cron.schedule.every2hours': 'Каждые 2 часа',
|
||
'settings.cron.schedule.every30min': 'Каждые 30 минут',
|
||
'settings.cron.schedule.every6hours': 'Каждые 6 часов',
|
||
'settings.cron.schedule.everyHour': 'Каждый час',
|
||
'settings.cron.schedule.onceDaily': 'Раз в день (9:00)',
|
||
'settings.localModel.deviceCapability.active': 'Активно',
|
||
'settings.localModel.deviceCapability.appliedTier': 'Применённый уровень',
|
||
'settings.localModel.deviceCapability.applying': 'Применение',
|
||
'settings.localModel.deviceCapability.cores': '{count}',
|
||
'settings.localModel.deviceCapability.couldNotLoadPresets': 'Не удалось загрузить пресеты',
|
||
'settings.localModel.deviceCapability.cpu': 'CPU',
|
||
'settings.localModel.deviceCapability.customModelIds': 'Пользовательские ID моделей',
|
||
'settings.localModel.deviceCapability.detected': 'Обнаружено',
|
||
'settings.localModel.deviceCapability.disabled': 'Отключено',
|
||
'settings.localModel.deviceCapability.disabledDesc': 'Отключено',
|
||
'settings.localModel.deviceCapability.downloadingModels': '(загрузка моделей)',
|
||
'settings.localModel.deviceCapability.downloadingSetupDesc':
|
||
'Загрузка установщика OllamaSetup (~2 ГБ) и распаковка. При первой установке это может занять минуту.',
|
||
'settings.localModel.deviceCapability.failedToApplyPreset': 'Не удалось применить пресет',
|
||
'settings.localModel.deviceCapability.gpu': 'GPU',
|
||
'settings.localModel.deviceCapability.installFailed': 'Установка Ollama не удалась',
|
||
'settings.localModel.deviceCapability.installFailedDesc':
|
||
'Установщик завершил работу до того, как Ollama стала готова к использованию. Нажми «Повторить» или установи вручную с ollama.com.',
|
||
'settings.localModel.deviceCapability.installFirst': 'Сначала запустите Ollama.',
|
||
'settings.localModel.deviceCapability.installFirstDesc':
|
||
'Локальные уровни зависят от внешне управляемого эндпоинта Ollama. Запустите его самостоятельно, загрузите нужные модели и используйте «Отключено (облачный fallback)», пока среда выполнения недоступна.',
|
||
'settings.localModel.deviceCapability.installOllamaFirst':
|
||
'Сначала запустите Ollama, чтобы использовать этот уровень',
|
||
'settings.localModel.deviceCapability.installingOllama': 'Установка Ollama',
|
||
'settings.localModel.deviceCapability.loadingDeviceInfo': 'Загрузка информации об устройстве',
|
||
'settings.localModel.deviceCapability.localAiDisabled':
|
||
'Локальный AI отключён — используется облачный резерв.',
|
||
'settings.localModel.deviceCapability.modelTier': 'Уровень модели',
|
||
'settings.localModel.deviceCapability.needsOllama': 'Требуется Ollama',
|
||
'settings.localModel.deviceCapability.notDetected': 'Не обнаружено',
|
||
'settings.localModel.deviceCapability.disabledLowercase': 'отключен',
|
||
'settings.localModel.deviceCapability.presetDetails':
|
||
'Чат: {chatModel} · Vision: {visionModel} · Целевая оперативная память: {targetRamGb} ГБ',
|
||
'settings.localModel.deviceCapability.ram': 'RAM',
|
||
'settings.localModel.deviceCapability.recommended': 'Рекомендуется',
|
||
'settings.localModel.deviceCapability.retryInstall': 'Повтор…',
|
||
'settings.localModel.deviceCapability.retrying': 'Повтор…',
|
||
'settings.localModel.deviceCapability.starting': 'Запуск…',
|
||
'settings.localModel.download.audioPathPlaceholder': 'Абсолютный путь к аудиофайлу',
|
||
'settings.localModel.download.capabilityChat': 'Чат',
|
||
'settings.localModel.download.capabilityEmbedding': 'Встраивание',
|
||
'settings.localModel.download.capabilityAssets': 'Ресурсы возможностей',
|
||
'settings.localModel.download.capabilityStt': 'STT',
|
||
'settings.localModel.download.capabilityTts': 'TTS',
|
||
'settings.localModel.download.capabilityVision': 'Зрение',
|
||
'settings.localModel.download.downloading': 'Загрузка...',
|
||
'settings.localModel.download.embeddingDimensions': 'Размеры: {dimensions}',
|
||
'settings.localModel.download.embeddingModel': 'Модель: {modelId}',
|
||
'settings.localModel.download.embeddingPlaceholder': 'По одной строке на вход...',
|
||
'settings.localModel.download.embeddingVectors': 'Векторы: {count}',
|
||
'settings.localModel.download.noThinkMode': 'Без режима обдумывания',
|
||
'settings.localModel.download.notAvailable': 'н/д',
|
||
'settings.localModel.download.promptPlaceholder':
|
||
'Введи любой запрос для тестирования локальной модели...',
|
||
'settings.localModel.download.quantizationPref': 'Предпочтения квантизации',
|
||
'settings.localModel.download.runEmbeddingTest': 'Выполнение...',
|
||
'settings.localModel.download.runPromptTest': 'Запустить тест промпта',
|
||
'settings.localModel.download.runSummaryTest': 'Запустить тест сводки',
|
||
'settings.localModel.download.runTranscriptionTest': 'Выполнение...',
|
||
'settings.localModel.download.runTtsTest': 'Выполнение...',
|
||
'settings.localModel.download.runVisionTest': 'Выполнение...',
|
||
'settings.localModel.download.running': 'Выполнение...',
|
||
'settings.localModel.download.runningPrompt': 'Выполнение запроса',
|
||
'settings.localModel.download.summaryHelper':
|
||
'Вызовы `openhuman.inference_summarize` через ядро Rust',
|
||
'settings.localModel.download.summarizePlaceholder':
|
||
'Вставь текст для суммаризации локальной моделью...',
|
||
'settings.localModel.download.testCustomPrompt': 'Тест произвольного запроса',
|
||
'settings.localModel.download.testEmbeddings': 'Тест векторных вложений',
|
||
'settings.localModel.download.testSummarization': 'Тест суммаризации',
|
||
'settings.localModel.download.testVisionPrompt': 'Тест визуального запроса',
|
||
'settings.localModel.download.testVoiceInput': 'Тест голосового ввода (STT)',
|
||
'settings.localModel.download.testVoiceOutput': 'Тест голосового вывода (TTS)',
|
||
'settings.localModel.download.transcript': 'Расшифровка:',
|
||
'settings.localModel.download.ttsOutput': 'Выход: {outputPath}',
|
||
'settings.localModel.download.ttsOutputPlaceholder': 'Необязательный путь к выходному WAV-файлу',
|
||
'settings.localModel.download.ttsPlaceholder': 'Введи текст для синтеза...',
|
||
'settings.localModel.download.ttsVoice': 'Голос: {voiceId}',
|
||
'settings.localModel.download.visionImagePlaceholder':
|
||
'По одной ссылке на изображение на строку (data URI, URL или локальный маркер пути)',
|
||
'settings.localModel.download.visionPromptPlaceholder': 'Введи запрос для визуальной модели...',
|
||
'settings.localModel.status.allChecksPassed': 'Все проверки пройдены',
|
||
'settings.localModel.status.artifact': 'Артефакт',
|
||
'settings.localModel.status.backend': 'Бэкенд',
|
||
'settings.localModel.status.binary': 'Бинарный файл',
|
||
'settings.localModel.status.bootstrapResume': 'Инициализация / возобновление',
|
||
'settings.localModel.status.checking': 'Проверка...',
|
||
'settings.localModel.status.checkingOllama': 'Проверка Ollama',
|
||
'settings.localModel.status.contextBelowMinimumBadge':
|
||
'{contextLength} ctx - ниже {required} мин.',
|
||
'settings.localModel.status.contextBelowMinimumTitle':
|
||
'Отклонено: количество токенов {contextLength} контекстного окна ниже минимального значения токена {required}, требуемого для уровня памяти. Напоминание будет повреждено молчаливым усечением.',
|
||
'settings.localModel.status.contextOkBadge': '{contextLength} контекст ✓',
|
||
'settings.localModel.status.contextOkTitle':
|
||
'Токены контекстного окна {contextLength} соответствуют минимуму уровня памяти для токенов {required}.',
|
||
'settings.localModel.status.contextUnknownBadge': 'ctx неизвестно',
|
||
'settings.localModel.status.contextUnknownTitle':
|
||
'Контекстное окно неизвестно; не удалось подтвердить, что он соответствует минимуму уровня памяти токена {required}.',
|
||
'settings.localModel.status.customLocation': 'Пользовательский путь',
|
||
'settings.localModel.status.customLocationDesc': 'Описание пользовательского расположения',
|
||
'settings.localModel.status.diagnosticsHint':
|
||
'Нажмите «Запустить диагностику», чтобы убедиться, что Ollama запущен и модели установлены.',
|
||
'settings.localModel.status.downloadingUnknown': 'Загрузка (размер неизвестен)',
|
||
'settings.localModel.status.eta': 'ETA',
|
||
'settings.localModel.status.expectedModels': 'Ожидаемые модели',
|
||
'settings.localModel.status.expectedChat': 'Чат: {model}',
|
||
'settings.localModel.status.expectedEmbedding': 'Встраивание: {model}',
|
||
'settings.localModel.status.expectedVision': 'Видение: {model}',
|
||
'settings.localModel.status.externalProcess': 'Внешний процесс',
|
||
'settings.localModel.status.forceRebootstrap': 'Принудительная переинициализация',
|
||
'settings.localModel.status.generationTps': 'Скорость генерации (TPS)',
|
||
'settings.localModel.status.hideErrorDetails': 'Скрыть детали ошибки',
|
||
'settings.localModel.status.installManually': 'Установить вручную',
|
||
'settings.localModel.status.installManuallyFrom': 'Установить вручную с',
|
||
'settings.localModel.status.installOllama': 'Запуск…',
|
||
'settings.localModel.status.installedModels': 'Установленные модели',
|
||
'settings.localModel.status.installing': 'Установка...',
|
||
'settings.localModel.status.installingOllama': 'Установка среды Ollama...',
|
||
'settings.localModel.status.issues': 'Проблемы',
|
||
'settings.localModel.status.issuesFound': 'Найдено проблем: {count}',
|
||
'settings.localModel.status.lastLatency': 'Последняя задержка',
|
||
'settings.localModel.status.model': 'Модель',
|
||
'settings.localModel.status.notAvailable': 'н/д',
|
||
'settings.localModel.status.notFound': 'Не найдено',
|
||
'settings.localModel.status.notRunning': 'Не запущено',
|
||
'settings.localModel.status.ollamaBinaryPath': 'Путь к бинарному файлу Ollama',
|
||
'localModel.ollamaServer.helperText': 'Пример: http://192.168.1.5:11434',
|
||
'localModel.ollamaServer.label': 'URL сервера Ollama',
|
||
'localModel.ollamaServer.modelCount': 'моделей',
|
||
'localModel.ollamaServer.placeholder': 'http://localhost:11434',
|
||
'localModel.ollamaServer.reachable': 'Доступен',
|
||
'localModel.ollamaServer.resetButton': 'Сбросить до значения по умолчанию',
|
||
'localModel.ollamaServer.saveButton': 'Сохранить',
|
||
'localModel.ollamaServer.testButton': 'Проверить соединение',
|
||
'localModel.ollamaServer.unreachable': 'Недоступен',
|
||
'localModel.ollamaServer.validationError':
|
||
'Должен быть допустимым URL с протоколом http:// или https://',
|
||
'settings.localModel.status.ollamaDiagnostics': 'Диагностика Ollama',
|
||
'settings.localModel.status.ollamaNotInstalled': 'Среда выполнения Ollama недоступна',
|
||
'settings.localModel.status.ollamaNotInstalledDesc':
|
||
'OpenHuman теперь рассматривает Ollama как внешнюю среду инференса. Запустите собственный сервер Ollama, загрузите нужные модели и направьте маршрутизацию нагрузки на него.',
|
||
'settings.localModel.status.progress': 'Прогресс',
|
||
'settings.localModel.status.provider': 'Провайдер',
|
||
'settings.localModel.status.retryBootstrap': 'Повторить Bootstrap',
|
||
'settings.localModel.status.runDiagnostics': 'Проверка...',
|
||
'settings.localModel.status.running': 'Работает',
|
||
'settings.localModel.status.runningExternalProcess': 'Запущено через внешний процесс',
|
||
'settings.localModel.status.runtimeStatus': 'Статус среды выполнения',
|
||
'settings.localModel.status.server': 'Сервер',
|
||
'settings.localModel.status.setPath': 'Установка...',
|
||
'settings.localModel.status.setting': 'Установка...',
|
||
'settings.localModel.status.showErrorDetails': 'Скрыть детали ошибки',
|
||
'settings.localModel.status.showInstallErrorDetails': 'Скрыть детали ошибки',
|
||
'settings.localModel.status.suggestedFixes': 'Предлагаемые исправления',
|
||
'settings.localModel.status.thenSetPath': 'Затем укажи путь',
|
||
'settings.localModel.status.triggering': 'Запуск...',
|
||
'settings.localModel.status.unavailable': 'Недоступно',
|
||
'settings.localModel.status.working': 'Работаю...',
|
||
'settings.developerMenu.ai.title': 'Конфигурация ИИ',
|
||
'settings.developerMenu.ai.desc':
|
||
'Облачные провайдеры, локальные модели Ollama и маршрутизация по типам нагрузки',
|
||
'settings.developerMenu.screenAwareness.title': 'Осведомленность об экране',
|
||
'settings.developerMenu.screenAwareness.desc':
|
||
'Разрешения на захват экрана, политика мониторинга и управление сессиями',
|
||
'settings.developerMenu.messagingChannels.title': 'Каналы сообщений',
|
||
'settings.developerMenu.messagingChannels.desc':
|
||
'Настройка режимов аутентификации Telegram/Discord и маршрутизации канала по умолчанию',
|
||
'settings.developerMenu.tools.title': 'Инструменты',
|
||
'settings.developerMenu.tools.desc':
|
||
'Включайте или отключайте возможности, которые OpenHuman может использовать от вашего имени',
|
||
'settings.developerMenu.agentChat.title': 'Чат агента',
|
||
'settings.developerMenu.agentChat.desc':
|
||
'Тестируйте разговор агента с переопределениями модели и температуры',
|
||
'settings.developerMenu.devWorkflow.title': 'Рабочий процесс разработки',
|
||
'settings.developerMenu.devWorkflow.desc':
|
||
'Автономный агент, который выбирает ваши проблемы с GitHub и поднимает PR по расписанию.',
|
||
'settings.developerMenu.devWorkflow.panelDesc':
|
||
'Настройте автономный агент разработчика, который выбирает назначенные вам проблемы GitHub и автоматически отправляет запросы на включение по расписанию.',
|
||
'settings.developerMenu.skillsRunner.title': 'Навыки бегуна',
|
||
'settings.developerMenu.skillsRunner.desc':
|
||
'Запустите любой связанный навык в произвольном порядке — заполните его входные данные и запустите фоновый автономный запуск.',
|
||
'settings.developerMenu.skillsRunner.panelDesc':
|
||
'Выберите связанный навык, заполните его заявленные входные данные и запустите фоновый прогон по принципу «выстрелил и забыл». Вместо этого используйте Dev Workflow, если вам нужно повторяющееся задание, запланированное cron.',
|
||
'settings.skillsRunner.skill': 'Навык',
|
||
'settings.skillsRunner.selectSkill': 'Выберите навык…',
|
||
'settings.skillsRunner.loadingSkills': 'Загрузка навыков…',
|
||
'settings.skillsRunner.loadingDescription': 'Загрузка входных данных о навыках…',
|
||
'settings.skillsRunner.noInputs': 'Этот навык не декларирует никаких входных данных.',
|
||
'settings.skillsRunner.placeholder.required': 'необходимый',
|
||
'settings.skillsRunner.runNow': 'Беги сейчас',
|
||
'settings.skillsRunner.starting': 'Начало…',
|
||
'settings.skillsRunner.started': 'Запущено — идентификатор запуска:',
|
||
'settings.skillsRunner.logPath': 'Бревно:',
|
||
'settings.skillsRunner.error.listSkills': 'Не удалось загрузить навыки:',
|
||
'settings.skillsRunner.error.describe': 'Не удалось загрузить входные данные:',
|
||
'settings.skillsRunner.error.missingRequired': 'Отсутствуют необходимые входные данные:',
|
||
'settings.skillsRunner.error.run': 'Не удалось запустить запуск:',
|
||
'settings.skillsRunner.error.preflightGate': 'Предполетный шлюз вышел из строя',
|
||
'settings.skillsRunner.schedule.heading': 'Расписание (повторяющееся)',
|
||
'settings.skillsRunner.schedule.help':
|
||
'Сохраните этот навык + входные данные как повторяющееся задание cron. Агент будет вызывать run_skill при каждом тике.',
|
||
'settings.skillsRunner.schedule.frequency': 'Частота',
|
||
'settings.skillsRunner.schedule.every30min': 'Каждые 30 минут',
|
||
'settings.skillsRunner.schedule.everyHour': 'Каждый час',
|
||
'settings.skillsRunner.schedule.every2hours': 'Каждые 2 часа',
|
||
'settings.skillsRunner.schedule.every6hours': 'Каждые 6 часов',
|
||
'settings.skillsRunner.schedule.onceDaily': 'Один раз в день (9:00)',
|
||
'settings.skillsRunner.schedule.save': 'Сохранить расписание',
|
||
'settings.skillsRunner.schedule.saving': 'Сохранение…',
|
||
'settings.skillsRunner.schedule.saved': 'Расписание сохранено.',
|
||
'settings.skillsRunner.schedule.error': 'Не удалось сохранить расписание:',
|
||
'settings.skillsRunner.schedule.loadingJobs': 'Загрузка существующих расписаний…',
|
||
'settings.skillsRunner.schedule.noJobs': 'Для этого навыка пока не сохранено расписание.',
|
||
'settings.skillsRunner.schedule.existing': 'Запланированные задания для этого навыка:',
|
||
'settings.skillsRunner.schedule.runNow': 'Бегать',
|
||
'settings.skillsRunner.schedule.remove': 'Удалять',
|
||
'settings.skillsRunner.scheduleEnabled': 'Включено',
|
||
'settings.skillsRunner.scheduleDisabled': 'Приостановлено',
|
||
'settings.skillsRunner.scheduleToggleAria': 'Переключить расписание включено',
|
||
'settings.skillsRunner.schedule.history': 'История',
|
||
'settings.skillsRunner.schedule.historyLoading': 'Загрузка истории…',
|
||
'settings.skillsRunner.schedule.historyEmpty': 'По этому расписанию пока нет запусков.',
|
||
'settings.skillsRunner.schedule.historyNoOutput': 'Выходные данные не зафиксированы.',
|
||
'settings.skillsRunner.schedule.active': 'Активный',
|
||
'settings.skillsRunner.schedule.lastRunLabel': 'последний:',
|
||
'settings.skillsRunner.recentRuns.headingForSkill': 'Недавние запуски этого навыка',
|
||
'settings.skillsRunner.recentRuns.headingAll': 'Недавние прогоны навыков (все)',
|
||
'settings.skillsRunner.recentRuns.refresh': 'Обновить',
|
||
'settings.skillsRunner.recentRuns.loading': 'Загрузка последних запусков…',
|
||
'settings.skillsRunner.recentRuns.empty': 'Нет недавних запусков.',
|
||
'settings.skillsRunner.viewer.loading': 'Загрузка журнала…',
|
||
'settings.skillsRunner.viewer.tailing': 'Живой хвостохранилище',
|
||
'settings.skillsRunner.viewer.fetching': 'fetching',
|
||
'settings.skillsRunner.viewer.error': 'Не удалось прочитать журнал:',
|
||
'settings.skillsRunner.repoPicker.loading': 'Загрузка репозиториев…',
|
||
'settings.skillsRunner.repoPicker.select': 'Выберите репозиторий…',
|
||
'settings.skillsRunner.repoPicker.empty':
|
||
'Ни один репозиторий не вернулся. Подключите GitHub через Composio, чтобы заполнить этот список.',
|
||
'settings.skillsRunner.repoPicker.notConnected':
|
||
'GitHub не подключен через Composio. Сначала подключите его в разделе «Навыки» → Composio.',
|
||
'settings.skillsRunner.repoPicker.privateTag': '(частный)',
|
||
'settings.skillsRunner.branchPicker.needRepo': 'Сначала выберите репозиторий…',
|
||
'settings.skillsRunner.branchPicker.loading': 'Загрузка веток…',
|
||
'settings.skillsRunner.branchPicker.select': 'Выберите филиал…',
|
||
'settings.devWorkflow.githubRepository': 'Репозиторий GitHub',
|
||
'settings.devWorkflow.loadingRepositories': 'Загрузка репозиториев...',
|
||
'settings.devWorkflow.selectRepository': 'Выберите репозиторий',
|
||
'settings.devWorkflow.privateTag': '(частный)',
|
||
'settings.devWorkflow.detectingForkInfo': 'Обнаружение информации о вилке...',
|
||
'settings.devWorkflow.forkDetected': 'Обнаружена вилка',
|
||
'settings.devWorkflow.upstream': 'Вверх по течению:',
|
||
'settings.devWorkflow.forkPrNote': 'ОР будут выдвинуты против вышестоящего хранилища.',
|
||
'settings.devWorkflow.notForkNote':
|
||
'Не вилка. PR будут выдвинуты непосредственно против этого хранилища.',
|
||
'settings.devWorkflow.targetBranch': 'Целевой филиал',
|
||
'settings.devWorkflow.targetBranchNote': 'Против этой ветки будут подняты ПР',
|
||
'settings.devWorkflow.loadingBranches': 'Загрузка веток...',
|
||
'settings.devWorkflow.runFrequency': 'Частота запуска',
|
||
'settings.devWorkflow.runFrequencyNote':
|
||
'Как часто агент должен проверять наличие проблем и поднимать PR.',
|
||
'settings.devWorkflow.updateConfiguration': 'Обновить конфигурацию',
|
||
'settings.devWorkflow.saveConfiguration': 'Сохранить конфигурацию',
|
||
'settings.devWorkflow.remove': 'Удалять',
|
||
'settings.devWorkflow.saved': 'Сохранено',
|
||
'settings.devWorkflow.activeConfiguration': 'Активная конфигурация',
|
||
'settings.devWorkflow.activeConfigRepository': 'Репозиторий:',
|
||
'settings.devWorkflow.activeConfigUpstream': 'Вверх по течению:',
|
||
'settings.devWorkflow.activeConfigTargetBranch': 'Целевая ветка:',
|
||
'settings.devWorkflow.activeConfigSchedule': 'Расписание:',
|
||
'settings.devWorkflow.enabled': 'Включено',
|
||
'settings.devWorkflow.paused': 'Приостановлено',
|
||
'settings.devWorkflow.nextRun': 'Следующий запуск',
|
||
'settings.devWorkflow.lastRun': 'Последний запуск',
|
||
'settings.devWorkflow.runNow': 'Беги сейчас',
|
||
'settings.devWorkflow.running': 'Бег…',
|
||
'settings.devWorkflow.recentRuns': 'Недавние запуски',
|
||
'settings.devWorkflow.cronSaveError': 'Не удалось сохранить конфигурацию.',
|
||
'settings.devWorkflow.lastOutput': 'Последний вывод',
|
||
'settings.devWorkflow.noOutput': 'Выходные данные не зафиксированы',
|
||
'settings.devWorkflow.runningStatus':
|
||
'Агент работает — выбирает проблему и работает над ее исправлением...',
|
||
'settings.devWorkflow.errorNotConnected':
|
||
'GitHub не подключен. Сначала подключите GitHub через «Настройки» > «Дополнительно» > Composio.',
|
||
'settings.devWorkflow.errorToolNotEnabled':
|
||
'Инструмент GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER не включён на этом сервере. Попросите своего администратора включить его в интеграции Composio (backend#842).',
|
||
'settings.devWorkflow.errorNotAuthenticated':
|
||
'Не аутентифицирован. Пожалуйста, сначала войдите в систему.',
|
||
'settings.devWorkflow.errorNoRepositories':
|
||
'Для этой учетной записи GitHub не найдено репозиториев.',
|
||
'settings.devWorkflow.schedule.every30min': 'Каждые 30 минут',
|
||
'settings.devWorkflow.schedule.everyHour': 'Каждый час',
|
||
'settings.devWorkflow.schedule.every2hours': 'Каждые 2 часа',
|
||
'settings.devWorkflow.schedule.every6hours': 'Каждые 6 часов',
|
||
'settings.devWorkflow.schedule.onceDaily': 'Один раз в день (9 утра)',
|
||
'settings.developerMenu.cronJobs.title': 'Задачи cron',
|
||
'settings.developerMenu.cronJobs.desc':
|
||
'Просмотр и настройка запланированных задач для runtime-навыков',
|
||
'settings.developerMenu.localModelDebug.title': 'Отладка локальной модели',
|
||
'settings.developerMenu.localModelDebug.desc':
|
||
'Конфигурация Ollama, загрузка ресурсов, тесты модели и диагностика',
|
||
'settings.developerMenu.webhooks.title': 'Вебхуки',
|
||
'settings.developerMenu.webhooks.desc':
|
||
'Проверяйте регистрации runtime-вебхуков и журналы захваченных запросов',
|
||
'settings.developerMenu.eventLog.title': 'Журнал событий',
|
||
'settings.developerMenu.eventLog.desc':
|
||
'Живой поток с цветовой кодировкой обо всех событиях агента, инструмента и системы.',
|
||
'settings.developerMenu.eventLog.allTypes': 'Все типы',
|
||
'settings.developerMenu.eventLog.filterAgent': 'Фильтр...',
|
||
'settings.developerMenu.eventLog.download': 'Скачать',
|
||
'settings.developerMenu.eventLog.events': 'events',
|
||
'settings.developerMenu.eventLog.live': 'Жить',
|
||
'settings.developerMenu.eventLog.disconnected': 'Отключено',
|
||
'settings.developerMenu.eventLog.waiting': 'Ждем событий...',
|
||
'settings.developerMenu.eventLog.notConnected': 'Не подключен к ядру',
|
||
'settings.developerMenu.eventLog.jumpToLatest': 'Перейти к последней версии',
|
||
'settings.developerMenu.eventLog.badge.tool': 'TOOL',
|
||
'settings.developerMenu.eventLog.badge.agent': 'AGENT',
|
||
'settings.developerMenu.eventLog.badge.info': 'INFO',
|
||
'settings.developerMenu.eventLog.badge.mem': 'MEM',
|
||
'settings.developerMenu.eventLog.badge.chan': 'CHAN',
|
||
'settings.developerMenu.eventLog.badge.cron': 'CRON',
|
||
'settings.developerMenu.eventLog.badge.hook': 'HOOK',
|
||
'settings.developerMenu.eventLog.badge.warn': 'WARN',
|
||
'settings.developerMenu.eventLog.badge.skill': 'SKILL',
|
||
'settings.developerMenu.eventLog.badge.comp': 'COMP',
|
||
'settings.developerMenu.eventLog.badge.mcp': 'MCP',
|
||
'settings.developerMenu.intelligence.title': 'Интеллект',
|
||
'settings.developerMenu.intelligence.desc':
|
||
'Рабочая область памяти, подсознательный движок, сны и настройки',
|
||
'settings.developerMenu.notificationRouting.title': 'Маршрутизация уведомлений',
|
||
'settings.developerMenu.notificationRouting.desc':
|
||
'Оценка важности ИИ и эскалация оркестратору для интеграционных оповещений',
|
||
'settings.developerMenu.composeioTriggers.title': 'Триггеры ComposeIO',
|
||
'settings.developerMenu.composeioTriggers.desc': 'Просмотр истории и архива триггеров ComposeIO',
|
||
'settings.developerMenu.composioRouting.title': 'Маршрутизация Composio (прямой режим)',
|
||
'settings.developerMenu.composioRouting.desc':
|
||
'Используйте собственный API-ключ Composio и направляйте вызовы напрямую в backend.composio.dev',
|
||
'settings.developerMenu.integrationTriggers.title': 'Триггеры интеграций',
|
||
'settings.developerMenu.integrationTriggers.desc':
|
||
'Настройка параметров AI-триажа для триггеров интеграций Composio',
|
||
'settings.developerMenu.mcpServer.title': 'MCP Сервер',
|
||
'settings.developerMenu.mcpServer.desc':
|
||
'Настройка внешних клиентов MCP для подключения к серверу OpenHuman',
|
||
'settings.developerMenu.autonomy.title': 'Автономия агента',
|
||
'settings.developerMenu.autonomy.desc':
|
||
'Ограничения частоты действий инструментов и пороги безопасности',
|
||
'settings.mcpServer.title': 'MCP',
|
||
'settings.mcpServer.toolsSectionTitle': 'Доступные инструменты',
|
||
'settings.mcpServer.toolsSectionDesc':
|
||
'Инструменты, предоставляемые через сервер MCP stdio при запуске openhuman-core mcp',
|
||
'settings.mcpServer.configSectionTitle': 'Конфигурация клиента',
|
||
'settings.mcpServer.configSectionDesc':
|
||
'Выберите клиент MCP для создания правильного фрагмента конфигурации.',
|
||
'settings.mcpServer.copySnippet': 'Копировать в буфер обмена',
|
||
'settings.mcpServer.copied': 'Скопировано!',
|
||
'settings.mcpServer.openConfigFile': 'Открыть файл конфигурации.',
|
||
'settings.mcpServer.binaryPathNotFound':
|
||
'Двоичный файл OpenHuman не найден. При запуске из исходного кода выполните сборку с помощью: Cargo build --bin openhuman-core',
|
||
'settings.mcpServer.openConfigError': 'Не удалось открыть файл конфигурации',
|
||
'settings.mcpServer.clientClaudeDesktop': 'Claude Рабочий стол',
|
||
'settings.mcpServer.clientCursor': 'Курсор',
|
||
'settings.mcpServer.clientCodex': 'Кодекс',
|
||
'settings.mcpServer.clientZed': 'Зед',
|
||
'settings.mcpServer.configFilePath': 'Файл конфигурации',
|
||
'settings.mcpServer.clientSelectorAriaLabel': 'MCP селектор клиента',
|
||
'settings.appearance.menuDesc': 'Выберите светлую, темную или системную тему',
|
||
'settings.agentAccess.title': 'Доступ агента к ОС',
|
||
'settings.agentAccess.menuDesc':
|
||
'Контролируйте, где агент может использовать read/write и может ли он использовать оболочку.',
|
||
'settings.agentAccess.loadError': 'Не удалось загрузить настройки доступа.',
|
||
'settings.agentAccess.saveError': 'Не удалось сохранить настройки доступа.',
|
||
'settings.agentAccess.saved': 'Сохранено — применяется к следующему сообщению.',
|
||
'settings.agentAccess.desktopOnly': 'Настройки доступа доступны только в настольном приложении.',
|
||
'settings.agentAccess.loading': 'Загрузка…',
|
||
'settings.agentAccess.accessMode': 'Режим доступа',
|
||
'settings.agentAccess.tier.readonly.title': 'Только чтение',
|
||
'settings.agentAccess.tier.readonly.desc':
|
||
'Читает файлы и запускает команды только для чтения для изучения, но никогда не записывает, не редактирует и не запускает ничего, что меняет состояние.',
|
||
'settings.agentAccess.tier.supervised.title': 'Спросить перед редактированием',
|
||
'settings.agentAccess.tier.supervised.desc':
|
||
'Свободно создает новые файлы, но запрашивает ваше одобрение перед редактированием существующего файла, запуском команды, подключением к сети или установкой чего-либо.',
|
||
'settings.agentAccess.tier.full.title': 'Полный доступ',
|
||
'settings.agentAccess.tier.full.desc':
|
||
'Выполняет команды с полным доступом к вашей учетной записи пользователя — read/write может работать где угодно, кроме учетных данных и системных хранилищ. Деструктивные команды, доступ к сети и установки по-прежнему требуют одобрения.',
|
||
'settings.agentAccess.defaultTag': '(по умолчанию)',
|
||
'settings.agentAccess.fullWarning':
|
||
'⚠ Полный доступ запускает команды с полным доступом к вашей учетной записи и не находится в изолированной программной среде. Включайте его только в том случае, если вы доверяете агенту эту машину. Каталоги учетных данных и системные каталоги остаются заблокированными, а деструктивные, сетевые действия и действия по установке по-прежнему требуют одобрения.',
|
||
'settings.agentAccess.confine.label': 'Ограничить рабочее пространство',
|
||
'settings.agentAccess.confine.desc':
|
||
'Ограничьте агента каталогом рабочей области (плюс всеми предоставленными папками), независимо от выбранного режима доступа. Когда этот параметр отключен, он может получить доступ к любому месту, доступному вашему пользователю, за исключением всегда блокируемых учетных данных и системных каталогов.',
|
||
'settings.agentAccess.requireTaskPlanApproval.label': 'Требовать утверждения плана задач',
|
||
'settings.agentAccess.requireTaskPlanApproval.desc':
|
||
'Сделайте паузу перед тем, как назначенный агент выполнит задание, созданное агентом.',
|
||
'settings.agentAccess.timeout.label': 'Тайм-аут действия',
|
||
'settings.agentAccess.timeout.desc':
|
||
'Сколько времени может выполняться отдельный инструмент или действие до отмены. Увеличьте это значение, если крупная локальная модель прерывается до завершения ответа.',
|
||
'settings.agentAccess.timeout.unit': 'секунды',
|
||
'settings.agentAccess.timeout.invalid':
|
||
'Введите целое число секунд в пределах допустимого диапазона',
|
||
'settings.agentAccess.timeout.envOverride':
|
||
'Переменная окружения OPENHUMAN_TOOL_TIMEOUT_SECS переопределяет эту настройку, поэтому изменения здесь не вступят в силу, пока она не будет сброшена.',
|
||
'settings.agentAccess.grantedFolders': 'Предоставленные папки',
|
||
'settings.agentAccess.alwaysAllow': 'Всегда разрешенные инструменты',
|
||
'settings.agentAccess.alwaysAllowDesc':
|
||
'Инструменты, которые вы отметили в чате как «Всегда разрешать», запускаются без запроса. Удалите один, чтобы запрос появился снова.',
|
||
'settings.agentAccess.alwaysAllowNone': 'Всегда разрешенных инструментов пока нет.',
|
||
'settings.agentAccess.grantedDesc':
|
||
'Папки, которые агент может читать и записывать, помимо рабочей области. Хранилища учетных данных (~/.ssh, ~/.gnupg, ~/.aws, цепочки для ключей) и системные каталоги (/etc, /System, C:\\Windows,…) всегда блокируются, даже внутри предоставленной папки.',
|
||
'settings.agentAccess.noneGranted': 'Папки не предоставлены.',
|
||
'settings.agentAccess.readWrite': 'читать + писать',
|
||
'settings.agentAccess.readOnly': 'read-only',
|
||
'settings.agentAccess.remove': 'Удалять',
|
||
'settings.agentAccess.pathPlaceholder': 'Абсолютный путь к папке',
|
||
'settings.agentAccess.accessLevelLabel': 'Уровень доступа',
|
||
'settings.agentAccess.add': 'Добавлять',
|
||
'settings.agentAccess.saving': 'Сохранение…',
|
||
'settings.agentAccess.changesApply': 'Изменения вступят в силу в следующем сообщении.',
|
||
'settings.agentAccess.directories': 'Каталоги',
|
||
'settings.agentAccess.actionSandbox': 'Песочница действий',
|
||
'settings.agentAccess.readWriteAccess': 'чтение + запись',
|
||
'settings.agentAccess.actionSandboxDesc':
|
||
'Рабочий каталог по умолчанию для инструментов оболочки, файлов и git.',
|
||
'settings.agentAccess.internalState': 'Внутреннее состояние',
|
||
'settings.agentAccess.agentBlocked': 'заблокировано для агента',
|
||
'settings.agentAccess.internalStateDesc':
|
||
'Базы данных памяти, сеансы, токены и другие основные данные. Недоступно для инструментов агента.',
|
||
'settings.agentAccess.approvalHistory': 'Approval history',
|
||
'settings.agentAccess.approvalHistoryDesc':
|
||
'Review past Approve / Deny decisions the agent requested.',
|
||
'settings.agentAccess.viewApprovalHistory': 'View approval history',
|
||
'settings.approvalHistory.title': 'Approval history',
|
||
'settings.approvalHistory.subtitle': 'Recent tool-approval decisions, newest first.',
|
||
'settings.approvalHistory.refresh': 'Refresh',
|
||
'settings.approvalHistory.loading': 'Loading approval history…',
|
||
'settings.approvalHistory.retry': 'Retry',
|
||
'settings.approvalHistory.emptyState': 'No approval decisions recorded yet.',
|
||
'settings.approvalHistory.errorGeneric': 'Unable to load approval history. Try again.',
|
||
'settings.approvalHistory.decidedAt': 'Decided {date}',
|
||
'settings.approvalHistory.decision.approveOnce': 'Approved once',
|
||
'settings.approvalHistory.decision.approveAlways': 'Always allowed',
|
||
'settings.approvalHistory.decision.deny': 'Denied',
|
||
'settings.appearance.title': 'Внешний вид',
|
||
'settings.appearance.themeHeading': 'Тема',
|
||
'settings.appearance.themeAria': 'Тема',
|
||
'settings.appearance.modeLight': 'Светлая',
|
||
'settings.appearance.modeLightDesc': 'Яркие поверхности, темный текст.',
|
||
'settings.appearance.modeDark': 'Темный',
|
||
'settings.appearance.modeDarkDesc':
|
||
'Тусклые поверхности, меньше раздражают глаза после наступления сумерек.',
|
||
'settings.appearance.modeSystem': 'Система соответствия',
|
||
'settings.appearance.modeSystemDesc': 'Следуйте настройкам внешнего вида вашей ОС.',
|
||
'settings.appearance.helperText':
|
||
'Темный режим переключает все приложение — чат, настройки, панели — на тусклую палитру. «Система сопоставления» следит за внешним видом вашей ОС и обновляет ее в реальном времени.',
|
||
'settings.appearance.tabBarHeading': 'Нижняя панель вкладок',
|
||
'settings.appearance.tabBarAlwaysShowLabels': 'Всегда показывать метки',
|
||
'settings.appearance.tabBarAlwaysShowLabelsDesc':
|
||
'Если этот параметр отключен, метки отображаются только при наведении курсора мыши или на активной вкладке.',
|
||
'settings.mascot.active': 'Активно',
|
||
'settings.mascot.characterDesc': 'Описание персонажа',
|
||
'settings.mascot.characterHeading': 'Персонаж',
|
||
'settings.mascot.customGifError':
|
||
'Введите HTTPS .gif URL, петлевой путь HTTP .gif URL, file:// .gif URL или локальный путь .gif.',
|
||
'settings.mascot.customGifHeading': 'Пользовательский аватар GIF',
|
||
'settings.mascot.customGifLabel': 'Пользовательский аватар GIF URL',
|
||
'settings.mascot.customGifPlaceholder': 'https://example.com/avatar.gif',
|
||
'settings.mascot.characterPreview': 'Предварительный просмотр',
|
||
'settings.mascot.characterStates': 'содержит',
|
||
'settings.mascot.characterVisemes': 'виземы',
|
||
'settings.mascot.colorAria': 'OpenHuman цвет',
|
||
'settings.mascot.colorDesc': 'Описание цвета',
|
||
'settings.mascot.colorHeading': 'Цвет',
|
||
'settings.mascot.colorBlack': 'Черный',
|
||
'settings.mascot.colorBurgundy': 'Бордовый',
|
||
'settings.mascot.colorCustom': 'Обычай',
|
||
'settings.mascot.colorNavy': 'Темно-синий',
|
||
'settings.mascot.primaryColor': 'Основной цвет',
|
||
'settings.mascot.secondaryColor': 'Вторичный цвет',
|
||
'settings.mascot.colorYellow': 'Желтый',
|
||
'settings.mascot.libraryUnavailable': 'OpenHuman библиотека недоступна',
|
||
'settings.mascot.title': 'OpenHuman',
|
||
'settings.mascot.loadingLibrary': 'Загрузка библиотеки OpenHuman…',
|
||
'settings.mascot.loadDetailError': 'Не удалось загрузить талисман.',
|
||
'settings.mascot.loadLibraryError': 'Не удалось загрузить библиотеку талисманов.',
|
||
'settings.mascot.localDefault': 'Локальный OpenHuman (по умолчанию)',
|
||
'settings.mascot.menuTitle': 'Маскот',
|
||
'settings.mascot.menuDesc': 'Выберите цвет маскота, используемый во всем приложении',
|
||
'settings.mascot.noCharacters': 'Персонажи OpenHuman пока недоступны',
|
||
'settings.mascot.noColorVariants': 'Нет цветовых вариантов',
|
||
'settings.mascot.voice.current': 'текущий',
|
||
'settings.mascot.voice.customDesc':
|
||
'Идентификаторы голосов можно найти на api.elevenlabs.io/v1/voices или в вашей панели ElevenLabs. Сохраняется только идентификатор — ваш API-ключ остаётся на бэкенде.',
|
||
'settings.mascot.voice.customHeading': 'Пользовательский идентификатор голоса',
|
||
'settings.mascot.voice.customOption': 'Другое (вставить идентификатор голоса)…',
|
||
'settings.mascot.voice.customPlaceholder': 'например. 21m00Tcm4TlvDq8ikWAM',
|
||
'settings.mascot.voice.desc':
|
||
'Выберите голос ElevenLabs, который маскот использует для устных ответов. Фильтруйте по полу, выбирайте из подобранного списка, вставьте свой идентификатор или позвольте приложению выбрать голос, соответствующий языку интерфейса.',
|
||
'settings.mascot.voice.genderFemale': 'Женский',
|
||
'settings.mascot.voice.genderHeading': 'Пол голоса',
|
||
'settings.mascot.voice.genderMale': 'Мужской',
|
||
'settings.mascot.voice.heading': 'Голос',
|
||
'settings.mascot.voice.preset': 'Предустановка голоса',
|
||
'settings.mascot.voice.presetHeading': 'Предустановка голоса',
|
||
'settings.mascot.voice.preview': 'Предпросмотр голоса',
|
||
'settings.mascot.voice.previewError': 'Не удалось воспроизвести предпросмотр голоса',
|
||
'settings.mascot.voice.previewText':
|
||
'Привет, я твой помощник. Это голосовой предварительный просмотр.',
|
||
'settings.mascot.voice.previewing': 'Воспроизведение предпросмотра…',
|
||
'settings.mascot.voice.reset': 'Сбросить к значениям по умолчанию',
|
||
'settings.mascot.voice.useLocaleDefault': 'Соответствовать языку приложения',
|
||
'settings.mascot.voice.useLocaleDefaultDesc':
|
||
'Автоматически выбрать голос для текущего языка интерфейса.',
|
||
'settings.persona.title': 'Персона',
|
||
'settings.persona.menuTitle': 'Персона',
|
||
'settings.persona.menuDesc': 'Имя, личность, аватар и голос — ваш помощник как одна личность',
|
||
'settings.persona.identityHeading': 'Личность',
|
||
'settings.persona.identityDesc':
|
||
'Отображаемое имя и краткое описание вашего помощника. Отображается в приложении; не меняет того, как рассуждает помощник.',
|
||
'settings.persona.displayNameLabel': 'Отображаемое имя',
|
||
'settings.persona.displayNamePlaceholder': 'например Новая звезда',
|
||
'settings.persona.descriptionLabel': 'Описание',
|
||
'settings.persona.descriptionPlaceholder':
|
||
'например Спокойный, лаконичный помощник для моей команды.',
|
||
'settings.persona.soul.heading': 'Личность (SOUL.md)',
|
||
'settings.persona.soul.desc':
|
||
'Личностные подсказки помощника следует в каждом разговоре. Изменения сохраняются в вашем рабочем пространстве и вступают в силу при следующем ответе.',
|
||
'settings.persona.soul.editorLabel': 'Содержимое SOUL.md',
|
||
'settings.persona.soul.reset': 'Сбросить настройки по умолчанию',
|
||
'settings.persona.soul.usingDefault': 'Использование встроенного по умолчанию',
|
||
'settings.persona.soul.loadError': 'Не удалось загрузить SOUL.md.',
|
||
'settings.persona.soul.saveError': 'Не удалось сохранить SOUL.md.',
|
||
'settings.persona.soul.resetError': 'Не удалось сбросить SOUL.md.',
|
||
'settings.persona.appearanceHeading': 'Аватар и голос',
|
||
'settings.persona.appearanceDesc':
|
||
'Цвет талисмана, пользовательский аватар GIF и голос ответа настраиваются в настройках талисмана.',
|
||
'settings.persona.openMascotSettings': 'Открыть настройки талисмана',
|
||
'settings.memoryWindow.balanced.badge': 'Рекомендуется',
|
||
'settings.memoryWindow.balanced.hint':
|
||
'Разумное значение по умолчанию — хорошая непрерывность без лишних трат токенов на каждом запуске.',
|
||
'settings.memoryWindow.balanced.label': 'Сбалансированный',
|
||
'settings.memoryWindow.description':
|
||
'Сколько запомненного контекста OpenHuman добавляет в каждый новый запуск агента. Более широкие окна дают ощущение лучшей памяти о прошлых разговорах, но используют больше токенов — и стоят дороже — на каждом запуске.',
|
||
'settings.memoryWindow.extended.badge': 'Больше контекста',
|
||
'settings.memoryWindow.extended.hint':
|
||
'Больше долгосрочной памяти на каждый запуск. Выше расход токенов за ход.',
|
||
'settings.memoryWindow.extended.label': 'Расширенный',
|
||
'settings.memoryWindow.maximum.badge': 'Самый дорогой',
|
||
'settings.memoryWindow.maximum.hint':
|
||
'Самое большое безопасное окно. Лучшая непрерывность, заметно выше расход токенов на каждом запуске.',
|
||
'settings.memoryWindow.maximum.label': 'Максимум',
|
||
'settings.memoryWindow.minimal.badge': 'Самый дешёвый',
|
||
'settings.memoryWindow.minimal.hint':
|
||
'Самое маленькое окно памяти. Дешевле, быстрее, минимальная непрерывность между запусками.',
|
||
'settings.memoryWindow.minimal.label': 'Минимальный',
|
||
'settings.memoryWindow.title': 'Окно долгосрочной памяти',
|
||
'settings.modelHealth.title': 'Модель здоровья',
|
||
'settings.modelHealth.desc':
|
||
'Качество каждой модели, уровень галлюцинаций и сравнение стоимости активных моделей.',
|
||
'settings.modelHealth.allStatuses': 'Все статусы',
|
||
'settings.modelHealth.models': 'models',
|
||
'settings.modelHealth.loading': 'Загрузка данных модели...',
|
||
'settings.modelHealth.empty': 'Ни одна модель не зарегистрирована',
|
||
'settings.modelHealth.col.model': 'Модель',
|
||
'settings.modelHealth.col.quality': 'Качество',
|
||
'settings.modelHealth.col.halluc': 'Халлюк. Ставка',
|
||
'settings.modelHealth.col.cost': 'Стоимость / выход 1 миллион',
|
||
'settings.modelHealth.col.agents': 'Агенты',
|
||
'settings.modelHealth.col.status': 'Статус',
|
||
'settings.modelHealth.badge.keep': 'Держать',
|
||
'settings.modelHealth.badge.replace': 'Заменять',
|
||
'settings.modelHealth.badge.staging': 'Постановочный тест',
|
||
'settings.modelHealth.badge.vision': 'Только видение',
|
||
'settings.modelHealth.swap': 'Менять?',
|
||
'settings.modelHealth.modal.title': 'Заменить модель?',
|
||
'settings.modelHealth.modal.hallucRate': 'Частота галлюцинаций',
|
||
'settings.modelHealth.modal.cancel': 'Отмена',
|
||
'settings.modelHealth.modal.apply': 'Применить замену',
|
||
'settings.modelHealth.tag.cheaper': 'CHEAPER',
|
||
'settings.modelHealth.tag.better': 'BETTER',
|
||
'settings.screenIntel.permissions.accessibility': 'Доступность',
|
||
'settings.screenIntel.permissions.grantHint': 'Подсказка по предоставлению',
|
||
'settings.screenIntel.permissions.inputMonitoring': 'Мониторинг ввода',
|
||
'settings.screenIntel.permissions.macosAppliesPrivacy': 'macOS применяет конфиденциальность',
|
||
'settings.screenIntel.permissions.openInputMonitoring': 'Запрос…',
|
||
'settings.screenIntel.permissions.refreshStatus': 'Обновление…',
|
||
'settings.screenIntel.permissions.refreshing': 'Обновление…',
|
||
'settings.screenIntel.permissions.requestAccessibility': 'Запрос…',
|
||
'settings.screenIntel.permissions.requestScreenRecording': 'Запрос…',
|
||
'settings.screenIntel.permissions.requesting': 'Запрос…',
|
||
'settings.screenIntel.permissions.restartRefresh': 'Перезапуск ядра…',
|
||
'settings.screenIntel.permissions.restartingCore': 'Перезапуск ядра…',
|
||
'settings.screenIntel.permissions.screenRecording': 'Запись экрана',
|
||
'settings.screenIntel.permissions.title': 'Разрешения',
|
||
'skills.card.moreActions': 'Ещё действия',
|
||
'skills.channelIcon.discord': 'Discord',
|
||
'skills.channelIcon.imessage': 'iMessage',
|
||
'skills.channelIcon.telegram': 'Telegram',
|
||
'skills.channelIcon.web': 'Интернет',
|
||
'skills.channelIcon.yuanbao': 'Yuanbao',
|
||
'skills.composio.poweredBy': 'Работает на Composio',
|
||
'skills.composio.staleStatusTitle': 'Соединения показывают устаревший статус',
|
||
'skills.create.allowedTools': 'Разрешённые инструменты',
|
||
'skills.create.allowedToolsHelp': 'Отображается в SKILL.md как',
|
||
'skills.create.allowedToolsPlaceholder': 'node_exec, fetch',
|
||
'skills.create.author': 'Автор',
|
||
'skills.create.authorPlaceholder': 'Твоё имя',
|
||
'skills.create.commaSeparated': '(через запятую)',
|
||
'skills.create.createBtn': 'Создать навык',
|
||
'skills.create.createError': 'Не удалось создать навык',
|
||
'skills.create.creating': 'Создание…',
|
||
'skills.create.description': 'Описание',
|
||
'skills.create.descriptionPlaceholder': 'Что делает этот навык?',
|
||
'skills.create.optional': '(необязательно)',
|
||
'skills.create.inputs.heading': 'Inputs',
|
||
'skills.create.inputs.help':
|
||
'Объявите параметры, необходимые навыку. Skills Runner сформирует форму для них во время выполнения.',
|
||
'skills.create.inputs.add': 'Добавить входной параметр',
|
||
'skills.create.inputs.row.name': 'Имя входного параметра',
|
||
'skills.create.inputs.row.namePlaceholder': 'например, repo',
|
||
'skills.create.inputs.row.nameError':
|
||
'Только буквы, цифры, подчёркивания и дефисы; должно начинаться с буквы.',
|
||
'skills.create.inputs.row.description': 'Описание входного параметра',
|
||
'skills.create.inputs.row.descriptionPlaceholder': 'Что вводится в это поле?',
|
||
'skills.create.inputs.row.type': 'Type',
|
||
'skills.create.inputs.row.required': 'Required',
|
||
'skills.create.inputs.row.remove': 'Удалить входной параметр',
|
||
'skills.create.inputs.type.string': 'Text',
|
||
'skills.create.inputs.type.integer': 'Number',
|
||
'skills.create.inputs.type.boolean': 'Да / Нет',
|
||
'skills.create.license': 'Лицензия',
|
||
'skills.create.licensePlaceholder': 'MIT',
|
||
'skills.create.name': 'Название',
|
||
'skills.create.namePlaceholder': 'напр. Trade Journal',
|
||
'skills.create.scope': 'Область',
|
||
'skills.create.scopeProjectHint': '/.openhuman/skills/',
|
||
'skills.create.scopeUserHint':
|
||
'Записывается в ~/.openhuman/skills/<slug>/SKILL.md — доступно во всех рабочих пространствах.',
|
||
'skills.create.slugLabel': 'Slug',
|
||
'skills.create.subtitle': 'SKILL.md',
|
||
'skills.create.tags': 'Теги',
|
||
'skills.create.tagsPlaceholder': 'торговля, исследование',
|
||
'skills.create.title': 'Новый навык',
|
||
'skills.detail.allowedTools': 'Разрешённые инструменты',
|
||
'skills.detail.author': 'Автор',
|
||
'skills.detail.bundledResources': 'Встроенные ресурсы',
|
||
'skills.detail.closeAriaLabel': 'Закрыть детали навыка',
|
||
'skills.detail.location': 'Расположение',
|
||
'skills.detail.noBundledResources': 'Встроенных ресурсов нет.',
|
||
'skills.detail.tags': 'Теги',
|
||
'skills.detail.warnings': 'Предупреждения',
|
||
'skills.install.errors.alreadyInstalledHint':
|
||
'Навык работы с этим пулеметом уже существует в рабочей области. Сначала удалите его или измените заголовок `metadata.id`/`name`.',
|
||
'skills.install.errors.alreadyInstalledTitle': 'Навык уже установлен.',
|
||
'skills.install.errors.fetchFailedHint':
|
||
'Запрос не выполнен успешно. Проверьте, что URL указывает на доступный общедоступный файл и что хост вернул ответ 2xx.',
|
||
'skills.install.errors.fetchFailedTitle': 'Ошибка получения.',
|
||
'skills.install.errors.fetchTimedOutHint':
|
||
'Удаленный хост не ответил вовремя. Попробуйте еще раз или увеличьте таймаут (1–600 с).',
|
||
'skills.install.errors.fetchTimedOutTitle': 'Время ожидания получения истекло',
|
||
'skills.install.errors.fetchTooLargeHint':
|
||
'Размер файла SKILL.md не должен превышать 1 МБ. Разделите связанные ресурсы на файлы `references/` или `scripts/` вместо их встраивания.',
|
||
'skills.install.errors.fetchTooLargeTitle': 'SKILL.md слишком велик.',
|
||
'skills.install.errors.genericHint':
|
||
'Серверная часть вернула ошибку. Необработанное сообщение показано ниже.',
|
||
'skills.install.errors.genericTitle': 'Не удалось установить навык.',
|
||
'skills.install.errors.invalidSkillHint':
|
||
'Вводный заголовок должен быть допустимым YAML с непустыми полями `name` и `description`, заканчивающимися `---`.',
|
||
'skills.install.errors.invalidSkillTitle': 'SKILL.md не анализировал',
|
||
'skills.install.errors.invalidUrlHint':
|
||
'Разрешены только общедоступные HTTPS URL. Частные узлы, узлы обратной связи и узлы метаданных блокируются.',
|
||
'skills.install.errors.invalidUrlTitle': 'URL отклонено',
|
||
'skills.install.errors.unsupportedUrlHint':
|
||
'Работают только прямые ссылки `.md`. Для GitHub ссылка на файл (github.com/owner/repo/blob/.../SKILL.md) — корни дерева и репо не установлены.',
|
||
'skills.install.errors.unsupportedUrlTitle': 'Форма URL не поддерживается.',
|
||
'skills.install.errors.writeFailedHint':
|
||
'Каталог навыков рабочей области не был доступен для записи. Проверьте разрешения файловой системы для `<workspace>/.openhuman/skills/`.',
|
||
'skills.install.errors.writeFailedTitle': 'Не удалось записать SKILL.md.',
|
||
'skills.install.fetchLog': 'Получить лог',
|
||
'skills.install.fetchingPrefix': 'Получение',
|
||
'skills.install.fetchingSuffix': 'может занять заданное вами время ожидания.',
|
||
'skills.install.installBtn': 'Установка…',
|
||
'skills.install.installComplete': 'Установка завершена',
|
||
'skills.install.installing': 'Установка…',
|
||
'skills.install.parseWarnings': 'Предупреждения парсинга',
|
||
'skills.install.rawError': 'Необработанная ошибка',
|
||
'skills.install.subtitleMiddle': 'поверх HTTPS и устанавливает его в',
|
||
'skills.install.subtitlePrefix': 'Выбирает только один',
|
||
'skills.install.subtitleSuffix': 'HTTPS; частные хосты и хосты обратной связи заблокированы.',
|
||
'skills.install.successDiscovered': 'Обнаружил {count} новых навыков.',
|
||
'skills.install.successNoNewIds':
|
||
'Навык установлен, но новые идентификаторы навыков не появились — возможно, в каталоге уже есть навык с таким же ярлыком.',
|
||
'skills.install.timeoutHint': '(секунды, необязательно)',
|
||
'skills.install.timeoutHelp':
|
||
'По умолчанию — 60 секунд. Значения за пределами 1–600 фиксируются на стороне сервера.',
|
||
'skills.install.timeoutInvalid': 'Должно быть целым числом от 1 до 600.',
|
||
'skills.install.timeoutLabel': 'Таймаут',
|
||
'skills.install.timeoutPlaceholder': '60',
|
||
'skills.install.title': 'Установить навык по URL',
|
||
'skills.install.urlHelpMiddle': 'файл.',
|
||
'skills.install.urlHelpPrefix': 'Прямая ссылка на',
|
||
'skills.install.urlHelpSuffix': 'URLs автоматически перезаписывается на',
|
||
'skills.install.urlInvalidPrefix': 'URL должен быть правильно сформированным',
|
||
'skills.install.urlInvalidSuffix': 'связь.',
|
||
'skills.install.urlLabel': 'URL навыка',
|
||
'skills.install.urlPlaceholder': 'https://raw.githubusercontent.com/owner/repo/main/SKILL.md',
|
||
'skills.meetingBots.bannerDesc': 'Описание баннера',
|
||
'skills.meetingBots.bannerTitle': 'Заголовок баннера',
|
||
'skills.meetingBots.busyTitle': 'OpenHuman занят',
|
||
'skills.meetingBots.comingSoon': 'Скоро',
|
||
'skills.meetingBots.couldNotStartTitle': 'Не удалось запустить OpenHuman',
|
||
'skills.meetingBots.displayName': 'Отображаемое имя',
|
||
'skills.meetingBots.failedToStart': 'Не удалось запустить OpenHuman.',
|
||
'skills.meetingBots.joiningMessage': 'Он должен появиться как участник через несколько секунд.',
|
||
'skills.meetingBots.joiningTitle': 'OpenHuman подключается к встрече',
|
||
'skills.meetingBots.meetingLink': 'Ссылка на встречу',
|
||
'skills.meetingBots.modalAriaLabel': 'Отправить OpenHuman на встречу',
|
||
'skills.meetingBots.modalDesc': 'Описание окна',
|
||
'skills.meetingBots.modalTitle': 'Отправить OpenHuman на встречу',
|
||
'skills.meetingBots.newBadge': 'Новое',
|
||
'skills.meetingBots.platformComingSoon': 'Поддержка {label} скоро появится.',
|
||
'skills.meetingBots.platformHints.gmeet': 'meet.google.com/abc-defg-hij',
|
||
'skills.meetingBots.platformHints.teams': 'Teams.microsoft.com/...',
|
||
'skills.meetingBots.platformHints.zoom': 'Zoom.us/j/...',
|
||
'skills.meetingBots.platforms.gmeet': 'Google Встречайте',
|
||
'skills.meetingBots.platforms.teams': 'Microsoft Teams',
|
||
'skills.meetingBots.platforms.zoom': 'Zoom',
|
||
'skills.meetingBots.sendTo': 'Отправить',
|
||
'skills.meetingBots.soonSuffix': 'скоро',
|
||
'skills.meetingBots.starting': 'Запуск…',
|
||
'skills.resource.preview.closeAriaLabel': 'Закрыть предпросмотр',
|
||
'skills.resource.preview.failed': 'Не удалось показать превью',
|
||
'skills.resource.preview.loading': 'Загрузка предпросмотра…',
|
||
'skills.resource.tree.empty': 'Встроенных ресурсов нет.',
|
||
'skills.search.placeholder': 'Поиск',
|
||
'skills.setup.autocomplete.acceptKey': 'Клавиша принятия',
|
||
'skills.setup.autocomplete.activeDesc': 'Активно',
|
||
'skills.setup.autocomplete.activeTitle': 'Автодополнение активно',
|
||
'skills.setup.autocomplete.customizeSettings': 'Настроить параметры',
|
||
'skills.setup.autocomplete.debounce': 'Задержка',
|
||
'skills.setup.autocomplete.description': 'Описание',
|
||
'skills.setup.autocomplete.enableBtn': 'Включение...',
|
||
'skills.setup.autocomplete.enableError': 'Не удалось включить автодополнение',
|
||
'skills.setup.autocomplete.enabling': 'Включение...',
|
||
'skills.setup.autocomplete.notSupported': 'Не поддерживается',
|
||
'skills.setup.autocomplete.stepEnable': 'Включить встроенные подсказки',
|
||
'skills.setup.autocomplete.stepSuccess': 'Готово к работе',
|
||
'skills.setup.autocomplete.stylePreset': 'Пресет стиля',
|
||
'skills.setup.autocomplete.stylePresetValue': 'Сбалансированный (можно изменить позже)',
|
||
'skills.setup.autocomplete.title': 'Автодополнение текста',
|
||
'skills.setup.screenIntel.activeDesc': 'Активно',
|
||
'skills.setup.screenIntel.activeTitle': 'Интеллект экрана включён',
|
||
'skills.setup.screenIntel.advancedSettings': 'Дополнительные настройки',
|
||
'skills.setup.screenIntel.allGranted': 'Все разрешения предоставлены',
|
||
'skills.setup.screenIntel.captureMode': 'Режим захвата',
|
||
'skills.setup.screenIntel.captureModeValue': 'Все окна (можно изменить позже)',
|
||
'skills.setup.screenIntel.deniedHint':
|
||
'После предоставления разрешений в Системных настройках нажми ниже для перезапуска и применения изменений.',
|
||
'skills.setup.screenIntel.enableBtn': 'Включение...',
|
||
'skills.setup.screenIntel.enableDesc':
|
||
'Видеть, что происходит на вашем экране, и передавать полезный контекст вашему агенту',
|
||
'skills.setup.screenIntel.enableError': 'Не удалось включить интеллект экрана',
|
||
'skills.setup.screenIntel.enabling': 'Включение...',
|
||
'skills.setup.screenIntel.grant': 'Открытие...',
|
||
'skills.setup.screenIntel.granted': 'Предоставлено',
|
||
'skills.setup.screenIntel.macosOnly': 'Только macOS',
|
||
'skills.setup.screenIntel.opening': 'Открытие...',
|
||
'skills.setup.screenIntel.panicHotkey': 'Экстренная горячая клавиша',
|
||
'skills.setup.screenIntel.permAccessibility': 'Доступность',
|
||
'skills.setup.screenIntel.permInputMonitoring': 'Мониторинг ввода',
|
||
'skills.setup.screenIntel.permScreenRecording': 'Запись экрана',
|
||
'skills.setup.screenIntel.permissionsDesc': 'Описание разрешений',
|
||
'skills.setup.screenIntel.permissionPathLabel': 'macOS применяет конфиденциальность к:',
|
||
'skills.setup.screenIntel.refreshStatus': 'Обновить статус',
|
||
'skills.setup.screenIntel.restartRefresh': 'Перезапуск...',
|
||
'skills.setup.screenIntel.restarting': 'Перезапуск...',
|
||
'skills.setup.screenIntel.stepEnable': 'Включить навык',
|
||
'skills.setup.screenIntel.stepPermissions': 'Предоставить разрешения',
|
||
'skills.setup.screenIntel.stepSuccess': 'Готово к работе',
|
||
'skills.setup.screenIntel.title': 'Интеллект экрана',
|
||
'skills.setup.screenIntel.visionModel': 'Визуальная модель',
|
||
'skills.setup.voice.activation': 'Активация',
|
||
'skills.setup.voice.activeDescPrefix': 'Fn',
|
||
'skills.setup.voice.activeDescSuffix': 'Fn',
|
||
'skills.setup.voice.activeTitle': 'Голосовой интеллект активен',
|
||
'skills.setup.voice.customizeSettings': 'Настроить параметры',
|
||
'skills.setup.voice.downloadSttBtn': 'Скачать STT-модель',
|
||
'skills.setup.voice.enableDesc': 'Включить',
|
||
'skills.setup.voice.hotkey': 'Горячая клавиша',
|
||
'skills.setup.voice.startBtn': 'Запуск...',
|
||
'skills.setup.voice.startError': 'Не удалось запустить голосовой сервер',
|
||
'skills.setup.voice.starting': 'Запуск...',
|
||
'skills.setup.voice.stepEnable': 'Запустить голосовой сервер',
|
||
'skills.setup.voice.stepSetup': 'Требуется загрузка модели',
|
||
'skills.setup.voice.stepSuccess': 'Готово к работе',
|
||
'skills.setup.voice.sttNotReady': 'Модель распознавания речи не готова',
|
||
'skills.setup.voice.sttNotReadyDesc':
|
||
'Голосовой интеллект требует локальной модели Whisper для транскрипции. Скачай её в настройках локальной модели.',
|
||
'skills.setup.voice.sttReady': 'Модель распознавания речи готова',
|
||
'skills.setup.voice.sttReturnHint': 'Подсказка возврата STT',
|
||
'skills.setup.voice.title': 'Голосовой интеллект',
|
||
'skills.uninstall.couldNotUninstall': 'Не удалось удалить',
|
||
'skills.uninstall.description':
|
||
'Это навсегда удалит каталог навыка и все его ресурсы. Агент перестанет видеть его на следующем ходу.',
|
||
'skills.uninstall.title': 'Удалить',
|
||
'skills.uninstall.uninstallBtn': 'Удалить',
|
||
'skills.uninstall.uninstalling': 'Удаление…',
|
||
'upsell.global.limitMessage': 'Улучши план или пополни кредиты для продолжения',
|
||
'upsell.global.limitTitle': 'Ты',
|
||
'upsell.global.nearLimitMessage':
|
||
'Ты использовал {pct}% лимита. Улучши план для увеличения лимитов.',
|
||
'upsell.global.nearLimitTitle': 'Лимит использования близко',
|
||
'upsell.usageLimit.bodyBudget':
|
||
'Вы достигли недельного лимита.{reset} Обновите план или пополните кредиты, чтобы избежать ограничений.',
|
||
'upsell.usageLimit.bodyRate':
|
||
'Вы достигли 10-часового лимита частоты инференса.{reset} Обновите план для более высоких лимитов.',
|
||
'upsell.usageLimit.heading': 'Лимит использования достигнут',
|
||
'upsell.usageLimit.notNow': 'Не сейчас',
|
||
'upsell.usageLimit.perWindow': '{amount}',
|
||
'upsell.usageLimit.planIncludes': '{plan}',
|
||
'upsell.usageLimit.resetsIn': 'Сбросится {time}.',
|
||
'upsell.usageLimit.upgradePlan': 'Улучшить план',
|
||
'upsell.usageLimit.weeklyInference': '{amount}',
|
||
'walkthrough.tooltip.letsGo': 'Поехали!',
|
||
'walkthrough.tooltip.next': 'Далее →',
|
||
'walkthrough.tooltip.skip': 'Пропустить тур',
|
||
'walkthrough.tooltip.stepCounter': '{n} из {total}',
|
||
'webhooks.activity.empty': 'Пусто',
|
||
'webhooks.activity.title': 'Последняя активность',
|
||
'webhooks.composioHistory.empty': 'Пусто',
|
||
'webhooks.composioHistory.metadataId': 'ID метаданных',
|
||
'webhooks.composioHistory.metadataUuid': 'UUID метаданных',
|
||
'webhooks.composioHistory.payload': 'Полезная нагрузка',
|
||
'webhooks.composioHistory.title': 'История триггеров ComposeIO',
|
||
'webhooks.tunnels.active': 'Активно',
|
||
'webhooks.tunnels.createFailed': 'Не удалось создать туннель',
|
||
'webhooks.tunnels.creating': 'Создание...',
|
||
'webhooks.tunnels.deleteFailed': 'Не удалось удалить туннель',
|
||
'webhooks.tunnels.descriptionPlaceholder': 'Описание (необязательно)',
|
||
'webhooks.tunnels.echo': 'Эхо',
|
||
'webhooks.tunnels.empty': 'Пусто',
|
||
'webhooks.tunnels.enableEcho': 'Включить эхо',
|
||
'webhooks.tunnels.inactive': 'Неактивно',
|
||
'webhooks.tunnels.namePlaceholder': 'Название туннеля (напр. telegram-bot)',
|
||
'webhooks.tunnels.newTunnel': 'Новый туннель',
|
||
'webhooks.tunnels.removeEcho': 'Убрать эхо',
|
||
'webhooks.tunnels.title': 'Вебхук-туннели',
|
||
'webhooks.tunnels.toggleFailed': 'Не удалось переключить эхо',
|
||
'composio.directModeRequiresKey': 'Не удалось сохранить. Прямой режим требует непустой API-ключ.',
|
||
'composio.integrationSlugsHelp': 'Интеграция через запятую слизни, напр.',
|
||
'composio.integrationSlugsExample': 'gmail, slack',
|
||
'composio.integrationSlugsCaseInsensitive': 'Регистронезависим.',
|
||
'composio.integrationSlugsPlaceholder': 'gmail, slack, ...',
|
||
'composio.notYetRouted': 'пока не маршрутизируется',
|
||
'composio.triggers.loading': 'Загрузка…',
|
||
'conversations.taskKanban.todo': 'К выполнению',
|
||
'chat.addReaction': 'Добавить реакцию',
|
||
'chat.agentProfile.create': 'Создать профиль агента',
|
||
'chat.agentProfile.createFailed': 'Не удалось создать профиль агента.',
|
||
'chat.agentProfile.customDescription': 'Пользовательский профиль агента',
|
||
'chat.agentProfile.defaultAgentLabel': 'Оркестратор',
|
||
'chat.agentProfile.exists': 'Профиль агента «{name}» уже существует.',
|
||
'chat.agentProfile.label': 'Профиль агента',
|
||
'chat.agentProfile.namePlaceholder': 'Имя профиля',
|
||
'chat.agentProfile.promptStylePlaceholder': 'Стиль подсказки',
|
||
'chat.agentProfile.allowedToolsPlaceholder': 'Разрешенные инструменты',
|
||
'chat.backToThread': 'вернуться к {title}',
|
||
'chat.parentThread': 'родительский поток',
|
||
'chat.removeReaction': 'Удалить {emoji}',
|
||
'settings.composio.loading': 'Загрузка…',
|
||
'settings.mascot.noCharactersAvailable': 'Персонажи OpenHuman пока недоступны',
|
||
'skills.uninstall.confirmTitle': 'Удалить {name}?',
|
||
'conversations.taskKanban.blocked': 'Заблокировано',
|
||
'conversations.taskKanban.done': 'Готово',
|
||
'conversations.taskKanban.pending': 'В ожидании',
|
||
'conversations.taskKanban.working': 'Работающий',
|
||
'conversations.taskKanban.awaitingApproval': 'Ожидает одобрения',
|
||
'conversations.taskKanban.ready': 'Готовый',
|
||
'conversations.taskKanban.rejected': 'Отклоненный',
|
||
'conversations.taskKanban.inProgress': 'В работе',
|
||
'intelligence.memoryChunk.detail.copiedHint': 'скопировано',
|
||
'settings.composio.notYetRouted': 'пока не маршрутизируется',
|
||
'settings.localModel.download.manageExternal':
|
||
'Управляйте этой моделью во внешней среде выполнения.',
|
||
'settings.localModel.status.manageOllamaExternal':
|
||
'Управляйте процессом Ollama и загрузкой моделей вне OpenHuman, затем повторите диагностику.',
|
||
'settings.localModel.status.ollamaDocs': 'Документация Ollama',
|
||
'settings.localModel.status.thenRetry':
|
||
'для инструкций по настройке, затем повторите, когда среда выполнения станет доступна.',
|
||
'devOptions.menuAi': 'Конфигурация AI',
|
||
'devOptions.menuAiDesc':
|
||
'Облачные поставщики, локальные модели Ollama и маршрутизация для каждой рабочей нагрузки',
|
||
'devOptions.menuScreenAware': 'Функция Screen Aware',
|
||
'devOptions.menuScreenAwareDesc':
|
||
'Разрешения на захват экрана, мониторинг политика и элементы управления сеансом',
|
||
'devOptions.menuMessaging': 'Каналы обмена сообщениями',
|
||
'devOptions.menuMessagingDesc':
|
||
'Настройка режимов аутентификации Telegram/Discord и маршрутизации каналов по умолчанию',
|
||
'devOptions.menuTools': 'Инструменты',
|
||
'devOptions.menuToolsDesc':
|
||
'Включение или отключение возможностей, которые OpenHuman может использовать от вашего имени',
|
||
'devOptions.menuAgentChat': 'Чат агента',
|
||
'devOptions.menuAgentChatDesc':
|
||
'Диалог агента тестирования с переопределением модели и температуры',
|
||
'devOptions.menuCronJobs': 'Задания Cron',
|
||
'devOptions.menuCronJobsDesc':
|
||
'Просмотр и настройка запланированных заданий для навыков выполнения',
|
||
'devOptions.menuLocalModelDebug': 'Отладка локальной модели',
|
||
'devOptions.menuLocalModelDebugDesc':
|
||
'Конфигурация Ollama, загрузка ресурсов, тесты моделей и диагностика',
|
||
'devOptions.menuWebhooksDebug': 'Веб-перехватчики',
|
||
'devOptions.menuWebhooksDebugDesc':
|
||
'Проверка регистрации веб-перехватчиков во время выполнения и записанные журналы запросов',
|
||
'devOptions.menuIntelligence': 'Аналитика',
|
||
'devOptions.menuIntelligenceDesc':
|
||
'Рабочая область памяти, механизм подсознания, сны и настройки',
|
||
'devOptions.menuNotificationRouting': 'Маршрутизация уведомлений',
|
||
'devOptions.menuNotificationRoutingDesc':
|
||
'Оценка важности ИИ и эскалация оркестратора для предупреждений интеграции',
|
||
'devOptions.menuComposeIOTriggers': 'Триггеры ComposeIO',
|
||
'devOptions.menuComposeIOTriggersDesc': 'Просмотр истории и архива триггеров ComposeIO.',
|
||
'devOptions.menuComposioRouting': 'Composio Маршрутизация (прямой режим)',
|
||
'devOptions.menuComposioRoutingDesc':
|
||
'Используйте свой собственный ключ Composio API и направляйте вызовы непосредственно на backend.composio.dev',
|
||
'devOptions.menuComposioTriggers': 'Интеграция Триггеры',
|
||
'devOptions.menuComposioTriggersDesc':
|
||
'Настройка параметров сортировки AI для триггеров интеграции Composio',
|
||
'memory.sourceFilterAria': 'Фильтровать по источнику',
|
||
'calls.comingSoonDescription': 'Звонки с поддержкой ИИ скоро появятся. Следите за обновлениями.',
|
||
'whatsapp.title': 'WhatsApp',
|
||
'subconscious.interval.fiveMinutes': '5 минут',
|
||
'subconscious.interval.tenMinutes': '10 минут',
|
||
'subconscious.interval.fifteenMinutes': '15 минут',
|
||
'subconscious.interval.thirtyMinutes': '30 минут',
|
||
'subconscious.interval.oneHour': '1 час',
|
||
'subconscious.interval.sixHours': '6 часов',
|
||
'subconscious.interval.twelveHours': '12 часов',
|
||
'subconscious.interval.oneDay': '1 день',
|
||
'subconscious.priority.critical': 'критический',
|
||
'subconscious.priority.important': 'важный',
|
||
'subconscious.priority.normal': 'нормальный',
|
||
'subconscious.durationSeconds': '{seconds} с',
|
||
'subconscious.durationMilliseconds': '{milliseconds} мс',
|
||
'settings.appearance': 'Внешний вид',
|
||
'settings.appearanceDesc': 'Выберите светлую, темную или соответствующую теме вашей системы.',
|
||
'settings.mascot': 'Талисман',
|
||
'settings.mascotDesc': 'Выберите цвет талисмана, используемый в приложении.',
|
||
'pages.settings.account.walletBalances': 'Баланс кошелька',
|
||
'pages.settings.account.walletBalancesDesc':
|
||
'Просмотр мультичейн-балансов вашего локального кошелька',
|
||
'walletBalances.title': 'Баланс кошелька',
|
||
'walletBalances.refresh': 'Refresh',
|
||
'walletBalances.loading': 'Загрузка балансов…',
|
||
'walletBalances.retry': 'Retry',
|
||
'walletBalances.emptyState':
|
||
'Аккаунтов кошелька пока нет — настройте кошелёк в разделе «Фраза восстановления».',
|
||
'walletBalances.copyAddress': 'Копировать адрес',
|
||
'walletBalances.providerMissing': 'провайдер недоступен',
|
||
'walletBalances.rawBalance': 'Исходный: {raw}',
|
||
'walletBalances.errorGeneric':
|
||
'Не удалось загрузить балансы кошелька. Настройте кошелёк в разделе «Фраза восстановления» и повторите попытку.',
|
||
'walletBalances.setupHint':
|
||
'Ваша фраза восстановления ещё не настроена. Настройте её, чтобы включить кошелёк и видеть актуальные балансы.',
|
||
'walletBalances.setupCta': 'Настроить фразу восстановления',
|
||
'walletBalances.notSetUp': 'Не настроено',
|
||
'walletBalances.send': 'Отправить',
|
||
'walletBalances.receive': 'Получить',
|
||
'walletReceive.scanHint':
|
||
'Отсканируйте этот код или скопируйте адрес ниже, чтобы получить средства.',
|
||
'walletReceive.addressLabel': 'Адрес {network}',
|
||
'walletReceive.onlyChainWarning':
|
||
'Отправляйте на этот адрес только активы сети {network}. Отправка активов из другой сети может привести к безвозвратной потере.',
|
||
'walletSend.available': 'Доступно',
|
||
'walletSend.recipient': 'Адрес получателя',
|
||
'walletSend.recipientPlaceholder': 'Вставьте адрес назначения',
|
||
'walletSend.recipientRequired': 'Введите адрес получателя',
|
||
'walletSend.amount': 'Сумма',
|
||
'walletSend.invalidAmount': 'Введите корректную сумму',
|
||
'walletSend.review': 'Проверить',
|
||
'walletSend.preparing': 'Подготовка…',
|
||
'walletSend.confirmHint':
|
||
'Проверьте детали ниже. Подпись выполняется локально — ничего не отправляется, пока вы не подтвердите.',
|
||
'walletSend.estimatedFee': 'Ориентировочная комиссия сети',
|
||
'walletSend.confirmSend': 'Подтвердить и отправить',
|
||
'walletSend.sending': 'Отправка…',
|
||
'walletSend.sent': 'Транзакция отправлена',
|
||
'walletSend.txHash': 'Хеш транзакции',
|
||
'walletSend.viewExplorer': 'Открыть в обозревателе',
|
||
'walletSend.done': 'Готово',
|
||
'walletSend.genericError': 'Не удалось выполнить перевод. Повторите попытку.',
|
||
'settings.taskSources.title': 'Источники задач',
|
||
'settings.taskSources.subtitle': 'Переносите задачи из своих инструментов на доску задач агента.',
|
||
'settings.taskSources.description':
|
||
'Собирайте рабочие элементы из GitHub, Notion, Linear и ClickUp, обогащайте их и направляйте на доску задач агента.',
|
||
'settings.taskSources.connectHint':
|
||
'Источники задач используют ваши подключенные учетные записи. Сначала подключите их в разделе «Интеграции».',
|
||
'settings.taskSources.disabledBanner':
|
||
'Источники задач отключены в настройках. Разрешите им автоматически проводить опросы.',
|
||
'settings.taskSources.loadError': 'Не удалось загрузить источники задач.',
|
||
'settings.taskSources.addTitle': 'Добавить источник задачи',
|
||
'settings.taskSources.provider': 'Поставщик',
|
||
'settings.taskSources.name': 'Имя (необязательно)',
|
||
'settings.taskSources.namePlaceholder': 'например Мои открытые вопросы',
|
||
'settings.taskSources.github.repo': 'Репозиторий (владелец/имя, необязательно)',
|
||
'settings.taskSources.github.labels': 'Ярлыки (через запятую)',
|
||
'settings.taskSources.notion.database': 'Идентификатор базы данных (доски)',
|
||
'settings.taskSources.linear.team': 'Идентификатор команды (необязательно)',
|
||
'settings.taskSources.clickup.team': 'Идентификатор рабочей области (команды) (необязательно)',
|
||
'settings.taskSources.assignedToMe': 'Только элементы, назначенные мне',
|
||
'settings.taskSources.add': 'Добавить источник',
|
||
'settings.taskSources.adding': 'Добавление…',
|
||
'settings.taskSources.preview': 'Предварительный просмотр',
|
||
'settings.taskSources.previewResult': 'Задачи {count} соответствуют этому фильтру',
|
||
'settings.taskSources.fetchNow': 'Получить сейчас',
|
||
'settings.taskSources.fetching': 'Получение…',
|
||
'settings.taskSources.fetchResult': 'Маршрутизация {routed} из задач {fetched}',
|
||
'settings.taskSources.configured': 'Настроенные источники',
|
||
'settings.taskSources.empty': 'Источники задач пока не настроены.',
|
||
'settings.taskSources.proactive': 'Проактивный',
|
||
'settings.taskSources.lastFetch': 'Последняя выборка',
|
||
'settings.taskSources.never': 'Никогда',
|
||
'settings.taskSources.statusEnabled': 'Включено',
|
||
'settings.taskSources.statusDisabled': 'Неполноценный',
|
||
'settings.taskSources.enable': 'Давать возможность',
|
||
'settings.taskSources.disable': 'Запрещать',
|
||
'settings.taskSources.remove': 'Удалять',
|
||
'settings.taskSources.removeConfirm':
|
||
'Удалить этот источник задачи? Вся загруженная история задач будет удалена, и ее нельзя будет отменить.',
|
||
'settings.taskSources.refresh': 'Обновить',
|
||
'settings.taskSources.providers.github': 'GitHub',
|
||
'settings.taskSources.providers.notion': 'Понятие',
|
||
'settings.taskSources.providers.linear': 'Линейный',
|
||
'settings.taskSources.providers.clickup': 'КликАп',
|
||
'skills.dashboard.title': 'Skills',
|
||
'skills.dashboard.scheduledHeading': 'Запланированные навыки',
|
||
'skills.dashboard.emptyTitle': 'Нет запланированных навыков',
|
||
'skills.dashboard.emptyBody':
|
||
'Запустите встроенный навык однократно или сохраните расписание, чтобы увидеть его здесь.',
|
||
'skills.dashboard.create': 'Создать навык',
|
||
'skills.dashboard.run': 'Запустить навык',
|
||
'skills.dashboard.enable': 'Включить запланированный навык',
|
||
'skills.dashboard.disable': 'Отключить запланированный навык',
|
||
'skills.dashboard.lastRun': 'Последний запуск',
|
||
'skills.dashboard.nextRun': 'Следующий запуск',
|
||
'skills.dashboard.cardOpenRunner': 'Открыть в исполнителе',
|
||
'skills.dashboard.loadError': 'Не удалось загрузить запланированные навыки',
|
||
'skills.new.title': 'Создать навык',
|
||
'skills.new.placeholderBody':
|
||
'Форма создания скоро появится. Пока используйте кнопку «Новый навык» на странице исполнителя.',
|
||
'settings.agents.title': 'Агенты',
|
||
'settings.agents.subtitle':
|
||
'Управляйте агентами, доступными для делегирования — встроенными агентами по умолчанию и вашими собственными агентами.',
|
||
'settings.agents.menuDesc': 'Управление встроенными и пользовательскими агентами',
|
||
'settings.agents.newAgent': 'Новый агент',
|
||
'settings.agents.loadError': 'Не удалось загрузить агенты',
|
||
'settings.agents.empty': 'Агентов пока нет',
|
||
'settings.agents.sourceDefault': 'Встроенный',
|
||
'settings.agents.sourceCustom': 'Обычай',
|
||
'settings.agents.enable': 'Включить агент',
|
||
'settings.agents.disable': 'Отключить агент',
|
||
'settings.agents.edit': 'Редактировать',
|
||
'settings.agents.delete': 'Удалить',
|
||
'settings.agents.reset': 'Сбросить настройки по умолчанию',
|
||
'settings.agents.modelLabel': 'Модель',
|
||
'settings.agents.toolsLabel': 'Инструменты',
|
||
'settings.agents.toolsAll': 'Все инструменты',
|
||
'settings.agents.toolsCount': '{count} инструменты',
|
||
'settings.agents.actionFailed': 'Не удалось обновить агент',
|
||
'settings.agents.orchestratorLocked': 'Оркестратор всегда включен.',
|
||
'settings.agents.editor.createTitle': 'Новый агент',
|
||
'settings.agents.editor.editTitle': 'Редактировать агента',
|
||
'settings.agents.editor.id': 'ID',
|
||
'settings.agents.editor.idHint': 'Только строчные буквы, цифры, _ и -.',
|
||
'settings.agents.editor.name': 'Имя',
|
||
'settings.agents.editor.description': 'Описание',
|
||
'settings.agents.editor.model': 'Модель (необязательно)',
|
||
'settings.agents.editor.modelPlaceholder':
|
||
'например наследовать, подсказку: быстро или идентификатор модели',
|
||
'settings.agents.editor.systemPrompt': 'Системное приглашение (необязательно)',
|
||
'settings.agents.editor.tools': 'Разрешенные инструменты',
|
||
'settings.agents.editor.toolsHint':
|
||
'Одно имя инструмента в строке. Используйте * для всех инструментов.',
|
||
'settings.agents.editor.defaultsNote':
|
||
'При редактировании встроенного агента сохраняется переопределение, которое можно сбросить позже.',
|
||
'settings.agents.editor.save': 'Сохранять',
|
||
'settings.agents.editor.create': 'Создать агента',
|
||
'settings.agents.editor.saving': 'Сохранение…',
|
||
'nav.workflows': 'Workflows',
|
||
'workflows.title': 'Agent Workflows',
|
||
'workflows.subtitle': 'Lifecycle-bound rule sets that guide how the agent behaves during tasks.',
|
||
'workflows.createNew': 'New Workflow',
|
||
'workflows.listHeading': 'Workflows',
|
||
'workflows.delete': 'Delete Workflow',
|
||
'workflows.deleteError': 'Failed to delete workflow',
|
||
'workflows.warnings': '{count} warning(s)',
|
||
'workflows.empty.title': 'No workflows yet',
|
||
'workflows.empty.body':
|
||
'Create a workflow to define rules and scripts for task lifecycle phases.',
|
||
'workflows.create.title': 'New Workflow',
|
||
'workflows.create.subtitle': 'Define a lifecycle-bound rule set for the agent.',
|
||
'workflows.create.name': 'Name',
|
||
'workflows.create.namePlaceholder': 'e.g. Python project workflow',
|
||
'workflows.create.description': 'Description',
|
||
'workflows.create.descriptionPlaceholder': 'What does this workflow do?',
|
||
'workflows.create.whenToUse': 'When to use',
|
||
'workflows.create.whenToUsePlaceholder': 'When should the agent pick up this workflow?',
|
||
'workflows.create.optional': '(optional)',
|
||
'workflows.create.createBtn': 'Create workflow',
|
||
'workflows.create.creating': 'Creating…',
|
||
'workflows.create.createError': 'Could not create workflow',
|
||
'workflows.create.successTitle': 'Workflow created',
|
||
'workflows.create.successMessage': 'was created successfully.',
|
||
'workflows.deleteConfirm.title': 'Delete workflow',
|
||
'workflows.deleteConfirm.body': 'Remove "{name}"? This cannot be undone.',
|
||
'workflows.detail.tags': 'Tags',
|
||
'workflows.detail.location': 'Location',
|
||
'workflows.detail.warnings': 'Warnings',
|
||
'workflows.detail.phases': 'Phases',
|
||
'workflows.detail.noPhases': 'No phases defined.',
|
||
'workflows.detail.loadError': 'Failed to load full workflow',
|
||
'workflows.phase.rules': 'Rules',
|
||
'workflows.phase.rules.empty': 'No rules.',
|
||
'workflows.phase.scripts': 'Scripts',
|
||
'workflows.phase.scripts.empty': 'No scripts.',
|
||
'workflows.phase.toolScope': 'Tool scope',
|
||
'workflows.phase.toolScope.allow': 'Allow',
|
||
'workflows.phase.toolScope.deny': 'Deny',
|
||
'workflows.phase.toolScope.inherited': 'Inherited from workflow default.',
|
||
'workflows.phase.toolScope.empty': 'No tool restrictions.',
|
||
'workflows.phase.context': 'Context',
|
||
'workflows.phase.context.empty': 'No context providers.',
|
||
'settings.agentsSection.title': 'Agents',
|
||
'settings.agentsSection.description':
|
||
'Управляйте агентами, их автономностью и доступом к ресурсам компьютера.',
|
||
'settings.agentsSection.menuDesc': 'Реестр, автономность и доступ к ОС',
|
||
'settings.cryptoSection.title': 'Крипто',
|
||
'settings.cryptoSection.description':
|
||
'Управляйте секретной фразой восстановления и просматривайте балансы своих кошельковых счетов.',
|
||
'settings.cryptoSection.menuDesc': 'Фраза восстановления и балансы кошелька',
|
||
'settings.notificationsHub.title': 'Уведомления',
|
||
'settings.notificationsHub.description':
|
||
'Просматривайте папку оповещений и управляйте настройками уведомлений и маршрутизацией.',
|
||
'settings.notificationsHub.menuDesc': 'Папка оповещений и настройки уведомлений',
|
||
'settings.notificationsHub.settingsItem': 'Настройки уведомлений',
|
||
'settings.notificationsHub.settingsItemDesc': 'Настройки и маршрутизация',
|
||
'settings.agents.editor.notFound': 'Агент не найден.',
|
||
'settings.agents.editor.modelInherit': 'Унаследовать (системное по умолчанию)',
|
||
'settings.agents.editor.modelHints': 'Подсказки маршрутизации',
|
||
'settings.agents.editor.modelTiers': 'Уровни моделей',
|
||
'settings.agents.editor.modelCustom': 'Идентификатор модели…',
|
||
'settings.agents.editor.modelCustomPlaceholder': 'напр. anthropic/claude-sonnet-4',
|
||
'settings.agents.editor.selectTools': 'Добавить инструменты',
|
||
'settings.agents.editor.toolsAllSelected': 'Все инструменты',
|
||
'settings.agents.editor.toolsNoneSelected': 'Инструменты не выбраны',
|
||
'settings.agents.editor.removeToolAria': 'Удалить {tool}',
|
||
'settings.agents.editor.toolsModalTitle': 'Разрешённые инструменты',
|
||
'settings.agents.editor.toolsSelectedCount': 'Выбрано: {count}',
|
||
'settings.agents.editor.toolsSearchPlaceholder': 'Поиск инструментов…',
|
||
'settings.agents.editor.toolsAllowAll': 'Разрешить все инструменты (*)',
|
||
'settings.agents.editor.toolsAllowAllHint':
|
||
'Этот агент может использовать любой доступный инструмент.',
|
||
'settings.agents.editor.toolsLoading': 'Загрузка инструментов…',
|
||
'settings.agents.editor.toolsLoadError': 'Не удалось загрузить инструменты',
|
||
'settings.agents.editor.toolsEmpty': 'Инструменты по вашему запросу не найдены.',
|
||
'settings.agents.editor.toolsDone': 'Done',
|
||
'settings.agents.editor.builtInReadonly':
|
||
'Встроенные агенты нельзя редактировать. Вы можете включить, отключить или сбросить их в списке агентов.',
|
||
'autocomplete.debounceMs': 'Задержка (мс)',
|
||
'autocomplete.maxChars': 'Макс. символов контекста',
|
||
'autocomplete.overlayTtlMs': 'Тайм-аут наложения (мс)',
|
||
'memory.tab.council': 'Council',
|
||
'modelCouncil.title': 'Model Council',
|
||
'modelCouncil.intro':
|
||
'Ask one question, get independent answers from several models in parallel, then a chair model synthesizes where they agree, where they disagree, and what each uniquely adds.',
|
||
'modelCouncil.questionLabel': 'Question',
|
||
'modelCouncil.questionPlaceholder': 'Ask the council a question…',
|
||
'modelCouncil.membersLabel': 'Member models',
|
||
'modelCouncil.maxMembersNote': 'up to {max}',
|
||
'modelCouncil.memberPlaceholder': 'e.g. gpt-5.2',
|
||
'modelCouncil.memberAria': 'Member model {n}',
|
||
'modelCouncil.removeMemberAria': 'Remove member model {n}',
|
||
'modelCouncil.addMember': '+ Add model',
|
||
'modelCouncil.chairLabel': 'Chair model',
|
||
'modelCouncil.chairPlaceholder': 'e.g. claude-opus-4-8',
|
||
'modelCouncil.chairHelp': 'The chair reads every member answer and writes the synthesis.',
|
||
'modelCouncil.run': 'Convene council',
|
||
'modelCouncil.running': 'Convening…',
|
||
'modelCouncil.runningHint': 'Querying members in parallel, then synthesizing…',
|
||
'modelCouncil.errorPrefix': 'Council failed:',
|
||
'modelCouncil.resultsHeading': 'Council results',
|
||
'modelCouncil.memberAnswered': 'Answered',
|
||
'modelCouncil.memberFailed': 'Failed',
|
||
'modelCouncil.synthesisHeading': 'Synthesis',
|
||
'modelCouncil.synthesisBy': 'by {model}',
|
||
'graphCohesion.brokerBadge': 'брокер',
|
||
'graphCohesion.brokerTitle':
|
||
'Структурная дыра: соседи этой сущности не связаны друг с другом — она единственная связь между ними.',
|
||
'graphCohesion.colCohesion': 'Связность',
|
||
'graphCohesion.colEntity': 'Сущность',
|
||
'graphCohesion.colLinks': 'Связки',
|
||
'graphCohesion.colRank': '#',
|
||
'graphCohesion.empty': 'Пока нет графа знаний.',
|
||
'graphCohesion.emptyHint':
|
||
'По мере того как ассистент фиксирует связанные факты о вас, здесь появится их кластерная структура.',
|
||
'graphCohesion.errorPrefix': 'Не удалось загрузить граф:',
|
||
'graphCohesion.intro':
|
||
'Насколько плотно сплетено окружение каждой сущности. Брокеры — сущности, чьи соседи не связаны друг с другом, — это единичные точки, удерживающие вместе иначе разделённые кластеры, чего сортировка по частоте или PageRank не вскроет.',
|
||
'graphCohesion.loading': 'Вычисление связности…',
|
||
'graphCohesion.metricConnections': 'Связи',
|
||
'graphCohesion.metricEntities': 'Сущности',
|
||
'graphCohesion.metricTriangles': 'Треугольники',
|
||
'graphCohesion.namespaceAll': 'Все пространства имён',
|
||
'graphCohesion.namespaceLabel': 'Пространство имён',
|
||
'graphCohesion.noBrokers': 'Пока нет сущностей с двумя или более связями.',
|
||
'graphCohesion.rankedHeading': 'Брокеры — самые разреженные окрестности',
|
||
'graphCohesion.retry': 'Повторить',
|
||
'graphCohesion.summaryCaption': 'Средняя кластеризация {avg} · транзитивность {transitivity}',
|
||
'graphCohesion.title': 'Связность графа',
|
||
'memory.tab.cohesion': 'Cohesion',
|
||
|
||
'keyring.consent.title': 'Безопасное хранилище недоступно',
|
||
'keyring.consent.description':
|
||
'Связка ключей вашей операционной системы недоступна. OpenHuman необходимо ваше разрешение на хранение секретов в локальном зашифрованном хранилище.',
|
||
'keyring.consent.reasonPrefix': 'Причина:',
|
||
'keyring.consent.showDetails': 'Что это значит?',
|
||
'keyring.consent.hideDetails': 'Скрыть подробности',
|
||
'keyring.consent.tradeoffTitle': 'Компромисс безопасности',
|
||
'keyring.consent.tradeoffBody':
|
||
'При локальном зашифрованном хранении ваши секреты шифруются на диске с помощью мастер-ключа, который хранится рядом с данными. Это менее безопасно, чем связка ключей ОС, которая использует аппаратную защиту. Резервные копии или синхронизация файлов могут включать зашифрованные данные.',
|
||
'keyring.consent.consentButton': 'Использовать локальное зашифрованное хранилище',
|
||
'keyring.consent.retryButton': 'Повторить OS Keychain',
|
||
'keyring.consent.declineButton': 'Отклонить',
|
||
'keyring.consent.retrying': 'Повторная попытка…',
|
||
'keyring.consent.error': 'Не удалось сохранить настройку. Попробуйте снова.',
|
||
'keyring.consent.retryFailed': 'Связка ключей по-прежнему недоступна.',
|
||
'keyring.settings.title': 'Безопасность',
|
||
'keyring.settings.storageMode': 'Режим хранения секретов',
|
||
'keyring.settings.mode.osKeychain': 'Связка ключей ОС',
|
||
'keyring.settings.mode.encryptedFile': 'Локальное шифрование',
|
||
'keyring.settings.mode.consentPending': 'Не настроено',
|
||
'keyring.settings.mode.declined': 'Отклонено',
|
||
'keyring.settings.availability': 'Доступность связки ключей',
|
||
'keyring.settings.available': 'Связка ключей ОС доступна',
|
||
'keyring.settings.unavailable': 'Связка ключей ОС недоступна',
|
||
'keyring.settings.backend': 'Движок',
|
||
'keyring.settings.retryButton': 'Повторить обнаружение связки ключей',
|
||
'keyring.settings.retryFailed':
|
||
'Повторная попытка не удалась. Связка ключей по-прежнему недоступна.',
|
||
'keyring.settings.consentTitle': 'Согласие на хранение',
|
||
'keyring.settings.consentDescription':
|
||
'Выберите способ хранения секретов, когда связка ключей ОС недоступна.',
|
||
'keyring.settings.grantConsent': 'Разрешить локальное зашифрованное хранилище',
|
||
'keyring.settings.revokeConsent': 'Отклонить локальное хранилище',
|
||
'pages.settings.account.security': 'Безопасность',
|
||
'pages.settings.account.securityDesc': 'Режим хранения секретов и статус связки ключей',
|
||
};
|
||
|
||
export default messages;
|