Files
LangBot/web/src/i18n/locales/ru-RU.ts
2026-05-02 17:38:40 +08:00

1352 lines
75 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const ruRU = {
sidebar: {
home: 'Главная',
extensions: 'Расширения',
installedPlugins: 'Установленные плагины',
pluginMarket: 'Маркетплейс',
mcpServers: 'MCP-серверы',
pluginPages: 'Страницы плагинов',
pluginPagesTooltip:
'Визуальные страницы, предоставляемые установленными плагинами',
quickStart: 'Быстрый старт',
},
common: {
login: 'Войти',
logout: 'Выйти',
accountOptions: 'Настройки',
account: 'Аккаунт',
integration: 'Интеграция',
email: 'Электронная почта',
password: 'Пароль',
welcome: 'С возвращением в LangBot 👋',
continueToLogin: 'Войдите, чтобы продолжить',
loginSuccess: 'Вход выполнен успешно',
loginFailed: 'Ошибка входа, проверьте адрес электронной почты и пароль',
loginLoadError: 'Не удалось подключиться к серверу',
loginLoadErrorDesc:
'Не удалось подключиться к серверу LangBot. Убедитесь, что сервис запущен, и повторите попытку.',
retry: 'Повторить',
enterEmail: 'Введите адрес электронной почты',
enterPassword: 'Введите пароль',
invalidEmail: 'Пожалуйста, введите корректный адрес электронной почты',
emptyPassword: 'Пожалуйста, введите пароль',
language: 'Язык',
helpDocs: 'Помощь',
featureRequest: 'Запрос функции',
starOnGitHub: 'Поставить звезду на GitHub',
create: 'Создать',
edit: 'Редактировать',
delete: 'Удалить',
add: 'Добавить',
select: 'Выбрать',
cancel: 'Отмена',
submit: 'Отправить',
error: 'Ошибка',
success: 'Успешно',
save: 'Сохранить',
saving: 'Сохранение...',
confirm: 'Подтвердить',
confirmDelete: 'Подтвердить удаление',
deleteConfirmation: 'Вы уверены, что хотите удалить это?',
selectOption: 'Выберите вариант',
selectPreset: 'Выберите шаблон',
required: 'Обязательно',
enable: 'Включить',
name: 'Название',
description: 'Описание',
icon: 'Иконка',
close: 'Закрыть',
deleteSuccess: 'Успешно удалено',
deleteError: 'Ошибка удаления: ',
addRound: 'Добавить раунд',
copy: 'Копировать',
copySuccess: 'Скопировано',
copyFailed: 'Ошибка копирования',
test: 'Тест',
forgotPassword: 'Забыли пароль?',
agreementNotice: 'Продолжая, вы соглашаетесь с нашей',
privacyPolicy: 'Политикой конфиденциальности',
and: 'и',
dataCollectionPolicy: 'Политикой сбора данных',
dataCollectionPolicyUrl: 'https://link.langbot.app/en/docs/data-policy',
loading: 'Загрузка...',
fieldRequired: 'Это поле обязательно для заполнения',
or: 'или',
loginWithSpace: 'Войти через Space',
spaceLoginRecommended:
'Рекомендуется: Используйте официальные стабильные API моделей и облачные сервисы',
loginLocal: 'Войти с локальной учётной записью',
loginWithPassword: 'Войти с паролем',
spaceLoginTitle: 'Войти через Space',
spaceLoginDescription:
'Отсканируйте QR-код или перейдите по ссылке ниже для авторизации',
spaceLoginUserCode: 'Ваш код',
spaceLoginExpires: 'Код истекает через {{seconds}} секунд',
spaceLoginWaiting: 'Ожидание авторизации...',
spaceLoginSuccess: 'Авторизация успешна',
spaceLoginFailed: 'Ошибка входа через Space',
spaceLoginExpired: 'Код авторизации истёк, попробуйте снова',
spaceLoginCancel: 'Отмена',
spaceLoginVisitLink: 'Перейти по ссылке',
spaceLoginProcessing: 'Вход через Space',
spaceLoginProcessingDescription:
'Пожалуйста, подождите, пока мы завершим вход...',
spaceLoginSuccessDescription: 'Перенаправление в LangBot...',
spaceLoginError: 'Ошибка входа',
spaceLoginNoCode: 'Отсутствует код авторизации',
backToLogin: 'Вернуться к входу',
backToHome: 'На главную',
spaceAccountCannotChangePassword:
'Для аккаунтов Space невозможно изменить пароль здесь',
theme: 'Тема',
changePassword: 'Изменить пароль',
currentPassword: 'Текущий пароль',
newPassword: 'Новый пароль',
confirmNewPassword: 'Подтвердите новый пароль',
enterCurrentPassword: 'Введите текущий пароль',
enterNewPassword: 'Введите новый пароль',
enterConfirmPassword: 'Подтвердите новый пароль',
currentPasswordRequired: 'Текущий пароль обязателен',
newPasswordRequired: 'Новый пароль обязателен',
confirmPasswordRequired: 'Подтверждение пароля обязательно',
passwordsDoNotMatch: 'Пароли не совпадают',
changePasswordSuccess: 'Пароль успешно изменён',
changePasswordFailed:
'Не удалось изменить пароль, проверьте текущий пароль',
apiIntegration: 'API-интеграция',
apiKeys: 'API-ключи',
manageApiIntegration: 'Управление API-интеграцией',
manageApiKeys: 'Управление API-ключами',
createApiKey: 'Создать API-ключ',
apiKeyName: 'Имя API-ключа',
apiKeyDescription: 'Описание API-ключа',
apiKeyValue: 'Значение API-ключа',
apiKeyCreated: 'API-ключ успешно создан',
apiKeyDeleted: 'API-ключ успешно удалён',
apiKeyDeleteConfirm: 'Вы уверены, что хотите удалить этот API-ключ?',
apiKeyNameRequired: 'Имя API-ключа обязательно',
copyApiKey: 'Копировать API-ключ',
apiKeyCopied: 'API-ключ скопирован в буфер обмена',
noApiKeys: 'API-ключи не настроены',
apiKeyHint:
'API-ключи позволяют внешним системам получать доступ к API сервисов LangBot',
webhooks: 'Вебхуки',
createWebhook: 'Создать вебхук',
webhookName: 'Имя вебхука',
webhookUrl: 'URL вебхука',
webhookDescription: 'Описание вебхука',
webhookEnabled: 'Включён',
webhookCreated: 'Вебхук успешно создан',
webhookDeleted: 'Вебхук успешно удалён',
webhookDeleteConfirm: 'Вы уверены, что хотите удалить этот вебхук?',
webhookNameRequired: 'Имя вебхука обязательно',
webhookUrlRequired: 'URL вебхука обязателен',
noWebhooks: 'Вебхуки не настроены',
webhookHint:
'Вебхуки позволяют LangBot отправлять события личных и групповых сообщений во внешние системы',
actions: 'Действия',
apiKeyCreatedMessage:
'Пожалуйста, скопируйте этот API-ключ. Если кнопка не работает, скопируйте вручную.',
none: 'Нет',
more: 'Ещё ({{count}})',
less: 'Свернуть',
noItems: 'Нет элементов',
},
notFound: {
title: 'Страница не найдена',
description: 'Запрашиваемая страница не существует.',
back: 'Назад',
home: 'Главная',
help: 'Помощь',
},
models: {
title: 'Модели',
description: 'Настройка и управление моделями, используемыми в конвейерах',
createModel: 'Создать модель',
editModel: 'Редактировать модель',
getModelListError: 'Не удалось получить список моделей: ',
modelName: 'Название модели',
modelProvider: 'Провайдер модели',
modelBaseURL: 'Базовый URL',
modelAbilities: 'Возможности модели',
saveSuccess: 'Успешно сохранено',
saveError: 'Ошибка сохранения: ',
createSuccess: 'Успешно создано',
createError: 'Ошибка создания: ',
deleteSuccess: 'Успешно удалено',
deleteError: 'Ошибка удаления: ',
deleteConfirmation: 'Вы уверены, что хотите удалить эту модель?',
modelNameRequired: 'Название модели не может быть пустым',
modelProviderRequired: 'Провайдер модели не может быть пустым',
requestURLRequired: 'URL запроса не может быть пустым',
apiKeyRequired: 'API-ключ не может быть пустым',
keyNameRequired: 'Имя ключа не может быть пустым',
mustBeValidNumber: 'Должно быть корректным числом',
mustBeTrueOrFalse: 'Должно быть true или false',
requestURL: 'URL запроса',
scanURL: 'URL сканирования моделей',
scanURLPlaceholder:
'Оставьте пустым для использования URL запроса + /models',
scanURLDescription:
'Укажите фактический эндпоинт списка моделей, если сканирование моделей использует другой адрес, нежели вызов модели.',
apiKey: 'API-ключ',
abilities: 'Возможности',
selectModelAbilities: 'Выберите возможности модели',
visionAbility: 'Распознавание изображений',
functionCallAbility: 'Вызов функций',
extraParameters: 'Дополнительные параметры',
addParameter: 'Добавить параметр',
keyName: 'Имя ключа',
type: 'Тип',
value: 'Значение',
string: 'Строка',
number: 'Число',
boolean: 'Логический',
object: 'Объект',
objectJsonPlaceholder: '{ "type": "disabled" }',
invalidJsonObject: 'Значение должно быть допустимым объектом JSON',
selectModelProvider: 'Выберите провайдера модели',
modelProviderDescription:
'Пожалуйста, введите название модели, предоставленное провайдером',
modelManufacturer: 'Производитель модели',
aggregationPlatform: 'Платформа агрегации',
selfDeployed: 'Самостоятельное развёртывание',
builtin: 'Встроенный',
selectModel: 'Выберите модель',
testSuccess: 'Тест успешен',
testError: 'Тест не пройден, проверьте конфигурацию модели',
llmModels: 'LLM-модели',
localProvider: 'Локальный',
localProviderDescription: 'Модели, настроенные и управляемые локально',
spaceProviderDescription:
'Модели, синхронизированные из вашего аккаунта Space',
spaceDisabledForLocalAccount:
'Войдите через Space, чтобы использовать облачные модели',
syncModels: 'Синхронизировать',
syncSuccess:
'Синхронизация завершена: {{created}} создано, {{updated}} обновлено',
syncError: 'Ошибка синхронизации: ',
spaceModelReadOnly: 'Модели Space доступны только для чтения',
noSpaceModels:
'Нет моделей Space. Нажмите «Синхронизировать», чтобы загрузить модели из Space.',
noLocalModels:
'Нет локальных моделей. Нажмите «Создать», чтобы добавить модель.',
providerCount: '{{count}} провайдеров',
addModel: 'Добавить модель',
manualAdd: 'Вручную',
scanAdd: 'Сканировать',
scanModels: 'Сканировать модели',
scanModelsHint:
'Прочитайте доступные модели от текущего провайдера, затем выберите, какие из них добавить.',
scannedModels: 'Отсканированные модели',
scanDebug: 'Информация об отладке',
searchScannedModels: 'Поиск отсканированных моделей',
noScannedModels:
'Пока нет результатов. Нажмите кнопку выше для сканирования.',
noScannedModelsMatch: 'Нет подходящих моделей',
addSelectedModels: 'Добавить выбранные',
addSelectedModelsSuccess: 'Добавлено моделей: {{count}}',
selectAll: 'Выбрать все',
alreadyAdded: 'Уже добавлено',
addLLMModel: 'Добавить LLM-модель',
addEmbeddingModel: 'Добавить Embedding-модель',
provider: 'Провайдер',
existingProvider: 'Существующий провайдер',
newProvider: 'Новый провайдер',
selectProvider: 'Выберите провайдера',
requester: 'Тип провайдера',
selectRequester: 'Выберите тип провайдера',
langbotModelsDescription: 'Облачные модели на базе LangBot Space',
credits: 'Кредиты',
loginWithSpace: 'Войти через Space',
loginToUseModels: 'Войдите через Space, чтобы использовать облачные модели',
noModels: 'Модели не настроены',
langbotModels: 'Модели LangBot',
spaceTrialTooltip:
'Доступны бесплатные пробные кредиты! Войдите через Space, чтобы получить доступ к облачным моделям без настройки.',
unlockModels: 'Войдите для использования',
editProvider: 'Редактировать провайдера',
addProvider: 'Добавить провайдера',
addProviderHint:
'Добавьте провайдеров для использования моделей из других источников',
addProviderHintSimple: 'Добавьте провайдеров для использования моделей',
noProviders: 'Провайдеров пока нет',
providerName: 'Имя провайдера',
providerNameRequired: 'Имя провайдера обязательно',
requesterRequired: 'Тип провайдера обязателен',
providerSaved: 'Провайдер сохранён',
providerCreated: 'Провайдер создан',
providerSaveError: 'Ошибка сохранения провайдера: ',
providerDeleted: 'Провайдер удалён',
providerDeleteError: 'Ошибка удаления провайдера: ',
deleteProviderConfirmation:
'Вы уверены, что хотите удалить этого провайдера?',
loadError: 'Не удалось загрузить данные',
chat: 'Чат',
embedding: 'Embedding',
rerank: 'Переранжирование',
rerankUrlTooltip:
'Полный URL для эндпоинта переранжирования (напр.: https://dashscope.aliyuncs.com/compatible-api/v1/reranks)',
rerankPathTooltip:
'Путь, добавляемый к базовому URL (по умолчанию: rerank, некоторые сервисы используют reranks)',
modelsCount: '{{count}} модель(ей)',
expandModels: 'Развернуть',
collapseModels: 'Свернуть',
fallback: {
primary: 'Основная модель',
fallbackList: 'Резервные модели',
addFallback: 'Добавить резервную модель',
},
},
bots: {
title: 'Боты',
description:
'Создание и управление ботами — точками входа LangBot для подключения к различным платформам',
createBot: 'Создать бота',
selectFromSidebar: 'Выберите бота из боковой панели',
editBot: 'Редактировать бота',
getBotListError: 'Не удалось получить список ботов: ',
botName: 'Имя бота',
botDescription: 'Описание бота',
botNameRequired: 'Имя бота не может быть пустым',
botDescriptionRequired: 'Описание бота не может быть пустым',
adapterRequired: 'Адаптер не может быть пустым',
defaultDescription: 'Бот',
getBotConfigError: 'Не удалось получить конфигурацию бота: ',
saveSuccess: 'Успешно сохранено',
saveError: 'Ошибка сохранения: ',
createSuccess:
'Успешно создано. Пожалуйста, включите или измените привязанный конвейер',
createError: 'Ошибка создания: ',
deleteSuccess: 'Успешно удалено',
deleteError: 'Ошибка удаления: ',
deleteConfirmation: 'Вы уверены, что хотите удалить этого бота?',
platformAdapter: 'Выбор платформы/адаптера',
selectAdapter: 'Выберите адаптер',
adapterConfig: 'Настройка адаптера',
viewAdapterDocs: 'Документация',
bindPipeline: 'Привязать конвейер',
selectPipeline: 'Выберите конвейер',
selectBot: 'Выберите бота',
botLogTitle: 'Журнал бота',
enableAutoRefresh: 'Автообновление',
session: 'Сессия',
yesterday: 'Вчера',
earlier: 'Ранее',
dateFormat: '{{day}}.{{month}}',
setBotEnableError: 'Не удалось изменить статус бота',
log: 'Журнал',
configuration: 'Настройки',
logs: 'Журналы',
basicInfo: 'Основная информация',
basicInfoDescription: 'Задайте имя и описание бота',
routingConnection: 'Маршрутизация и подключение',
routingConnectionDescription:
'Привяжите конвейер, обрабатывающий сообщения для этого бота',
routingRules: 'Правила условной маршрутизации',
routingRulesDescription:
'Правила проверяются по порядку; первое совпадение направляет в соответствующий конвейер. При отсутствии совпадений используется конвейер по умолчанию.',
addRoutingRule: 'Добавить правило',
ruleTypeLauncherType: 'Тип сессии',
ruleTypeLauncherId: 'ID сессии',
ruleTypeMessageContent: 'Содержимое сообщения',
operatorEq: 'Равно',
operatorNeq: 'Не равно',
operatorContains: 'Содержит',
operatorNotContains: 'Не содержит',
operatorStartsWith: 'Начинается с',
operatorRegex: 'Регулярное выражение',
operatorHas: 'Содержит',
operatorNotHas: 'Не содержит',
ruleTypeMessageHasElement: 'Элемент сообщения',
ruleValueElementPlaceholder: 'Выберите тип элемента',
elementImage: 'Изображение',
elementVoice: 'Голос',
elementFile: 'Файл',
elementForward: 'Пересланное',
elementFace: 'Эмодзи',
elementAt: '@Упоминание',
elementAtAll: '@Все',
elementQuote: 'Цитата',
ruleValuePlaceholder: 'Значение для сопоставления',
ruleValueLauncherIdPlaceholder: 'ID группы или пользователя',
ruleValueMessagePlaceholder: 'Текст сообщения',
ruleValuePrefixPlaceholder: 'Напр., !draw',
ruleValueRegexpPlaceholder: 'Напр., ^/help',
pipelineDiscard: 'Отклонить сообщение',
sessionTypePerson: 'Личный чат',
sessionTypeGroup: 'Групповой чат',
adapterConfigDescription: 'Настройте выбранный адаптер платформы',
dangerZone: 'Опасная зона',
dangerZoneDescription: 'Необратимые и деструктивные действия',
deleteBotAction: 'Удалить этого бота',
deleteBotHint:
'После удаления все связанные настройки будут безвозвратно удалены.',
webhookUrl: 'URL обратного вызова Webhook',
webhookUrlCopied: 'URL Webhook скопирован',
webhookUrlHint:
'Нажмите на поле ввода, чтобы выделить всё, затем Ctrl+C (Mac: Cmd+C) для копирования, или нажмите кнопку',
webhookUrlHintEither:
'Используйте любой из двух URL выше в настройках вашей платформы',
webhookSaasHint:
'Для Webhook требуется публично доступный домен. LangBot Cloud предоставляет готовую публичную конечную точку для вашего бота.',
webhookSaasLink: 'Подробнее о LangBot Cloud',
adapterCategory: {
popular: 'Популярные',
china: 'Китай',
global: 'Глобальные',
protocol: 'Протокол',
},
logLevel: 'Уровень журнала',
allLevels: 'Все уровни',
selectLevel: 'Выберите уровень',
levelsSelected: 'уровней выбрано',
viewDetailedLogs: 'Подробные журналы',
viewDetails: 'Подробности',
collapse: 'Свернуть',
imagesAttached: 'изображений прикреплено',
noLogs: 'Журналов пока нет',
sessionMonitor: {
title: 'Сессии',
sessions: 'Сессии',
noSessions: 'Сессии не найдены',
selectSession: 'Выберите сессию для просмотра сообщений',
noMessages: 'В этой сессии нет сообщений',
messages: 'сообщений',
messageCount: '{{count}} сообщений',
loading: 'Загрузка...',
loadingSessions: 'Загрузка сессий...',
loadingMessages: 'Загрузка сообщений...',
user: 'Пользователь',
variables: 'Переменные',
platform: 'Платформа',
lastActive: 'Последняя активность',
refresh: 'Обновить',
active: 'Активна',
inactive: 'Неактивна',
discarded: 'Отклонена',
userMessage: 'Пользователь',
botMessage: 'Ассистент',
},
},
plugins: {
title: 'Расширения',
description:
'Установка и настройка плагинов для расширения функциональности. Выберите их в настройках конвейера',
createPlugin: 'Создать плагин',
editPlugin: 'Редактировать плагин',
installed: 'Установленные',
marketplace: 'Маркетплейс',
arrange: 'Сортировка плагинов',
install: 'Установить',
installPlugin: 'Установить плагин',
onlySupportGithub:
'В настоящее время поддерживается установка только с GitHub',
enterGithubLink: 'Введите ссылку на GitHub плагина',
installing: 'Установка плагина...',
installSuccess: 'Плагин успешно установлен',
installFailed: 'Ошибка установки плагина:',
searchPlugin: 'Поиск плагинов',
sortBy: 'Сортировать по',
mostStars: 'Больше всего звёзд',
recentlyAdded: 'Недавно добавленные',
recentlyUpdated: 'Недавно обновлённые',
noMatchingPlugins: 'Подходящие плагины не найдены',
loading: 'Загрузка...',
getPluginListError: 'Не удалось получить список плагинов:',
noPluginInstalled: 'Плагины не установлены',
pluginConfig: 'Настройка плагина',
pluginSort: 'Порядок плагинов',
pluginSortDescription:
'Порядок плагинов влияет на очерёдность обработки одного события. Перетащите карточку плагина для сортировки',
pluginSortSuccess: 'Порядок плагинов обновлён',
pluginSortError: 'Ошибка сортировки плагинов: ',
pluginNoConfig: 'У плагина нет параметров настройки.',
systemDisabled: 'Система плагинов отключена',
systemDisabledDesc:
'Система плагинов не включена. Измените конфигурацию согласно документации',
connectionError: 'Ошибка подключения системы плагинов',
connectionErrorDesc:
'Проверьте конфигурацию системы плагинов или обратитесь к администратору.',
errorDetails: 'Подробности ошибки',
loadingStatus: 'Проверка статуса системы плагинов...',
failedToGetStatus: 'Не удалось получить статус системы плагинов',
pluginSystemNotReady:
'Система плагинов не готова, невозможно выполнить эту операцию',
debugInfo: 'Отладочная информация',
debugInfoTitle: 'Отладочная информация плагина',
debugUrl: 'URL для отладки',
debugKey: 'Ключ отладки',
noDebugKey: '(Не задан)',
debugKeyDisabled:
'Ключ отладки не задан, аутентификация при отладке плагина не требуется',
failedToGetDebugInfo: 'Не удалось получить отладочную информацию',
copiedToClipboard: 'Скопировано в буфер обмена',
deleting: 'Удаление...',
deletePlugin: 'Удалить плагин',
cancel: 'Отмена',
saveConfig: 'Сохранить настройки',
saving: 'Сохранение...',
confirmDeletePlugin:
'Вы уверены, что хотите удалить плагин ({{author}}/{{name}})?',
deleteDataCheckbox:
'Также удалить конфигурацию плагина и постоянное хранилище',
confirmDelete: 'Подтвердить удаление',
deleteError: 'Ошибка удаления: ',
close: 'Закрыть',
deleteConfirm: 'Подтверждение удаления',
deleteSuccess: 'Удаление успешно',
modifyFailed: 'Ошибка изменения: ',
componentName: {
Tool: 'Инструмент',
EventListener: 'Обработчик событий',
Command: 'Команда',
KnowledgeEngine: 'Движок знаний',
Parser: 'Парсер',
Page: 'Страница',
},
uploadLocal: 'Загрузить локально',
debugging: 'Отладка',
uploadLocalPlugin: 'Загрузить локальный плагин',
dragToUpload: 'Перетащите файл плагина сюда для загрузки',
unsupportedFileType:
'Неподдерживаемый тип файла, поддерживаются только файлы .lbpkg и .zip',
uploadingPlugin: 'Загрузка плагина...',
uploadSuccess: 'Загрузка успешна',
uploadFailed: 'Ошибка загрузки',
selectFileToUpload: 'Выберите файл плагина для загрузки',
askConfirm:
'Вы уверены, что хотите установить плагин "{{name}}" ({{version}})?',
fromGithub: 'С GitHub',
fromLocal: 'Из локального файла',
fromMarketplace: 'Из маркетплейса',
componentsList: 'Компоненты: ',
noComponents: 'Нет компонентов',
delete: 'Удалить плагин',
update: 'Обновить плагин',
new: 'Новый',
updateConfirm: 'Подтверждение обновления',
confirmUpdatePlugin:
'Вы уверены, что хотите обновить плагин ({{author}}/{{name}})?',
confirmUpdate: 'Подтвердить обновление',
updating: 'Обновление...',
updateSuccess: 'Плагин успешно обновлён',
updateError: 'Ошибка обновления: ',
saveConfigSuccessNormal: 'Конфигурация успешно сохранена',
saveConfigError: 'Ошибка сохранения конфигурации: ',
config: 'Настройки',
readme: 'Документация',
viewSource: 'Исходный код',
loadingReadme: 'Загрузка документации...',
noReadme: 'Этот плагин не предоставляет документацию README',
fileUpload: {
tooLarge: 'Размер файла превышает лимит 10 МБ',
success: 'Файл успешно загружен',
failed: 'Ошибка загрузки файла',
uploading: 'Загрузка...',
chooseFile: 'Выбрать файл',
addFile: 'Добавить файл',
},
installFromGithub: 'С GitHub',
enterRepoUrl: 'Введите URL репозитория GitHub',
repoUrlPlaceholder: 'Напр., https://github.com/owner/repo',
fetchingReleases: 'Загрузка релизов...',
selectRelease: 'Выберите релиз',
noReleasesFound: 'Релизы не найдены',
fetchReleasesError: 'Не удалось загрузить релизы: ',
selectAsset: 'Выберите файл для установки',
noAssetsFound: 'В этом релизе нет файлов .lbpkg',
fetchAssetsError: 'Не удалось загрузить файлы: ',
backToReleases: 'Назад к релизам',
backToRepoUrl: 'Назад к URL репозитория',
backToAssets: 'Назад к файлам',
releaseTag: 'Тег: {{tag}}',
releaseName: 'Название: {{name}}',
publishedAt: 'Опубликовано: {{date}}',
prerelease: 'Предварительный релиз',
assetSize: 'Размер: {{size}}',
confirmInstall: 'Подтвердить установку',
installFromGithubDesc: 'Установить плагин из GitHub Release',
goToMarketplace: 'Перейти в маркетплейс',
installProgress: {
title: 'Установка {{name}}',
titleGeneric: 'Установка плагина',
overallProgress: 'Общий прогресс',
downloading: 'Загрузка плагина',
installingDeps: 'Установка зависимостей',
initializing: 'Инициализация настроек',
launching: 'Запуск плагина',
completed: 'Завершено',
failed: 'Ошибка',
downloadSize: 'Размер пакета: {{size}}',
depsInfo: '{{count}} зависимостей для установки',
depsProgress:
'{{installed}}/{{total}} установлено · {{remaining}} осталось',
installComplete: 'Плагин успешно установлен',
dismiss: 'Закрыть',
background: 'В фоновом режиме',
taskQueue: 'Задачи установки',
clearCompleted: 'Очистить завершённые',
noTasks: 'Нет задач установки',
},
},
market: {
searchPlaceholder: 'Поиск плагинов...',
searchResults: 'Найдено {{count}} плагинов',
totalPlugins: 'Всего {{count}} плагинов',
noPlugins: 'Нет доступных плагинов',
noResults: 'Подходящие плагины не найдены',
loadingMore: 'Загрузка ещё...',
loading: 'Загрузка...',
allLoaded: 'Все плагины отображены',
install: 'Установить',
installConfirm:
'Вы уверены, что хотите установить плагин "{{name}}" ({{version}})?',
downloadComplete: 'Плагин "{{name}}" загружен',
installFailed: 'Ошибка установки, попробуйте позже',
loadFailed: 'Не удалось получить список плагинов, попробуйте позже',
noDescription: 'Описание отсутствует',
notFound: 'Информация о плагине не найдена',
sortBy: 'Сортировать по',
sort: {
recentlyAdded: 'Недавно добавленные',
recentlyUpdated: 'Недавно обновлённые',
mostDownloads: 'Больше всего загрузок',
leastDownloads: 'Меньше всего загрузок',
},
downloads: 'загрузок',
download: 'Скачать',
repository: 'Репозиторий',
downloadFailed: 'Ошибка загрузки',
noReadme: 'Этот плагин не предоставляет документацию README',
description: 'Описание',
tagLabel: 'Теги',
submissionTitle: 'У вас есть плагин на рассмотрении: {{name}}',
submissionPending: 'Ваш плагин находится на рассмотрении: {{name}}',
submissionApproved: 'Ваш плагин одобрен: {{name}}',
submissionRejected: 'Ваш плагин отклонён: {{name}}',
clickToRevoke: 'Отозвать',
revokeSuccess: 'Успешно отозвано',
revokeFailed: 'Ошибка отзыва',
submissionDetails: 'Детали заявки на плагин',
markAsRead: 'Отметить как прочитанное',
markAsReadSuccess: 'Отмечено как прочитанное',
markAsReadFailed: 'Не удалось отметить как прочитанное',
filterByComponent: 'Компонент',
allComponents: 'Все компоненты',
requestPlugin: 'Запросить плагин',
viewDetails: 'Подробнее',
deprecated: 'Устаревший',
deprecatedTooltip:
'Пожалуйста, установите соответствующий плагин движка знаний.',
tags: {
filterByTags: 'Фильтр по тегам',
selected: 'выбрано',
selectTags: 'Выберите теги',
clearAll: 'Очистить всё',
noTags: 'Нет доступных тегов',
},
},
mcp: {
title: 'MCP',
createServer: 'Добавить MCP-сервер',
editServer: 'Редактировать MCP-сервер',
deleteServer: 'Удалить MCP-сервер',
confirmDeleteServer: 'Вы уверены, что хотите удалить этот MCP-сервер?',
confirmDeleteTitle: 'Удаление MCP-сервера',
getServerListError: 'Не удалось получить список MCP-серверов: ',
serverName: 'Имя сервера',
serverMode: 'Режим подключения',
selectMode: 'Выберите режим',
stdio: 'Режим Stdio',
sse: 'Режим SSE',
http: 'Режим HTTP',
noServerInstalled: 'MCP-серверы не настроены',
serverNameRequired: 'Имя сервера не может быть пустым',
commandRequired: 'Команда не может быть пустой',
urlRequired: 'URL не может быть пустым',
timeoutMustBePositive: 'Таймаут должен быть положительным числом',
command: 'Команда',
args: 'Аргументы',
env: 'Переменные окружения',
url: 'URL',
headers: 'Заголовки',
timeout: 'Таймаут',
addArgument: 'Добавить аргумент',
addEnvVar: 'Добавить переменную окружения',
addHeader: 'Добавить заголовок',
keyName: 'Имя ключа',
value: 'Значение',
testing: 'Тестирование...',
connecting: 'Подключение...',
testSuccess: 'Тест успешен',
testFailed: 'Тест не пройден: ',
testError: 'Ошибка тестирования',
refreshSuccess: 'Обновление успешно',
refreshFailed: 'Ошибка обновления: ',
connectionSuccess: 'Подключение успешно',
connectionFailed: 'Не удалось подключиться, проверьте URL',
connectionFailedStatus: 'Ошибка подключения',
toolsFound: 'инструментов',
unknownError: 'Неизвестная ошибка',
noToolsFound: 'Инструменты не найдены',
parseResultFailed: 'Не удалось разобрать результат теста',
noResultReturned: 'Тест не вернул результат',
getTaskFailed: 'Не удалось получить статус задачи',
noTaskId: 'Не удалось получить ID задачи',
deleteSuccess: 'Успешно удалено',
deleteFailed: 'Ошибка удаления: ',
deleteError: 'Ошибка удаления: ',
saveSuccess: 'Успешно сохранено',
saveError: 'Ошибка сохранения: ',
createSuccess: 'Успешно создано',
createFailed: 'Ошибка создания: ',
createError: 'Ошибка создания: ',
loadFailed: 'Ошибка загрузки',
modifyFailed: 'Ошибка изменения: ',
toolCount: 'Инструменты: {{count}}',
statusConnected: 'Подключён',
statusDisconnected: 'Отключён',
statusError: 'Ошибка подключения',
statusDisabled: 'Отключён',
loading: 'Загрузка...',
starCount: 'Звёзды: {{count}}',
install: 'Установить',
installFromGithub: 'Установить MCP-сервер с GitHub',
add: 'Добавить',
name: 'Название',
nameRequired: 'Название не может быть пустым',
sseTimeout: 'Таймаут SSE',
sseTimeoutDescription: 'Таймаут для установления SSE-соединения',
extraParametersDescription:
'Дополнительные параметры для настройки поведения MCP-сервера',
timeoutMustBeNumber: 'Таймаут должен быть числом',
timeoutNonNegative: 'Таймаут не может быть отрицательным',
sseTimeoutMustBeNumber: 'Таймаут SSE должен быть числом',
sseTimeoutNonNegative: 'Таймаут SSE не может быть отрицательным',
updateSuccess: 'Успешно обновлено',
updateFailed: 'Ошибка обновления: ',
selectFromSidebar: 'Выберите MCP-сервер из боковой панели',
dangerZone: 'Опасная зона',
dangerZoneDescription:
'Необратимые и деструктивные действия для этого MCP-сервера.',
deleteMCPAction: 'Удалить этот MCP-сервер',
deleteMCPHint:
'После удаления конфигурация этого MCP-сервера не может быть восстановлена.',
},
pipelines: {
title: 'Конвейеры',
description:
'Конвейеры определяют поток обработки событий сообщений и привязываются к ботам',
createPipeline: 'Создать конвейер',
selectFromSidebar: 'Выберите конвейер из боковой панели',
editPipeline: 'Редактировать конвейер',
chat: 'Чат',
configuration: 'Настройки',
debugChat: 'Отладочный чат',
getPipelineListError: 'Не удалось получить список конвейеров: ',
daysAgo: 'дней назад',
today: 'Сегодня',
updateTime: 'Обновлено ',
defaultBadge: 'По умолчанию',
sortBy: 'Сортировать по',
newestCreated: 'Сначала новые',
earliestCreated: 'Сначала старые',
recentlyEdited: 'Недавно изменённые',
earliestEdited: 'Давно изменённые',
basicInfo: 'Основная информация',
basicInfoDescription: 'Задайте название, иконку и описание конвейера',
aiCapabilities: 'ИИ',
triggerConditions: 'Триггер',
safetyControls: 'Безопасность',
outputProcessing: 'Вывод',
nameRequired: 'Название не может быть пустым',
descriptionRequired: 'Описание не может быть пустым',
createSuccess: 'Успешно создано. Отредактируйте параметры конвейера',
createError: 'Ошибка создания: ',
saveSuccess: 'Успешно сохранено',
saveError: 'Ошибка сохранения: ',
copySuffix: ' Копия',
deleteConfirmation:
'Вы уверены, что хотите удалить этот конвейер? Боты, привязанные к нему, перестанут работать.',
defaultPipelineCannotDelete: 'Конвейер по умолчанию нельзя удалить',
deleteSuccess: 'Успешно удалено',
deleteError: 'Ошибка удаления: ',
copyConfirmTitle: 'Подтверждение копирования',
copyConfirmation:
'Вы уверены, что хотите скопировать этот конвейер? Будет создан новый конвейер со всеми настройками.',
unsavedChanges: 'У вас есть несохранённые изменения',
dangerZone: 'Опасная зона',
dangerZoneDescription: 'Необратимые и деструктивные действия',
deletePipelineAction: 'Удалить этот конвейер',
deletePipelineHint:
'После удаления боты, привязанные к этому конвейеру, перестанут работать.',
copyPipelineAction: 'Копировать этот конвейер',
copyPipelineHint: 'Создать новый конвейер с дублированием всех настроек.',
extensions: {
title: 'Расширения',
loadError: 'Не удалось загрузить плагины',
saveSuccess: 'Успешно сохранено',
saveError: 'Ошибка сохранения',
noPluginsAvailable: 'Нет доступных плагинов',
disabled: 'Отключено',
noPluginsSelected: 'Плагины не выбраны',
addPlugin: 'Добавить плагин',
selectPlugins: 'Выберите плагины',
pluginsTitle: 'Плагины',
mcpServersTitle: 'MCP-серверы',
noMCPServersSelected: 'MCP-серверы не выбраны',
addMCPServer: 'Добавить MCP-сервер',
selectMCPServers: 'Выберите MCP-серверы',
toolCount: '{{count}} инструментов',
noPluginsInstalled: 'Нет установленных плагинов',
noMCPServersConfigured: 'Нет настроенных MCP-серверов',
selectAll: 'Выбрать все',
enableAllPlugins: 'Включить все плагины',
enableAllMCPServers: 'Включить все MCP-серверы',
allPluginsEnabled: 'Все плагины включены',
allMCPServersEnabled: 'Все MCP-серверы включены',
},
debugDialog: {
title: 'Чат конвейера',
selectPipeline: 'Выберите конвейер',
sessionType: 'Тип сессии',
privateChat: 'Личный чат',
groupChat: 'Групповой чат',
send: 'Отправить',
reset: 'Сбросить диалог',
inputPlaceholder: 'Отправить {{type}} сообщение...',
noMessages: 'Нет сообщений',
userMessage: 'Пользователь',
botMessage: 'Бот',
sendFailed: 'Ошибка отправки',
resetSuccess: 'Диалог успешно сброшен',
resetFailed: 'Ошибка сброса',
loadMessagesFailed: 'Не удалось загрузить сообщения',
loadPipelinesFailed: 'Не удалось загрузить конвейеры',
atTips: 'Упомянуть бота',
streaming: 'Потоковая передача',
streamOutput: 'Поток',
connected: 'WebSocket подключён',
disconnected: 'WebSocket отключён',
connectionError: 'Ошибка подключения WebSocket',
connectionFailed: 'Ошибка подключения WebSocket',
notConnected: 'WebSocket не подключён, повторите попытку позже',
imageUploadFailed: 'Ошибка загрузки изображения',
reply: 'Ответить',
replyTo: 'Ответ на',
showMarkdown: 'Показать Markdown',
showRaw: 'Показать исходный текст',
allMembers: 'Все участники',
file: 'Файл',
voice: 'Голос',
uploadImage: 'Загрузить изображение',
uploading: 'Загрузка...',
},
monitoring: {
title: 'Мониторинг',
description:
'Просмотр журналов выполнения и ошибок конвейера (за последние 24 часа)',
detailedLogs: 'Подробные журналы',
},
},
knowledge: {
title: 'Знания',
createKnowledgeBase: 'Создать базу знаний',
selectFromSidebar: 'Выберите базу знаний из боковой панели',
editKnowledgeBase: 'Редактировать базу знаний',
selectKnowledgeBase: 'Выберите базу знаний',
selectKnowledgeBases: 'Выберите базы знаний',
addKnowledgeBase: 'Добавить базу знаний',
noKnowledgeBaseSelected: 'Базы знаний не выбраны',
empty: 'Пусто',
editDocument: 'Документы',
description: 'Настройка баз знаний для улучшения ответов LLM',
metadata: 'Метаданные',
documents: 'Документы',
kbNameRequired: 'Название базы знаний не может быть пустым',
kbDescriptionRequired: 'Описание базы знаний не может быть пустым',
embeddingModelUUIDRequired: 'Модель Embedding не может быть пустой',
daysAgo: 'дней назад',
today: 'Сегодня',
kbName: 'Название базы знаний',
kbDescription: 'Описание базы знаний',
topK: 'Top K',
topKRequired: 'Top K не может быть пустым',
topKMax: 'Максимальное значение Top K — 30',
topKdescription:
'Указывает количество релевантных документов для извлечения, от 1 до 30.',
defaultDescription: 'База знаний',
embeddingModelUUID: 'Модель Embedding',
selectEmbeddingModel: 'Выберите модель Embedding',
embeddingModelDescription:
'Используется для векторизации текста. Настроить можно на странице моделей',
updateTime: 'Обновлено ',
cannotChangeEmbeddingModel:
'Модель Embedding нельзя изменить после создания базы знаний',
updateKnowledgeBaseSuccess: 'База знаний успешно обновлена',
updateKnowledgeBaseFailed: 'Ошибка обновления базы знаний: ',
documentsTab: {
name: 'Название',
status: 'Статус',
noResults: 'Нет документов',
dragAndDrop: 'Перетащите файлы сюда или нажмите для загрузки',
uploading: 'Загрузка...',
supportedFormats:
'Поддерживаются PDF, Word, TXT, Markdown, HTML, ZIP и другие форматы',
uploadSuccess: 'Файл успешно загружен!',
uploadError: 'Ошибка загрузки файла: ',
uploadingFile: 'Загрузка файла...',
fileSizeExceeded:
'Размер файла превышает 10 МБ. Разделите на файлы меньшего размера.',
actions: 'Действия',
delete: 'Удалить файл',
fileDeleteSuccess: 'Файл успешно удалён',
fileDeleteFailed: 'Ошибка удаления файла: ',
processing: 'Обработка',
completed: 'Завершено',
failed: 'Ошибка',
selectParser: 'Выберите парсер',
builtInParser: 'Предоставлено движком знаний',
noParserAvailable:
'Нет парсера, поддерживающего этот тип файла. Установите плагин-парсер для этого формата.',
installParserHint: 'Найти плагины-парсеры в маркетплейсе →',
confirmUpload: 'Загрузить',
cancelUpload: 'Отмена',
},
deleteKnowledgeBaseConfirmation:
'Вы уверены, что хотите удалить эту базу знаний? Все документы будут удалены.',
retrieve: 'Тест извлечения',
retrieveTest: 'Тест извлечения',
query: 'Запрос',
queryPlaceholder: 'Введите текст запроса...',
distance: 'Расстояние',
content: 'Содержимое',
fileName: 'Имя файла',
noResults: 'Нет результатов',
retrieveError: 'Ошибка извлечения: ',
unknownEngine: 'Неизвестный движок',
knowledgeEngine: 'Движок знаний',
knowledgeEngineRequired: 'Движок знаний обязателен',
selectKnowledgeEngine: 'Выберите движок знаний',
builtInEngine: 'Встроенный движок',
cannotChangeKnowledgeEngine: 'Движок знаний нельзя изменить после создания',
basicInfo: 'Основная информация',
basicInfoDescription: 'Задайте название, иконку и описание базы знаний',
engineSettings: 'Настройки движка',
engineSettingsDescription: 'Конфигурация выбранного движка знаний',
engineSettingsReadonly: 'только чтение в режиме редактирования',
retrievalSettings: 'Настройки извлечения',
retrievalSettingsDescription:
'Настройте способ извлечения документов из базы знаний',
dangerZone: 'Опасная зона',
dangerZoneDescription: 'Необратимые и деструктивные действия',
deleteKbAction: 'Удалить эту базу знаний',
deleteKbHint:
'После удаления все документы и данные будут безвозвратно удалены.',
noEnginesAvailable: 'Нет доступных движков баз знаний',
installEngineHint: 'Сначала установите плагин «Движок знаний»',
createKnowledgeBaseFailed: 'Ошибка создания базы знаний: ',
loadKnowledgeBaseFailed: 'Ошибка загрузки базы знаний: ',
deleteKnowledgeBaseFailed: 'Ошибка удаления базы знаний: ',
getKnowledgeBaseListError: 'Не удалось получить список баз знаний: ',
embeddingModel: 'Модель Embedding',
embeddingModelRequired: 'Модель Embedding обязательна для этого движка',
addExternal: 'Добавить внешнюю базу знаний',
createExternalSuccess: 'Внешняя база знаний успешно создана',
updateExternalSuccess: 'Внешняя база знаний успешно обновлена',
deleteExternalSuccess: 'Внешняя база знаний успешно удалена',
retriever: 'Ретривер',
selectRetriever: 'Выберите ретривер...',
retrieverConfiguration: 'Настройка ретривера',
retrieverInstallInfo: 'Вы можете установить плагины ретривера знаний из',
retrieverMarketLink: 'маркетплейса',
migration: {
title: 'Миграция базы знаний',
description:
'Новая версия переработала базы знаний в архитектуру на основе плагинов. Требуется миграция данных. Старые данные автоматически сохранены в базе данных.',
detected:
'Найдено {{total}} баз знаний для миграции ({{internal}} внутренних, {{external}} внешних).',
startWithInstall: 'Автоустановка плагина и миграция',
startDataOnly: 'Только миграция данных',
dataOnlyHint:
'«Только миграция данных» подходит для офлайн/интранет-сред. Установите плагин вручную после миграции.',
dismiss: 'Отклонить исходные данные',
running: 'Миграция баз знаний, пожалуйста, подождите...',
success: 'Миграция базы знаний завершена',
error: 'Ошибка миграции базы знаний: ',
dismissError: 'Ошибка операции',
retry: 'Повторить',
},
},
register: {
title: 'Инициализация LangBot 👋',
description: 'Вы впервые запускаете LangBot',
adminAccountNote:
'Указанная учётная запись будет настроена как администратор',
register: 'Регистрация',
initWithSpace: 'Инициализация через Space',
spaceRecommended:
'Рекомендуется: Используйте официальные стабильные API моделей и облачные сервисы',
spaceInfoTip1:
'Space предоставляет единую службу аутентификации без загрузки конфиденциальной информации.',
spaceInfoTip2:
'Вход через Space даёт доступ к моделям LangBot и облачным сервисам, включая бесплатные кредиты для быстрого старта.',
spaceInfoTip3:
'Способ входа не влияет на другие функции. Вы можете настроить модели из других источников в любое время.',
registerLocal: 'Зарегистрировать локальную учётную запись',
registerWithPassword: 'Зарегистрироваться с email и паролем',
initSuccess: 'Инициализация успешна, пожалуйста, войдите',
initFailed: 'Ошибка инициализации: ',
},
resetPassword: {
title: 'Сброс пароля 🔐',
description:
'Введите ключ восстановления и новый пароль для сброса пароля учётной записи',
recoveryKey: 'Ключ восстановления',
recoveryKeyDescription:
'Хранится в `system.recovery_key` файла конфигурации `data/config.yaml`',
newPassword: 'Новый пароль',
enterRecoveryKey: 'Введите ключ восстановления',
enterNewPassword: 'Введите новый пароль',
recoveryKeyRequired: 'Ключ восстановления не может быть пустым',
newPasswordRequired: 'Новый пароль не может быть пустым',
resetPassword: 'Сбросить пароль',
resetting: 'Сброс...',
resetSuccess: 'Пароль успешно сброшен, пожалуйста, войдите',
resetFailed: 'Ошибка сброса пароля, проверьте email и ключ восстановления',
backToLogin: 'Вернуться к входу',
},
embedding: {
description: 'Управление моделями Embedding для векторизации текста',
createModel: 'Создать модель Embedding',
editModel: 'Редактировать модель Embedding',
getModelListError: 'Не удалось получить список моделей Embedding: ',
embeddingModels: 'Embedding',
extraParametersDescription:
'Будут добавлены к телу запроса, например encoding_format, dimensions и т.д.',
},
llm: {
description: 'Управление LLM-моделями для генерации диалогов',
llmModels: 'LLM',
extraParametersDescription:
'Будут добавлены к телу запроса, например max_tokens, temperature, top_p и т.д.',
},
version: {
newVersionAvailable: 'Доступна новая версия',
viewUpdateGuide: 'Руководство по обновлению',
noReleaseNotes: 'Примечания к выпуску недоступны',
},
account: {
settings: 'Настройки аккаунта',
setPassword: 'Установить пароль',
passwordSetSuccess: 'Пароль успешно установлен',
passwordStatus: 'Локальный пароль',
passwordSet: 'Установлен',
passwordNotSet: 'Не установлен',
passwordSetDescription:
'Пароль установлен, вы можете входить с email и паролем',
spaceStatus: 'Аккаунт Space',
spaceBound: 'Привязан',
spaceNotBound: 'Не привязан',
spaceBoundDescription:
'Аккаунт Space привязан, доступны официальные API моделей и облачные сервисы',
bindSpace: 'Привязать аккаунт Space',
bindSpaceDescription:
'Привяжите для использования официальных API моделей и облачных сервисов',
bindSpaceButton: 'Привязать',
bindSpaceConfirmTitle: 'Подтверждение привязки',
bindSpaceConfirmDescription:
'Вы собираетесь привязать локальный экземпляр к аккаунту Space',
bindSpaceWarning:
'После привязки ваш email для входа будет изменён с {{localEmail}} на email аккаунта Space.',
bindSpaceSuccess: 'Аккаунт Space успешно привязан',
bindSpaceFailed: 'Не удалось привязать аккаунт Space',
bindSpaceInvalidState:
'Недействительный запрос привязки. Повторите попытку из настроек аккаунта.',
setPasswordHint: 'Установите пароль для входа с email и паролем',
spaceEmailMismatch:
'Email входа через Space не совпадает с email локальной учётной записи',
},
monitoring: {
title: 'Мониторинг',
description:
'Мониторинг активности ботов, вызовов LLM и производительности системы',
overview: 'Обзор',
totalMessages: 'Всего сообщений',
llmCallsCount: 'Вызовы LLM',
modelCallsCount: 'Вызовы моделей',
successRate: 'Доля успешных',
activeSessions: 'Активные сессии',
last24Hours: 'За последние 24 часа',
filters: {
title: 'Фильтры',
bot: 'Бот',
pipeline: 'Конвейер',
allBots: 'Все боты',
selectBot: 'Выберите бота',
allPipelines: 'Все конвейеры',
selectPipeline: 'Выберите конвейер',
loading: 'Загрузка...',
timeRange: 'Период',
customRange: 'Произвольный период',
from: 'С',
to: 'По',
apply: 'Применить',
reset: 'Сбросить фильтры',
lastHour: 'За последний час',
last6Hours: 'За последние 6 часов',
last24Hours: 'За последние 24 часа',
last7Days: 'За последние 7 дней',
last30Days: 'За последние 30 дней',
},
tabs: {
messages: 'Записи сообщений',
llmCalls: 'Вызовы LLM',
embeddingCalls: 'Вызовы Embedding',
modelCalls: 'Вызовы моделей',
feedback: 'Обратная связь',
sessions: 'Анализ сессий',
errors: 'Журнал ошибок',
},
messageList: {
timestamp: 'Время',
bot: 'Бот',
pipeline: 'Конвейер',
message: 'Сообщение',
sessionId: 'ID сессии',
status: 'Статус',
actions: 'Действия',
viewDetails: 'Подробнее',
copyId: 'Копировать ID',
noMessages: 'Сообщения не найдены',
noMessagesDescription: 'Попробуйте изменить фильтры или проверьте позже',
loading: 'Загрузка сообщений...',
loadMore: 'Загрузить ещё',
autoRefresh: 'Автообновление',
platform: 'Роль',
user: 'Пользователь',
level: 'Уровень',
runner: 'Обработчик',
viewConversation: 'Просмотр диалога',
},
llmCalls: {
title: 'Вызовы LLM',
model: 'Модель',
tokens: 'Токены',
duration: 'Длительность',
cost: 'Стоимость',
noData: 'Вызовы LLM не найдены',
inputTokens: 'Входные токены',
outputTokens: 'Выходные токены',
totalTokens: 'Всего токенов',
avgDuration: 'Средняя длительность',
calls: 'Вызовы',
},
embeddingCalls: {
title: 'Вызовы Embedding',
model: 'Модель',
tokens: 'Токены',
duration: 'Длительность',
noData: 'Вызовы Embedding не найдены',
promptTokens: 'Токены запроса',
totalTokens: 'Всего токенов',
inputCount: 'Количество входов',
knowledgeBase: 'База знаний',
queryText: 'Запрос',
},
modelCalls: {
title: 'Вызовы моделей',
llmModel: 'LLM',
embeddingModel: 'Embedding',
embeddingCall: 'Embedding',
retrieveCall: 'Извлечение',
noData: 'Вызовы моделей не найдены',
},
sessions: {
sessionId: 'ID сессии',
messageCount: 'Сообщений',
duration: 'Длительность',
lastActivity: 'Последняя активность',
noSessions: 'Сессии не найдены',
startTime: 'Время начала',
messageStats: 'Статистика сообщений',
totalMessages: 'Всего сообщений',
successMessages: 'Успешных',
errorMessages: 'С ошибками',
llmStats: 'Статистика LLM',
noData: 'Сессия не найдена',
},
errors: {
title: 'Ошибки',
errorType: 'Тип ошибки',
errorMessage: 'Сообщение об ошибке',
occurredAt: 'Время возникновения',
noErrors: 'Ошибки не найдены',
stackTrace: 'Стек вызовов',
},
feedback: {
title: 'Обратная связь',
totalFeedback: 'Всего отзывов',
totalLikes: 'Лайков',
totalDislikes: 'Дизлайков',
satisfactionRate: 'Уровень удовлетворённости',
like: 'Нравится',
dislike: 'Не нравится',
noFeedback: 'Отзывов пока нет',
noFeedbackDescription: 'Отзывы пользователей будут отображаться здесь',
feedbackList: 'Список отзывов',
feedbackContent: 'Содержание отзыва',
contextInfo: 'Контекстная информация',
userId: 'ID пользователя',
messageId: 'ID сообщения',
streamId: 'ID потока',
inaccurateReasons: 'Причины неточности',
platform: 'Платформа',
exportFeedback: 'Экспорт отзывов',
},
queries: {
title: 'Запросы',
},
messageDetails: {
noData: 'Нет вызовов LLM или ошибок для этого запроса',
},
queryVariables: {
title: 'Переменные запроса',
},
trafficChart: {
title: 'Обзор трафика',
messages: 'Сообщения',
llmCalls: 'Вызовы LLM',
noData: 'Нет данных о трафике',
},
viewMonitoring: 'Мониторинг',
refreshData: 'Обновить данные',
exportData: 'Экспорт данных',
export: {
title: 'Экспорт данных',
exporting: 'Экспорт...',
messages: 'Сообщения',
llmCalls: 'Вызовы LLM',
embeddingCalls: 'Вызовы Embedding',
errors: 'Журнал ошибок',
sessions: 'Сессии',
feedback: 'Отзывы пользователей',
},
},
storageAnalysis: {
title: 'Анализ хранилища',
description: 'Проверьте использование хранилища и кандидатов на очистку',
openDialog: 'Открыть анализ',
dialogTitle: 'Анализ хранилища',
generatedAt: 'Создано {{time}}',
loading: 'Загрузка...',
refresh: 'Обновить',
totalSize: 'Общий размер',
binaryStorage: 'Бинарное хранилище плагинов',
uploadCleanup: 'Просроченные загрузки',
logCleanup: 'Просроченные журналы',
sections: 'Разделы хранилища',
monitoringTables: 'Таблицы мониторинга',
runtimeTasks: 'Задачи runtime',
cleanupPolicy: 'Политика очистки',
uploadRetention: 'Хранение загрузок',
logRetention: 'Хранение журналов',
databaseType: 'Тип базы данных',
days: 'дн.',
missing: 'Нет',
expiredUploads: 'Просроченные загрузки',
expiredLogs: 'Просроченные журналы',
noExpiredUploads: 'Нет просроченных загруженных файлов',
noExpiredLogs: 'Нет просроченных журналов',
sectionNames: {
database: 'База данных',
logs: 'Журналы',
storage: 'Загруженные файлы',
vector_store: 'Векторное хранилище',
plugins: 'Плагины',
mcp: 'MCP',
temp: 'Временные файлы',
},
},
limitation: {
maxBotsReached:
'Достигнуто максимальное количество ботов ({{max}}). Удалите существующего бота перед созданием нового.',
maxPipelinesReached:
'Достигнуто максимальное количество конвейеров ({{max}}). Удалите существующий конвейер перед созданием нового.',
maxExtensionsReached:
'Достигнуто максимальное количество расширений ({{max}}). Удалите существующий MCP-сервер или плагин перед добавлением нового.',
},
wizard: {
sidebarDescription: 'Создать бота с пошаговым руководством',
loading: 'Загрузка мастера...',
loadError: 'Не удалось загрузить данные мастера',
skip: 'Пропустить',
skipConfirmMessage:
'Вы можете вернуться к мастеру быстрого старта из меню аккаунта позже или создать бота вручную.',
skipConfirmOk: 'ОК',
prev: 'Назад',
next: 'Далее',
finish: 'Создать и развернуть',
confirmCreateBot: 'Подтвердить, создать бота',
createSuccess: 'Конвейер создан и привязан к боту!',
botCreateSuccess: 'Бот успешно создан!',
botSaveSuccess: 'Конфигурация бота сохранена и включена!',
createError: 'Не удалось создать ресурсы',
spaceAuthError: 'Не удалось инициировать авторизацию через Space',
skipSaveError: 'Не удалось сохранить статус пропуска. Повторите попытку.',
completeSaveError:
'Не удалось сохранить статус завершения. Повторите попытку.',
step: {
platform: 'Платформа',
botConfig: 'Настройка бота',
aiEngine: 'ИИ-движок',
done: 'Готово',
},
platform: {
title: 'Выберите платформу',
description: 'Выберите мессенджер, к которому подключится ваш бот.',
},
botConfig: {
title: 'Настройте бота',
description: 'Настройте бота и проверьте его работу перед продолжением.',
saveBot: 'Сохранить и включить бота',
resaveBot: 'Пересохранить конфигурацию',
botSaved:
'Конфигурация бота сохранена и включена. Проверьте журналы для подтверждения подключения.',
logsTitle: 'Журналы бота',
logsDescription:
'Отслеживайте активность бота для проверки подключения к платформе.',
},
aiEngine: {
title: 'Выберите ИИ-движок',
description:
'Выберите ИИ-движок, который будет управлять интеллектом вашего бота.',
},
spaceBanner: {
message:
'Подключитесь к LangBot Space для бесплатных пробных кредитов и мгновенной настройки!',
action: 'Авторизация через Space',
},
config: {
botInfo: 'Информация о боте',
botNamePlaceholder: 'Введите имя бота',
botDescPlaceholder: 'Введите описание бота (необязательно)',
platformConfig: 'Настройка {{platform}}',
aiConfig: 'Настройка {{engine}}',
},
done: {
title: 'Всё готово!',
description:
'Ваш бот создан и подключён к конвейеру ИИ. Теперь вы можете управлять им из рабочей панели.',
backToWorkbench: 'Вернуться к рабочей панели',
},
},
pluginPages: {
selectFromSidebar: 'Выберите страницу плагина на боковой панели',
invalidPage: 'Недопустимая страница плагина',
},
};
export default ruRU;