feat(i18n): add Russian (ru) localization support (#798)

This commit is contained in:
AlexZander85
2026-04-10 10:47:42 +05:00
committed by GitHub
Unverified
parent fc9e37c4a3
commit 66b2ddb2dc
22 changed files with 1926 additions and 4 deletions

View File

@@ -39,10 +39,22 @@ import jaSkills from './locales/ja/skills.json';
import jaCron from './locales/ja/cron.json';
import jaSetup from './locales/ja/setup.json';
// RU
import ruCommon from './locales/ru/common.json';
import ruSettings from './locales/ru/settings.json';
import ruDashboard from './locales/ru/dashboard.json';
import ruChat from './locales/ru/chat.json';
import ruChannels from './locales/ru/channels.json';
import ruAgents from './locales/ru/agents.json';
import ruSkills from './locales/ru/skills.json';
import ruCron from './locales/ru/cron.json';
import ruSetup from './locales/ru/setup.json';
export const SUPPORTED_LANGUAGES = [
{ code: 'en', label: 'English' },
{ code: 'zh', label: '中文' },
{ code: 'ja', label: '日本語' },
{ code: 'ru', label: 'Русский' },
] as const satisfies ReadonlyArray<{ code: LanguageCode; label: string }>;
const resources = {
@@ -79,6 +91,17 @@ const resources = {
cron: jaCron,
setup: jaSetup,
},
ru: {
common: ruCommon,
settings: ruSettings,
dashboard: ruDashboard,
chat: ruChat,
channels: ruChannels,
agents: ruAgents,
skills: ruSkills,
cron: ruCron,
setup: ruSetup,
},
};
i18n

View File

@@ -0,0 +1,77 @@
{
"title": "Агенты",
"subtitle": "Создайте нового агента для маршрутизации определённых каналов к отдельной личности или рабочей области.",
"refresh": "Обновить",
"addAgent": "Добавить агента",
"gatewayWarning": "Служба шлюза не запущена. Изменения агентов и каналов могут примениться с задержкой.",
"defaultBadge": "по умолчанию",
"inherited": "унаследовано",
"none": "нет",
"modelLine": "Модель: {{model}}{{suffix}}",
"channelsLine": "Каналы: {{channels}}",
"deleteAgent": "Удалить агента",
"settings": "Настройки",
"creating": "Создание...",
"createDialog": {
"title": "Добавить агента",
"description": "Создайте нового агента по имени. Вы можете опционально унаследовать файлы рабочей области основного агента.",
"nameLabel": "Имя агента",
"namePlaceholder": "Помощник по коду",
"inheritWorkspaceLabel": "Наследовать рабочую область основного агента",
"inheritWorkspaceDescription": "Копировать SOUL.md, AGENTS.md и т.д. из основного агента"
},
"deleteDialog": {
"title": "Удалить агента",
"message": "Удалить \"{{name}}\" из ClawX? Это навсегда удалит агента и его рабочую область, среду выполнения и файлы сессий с диска."
},
"settingsDialog": {
"title": "Настройки {{name}}",
"description": "Обновите имя агента и управляйте тем, какие каналы принадлежат этому агенту.",
"nameLabel": "Имя агента",
"agentIdLabel": "ID агента",
"modelLabel": "Модель",
"modelOverrideLabel": "Переопределение модели",
"modelProviderLabel": "Провайдер",
"modelProviderPlaceholder": "Выберите провайдера",
"modelProviderEmpty": "Учётные записи провайдеров не настроены. Добавьте в Настройки → AI-провайдеры.",
"modelIdLabel": "ID модели",
"modelIdPlaceholder": "model-id",
"modelPreview": "Предпросмотр",
"modelOverridePlaceholder": "провайдер/модель (например: openrouter/openai/gpt-5.4)",
"modelOverrideDescription": "Выберите провайдера и ID модели для этого агента.",
"unsavedChangesTitle": "Несохранённые изменения",
"unsavedChangesMessage": "У вас есть несохранённые изменения. Если закроете сейчас, изменения будут потеряны.",
"closeWithoutSaving": "Закрыть без сохранения",
"saveModelOverride": "Сохранить модель",
"useDefaultModel": "Использовать модель по умолчанию",
"channelsTitle": "Каналы",
"channelsDescription": "Этот список доступен только для чтения. Управляйте учётными записями каналов и привязками на странице Каналов.",
"mainAccount": "Основная учётная запись",
"channelsManagedInChannels": "Этот агент связан с типами каналов. Управляйте точными привязками учётных записей на странице Каналов.",
"addChannel": "Добавить канал",
"noChannels": "К этому агенту ещё не привязаны каналы."
},
"removeChannelDialog": {
"title": "Удалить канал",
"message": "Удалить {{name}} из ClawX? Это удалит текущую конфигурацию канала."
},
"toast": {
"agentCreated": "Агент создан",
"agentCreateFailed": "Не удалось создать агента: {{error}}",
"agentDeleted": "Агент удалён",
"agentDeleteFailed": "Не удалось удалить агента: {{error}}",
"agentUpdated": "Агент обновлён",
"agentUpdateFailed": "Не удалось обновить агента: {{error}}",
"agentModelInvalid": "Модель должна быть в формате провайдер/модель",
"agentModelProviderRequired": "Сначала выберите провайдера",
"agentModelIdRequired": "Требуется ID модели",
"agentModelUpdated": "Модель агента обновлена",
"agentModelUpdateFailed": "Не удалось обновить модель агента: {{error}}",
"agentModelReset": "Модель агента сброшена до значения по умолчанию",
"agentModelResetFailed": "Не удалось сбросить модель агента: {{error}}",
"channelAssigned": "{{channel}} назначен агенту",
"channelAssignFailed": "Не удалось назначить канал: {{error}}",
"channelRemoved": "{{channel}} удалён",
"channelRemoveFailed": "Не удалось удалить канал: {{error}}"
}
}

View File

@@ -0,0 +1,392 @@
{
"title": "Каналы сообщений",
"subtitle": "Управляйте каналами сообщений, учётными записями, привязками учётных записей к агентам и настройками по умолчанию для каждого канала.",
"refresh": "Обновить",
"addChannel": "Добавить канал",
"stats": {
"total": "Всего каналов",
"connected": "Подключено",
"disconnected": "Отключено"
},
"gatewayWarning": "Служба шлюза не запущена. Каналы не могут подключиться.",
"availableChannels": "Доступные каналы",
"supportedChannels": "Поддерживаемые каналы",
"available": "Доступные каналы",
"availableDesc": "Подключить новый канал",
"configured": "Настроенные каналы",
"configuredDesc": "Управление уже настроенными каналами",
"configuredBadge": "Настроен",
"deleteConfirm": "Вы уверены, что хотите удалить этот канал?",
"showAll": "Показать все",
"pluginBadge": "Плагин",
"toast": {
"whatsappConnected": "WhatsApp успешно подключён",
"whatsappFailed": "Не удалось подключить WhatsApp: {{error}}",
"qrConnected": "{{name}} успешно подключён",
"qrFailed": "Не удалось подключить {{name}}: {{error}}",
"channelSaved": "Канал {{name}} сохранён",
"channelConnecting": "Подключение к {{name}}...",
"savedButRefreshFailed": "Конфигурация сохранена, но обновление данных страницы не удалось. Пожалуйста, обновите вручную.",
"restartManual": "Пожалуйста, перезапустите шлюз вручную",
"configFailed": "Ошибка конфигурации: {{error}}",
"bindingUpdated": "Привязка учётной записи обновлена",
"defaultUpdated": "Учётная запись по умолчанию обновлена",
"accountDeleted": "Учётная запись удалена",
"channelDeleted": "Канал удалён"
},
"account": {
"add": "Добавить учётную запись",
"edit": "Редактировать",
"delete": "Удалить учётную запись",
"deleteChannel": "Удалить канал",
"deleteConfirm": "Вы уверены, что хотите удалить эту учётную запись?",
"default": "Текущая по умолчанию",
"setDefault": "Установить как канал по умолчанию",
"bindAgentLabel": "Связанный агент",
"unassigned": "Не назначено",
"mainAccount": "Основная учётная запись",
"customIdLabel": "ID учётной записи",
"customIdPlaceholder": "напр., feishu-sales-bot",
"customIdHint": "Используйте ID учётной записи из строчных букв (буквы, цифры, дефис, подчёркивание) для раз multiple учётных записей одного канала.",
"invalidId": "ID учётной записи не может быть пустым",
"invalidCanonicalId": "ID учётной записи должен содержать строчные буквы, цифры, дефисы или подчёркивания, начинаться с буквы/цифры и быть не более 64 символов.",
"idLabel": "ID: {{id}}",
"boundTo": "Связан с: {{agent}}",
"handledBy": "Обрабатывается {{agent}}",
"bindingStatusLabel": "Привязка: {{status}}",
"connectionStatusLabel": "Подключение: {{status}}",
"bindingStatus": {
"bound": "Связан",
"unbound": "Не связан"
},
"connectionStatus": {
"connected": "Подключён",
"connecting": "Подключение",
"disconnected": "Отключён",
"error": "Ошибка"
},
"accountIdPrompt": "Введите новый ID учётной записи для этого канала",
"accountIdExists": "ID учётной записи {{accountId}} уже существует"
},
"dialog": {
"updateTitle": "Обновить {{name}}",
"configureTitle": "Настроить {{name}}",
"addTitle": "Добавить канал",
"existingDesc": "Обновите существующую конфигурацию",
"selectDesc": "Выберите тип канала для настройки",
"qrCode": "QR-код",
"token": "Токен",
"scanQR": "Сканируйте этот QR-код с {{name}}",
"refreshCode": "Обновить код",
"loadingConfig": "Загрузка конфигурации...",
"existingHint": "У вас уже есть конфигурация для этого канала",
"howToConnect": "Как подключить",
"viewDocs": "Просмотреть документацию",
"channelName": "Название канала",
"channelNamePlaceholder": "Мой {{name}}",
"enableChannel": "Включить канал",
"enableChannelDesc": "При выключении конфигурация сохраняется, но канал остаётся отключённым",
"credentialsVerified": "Учётные данные проверены",
"validationFailed": "Ошибка проверки",
"warnings": "Предупреждения",
"back": "Назад",
"validating": "Проверка...",
"validateConfig": "Проверить конфигурацию",
"generatingQR": "Генерация QR...",
"validatingAndSaving": "Проверка и сохранение...",
"generateQRCode": "Сгенерировать QR-код",
"updateAndReconnect": "Обновить и переподключить",
"saveAndConnect": "Сохранить и подключить",
"envVar": "Переменная окружения: {{var}}"
},
"meta": {
"telegram": {
"description": "Подключите Telegram через токен бота от @BotFather",
"docsUrl": "https://icnnp7d0dymg.feishu.cn/wiki/TjiGwxsMWi7hpDkDAQBc0ydMnEf#MEkKdqXP1orZU2x4SrFcdUHgnl1",
"fields": {
"botToken": {
"label": "Токен бота",
"placeholder": "123456:ABC-DEF..."
},
"allowedUsers": {
"label": "ID разрешённых пользователей",
"placeholder": "напр., 123456789, 987654321",
"description": "Разделённый запятой список ID пользователей, которым разрешено использовать бота. Требуется для безопасности."
}
},
"instructions": [
"Откройте Telegram и найдите @BotFather",
"Отправьте /newbot и следуйте инструкциям",
"Скопируйте токен бота",
"Вставьте токен ниже",
"Получите свой ID пользователя от @userinfobot и вставьте ниже"
]
},
"discord": {
"description": "Подключите Discord через токен бота из Developer Portal",
"docsUrl": "https://icnnp7d0dymg.feishu.cn/wiki/BkOywJYCAiYRN9k4KTTceKPMnxg#QS6LdxnA2oNtfcxtFc8cgabnnNd",
"fields": {
"token": {
"label": "Токен бота",
"placeholder": "Токен вашего Discord-бота"
},
"guildId": {
"label": "ID сервера",
"placeholder": "напр., 123456789012345678",
"description": "Ограничьте бота определённым сервером. Правый клик по серверу → Копировать ID сервера."
},
"channelId": {
"label": "ID канала (опционально)",
"placeholder": "напр., 123456789012345678",
"description": "Ограничьте бота определённым каналом. Правый клик по каналу → Копировать ID канала."
}
},
"instructions": [
"Перейдите в Discord Developer Portal → Приложения → Новое приложение",
"В разделе Бот: Добавить бота, затем скопируйте токен бота",
"Включите Message Content Intent + Server Members Intent в Бот → Privileged Gateway Intents",
"В OAuth2 → URL Generator: выберите \"bot\" + \"applications.commands\", добавьте права на сообщения",
"Пригласите бота на сервер через сгенерированный URL",
"Вставьте токен бота ниже"
]
},
"whatsapp": {
"description": "Подключите WhatsApp сканированием QR-кода (номер телефона не требуется)",
"docsUrl": "https://icnnp7d0dymg.feishu.cn/wiki/ES7fwUfH8iGl8FkHYfFcyWB3n4d#doxcnUElomBZLi0NnKLUzn6zLbd",
"instructions": [
"Откройте WhatsApp на телефоне",
"Перейдите в Настройки > Связанные устройства > Подключить устройство",
"Сканируйте QR-код, показанный ниже",
"Система автоматически определит ваш номер телефона"
]
},
"wechat": {
"description": "Подключите личный WeChat через официальный плагин OpenClaw от Tencent, сканированием QR-кода",
"docsUrl": "https://icnnp7d0dymg.feishu.cn/wiki/GHYZwuPCriF0gWkXwkFcJ9zon3b",
"instructions": [
"Нажмите \"Сгенерировать QR-код\" для установки и включения официального плагина WeChat внутри OpenClaw",
"Сканируйте QR-код ниже через WeChat и подтвердите подключение на телефоне",
"После успешного связывания новый чат WeChat ClawBot автоматически появится в WeChat",
"Вы можете повторить QR-процедуру позже, чтобы добавить другую учётную запись WeChat или переподключить существующую"
]
},
"dingtalk": {
"description": "Подключите DingTalk через плагин канала OpenClaw (режим Stream)",
"docsUrl": "https://icnnp7d0dymg.feishu.cn/wiki/Y5eNwiSiZidkLskrwtJc1rUln0b#doxcnDgA78n43DbkiQjI1OqUA7b",
"fields": {
"clientId": {
"label": "Client ID (AppKey)",
"placeholder": "dingxxxxxx"
},
"clientSecret": {
"label": "Client Secret (AppSecret)",
"placeholder": "Секрет вашего приложения"
},
"robotCode": {
"label": "Robot Code (опционально)",
"placeholder": "Обычно совпадает с Client ID"
},
"corpId": {
"label": "Corp ID (опционально)",
"placeholder": "dingxxxxxx"
},
"agentId": {
"label": "Agent ID (опционально)",
"placeholder": "123456789"
}
},
"instructions": [
"Установите и включите плагин dingtalk в OpenClaw",
"Создайте внутреннее приложение DingTalk и включите режим Stream",
"Заполните Client ID и Client Secret (обязательно)",
"Заполните Robot Code / Corp ID / Agent ID, если ваша настройка требует этого"
]
},
"signal": {
"description": "Подключите Signal через signal-cli",
"docsUrl": "https://docs.openclaw.ai/channels/signal",
"fields": {
"phoneNumber": {
"label": "Номер телефона",
"placeholder": "+1234567890"
}
},
"instructions": [
"Установите signal-cli в вашей системе",
"Зарегистрируйте или привяжите ваш номер телефона",
"Введите ваш номер телефона ниже"
]
},
"feishu": {
"description": "Подключите бота Feishu/Lark через WebSocket",
"docsUrl": "https://icnnp7d0dymg.feishu.cn/wiki/GKn8wOvHnibpPNkNkPzcAvGlnzK#GdHUdp9t9oqyegxwV8ScLvVGn1c",
"fields": {
"appId": {
"label": "App ID",
"placeholder": "cli_xxxxxx"
},
"appSecret": {
"label": "App Secret",
"placeholder": "Секрет вашего приложения"
}
},
"instructions": [
"Прочитайте документацию, затем перейдите на Feishu Open Platform",
"Создайте новое приложение",
"Получите App ID и App Secret",
"Настройте подписку на события"
]
},
"wecom": {
"description": "Подключите бота WeCom через плагин",
"docsUrl": "https://icnnp7d0dymg.feishu.cn/wiki/JTGnwoV0RixKPtkr4w7c7gpAnDc",
"fields": {
"botId": {
"label": "Bot ID",
"placeholder": "ww_xxxxxx"
},
"secret": {
"label": "App Secret",
"placeholder": "Секрет вашего WeCom бота"
}
},
"instructions": [
"Создайте приложение в WeCom Admin Console для получения информации о конфигурации",
"Убедитесь, что конфигурация сервера получения сообщений включена",
"Введите ваш Bot ID (или Corp ID) и Secret для установления соединения"
]
},
"imessage": {
"description": "Подключите iMessage через BlueBubbles (macOS)",
"docsUrl": "https://docs.openclaw.ai/channels/bluebubbles",
"fields": {
"serverUrl": {
"label": "URL сервера BlueBubbles",
"placeholder": "http://localhost:1234"
},
"password": {
"label": "Пароль сервера",
"placeholder": "Пароль вашего сервера"
}
},
"instructions": [
"Установите сервер BlueBubbles на ваш Mac",
"Запишите URL сервера и пароль",
"Введите данные подключения ниже"
]
},
"matrix": {
"description": "Подключитесь к протоколу Matrix",
"docsUrl": "https://docs.openclaw.ai/channels/matrix",
"fields": {
"homeserver": {
"label": "URL Homeserver",
"placeholder": "https://matrix.org"
},
"accessToken": {
"label": "Access Token",
"placeholder": "Ваш access token"
}
},
"instructions": [
"Создайте учётную запись Matrix или используйте существующую",
"Получите access token из вашего клиента",
"Введите homeserver и token ниже"
]
},
"line": {
"description": "Подключите LINE Messaging API",
"docsUrl": "https://docs.openclaw.ai/channels/line",
"fields": {
"channelAccessToken": {
"label": "Channel Access Token",
"placeholder": "Ваш LINE channel access token"
},
"channelSecret": {
"label": "Channel Secret",
"placeholder": "Ваш LINE channel secret"
}
},
"instructions": [
"Перейдите в LINE Developers Console",
"Создайте канал Messaging API",
"Получите Channel Access Token и Secret"
]
},
"msteams": {
"description": "Подключите Microsoft Teams через Bot Framework",
"docsUrl": "https://docs.openclaw.ai/channels/msteams",
"fields": {
"appId": {
"label": "App ID",
"placeholder": "Ваш Microsoft App ID"
},
"appPassword": {
"label": "App Password",
"placeholder": "Ваш Microsoft App Password"
}
},
"instructions": [
"Перейдите на Azure Portal",
"Зарегистрируйте новое приложение бота",
"Получите App ID и создайте пароль",
"Настройте канал Teams"
]
},
"googlechat": {
"description": "Подключите Google Chat через webhook",
"docsUrl": "https://docs.openclaw.ai/channels/googlechat",
"fields": {
"serviceAccountKey": {
"label": "Путь к JSON файлу сервисного аккаунта",
"placeholder": "/path/to/service-account.json"
}
},
"instructions": [
"Создайте проект Google Cloud",
"Включите Google Chat API",
"Создайте сервисный аккаунт",
"Скачайте файл ключа JSON"
]
},
"mattermost": {
"description": "Подключите Mattermost через Bot API",
"docsUrl": "https://docs.openclaw.ai/channels/mattermost",
"fields": {
"serverUrl": {
"label": "URL сервера",
"placeholder": "https://your-mattermost.com"
},
"botToken": {
"label": "Bot Access Token",
"placeholder": "Ваш bot access token"
}
},
"instructions": [
"Перейдите в Mattermost Integrations",
"Создайте новую учётную запись бота",
"Скопируйте access token"
]
},
"qqbot": {
"description": "Подключите канал QQ Bot (встроенный с OpenClaw 3.31)",
"docsUrl": "https://icnnp7d0dymg.feishu.cn/wiki/KPIJwlyiGiupMrkiS9ice39Zn2c",
"fields": {
"appId": {
"label": "App ID",
"placeholder": "Ваш QQ Bot App ID"
},
"clientSecret": {
"label": "Client Secret",
"placeholder": "Ваш QQ Bot Client Secret"
}
},
"instructions": [
"Зарегистрируйте приложение на QQ Bot Open Platform",
"Получите App ID и Client Secret",
"Заполните ваши учётные данные ниже"
]
}
},
"viewDocs": "Просмотреть документацию"
}

View File

@@ -0,0 +1,72 @@
{
"gatewayNotRunning": "Шлюз не запущен",
"gatewayRequired": "Для использования чата требуется запущенный шлюз OpenClaw. Он запустится автоматически, или вы можете запустить его в Настройках.",
"welcome": {
"title": "Чат ClawX",
"subtitle": "Чем могу помочь?",
"askQuestions": "Задачи",
"askQuestionsDesc": "Работа над задачами",
"creativeTasks": "Непрерывное выполнение",
"creativeTasksDesc": "Выполнение многошаговых задач",
"brainstorming": "Параллельные агенты"
},
"noLogs": "(Журналы ещё недоступны)",
"toolbar": {
"refresh": "Обновить чат",
"showThinking": "Показать размышления",
"hideThinking": "Скрыть размышления",
"currentAgent": "Общение с {{agent}}"
},
"taskPanel": {
"eyebrow": "Вид выполнения",
"title": "Структура задачи",
"emptyTitle": "Пока нет структурированных шагов",
"emptyBody": "Когда начнётся выполнение, ClawX покажет размышления, вызовы инструментов и состояния передачи здесь.",
"status": {
"idle": "Бездействует",
"running_one": "1 активный шаг",
"running_other": "{{count}} активных шагов"
},
"stepStatus": {
"running": "Выполняется",
"completed": "Готово",
"error": "Ошибка"
}
},
"executionGraph": {
"eyebrow": "Выполнение в чате",
"title": "Граф выполнения",
"status": {
"active": "Активно",
"latest": "Последнее",
"previous": "Предыдущее"
},
"branchLabel": "ветвь",
"userTrigger": "Триггер пользователя",
"userTriggerHint": "Запущен пользовательским сообщением выше",
"agentRun": "Выполнение {{agent}}",
"agentReply": "Ответ ассистента",
"agentReplyHint": "Разрешено в ответе ассистента ниже"
},
"composer": {
"attachFiles": "Прикрепить файлы",
"pickAgent": "Выбрать агента",
"clearTarget": "Очистить целевого агента",
"targetChip": "@{{agent}}",
"agentPickerTitle": "Направить следующее сообщение другому агенту",
"gatewayDisconnectedPlaceholder": "Шлюз не подключён...",
"send": "Отправить",
"stop": "Остановить",
"gatewayConnected": "подключён",
"gatewayStatus": "шлюз {{state}} | порт: {{port}} {{pid}}",
"retryFailedAttachments": "Повторить неудавшиеся вложения"
},
"historyBuckets": {
"today": "Сегодня",
"yesterday": "Вчера",
"withinWeek": "В течение недели",
"withinTwoWeeks": "В течение 2 недель",
"withinMonth": "В течение месяца",
"older": "Старее месяца"
}
}

View File

@@ -0,0 +1,59 @@
{
"sidebar": {
"chat": "Чат",
"newChat": "Новый чат",
"cronTasks": "Расписание",
"skills": "Навыки",
"agents": "Агенты",
"channels": "Каналы",
"dashboard": "Панель",
"settings": "Настройки",
"devConsole": "Консоль разработчика",
"models": "Модели",
"deleteSessionConfirm": "Вы уверены, что хотите удалить сессию \"{{label}}\"?",
"openClawPage": "Страница OpenClaw"
},
"actions": {
"save": "Сохранить",
"cancel": "Отмена",
"delete": "Удалить",
"edit": "Редактировать",
"refresh": "Обновить",
"close": "Закрыть",
"copy": "Копировать",
"search": "Поиск",
"confirm": "Подтвердить",
"dismiss": "Отклонить",
"load": "Загрузить",
"install": "Установить",
"uninstall": "Удалить",
"enable": "Включить",
"disable": "Выключить",
"back": "Назад",
"next": "Далее",
"skip": "Пропустить",
"restart": "Перезапустить",
"show": "Показать",
"hide": "Скрыть",
"clear": "Очистить"
},
"status": {
"running": "Запущен",
"stopped": "Остановлен",
"error": "Ошибка",
"connected": "Подключён",
"disconnected": "Отключён",
"enabled": "Включён",
"disabled": "Выключен",
"active": "Активен",
"paused": "Приостановлен",
"configured": "Настроен",
"loading": "Загрузка...",
"saving": "Сохранение..."
},
"gateway": {
"notRunning": "Шлюз не запущен",
"notRunningDesc": "Для использования этой функции требуется запущенный шлюз OpenClaw. Он запустится автоматически, или вы можете запустить его в Настройках.",
"warning": "Шлюз не запущен."
}
}

View File

@@ -0,0 +1,120 @@
{
"title": "Запланированные задачи",
"subtitle": "Автоматизируйте AI-workflows с запланированными задачами",
"newTask": "Новая задача",
"refresh": "Обновить",
"gatewayWarning": "Шлюз не запущен. Запланированными задачами нельзя управлять без активного шлюза.",
"stats": {
"total": "Всего задач",
"active": "Активно",
"paused": "Приостановлено",
"failed": "Ошибка"
},
"empty": {
"title": "Нет запланированных задач",
"description": "Создайте запланированные задачи для автоматизации AI-процессов. Задачи могут отправлять сообщения, выполнять запросы или выполнять действия в указанное время.",
"create": "Создать первую задачу"
},
"card": {
"runNow": "Запустить сейчас",
"deleteConfirm": "Вы уверены, что хотите удалить эту задачу?",
"last": "Последний",
"next": "Следующий"
},
"dialog": {
"createTitle": "Создать задачу",
"editTitle": "Редактировать задачу",
"description": "Запланируйте автоматическую AI-задачу",
"taskName": "Название задачи",
"taskNamePlaceholder": "напр., Утренняя сводка",
"message": "Сообщение / Промпт",
"messagePlaceholder": "Что должен сделать AI? напр., Дай мне сводку новостей и погоды на сегодня",
"schedule": "Расписание",
"cronPlaceholder": "Cron-выражение (напр., 0 9 * * *)",
"usePresets": "Использовать пресеты",
"useCustomCron": "Использовать свой cron",
"deliveryTitle": "Доставка",
"deliveryDescription": "Выберите, остаётся ли эта задача в ClawX или отправляется на внешний канал.",
"deliveryModeNone": "Только в ClawX",
"deliveryModeNoneDesc": "Выполнить задачу и сохранить результат в приложении.",
"deliveryModeAnnounce": "Внешний канал",
"deliveryModeAnnounceDesc": "Отправить конечный результат через настроенный канал.",
"deliveryChannel": "Канал",
"channelUnsupportedTag": "Не поддерживается",
"deliveryAccount": "Учётная запись отправки",
"selectDeliveryAccount": "Выберите учётную запись",
"deliveryAccountDesc": "Использует тот же список настроенных учётных записей, что и на странице Каналов.",
"selectChannel": "Выберите канал",
"deliveryChannelUnsupported": "{{channel}} в настоящее время не поддерживает запланированную исходящую доставку.",
"deliveryDefaultAccountHint": "Использует учётную запись канала по умолчанию: {{account}}",
"deliveryTarget": "Получатель / Цель",
"selectDeliveryTarget": "Выберите цель доставки",
"loadingTargets": "Загрузка целей...",
"currentTarget": "Текущая цель",
"deliveryTargetGroupDefault": "Рекомендуемые",
"deliveryTargetGroupUsers": "Пользователи",
"deliveryTargetGroupChats": "Чаты",
"noDeliveryTargets": "Для выбранной учётной записи {{channel}} цели доставки недоступны.",
"deliveryTargetPlaceholder": "Введите цель доставки для этого канала",
"deliveryTargetPlaceholderFeishu": "напр., user:ou_xxx или chat:oc_xxx",
"deliveryTargetDesc": "Это соответствует delivery.to в OpenClaw и отправляется как есть.",
"deliveryTargetDescFeishu": "Используйте цель пользователя Feishu, например user:ou_xxx, или цель чата, например chat:oc_xxx.",
"deliveryTargetDescAuto": "Выберите из целей, обнаруженных для выбранной учётной записи канала.",
"deliveryTargetDescFeishuSelect": "Выберите подтверждённого получателя Feishu из доступных пользователей или чатов.",
"deliveryTargetDescFeishuAccount": "Выберите из настроенных учётных записей канала Feishu, используя тот же список учётных записей, что и на странице Каналов.",
"feishuMainTargetTitle": "Основная учётная запись Feishu",
"feishuMainTargetDesc": "Автозаполнить текущую учётную запись Feishu по умолчанию как цель доставки.",
"useFeishuMainTarget": "Использовать основную учётную запись",
"resolvingTarget": "Разрешение...",
"targetChannel": "Целевой канал",
"noChannels": "Каналы недоступны. Сначала добавьте канал.",
"discordChannelId": "ID канала Discord",
"discordChannelIdPlaceholder": "напр., 1438452657525100686",
"discordChannelIdDesc": "Правый клик по каналу Discord → Копировать ID канала",
"enableImmediately": "Включить немедленно",
"enableImmediatelyDesc": "Начать выполнение этой задачи после создания",
"saveChanges": "Сохранить изменения"
},
"presets": {
"everyMinute": "Каждую минуту",
"every5Min": "Каждые 5 минут",
"every15Min": "Каждые 15 минут",
"everyHour": "Каждый час",
"daily9am": "Ежедневно в 9:00",
"daily6pm": "Ежедневно в 18:00",
"weeklyMon": "Еженедельно (Пн 9:00)",
"monthly1st": "Ежемесячно (1-го в 9:00)"
},
"toast": {
"created": "Задача создана",
"updated": "Задача обновлена",
"enabled": "Задача включена",
"paused": "Задача приостановлена",
"deleted": "Задача удалена",
"triggered": "Задача успешно запущена",
"failedTrigger": "Не удалось запустить задачу: {{error}}",
"failedUpdate": "Не удалось обновить задачу",
"failedDelete": "Не удалось удалить задачу",
"nameRequired": "Пожалуйста, введите название задачи",
"messageRequired": "Пожалуйста, введите сообщение",
"channelRequired": "Пожалуйста, выберите канал",
"deliveryChannelUnsupported": "{{channel}} пока не поддерживает запланированную доставку",
"deliveryTargetRequired": "Пожалуйста, введите цель доставки",
"deliveryTargetResolved": "Цель доставки разрешена",
"failedLoadDeliveryTargets": "Не удалось загрузить цели доставки",
"failedResolveDeliveryTarget": "Не удалось разрешить цель доставки по умолчанию",
"discordIdRequired": "Пожалуйста, введите ID канала Discord",
"scheduleRequired": "Пожалуйста, выберите или введите расписание"
},
"schedule": {
"everySeconds": "Каждые {{count}} сек",
"everyMinutes": "Каждые {{count}} мин",
"everyHours": "Каждые {{count}} ч",
"everyDays": "Каждые {{count}} дн",
"onceAt": "Один раз в {{time}}",
"weeklyAt": "Еженедельно в {{day}} в {{time}}",
"monthlyAtDay": "Ежемесячно {{day}}-го в {{time}}",
"dailyAt": "Ежедневно в {{time}}",
"unknown": "Неизвестно"
}
}

View File

@@ -0,0 +1,65 @@
{
"gateway": "Шлюз",
"channels": "Каналы",
"skills": "Навыки",
"uptime": "Время работы",
"port": "Порт: {{port}}",
"pid": "PID: {{pid}}",
"connectedOf": "{{connected}} из {{total}} подключено",
"enabledOf": "{{enabled}} из {{total}} включено",
"sinceRestart": "С последнего перезапуска",
"gatewayNotRunning": "Шлюз не запущен",
"models": {
"title": "Модели",
"subtitle": "Управляйте AI-провайдерами и отслеживайте использование токенов."
},
"quickActions": {
"title": "Быстрые действия",
"description": "Частые задачи и ярлыки",
"addProvider": "Добавить провайдера",
"addChannel": "Добавить канал",
"createCron": "Создать задачу",
"installSkill": "Установить навык",
"openChat": "Открыть чат",
"settings": "Настройки",
"devConsole": "Консоль"
},
"connectedChannels": "Подключённые каналы",
"noChannels": "Каналы не настроены",
"addFirst": "Добавьте первый канал",
"activeSkills": "Активные навыки",
"noSkills": "Навыки не включены",
"enableSome": "Включите несколько навыков",
"more": "+{{count}} ещё",
"recentTokenHistory": {
"title": "Недавнее использование токенов",
"description": "Недавние ответы ассистента и результаты инструментов с данными о модели/провайдере.",
"loading": "Загрузка истории использования токенов...",
"empty": "История использования токенов пуста",
"groupByModel": "По модели",
"groupByTime": "По времени",
"last7Days": "7 дней",
"last30Days": "30 дней",
"allTime": "Всё время",
"showingLast": "{{count}} записей",
"totalTokens": "всего токенов",
"inputShort": "Ввод",
"outputShort": "Вывод",
"cacheShort": "Кэш",
"page": "Страница {{current}} / {{total}}",
"prev": "Назад",
"next": "Далее",
"unknownModel": "Неизвестная модель",
"emptyForWindow": "Нет истории использования токенов за этот период",
"input": "Ввод {{value}}",
"output": "Вывод {{value}}",
"cacheRead": "Чтение кэша {{value}}",
"cacheWrite": "Запись кэша {{value}}",
"cost": "Стоимость ${{amount}}",
"viewContent": "Просмотр содержимого",
"contentDialogTitle": "Детали использования",
"close": "Закрыть",
"noUsage": "Нет использования",
"usageParseError": "Ошибка解析 использования"
}
}

View File

@@ -0,0 +1,282 @@
{
"title": "Настройки",
"subtitle": "Настройте ваш опыт работы с ClawX",
"appearance": {
"title": "Общие",
"description": "Настройте внешний вид",
"theme": "Тема",
"light": "Светлая",
"dark": "Тёмная",
"system": "Системная",
"language": "Язык",
"launchAtStartup": "Запуск при старте системы",
"launchAtStartupDesc": "Автоматически запускать ClawX при входе в систему"
},
"aiProviders": {
"title": "AI-провайдеры",
"description": "Настройте провайдеров AI-моделей и API-ключи",
"overview": {
"title": "Учётные записи провайдеров",
"description": "Сводка об учётных записях провайдеров и моделях.",
"noModelSelected": "Модель не выбрана",
"multiAccountReady": "Готов к нескольким аккаунтам",
"singletonVendor": "Одноаккаунтный провайдер"
},
"authModes": {
"apiKey": "API-ключ",
"oauthDevice": "OAuth Устройство",
"oauthBrowser": "OAuth Браузер",
"local": "Локальный"
},
"sections": {
"model": "Настройки модели",
"fallback": "Настройки резервного переключения"
},
"add": "Добавить провайдера",
"custom": "Свой",
"notRequired": "Не требуется",
"empty": {
"title": "Провайдеры не настроены",
"desc": "Добавьте AI-провайдера, чтобы начать использовать ClawX",
"cta": "Добавить первого провайдера"
},
"dialog": {
"title": "Добавить AI-провайдера",
"desc": "Настройте нового провайдера AI-моделей",
"displayName": "Отображаемое имя",
"apiKey": "API-ключ",
"apiKeyConfigured": "API-ключ уже сохранён для этого провайдера.",
"apiKeyMissing": "API-ключ ещё не сохранён для этого провайдера.",
"apiKeyStored": "Ваш API-ключ хранится локально на вашем компьютере.",
"replaceApiKey": "Заменить API-ключ",
"replaceApiKeyHelp": "Оставьте это поле пустым, чтобы сохранить текущий API-ключ.",
"baseUrl": "Базовый URL",
"modelId": "ID модели",
"codePlanPreset": "Пресет Code Plan",
"codePlanMode": "Code Plan",
"useCodePlanPreset": "Использовать пресет Ark Code Plan",
"codePlanPresetDesc": "Code Plan использует https://ark.cn-beijing.volces.com/api/coding/v3 и модель ark-code-latest. Не используйте /api/v3 для трафика Code Plan.",
"codePlanDoc": "Документация Code Plan",
"protocol": "Протокол",
"advancedConfig": "Расширенная конфигурация",
"userAgent": "User-Agent",
"userAgentPlaceholder": "ClawX/1.0",
"fallbackModels": "Резервные модели",
"fallbackProviders": "Резервные провайдеры",
"fallbackModelIds": "ID резервных моделей",
"fallbackModelIdsPlaceholder": "gpt-4.1-mini\nanother-model-id",
"fallbackModelIdsHelp": "Один ID модели на строку. Эти модели используют текущую конфигурацию провайдера перед переходом к другим провайдерам.",
"noFallbackOptions": "Сначала добавьте другого провайдера, чтобы использовать его как резервный.",
"cancel": "Отмена",
"change": "Изменить провайдера",
"add": "Добавить провайдера",
"save": "Сохранить",
"customDoc": "Документация",
"validate": "Проверить"
},
"card": {
"default": "По умолчанию",
"configured": "Настроен",
"noKey": "API-ключ не задан",
"none": "Нет",
"fallbacks_one": "Резервный: {{names}}",
"fallbacks_other": "Резервные ({{count}}): {{names}}",
"setDefault": "Установить по умолчанию",
"editKey": "Редактировать API-ключ",
"delete": "Удалить провайдера"
},
"protocols": {
"openai": "Совместимый с OpenAI",
"openaiCompletions": "OpenAI Completions",
"openaiResponses": "OpenAI Responses",
"anthropic": "Совместимый с Anthropic"
},
"toast": {
"added": "Провайдер успешно добавлен",
"failedAdd": "Не удалось добавить провайдера",
"deleted": "Провайдер удалён",
"failedDelete": "Не удалось удалить провайдера",
"defaultUpdated": "Провайдер по умолчанию обновлён",
"failedDefault": "Не удалось установить провайдер по умолчанию",
"updated": "Провайдер обновлён",
"failedUpdate": "Не удалось обновить провайдера",
"invalidKey": "Неверный API-ключ",
"modelRequired": "Требуется ID модели",
"minimaxConflict": "Нельзя добавить оба провайдера MiniMax (Global) и MiniMax (CN)."
},
"oauth": {
"loginMode": "Вход через OAuth",
"apikeyMode": "API-ключ",
"loginPrompt": "Этот провайдер требует входа через браузер.",
"loginButton": "Войти через браузер",
"getApiKey": "Получить API-ключ",
"waiting": "Ожидание...",
"openLoginPage": "Открыть страницу входа",
"waitingApproval": "Ожидание подтверждения в браузере...",
"cancel": "Отмена",
"codeCopied": "Код скопирован в буфер обмена",
"authFailed": "Ошибка аутентификации",
"browserFlowUnavailable": "OAuth через браузер ещё не настроен для этого провайдера.",
"tryAgain": "Попробовать снова",
"approveLogin": "Подтвердить вход",
"step1": "Скопируйте код авторизации ниже.",
"step2": "Откройте страницу входа в браузере.",
"step3": "Вставьте код для подтверждения доступа.",
"requestingCode": "Запрос кода безопасного входа..."
}
},
"gateway": {
"title": "Шлюз",
"description": "Настройки шлюза OpenClaw",
"status": "Статус",
"port": "Порт",
"logs": "Журналы",
"appLogs": "Журналы приложения",
"openFolder": "Открыть папку",
"autoStart": "Автозапуск шлюза",
"autoStartDesc": "Запускать шлюз при старте ClawX",
"proxyTitle": "Прокси",
"proxyDesc": "Направлять трафик Electron и шлюза через локальный прокси-клиент.",
"proxyServer": "Прокси-сервер",
"proxyServerHelp": "Прокси по умолчанию для всех запросов. Значения вида хост:порт по умолчанию используют HTTP.",
"proxyHttpServer": "HTTP-прокси",
"proxyHttpServerHelp": "Расширенная настройка для HTTP-запросов. Оставьте пустым, чтобы использовать прокси-сервер.",
"proxyHttpsServer": "HTTPS-прокси",
"proxyHttpsServerHelp": "Расширенная настройка для HTTPS-запросов. Оставьте пустым, чтобы использовать прокси-сервер.",
"proxyAllServer": "ALL_PROXY / SOCKS",
"proxyAllServerHelp": "Расширенный резерв для SOCKS-клиентов и протоколов (например, Telegram). Оставьте пустым, чтобы использовать прокси-сервер.",
"showAdvancedProxy": "Показать расширенные поля прокси",
"hideAdvancedProxy": "Скрыть расширенные поля прокси",
"proxyBypass": "Правила обхода",
"proxyBypassHelp": "Разделённые точкой с запятой, запятой или новой строкой хосты, которые должны подключаться напрямую.",
"proxyRestartNote": "Сохранение переприменяет сетевые настройки Electron и немедленно перезапускает шлюз. Обычные перезапуски шлюза сохраняют значения прокси Telegram-канала при отключённом прокси; сохраните при отключённом прокси, чтобы очистить их.",
"proxySaved": "Настройки прокси сохранены",
"proxySaveFailed": "Не удалось сохранить настройки прокси"
},
"updates": {
"title": "Обновления",
"description": "Поддерживайте ClawX в актуальном состоянии",
"autoCheck": "Автопроверка обновлений",
"autoCheckDesc": "Проверять обновления при запуске",
"autoDownload": "Автообновление",
"autoDownloadDesc": "Автоматически загружать и устанавливать обновления",
"status": {
"checking": "Проверка обновлений...",
"downloading": "Загрузка обновления...",
"available": "Доступно обновление: v{{version}}",
"downloaded": "Готово к установке: v{{version}}",
"autoInstalling": "Перезапуск для установки обновления через {{seconds}}с...",
"failed": "Ошибка проверки обновлений",
"latest": "У вас последняя версия",
"check": "Проверить обновления"
},
"action": {
"checking": "Проверка...",
"downloading": "Загрузка...",
"download": "Скачать обновление",
"install": "Установить и перезапустить",
"cancelAutoInstall": "Отмена",
"retry": "Повторить",
"check": "Проверить обновления"
},
"currentVersion": "Текущая версия",
"whatsNew": "Что нового:",
"errorDetails": "Детали ошибки:",
"help": "Когда автообновление включено, обновления загружаются и устанавливаются автоматически."
},
"advanced": {
"title": "Дополнительные",
"description": "Опции для продвинутых пользователей",
"transport": {
"label": "Предпочтение транспорта шлюза",
"desc": "Выберите, как рендерер запрашивает RPC шлюза: WebSocket, HTTP-прокси или IPC-резерв.",
"saved": "Предпочтение транспорта шлюза сохранено",
"options": {
"wsFirst": "WS сначала",
"httpFirst": "HTTP сначала",
"wsOnly": "Только WS",
"httpOnly": "Только HTTP",
"ipcOnly": "Только IPC"
},
"descriptions": {
"wsFirst": "WS -> HTTP -> IPC",
"httpFirst": "HTTP -> WS -> IPC",
"wsOnly": "WS -> IPC",
"httpOnly": "HTTP -> IPC",
"ipcOnly": "Только IPC"
}
},
"devMode": "Режим разработчика",
"devModeDesc": "Показывать инструменты и ярлыки разработчика",
"telemetry": "Анонимные данные об использовании",
"telemetryDesc": "Разрешить предоставление анонимных базовых данных об использовании для улучшения ClawX"
},
"developer": {
"title": "Разработчик",
"description": "Расширенные опции для разработчиков",
"console": "Консоль OpenClaw",
"consoleDesc": "Доступ к нативному интерфейсу управления OpenClaw",
"openConsole": "Открыть консоль разработчика",
"consoleNote": "Открывает Control UI с токеном шлюза",
"gatewayToken": "Токен шлюза",
"gatewayTokenDesc": "Вставьте это в настройки Control UI при запросе",
"tokenUnavailable": "Токен недоступен",
"tokenCopied": "Токен шлюза скопирован",
"cli": "CLI OpenClaw",
"cliDesc": "Скопируйте команду для запуска OpenClaw без изменения PATH.",
"cliPowershell": "Команда PowerShell.",
"cmdUnavailable": "Команда недоступна",
"cmdCopied": "CLI-команда скопирована",
"doctor": "OpenClaw Doctor",
"doctorDesc": "Запустите `openclaw doctor` и просмотрите вывод диагностики.",
"runDoctor": "Запустить Doctor",
"runDoctorFix": "Запустить исправление Doctor",
"doctorSucceeded": "OpenClaw doctor завершён",
"doctorFailed": "OpenClaw doctor сообщил о проблемах",
"doctorRunFailed": "Не удалось запустить OpenClaw doctor",
"doctorFixSucceeded": "Исправление OpenClaw doctor завершено",
"doctorFixFailed": "Исправление OpenClaw doctor сообщило о проблемах",
"doctorFixRunFailed": "Не удалось запустить исправление OpenClaw doctor",
"doctorCopied": "Вывод doctor скопирован",
"doctorOk": "Исправен",
"doctorIssue": "Обнаружены проблемы",
"doctorFixOk": "Исправлено",
"doctorFixIssue": "Ошибка исправления",
"doctorExitCode": "Код выхода",
"doctorDuration": "Длительность",
"doctorCommand": "Команда",
"doctorWorkingDir": "Рабочая директория",
"doctorError": "Ошибка",
"doctorStdout": "Стандартный вывод",
"doctorStderr": "Стандартная ошибка",
"doctorOutputEmpty": "(пусто)",
"wsDiagnostic": "Диагностический режим WS",
"wsDiagnosticDesc": "Временно включить цепочку WS/HTTP-резервов для отладки RPC шлюза.",
"wsDiagnosticEnabled": "Диагностический режим WS включён",
"wsDiagnosticDisabled": "Диагностический режим WS отключён",
"telemetryViewer": "Просмотр телеметрии",
"telemetryViewerDesc": "Локальная телеметрия UX/производительности, последние 200 записей.",
"telemetryAggregated": "Топ событий",
"telemetryTotal": "Всего",
"telemetryErrors": "Ошибки",
"telemetrySlow": "Медленные (>=800мс)",
"telemetryEmpty": "Телеметрия ещё не собрана",
"telemetryCopied": "Телеметрия скопирована",
"telemetryCleared": "Телеметрия очищена",
"installCmd": "Установить команду \"openclaw\"",
"installCmdDesc": "Устанавливает ~/.local/bin/openclaw (без прав администратора)",
"installTitle": "Установить команду OpenClaw",
"installMessage": "Установить команду \"openclaw\"?",
"installDetail": "Это создаст ~/.local/bin/openclaw. Убедитесь, что ~/.local/bin в PATH, если хотите запускать глобально."
},
"about": {
"title": "О приложении",
"appName": "ClawX",
"tagline": "Графический AI-ассистент",
"basedOn": "На базе OpenClaw",
"version": "Версия {{version}}",
"docs": "Веб-сайт",
"github": "GitHub",
"faq": "FAQ"
}
}

View File

@@ -0,0 +1,152 @@
{
"steps": {
"welcome": {
"title": "Добро пожаловать",
"description": "Ваш AI-ассистент готов к настройке"
},
"runtime": {
"title": "Проверка окружения",
"description": "Проверка системных требований"
},
"provider": {
"title": "AI-провайдер",
"description": "Настройте ваш AI-сервис"
},
"channel": {
"title": "Подключить канал",
"description": "Подключите платформу обмена сообщениями (опционально)"
},
"installing": {
"title": "Настройка",
"description": "Установка необходимых компонентов"
},
"complete": {
"title": "Готово!",
"description": "ClawX готов к использованию"
}
},
"welcome": {
"title": "Добро пожаловать в ClawX",
"description": "ClawX — это графический интерфейс для OpenClaw, упрощающий использование AI-ассистентов через ваши любимые платформы обмена сообщениями.",
"features": {
"noCommand": "Без командной строки",
"modernUI": "Современный красивый интерфейс",
"bundles": "Предварительно установленные наборы навыков",
"crossPlatform": "Кроссплатформенная поддержка"
}
},
"runtime": {
"title": "Проверка окружения",
"viewLogs": "Просмотреть журналы",
"recheck": "Перепроверить",
"nodejs": "Среда выполнения Node.js",
"openclaw": "Пакет OpenClaw",
"gateway": "Служба шлюза",
"startGateway": "Запустить шлюз",
"status": {
"checking": "Проверка...",
"success": "Node.js доступен",
"error": "Ошибка",
"gatewayRunning": "Запущен на порту {{port}}",
"packageReady": "Пакет OpenClaw готов"
},
"issue": {
"title": "Обнаружена проблема с окружением",
"desc": "Пожалуйста, убедитесь, что OpenClaw установлен правильно. Проверьте журналы для получения подробной информации."
},
"logs": {
"title": "Журналы приложения",
"openFolder": "Открыть папку журналов",
"close": "Закрыть",
"noLogs": "(Журналы ещё недоступны)"
}
},
"provider": {
"label": "Провайдер модели",
"selectPlaceholder": "Выберите провайдера...",
"baseUrl": "Базовый URL",
"modelId": "ID модели",
"modelIdDesc": "Идентификатор модели от вашего провайдера (напр. deepseek-ai/DeepSeek-V3)",
"codePlanPreset": "Пресет Code Plan",
"codePlanMode": "Code Plan",
"useCodePlanPreset": "Использовать пресет Ark Code Plan",
"codePlanPresetDesc": "Code Plan использует https://ark.cn-beijing.volces.com/api/coding/v3 и модель ark-code-latest. Не используйте /api/v3 для трафика Code Plan.",
"codePlanDoc": "Документация Code Plan",
"protocol": "Протокол",
"protocols": {
"openaiCompletions": "OpenAI Completions",
"openaiResponses": "OpenAI Responses",
"anthropic": "Совместимый с Anthropic"
},
"apiKey": "API-ключ",
"save": "Сохранить",
"validateSave": "Проверить и сохранить",
"valid": "Провайдер успешно настроен",
"invalid": "Неверный API-ключ",
"storedLocally": "Ваш API-ключ хранится локально на вашем компьютере."
},
"channel": {
"title": "Подключить канал сообщений",
"subtitle": "Выберите платформу для подключения вашего AI-ассистента. Вы можете добавить больше каналов позже в Настройках.",
"configure": "Настроить {{name}}",
"howTo": "Как подключить:",
"viewDocs": "Просмотреть документацию",
"validationError": "Ошибка проверки",
"connected": "{{name}} подключён",
"connectedDesc": "Ваш канал настроен. Он подключится при запуске шлюза.",
"configureAnother": "Настроить другой канал"
},
"installing": {
"title": "Установка необходимых компонентов",
"subtitle": "Настройка инструментов для вашего AI-ассистента",
"progress": "Прогресс",
"status": {
"pending": "Ожидание",
"installing": "Установка...",
"installed": "Установлено",
"failed": "Ошибка"
},
"error": "Ошибка настройки:",
"restart": "Попробуйте перезапустить приложение",
"wait": "Это может занять несколько моментов...",
"skip": "Пропустить этот шаг"
},
"complete": {
"title": "Настройка завершена!",
"subtitle": "ClawX настроен и готов к использованию. Теперь вы можете начать общение с вашим AI-ассистентом.",
"provider": "AI-провайдер",
"components": "Компоненты",
"gateway": "Шлюз",
"running": "Запущен",
"footer": "Вы можете настраивать навыки и подключать каналы в Настройках"
},
"nav": {
"next": "Далее",
"back": "Назад",
"skipStep": "Пропустить этот шаг",
"skipSetup": "Пропустить настройку",
"getStarted": "Начать"
},
"defaultSkills": {
"opencode": {
"name": "OpenCode",
"description": "AI-помощник по программированию"
},
"python-env": {
"name": "Python-среда",
"description": "Python runtime для навыков"
},
"code-assist": {
"name": "Помощник по коду",
"description": "Анализ и предложения по коду"
},
"file-tools": {
"name": "Инструменты файлов",
"description": "Операции с файлами и управление"
},
"terminal": {
"name": "Терминал",
"description": "Выполнение shell-команд"
}
}
}

View File

@@ -0,0 +1,111 @@
{
"title": "Навыки",
"subtitle": "Просмотр и управление AI-возможностями",
"refresh": "Обновить",
"openFolder": "Открыть папку навыков",
"gatewayWarning": "Шлюз не запущен. Навыки не могут быть загружены без активного шлюза.",
"tabs": {
"installed": "Установленные",
"marketplace": "Маркетплейс"
},
"filter": {
"all": "Все ({{count}})",
"builtIn": "Встроенные ({{count}})",
"marketplace": "Маркетплейс ({{count}})"
},
"search": "Поиск навыков...",
"searchMarketplace": "Поиск на маркетплейсе...",
"searchButton": "Поиск",
"actions": {
"enableVisible": "Включить видимые",
"disableVisible": "Выключить видимые",
"installSkill": "Установить навыки"
},
"noSkills": "Навыки не найдены",
"noSkillsSearch": "Попробуйте другой поисковый запрос",
"noSkillsAvailable": "Навыки недоступны",
"detail": {
"info": "Информация",
"config": "Конфигурация",
"description": "Описание",
"version": "Версия",
"author": "Автор",
"source": "Источник",
"coreSystem": "Системный",
"bundled": "В комплекте",
"userInstalled": "Установлено пользователем",
"enabled": "Включён",
"disabled": "Выключен",
"apiKey": "API-ключ",
"apiKeyPlaceholder": "Введите API-ключ (опционально)",
"apiKeyDesc": "Основной API-ключ для этого навыка. Оставьте пустым, если не требуется или настроено в другом месте.",
"envVars": "Переменные окружения",
"addVariable": "Добавить переменную",
"noEnvVars": "Переменные окружения не настроены.",
"keyPlaceholder": "КЛЮЧ (напр., BASE_URL)",
"valuePlaceholder": "ЗНАЧЕНИЕ",
"envNote": "Примечание: Строки с пустыми ключами будут автоматически удалены при сохранении.",
"saving": "Сохранение...",
"saveConfig": "Сохранить конфигурацию",
"configSaved": "Конфигурация сохранена",
"openManual": "Открыть руководство",
"openActualFolder": "Открыть реальную папку",
"copyPath": "Копировать путь",
"pathUnavailable": "Путь недоступен",
"configurable": "Настраиваемый",
"uninstall": "Удалить",
"enable": "Включить",
"disable": "Выключить"
},
"source": {
"badge": {
"bundled": "В комплекте",
"managed": "Управляемый",
"workspace": "Рабочая область",
"extra": "Дополнительные директории",
"agentsPersonal": "Личные .agents",
"agentsProject": "Проектные .agents",
"unknown": "Неизвестный источник"
}
},
"toast": {
"enabled": "Навык включён",
"disabled": "Навык выключен",
"installed": "Навык установлен и включён",
"uninstalled": "Навык успешно удалён",
"openedEditor": "Открыто в редакторе",
"failedEditor": "Не удалось открыть редактор",
"failedSave": "Не удалось сохранить конфигурацию",
"failedOpenFolder": "Не удалось открыть папку навыков",
"failedInstall": "Не удалось установить",
"failedUninstall": "Не удалось удалить",
"failedFolderNotFound": "Папка навыков ещё не существует. Сначала установите навык.",
"copiedPath": "Путь скопирован",
"failedCopyPath": "Не удалось скопировать путь",
"failedOpenActualFolder": "Не удалось открыть реальную папку навыка",
"searchTimeoutError": "Поиск истёк, проверьте сеть. Вы также можете искать на ClawHub.ai, скачать ZIP и распаковать в \"{{path}}\"",
"installTimeoutError": "Установка истекла, проверьте сеть. Вы также можете скачать ZIP с ClawHub.ai и распаковать в \"{{path}}\"",
"searchRateLimitError": "Превышен лимит поиска. Вы также можете искать на ClawHub.ai, скачать ZIP и распаковать в \"{{path}}\"",
"installRateLimitError": "Превышен лимит установки. Вы также можете скачать ZIP с ClawHub.ai и распаковать в \"{{path}}\"",
"fetchTimeoutError": "Получение навыков истекло, проверьте подключение к сети.",
"fetchRateLimitError": "Превышен лимит получения навыков, попробуйте позже.",
"noBatchEnableTargets": "Все видимые навыки уже включены.",
"noBatchDisableTargets": "Все видимые навыки уже выключены.",
"batchEnabled": "{{count}} навыков включено.",
"batchDisabled": "{{count}} навыков выключено.",
"batchPartial": "Обновлено {{success}} / {{total}} навыков. Некоторые элементы не удались."
},
"marketplace": {
"title": "Маркетплейс",
"installDialogTitle": "Установить навыки",
"installDialogSubtitle": "Обзор по умолчанию, или введите ключевые слова для поиска.",
"sourceLabel": "Источник",
"sourceClawHub": "ClawHub",
"securityNote": "Нажмите на карточку навыка, чтобы просмотреть его документацию и информацию о безопасности на ClawHub перед установкой.",
"manualInstallHint": "Проблемы с сетью? Вы всегда можете скачать ZIP-архивы навыков с ClawHub.ai и распаковать их вручную в \"{{path}}\".",
"searching": "Поиск на ClawHub...",
"noResults": "Навыки по вашему запросу не найдены.",
"emptyPrompt": "Ищите новые навыки для расширения ваших возможностей.",
"searchError": "Ошибка поиска ClawHub. Проверьте подключение или установку."
}
}