Source-reviewed hardening changes and regression tests. UNBUILT / UNTESTED: not a deployable release. Go formatting, compilation, automated regression tests, full frontend validation and staging acceptance remain required. See docs/hardening/VALIDATION.md. Main remains the original clean snapshot; no upstream Git history imported.
3586 lines
234 KiB
JSON
3586 lines
234 KiB
JSON
{
|
||
"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": "Сбросить"
|
||
},
|
||
"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}мс"
|
||
},
|
||
"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": "Канал связан с неопубликованным агентом. Опубликуйте его или выберите опубликованного агента."
|
||
},
|
||
"operatorBlockers": {
|
||
"not_authenticated": "Вы не вошли в систему.",
|
||
"missing_profile": "Для вашей учетной записи не создан профиль оператора.",
|
||
"profile_disabled": "Ваш профиль оператора отключен.",
|
||
"no_team": "Вы не прикреплены ни к одной активной команде операторов.",
|
||
"team_off_hours": "Ваша команда сейчас не на смене (нет активного расписания).",
|
||
"auto_assign_disabled": "Автоматическое назначение диалогов выключено в вашем профиле.",
|
||
"status_busy": "Ваш статус установлен в «Занят».",
|
||
"at_capacity": "Вы достигли лимита одновременных диалогов."
|
||
},
|
||
"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": "Лимит диалогов исчерпан"
|
||
}
|
||
},
|
||
"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": "Опубликуйте нужного агента в его настройках перед созданием канала. Мастер не публикует агентов и не обходит это требование."
|
||
}
|
||
}
|
||
}
|