Files
agent-desk-ng/web/messages/ru-RU.json
mono 2f7a491666 feat: harden support, localize knowledge and add operator availability [skip ci]
Source-only publication of reviewed commit 64e96a7f423673dc29ad56485be9fc79bce8af1c.

Passed in isolation: focused frontend/backend tests, race checks, TypeScript typecheck, lint, Go compilation, Flowgram build, and deterministic SDK build/tests.

Not accepted as a production release: Next.js export/native assembly remains blocked by environment memory limits; browser interaction and MySQL staging acceptance remain unverified. No production server, database/schema, runtime configuration, deployment, release tag, or workflow execution was performed.

Expected source tree: 0a4a7528e9.
2026-10-16 15:21:42 +00:00

3757 lines
250 KiB
JSON
Raw Permalink 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.

{
"app": {
"brand": "Agent Desk",
"metadataTitle": "Панель администратора ИИ-поддержки",
"metadataDescription": "Панель администратора ИИ-поддержки"
},
"common": {
"language": "Язык",
"notSignedIn": "Вы не вошли в систему",
"guest": "гость",
"loading": "Загрузка...",
"loadingData": "Загрузка данных...",
"emptyData": "Нет данных",
"searchKeyword": "Поиск по ключевому слову",
"emptyOptions": "Нет вариантов",
"close": "Закрыть",
"fullscreen": "Развернуть на весь экран",
"exitFullscreen": "Выйти из полноэкранного режима",
"selectedCount": "Выбрано: {count}",
"expand": "Развернуть",
"collapse": "Свернуть",
"cancel": "Отмена",
"status": "Статус",
"save": "Сохранить",
"confirm": "Подтвердить",
"actions": "Действия",
"name": "Название",
"saving": "Сохранение...",
"reset": "Сбросить",
"operationFailed": "Не удалось выполнить операцию. Повторите попытку.",
"loadFailed": "Не удалось загрузить данные. Повторите попытку.",
"enabled": "Включено",
"disabled": "Отключено"
},
"language": {
"enUS": "English",
"zhCN": "中文 (Chinese)",
"ruRU": "Русский",
"viVN": "Tiếng Việt",
"selectLanguage": "Выберите язык интерфейса"
},
"organization": {
"createTitle": "Создание организации",
"createDescription": "Создайте новую организацию / рабочее пространство для вашей команды.",
"name": "Название организации",
"namePlaceholder": "например, Acme Corp",
"code": "Slug / код (необязательно)",
"codePlaceholder": "например, acme-corp",
"create": "Создать организацию",
"creating": "Создание...",
"created": "Организация «{name}» успешно создана",
"createFailed": "Не удалось создать организацию",
"nameRequired": "Название организации обязательно",
"manageTitle": "Управление организацией",
"general": "Общие настройки",
"members": "Участники команды",
"addMember": "Добавить участника",
"emailOrUsername": "Email или имя пользователя",
"emailOrUsernamePlaceholder": "например, user@company.com или username",
"role": "Роль",
"owner": "Владелец",
"admin": "Администратор",
"member": "Участник",
"add": "Добавить",
"adding": "Добавление...",
"remove": "Удалить",
"removeConfirm": "Вы уверены, что хотите удалить этого участника?",
"memberAdded": "Участник успешно добавлен",
"memberRemoved": "Участник удалён",
"updated": "Настройки организации обновлены",
"save": "Сохранить изменения",
"saving": "Сохранение..."
},
"pagination": {
"pageSummary": "Страница {page} из {totalPages}",
"total": "Записей: {total}",
"pageSize": "По {pageSize} на странице",
"previous": "Назад",
"next": "Вперёд"
},
"confirm": {
"title": "Подтверждение действия",
"description": "После подтверждения действие будет выполнено.",
"confirm": "Подтвердить",
"cancel": "Отмена"
},
"realtime": {
"connecting": "Подключение канала реального времени",
"connected": "Канал реального времени подключён",
"disconnected": "Канал реального времени отключён",
"compactConnecting": "Real-time: подключение",
"compactConnected": "Real-time: на связи",
"compactDisconnected": "Real-time: нет связи"
},
"notification": {
"new": "Новое уведомление",
"view": "Просмотреть",
"openFailed": "Не удалось открыть уведомление.",
"connectFailed": "Не удалось подключиться к службе уведомлений.",
"loadFailed": "Не удалось загрузить уведомления.",
"all": "Все",
"unread": "Непрочитанные",
"read": "Прочитанные",
"refresh": "Обновить",
"markAllRead": "Отметить все как прочитанные",
"markAllReadSuccess": "Все уведомления отмечены как прочитанные.",
"markAllReadFailed": "Не удалось отметить все уведомления как прочитанные.",
"fallbackTitle": "Уведомление",
"loading": "Загрузка уведомлений",
"empty": "Уведомлений нет",
"ticketAssignedTitle": "Обращение назначено",
"ticketAssignedLine": "Обращение {ticketNo} назначено на вас.",
"assignmentReason": "Причина назначения: {reason}",
"conversationTransferredTitle": "Диалог передан",
"conversationAutoAssignedTitle": "Диалог назначен автоматически",
"conversationAssignedTitle": "Диалог назначен",
"conversationAssignedLine": "Диалог #{conversationId} назначен на вас.",
"transferReason": "Причина передачи: {reason}"
},
"json": {
"invalid": "Некорректный JSON.",
"valid": "Корректно",
"invalidLabel": "Некорректно",
"readyHint": "Введите корректный JSON, чтобы проверить вызов инструмента.",
"empty": "Нет данных"
},
"api": {
"requestFailed": "Запрос не выполнен.",
"authExpired": "Сессия истекла. Войдите снова.",
"customerSessionNotReady": "Чат поддержки ещё не готов.",
"supportAuthenticationRequired": "Не удалось подтвердить аккаунт поддержки. Перезагрузите чат и повторите попытку. Гостевая сессия не открыта."
},
"supportHelpWorkbench": {
"title": "Центр справки",
"createPage": "Новая страница",
"createChildPage": "Новая вложенная страница",
"createDescription": "Страница появится в навигации справки и может содержать контент.",
"createAndEdit": "Создать и редактировать",
"creating": "Создание...",
"created": "Страница создана",
"pageTitle": "Заголовок страницы",
"searchPlaceholder": "Поиск страниц",
"filterAll": "Все",
"filterDraft": "Черновик",
"filterPublished": "Опубликовано",
"filterHidden": "Скрыто",
"sortDisabledDuringSearch": "В результатах поиска сортировка недоступна",
"loading": "Загрузка страниц...",
"empty": "Страниц справки нет",
"selectPrompt": "Выберите страницу слева или создайте новую",
"pageSettings": "Настройки страницы",
"parentPage": "Родительская страница",
"selectParentPage": "Выберите родительскую страницу",
"rootDirectory": "Корень",
"slug": "Slug",
"slugFormatHint": "Используйте только буквы, цифры и дефисы (-).",
"slugChangeWarning": "Изменение slug сделает предыдущий URL недействительным. Обновите внешние ссылки.",
"status": "Статус",
"selectStatus": "Выберите статус",
"statusDraft": "Черновик",
"statusPublished": "Опубликовано",
"statusHidden": "Скрыто",
"summary": "Краткое описание страницы",
"summaryPlaceholder": "Используется в навигации справки, рекомендациях и результатах поиска",
"contentPlaceholder": "Напишите содержимое страницы",
"save": "Сохранить",
"saving": "Сохранение...",
"saved": "Страница сохранена",
"settingsSaved": "Настройки страницы сохранены",
"savedState": "Все изменения сохранены",
"unsaved": "Есть несохранённые изменения",
"unsavedLeaveConfirm": "На этой странице есть несохранённые изменения. Всё равно уйти?",
"unsavedLeaveTitle": "Отменить несохранённые изменения?",
"discardChanges": "Отменить изменения",
"continueEditing": "Продолжить редактирование",
"publishedSaveWarning": "Сохранение опубликованной страницы сразу обновит публичный контент",
"saveBeforeStatusChange": "Сохраните изменения перед сменой статуса публикации",
"publishedAction": "Опубликовать",
"publishedConfirmTitle": "Опубликовать «{title}»?",
"publishedConfirmDescription": "Страница сразу станет публично доступной.",
"publishedSuccess": "Страница опубликована",
"draftAction": "Снять с публикации",
"draftConfirmTitle": "Снять с публикации «{title}»?",
"draftConfirmDescription": "Страница больше не будет доступна из публичного центра справки.",
"draftSuccess": "Страница возвращена в черновики",
"withdrawAction": "Снять с публикации",
"hiddenAction": "Скрыть",
"hiddenConfirmTitle": "Скрыть «{title}»?",
"hiddenConfirmDescription": "Страница больше не будет публично доступна, но её содержимое останется в админке.",
"hiddenSuccess": "Страница скрыта",
"openPublicPage": "Открыть публичную страницу",
"collapse": "Свернуть вложенные страницы",
"expand": "Развернуть вложенные страницы",
"dragPage": "Перетащите страницу «{title}», чтобы изменить порядок",
"dragDisabled": "В текущем состоянии сортировка недоступна",
"sameLevelOnly": "Страницы можно переставлять только внутри одного родителя",
"sortSaved": "Порядок страниц обновлён",
"pageActions": "Действия со страницей: {title}",
"deletePage": "Удалить страницу",
"deleteConfirm": "Удалить «{title}»? Страницы с вложенными страницами удалить нельзя.",
"deleteConfirmTitle": "Удалить «{title}»?",
"deleted": "Страница удалена",
"cancel": "Отмена"
},
"editor": {
"placeholder": "Введите содержимое...",
"undo": "Отменить",
"redo": "Повторить",
"bold": "Полужирный",
"underline": "Подчёркнутый",
"italic": "Курсив",
"strike": "Зачёркнутый",
"heading1": "Заголовок 1",
"heading2": "Заголовок 2",
"inlineCode": "Встроенный код",
"codeBlock": "Блок кода",
"bulletList": "Маркированный список",
"orderedList": "Нумерованный список",
"quote": "Цитата",
"link": "Ссылка",
"image": "Изображение",
"linkText": "текст ссылки",
"promptLinkUrl": "Введите URL ссылки",
"fullscreen": "Полный экран",
"exitFullscreen": "Выйти из полноэкранного режима",
"previewOnly": "Только просмотр",
"modeLabelMarkdown": "Markdown",
"modeLabelRichText": "Rich Text",
"modeSwitchTitle": "Переключить в режим {mode}?",
"modeSwitchDescription": "Содержимое Rich Text будет преобразовано в Markdown. Сложные стили, встроенное содержимое или часть структуры могут не сохраниться.",
"modeSwitchAction": "Преобразовать и переключить",
"modeSwitchCancel": "Оставить текущий режим",
"modeSwitchLabel": "Режим редактора"
},
"locale": {
"zh-CN": "简体中文",
"en-US": "English",
"ru-RU": "Русский"
},
"auth": {
"checkingSession": "Проверяем вашу сессию",
"syncingProfile": "Синхронизируем профиль администратора и разрешения",
"loginSuccess": "Вход выполнен. Переходим в панель управления.",
"loginFailed": "Не удалось войти",
"loadingOptions": "Загрузка способов входа...",
"optionsLoadFailed": "Не удалось загрузить способы входа.",
"welcome": "С возвращением",
"loginDescription": "Войдите в учётную запись {brand}",
"username": "Имя пользователя",
"usernamePlaceholder": "Имя пользователя или email",
"password": "Пароль",
"passwordPlaceholder": "Введите пароль",
"forgotPassword": "Забыли пароль?",
"signingIn": "Выполняется вход...",
"signIn": "Войти",
"continueWith": "Или продолжить с",
"wxworkSignIn": "Войти через WeCom",
"oidcSignIn": "Войти через DOS ID",
"redirectingToOidc": "Перенаправление в DOS ID...",
"noAccount": "Нет учётной записи?",
"signUp": "Зарегистрироваться",
"termsPrefix": "Нажимая «Продолжить», вы соглашаетесь с нашими",
"termsOfService": "Условиями использования",
"termsJoiner": "и",
"privacyPolicy": "Политикой конфиденциальности",
"imageAlt": "Изображение",
"wxworkMissingTicket": "Отсутствует заявка на вход через WeCom.",
"wxworkFailed": "Не удалось войти через WeCom.",
"wxworkSigningIn": "Выполняется вход через WeCom",
"oidcMissingTicket": "Отсутствует заявка на вход через DOS ID.",
"oidcFailed": "Не удалось войти через DOS ID.",
"oidcSigningIn": "Выполняется вход через DOS ID",
"checkingTicket": "Проверяем заявку на вход и открываем панель управления."
},
"legal": {
"terms": {
"title": "Условия использования",
"description": "Эти условия описывают основные правила доступа к системе и её использования. Это общий продуктовый текст, который может быть заменён официальными юридическими условиями поставщика услуг.",
"updatedAt": "Последнее обновление: 2026-05-30",
"relatedLabel": "Также читайте",
"relatedLink": "Политику конфиденциальности",
"sections": [
{
"title": "1. Описание сервиса",
"body": "Система помогает командам поддержки управлять диалогами, обращениями, базами знаний, ИИ-возможностями и связанными операционными данными. Вы можете получать доступ к ней и использовать её только в пределах ваших служебных полномочий."
},
{
"title": "2. Учётные записи и доступ",
"body": "Вы отвечаете за сохранность учётной записи, пароля, токенов и учётных данных стороннего входа. Действия, вызванные общими, утёкшими или использованными не по назначению учётными данными, могут считаться действиями владельца учётной записи."
},
{
"title": "3. Допустимое использование",
"body": "Вы не должны использовать систему для противоправной деятельности, нарушения прав, сбоев обслуживания, обхода привилегий, вредоносного кода, посторонних данных или несанкционированного доступа к конфиденциальной информации."
},
{
"title": "4. Ответственность за данные и содержимое",
"body": "Создаваемое, загружаемое, синхронизируемое или обрабатываемое в системе содержимое должно быть законным, достоверным и соответствовать внутренним требованиям управления. Необходимые журналы действий могут храниться в целях безопасности, аудита, эксплуатации и соблюдения требований."
},
{
"title": "5. Изменения сервиса и доступность",
"body": "Функции системы могут изменяться из-за развития продукта, технического обслуживания, исправлений безопасности или изменений сторонних сервисов. Поставщик услуг стремится обеспечить стабильную работу, но не гарантирует, что какая-либо функция останется неизменной и будет доступна без перебоев."
},
{
"title": "6. Оговорка об ответственности",
"body": "Сгенерированные ИИ материалы, автоматическое назначение, сводки и подсказки носят вспомогательный характер. Окончательное решение, содержание ответа и результат обработки должны подтверждаться уполномоченными сотрудниками."
},
{
"title": "7. Контакты и обновления",
"body": "Если у вас есть вопросы по этим условиям, свяжитесь с системным администратором или поставщиком услуг через опубликованные контактные каналы. После обновлений применяется последняя версия, отображаемая на этой странице."
}
]
},
"privacy": {
"title": "Политика конфиденциальности",
"description": "Эта политика объясняет, какие сведения система может обрабатывать при предоставлении возможностей администрирования поддержкой, зачем они используются и как защищаются. Это общий продуктовый текст, который может быть заменён официальным юридическим текстом поставщика услуг.",
"updatedAt": "Последнее обновление: 2026-05-30",
"relatedLabel": "Также читайте",
"relatedLink": "Условия использования",
"sections": [
{
"title": "1. Какие сведения мы обрабатываем",
"body": "Система может обрабатывать профили учётных записей, роли и разрешения, записи о входах, журналы действий, диалоги поддержки, содержимое обращений, контактные данные клиентов, содержимое баз знаний и операционную диагностику."
},
{
"title": "2. Цели использования",
"body": "Эти сведения используются для аутентификации, контроля доступа, совместной работы поддержки, отслеживания обращений, контроля качества, аудита безопасности, эксплуатации, улучшения функций и выполнения применимых нормативных требований."
},
{
"title": "3. Хранение и защита",
"body": "Система использует контроль доступа, аудит-логирование, защиту передачи данных и надлежащие меры изоляции данных. Вам также следует избегать ввода конфиденциальной личной информации, если в этом нет явной служебной необходимости."
},
{
"title": "4. Сторонние сервисы и интеграции",
"body": "При включённых WeCom, OIDC, каналах сообщений, ИИ-моделях или других внешних интеграциях соответствующие сведения могут передаваться этим сервисам согласно конфигурации. Обработка также регулируется правилами поставщиков интеграций и организационными настройками."
},
{
"title": "5. Права пользователей и администраторов",
"body": "Уполномоченные администраторы могут запрашивать, исправлять, выгружать или удалять соответствующие бизнес-данные в соответствии с организационными правилами. По вопросам, касающимся личной информации, другие пользователи могут обратиться к своему системному администратору."
},
{
"title": "6. Cookies и локальное хранилище",
"body": "Система может использовать локальное хранилище браузера, чтобы сохранять состояние сессии, язык, тему и настройки интерфейса, обеспечивая доступ, поддерживая безопасность и улучшая взаимодействие."
},
{
"title": "7. Контакты и обновления",
"body": "Если у вас есть вопросы о защите данных, свяжитесь с системным администратором или поставщиком услуг через опубликованные контактные каналы. После обновлений применяется последняя версия, отображаемая на этой странице."
}
]
}
},
"account": {
"passwordRequired": "Введите новый пароль.",
"confirmPasswordRequired": "Подтвердите новый пароль.",
"passwordMismatch": "Пароли не совпадают.",
"passwordChanged": "Ваш пароль изменён. Войдите снова.",
"changePasswordFailed": "Не удалось изменить пароль.",
"changePassword": "Смена пароля",
"changePasswordDescription": "Обновите пароль текущей учётной записи. После отправки потребуется войти снова.",
"cancel": "Отмена",
"submitting": "Отправка...",
"confirmChange": "Сменить пароль",
"newPassword": "Новый пароль",
"newPasswordPlaceholder": "Введите новый пароль",
"confirmPassword": "Подтверждение пароля",
"confirmPasswordPlaceholder": "Повторите новый пароль"
},
"operatorPresence": {
"viewing": "{name} просматривает этот диалог",
"typing": "{name} печатает ответ...",
"multipleViewing": "{count} оператора просматривают этот диалог",
"collisionWarning": "В этом диалоге уже работает другой оператор во избежание дублирования ответов."
},
"conversation": {
"syncConversationDataFailed": "Не удалось синхронизировать данные диалога.",
"syncMessagesFailed": "Не удалось синхронизировать сообщения.",
"syncConversationListFailed": "Не удалось синхронизировать список диалогов.",
"realtimeConnectFailed": "Не удалось подключиться к службе реального времени.",
"newMessage": "Новое сообщение",
"filterActive": "Активные",
"filterPending": "Ожидающие",
"filterAiServing": "Обрабатывает ИИ",
"filterClosed": "Закрытые",
"filterPlaceholder": "Фильтр по статусу",
"loadListFailed": "Не удалось загрузить диалоги.",
"loading": "Загрузка...",
"empty": "Диалогов пока нет",
"customerFallback": "Клиент #{id}",
"noTime": "Времени ещё нет",
"noLatestMessage": "Недавних сообщений нет",
"teamOnDuty": "Дежурная команда: {name}",
"customerAvatar": "К",
"customerOnline": "Клиент в сети",
"customerOffline": "Клиент не в сети",
"channelNumber": "Канал #{id}",
"linkedCustomer": "Клиент привязан",
"workbenchTitle": "Рабочее пространство диалогов",
"openMenuSelectConversation": "Откройте меню, чтобы выбрать диалог",
"selectConversationFromSidebar": "Выберите диалог слева, чтобы начать отвечать",
"conversationInfo": "Информация о диалоге",
"createTicket": "Создать обращение",
"transferConversation": "Передать диалог",
"closeConversation": "Закрыть диалог",
"expandConversationInfo": "Развернуть информацию о диалоге",
"collapseConversationInfo": "Свернуть информацию о диалоге",
"closeConversationList": "Закрыть список диалогов",
"markReadFailed": "Не удалось отметить диалог как прочитанный.",
"emptyMessages": "Сообщений пока нет",
"loadOlder": "Загрузить более ранние сообщения",
"noConversationMobile": "Нажмите меню в левом верхнем углу, чтобы выбрать диалог",
"selectConversationToChat": "Выберите диалог слева, чтобы начать переписку",
"closedNotice": "Этот диалог закрыт.",
"aiServingNotice": "Этот диалог обрабатывает ИИ. Перед ответом передайте его оператору.",
"claim": "Взять в работу",
"sendAttachmentFailed": "Не удалось отправить вложение.",
"customerSender": "Клиент",
"agentSender": "Оператор",
"messageRecalledHtml": "Это сообщение было отозвано.",
"messageRecalled": "Отозвано",
"customerRead": "Прочитано клиентом",
"customerUnread": "Не прочитано клиентом",
"recallFailed": "Не удалось отозвать сообщение.",
"recalling": "Отзыв...",
"recall": "Отозвать",
"loadQuickRepliesFailed": "Не удалось загрузить быстрые ответы.",
"tagRemoved": "Тег диалога удалён.",
"tagAdded": "Тег диалога добавлен.",
"tagUpdateFailed": "Не удалось обновить теги диалога.",
"editTags": "Изменить теги диалога",
"edit": "Изменить",
"searchTags": "Поиск тегов",
"loadingTags": "Загрузка тегов...",
"emptyTags": "Тегов нет",
"tagGroup": "Теги",
"unlinkedCustomerTitle": "Клиент CRM не привязан",
"unlinkedCustomerDescription": "Этот диалог пока не привязан к профилю клиента. Привяжите клиента, чтобы управлять здесь данными компании и контактами.",
"linkOrCreateCustomer": "Привязать или создать клиента",
"missingCustomerTitle": "Клиент удалён или недоступен",
"missingCustomerDescription": "Профиль клиента, привязанный к этому диалогу, больше недоступен. Привяжите существующего клиента заново или создайте нового и прикрепите его к этому диалогу.",
"relinkOrCreateCustomer": "Привязать заново или создать клиента",
"conversationOwner": "Владелец диалога",
"conversationId": "Идентификатор диалога",
"channelId": "Идентификатор канала",
"customerId": "Идентификатор клиента",
"selectConversationForInfo": "Выберите диалог, чтобы посмотреть детали",
"selectSidebarConversationForInfo": "Выберите диалог слева, чтобы посмотреть детали",
"loadTagsFailed": "Не удалось загрузить теги.",
"conversationTags": "Теги диалога",
"noConversationTags": "Для этого диалога теги не заданы",
"loadCustomerFailed": "Не удалось загрузить данные клиента.",
"loadingCustomer": "Загрузка данных клиента...",
"unnamedCustomer": "Клиент без имени",
"customerProfileEmpty": "Профиль клиента привязан, но основные данные ещё не заполнены. Нажмите «Изменить», чтобы дополнить профиль.",
"lastActive": "Последняя активность",
"remark": "Примечания",
"createdAt": "Создан",
"updatedAt": "Обновлён",
"noContacts": "Способов связи пока нет",
"primaryContactBadge": "Основной",
"verifiedContactBadge": "Подтверждён",
"companyUnavailable": "Не удалось загрузить данные компании, либо компания была удалена.",
"saved": "Сохранено.",
"saveFailed": "Не удалось сохранить.",
"loadTicketsFailed": "Не удалось загрузить связанные обращения.",
"relatedTickets": "Связанные обращения",
"loadingTickets": "Загрузка обращений...",
"noRelatedTickets": "К этому диалогу не привязано ни одного обращения",
"companyNameRequired": "Введите название компании.",
"editCompany": "Изменить компанию",
"companyName": "Название компании",
"companyCode": "Код компании",
"cancel": "Отмена",
"saving": "Сохранение...",
"save": "Сохранить",
"genderMale": "Мужской",
"genderFemale": "Женский",
"contactMobile": "Мобильный",
"contactEmail": "Email",
"contactOther": "Другой",
"loadHistoryFailed": "Не удалось загрузить более ранние сообщения.",
"sendMessageFailed": "Не удалось отправить сообщение.",
"editorPlaceholder": "Введите сообщение. Enter — отправить, Shift + Enter — новая строка.",
"imageUploading": "Изображение загружается",
"sendImage": "Отправить изображение",
"attachmentUploading": "Вложение загружается",
"sendAttachment": "Отправить вложение",
"searchQuickReplies": "Поиск быстрых ответов",
"emptyQuickReplies": "Быстрых ответов пока нет",
"quickReplySlashHint": "Введите / для быстрого ответа",
"enterToSend": "Enter — отправить",
"send": "Отправить",
"uploading": "Загрузка...",
"claimRequiresSignIn": "Сессия истекла. Войдите снова.",
"claimReason": "Взять диалог в работу",
"claimSuccess": "Диалог взят в работу.",
"claimFailed": "Не удалось взять диалог в работу.",
"claimTitle": "Взять диалог в работу",
"claimConfirmPrefix": "Взять в работу диалог «",
"claimConfirmSuffix": "»? Он перейдёт в ваши диалоги.",
"claimCurrent": "Взять текущий диалог в работу?",
"customerFallbackPrefix": "Клиент #",
"claiming": "Взятие в работу...",
"confirmClaim": "Взять в работу"
},
"csat": {
"title": "Как вы оцениваете консультацию?",
"score1": "Очень плохо",
"score2": "Плохо",
"score3": "Удовлетворительно",
"score4": "Хорошо",
"score5": "Отлично",
"commentPlaceholder": "Что мы могли бы улучшить? (необязательно)",
"submit": "Отправить оценку",
"submitting": "Отправка...",
"thankYou": "Спасибо за ваш отзыв!",
"alreadyRated": "Вы оценили этот диалог на {score}/5"
},
"promptStarters": {
"title": "Частые вопросы"
},
"supportChat": {
"title": "Поддержка",
"agentLabel": "Поддержка",
"customerSelf": "Вы",
"customerFallback": "Г",
"newMessage": "Новое сообщение",
"justNow": "Только что",
"todayAt": "Сегодня {time}",
"loadingOlder": "Загрузка...",
"loadOlder": "Загрузить более ранние сообщения",
"emptyPrompt": "Опишите вашу проблему, и мы поможем как можно скорее.",
"agentRead": "Просмотрено поддержкой",
"agentUnread": "Не просмотрено поддержкой",
"imageSummary": "[Изображение]",
"attachmentSummary": "[Вложение]",
"messageSummary": "[Сообщение]",
"closedTitle": "Диалог завершён",
"closedDescription": "Этот диалог поддержки закрыт. Спасибо, что обратились к нам.",
"connecting": "Подключение чата",
"connected": "Чат подключён",
"disconnected": "Чат отключён",
"retry": "Переподключиться",
"moreActions": "Другие действия",
"minimize": "Свернуть окно",
"maximize": "Развернуть",
"maximizeWindow": "Развернуть окно чата",
"restoreWindow": "Восстановить окно",
"closeWindow": "Закрыть окно",
"closeChatWindow": "Закрыть окно чата",
"closeDialogTitle": "Завершить этот диалог?",
"closeDialogDescription": "После завершения операторы поддержки больше не смогут просматривать эту историю сообщений. Если нужна дополнительная помощь, начните новый чат.",
"continueConversation": "Продолжить чат",
"closing": "Завершение...",
"confirmClose": "Завершить диалог",
"initFailed": "Не удалось начать чат.",
"crashTitle": "Что-то пошло не так",
"crashDescription": "В чате возникла непредвиденная проблема. Ваши сообщения сохранены.",
"crashReload": "Перезагрузить чат",
"loadMessagesFailed": "Не удалось загрузить сообщения.",
"syncMessagesFailed": "Не удалось синхронизировать сообщения.",
"loadHistoryFailed": "Не удалось загрузить более ранние сообщения.",
"sendMessageFailed": "Не удалось отправить сообщение.",
"uploadImageFailed": "Не удалось загрузить изображение.",
"sendAttachmentFailed": "Не удалось отправить вложение.",
"closeConversationFailed": "Не удалось закрыть диалог.",
"pageTitle": "Онлайн-поддержка",
"pageDescription": "Задайте вопрос здесь. История обращений сохраняется в этом браузере.",
"refreshFailed": "Не удалось обновить чат.",
"myRequests": "Мои обращения",
"newRequest": "Новое обращение",
"switchRequest": "Сменить обращение",
"requestFallbackTitle": "Обращение в поддержку",
"statusAiServing": "Отвечает ИИ",
"statusPending": "Ожидает оператора",
"statusActive": "В работе",
"statusClosed": "Закрыто",
"requestsUnreadCount": "Непрочитанных: {count}",
"noRequests": "Обращений пока нет",
"noRequestsDescription": "Создайте обращение, и мы скоро свяжемся с вами.",
"newRequestDialogTitle": "Новое обращение",
"newRequestDialogDescription": "Кратко опишите проблему, чтобы мы помогли быстрее.",
"newRequestSubjectLabel": "Тема",
"newRequestSubjectPlaceholder": "Например: не проходит оплата",
"newRequestSubjectHint": "Необязательно. Если оставить пустым, тема определится по первому сообщению.",
"newRequestSubjectTooLong": "Тема не длиннее 255 символов.",
"createRequest": "Создать обращение",
"creatingRequest": "Создаём...",
"startFirstRequest": "Создайте первое обращение",
"openRequestCount": "Открыто {open} из {total}",
"loadConversationsFailed": "Не удалось загрузить список обращений",
"createConversationFailed": "Не удалось создать обращение",
"dismissedTitle": "Окно чата закрыто",
"dismissedDescription": "Ваше обращение не завершено. Вы можете вернуться и продолжить разговор.",
"returnToChat": "Вернуться в чат",
"sendUnavailable": "Диалог недоступен. Вернитесь к нему или повторите попытку перед отправкой.",
"sendInProgress": "Сообщение уже отправляется."
},
"dashboardHome": {
"rangeToday": "Сегодня",
"range7d": "Последние 7 дней",
"range30d": "Последние 30 дней",
"loadFailed": "Не удалось загрузить обзор панели управления.",
"title": "Панель управления",
"description": "Отслеживайте диалоги поддержки, обращения, загрузку операторов и работу ИИ.",
"updatedAt": ", обновлено в {time}",
"refresh": "Обновить",
"conversationTrend": "Динамика диалогов",
"conversationTrendDescription": "Отслеживайте новые и закрытые диалоги, чтобы заранее заметить рост нагрузки на поддержку.",
"enabledAiAgents": "Активные ИИ-агенты",
"enabledChannels": "Активные каналы",
"todayKnowledgeRetrieves": "Поисков по базе знаний сегодня",
"todayKnowledgeRetrieveFailRate": "Доля неудачных поисков сегодня",
"todayAgentRunFailCount": "Сбоев запусков агентов сегодня",
"todayAiHandoffCount": "Передач с ИИ человеку сегодня",
"empty": "Данных обзора пока нет.",
"summaryTodayNewConversations": "Новые диалоги сегодня",
"summaryTodayNewConversationsDescription": "Новые обращения клиентов, созданные сегодня.",
"summaryProcessingConversations": "Сейчас в работе",
"summaryProcessingConversationsDescription": "Диалоги, которые сейчас обрабатывают ИИ или операторы.",
"summaryPendingDispatchConversations": "Ожидают назначения",
"summaryPendingDispatchConversationsDescription": "Диалоги, которые всё ещё стоят в очереди назначения.",
"summaryOnlineAgents": "Операторы на связи",
"summaryOnlineAgentsDescription": "Операторы с активным heartbeat за последние 15 минут.",
"summaryAiServiceRate": "Покрытие ИИ",
"summaryAiServiceRateDescription": "Доля активных диалогов, в которых помогает ИИ.",
"chartNew": "Новые",
"chartClosed": "Закрытые",
"chartCount": "Количество",
"statusDistribution": "Распределение по статусам",
"statusDistributionDescription": "Текущее количество диалогов по статусам.",
"statusAiServing": "Обрабатывает ИИ",
"statusPending": "В очереди",
"statusActive": "Активные",
"statusClosed": "Закрытые",
"teamLoad": "Загрузка команды",
"teamLoadDescription": "На связи {online}, занято {busy}, не в сети {offline}",
"noTeamData": "Данных о загрузке команды пока нет.",
"scheduled": "По расписанию",
"notScheduled": "Расписания сейчас нет",
"teamStats": "Всего {total}, на связи {online}, занято {busy}, не в сети {offline}",
"load": "Нагрузка {processing}/{capacity}",
"waiting": "Ожидание",
"processing": "В работе",
"capacity": "Ёмкость",
"busyAgents": "Занятые операторы",
"riskAlerts": "Оповещения о рисках",
"riskAlertsDescription": "Приоритизируйте проблемы, которые могут повлиять на эффективность поддержки или надёжность ИИ.",
"noRiskTitle": "Сейчас критических рисков нет",
"noRiskDescription": "Панель продолжает отслеживать очереди диалогов, расписания и проблемы конфигурации ИИ."
},
"placeholder": {
"nextSteps": "Рекомендуемые следующие шаги",
"status": "Статус",
"statusDescription": "Для этого модуля пока есть только каркас страницы. Он готов к подключению реальных API, диалогов форм и списочных запросов.",
"nextPhase": "Перейти к следующему этапу"
},
"help": {
"title": "Каркас центра справки",
"description": "Центр справки будет собирать рекомендации по продукту, правила разрешений, сценарии интеграции каналов и FAQ.",
"step1": "Собрать стандарты разработки проекта и руководства для администраторов.",
"step2": "Добавить сценарии сторонних интеграций и чек-листы настройки.",
"step3": "Позже подключить Markdown или центр документации."
},
"settings": {
"title": "Каркас системных настроек",
"description": "Системные настройки будут управлять аутентификацией, загрузками, базовой информацией о сайте и политиками выполнения.",
"step1": "Добавить API для чтения и сохранения системных настроек.",
"step2": "Разделить настройки на разделы безопасности, хранения и политики входа.",
"step3": "Добавить маскирование и подтверждение для конфиденциальных настроек.",
"brandingTitle": "Брендинг платформы",
"brandingDescription": "Измените название платформы и логотип. Они применяются в портале, в консоли и в заголовках страниц.",
"brandingSaved": "Брендинг платформы обновлён",
"brandingSaveFailed": "Не удалось сохранить брендинг платформы",
"brandingLoadFailed": "Не удалось загрузить брендинг платформы",
"brandingConfiguredFallback": "Текущее название берётся из конфигурации ({name}). Очистите поле, чтобы вернуться к нему."
},
"status": {
"all": "Все статусы",
"ok": "Включено",
"disabled": "Отключено",
"deleted": "Удалено"
},
"channel": {
"allTypes": "Все типы",
"typeWeb": "Веб",
"typeTelegram": "Telegram-бот",
"typeZaloOa": "Официальный аккаунт Zalo",
"typeWechatMp": "Официальный аккаунт WeChat",
"typeWxworkKf": "Клиентская служба WeCom",
"botToken": "Токен Telegram-бота",
"botTokenRequired": "Токен Telegram-бота обязателен",
"botUsername": "Имя пользователя бота",
"webhookSecret": "Секретный токен вебхука",
"telegramAutoConnectTitle": "Автоматическое подключение Telegram-бота",
"telegramAutoConnectDescription": "Укажите токен бота из @BotFather. Agent Desk автоматически подключится к Telegram и синхронизирует входящие и исходящие диалоги с клиентами.",
"zaloAccessToken": "Access Token аккаунта Zalo OA",
"zaloOaId": "ID аккаунта OA",
"zaloAppId": "ID приложения",
"zaloAutoConnectTitle": "Подключение официального аккаунта Zalo",
"zaloAutoConnectDescription": "Подключите официальный аккаунт Zalo с помощью Access Token, чтобы автоматически получать сообщения клиентов и отправлять ответы.",
"typeSlack": "Slack",
"typeLark": "Lark",
"slackBotToken": "Bot User OAuth Token",
"slackBotTokenRequired": "Bot User OAuth Token обязателен",
"slackSigningSecret": "Signing Secret",
"slackSigningSecretHint": "Нужен для проверки входящих событий. Без него вебхук принимает неподписанные запросы, поэтому любой, кто узнает URL, сможет писать в диалог.",
"slackAppId": "ID приложения",
"slackTeamId": "ID рабочего пространства",
"slackTeamName": "Название рабочего пространства",
"slackDefaultChannel": "ID канала по умолчанию",
"slackSetupTitle": "Подключение приложения Slack",
"slackSetupDescription": "Создайте приложение Slack, установите его в рабочее пространство и скопируйте Bot User OAuth Token и Signing Secret из раздела Basic Information. Подпишитесь на message.events, затем укажите Request URL ниже в разделе Event Subscriptions.",
"slackRequestUrl": "Request URL",
"typeDiscord": "Discord",
"larkSetupDescription": "Создайте пользовательское приложение Lark (или его аналог в Feishu), добавьте событие приёма IM-сообщений и укажите URL запроса события на вебхук ниже. Токен проверки возвращается каждым событием, поэтому система может подтвердить, что доставки пришли из Lark.",
"larkSetupTitle": "Подключение бота Lark",
"larkCredentialsRequired": "Обязательны App ID и App Secret Lark",
"larkVerificationToken": "Verification Token Lark",
"larkAppSecret": "App Secret Lark",
"larkAppId": "App ID Lark",
"discordGuildId": "ID гильдии / сервера",
"discordGuildName": "Название гильдии / сервера",
"discordBotToken": "Токен бота",
"discordSetupTitle": "Подключение бота Discord",
"discordSetupDescription": "Создайте бота в Discord Developer Portal, включите привилегированное намерение Message Content, пригласите его на свой сервер и укажите URL вебхука ниже в качестве эндпоинта взаимодействий или моста. Оставьте токен бота пустым, чтобы использовать общий для развёртывания DISCORD_BOT_TOKEN.",
"inboundWebhookUrl": "Эндпоинт входящего вебхука",
"typeEmail": "Поддержка по email",
"emailAddress": "Адрес поддержки",
"senderName": "Отображаемое имя отправителя",
"emailProvider": "Служба доставки email",
"emailProviderDefault": "Системное значение по умолчанию (.env / config.yaml)",
"emailProviderSmtp": "Собственный SMTP-сервер",
"emailProviderBrevo": "Brevo API",
"emailProviderSendGrid": "SendGrid API",
"emailProviderResend": "Resend API",
"emailProviderPostmark": "Postmark API",
"emailProviderMailgun": "Mailgun API",
"emailApiKey": "API-ключ",
"emailAutoConnectTitle": "Автоматический приём входящих писем",
"emailAutoConnectDescription": "Переадресуйте письма, отправленные на ваш адрес поддержки, на эндпоинт входящего вебхука, чтобы автоматически превращать входящие письма в обращения и запускать ответы ИИ-агента.",
"configEmailDescription": "Настройте приём входящих писем через вебхук и исходящую отправку через SMTP, Brevo, SendGrid, Resend, Postmark или Mailgun.",
"emailAddressRequired": "Адрес поддержки обязателен",
"smtpHost": "SMTP-хост",
"smtpPort": "SMTP-порт",
"smtpUser": "Имя пользователя SMTP",
"smtpPassword": "Пароль SMTP",
"loadFailed": "Не удалось загрузить каналы.",
"created": "Канал создан: {name}",
"updated": "Канал обновлён: {name}",
"saveFailed": "Не удалось сохранить канал.",
"statusEnabled": "Включён: {name}",
"statusDisabled": "Отключён: {name}",
"statusUpdateFailed": "Не удалось обновить статус канала.",
"deleted": "Канал удалён: {name}",
"deleteFailed": "Не удалось удалить канал.",
"refresh": "Обновить",
"new": "Новый канал",
"filterName": "Фильтр по названию канала",
"filterChannelId": "Фильтр по channelId",
"searchType": "Поиск типов каналов",
"emptyType": "Типы каналов не найдены",
"searchStatus": "Поиск статусов",
"emptyStatus": "Статусы не найдены",
"query": "Поиск",
"columnChannel": "Канал",
"columnType": "Тип",
"columnAgent": "ИИ-агент",
"columnStatus": "Статус",
"columnActions": "Действия",
"loading": "Загрузка каналов...",
"empty": "Каналов пока нет",
"toggleStatus": "Изменить статус канала {name}",
"edit": "Изменить",
"moreActions": "Другие действия для {name}",
"delete": "Удалить",
"typeRequired": "Выберите тип канала.",
"agentRequired": "Выберите ИИ-агента.",
"searchAiAgent": "Поиск ИИ-агентов",
"emptyAiAgent": "ИИ-агенты не найдены",
"nameRequired": "Введите название канала.",
"wxworkAccountRequired": "Выберите аккаунт клиентской службы WeCom.",
"positionRight": "Справа снизу",
"positionLeft": "Слева снизу",
"defaultTitleWeb": "Поддержка",
"defaultTitleWechat": "Поддержка WeChat",
"defaultSubtitle": "Чем мы можем помочь?",
"loadWxworkAccountsFailed": "Не удалось загрузить аккаунты клиентской службы WeCom.",
"resetSecretConfirm": "Сброс этого секрета сделает ранее выданные userToken недействительными после истечения их срока. Продолжить?",
"resetSecretSuccess": "User JWT Secret сброшен.",
"resetSecretFailed": "Не удалось сбросить User JWT Secret.",
"copySecretSuccess": "User JWT Secret скопирован.",
"copyFailed": "Не удалось скопировать.",
"editTitle": "Изменение канала",
"createTitle": "Новый канал",
"cancel": "Отмена",
"saving": "Сохранение...",
"save": "Сохранить",
"loadingDetail": "Загрузка...",
"name": "Название канала",
"channelType": "Тип канала",
"selectChannelType": "Выберите тип канала",
"searchChannelType": "Поиск типов каналов",
"emptyChannelType": "Типы каналов не найдены",
"configTitle": "Настройки канала",
"configWxworkDescription": "Настройте аккаунт клиентской службы WeCom, используемый для сопоставления обратных вызовов и отправки исходящих сообщений.",
"configWechatDescription": "Настройте параметры отображения страницы чата в меню WeChat.",
"configWebDescription": "Настройте отображение веб-виджета поддержки на вашем сайте.",
"wxworkAccount": "Аккаунт клиентской службы WeCom",
"loadingWxworkAccount": "Загрузка аккаунтов",
"selectWxworkAccount": "Выберите аккаунт",
"searchWxworkAccount": "Поиск аккаунтов",
"emptyWxworkAccount": "Аккаунты клиентской службы WeCom не найдены",
"widgetTitle": "Заголовок виджета",
"widgetSubtitle": "Подзаголовок виджета",
"themeColor": "Цвет темы",
"mountPosition": "Положение виджета",
"selectMountPosition": "Выберите положение",
"searchMountPosition": "Поиск положений",
"emptyMountPosition": "Положения не найдены",
"widgetWidth": "Ширина виджета",
"userJwtSecret": "User JWT Secret",
"userJwtSecretDescription": "Ваша бизнес-система использует этот секрет для подписи userToken. После сброса обновите и конфигурацию бизнес-системы.",
"secretAfterSave": "Сохраните канал, чтобы сгенерировать User JWT Secret.",
"copy": "Копировать",
"reset": "Сбросить",
"remark": "Примечания",
"webAccessInfo": "Веб-интеграция",
"webAccessReady": "Скопируйте ссылку или код встраивания, чтобы подключить этот веб-канал.",
"webAccessPending": "Сохраните канал, чтобы сгенерировать ссылку интеграции.",
"newChannelPending": "Это новый канал. Идентификатор channelId будет создан после сохранения.",
"directAccessUrl": "Прямая ссылка на чат",
"copyLink": "Копировать ссылку",
"openLink": "Открыть ссылку",
"copiedAccessLink": "Ссылка интеграции скопирована.",
"embeddedSnippet": "Код встраивания",
"copiedSnippet": "Код встраивания скопирован.",
"copyCode": "Копировать код",
"accessGuide": "Руководство по интеграции",
"webGuide1": "1. Убедитесь, что канал включён.",
"webGuide2": "2. Вставьте код встраивания перед закрывающим тегом body на вашем сайте.",
"webGuide3": "3. Опубликуйте сайт и обновите страницу. Точка входа в поддержку появится с настройками этого канала.",
"webGuide4": "4. Для отдельных страниц или QR-кодов используйте прямую ссылку на чат.",
"openTestPage": "Открыть тестовую страницу",
"wechatAccessInfo": "Интеграция с официальным аккаунтом WeChat",
"wechatAccessReady": "Добавьте эту ссылку в пользовательское меню WeChat, чтобы пользователи могли сразу открыть чат поддержки.",
"wechatAccessPending": "Сохраните канал, чтобы сгенерировать ссылку меню WeChat.",
"wechatMenuUrl": "Ссылка меню WeChat",
"copiedWechatMenuUrl": "Ссылка меню WeChat скопирована.",
"wechatGuide2": "2. Укажите в пользовательском меню WeChat ссылку выше.",
"wechatGuide3": "3. Пользователи откроют чат поддержки сразу после нажатия на пункт меню.",
"processing": "Выполняется...",
"smtpUseTls": "Использовать TLS",
"smtpUseTlsHint": "Шифровать соединение с почтовым сервером. Если выключено, берётся системная настройка.",
"smtpAllowInsecure": "Разрешить небезопасное соединение",
"smtpAllowInsecureHint": "Принимать самоподписанный сертификат — для подключения к локальному тестовому SMTP-серверу. Для реального ящика не включайте.",
"smtpTest": "Проверить подключение к почтовому серверу",
"smtpTesting": "Проверка...",
"smtpTestSuccess": "Подключение к {host} установлено",
"smtpTestFailed": "Не удалось подключиться к почтовому серверу",
"smtpTestSaveFirst": "Сначала сохраните канал, затем проверьте подключение."
},
"upload": {
"imagePlaceholder": "Загрузить изображение",
"chooseImage": "Выберите файл изображения.",
"imageTooLarge": "Размер изображения должен быть меньше {maxSize} МБ.",
"imageUploaded": "Изображение загружено.",
"imageUploadFailed": "Не удалось загрузить изображение.",
"replaceImage": "Заменить изображение",
"uploadedImage": "Загруженное изображение",
"uploading": "Загрузка...",
"deleteImage": "Удалить изображение"
},
"lightbox": {
"providerError": "useImageLightbox должен использоваться внутри ImageLightboxProvider",
"loadFailed": "Не удалось загрузить изображение.",
"openInNewTab": "Открыть в новой вкладке",
"previewImage": "Просмотр изображения",
"imagePreview": "Просмотр изображения",
"zoomIn": "Увеличить",
"zoomOut": "Уменьшить",
"rotateLeft": "Повернуть влево",
"rotateRight": "Повернуть вправо",
"reset": "Сбросить масштаб, положение и поворот",
"previous": "Предыдущее изображение",
"next": "Следующее изображение",
"position": "{current} / {total}",
"close": "Закрыть",
"help": "Масштабируйте колесом мыши или жестом щипка. Перетаскивайте, чтобы перемещать изображение. Поворачивайте влево или вправо с помощью панели инструментов.",
"galleryHelp": "Переключайте изображения стрелками влево и вправо. Масштабируйте колесом мыши или жестом щипка, перетаскивайте для перемещения."
},
"companyPicker": {
"placeholder": "Выберите компанию",
"loadFailed": "Не удалось загрузить компании.",
"fallback": "Компания #{id}",
"created": "Компания создана: {name}",
"createFailed": "Не удалось создать компанию.",
"searchPlaceholder": "Поиск по названию компании",
"loading": "Загрузка...",
"empty": "Подходящих компаний не найдено",
"results": "Результаты поиска",
"none": "Без компании",
"actions": "Действия",
"create": "Создать компанию «{name}»"
},
"company": {
"loadFailed": "Не удалось загрузить компании.",
"updated": "Компания обновлена: {name}",
"created": "Компания создана: {name}",
"saveFailed": "Не удалось сохранить компанию.",
"enabled": "Включена: {name}",
"disabled": "Отключена: {name}",
"statusUpdateFailed": "Не удалось обновить статус.",
"deleted": "Компания удалена: {name}",
"deleteFailed": "Не удалось удалить компанию.",
"refresh": "Обновить",
"new": "Новая компания",
"filterName": "Фильтр по названию компании",
"filterCode": "Фильтр по коду компании",
"query": "Поиск",
"columnName": "Название компании",
"columnCode": "Код компании",
"columnCustomerCount": "Клиенты",
"columnStatus": "Статус",
"columnRemark": "Примечания",
"columnActions": "Действия",
"unknownStatus": "Неизвестно",
"loading": "Загрузка компаний...",
"empty": "Компаний пока нет",
"edit": "Изменить",
"moreActions": "Другие действия для {name}",
"processing": "Выполняется...",
"enable": "Включить",
"disable": "Отключить",
"delete": "Удалить",
"editTitle": "Изменение компании",
"createTitle": "Новая компания",
"cancel": "Отмена",
"saving": "Сохранение...",
"save": "Сохранить",
"create": "Создать",
"loadingDetail": "Загрузка...",
"nameRequired": "Введите название компании.",
"namePlaceholder": "Введите название компании",
"optional": "Необязательно",
"remarkPlaceholder": "Необязательно"
},
"customerForm": {
"nameRequired": "Введите имя клиента.",
"genderRequired": "Выберите пол.",
"companyRequired": "Выберите компанию.",
"sectionCustomer": "Данные клиента",
"name": "Имя клиента",
"namePlaceholder": "Введите имя клиента",
"gender": "Пол",
"company": "Компания",
"remark": "Примечания",
"optional": "Необязательно",
"sectionContacts": "Способы связи",
"type": "Тип",
"contact": "Контакт",
"primary": "Основной",
"actions": "Действия",
"emailPlaceholder": "Email",
"contactPlaceholder": "Телефон / аккаунт",
"primaryContact": "Основной контакт",
"setPrimary": "Сделать основным контактом",
"deleteContact": "Удалить этот способ связи",
"addContact": "Добавить способ связи",
"loading": "Загрузка...",
"genderUnknown": "Не указан",
"genderMale": "Мужской",
"genderFemale": "Женский",
"contactMobile": "Мобильный",
"contactEmail": "Email",
"contactOther": "Другой",
"editTitle": "Изменение клиента",
"createTitle": "Новый клиент",
"cancel": "Отмена",
"saving": "Сохранение...",
"save": "Сохранить",
"create": "Создать"
},
"customer": {
"allGenders": "Все полы",
"allCompanies": "Все компании",
"select": "Выбрать",
"loadFailed": "Не удалось загрузить клиентов.",
"updated": "Клиент обновлён: {name}",
"created": "Клиент создан: {name}",
"saveFailed": "Не удалось сохранить клиента.",
"enabled": "Включён: {name}",
"disabled": "Отключён: {name}",
"statusUpdateFailed": "Не удалось обновить статус.",
"deleted": "Клиент удалён: {name}",
"deleteFailed": "Не удалось удалить клиента.",
"new": "Создать",
"refresh": "Обновить",
"keywordPlaceholder": "Имя, телефон, email, компания или контакт",
"searchCompany": "Поиск компаний",
"query": "Поиск",
"columnName": "Имя клиента",
"columnGender": "Пол",
"columnCompany": "Компания",
"columnMobile": "Мобильный",
"columnEmail": "Email",
"columnStatus": "Статус",
"columnActions": "Действия",
"loading": "Загрузка клиентов...",
"empty": "Клиентов пока нет",
"edit": "Изменить",
"moreActions": "Другие действия для {name}",
"processing": "Выполняется...",
"enable": "Включить",
"disable": "Отключить",
"delete": "Удалить"
},
"customerLink": {
"keywordRequired": "Введите ключевое слово: имя, телефон, email, компанию или контакт.",
"noMatch": "Подходящие клиенты не найдены. Заполните данные нового клиента ниже.",
"searchFailed": "Поиск не удался.",
"selected": "Клиент выбран: {name}",
"linked": "Клиент привязан.",
"linkFailed": "Не удалось привязать клиента.",
"createdAndLinkedConversation": "Клиент создан и привязан к этому диалогу.",
"createdAndLinkedTicket": "Клиент создан и привязан к этому обращению.",
"created": "Клиент создан.",
"saveFailed": "Не удалось сохранить клиента.",
"descriptionPrefix": "Сначала найдите существующего клиента. ",
"descriptionLinkConversation": "Выберите клиента, чтобы привязать его к этому диалогу. ",
"descriptionLinkTicket": "Выберите клиента, чтобы привязать его к этому обращению. ",
"descriptionNoContext": "Без привязанного контекста действие только создаст или выберет клиента. ",
"descriptionCreatePrefix": "Если результатов нет, заполните данные нового клиента ниже",
"descriptionCreateConversation": "; после сохранения он будет привязан к диалогу.",
"descriptionCreateTicket": "; после сохранения он будет привязан к обращению.",
"descriptionCreateNoContext": ".",
"title": "Привязать или создать клиента",
"close": "Закрыть",
"submitting": "Отправка...",
"createAndLinkConversation": "Создать клиента и привязать к диалогу",
"createAndLinkTicket": "Создать клиента и привязать к обращению",
"createCustomer": "Создать клиента",
"searchPlaceholder": "Имя / телефон / email / компания / контакт",
"searching": "Поиск...",
"search": "Поиск",
"fallbackName": "Клиент #{id}",
"processing": "Выполняется...",
"link": "Привязать",
"select": "Выбрать",
"collapseCreate": "Скрыть форму нового клиента",
"showCreate": "Не нашли? Заполните данные нового клиента"
},
"conversationAction": {
"closeReasonRequired": "Укажите причину закрытия.",
"conversationMissing": "Диалог не найден.",
"closed": "Диалог закрыт: #{id}",
"closeFailed": "Не удалось закрыть диалог.",
"closeTitle": "Закрыть диалог",
"closeReason": "Причина закрытия",
"closeReasonPlaceholder": "Укажите причину. Она попадёт в журнал действий.",
"cancel": "Отмена",
"closing": "Закрытие...",
"confirmClose": "Закрыть диалог",
"targetAgentRequired": "Выберите целевого оператора.",
"agentFallback": "Оператор #{id}",
"loadAgentsFailed": "Не удалось загрузить операторов.",
"assigned": "Диалог назначен: #{id}",
"transferred": "Диалог передан: #{id}",
"assignFailed": "Не удалось назначить диалог.",
"transferFailed": "Не удалось передать диалог.",
"assignTitle": "Назначить диалог",
"transferTitle": "Передать диалог",
"targetAgent": "Целевой оператор",
"loading": "Загрузка...",
"selectTargetAgent": "Выберите целевого оператора",
"searchAgent": "Поиск операторов",
"emptyAgents": "Операторы недоступны",
"assignNote": "Примечание к назначению",
"transferReason": "Причина передачи",
"assignPlaceholder": "Добавьте примечание для дальнейшего контроля.",
"transferPlaceholder": "Укажите причину передачи для дальнейшего контроля.",
"assigning": "Назначение...",
"transferring": "Передача...",
"confirmAssign": "Назначить",
"confirmTransfer": "Передать"
},
"conversationMonitor": {
"allStatuses": "Все статусы",
"unknown": "Неизвестно",
"serviceAi": "Обрабатывает ИИ",
"serviceHuman": "Обрабатывает человек",
"serviceAiFirst": "Сначала ИИ",
"serviceUndefined": "Не определено",
"allTags": "Все теги",
"allAssignees": "Все исполнители",
"allTeams": "Все команды",
"loadListFailed": "Не удалось загрузить диалоги.",
"loadFiltersFailed": "Не удалось загрузить фильтры.",
"realtimeConnectFailed": "Не удалось подключиться к службе реального времени.",
"loadDetailFailed": "Не удалось загрузить детали диалога.",
"loadMoreMessagesFailed": "Не удалось загрузить больше сообщений.",
"markedRead": "Отмечено как прочитанное: {name}",
"markReadFailed": "Не удалось отметить как прочитанное.",
"dispatchTriggered": "Запущено автоматическое назначение: {name}",
"dispatchFailed": "Автоматическое назначение не удалось.",
"refresh": "Обновить",
"keywordPlaceholder": "Фильтр по теме или сводке",
"selectTag": "Выберите тег",
"searchTagPath": "Поиск пути тега",
"emptyTags": "Подходящие теги не найдены",
"selectAssignee": "Выберите исполнителя",
"searchAssignee": "Поиск исполнителей",
"emptyAssignees": "Подходящие исполнители не найдены",
"selectTeam": "Выберите команду",
"searchTeam": "Поиск команд",
"emptyTeams": "Подходящие команды не найдены",
"query": "Поиск",
"columnConversation": "Диалог",
"columnStatus": "Статус",
"columnServiceMode": "Режим обслуживания",
"columnAssignee": "Текущий оператор",
"columnUnread": "Непрочитанные",
"columnLastActive": "Последняя активность",
"columnActions": "Действия",
"customerFallback": "Клиент #{id}",
"channelIdValue": "Идентификатор канала: {id}",
"noLatestSummary": "Сводки недавних сообщений нет",
"unreadSummary": "Оператор {agent} / Клиент {customer}",
"view": "Просмотреть",
"moreActions": "Другие действия для {name}",
"processing": "Выполняется...",
"assign": "Назначить диалог",
"retryDispatch": "Повторить назначение",
"markRead": "Отметить как прочитанный",
"transfer": "Передать диалог",
"close": "Закрыть диалог",
"loadingRows": "Загрузка диалогов...",
"emptyRows": "Подходящие диалоги не найдены",
"detailFallbackTitle": "Детали диалога",
"lastActivePrefix": "Последняя активность: {time}",
"noConversationInfo": "Информации о диалоге пока нет",
"loadingDetail": "Загрузка деталей диалога...",
"currentAssignee": "Текущий оператор",
"agentUnread": "Не прочитано оператором",
"customerUnread": "Не прочитано клиентом",
"closedAt": "Закрыт",
"participants": "Участники",
"participantCount": "{count} чел.",
"participantIdentity": "ID: {value}",
"participantJoinedAt": "Присоединился: {time}",
"emptyParticipants": "Информации об участниках пока нет",
"loadingOlder": "Загрузка более ранних сообщений...",
"loadOlderHint": "Прокрутите вверх, чтобы загрузить более ранние сообщения",
"messageRecalled": "Отозвано",
"messageRecalledBody": "Это сообщение было отозвано.",
"readStatus": "Оператор {agent} / Клиент {customer}",
"read": "Прочитано",
"unread": "Не прочитано",
"emptyMessages": "Истории сообщений пока нет",
"emptyDetail": "Нет деталей диалога для показа",
"imageFallback": "[Изображение]",
"messageImageAlt": "Изображение в сообщении",
"senderAgent": "Оператор",
"senderCustomer": "Клиент",
"senderSystem": "Система"
},
"user": {
"loadFailed": "Не удалось загрузить пользователей.",
"loadRoleAssignFailed": "Не удалось загрузить данные назначения ролей.",
"created": "Пользователь создан: {username}",
"createFailed": "Не удалось создать пользователя.",
"updated": "{username} обновлён",
"fallbackUser": "пользователь",
"updateFailed": "Не удалось обновить пользователя.",
"rolesUpdated": "Роли обновлены для {username}",
"saveRolesFailed": "Не удалось сохранить назначение ролей.",
"passwordReset": "Пароль сброшен для {username}",
"resetPasswordFailed": "Не удалось сбросить пароль.",
"statusUpdated": "{username} {status}",
"statusUpdateFailed": "Не удалось обновить статус.",
"addUser": "Добавить пользователя",
"filterUsername": "Фильтр по имени пользователя",
"query": "Поиск",
"columnUser": "Пользователь",
"columnRoles": "Роли",
"columnStatus": "Статус",
"columnLastLogin": "Последний вход",
"columnContact": "Контакт",
"columnActions": "Действия",
"unassigned": "Не назначено",
"enabled": "Включён",
"disabled": "Отключён",
"system": "Системный",
"edit": "Изменить",
"moreActions": "Другие действия для {username}",
"processing": "Выполняется...",
"assignRoles": "Назначить роли",
"resetPassword": "Сбросить пароль",
"loadingRows": "Загрузка пользователей...",
"emptyRows": "Подходящие пользователи не найдены",
"nicknameRequired": "Введите отображаемое имя.",
"usernameRequired": "Введите имя пользователя.",
"avatarInvalid": "Некорректный аватар.",
"mobileInvalid": "Введите корректный номер телефона.",
"emailInvalid": "Введите корректный адрес электронной почты.",
"editTitle": "Изменение пользователя",
"currentUser": "Текущий пользователь: {username}",
"loading": "Загрузка...",
"nickname": "Отображаемое имя",
"nicknamePlaceholder": "Введите отображаемое имя",
"avatar": "Аватар",
"avatarPlaceholder": "Загрузите аватар",
"mobile": "Мобильный",
"mobilePlaceholder": "Введите номер телефона",
"email": "Email",
"emailPlaceholder": "Введите email",
"saving": "Сохранение...",
"saveEdit": "Сохранить изменения",
"cancel": "Отмена",
"createTitle": "Добавить пользователя",
"createDescription": "После отправки система сгенерирует начальный пароль. Он будет показан только один раз.",
"username": "Имя пользователя",
"usernamePlaceholder": "Логин, обязательно",
"nicknameCreatePlaceholder": "Необязательно, по умолчанию имя пользователя",
"avatarCreatePlaceholder": "Загрузите аватар",
"optional": "Необязательно",
"remark": "Примечания",
"rolesOptional": "Роли (необязательно)",
"searchRoles": "Поиск ролей",
"loadingRoles": "Загрузка ролей...",
"disabledBadge": "Отключена",
"emptyRoles": "Ролей пока нет",
"creating": "Создание...",
"createUser": "Создать пользователя",
"copied": "Пароль скопирован.",
"copyFailed": "Не удалось скопировать. Скопируйте вручную.",
"createdTitle": "Пользователь создан",
"initialPasswordDescription": "Начальный пароль для {username} сгенерирован. Он будет показан только один раз, поэтому скопируйте его сейчас и передайте безопасно.",
"initialPassword": "Начальный пароль",
"copying": "Копирование...",
"copyPassword": "Копировать пароль",
"close": "Закрыть",
"confirmResetTitle": "Сбросить пароль?",
"confirmResetDescription": "Для {username} будет сгенерирован новый случайный пароль, а текущие сессии пользователя станут недействительными.",
"resetting": "Сброс...",
"confirmReset": "Сбросить пароль",
"resetSuccessTitle": "Пароль сброшен",
"resetSuccessDescription": "Для {username} сгенерирован новый пароль. Скопируйте его сейчас и передайте безопасно.",
"newPassword": "Новый пароль",
"assignedRoles": "Назначенные роли",
"unassignedRoles": "Роли не назначены",
"roleList": "Список ролей",
"searchRoleNameOrCode": "Поиск по названию или коду роли",
"loadingRoleList": "Загрузка ролей...",
"noMatchedRoles": "Подходящие роли не найдены",
"changes": "Изменения",
"addedRoles": "Добавленные роли",
"removedRoles": "Удалённые роли",
"noneAdded": "Ничего не добавлено",
"noneRemoved": "Ничего не удалено",
"confirmAssign": "Назначить роли",
"columnUserType": "Тип",
"userTypeStaff": "Сотрудник",
"userTypeVisitor": "Посетитель",
"filterUserType": "Тип аккаунта",
"filterUserTypeAll": "Все",
"filterUserTypeStaff": "Сотрудники",
"filterUserTypeVisitor": "Посетители"
},
"aiAgent": {
"allStatuses": "Все статусы",
"enabled": "Включён",
"disabled": "Отключён",
"loadFailed": "Не удалось загрузить ИИ-агентов.",
"updated": "ИИ-агент обновлён: {name}",
"created": "ИИ-агент создан: {name}",
"saveFailed": "Не удалось сохранить ИИ-агента.",
"statusChanged": "{name} {status}",
"statusUpdateFailed": "Не удалось обновить статус ИИ-агента.",
"deleted": "ИИ-агент удалён: {name}",
"deleteFailed": "Не удалось удалить ИИ-агента.",
"sortUpdated": "Порядок ИИ-агентов обновлён.",
"sortUpdateFailed": "Не удалось обновить порядок.",
"refresh": "Обновить",
"new": "Новый ИИ-агент",
"filterName": "Фильтр по названию",
"searchStatus": "Поиск статуса",
"emptyStatus": "Подходящий статус не найден",
"query": "Поиск",
"columnAiConfig": "Конфигурация ИИ",
"columnServiceMode": "Режим обслуживания",
"columnKnowledge": "Базы знаний",
"columnSkills": "Навыки",
"columnCapabilities": "Возможности",
"columnStatus": "Статус",
"columnActions": "Действия",
"dragSort": "Перетащите, чтобы изменить порядок: {name}",
"notConfigured": "Не настроено",
"ragOnly": "Только RAG",
"noMcpServer": "Сервер MCP не подключён",
"toggleStatus": "Изменить статус агента {name}",
"edit": "Изменить",
"moreActions": "Другие действия для {name}",
"processing": "Выполняется...",
"stop": "Отключить",
"workflow": "Рабочий процесс",
"configure": "Настроить",
"delete": "Удалить",
"loadingRows": "Загрузка ИИ-агентов...",
"emptyRows": "ИИ-агентов пока нет",
"serviceAiOnly": "Только ИИ",
"serviceHumanOnly": "Только человек",
"serviceAiFirst": "Сначала ИИ",
"handoffWaitPool": "Отправлять в очередь ожидания",
"handoffDefaultTeamPool": "Отправлять в очередь команды по умолчанию",
"handoffAiHoldAndNotify": "ИИ ждёт ответа и уведомляет операторов",
"fallbackNoAnswer": "Сообщать, что ответа нет",
"fallbackSuggestRetry": "Запрашивать больше деталей",
"nameRequired": "Введите название.",
"aiConfigRequired": "Выберите конфигурацию ИИ.",
"serviceModeRequired": "Выберите режим обслуживания.",
"replyTimeoutInvalid": "Таймаут ответа должен быть целым числом не меньше 0.",
"handoffModeRequired": "Выберите режим передачи человеку.",
"fallbackModeRequired": "Выберите стратегию резервного ответа.",
"loadDetailFailed": "Не удалось загрузить детали ИИ-агента.",
"loadAiConfigFailed": "Не удалось загрузить конфигурации ИИ.",
"loadTeamsFailed": "Не удалось загрузить команды поддержки.",
"loadKnowledgeFailed": "Не удалось загрузить базы знаний.",
"loadSkillsFailed": "Не удалось загрузить навыки.",
"loadMCPToolsFailed": "Не удалось загрузить инструменты MCP.",
"builtinTools": "Встроенные инструменты",
"ungrouped": "Без группы",
"notSelected": "Не выбрано",
"sectionSetup": "Идентификация и выполнение",
"sectionPersona": "Персона и ответы",
"sectionCapability": "Знания и навыки",
"sectionService": "Маршрутизация и резервный ответ",
"basicDescription": "Настройте внутреннее название агента, режим обслуживания и описание.",
"sectionModel": "Модель и ответ",
"modelDescription": "Выберите модель рассуждений и задайте таймаут ответа.",
"replyTimeout": "Таймаут ответа",
"seconds": "с",
"sectionRole": "Системный промпт",
"personaDescription": "Определите роль, инструкции и границы ответов агента (поддерживается Markdown).",
"sectionGreeting": "Приветственное сообщение",
"greetingDescription": "Первоначальный ответ при входе в диалог. Оставьте пустым, чтобы не отправлять.",
"sectionKnowledge": "Базы знаний",
"knowledgeDescription": "Источники знаний, из которых агент может извлекать данные при ответе.",
"sectionSkill": "Навыки",
"skillDescription": "Стандартные возможности и сценарии, которые может вызывать агент.",
"sectionWorkflow": "Рабочие процессы",
"workflowDescription": "Опубликованные фиксированные рабочие процессы из редактора процессов.",
"selectWorkflow": "Выберите опубликованный рабочий процесс",
"emptyWorkflow": "Опубликованных рабочих процессов нет",
"sectionMcp": "Инструменты MCP",
"mcpDescription": "Выберите инструменты MCP, которые агент может вызывать.",
"sectionHandoff": "Передача человеку",
"handoffDescription": "Настройте способ маршрутизации и команды поддержки для подключения человека.",
"sectionFallback": "Низкая уверенность / резервный ответ",
"fallbackDescription": "Настройте стратегию обработки и резервное сообщение для неуверенных ответов.",
"publishAgent": "Опубликовать агента",
"saveConfig": "Сохранить конфигурацию",
"publishedNote": "Опубликованная версия активна; повторная публикация применит текущую конфигурацию",
"unpublishedNote": "Публикация сначала сохранит текущую конфигурацию",
"readOnly": "Только чтение",
"writeAction": "Запись (требуется подтверждение)",
"systemDefined": "Определено системой",
"activeRevision": "Сейчас активна",
"rollback": "Откат",
"versionHistory": "История версий",
"notCreated": "Не создана",
"published": "Опубликована",
"unpublished": "Не опубликована",
"noRevisions": "Опубликованных версий агента нет.",
"createTitle": "Новый ИИ-агент",
"editTitle": "Изменение ИИ-агента",
"cancel": "Отмена",
"saving": "Сохранение...",
"save": "Сохранить",
"loading": "Загрузка...",
"namePrompt": "Введите название агента",
"savedActiveNote": "Конфигурация сохранена. Сейчас активна текущая опубликованная версия.",
"savedNote": "Конфигурация ИИ-агента сохранена.",
"createdNote": "ИИ-агент успешно создан.",
"publishedSuccess": "ИИ-агент успешно сохранён и опубликован.",
"publishFailed": "Не удалось сохранить и опубликовать ИИ-агента.",
"rollbackSuccess": "Выполнен откат к выбранной версии ИИ-агента.",
"rollbackFailed": "Не удалось выполнить откат версии ИИ-агента.",
"fixedVersion": "Фиксированная версия #{version}",
"publishStatus": "Статус публикации",
"configuredWorkflows": "Настроено рабочих процессов: {count}",
"directAutonomous": "Автономное рассуждение без фиксированных рабочих процессов",
"channelRolloutTitle": "Процент каналов с ИИ (%)",
"channelRolloutRestored": "Восстановлен предыдущий процент каналов с ИИ",
"channelRolloutRestoreFailed": "Не удалось восстановить процент каналов с ИИ",
"channelRolloutRestoreBtn": "Восстановить {percent}%",
"agentNotPublishedWarning": "Этот агент ещё не опубликован, ИИ не будет отвечать автоматически. Сначала опубликуйте версию в настройках агента.",
"agentNotPublishedShort": "Не опубликован",
"sectionBasic": "Основные данные",
"name": "Название",
"aiConfig": "Конфигурация ИИ",
"selectAiConfig": "Выберите конфигурацию ИИ",
"searchAiConfig": "Поиск конфигураций ИИ",
"emptyAiConfig": "Конфигурации ИИ не найдены",
"selectServiceMode": "Выберите режим обслуживания",
"searchServiceMode": "Поиск режимов обслуживания",
"emptyServiceMode": "Режимы обслуживания не найдены",
"description": "Описание",
"welcomeMessage": "Приветственное сообщение",
"systemPrompt": "Системный промпт",
"sectionStrategy": "Стратегия обслуживания",
"handoffMode": "Режим передачи человеку",
"selectHandoffMode": "Выберите режим передачи",
"searchHandoffMode": "Поиск режимов передачи",
"emptyHandoffMode": "Режимы передачи не найдены",
"replyTimeoutSeconds": "Таймаут ответа (секунды)",
"replyTimeoutHelp": "Таймаут асинхронных ответов ИИ. Укажите 0, чтобы использовать системное значение 180 секунд.",
"teams": "Команды поддержки",
"currentHandoffMode": "Текущий режим передачи: {mode}",
"handoffNeedsTeam": ". Для этого режима нужна хотя бы одна команда поддержки.",
"handoffOnlyWhenNeeded": ". Применяется только при необходимости передачи человеку.",
"selectTeam": "Выберите команду поддержки",
"searchTeam": "Поиск команд поддержки",
"emptyTeam": "Команды поддержки не найдены",
"noTeams": "Команды поддержки не настроены",
"removeTeam": "Удалить команду {name}",
"sectionCapabilities": "Возможности",
"knowledgeTab": "Знания",
"skillsTab": "Навыки",
"mcpToolsTab": "Инструменты MCP",
"knowledgeHint": "Выберите хотя бы одну базу знаний. Порядок приоритетов можно изменить.",
"selectKnowledge": "Выберите базу знаний и добавьте её",
"searchKnowledge": "Поиск баз знаний",
"emptyKnowledge": "Базы знаний недоступны",
"add": "Добавить",
"knowledgeRequired": "Выберите хотя бы одну базу знаний.",
"fallbackMode": "Стратегия резервного ответа",
"selectFallbackMode": "Выберите стратегию резервного ответа",
"searchFallbackMode": "Поиск стратегий резервного ответа",
"emptyFallbackMode": "Стратегии резервного ответа не найдены",
"fallbackMessage": "Резервное сообщение",
"fallbackMessageHint": "Если в базе знаний нет точного совпадения, агент использует эту стратегию и сообщение.",
"skillsHint": "Используйте навыки для фиксированных бизнес-сценариев и многошаговых задач.",
"selectSkill": "Выберите навык и добавьте его",
"searchSkill": "Поиск навыков",
"emptySkill": "Навыки недоступны",
"noSkillsHint": "Без навыков маршрутизация использует только базы знаний или передачу человеку.",
"removeSkill": "Удалить навык {name}",
"mcpToolsHint": "Выберите инструменты MCP, которые этому агенту разрешено вызывать.",
"selectToolGroup": "Выберите группу инструментов",
"searchToolGroup": "Поиск групп инструментов",
"emptyToolGroup": "Группы инструментов недоступны",
"selectMCPTool": "Выберите инструмент MCP",
"searchMCPTool": "Поиск инструментов MCP",
"emptyMCPTool": "Инструменты MCP недоступны",
"noMCPToolsHint": "Без инструментов MCP агент не будет вызывать внешние инструменты MCP.",
"removeMCPTool": "Удалить инструмент MCP {name}",
"sectionContextCosts": "Контекст и оптимизация расходов",
"contextCostsDescription": "Управление размером контекстного окна, лимитом шагов рассуждения и объемом данных инструментов.",
"contextWindow": "Контекстное окно (сообщений)",
"contextWindowHelp": "Количество недавних сообщений диалога, передаваемых в контекст (2–30). Меньшее окно экономит токены.",
"maxSteps": "Максимум шагов ReAct (Max Steps)",
"maxStepsHelp": "Максимальное число вызовов инструментов за один ход (1–8). Снижает риск зацикливания и перерасхода токенов.",
"autoHandoffOnFailure": "Автоперевод на оператора при сбое или отсутствии ответа",
"autoHandoffOnFailureHelp": "При ошибке модели, исчерпании шагов или отсутствии ответа автоматически переводить клиента на оператора.",
"handoffMessage": "Сообщение клиенту при переводе к оператору",
"handoffMessageHelp": "Отправляется клиенту в чат, чтобы он понимал, что переключен на человека и его запрос в обработке.",
"handoffMessagePlaceholder": "Мы соединяем вас с оператором поддержки. Пожалуйста, подождите.",
"offHoursMessage": "Текст в нерабочие часы поддержки",
"offHoursMessageHelp": "Пользовательское сообщение, отправляемое клиенту при переводе в нерабочие часы или при отсутствии доступных операторов. Оставьте пустым для текста по умолчанию.",
"offHoursMessagePlaceholder": "Поддержка сейчас не активна. Ваш запрос поставлен в очередь и будет рассмотрен оператором позже."
},
"aiConfig": {
"allStatuses": "Все статусы",
"allProviders": "Все провайдеры",
"allTypes": "Все типы",
"providerOpenAI": "OpenAI",
"modelTypeLlm": "Большая языковая модель",
"modelTypeEmbedding": "Модель эмбеддингов",
"modelTypeRerank": "Модель переранжирования",
"enabled": "Включено",
"disabled": "Отключено",
"deletedStatus": "Удалено",
"loadFailed": "Не удалось загрузить конфигурации ИИ.",
"updated": "Конфигурация ИИ обновлена: {name}",
"created": "Конфигурация ИИ создана: {name}",
"saveFailed": "Не удалось сохранить конфигурацию ИИ.",
"statusChanged": "{name} {status}",
"statusUpdateFailed": "Не удалось обновить статус.",
"activeDeleteBlocked": "Включённые конфигурации ИИ удалить нельзя.",
"deleted": "Конфигурация ИИ удалена: {name}",
"deleteFailed": "Не удалось удалить конфигурацию ИИ.",
"sortUpdated": "Порядок конфигураций ИИ обновлён.",
"sortUpdateFailed": "Не удалось обновить порядок.",
"refresh": "Обновить",
"new": "Создать",
"filterName": "Фильтр по названию конфигурации",
"searchModelType": "Поиск типов моделей",
"emptyModelType": "Подходящие типы моделей не найдены",
"searchProvider": "Поиск провайдеров",
"emptyProvider": "Подходящие провайдеры не найдены",
"searchStatus": "Поиск статуса",
"emptyStatus": "Подходящий статус не найден",
"query": "Поиск",
"columnConfig": "Конфигурация",
"columnProvider": "Провайдер",
"columnModel": "Модель",
"columnAccess": "Доступ",
"columnLimits": "Лимиты",
"columnStatus": "Статус",
"columnActions": "Действия",
"dragSort": "Перетащите, чтобы изменить порядок: {name}",
"dimension": "Измерений: {count}",
"apiKey": "Ключ: {key}",
"contextTokens": "Контекст {count}",
"outputTokens": "Выход {count}",
"timeoutRetry": "Таймаут {timeout}мс / повторы {retries}",
"toggleStatus": "Изменить статус конфигурации {name}",
"edit": "Изменить",
"moreActions": "Другие действия для {name}",
"deleteDisabledActive": "Нельзя удалить, пока включено",
"deleting": "Удаление...",
"delete": "Удалить",
"loadingRows": "Загрузка конфигураций ИИ...",
"emptyRows": "Конфигураций ИИ пока нет",
"confirmDeleteTitle": "Удалить конфигурацию ИИ?",
"confirmDeleteDescription": "Удалить «{name}»? Это действие нельзя отменить.",
"deleteIrreversible": "Это действие нельзя отменить.",
"cancel": "Отмена",
"confirmDelete": "Удалить",
"nameRequired": "Введите название конфигурации.",
"providerRequired": "Выберите провайдера.",
"baseUrlRequired": "Введите базовый URL-адрес.",
"modelTypeRequired": "Выберите тип модели.",
"modelNameRequired": "Введите название модели.",
"dimensionInvalid": "Размерность эмбеддингов должна быть целым числом не меньше 0.",
"maxContextInvalid": "Максимум токенов контекста должен быть целым числом не меньше 0.",
"maxOutputInvalid": "Максимум выходных токенов должен быть целым числом не меньше 0.",
"timeoutInvalid": "Таймаут должен быть целым числом не меньше 0.",
"retryInvalid": "Максимум повторов должен быть целым числом не меньше 0.",
"rpmInvalid": "Лимит RPM должен быть целым числом не меньше 0.",
"tpmInvalid": "Лимит TPM должен быть целым числом не меньше 0.",
"editTitle": "Изменение конфигурации ИИ",
"createTitle": "Новая конфигурация ИИ",
"saving": "Сохранение...",
"save": "Сохранить",
"create": "Создать",
"loading": "Загрузка...",
"name": "Название конфигурации",
"namePlaceholder": "Например: основная модель ответов OpenAI",
"provider": "Провайдер",
"selectProvider": "Выберите провайдера",
"modelType": "Тип модели",
"selectModelType": "Выберите тип модели",
"baseUrl": "Базовый URL-адрес",
"baseUrlPlaceholder": "Например: https://api.openai.com/v1",
"apiKeyPlaceholder": "Введите API-ключ",
"modelName": "Название модели",
"modelNamePlaceholder": "Например: gpt-4o-mini",
"dimensionLabel": "Размерность эмбеддингов",
"maxContextTokens": "Максимум токенов контекста",
"maxOutputTokens": "Максимум выходных токенов",
"timeoutMs": "Таймаут (мс)",
"maxRetryCount": "Максимум повторов",
"rpmLimit": "Лимит RPM",
"tpmLimit": "Лимит TPM",
"remark": "Примечания",
"remarkPlaceholder": "Записи об использовании, стоимости или лимитах"
},
"supportFaqCategory": {
"allStatuses": "Все статусы",
"enabled": "Включена",
"disabled": "Отключена",
"name": "Название категории",
"searchName": "Поиск названий категорий",
"noDescription": "Нет описания",
"status": "Статус",
"confirmDeleteTitle": "Удалить категорию FAQ?",
"confirmDeleteDescription": "Удалить «{name}»? Категории, используемые вопросами, удалить нельзя.",
"delete": "Удалить",
"sortUpdated": "Порядок категорий FAQ обновлён.",
"sortUpdateFailed": "Не удалось обновить порядок.",
"dragSort": "Перетащите, чтобы изменить порядок: {name}",
"create": "Создать",
"save": "Сохранить",
"saving": "Сохранение...",
"cancel": "Отмена",
"loadingDetail": "Загрузка деталей...",
"required": "Это поле обязательно.",
"invalidNumber": "Введите корректное число.",
"minValue": "Должно быть не меньше {min}",
"maxValue": "Должно быть не больше {max}",
"namePlaceholder": "Введите название категории",
"slugPlaceholder": "Например: account-security",
"slugPatternMessage": "Используйте только буквы, цифры и дефисы (-).",
"description": "Описание",
"descriptionPlaceholder": "Опишите вопросы, которые охватывает эта категория",
"remark": "Примечания",
"remarkPlaceholder": "Видно только пользователям панели управления",
"createTitle": "Новая категория FAQ",
"editTitle": "Изменение категории FAQ",
"refresh": "Обновить",
"new": "Новая категория",
"query": "Поиск",
"loading": "Загрузка категорий...",
"empty": "Категорий FAQ пока нет",
"actions": "Действия",
"edit": "Изменить",
"processing": "Выполняется...",
"moreActions": "Другие действия для {name}",
"loadFailed": "Не удалось загрузить категории.",
"saveFailed": "Не удалось сохранить категорию.",
"deleteFailed": "Не удалось удалить категорию.",
"created": "Категория создана: {name}",
"updated": "Категория обновлена: {name}",
"deleted": "Категория удалена: {name}"
},
"supportQuestionAdmin": {
"allCategories": "Все категории",
"allStatuses": "Все статусы",
"statusPending": "Ожидает проверки",
"statusNormal": "Обычный",
"statusResolved": "Решён",
"statusClosed": "Закрыт",
"statusHidden": "Скрыт",
"statusUpdated": "Статус вопроса обновлён.",
"answerPublished": "Ответ успешно опубликован.",
"answersCount": "Ответов: {count}",
"votesAndViews": "Голосов: {votes} · Просмотров: {views}",
"moderateNormal": "Вернуть в обычные",
"moderateClose": "Закрыть вопрос",
"moderateHide": "Скрыть вопрос",
"setBest": "Отметить как лучший",
"bestAnswer": "Лучший ответ",
"replyPlaceholder": "Введите ответ оператора...",
"publishReply": "Опубликовать ответ",
"empty": "Подходящие вопросы не найдены.",
"loading": "Загрузка вопросов...",
"title": "Обработка вопроса",
"userFallback": "Пользователь",
"uncategorized": "Без категории"
},
"aiWorkflow": {
"filterName": "Название рабочего процесса",
"searchName": "Поиск по названию рабочего процесса",
"columnWorkflow": "Рабочий процесс",
"noDescription": "Описание не указано",
"columnStatus": "Статус",
"published": "Опубликован",
"draft": "Черновик",
"currentVersion": "Текущая версия",
"publishedVersion": "Опубликована версия #{version}",
"versionHistory": "История версий",
"usage": "Использование",
"editTitle": "Изменение рабочего процесса",
"createTitle": "Новый рабочий процесс",
"refresh": "Обновить",
"create": "Создать рабочий процесс",
"query": "Поиск",
"loading": "Загрузка рабочих процессов...",
"empty": "Рабочих процессов пока нет",
"actions": "Действия",
"edit": "Изменить",
"delete": "Удалить",
"processing": "Выполняется...",
"moreActions": "Другие действия для {name}",
"loadFailed": "Не удалось загрузить рабочие процессы",
"saveFailed": "Не удалось сохранить рабочий процесс",
"deleteFailed": "Не удалось удалить рабочий процесс",
"created": "Рабочий процесс создан: {name}",
"updated": "Рабочий процесс обновлён: {name}",
"deleted": "Рабочий процесс удалён: {name}",
"nameRequired": "Введите название рабочего процесса",
"nameSaved": "Название сохранено",
"descriptionSaved": "Описание сохранено",
"savedSuccess": "Успешно сохранено",
"saveFirst": "Сначала сохраните",
"publishedVersionSuccess": "Опубликована версия v{version}",
"publishFailed": "Не удалось опубликовать",
"nameLabel": "Название рабочего процесса",
"loadingNodeCapabilities": "Загрузка возможностей узлов...",
"nodeStart": "Начало",
"nodeEnd": "Конец",
"usageTitle": "Использование",
"loadingUsage": "Загрузка использования...",
"fixedBoundVersion": "Привязан к версии v{version}",
"enabledStatus": "Включён",
"disabledStatus": "Отключён",
"notUsedByAnyAgent": "Пока не используется ни одним ИИ-агентом",
"versionsTitle": "История версий",
"loadingVersions": "Загрузка истории версий...",
"publisher": "Опубликовал: {name}",
"restoring": "Восстановление...",
"restoreToDraft": "Восстановить как черновик",
"restoredDraftSuccess": "Версия v{version} восстановлена как черновик",
"restoreFailed": "Не удалось восстановить версию",
"noVersionsYet": "Опубликованных версий пока нет",
"editorTitle": "Редактор процессов FlowGram",
"loadDetailFailed": "Не удалось загрузить детали аудита выполнения",
"executedCount": "Выполнено: {count}",
"errorStatus": "Ошибка",
"nodeTraceTitle": "Трассировка узлов",
"nodeTraceHint": "Нажмите, чтобы посмотреть входные данные, выходные данные и ошибки",
"noNodeRuns": "Записей выполнения узлов пока нет.",
"inputTitle": "Входные данные",
"outputTitle": "Выходные данные",
"noneValue": "Нет"
},
"mcp": {
"disabled": "отключено",
"loadServersFailed": "Не удалось загрузить серверы MCP.",
"connectSuccess": "Подключение к MCP выполнено.",
"connectFailed": "Не удалось подключиться к MCP.",
"toolsLoaded": "Загружено инструментов: {count}.",
"loadToolsFailed": "Не удалось загрузить инструменты.",
"selectToolFirst": "Сначала выберите инструмент.",
"argumentsInvalid": "Аргументы в JSON заданы некорректно.",
"argumentsMustBeJson": "arguments должны быть корректным JSON.",
"toolReturnedError": "Инструмент вернул результат с ошибкой.",
"toolCallSuccess": "Вызов инструмента выполнен успешно.",
"toolCallFailed": "Не удалось вызвать инструмент.",
"testConnection": "Проверить подключение",
"listTools": "Получить список инструментов",
"serverConfig": "Конфигурация сервера",
"selectServer": "Выберите сервер MCP",
"searchServer": "Поиск по serverCode",
"emptyServer": "Серверы MCP недоступны",
"connected": "Подключено",
"emptyToolsHint": "Результатов по инструментам пока нет. Нажмите «Получить список инструментов» выше.",
"toolName": "Название инструмента",
"description": "Описание",
"actions": "Действия",
"view": "Просмотреть",
"toolDetail": "Детали инструмента",
"detailDescription": "Изучите детали инструмента и выполните реальный тестовый вызов к выбранному серверу MCP.",
"noDescription": "Нет описания",
"testTool": "Проверить инструмент",
"returnedError": "Возвращена ошибка",
"callSuccess": "Вызов выполнен успешно",
"close": "Закрыть"
},
"agentProfile": {
"allStatuses": "Все статусы",
"all": "Все",
"statusIdle": "Свободен",
"statusBusy": "Занят",
"enabled": "Включён",
"disabled": "Отключён",
"loadFailed": "Не удалось загрузить профили операторов.",
"updated": "Профиль оператора обновлён: {name}",
"created": "Профиль оператора создан: {name}",
"saveFailed": "Не удалось сохранить профиль оператора.",
"deleted": "Профиль оператора удалён: {name}",
"deleteFailed": "Не удалось удалить профиль оператора.",
"refresh": "Обновить",
"expandTeams": "Развернуть список команд",
"collapseTeams": "Свернуть список команд",
"new": "Создать",
"filterDisplayName": "Фильтр по отображаемому имени",
"filterAgentCode": "Фильтр по коду оператора",
"searchStatus": "Поиск статуса",
"emptyStatus": "Подходящий статус не найден",
"query": "Поиск",
"columnAgent": "Оператор",
"columnRules": "Правила обслуживания",
"columnDispatch": "Назначение",
"columnRecent": "Недавняя активность",
"columnActions": "Действия",
"userFallback": "Пользователь #{id}",
"agentCode": "Код: {code}",
"capacityPriority": "Макс. диалогов {capacity} / приоритет {priority}",
"autoAssign": "Автоназначение",
"noAutoAssign": "Без автоназначения",
"offlineReceive": "Принимает офлайн-сообщения",
"noOfflineReceive": "Не принимает офлайн-сообщения",
"onlineAt": "В сети: {time}",
"statusAt": "Статус: {time}",
"edit": "Изменить",
"moreActions": "Другие действия для {name}",
"deleting": "Удаление...",
"delete": "Удалить",
"loadingRows": "Загрузка профилей операторов...",
"emptyTeamRows": "В этой команде нет подходящих профилей операторов",
"emptyRows": "Подходящие профили операторов не найдены",
"userRequired": "Выберите связанного пользователя.",
"teamRequired": "Выберите команду поддержки.",
"agentCodeRequired": "Введите код оператора.",
"displayNameRequired": "Введите отображаемое имя.",
"statusRequired": "Выберите статус оператора.",
"maxConcurrentInvalid": "Максимум одновременных диалогов должен быть целым числом не меньше 0.",
"priorityInvalid": "Приоритет должен быть целым числом.",
"loadOptionsFailed": "Не удалось загрузить варианты.",
"loadDetailFailed": "Не удалось загрузить детали профиля оператора.",
"editTitle": "Изменение профиля оператора",
"createTitle": "Новый профиль оператора",
"cancel": "Отмена",
"saving": "Сохранение...",
"save": "Сохранить",
"loading": "Загрузка...",
"linkedUser": "Связанный пользователь",
"selectUser": "Выберите пользователя",
"searchUser": "Поиск пользователей...",
"emptyUser": "Подходящие пользователи не найдены",
"linkedTeam": "Команда операторов",
"selectTeam": "Выберите команду",
"searchTeam": "Поиск команды...",
"emptyTeam": "Команды не найдены",
"noTeamsAvailable": "Сначала создайте команду операторов в боковой панели.",
"displayName": "Отображаемое имя",
"displayNamePlaceholder": "Введите отображаемое имя",
"agentCodeLabel": "Код оператора",
"agentCodePlaceholder": "Например: A1001",
"avatar": "Аватар",
"avatarUpload": "Загрузите аватар",
"serviceStatus": "Статус оператора",
"maxConcurrent": "Максимум одновременных диалогов",
"priority": "Приоритет",
"autoAssignEnabled": "Включать в автоназначение",
"receiveOfflineMessage": "Принимать офлайн-сообщения",
"remark": "Примечания",
"remarkPlaceholder": "Введите примечания",
"teamTitle": "Команды поддержки",
"searchTeams": "Поиск команд",
"loadTeamsFailed": "Не удалось загрузить команды поддержки.",
"teamUpdated": "Команда поддержки обновлена: {name}",
"teamCreated": "Команда поддержки создана: {name}",
"teamSaveFailed": "Не удалось сохранить команду поддержки.",
"teamDeleted": "Команда поддержки удалена: {name}",
"teamDeleteFailed": "Не удалось удалить команду поддержки.",
"noTeams": "Подходящие команды поддержки не найдены",
"teamNameRequired": "Введите название команды.",
"leaderInvalid": "Некорректный руководитель команды.",
"teamStatusRequired": "Выберите статус.",
"loadUsersFailed": "Не удалось загрузить варианты пользователей.",
"loadTeamDetailFailed": "Не удалось загрузить детали команды поддержки.",
"teamEditTitle": "Изменение",
"teamCreateTitle": "Создание",
"createTeamAction": "Создать команду",
"teamName": "Название команды",
"teamNamePlaceholder": "Введите название команды",
"leader": "Руководитель команды",
"noLeader": "Без руководителя",
"selectLeader": "Выберите руководителя команды",
"status": "Статус",
"selectStatus": "Выберите статус",
"description": "Обязанности",
"descriptionPlaceholder": "Например: обрабатывает вопросы по предпродаже и квалифицирует лиды"
},
"agentTeamSchedule": {
"loadFailed": "Не удалось загрузить расписания команд поддержки.",
"loadCalendarFailed": "Не удалось загрузить календарь расписаний.",
"loadTeamsFailed": "Не удалось загрузить варианты команд поддержки.",
"historyReadonly": "Прошедшие расписания нельзя изменять.",
"updated": "Расписание команды поддержки обновлено.",
"created": "Расписание команды поддержки создано.",
"saveFailed": "Не удалось сохранить расписание команды поддержки.",
"deleted": "Расписание команды поддержки удалено.",
"deleteFailed": "Не удалось удалить расписание команды поддержки.",
"updateFailed": "Не удалось обновить расписание команды поддержки.",
"month": "Месяц",
"week": "Неделя",
"list": "Список",
"prevMonth": "Предыдущий месяц",
"thisMonth": "Текущий месяц",
"nextMonth": "Следующий месяц",
"prevWeek": "Предыдущая неделя",
"thisWeek": "Текущая неделя",
"nextWeek": "Следующая неделя",
"today": "Сегодня",
"allTeams": "Все команды",
"filterTeam": "Фильтр по команде",
"searchTeam": "Поиск команд",
"emptyTeam": "Подходящие команды не найдены",
"query": "Поиск",
"refresh": "Обновить",
"batch": "Массовое расписание",
"new": "Создать",
"team": "Команда",
"timeRange": "Период",
"actions": "Действия",
"teamFallback": "Команда #{id}",
"teamId": "Идентификатор команды: {id}",
"edit": "Изменить",
"moreActions": "Другие действия для {name}",
"deleting": "Удаление...",
"delete": "Удалить",
"emptyRows": "Подходящие расписания команд поддержки не найдены",
"teamRequired": "Выберите команду поддержки.",
"startRequired": "Время начала обязательно.",
"endRequired": "Время окончания обязательно.",
"endAfterStart": "Время окончания должно быть позже времени начала.",
"singleDayOnly": "Одно расписание не может переходить через сутки.",
"loadOptionsFailed": "Не удалось загрузить варианты.",
"loadDetailFailed": "Не удалось загрузить детали расписания.",
"editTitle": "Изменение расписания команды поддержки",
"createTitle": "Новое расписание команды поддержки",
"loading": "Загрузка...",
"startTime": "Время начала",
"endTime": "Время окончания",
"remark": "Примечания",
"remarkPlaceholder": "Введите примечания",
"cancel": "Отмена",
"saving": "Сохранение...",
"save": "Сохранить",
"weekdayMon": "Пн",
"weekdayTue": "Вт",
"weekdayWed": "Ср",
"weekdayThu": "Чт",
"weekdayFri": "Пт",
"weekdaySat": "Сб",
"weekdaySun": "Вс",
"weekdayShortMon": "Пн",
"weekdayShortTue": "Вт",
"weekdayShortWed": "Ср",
"weekdayShortThu": "Чт",
"weekdayShortFri": "Пт",
"weekdayShortSat": "Сб",
"weekdayShortSun": "Вс",
"monthTitle": "{month}/{year}",
"dropInsideCalendar": "Перетащите на день календаря.",
"cannotMoveHere": "Сюда переместить нельзя.",
"resizeInvalid": "Нельзя переходить через сутки или задавать короче 15 минут.",
"noTeamsCalendar": "Для календаря нет доступных команд поддержки.",
"moreItems": "Ещё {count}",
"batchDescription": "Выберите команды, период и рабочие часы. Проверьте результат перед созданием расписаний.",
"addTeam": "Добавить команду",
"loadingTeams": "Загрузка команд...",
"noTeams": "Команд нет",
"allTeamsSelected": "Выбраны все команды",
"removeTeam": "Удалить {name}",
"noSelectedTeams": "Команды не выбраны",
"startDate": "Дата начала",
"endDate": "Дата окончания",
"weekday": "День недели",
"previewFailed": "Не удалось выполнить предварительный просмотр массового расписания.",
"previewFirst": "Сначала проверьте массовое расписание.",
"conflictCannotSubmit": "Расписания с конфликтами отправить нельзя.",
"batchCreated": "Создано расписаний команд поддержки: {count}.",
"batchRefreshFailed": "Расписания созданы, но не удалось обновить список: {message}",
"batchRefreshFailedFallback": "Расписания созданы, но не удалось обновить список.",
"generateFailed": "Не удалось создать массовое расписание.",
"selectAtLeastOneTeam": "Выберите хотя бы одну команду поддержки.",
"selectDateRange": "Выберите период.",
"startBeforeToday": "Дата начала не может быть раньше сегодняшней.",
"endBeforeStart": "Дата окончания не может быть раньше даты начала.",
"selectAtLeastOneWeekday": "Выберите хотя бы один день недели.",
"selectStartEndTime": "Выберите время начала и окончания.",
"previewSummaryConflict": "{total} расписаний, есть конфликты. Вернитесь и скорректируйте их.",
"previewSummaryReady": "{total} расписаний. Создайте их после подтверждения отсутствия конфликтов.",
"hasConflict": "Есть конфликты",
"noConflict": "Конфликтов нет",
"date": "Дата",
"time": "Время",
"status": "Статус",
"conflictFallback": "Конфликт расписания",
"canGenerate": "Готово",
"emptyPreview": "Нет расписаний для создания",
"backToEdit": "Вернуться к редактированию",
"preview": "Проверить",
"generate": "Создать расписания"
},
"ticket": {
"allAssignees": "Все исполнители",
"allTags": "Все теги",
"hours": "{hours} ч",
"manual": "Вручную",
"conversation": "Диалог",
"manualCreated": "Создано вручную",
"conversationGenerated": "Создано из диалога",
"agentFallback": "Оператор #{id}",
"customerFallback": "Клиент #{id}",
"userFallback": "Пользователь #{id}",
"unassigned": "Не назначено",
"noCustomer": "Без клиента",
"loadFailed": "Не удалось загрузить обращения.",
"loadFiltersFailed": "Не удалось загрузить фильтры.",
"created": "Обращение создано.",
"createFailed": "Не удалось создать обращение.",
"quickAll": "Все обращения",
"quickPending": "Ожидают",
"quickInProgress": "В работе",
"quickDone": "Решённые",
"quickUnassigned": "Без исполнителя",
"quickMine": "Мои обращения",
"quickStale": "Просроченные",
"refresh": "Обновить",
"newTicket": "Новое обращение",
"searchPlaceholder": "Поиск по номеру, заголовку или описанию обращения",
"staleThreshold": "Считается просроченным после",
"reset": "Сбросить",
"query": "Поиск",
"columnTicket": "Обращение",
"columnStatus": "Статус",
"columnAssignee": "Исполнитель",
"columnUpdated": "Последнее обновление",
"columnActions": "Действия",
"loadingRows": "Загрузка обращений...",
"emptyRows": "Обращений пока нет",
"detail": "Детали",
"currentStatus": "Текущий статус",
"statusPending": "Ожидает",
"statusInProgress": "В работе",
"statusDone": "Решено",
"titleRequired": "Введите заголовок обращения.",
"descriptionRequired": "Введите описание проблемы.",
"selectedTags": "Выбрано тегов: {count}",
"selectTags": "Выберите теги обращения",
"searchTags": "Поиск тегов",
"emptyTags": "Тегов нет",
"tags": "Теги",
"noAssignee": "Без исполнителя",
"editTitle": "Изменение обращения",
"createTitle": "Новое обращение",
"dialogDescription": "Введите основные данные обращения.",
"cancel": "Отмена",
"saving": "Сохранение...",
"save": "Сохранить",
"create": "Создать",
"loading": "Загрузка...",
"title": "Заголовок",
"titlePlaceholder": "Введите заголовок обращения",
"description": "Описание",
"assignee": "Исполнитель",
"selectAssignee": "Выберите исполнителя",
"ticketTags": "Теги обращения",
"detailTitle": "Детали обращения",
"creator": "Создал {name}",
"loadDetailFailed": "Не удалось загрузить детали обращения.",
"statusUpdated": "Статус обращения обновлён.",
"statusUpdateFailed": "Не удалось обновить статус обращения.",
"statusChangeConfirmTitle": "Подтверждение смены статуса",
"statusChangeConfirmDescription": "Изменить статус обращения с «{from}» на «{to}»?",
"statusChangeConfirm": "Подтвердить изменение",
"updating": "Обновление...",
"progressRequired": "Введите запись о ходе работ.",
"progressRecorded": "Запись добавлена.",
"progressCreateFailed": "Не удалось добавить запись.",
"selectTicket": "Выберите обращение.",
"updated": "Обращение обновлено.",
"updateFailed": "Не удалось обновить обращение.",
"noLinkedCustomer": "Это обращение не привязано к клиенту.",
"saved": "Сохранено.",
"saveFailed": "Не удалось сохранить.",
"noDescription": "Нет описания",
"assign": "Назначить",
"edit": "Изменить",
"linkOrCreate": "Привязать или создать",
"customerInfo": "Данные клиента",
"customer": "Клиент",
"contact": "Контакт",
"ticketInfo": "Данные обращения",
"source": "Источник",
"channel": "Канал",
"conversationId": "Идентификатор диалога",
"progress": "Ход работ",
"addProgress": "Добавить запись",
"noProgress": "Записей пока нет",
"chooseTicket": "Выберите обращение",
"progressPlaceholder": "Опишите ход работ",
"submitting": "Отправка...",
"submit": "Отправить",
"assignTitle": "Назначить обращение",
"assigneeRequired": "Выберите исполнителя.",
"loadAssigneesFailed": "Не удалось загрузить исполнителей.",
"assigneeUpdated": "Исполнитель обновлён.",
"assignFailed": "Не удалось назначить обращение.",
"selectHandler": "Выберите исполнителя",
"assignReason": "Примечание",
"assignReasonPlaceholder": "Добавьте примечание к назначению",
"confirmAssign": "Назначить",
"conversationToTicket": "Создать обращение из диалога",
"conversationToTicketDescription": "Создайте обращение на основе текущего диалога.",
"conversationMissing": "Диалог не найден.",
"createSuccess": "Обращение создано."
},
"skillDefinition": {
"allStatus": "Все статусы",
"statusOk": "Включён",
"statusDisabled": "Отключён",
"statusDeleted": "Удалён",
"whitelistCount": "В списке разрешённых: {count}",
"exampleCount": "Примеров: {count}",
"noDescription": "Нет описания",
"toggleStatus": "Изменить статус навыка {name}",
"debug": "Отладка",
"edit": "Изменить",
"moreActions": "Другие действия для {name}",
"restoring": "Восстановление...",
"restore": "Восстановить",
"deleting": "Удаление...",
"processing": "Выполняется...",
"delete": "Удалить",
"loadFailed": "Не удалось загрузить навыки.",
"updated": "Навык обновлён: {name}",
"created": "Навык создан: {name}",
"saveFailed": "Не удалось сохранить навык.",
"enabled": "Включён: {name}",
"disabled": "Отключён: {name}",
"statusUpdateFailed": "Не удалось обновить статус.",
"deleted": "Навык удалён: {name}",
"deleteFailed": "Не удалось удалить навык.",
"restored": "Навык восстановлен: {name}",
"restoreFailed": "Не удалось восстановить навык.",
"refresh": "Обновить",
"new": "Создать",
"filterName": "Фильтр по названию",
"searchStatus": "Поиск статусов",
"emptyStatus": "Подходящие статусы не найдены",
"query": "Поиск",
"status": "Статус",
"updatedAt": "Последнее обновление",
"actions": "Действия",
"loadingRows": "Загрузка навыков...",
"emptyRows": "Подходящие навыки не найдены",
"nameRequired": "Введите название навыка.",
"instructionRequired": "Введите инструкции навыка.",
"editTitle": "Изменение",
"createTitle": "Создание",
"cancel": "Отмена",
"saving": "Сохранение...",
"save": "Сохранить",
"create": "Создать",
"loading": "Загрузка...",
"name": "Название",
"namePlaceholder": "Например: обработка возвратов",
"description": "Описание",
"descriptionPlaceholder": "Опишите, что делает этот навык, какие у него границы и когда его применять.",
"instruction": "Инструкции",
"instructionPlaceholder": "Введите документацию навыка: цели, шаги, правила работы с инструментами и границы.",
"examples": "Примеры фраз",
"examplesPlaceholder": "По одной типовой фразе пользователя в строке, например:\nМне нужен возврат\nВы можете проверить мой заказ?",
"toolWhitelist": "Список разрешённых инструментов",
"selectTool": "Выберите инструменты, доступные этому навыку",
"searchTool": "Поиск по коду или названию инструмента",
"emptyTool": "Добавить инструменты нельзя",
"add": "Добавить",
"inheritAgentTools": "Оставьте пустым, чтобы наследовать доступные агенту инструменты.",
"remark": "Примечания",
"remarkPlaceholder": "Добавьте внутренние примечания или детали сопровождения",
"agentRequired": "Выберите ИИ-агента.",
"messageRequired": "Введите сообщение пользователя.",
"emptyData": "Нет данных",
"traceData": "Данные трассировки",
"resumeTraceData": "Данные трассировки для продолжения",
"confirm": "Подтвердить",
"reject": "Отмена",
"debugFailed": "Отладка навыка не удалась.",
"resumeMessageRequired": "Введите сообщение для продолжения.",
"resumeFailed": "Не удалось продолжить отладку.",
"debugTitle": "Отладка навыка · {name}",
"debugDescription": "Принудительно примените этот навык и изучите маршрутизацию, инструменты, выполнение графа, HITL и итоговый ответ.",
"close": "Закрыть",
"debugging": "Отладка...",
"startDebug": "Начать отладку",
"debugInput": "Входные данные отладки",
"selectAgent": "Выберите ИИ-агента",
"searchAgent": "Поиск ИИ-агентов",
"emptyAgent": "ИИ-агенты не найдены",
"conversationPlaceholder": "Необязательно. Укажите идентификатор существующего диалога, чтобы использовать его контекст.",
"matchedAgent": "Совпавший агент",
"noAgentSelected": "Не выбран",
"userMessage": "Сообщение пользователя",
"userMessagePlaceholder": "Введите сообщение пользователя, чтобы отладить вызовы возможностей навыка и ответ внутри цикла агента.",
"debugSummary": "Сводка отладки",
"interrupted": "Прервано",
"notInterrupted": "Не прервано",
"skillName": "Название навыка",
"none": "Нет",
"errorMessage": "Сообщение об ошибке",
"toolView": "Инструменты",
"skillToolWhitelist": "Разрешённые инструменты навыка",
"invokedTools": "Инструменты, вызванные за этот запуск",
"resumeDebug": "Продолжить отладку",
"currentCheckpoint": "Текущая контрольная точка",
"resumeMessage": "Сообщение для продолжения",
"resumePlaceholder": "Введите «Подтвердить», «Отмена» или другое сообщение для продолжения",
"resuming": "Продолжение...",
"resumeDebugAction": "Продолжить отладку",
"resumeResult": "Результат продолжения",
"stillWaiting": "По-прежнему ожидается подтверждение",
"resumeCompleted": "Продолжение завершено",
"resumeReply": "Ответ при продолжении"
},
"knowledge": {
"document": "Документы",
"faq": "FAQ",
"retrieveLogs": "Журналы извлечения",
"expandList": "Развернуть список баз знаний",
"collapseList": "Свернуть список баз знаний",
"resizeList": "Изменить размер списка баз знаний",
"refreshDocuments": "Обновить документы",
"listLayout": "Список",
"gridLayout": "Плитка",
"openDebugPanel": "Открыть панель отладки",
"newDocument": "Новый документ",
"refreshFAQ": "Обновить FAQ",
"importFAQ": "Импорт FAQ",
"newFAQ": "Новый FAQ",
"ragDebug": "Отладка RAG",
"title": "База знаний",
"columnBase": "База знаний",
"columnType": "Тип",
"columnContent": "Элементы",
"columnStatus": "Статус",
"columnUpdatedAt": "Последнее обновление",
"columnActions": "Действия",
"sortHandle": "Перетащите, чтобы изменить порядок",
"processing": "Выполняется...",
"noDescription": "Нет описания",
"refreshBases": "Обновить базы знаний",
"backToList": "Назад к базам знаний",
"baseNotFound": "Эта база знаний не найдена или была удалена.",
"loadBaseFailed": "Не удалось загрузить базу знаний.",
"allStatus": "Все статусы",
"status": "Статус",
"statusOk": "Включена",
"statusDisabled": "Отключена",
"statusDeleted": "Удалена",
"typeDocument": "База знаний документов",
"typeFAQ": "База знаний FAQ",
"chunkFixed": "Фиксированная длина",
"chunkStructured": "Структурированные фрагменты",
"chunkFAQ": "Фрагменты «вопрос-ответ»",
"chunkSemantic": "Семантические фрагменты",
"answerStrict": "Строгий режим",
"answerAssist": "Режим подсказок",
"loadBasesFailed": "Не удалось загрузить базы знаний.",
"baseUpdated": "База знаний обновлена: {name}",
"baseCreated": "База знаний создана: {name}",
"baseSaveFailed": "Не удалось сохранить базу знаний.",
"baseDeleted": "База знаний удалена: {name}",
"baseDeleteFailed": "Не удалось удалить базу знаний.",
"loadDirectoriesFailed": "Не удалось загрузить каталоги.",
"directoryCreated": "Каталог создан: {name}",
"directoryUpdated": "Каталог обновлён: {name}",
"directoryDeleted": "Каталог удалён: {name}",
"directorySaveFailed": "Не удалось сохранить каталог.",
"directoryDeleteFailed": "Не удалось удалить каталог.",
"directoryMoved": "Каталог перемещён.",
"directoryMoveFailed": "Не удалось переместить каталог.",
"directorySortUpdated": "Порядок каталогов обновлён.",
"directorySortUpdateFailed": "Не удалось обновить порядок каталогов.",
"directoryNameRequired": "Название каталога обязательно.",
"rebuildStarted": "Запущена переиндексация базы знаний: {name}",
"rebuildFailed": "Не удалось перестроить индекс базы знаний.",
"sortUpdated": "Порядок баз знаний обновлён.",
"sortUpdateFailed": "Не удалось обновить порядок баз знаний.",
"moreActions": "Другие действия для {name}",
"view": "Просмотреть",
"edit": "Изменить",
"rebuilding": "Перестроение...",
"rebuildIndex": "Перестроить индекс",
"deleting": "Удаление...",
"delete": "Удалить",
"move": "Переместить",
"moving": "Перемещение...",
"selectedCount": "Выбрано: {count}",
"clearSelection": "Снять выделение",
"selectCurrentPage": "Выбрать текущую страницу",
"selectItem": "Выбрать {name}",
"batchMove": "Переместить выбранные",
"batchMoveDescription": "Переместить выбранные элементы ({count}) в каталог.",
"batchMoved": "Перемещено элементов: {count}.",
"batchMoveFailed": "Не удалось переместить выбранные элементы.",
"batchDelete": "Удалить выбранные",
"batchDeleteConfirm": "Удалить выбранные элементы ({count})? Это действие нельзя отменить.",
"batchDeleted": "Удалено элементов: {count}.",
"batchDeleteFailed": "Не удалось удалить выбранные элементы.",
"targetDirectory": "Целевой каталог",
"directory": "Каталог",
"resizeDirectoryPanel": "Изменить размер панели каталогов",
"allContent": "Всё содержимое",
"rootContent": "Содержимое корня",
"rootDirectory": "Корневой каталог",
"parentDirectory": "Родительский каталог",
"createDirectory": "Новый каталог",
"createSubDirectory": "Новый подкаталог",
"editDirectory": "Изменение каталога",
"expandDirectory": "Развернуть каталог",
"collapseDirectory": "Свернуть каталог",
"selectDirectory": "Выбрать каталог",
"searchDirectory": "Поиск каталогов",
"emptyDirectory": "Подходящие каталоги не найдены",
"directoryName": "Название каталога",
"directoryNamePlaceholder": "Введите название каталога",
"searchBase": "Поиск баз знаний",
"query": "Поиск",
"emptyBases": "Подходящие базы знаний не найдены",
"nameRequired": "Название обязательно.",
"nameMax": "Название не может превышать 100 символов.",
"descriptionMax": "Описание не может превышать 500 символов.",
"typeRequired": "Выберите тип базы знаний.",
"topKRequired": "Введите значение Top K.",
"scoreRequired": "Введите порог оценки.",
"rerankRequired": "Введите лимит переранжирования.",
"chunkProviderRequired": "Выберите стратегию разбиения на фрагменты.",
"targetTokensRequired": "Введите целевое количество токенов.",
"maxTokensRequired": "Введите максимальное количество токенов.",
"overlapTokensRequired": "Введите количество перекрывающихся токенов.",
"answerModeRequired": "Выберите режим ответа.",
"remarkMax": "Примечания не могут превышать 500 символов.",
"editBaseTitle": "Изменение базы знаний",
"createBaseTitle": "Новая база знаний",
"cancel": "Отмена",
"saving": "Сохранение...",
"save": "Сохранить",
"create": "Создать",
"loading": "Загрузка...",
"knowledgeType": "Тип базы знаний",
"selectKnowledgeType": "Выберите тип базы знаний",
"searchKnowledgeType": "Поиск типов баз знаний",
"emptyKnowledgeType": "Подходящие типы баз знаний не найдены",
"name": "Название",
"namePlaceholder": "Название базы знаний",
"description": "Описание",
"descriptionPlaceholder": "Описание базы знаний",
"chunkProvider": "Стратегия разбиения на фрагменты",
"selectChunkProvider": "Выберите стратегию разбиения на фрагменты",
"searchChunkProvider": "Поиск стратегий разбиения",
"emptyChunkProvider": "Подходящие стратегии разбиения не найдены",
"targetToken": "Целевые токены",
"maxToken": "Максимум токенов",
"overlapToken": "Перекрывающиеся токены",
"defaultTopK": "Top K по умолчанию",
"defaultScoreThreshold": "Порог оценки по умолчанию",
"defaultRerankLimit": "Лимит переранжирования по умолчанию",
"answerMode": "Режим ответа",
"selectAnswerMode": "Выберите режим ответа",
"searchAnswerMode": "Поиск режимов ответа",
"emptyAnswerMode": "Подходящие режимы ответа не найдены",
"remark": "Примечания",
"remarkPlaceholder": "Примечания",
"allIndexStatus": "Все статусы индексации",
"searchStatus": "Поиск статусов",
"emptyStatus": "Подходящие статусы не найдены",
"indexPending": "Ожидает",
"indexIndexed": "Проиндексирован",
"indexFailed": "Ошибка индексации",
"loadDocumentsFailed": "Не удалось загрузить документы.",
"documentUpdated": "Документ обновлён: {title}",
"documentCreated": "Документ создан: {title}",
"documentSaveFailed": "Не удалось сохранить документ.",
"documentDeleted": "Документ удалён: {title}",
"documentDeleteFailed": "Не удалось удалить документ.",
"documentIndexRebuilt": "Индекс перестроен: {title}",
"documentIndexRebuildFailed": "Не удалось перестроить индекс.",
"selectKnowledgeBaseForDocuments": "Выберите базу знаний, чтобы просмотреть документы.",
"searchDocumentTitle": "Поиск по заголовкам документов",
"indexedAt": "Проиндексирован {time}",
"indexTime": "Проиндексирован в {time}",
"running": "Выполняется...",
"emptyDocuments": "Подходящие документы не найдены",
"documentTitleRequired": "Заголовок обязателен.",
"documentTitleMax": "Заголовок не может превышать 255 символов.",
"contentTypeRequired": "Выберите тип содержимого.",
"contentRequired": "Содержимое обязательно.",
"editDocumentTitle": "Изменение документа",
"createDocumentTitle": "Новый документ",
"viewDocumentTitle": "Просмотр документа",
"documentTitle": "Заголовок",
"documentTitlePlaceholder": "Заголовок документа",
"content": "Содержимое",
"contentPlaceholder": "Введите содержимое документа",
"loadFAQFailed": "Не удалось загрузить FAQ.",
"loadingFAQ": "Загрузка FAQ...",
"faqSaved": "FAQ сохранён.",
"faqSaveFailed": "Не удалось сохранить FAQ.",
"faqDeleted": "FAQ удалён.",
"faqDeleteFailed": "Не удалось удалить FAQ.",
"faqIndexRebuilt": "Индекс FAQ перестроен.",
"faqIndexRebuildFailed": "Не удалось перестроить индекс FAQ.",
"selectFAQBase": "Выберите базу знаний FAQ, чтобы просмотреть вопросы.",
"searchFAQ": "Поиск FAQ по вопросу",
"question": "Вопрос",
"indexStatus": "Статус индексации",
"indexedAtLabel": "Проиндексирован",
"similarQuestions": "Похожие вопросы",
"updatedAt": "Обновлён",
"createUser": "Создал",
"updateUser": "Обновил",
"actions": "Действия",
"emptyFAQ": "В этой базе знаний пока нет вопросов FAQ",
"faqQuestionRequired": "Вопрос обязателен.",
"faqQuestionMax": "Вопрос не может превышать 500 символов.",
"faqAnswerRequired": "Ответ обязателен.",
"editFAQTitle": "Изменение FAQ",
"createFAQTitle": "Новый FAQ",
"viewFAQTitle": "Просмотр FAQ",
"standardQuestion": "Основной вопрос",
"questionPlaceholder": "Введите основной вопрос",
"answer": "Ответ",
"answerPlaceholder": "Введите ответ FAQ",
"similarQuestionsPlaceholder": "По одному похожему вопросу в строке",
"importRowFailed": "Строка {row}: {message}",
"importFailed": "Импорт не удался.",
"importFAQTitle": "Импорт FAQ",
"importFAQDescription": "Загрузите Excel-файл для массового импорта FAQ. Обязательные столбцы: основной вопрос и ответ. Похожие вопросы указывайте по одному в строке в той же ячейке.",
"downloadTemplate": "Скачать шаблон",
"downloadTemplateFailed": "Не удалось скачать шаблон.",
"importing": "Импорт...",
"startImport": "Начать импорт",
"importFile": "Файл импорта",
"chooseFile": "Выбрать файл",
"importFileDescription": "Поддерживаются только файлы .xlsx.",
"currentFile": "Текущий файл: {name}",
"importHint": "Примечания по импорту",
"importXlsxHint": "Столбцы шаблона: основной вопрос, ответ, похожие вопросы и примечания. Похожие вопросы указывайте по одному в строке внутри ячейки.",
"importXlsxOnly": "Поддерживаются только файлы .xlsx.",
"importMode": "Режим импорта",
"selectImportMode": "Выберите режим импорта",
"searchImportMode": "Поиск режима импорта",
"emptyImportMode": "Режимы импорта не найдены",
"importModeAppend": "Импорт с добавлением",
"importModeOverwrite": "Импорт с перезаписью",
"importModeAppendDescription": "Создаёт только те основные вопросы, которых ещё нет. Существующие основные вопросы пропускаются.",
"importModeOverwriteDescription": "Сопоставляет по основному вопросу и обновляет существующие записи FAQ. Отсутствующие основные вопросы создаются.",
"importResult": "Результат импорта",
"importTotal": "Всего",
"importCreated": "Создано",
"importUpdated": "Обновлено",
"importSkipped": "Пропущено",
"importFailedCount": "С ошибками",
"importFAQResultToast": "Создано: {created}, обновлено: {updated}, пропущено: {skipped}, с ошибками: {failed}",
"exportFAQ": "Экспорт FAQ",
"exportFAQSuccess": "Загрузка экспорта FAQ начата.",
"exportFAQFailed": "Не удалось экспортировать FAQ.",
"none": "Нет",
"allChannels": "Все каналы",
"channelIM": "Чат поддержки",
"channelAgentAssist": "Помощь оператору",
"channelAPI": "API",
"channelDebug": "Отладка",
"allScenes": "Все сценарии",
"sceneFirstResponse": "Первый ответ",
"sceneAssist": "Подсказка ответа",
"sceneQA": "Вопрос-ответ",
"allAnswerStatus": "Все статусы ответа",
"answerNormal": "Обычный",
"answerNoAnswer": "Нет ответа",
"answerFallback": "Резервный ответ",
"answerBlocked": "Заблокирован",
"allChunkProviders": "Все стратегии разбиения",
"allRerank": "Любое переранжирование",
"rerankEnabled": "Переранжирование включено",
"rerankDisabled": "Переранжирование отключено",
"loadRetrieveLogsFailed": "Не удалось загрузить журналы извлечения.",
"selectBaseForLogs": "Выберите базу знаний, чтобы просмотреть журналы извлечения.",
"loadingRetrieveLogs": "Загрузка журналов извлечения...",
"emptyRetrieveLogs": "В этой базе знаний пока нет журналов извлечения",
"filterQuestion": "Фильтр по ключевому слову вопроса",
"selectChannel": "Выберите канал",
"selectScene": "Выберите сценарий",
"answerStatus": "Статус ответа",
"chunkStrategy": "Стратегия разбиения на фрагменты",
"filter": "Фильтр",
"time": "Время",
"hitCount": "Совпадения",
"citations": "Ссылки",
"duration": "Длительность",
"yes": "Да",
"no": "Нет",
"loadRetrieveLogDetailFailed": "Не удалось загрузить детали журнала извлечения.",
"noCitations": "Источники ссылок отсутствуют",
"unrecordedSection": "Раздел не зафиксирован",
"retrieveLogDetail": "Детали журнала извлечения",
"retrieveLogNotFound": "Журнал извлечения не найден",
"loadingDetail": "Загрузка деталей...",
"emptyDetail": "Нет деталей",
"requestInfo": "Данные запроса",
"createdAt": "Создан",
"channelScene": "Канал / сценарий",
"originalQuestion": "Исходный вопрос",
"rewriteQuestion": "Переформулированный вопрос",
"answerContent": "Ответ",
"retrieveStrategy": "Стратегия извлечения",
"resultSummary": "Сводка результата",
"contextChunks": "Фрагменты контекста",
"retrieveMs": "Время извлечения",
"generateMs": "Время генерации",
"totalMs": "Общее время",
"model": "Модель",
"sessionId": "Идентификатор сессии",
"citationSources": "Источники ссылок",
"hitDetails": "Детали совпадений",
"itemsCount": "Элементов: {count}",
"usedInContext": "Использован в контексте",
"notUsedInContext": "Не использован в контексте",
"section": "Раздел: {section}",
"selectKnowledgeBaseFirst": "Сначала выберите базу знаний.",
"debugQuestionRequired": "Введите вопрос для отладки.",
"searchCompleted": "Поиск завершён. Совпадений: {count}.",
"searchFailed": "Поиск не удался.",
"answerCompleted": "Ответ сформирован. Статус: {status}",
"answerFailed": "Не удалось сформировать ответ.",
"debugQuestionPlaceholder": "Введите вопрос, чтобы проверить извлечение и качество ответа.",
"topKPlaceholder": "Количество совпадений",
"scoreThreshold": "Порог сходства",
"scoreThresholdPlaceholder": "Минимальная оценка",
"rerankLimitLabel": "Лимит переранжирования",
"rerankLimitPlaceholder": "Элементов для переранжирования",
"searching": "Поиск...",
"debugSearch": "Отладочный поиск",
"generating": "Формирование...",
"debugAnswer": "Отладочный ответ",
"answerResult": "Результат ответа",
"searchHits": "Совпадения поиска",
"hitsSummary": "Совпадений: {count} · {latency}мс",
"unknownType": "Неизвестный тип",
"unknownStatus": "Неизвестный статус",
"indexFailureSummary": "Не удалось выполнить индексацию. Проверьте настройки индексации и повторите попытку.",
"requestId": "Идентификатор запроса",
"rerank": "Переранжирование",
"topScore": "Лучшая оценка",
"promptTokens": "Входные токены",
"completionTokens": "Выходные токены",
"traceData": "Данные трассировки",
"chunkNumber": "Фрагмент №{number}",
"providerValue": "Стратегия: {value}",
"scoreValue": "Оценка: {value}",
"rerankValue": "Оценка переранжирования: {value}",
"historyRecordedNotice": "Прошлые ответы и фрагменты показаны в исходном виде. Смена языка интерфейса не изменяет историю.",
"faqNumber": "FAQ №{number}",
"documentNumber": "Документ №{number}"
},
"scaffold": {
"moduleBoard": "Доска поставки модулей",
"moduleBoardDescription": "Каркас админки первого этапа. Позже замените его реальными модулями на базе API.",
"searchModule": "Поиск модулей",
"filter": "Фильтр",
"moduleList": "Модули",
"milestones": "Этапы",
"phaseOneModules": "Модули первого этапа",
"phaseOneDescription": "Охватывает учётные записи, разрешения, базу знаний, каналы и точки входа навыков.",
"module": "Модуль",
"owner": "Ответственный",
"status": "Статус",
"progress": "Прогресс",
"updatedAt": "Обновлён",
"done": "Готово",
"nextMilestone": "Следующий этап",
"nextMilestoneDescription": "Каркас интерфейса готов. Следующий шаг: подключить реальные API и бизнес-формы.",
"milestoneLogin": "Подключить API входа, пользователей, ролей и разрешений.",
"milestoneForms": "Добавить диалоги форм, постраничные запросы и обработку ошибок.",
"milestoneKnowledge": "Подключить реальную базу знаний и настройку каналов.",
"adminUsers": "Администраторы",
"newAdminsThisWeek": "Новых администраторов за неделю",
"accountSystemReady": "Основа учётных записей готова к подключению реальных API",
"permissions": "Разрешения",
"initialized": "Инициализировано",
"permissionsPending": "Разрешения меню и API ожидают реализации",
"permissionModelReady": "Готово к подключению серверной модели разрешений",
"knowledgeTasks": "Задачи по знаниям",
"running": "Выполняется",
"ragReserved": "Заглушка интеграции RAG",
"docIndexSupport": "Поддерживает импорт документов и индексацию",
"channelAccess": "Доступ к каналам",
"pendingConfig": "Ожидает настройки",
"channelEntrances": "Точки входа WeCom, DingTalk и IM",
"waitingRealConfig": "Ожидание реальных параметров подключения",
"recentActivity": "Недавняя активность разработки",
"activityDescription": "Демонстрационные данные о росте диалогов и готовности базы знаний.",
"activeSessions": "Активные сессии",
"indexedDocs": "Документы базы знаний",
"last14Days": "Последние 14 дней",
"last7Days": "Последние 7 дней",
"selectTimeRange": "Выберите период",
"businessModules": "Бизнес-модули",
"open": "Открыть",
"share": "Поделиться",
"delete": "Удалить",
"more": "Ещё"
},
"widgetDemo": {
"defaultName": "Демо-пользователь",
"missingUserId": "Введите userId.",
"missingName": "Введите имя пользователя.",
"missingSecret": "Введите JWT-секрет.",
"invalidTtl": "TTL должен быть больше 0.",
"missingChannel": "Введите channelId.",
"mountedJwt": "Виджет подключён в режиме JWT-пользователя.",
"mountedGuest": "Виджет подключён в режиме гостя.",
"mounted": "Виджет подключён.",
"mountFailed": "Не удалось подключить виджет.",
"linkFailed": "Не удалось сформировать ссылку на поддержку.",
"unmounted": "Виджет отключён.",
"title": "Проверка подключения виджета",
"authMode": "Режим авторизации",
"guest": "Гость",
"jwtUser": "JWT-пользователь",
"ttlMinutes": "TTL (минуты)",
"mount": "Подключить",
"unmount": "Отключить",
"snippetTitle": "Код встраивания",
"jwtNotice": "Эта страница предназначена только для локальной симуляции. В рабочей среде userToken должен выдавать ваш бэкенд.",
"copiedSnippet": "Код встраивания скопирован",
"copySnippet": "Копировать код встраивания",
"copied": "Скопировано",
"copyCode": "Копировать код",
"directChat": "Прямой чат с клиентом",
"directChatPlaceholder": "Скопируйте или откройте в новом окне, чтобы получить актуальную ссылку",
"copy": "Копировать",
"openNewWindow": "Открыть в новом окне",
"currentToken": "Текущий userToken"
},
"quickReply": {
"loadFailed": "Не удалось загрузить быстрые ответы.",
"created": "Быстрый ответ создан: {title}",
"updated": "Быстрый ответ обновлён: {title}",
"saveFailed": "Не удалось сохранить быстрый ответ.",
"enabled": "Включён: {title}",
"disabled": "Отключён: {title}",
"statusUpdateFailed": "Не удалось обновить статус.",
"deleted": "Быстрый ответ удалён: {title}",
"deleteFailed": "Не удалось удалить быстрый ответ.",
"refresh": "Обновить",
"new": "Новый быстрый ответ",
"filterTitle": "Фильтр по заголовку",
"filterGroup": "Фильтр по группе",
"query": "Поиск",
"columnQuickReply": "Быстрый ответ",
"columnGroup": "Группа",
"columnStatus": "Статус",
"columnSort": "Сортировка",
"columnCreator": "Создал",
"columnActions": "Действия",
"edit": "Изменить",
"moreActions": "Другие действия для {title}",
"processing": "Выполняется...",
"enable": "Включить",
"disable": "Отключить",
"deleting": "Удаление...",
"delete": "Удалить",
"loading": "Загрузка быстрых ответов...",
"empty": "Подходящие быстрые ответы не найдены",
"editTitle": "Изменение быстрого ответа",
"createTitle": "Новый быстрый ответ",
"cancel": "Отмена",
"saving": "Сохранение...",
"save": "Сохранить",
"create": "Создать",
"loadingDetail": "Загрузка...",
"groupName": "Название группы",
"groupNameRequired": "Введите название группы.",
"groupNamePlaceholder": "Например: предпродажа, поддержка, сопровождение",
"title": "Заголовок",
"titleRequired": "Введите заголовок.",
"titlePlaceholder": "Введите заголовок быстрого ответа",
"content": "Содержимое ответа",
"contentRequired": "Введите содержимое ответа.",
"contentPlaceholder": "Введите содержимое ответа",
"statusRequired": "Выберите статус.",
"sortRequired": "Введите значение сортировки.",
"sortInvalid": "Значение сортировки должно быть целым числом не меньше 0.",
"sortPlaceholder": "Большие значения отображаются первыми"
},
"tag": {
"loadFailed": "Не удалось загрузить теги.",
"updated": "Тег обновлён: {name}",
"created": "Тег создан: {name}",
"saveFailed": "Не удалось сохранить тег.",
"enabled": "Включён: {name}",
"disabled": "Отключён: {name}",
"statusUpdateFailed": "Не удалось обновить статус.",
"deleted": "Тег удалён: {name}",
"deleteFailed": "Не удалось удалить тег.",
"sameParentOnly": "Теги можно переставлять только внутри одного родительского тега.",
"notFound": "Тег не найден.",
"sortUpdated": "Порядок тегов обновлён.",
"sortUpdateFailed": "Не удалось обновить порядок тегов.",
"refresh": "Обновить",
"expandAll": "Развернуть все",
"collapseAll": "Свернуть все",
"new": "Новый тег",
"filterName": "Фильтр по названию",
"searchStatus": "Поиск статуса",
"emptyStatus": "Статусы не найдены",
"query": "Поиск",
"columnName": "Название тега",
"columnStatus": "Статус",
"columnRemark": "Примечания",
"columnCreatedAt": "Создан",
"columnActions": "Действия",
"dragSort": "Перетащите, чтобы изменить порядок: {name}",
"toggleStatus": "Изменить статус тега {name}",
"edit": "Изменить",
"moreActions": "Другие действия для {name}",
"deleting": "Удаление...",
"delete": "Удалить",
"loading": "Загрузка тегов...",
"empty": "Подходящие теги не найдены",
"editTitle": "Изменение тега",
"createTitle": "Новый тег",
"cancel": "Отмена",
"saving": "Сохранение...",
"save": "Сохранить",
"create": "Создать",
"loadingDetail": "Загрузка...",
"parent": "Родительский тег",
"rootParent": "Нет (тег верхнего уровня)",
"name": "Название тега",
"nameRequired": "Введите название тега.",
"namePlaceholder": "Введите название тега",
"remark": "Примечания",
"remarkPlaceholder": "Необязательные примечания",
"searchParent": "Поиск родительских тегов",
"emptyParent": "Родительские теги не найдены"
},
"permission": {
"loadFailed": "Не удалось загрузить разрешения.",
"refresh": "Обновить",
"sync": "Синхронизировать разрешения",
"syncing": "Синхронизация...",
"syncTitle": "Синхронизация встроенных разрешений",
"syncDescription": "Синхронизировать встроенные разрешения из кода и добавить отсутствующие разрешения во встроенные роли. Существующие разрешения ролей удалены не будут.",
"syncSuccess": "Разрешения синхронизированы: создано {created}, обновлено {updated}, добавлено разрешений ролей {rolePermissionsAdded}",
"syncFailed": "Не удалось синхронизировать разрешения.",
"filterKeyword": "Фильтр по названию или коду разрешения",
"filterGroup": "Фильтр по группе",
"query": "Поиск",
"columnPermission": "Разрешение",
"columnCode": "Код",
"columnGroup": "Группа",
"columnApi": "API",
"columnStatus": "Статус",
"loading": "Загрузка разрешений...",
"empty": "Подходящие разрешения не найдены"
},
"role": {
"dragSort": "Перетащите, чтобы изменить порядок: {name}",
"system": "Системная",
"processing": "Выполняется...",
"assignPermissions": "Назначить разрешения",
"loadFailed": "Не удалось загрузить роли.",
"created": "Роль создана: {name}",
"createFailed": "Не удалось создать роль.",
"loadAssignFailed": "Не удалось загрузить данные назначения разрешений.",
"sortUpdated": "Порядок ролей обновлён.",
"sortUpdateFailed": "Не удалось обновить порядок ролей.",
"permissionsUpdated": "Разрешения обновлены для {name}.",
"savePermissionsFailed": "Не удалось сохранить назначение разрешений.",
"add": "Добавить роль",
"refresh": "Обновить",
"dragHint": "Перетаскивайте строки, чтобы изменить порядок ролей.",
"pageSummary": "Страница {page} / по {limit} на странице",
"columnRole": "Роль",
"columnCode": "Код",
"columnStatus": "Статус",
"columnSort": "Сортировка",
"columnActions": "Действия",
"loading": "Загрузка ролей...",
"empty": "Ролей пока нет",
"assignTitle": "Назначить разрешения",
"currentRole": "Текущая роль: {name} {code}",
"permissionList": "Разрешения",
"searchPermission": "Поиск по названию, коду, группе или API разрешения",
"loadingPermissions": "Загрузка разрешений...",
"permissionCount": "Элементов: {count}",
"noPermissions": "Подходящие разрешения не найдены",
"saving": "Сохранение...",
"savePermissions": "Сохранить разрешения",
"cancel": "Отмена",
"nameRequired": "Введите название роли.",
"codeRequired": "Введите код роли.",
"codeInvalid": "Код роли должен начинаться с буквы и может содержать только буквы, цифры, двоеточия, подчёркивания и дефисы.",
"createTitle": "Добавить роль",
"createDescription": "После создания роли можно назначить разрешения и изменить её порядок в списке.",
"name": "Название роли",
"namePlaceholder": "Например: руководитель поддержки",
"code": "Код роли",
"codePlaceholder": "Например: support_manager",
"remark": "Примечания",
"optional": "Необязательно",
"creating": "Создание...",
"create": "Создать роль"
},
"workflowRun": {
"allStatus": "Все статусы",
"completed": "Завершено",
"interrupted": "Прервано",
"failed": "Ошибка",
"allAgents": "Все операторы",
"loadAgentsFailed": "Не удалось загрузить ИИ-агентов.",
"loadDetailFailed": "Не удалось загрузить детали выполнения.",
"loadConversationFailed": "Не удалось загрузить детали диалога.",
"conversationId": "Идентификатор диалога",
"messageId": "Идентификатор сообщения",
"workflowVersionId": "Идентификатор версии рабочего процесса",
"agent": "Оператор",
"searchAgent": "Поиск операторов",
"emptyAgent": "Операторы не найдены",
"status": "Статус",
"startedAt": "Начало",
"endedAt": "Окончание",
"workflow": "Рабочий процесс",
"version": "Версия",
"message": "Сообщение",
"conversationShort": "Диалог #{id}",
"messageShort": "Сообщение #{id}",
"duration": "Длительность",
"error": "Ошибка",
"refresh": "Обновить",
"query": "Поиск",
"loading": "Загрузка запусков рабочих процессов",
"empty": "Запусков рабочих процессов пока нет",
"loadFailed": "Не удалось загрузить запуски рабочих процессов.",
"detailTitle": "Детали выполнения",
"detailDescription": "Изучите путь выполнения рабочего процесса",
"close": "Закрыть",
"loadingDetail": "Загрузка деталей выполнения...",
"interruptNode": "Узел прерывания",
"nodeDetails": "Детали выполнения узлов",
"emptyNodes": "Записей о выполнении узлов нет",
"notFound": "Запуск рабочего процесса не найден",
"input": "Входные данные",
"output": "Выходные данные",
"recordsTitle": "Журналы выполнения ИИ",
"loadingLogs": "Загрузка журналов выполнения...",
"emptyLogs": "Журналов выполнения ИИ нет",
"description": "Трассировка выполнения рабочего процесса",
"emptyDetail": "Запись о выполнении не найдена.",
"loadLogsFailed": "Не удалось загрузить журналы выполнения ИИ",
"labelConversation": "Диалог",
"labelMessage": "Сообщение",
"labelAgent": "Оператор",
"labelStatus": "Статус",
"labelStartedAt": "Начало",
"labelEndedAt": "Окончание",
"labelInterruptNode": "Узел прерывания",
"labelWorkflow": "Рабочий процесс",
"viewDetails": "Детали выполнения"
},
"agentRun": {
"conversation": "Диалог",
"agent": "Оператор",
"engine": "Движок",
"status": "Статус",
"startedAt": "Начало",
"duration": "Длительность",
"tokens": "Входные/выходные токены",
"error": "Ошибка",
"refresh": "Обновить",
"query": "Запрос",
"loading": "Загрузка запусков операторов",
"empty": "Запусков операторов нет",
"loadFailed": "Не удалось загрузить запуски операторов",
"loadDetailFailed": "Не удалось загрузить детали запуска оператора",
"detailTitle": "Детали запуска оператора",
"detailDescription": "Единый аудит запусков",
"loadingDetail": "Загрузка деталей запуска оператора",
"close": "Закрыть",
"revision": "Версия",
"trace": "Трассировка",
"steps": "Шаги",
"emptySteps": "Шаги не зафиксированы",
"toolCalls": "Вызовы инструментов",
"emptyToolCalls": "Вызовы инструментов не зафиксированы",
"input": "Предпросмотр входных данных",
"output": "Предпросмотр выходных данных",
"arguments": "Предпросмотр аргументов",
"result": "Предпросмотр результата",
"notFound": "Запуск оператора не найден",
"metricCompletionRate": "Доля завершённых",
"metricResolutionRate": "Доля решённых",
"metricUnsupportedRate": "Доля без подтверждения",
"metricToolSuccessRate": "Доля успешных вызовов инструментов",
"metricAvgSteps": "Среднее число шагов",
"metricP95Latency": "Задержка P95",
"metricToken": "Расход токенов",
"metricHandoffRate": "Доля передач человеку",
"metricFallbackRate": "Доля резервных обращений к базе знаний",
"metricInterruptRecoveryRate": "Доля восстановлений после прерывания",
"qualityTitle": "Проверка качества запусков",
"qualityDescription": "Доли решённых и неподтверждённых запусков считаются только по проверенным запускам.",
"selectResolution": "Выберите статус решения",
"selectEvidence": "Выберите статус подтверждения",
"qualityCommentPlaceholder": "Примечания проверки...",
"saveQuality": "Сохранить проверку",
"qualitySaved": "Результат проверки сохранён",
"workflowAudit": "Аудит узлов рабочего процесса",
"viewWorkflowAudit": "Посмотреть аудит узлов"
},
"agentActivity": {
"thinking": "AI-ассистент думает...",
"searchingKnowledge": "Поиск в базе знаний...",
"callingTool": "Выполнение действия: {name}...",
"runningWorkflow": "Выполнение сценария: {name}...",
"default": "AI-ассистент обрабатывает запрос...",
"customerThinking": "AI-ассистент думает...",
"customerSearching": "Поиск информации...",
"customerProcessing": "AI-ассистент готовит ответ...",
"customerDefault": "AI-ассистент готовит ответ...",
"toolAnalyzeConversation": "Анализ диалога",
"toolTriageServiceRequest": "Маршрутизация обращения",
"toolCreateTicket": "Создание обращения",
"toolHandoff": "Перевод на оператора"
},
"wxworkOutbox": {
"statusFailed": "Ошибка",
"statusIgnored": "Игнорируется",
"statusAll": "Все",
"retrySuccess": "Сообщение возвращено в очередь отправки",
"ignoreSuccess": "Ошибочная запись проигнорирована",
"actionFailed": "Не удалось выполнить действие",
"retry": "Повторить",
"ignore": "Игнорировать",
"columnStatus": "Статус",
"conversationId": "Идентификатор диалога",
"messageId": "Идентификатор сообщения",
"columnMessage": "Сообщение",
"conversationLine": "Чат #{id}",
"messageLine": "Сообщение #{id}",
"columnRetry": "Повторы",
"retriesCount": "{count} раз",
"nextRetry": "Следующий: {time}",
"columnError": "Причина сбоя",
"columnUpdatedAt": "Обновлено",
"columnActions": "Действия",
"refresh": "Обновить",
"query": "Поиск",
"loading": "Загрузка исходящих сообщений...",
"empty": "Ошибочных исходящих сообщений нет",
"loadFailed": "Не удалось загрузить исходящие сообщения"
},
"supportPublic": {
"brand": "AgentDesk Support",
"nav": {
"home": "Главная",
"help": "Справка",
"questions": "FAQ",
"login": "Войти",
"community": "Сообщество",
"siteNavigation": "Навигация сайта"
},
"home": {
"badge": "Центр поддержки",
"title": "Документация, ответы сообщества и живая поддержка в одном месте.",
"description": "Собирайте повторяющиеся вопросы как сообщество и организуйте рекомендации как сайт документации. Сначала поищите, а затем при необходимости обратитесь в поддержку.",
"searchPlaceholder": "Поиск по страницам справки и вопросам",
"helpTitle": "Центр справки",
"helpDescription": "Официальные руководства, заметки по развёртыванию и устранение неполадок.",
"questionsTitle": "Сообщество FAQ",
"questionsDescription": "Изучите вопросы, затем войдите, чтобы задать вопрос или ответить.",
"chatTitle": "Живая поддержка",
"chatDescription": "Откройте диалог с поддержкой, если самостоятельного решения недостаточно.",
"quickPanelTitle": "Быстрые ссылки",
"quickPanelDescription": "Продолжите по задаче",
"unsolvedQuestions": "Посмотреть нерешённые вопросы",
"browseDocs": "Перейти к документации",
"askQuestion": "Задать вопрос",
"recommendedPages": "Рекомендуемые страницы",
"hotQuestions": "Популярные вопросы",
"postsTitle": "Вопросы и ответы сообщества",
"postsDescription": "Посмотрите, что спрашивали и отвечали другие пользователи."
},
"help": {
"title": "Центр справки",
"description": "Официальные руководства, заметки по развёртыванию и документация по устранению неполадок.",
"searchPlaceholder": "Поиск по документации",
"openPage": "Открыть страницу справки",
"childPages": "Страницы этого раздела",
"navigation": "Документация",
"toc": "На этой странице",
"noToc": "Разделов нет",
"updatedAt": "Обновлено {date}",
"feedbackTitle": "Была ли страница полезной?",
"feedbackDescription": "Ваш отзыв помогает нам улучшать документацию.",
"copyCode": "Копировать код",
"mermaidDiagram": "Схема документации",
"mermaidPreview": "Увеличить схему",
"mermaidLoading": "Отрисовка схемы...",
"mermaidError": "Синтаксис схемы некорректен, отобразить её не удалось.",
"previous": "Назад",
"next": "Вперёд"
},
"questions": {
"title": "Сообщество FAQ",
"description": "Авторизованные пользователи могут задавать вопросы, отвечать, голосовать и отмечать лучшие ответы.",
"categoryNavigation": "Категории вопросов",
"moreCategories": "Другие категории",
"more": "Ещё",
"categoriesFailed": "Не удалось загрузить категории. Нажмите, чтобы повторить.",
"searchPlaceholder": "Поиск по заголовкам вопросов",
"detailTitle": "Детали вопроса",
"answers": "Ответы",
"votes": "Голоса",
"views": "Просмотры",
"askedBy": "Задал {name}",
"updatedAt": "Обновлено {date}"
},
"ask": {
"title": "Задать вопрос",
"description": "Войдите, чтобы отправить вопрос. Ответить могут участники сообщества и операторы поддержки.",
"formTitle": "Опубликовать вопрос",
"category": "Категория",
"categoryPlaceholder": "Выберите категорию",
"categorySearch": "Поиск категорий",
"categoryEmpty": "Категорий нет",
"categoriesFailed": "Не удалось загрузить категории. Нажмите, чтобы повторить.",
"categoryRequired": "Выберите категорию",
"questionTitle": "Заголовок вопроса",
"questionTitlePlaceholder": "Сформулируйте вопрос в одном предложении",
"titleRequired": "Введите заголовок вопроса",
"content": "Подробности",
"contentPlaceholder": "Опишите проблему, окружение и что вы уже пробовали",
"contentRequired": "Добавьте подробности вопроса",
"tags": "Теги",
"tagsPlaceholder": "Разделяйте теги запятыми"
},
"answer": {
"title": "Отправить ответ",
"placeholder": "Напишите ответ",
"best": "Лучший ответ"
},
"login": {
"title": "Вход в поддержку",
"description": "Войдите, чтобы задавать вопросы, отвечать, голосовать и отмечать лучшие ответы.",
"name": "Имя",
"namePlaceholder": "Введите ваше имя",
"email": "Email",
"emailPlaceholder": "Введите email",
"password": "Пароль",
"passwordPlaceholder": "Не меньше 8 символов",
"loginAction": "Войти",
"registerAction": "Зарегистрироваться и войти",
"switchToRegister": "Нет учётной записи? Зарегистрируйтесь",
"switchToLogin": "Уже есть учётная запись? Войдите",
"account": "Учётная запись",
"accountPlaceholder": "Введите учётную запись",
"noMethodsDescription": "Администратор ещё не настроил ни одного способа входа. Попробуйте позже.",
"noMethodsTitle": "Нет доступного способа входа",
"welcomeBack": "С возвращением"
},
"account": {
"loading": "Загрузка состояния входа",
"openMenu": "Открыть меню учётной записи",
"signOut": "Выйти",
"signingOut": "Выход...",
"profile": "Профиль",
"editProfile": "Изменить профиль"
},
"actions": {
"search": "Поиск",
"viewAll": "Смотреть все",
"helpful": "Полезно",
"notHelpful": "Не полезно",
"openStandalone": "Открыть отдельно",
"askQuestion": "Задать вопрос",
"publishQuestion": "Опубликовать вопрос",
"publishAnswer": "Опубликовать ответ",
"publishing": "Публикация...",
"processing": "Выполняется...",
"accept": "Принять",
"retry": "Повторить",
"loadMore": "Показать ещё",
"viewDiscussion": "Посмотреть обсуждение",
"answerQuestion": "Ответить",
"cancel": "Отмена",
"copyLink": "Копировать ссылку",
"createPost": "Создать тему",
"delete": "Удалить",
"edit": "Изменить",
"noMore": "Больше нет",
"publishComment": "Опубликовать комментарий",
"publishPost": "Опубликовать тему",
"publishReply": "Опубликовать ответ",
"reply": "Ответить",
"report": "Пожаловаться",
"save": "Сохранить",
"viewReplies": "Показать ответы"
},
"status": {
"all": "Все",
"normal": "Без ответа",
"resolved": "Решён",
"closed": "Закрыт"
},
"common": {
"allCategories": "Все категории",
"uncategorized": "Без категории",
"user": "Пользователь"
},
"empty": {
"noPages": "Опубликованных страниц пока нет",
"noQuestions": "Вопросов сообщества пока нет",
"noPagesMatched": "Страницы не найдены",
"pageNotFound": "Эта страница не существует, не опубликована или снята с публикации",
"pagesFailed": "Не удалось загрузить документацию. Попробуйте позже.",
"noQuestionsMatched": "Вопросы не найдены",
"questionsFailed": "Не удалось загрузить вопросы. Попробуйте позже.",
"noAnswers": "Ответов пока нет",
"selectPage": "Выберите страницу слева",
"noComments": "Комментариев пока нет",
"noPostsMatched": "Темы не найдены",
"postsFailed": "Не удалось загрузить темы. Попробуйте позже."
},
"loading": {
"categories": "Загрузка категорий…",
"navigation": "Загрузка документации...",
"page": "Загрузка страницы...",
"question": "Загрузка вопроса...",
"questions": "Загрузка вопросов...",
"session": "Проверка состояния входа...",
"comments": "Загрузка комментариев...",
"post": "Загрузка темы...",
"posts": "Загрузка тем..."
},
"toast": {
"feedbackSaved": "Спасибо за отзыв",
"codeCopied": "Код скопирован",
"answerCreated": "Ответ опубликован",
"questionCreated": "Вопрос опубликован",
"loggedIn": "Вы вошли в систему",
"commentCreated": "Комментарий опубликован",
"commentDeleted": "Комментарий удалён",
"commentReported": "Жалоба отправлена",
"commentUpdated": "Комментарий обновлён",
"linkCopied": "Ссылка скопирована",
"postCreated": "Тема опубликована",
"profileUpdated": "Профиль обновлён",
"replyCreated": "Ответ опубликован"
},
"a11y": {
"openNavigation": "Открыть навигацию документации",
"closeNavigation": "Закрыть навигацию документации",
"collapse": "Свернуть вложенные страницы",
"expand": "Развернуть вложенные страницы",
"openMenu": "Открыть меню",
"closeMenu": "Закрыть меню"
},
"comment": {
"accepted": "Принят",
"authorBadge": "Автор",
"count": "Комментариев: {count}",
"deleteConfirm": "Удалить этот комментарий?",
"deleted": "Комментарий удалён",
"placeholder": "Напишите комментарий...",
"replyPlaceholder": "Напишите ответ...",
"sort": {
"default": "По умолчанию",
"hot": "Популярные",
"latest": "Новые"
},
"title": "Комментарии"
},
"createPost": {
"categoriesFailed": "Не удалось загрузить категории. Нажмите, чтобы повторить.",
"category": "Категория",
"categoryRequired": "Выберите категорию",
"content": "Подробности",
"contentPlaceholder": "Опишите свой вопрос или поделитесь опытом",
"contentRequired": "Добавьте подробности темы",
"formTitle": "Опубликовать тему",
"postTitle": "Заголовок",
"postTitlePlaceholder": "Сформулируйте тему в одном предложении",
"tags": "Теги",
"tagsPlaceholder": "Разделяйте теги запятыми",
"titleRequired": "Введите заголовок"
},
"posts": {
"categoriesFailed": "Не удалось загрузить категории. Нажмите, чтобы повторить.",
"categoryNavigation": "Категории тем",
"comments": "Комментарии",
"createdBy": "Опубликовал {name}",
"likes": "Нравится",
"title": "Темы",
"updatedAt": "Обновлено {date}",
"views": "Просмотры"
},
"profile": {
"avatar": "Аватар",
"avatarPlaceholder": "Загрузите аватар",
"communityDescription": "Посмотрите темы, которые вы опубликовали в сообществе.",
"communityTitle": "Активность в сообществе",
"edit": "Изменить профиль",
"editDescription": "Обновите аватар, отображаемое имя и email.",
"editTitle": "Изменение профиля",
"email": "Email",
"emailPlaceholder": "Введите email",
"emailUnset": "Не задан",
"nickname": "Отображаемое имя",
"nicknamePlaceholder": "Введите отображаемое имя",
"nicknameRequired": "Введите отображаемое имя",
"noPosts": "Вы ещё не опубликовали ни одной темы",
"username": "Имя пользователя"
}
},
"nav": {
"overview": "Обзор",
"setupWizard": "Пошаговая настройка",
"receptionCenter": "Приёмная поддержки",
"conversations": "Диалоги",
"tickets": "Обращения",
"conversationMonitor": "Мониторинг диалогов",
"customers": "Клиенты",
"companies": "Компании",
"agentConfig": "Настройка поддержки",
"tags": "Теги",
"quickReplies": "Быстрые ответы",
"agents": "Операторы",
"agentTeamSchedules": "Расписания команд",
"channels": "Каналы",
"wxworkOutbox": "Исходящие WeCom",
"aiCapabilities": "Возможности ИИ",
"knowledge": "База знаний",
"support": "Центр поддержки",
"supportCenter": "Центр поддержки",
"supportHelp": "Центр справки",
"supportFaq": "Сообщество FAQ",
"supportFaqCategories": "Категории FAQ",
"aiConfigs": "Настройки моделей",
"aiAgents": "Агенты",
"aiWorkflows": "Рабочие процессы ИИ",
"workflowRuns": "Аудит рабочих процессов",
"workflows": "Рабочие процессы",
"agentRuns": "Аудит операторов",
"skillDefinition": "Навыки",
"mcp": "Инструменты MCP",
"system": "Система",
"users": "Пользователи",
"roles": "Роли",
"permissions": "Разрешения",
"dashboardHome": "Панель управления",
"notifications": "Уведомления",
"preferences": "Предпочтения",
"changePassword": "Смена пароля",
"signOut": "Выйти",
"supportDocs": "Центр справки",
"supportCommunity": "Вопросы и ответы сообщества",
"supportCommunityCategories": "Категории сообщества",
"supportConfig": "Настройки поддержки"
},
"workspace": {
"dashboard": "Панель администратора",
"workbench": "Рабочее место поддержки",
"switchWorkspace": "Сменить рабочее пространство"
},
"theme": {
"toggle": "Сменить тему",
"light": "Светлая",
"dark": "Тёмная",
"system": "Системная"
},
"palette": {
"toggle": "Сменить акцентный цвет",
"plain": "По умолчанию",
"green": "Сервисный зелёный",
"gray": "Нейтральный серый",
"blue": "Чистый синий"
},
"supportCommunityCategory": {
"allStatuses": "Все статусы",
"enabled": "Включена",
"disabled": "Отключена",
"name": "Название категории",
"searchName": "Поиск названий категорий",
"noDescription": "Нет описания",
"status": "Статус",
"confirmDeleteTitle": "Удалить категорию сообщества?",
"confirmDeleteDescription": "Удалить «{name}»? Категории, используемые темами, удалить нельзя.",
"delete": "Удалить",
"sortUpdated": "Порядок категорий сообщества обновлён.",
"sortUpdateFailed": "Не удалось обновить порядок.",
"dragSort": "Перетащите, чтобы изменить порядок: {name}",
"create": "Создать",
"save": "Сохранить",
"saving": "Сохранение...",
"cancel": "Отмена",
"loadingDetail": "Загрузка деталей...",
"required": "Это поле обязательно.",
"invalidNumber": "Введите корректное число.",
"minValue": "Должно быть не меньше {min}",
"maxValue": "Должно быть не больше {max}",
"namePlaceholder": "Введите название категории",
"slugPlaceholder": "Например: account-security",
"slugPatternMessage": "Используйте только буквы, цифры и дефисы (-).",
"description": "Описание",
"descriptionPlaceholder": "Опишите, какие темы охватывает эта категория",
"remark": "Примечания",
"remarkPlaceholder": "Видно только пользователям панели управления",
"createTitle": "Новая категория сообщества",
"editTitle": "Изменение категории сообщества",
"refresh": "Обновить",
"new": "Новая категория",
"query": "Поиск",
"loading": "Загрузка категорий...",
"empty": "Категорий сообщества пока нет",
"actions": "Действия",
"edit": "Изменить",
"processing": "Выполняется...",
"moreActions": "Другие действия для {name}",
"loadFailed": "Не удалось загрузить категории.",
"saveFailed": "Не удалось сохранить категорию.",
"deleteFailed": "Не удалось удалить категорию.",
"created": "Категория создана: {name}",
"updated": "Категория обновлена: {name}",
"deleted": "Категория удалена: {name}"
},
"supportConfig": {
"actions": "Действия",
"description": "Настройте навигацию, точки входа и параметры отображения портала поддержки.",
"loadFailed": "Не удалось загрузить конфигурацию навигации.",
"loading": "Загрузка настроек навигации...",
"refresh": "Обновить",
"save": "Сохранить",
"saveFailed": "Не удалось сохранить конфигурацию навигации.",
"saving": "Сохранение...",
"title": "Настройки центра поддержки",
"navigationTitle": "Меню навигации",
"navigationDescription": "Пункты меню, которые показываются в шапке центра поддержки и на мобильных устройствах.",
"addNavigation": "Добавить пункт меню",
"sort": "Сортировка",
"menuTitle": "Заголовок пункта",
"menuURL": "Ссылка пункта",
"target": "Открывать",
"visible": "Видимость",
"emptyNavigation": "Пункты навигации ещё не добавлены",
"saved": "Настройки сохранены",
"validationFailed": "Проверка настроек не пройдена",
"titlePlaceholder": "Введите заголовок пункта",
"untitled": "Пункт без названия",
"targetSelf": "В текущем окне",
"targetBlank": "В новом окне",
"openURL": "Открыть ссылку",
"confirmDelete": "Удалить пункт меню «{title}»?",
"deleteNavigation": "Удалить пункт меню {title}",
"dragNavigation": "Перетащите пункт меню {title}, чтобы изменить порядок",
"toggleNavigation": "Изменить видимость пункта меню {title}"
},
"dashboard": {
"sidebar": {
"navSection": "Навигация"
}
},
"docs": {
"title": "Каркас центра справки",
"description": "Центр справки будет собирать рекомендации по продукту, правила разрешений, сценарии интеграции каналов и FAQ.",
"step1": "Собрать стандарты разработки проекта и руководства для администраторов.",
"step2": "Добавить сценарии сторонних интеграций и чек-листы настройки.",
"step3": "Позже подключить Markdown или центр документации."
},
"supportCommunityAdmin": {
"postStatusUpdated": "Статус темы обновлён.",
"allStatuses": "Все статусы",
"statusPending": "На модерации",
"statusNormal": "Обычный",
"statusResolved": "Решён",
"statusClosed": "Закрыт",
"statusHidden": "Скрыт",
"allCategories": "Все категории",
"uncategorized": "Без категории",
"refresh": "Обновить",
"defaultUser": "Пользователь",
"commentCount": "{count} комментариев",
"noMatchingPosts": "Нет публикаций, соответствующих фильтрам",
"loadingPosts": "Загрузка публикаций...",
"moderateDialogTitle": "Модерация публикации",
"likesAndViews": "{likes} отм. · {views} просм.",
"restoreNormalAction": "Восстановить",
"closePostAction": "Закрыть публикацию",
"hidePostAction": "Скрыть публикацию",
"commentsTitle": "Комментарии ({count})",
"acceptedBadge": "Принято",
"acceptAnswerAction": "Принять как ответ",
"commentPlaceholder": "Введите ответ поддержки...",
"publishCommentAction": "Опубликовать ответ",
"commentSuccess": "Комментарий опубликован."
},
"systemConfig": {
"branding": {
"companyName": {
"title": "Название платформы",
"description": "Отображается в шапке портала, в консоли и в заголовках страниц."
},
"companyLogoUrl": {
"title": "Логотип платформы",
"description": "Оставьте пустым, чтобы использовать встроенный логотип."
}
}
},
"aiCopilot": {
"suggestReply": "Подсказать ответ",
"generating": "Генерация ответа...",
"insertReply": "Использовать ответ",
"discardReply": "Отклонить",
"summarize": "AI Резюме",
"summarizing": "Составление резюме...",
"summaryTitle": "Краткое резюме диалога",
"noSummary": "Резюме пока недоступно",
"errorGenerating": "Не удалось сгенерировать ответ",
"copy": "Копировать",
"copied": "Скопировано",
"summaryGenerated": "Резюме успешно создано"
},
"setupWizard": {
"title": "Пошаговая настройка и диагностика маршрутизации к оператору",
"description": "Проверьте все этапы цепочки доставки обращений до оператора, исправьте проблемы в 1 клик и протестируйте маршрут.",
"statusReady": "Готово к приёму обращений",
"statusNeedsSetup": "Требуется настройка (готово {ready} из {total} шагов)",
"stepsProgress": "Готово {ready} из {total} шагов",
"quickSetupAll": "Проверить недостающие настройки",
"quickSetupRunning": "Подготовка плана...",
"quickFixSuccess": "Настройки применены, проверка маршрутизации обновлена",
"refresh": "Проверить снова",
"openSettings": "Открыть настройки",
"openSetupWizard": "Пошаговая настройка",
"stepBadgeOk": "Готово",
"stepBadgeWarning": "Внимание",
"stepBadgeError": "Не готово",
"readyCountLabel": "Готово: {ready} из {total}",
"currentOperatorTitle": "Мой статус приёма обращений (Оператор)",
"currentOperatorReady": "Вы онлайн и готовы принимать обращения клиентов прямо сейчас.",
"currentOperatorBlocked": "Запросы клиентов сейчас не доходят до вас по следующим причинам:",
"currentOperatorLoad": "Активные диалоги: {active} / {max}",
"currentOperatorTeam": "Команда: {team}",
"currentOperatorNoTeam": "Не назначена",
"enableMyReceptionBtn": "Включить приём обращений в 1 клик",
"checklistSectionTitle": "Пошаговая проверка цепочки доставки (6 шагов)",
"steps": {
"teams": {
"title": "Команды операторов",
"description": "Требуется как минимум одна активная команда для объединения операторов и привязки расписания смен."
},
"schedules": {
"title": "Рабочее время поддержки",
"description": "У команды сейчас должно быть рабочее время по выбранному календарю: датированным сменам или недельному расписанию. Вне рабочих часов обращения остаются в очереди."
},
"operators": {
"title": "Профили операторов и доступная емкость",
"description": "Для назначения нужны активные учётная запись и профиль, рабочее время команды, подключение к платформе, готовность принимать обращения, отсутствие действующего отпуска и включённое автоназначение. Лимит одновременных обращений не должен быть достигнут."
},
"ai_agents": {
"title": "AI-агенты и передача человеку",
"description": "AI-агент должен поддерживать передачу человеку (AIFirst с автопередачей или HumanOnly) и быть привязан к активным командам."
},
"channels": {
"title": "Входящие каналы связи",
"description": "Хотя бы один активный канал (Web, API, WeCom) должен быть подключен к активному AI-агенту с охватом > 0%."
},
"end_to_end": {
"title": "Сквозная цепочка маршрутизации",
"description": "Проверяет, сможет ли входящее обращение из канала пройти всю цепочку и дойти до живого оператора прямо сейчас."
}
},
"issues": {
"no_active_team": "Нет активных команд операторов. Требуется как минимум одна команда.",
"team_no_schedule_configured": "У команды не настроено расписание смен.",
"team_off_hours_now": "Команда сейчас не на смене (нет расписания на текущее время).",
"no_operator_profile": "Профили операторов отсутствуют. Некому назначать обращения.",
"operator_profile_disabled": "Профиль оператора отключен.",
"operator_user_disabled": "Учетная запись пользователя отключена или удалена.",
"operator_no_active_team": "Оператор не прикреплен к активной команде.",
"operator_auto_assign_off": "У оператора отключено автоматическое назначение.",
"operator_busy": "Оператор находится в статусе «Занят».",
"operator_at_capacity": "Оператор достиг предела параллельных диалогов.",
"no_active_ai_agent": "Нет активных AI-агентов.",
"agent_ai_only_mode": "AI-агент работает в режиме «Только ИИ» и не передает диалоги операторам.",
"agent_no_teams": "У AI-агента не назначены активные команды для перевода на оператора.",
"agent_auto_handoff_disabled": "У AI-агента выключена автоматическая передача оператору при сбое.",
"no_active_channel": "Нет активных каналов для клиентов.",
"channel_no_agent": "Канал не подключен к AI-агенту.",
"channel_agent_disabled": "Канал указывает на отключенного или удаленного AI-агента.",
"channel_zero_rollout": "У канала охват AI-агента равен 0%.",
"no_end_to_end_path": "Ни один канал не может доставить запрос до доступного оператора прямо сейчас.",
"agent_unpublished": "У агента нет опубликованной версии. Опубликуйте его в настройках перед использованием в канале.",
"channel_agent_unpublished": "Канал связан с неопубликованным агентом. Опубликуйте его или выберите опубликованного агента.",
"operator_offline": "У оператора нет активного подключения к платформе поддержки.",
"operator_break": "Оператор на перерыве и не может получать новые назначения.",
"operator_unavailable": "Оператор недоступен для новых назначений.",
"operator_vacation": "У оператора сейчас действует запланированный отпуск.",
"operator_outside_hours": "Оператор сейчас вне рабочего времени по расписанию.",
"operator_availability_unavailable": "Не удалось определить текущую доступность оператора."
},
"operatorBlockers": {
"not_authenticated": "Вы не вошли в систему.",
"missing_profile": "Для вашей учетной записи не создан профиль оператора.",
"profile_disabled": "Ваш профиль оператора отключен.",
"no_team": "Вы не прикреплены ни к одной активной команде операторов.",
"team_off_hours": "Ваша команда сейчас не на смене (нет активного расписания).",
"auto_assign_disabled": "Автоматическое назначение диалогов выключено в вашем профиле.",
"status_busy": "Ваш статус установлен в «Занят».",
"at_capacity": "Вы достигли лимита одновременных диалогов.",
"offline": "Нет активного подключения к платформе поддержки.",
"break": "Перерыв: новые назначения приостановлены.",
"unavailable": "Недоступен для новых назначений.",
"vacation": "Действует запланированный отпуск.",
"availability_unavailable": "Не удалось определить текущую доступность.",
"user_disabled": "Учётная запись отключена или удалена."
},
"quickFixLabels": {
"quick_setup_all": "Проверить недостающие настройки",
"ensure_team_and_schedule": "Проверить настройку группы",
"enable_my_operator_profile": "Включить мой приём и статус «Свободен»",
"fix_ai_agent_handoff": "Настроить передачу оператору и привязать команды",
"ensure_default_channel": "Создать/исправить веб-канал по умолчанию"
},
"simulator": {
"title": "Симулятор маршрутизации к оператору",
"description": "Проверка текущей доступности маршрута только с оператором без изменений. Поведение ИИ и частичный запуск не моделируются; сообщения не отправляются.",
"selectChannelPlaceholder": "Выберите канал для симуляции...",
"runSimulation": "Запустить симуляцию",
"running": "Симуляция...",
"outcomeSuccess": "Сейчас доступен оператор: {operator}",
"outcomeBlocked": "Передача оператору не подтверждена",
"outcomes": {
"assigned_to_operator": "Для маршрута только с оператором сейчас есть подходящий сотрудник. Это проверка без изменений, не гарантия доставки.",
"blocked_no_channel": "Заблокировано: каналы не созданы или запрошенный канал не найден.",
"blocked_channel_disabled": "Заблокировано: данный канал отключен.",
"blocked_zero_rollout": "Заблокировано: охват AI-агента в канале равен 0%.",
"blocked_missing_ai_agent": "Заблокировано: привязанный AI-агент отсутствует или выключен.",
"blocked_ai_only_mode": "Заблокировано: AI-агент работает в режиме «Только ИИ» и не переключает на человека.",
"blocked_agent_no_teams": "Заблокировано: у AI-агента не указаны активные команды для перевода.",
"queued_off_hours_no_schedule": "В очереди: у команд сейчас нет активного расписания смен (нерабочие часы).",
"queued_no_eligible_operator": "В очереди: смена активна, но нет свободных операторов с доступной емкостью.",
"ai_execution_not_simulated": "Поведение ИИ не моделируется; передача оператору не подтверждена.",
"partial_rollout_not_simulated": "Частичный запуск не моделируется; передача оператору не подтверждена.",
"blocked_agent_unpublished": "Маршрутизация к оператору не подтверждена для неопубликованного агента. Сначала опубликуйте его."
},
"hops": {
"channel": "Канал",
"ai_agent": "AI-агент",
"teams": "Команды операторов",
"schedules": "Расписание смены",
"operators": "Выбор оператора"
},
"hopReasons": {
"ok": "Узел настроен и готов",
"ok_human_only": "Прямой приём операторами (Human-Only): передача сразу операторам",
"ok_ai_first_handoff": "AI-First приём: клиент может запросить оператора или сработает автоперевод",
"warning_auto_handoff_off": "Включен AI-First, но автопередача оператору при ошибке выключена",
"blocked_no_channel": "Каналы не найдены",
"blocked_channel_disabled": "Канал отключен",
"blocked_zero_rollout": "Охват канала равен 0%",
"blocked_missing_ai_agent": "AI-агент отсутствует или отключен",
"blocked_ai_only_mode": "AI-агент настроен как «Только ИИ» (маршрут к человеку заблокирован)",
"blocked_agent_no_teams": "Агенту не назначены активные команды",
"queued_off_hours_no_schedule": "Нет активного расписания на текущее время (нерабочие часы)",
"queued_no_eligible_operator": "В активных командах нет свободных операторов с доступной емкостью",
"assigned_to_operator": "Назначено подходящему оператору",
"ai_execution_not_simulated": "Поведение ИИ не моделируется; передача оператору не подтверждена.",
"partial_rollout_not_simulated": "Частичный запуск не моделируется; передача оператору не подтверждена.",
"blocked_agent_unpublished": "Маршрутизация к оператору не подтверждена для неопубликованного агента. Сначала опубликуйте его."
},
"candidateTableTitle": "Оценка кандидатов-операторов",
"colOperator": "Оператор",
"colTeam": "Команда",
"colStatus": "Статус",
"colAutoAssign": "Автоназначение",
"colLoad": "Нагрузка",
"colResult": "Результат",
"statusIdle": "Свободен",
"statusBusy": "Занят",
"eligibleBadge": "Подходит",
"skipReasons": {
"profile_disabled": "Профиль отключен",
"user_disabled": "Учётная запись отключена или удалена.",
"team_not_in_agent": "Команда не входит в настройки агента",
"team_off_hours": "Вне расписания команды",
"auto_assign_off": "Автоназначение выключено",
"status_busy": "Статус «Занят»",
"at_capacity": "Лимит диалогов исчерпан",
"offline": "Нет активного подключения к платформе поддержки.",
"break": "Перерыв: новые назначения приостановлены.",
"unavailable": "Недоступен для новых назначений.",
"vacation": "Действует запланированный отпуск.",
"availability_unavailable": "Не удалось определить текущую доступность.",
"auto_assign_disabled": "Автоматическое назначение отключено.",
"no_team": "Нет назначенной активной команды."
}
},
"banner": {
"title": "Настройка маршрутизации к операторам не завершена",
"description": "Обращения клиентов сейчас не могут дойти до живых операторов, пока не выполнены все шаги настройки."
},
"headerIndicator": {
"readyLabel": "Приём включен",
"blockedLabel": "Приём заблокирован ({count})"
},
"preview": {
"review": "Просмотреть изменения",
"title": "Проверка изменений перед применением",
"description": "Изменятся только указанные записи и поля. Смены не добавляются. Остальные настройки и доли запуска сохранятся. После сохранения ожидающие диалоги могут быть распределены.",
"noChanges": "Безопасных автоматических изменений нет. Выберите группу, маршрут или рабочие часы в соответствующих настройках.",
"apply": "Применить проверенные изменения",
"create": "Создать",
"update": "Изменить",
"notApplied": "Проверенные изменения не были применены.",
"manageSchedules": "Настроить рабочие часы"
},
"repairFields": {
"name": "Название",
"leader_user_id": "ID руководителя группы",
"status": "Статус (0 включён, 1 отключён)",
"user_id": "ID пользователя",
"team_id": "ID группы / название новой группы",
"team_ids": "Группы маршрутизации",
"service_status": "Доступность (0 свободен, 1 занят)",
"auto_assign_enabled": "Автоматическое назначение",
"max_concurrent_count": "Лимит одновременных диалогов",
"priority_level": "Приоритет назначения",
"receive_offline_message": "Принимать сообщения офлайн",
"service_mode": "Режим (1 только ИИ, 2 только оператор, 3 сначала ИИ)",
"rollout_percent": "Доля запуска агента (%)",
"handoff_mode": "Режим передачи (2 очередь группы)",
"fallback_mode": "Резервный режим",
"auto_handoff_on_failure": "Передавать оператору при сбое",
"reply_timeout_seconds": "Тайм-аут ответа (сек.)",
"max_steps": "Максимум шагов ИИ",
"channel_id": "Идентификатор канала",
"channel_type": "Тип канала",
"ai_agent_id": "ID агента / название нового агента",
"ai_agent_rollout_percent": "Доля запуска канала (%)",
"config_json": "Настройки канала"
},
"repairWarnings": {
"schedules_unchanged": "Рабочие часы не изменены. Настройте смены явно: время вне смены не является ошибкой настройки.",
"active_team_required": "Выберите или включите группу в настройках перед связыванием новых записей.",
"disabled_configuration_preserved": "Выбранная конфигурация отключена или имеет нулевую долю запуска и оставлена без изменений.",
"agent_team_selection_required": "Выберите нужные группы в настройках агента. Группы не добавлялись автоматически.",
"channel_selection_required": "Выберите агента и долю запуска в настройках канала. Существующая маршрутизация сохранена.",
"existing_configuration_preserved": "Существующие настройки сохранены. Проверьте оставшиеся проблемы готовности в соответствующих настройках.",
"dispatch_failed": "Изменения сохранены, но распределение ожидающих диалогов не удалось. Проверьте очередь, не применяйте исправление повторно.",
"readiness_refresh_failed": "Не удалось обновить диагностику. Загрузите её снова: сохранённые изменения не отменены.",
"agent_publication_required": "Опубликуйте нужного агента в его настройках перед созданием канала. Мастер не публикует агентов и не обходит это требование."
}
},
"supportAvailability": {
"title": "Доступность поддержки",
"description": "Настройте часы работы и часовые пояса. Подключение, рабочий статус и возможность принимать обращения учитываются отдельно.",
"loading": "Загрузка доступности…",
"myStatus": "Моя доступность",
"retryStatus": "Статус неизвестен. Повторить",
"operatorStatus": "Доступность: {name}",
"presenceHelp": "«На платформе» означает активное подключение к платформе поддержки с учётом вкладок и устройств. Это не означает готовность принимать новые обращения.",
"online": "На платформе",
"offline": "Не подключён",
"workingStatus": "Рабочий статус",
"statusHelp": "Статус сохраняется между сеансами. Занятость, перерыв, недоступность и действующий отпуск блокируют новые назначения. Вход в систему их не сбрасывает.",
"statusSaved": "Доступность сохранена",
"saveFailed": "Не удалось сохранить изменения. Введённые данные сохранены в форме.",
"loadFailed": "Не удалось загрузить доступность",
"saveStatus": "Сохранить статус",
"saving": "Сохранение…",
"cancel": "Отмена",
"retry": "Повторить",
"refresh": "Обновить",
"discardTitle": "Отменить несохранённые изменения?",
"discardDescription": "Изменения ещё не сохранены. Выйти без сохранения?",
"discard": "Отменить изменения",
"vacationStart": "Начало отпуска",
"vacationEnd": "Окончание отпуска (не включительно)",
"vacationTimezone": "Введите даты в часовом поясе браузера: {timezone}.",
"vacationExact": "Точный интервал UTC: {start} → {end}.",
"vacationHelp": "В этот период новые назначения отключены, даже если вы войдёте в систему. Вне периода действует сохранённый статус: {status}. Текущие обращения автоматически не передаются.",
"cancelVacationHelp": "Сохранение другого статуса отменит запланированный отпуск.",
"invalidVacation": "Укажите корректные начало и окончание, причём окончание должно быть позже начала. Время, пропущенное при переводе часов, недопустимо.",
"calendar": "Календарь поддержки",
"editCalendar": "Изменить календарь",
"saveCalendar": "Сохранить календарь",
"calendarSaved": "Календарь поддержки сохранён",
"readOnly": "У вас доступ только для просмотра.",
"deploymentDefault": "Настройки по умолчанию",
"selectScope": "Выберите общие настройки или команду",
"deploymentTimezone": "Часовой пояс IANA по умолчанию",
"teamTimezone": "Часовой пояс команды",
"timezoneHelp": "Используйте имя IANA, например Europe/Moscow или America/New_York, а не фиксированное смещение UTC.",
"inheritTimezoneHelp": "Оставьте пустым для наследования общего часового пояса. Переопределение не меняет сохранённые датированные смены.",
"effectiveTimezone": "Применяемый часовой пояс: {timezone}",
"scheduleMode": "Режим календаря",
"legacy": "Существующие датированные смены",
"recurring": "Недельное расписание и исключения",
"legacyHelp": "Существующие датированные смены сохраняются и не пересчитываются в новый часовой пояс. Недельное расписание применяется только после явного выбора и сохранения этого режима.",
"viewDatedShifts": "Открыть датированные смены",
"legacyActive": "Часы работы по-прежнему определяются существующими датированными сменами. Недельное расписание автоматически не создаётся.",
"confirmCalendarTitle": "Применить календарь поддержки?",
"confirmRecurring": "Переключить выбранную область на недельное расписание и исключения? Датированные смены останутся сохранёнными, но в этом режиме не будут определять доступность.",
"confirmCalendar": "Эти настройки меняют время назначения новых обращений. Изменение общего часового пояса затронет команды, которые его наследуют. Датированные смены останутся без изменений.",
"weeklyHours": "Недельное расписание",
"hoursHelp": "Добавьте несколько интервалов для смен с перерывом. Окончание раньше начала означает переход на следующий день. Одинаковые начало и конец недопустимы. Дни без интервалов закрыты. Для полного дня используйте 00:00–24:00.",
"noWeeklyHours": "Недельных интервалов нет. В этом режиме поддержка открывается только по явно заданным исключениям.",
"addPeriod": "Добавить интервал",
"removePeriod": "Удалить интервал",
"day": "День",
"start": "Начало",
"end": "Окончание",
"exceptions": "Праздники и исключения по датам",
"exceptionsHelp": "Исключение заменяет недельное расписание на эту местную дату. Закрытая дата блокирует весь день, включая ночной интервал с предыдущего дня.",
"noExceptions": "Исключений по датам нет",
"addException": "Добавить исключение",
"removeException": "Удалить исключение",
"date": "Дата",
"closedDay": "Закрыто весь день",
"preview": "Проверка календаря",
"previewHelp": "Проверьте форму без сохранения. Введите момент проверки в часовом поясе браузера ({timezone}) или оставьте пустым для текущего момента. Результат показан в часовом поясе календаря.",
"previewAt": "Момент проверки (необязательно)",
"runPreview": "Проверить календарь",
"previewing": "Проверка…",
"previewFailed": "Не удалось проверить календарь",
"previewStale": "Форма изменилась. Повторите проверку.",
"scheduleOpen": "В этот момент расписание открыто.",
"scheduleClosed": "В этот момент расписание закрыто.",
"nextOpening": "Следующее открытие по расписанию: {time}",
"noNextOpening": "В периоде проверки не найдено следующего открытия.",
"notPresencePromise": "Часы по расписанию не гарантируют подключение или доступность оператора.",
"invalidTimezone": "Укажите корректный часовой пояс IANA. Общий часовой пояс не может быть пустым.",
"invalidHours": "Используйте интервалы ЧЧ:мм с разными началом и окончанием. Для открытого исключения нужен хотя бы один интервал.",
"invalidExceptionDate": "Для каждого исключения нужна корректная, неповторяющаяся дата.",
"invalidPreviewTime": "Укажите корректное время проверки в часовом поясе браузера.",
"noPermission": "У вас нет прав на просмотр календаря. Свой рабочий статус можно изменить отдельно.",
"noTeams": "Нет команд для настройки календаря.",
"publicChecking": "Проверяем доступность операторов…",
"publicNextOpening": "Следующее открытие по расписанию: {time}. Наличие оператора не гарантируется.",
"offlineDeprecated": "Устаревшая настройка сохранена для совместимости. Она не разрешает новые назначения отключённым операторам.",
"manageStatus": "Изменить доступность",
"statusSeparate": "Рабочий статус и отпуск настраиваются отдельно от профиля оператора.",
"status": {
"ready": "Готов принимать",
"busy": "Занят",
"break": "Перерыв",
"unavailable": "Недоступен",
"vacation": "В отпуске",
"unknown": "Неизвестный статус"
},
"reason": {
"eligible": "Может принимать новые назначения",
"profile_disabled": "Профиль оператора отключён администратором",
"user_disabled": "Учётная запись отключена",
"team_disabled": "Команда отключена",
"outside_hours": "Вне рабочего времени по расписанию",
"offline": "Нет активного подключения к платформе поддержки",
"busy": "Занят: новые назначения приостановлены",
"break": "Перерыв: новые назначения приостановлены",
"unavailable": "Недоступен для новых назначений",
"vacation": "Действует запланированный отпуск",
"auto_assign_disabled": "Автоматическое назначение отключено",
"capacity": "Достигнут лимит одновременных обращений",
"unknown": "Не удалось определить возможность назначения"
},
"public": {
"available": "Операторы сейчас доступны",
"outside_hours": "Сейчас нерабочее время поддержки",
"temporarily_absent": "Сейчас нет оператора для нового обращения",
"capacity": "Операторы сейчас полностью загружены",
"unknown": "Доступность операторов неизвестна"
},
"weekday": {
"1": "Понедельник",
"2": "Вторник",
"3": "Среда",
"4": "Четверг",
"5": "Пятница",
"6": "Суббота",
"7": "Воскресенье"
},
"dstOccurrence": "{field}: это время встречается дважды. Выберите точный момент UTC.",
"chooseOccurrence": "Выберите вариант времени",
"datedShiftsNotice": "Эти датированные смены определяют доступность только в режиме существующих смен. В недельном режиме они сохраняются, но не действуют. При возврате они вновь применяются без изменений."
}
}