Files
2026-10-25 22:35:32 +03:00

1467 lines
110 KiB
JSON

{
"auth": {
"login": {
"title": "Войдите в свою учетную запись",
"description": "Добро пожаловать обратно. Введите свои учетные данные, чтобы продолжить.",
"username": "Электронная почта или имя пользователя",
"usernamePlaceholder": "Введите адрес электронной почты или имя пользователя",
"password": "Пароль",
"passwordPlaceholder": "Введите свой пароль",
"showPassword": "Показать пароль",
"hidePassword": "Скрыть пароль",
"submit": "Войти",
"submitting": "Вход в систему…",
"success": "Вход выполнен успешно",
"failed": "Не удалось войти в систему. Пожалуйста, попробуйте еще раз.",
"incomplete": "Адрес электронной почты/имя пользователя или пароль не заполнены",
"incompleteDesc": "Пожалуйста, введите адрес электронной почты/имя пользователя и пароль перед входом в систему.",
"capPending": "Человеческая проверка все еще продолжается…",
"capRequired": "Пожалуйста, сначала завершите проверку человеком",
"orUse": "Или продолжить с",
"oauthLogin": "Войдите с помощью {name}",
"oauthFailed": "Не удалось войти в стороннюю систему",
"noAccount": "У вас нет учетной записи?",
"registerNow": "Зарегистрироваться",
"codeSent": "Код для входа был отправлен на вашу электронную почту",
"codeTipMasked": "Код входа был отправлен на ваш защищенный адрес электронной почты {email}.",
"codeTipGeneric": "Пожалуйста, введите код подтверждения входа.",
"needBind": "Ваша сторонняя учетная запись не связана с локальной учетной записью, и регистрация закрыта. Войдите в систему с существующей локальной учетной записью, чтобы привязать ее.",
"bindSuccess": "Аккаунт привязан",
"checkingSession": "Проверка статуса входа",
"checkingSessionDesc": "Пожалуйста, подождите, пока мы подтвердим ваш сеанс...",
"redirecting": "Перенаправление на консоль...",
"verifyingCredentials": "Проверка учетных данных",
"establishingSession": "Пожалуйста, подождите, пока мы установим безопасный сеанс..."
},
"otp": {
"title": "Подтвердите свой вход",
"description": "Введите 6-значный код, отправленный на ваш безопасный адрес электронной почты.",
"code": "Код подтверждения",
"resend": "Отправить повторно",
"resendIn": "Отправить повторно через {seconds}s",
"submit": "Проверить",
"submitting": "Проверка…",
"help": "Возникли проблемы со входом?",
"contactSupport": "Связаться со службой поддержки"
},
"register": {
"title": "Создайте свою учетную запись",
"description": "Заполните данные ниже, чтобы начать.",
"username": "Имя пользователя",
"usernamePlaceholder": "Введите имя пользователя",
"nickname": "Псевдоним",
"nicknamePlaceholder": "Введите никнейм",
"email": "Электронная почта",
"emailPlaceholder": "Введите адрес электронной почты",
"password": "Пароль",
"passwordPlaceholder": "Введите пароль (минимум 8 символов)",
"emailCode": "Код подтверждения электронной почты",
"emailCodePlaceholder": "Введите 6-значный код",
"getCode": "Получить код",
"resendIn": "Отправить повторно через {seconds}s",
"submit": "Создать учетную запись",
"submitting": "Создание…",
"success": "Зарегистрировался и вошёл в систему",
"failed": "Регистрация не удалась. Пожалуйста, попробуйте еще раз.",
"closed": "Регистрация на данный момент отключена",
"codeSent": "Код подтверждения отправлен на вашу электронную почту",
"sendCodeFailed": "Не удалось отправить код подтверждения",
"emailRequired": "Пожалуйста, сначала введите адрес электронной почты",
"emailInvalid": "Пожалуйста, введите действительный адрес электронной почты",
"usernamePasswordRequired": "Требуется имя пользователя и пароль",
"passwordTooShort": "Пароль должен быть не менее 8 символов",
"emailEmpty": "Требуется электронная почта",
"codeRequired": "Требуется код подтверждения",
"capPending": "Человеческая проверка все еще продолжается…",
"capRequired": "Пожалуйста, сначала завершите проверку человеком",
"hasAccount": "У вас уже есть аккаунт?",
"backToLogin": "Вернуться для входа в систему"
},
"capWidget": {
"clickToStart": "Нажмите, чтобы начать проверку",
"waitingVerification": "Ожидание проверки…",
"verifying": "Завершение проверки…",
"verificationPassed": "Проверка пройдена",
"verificationFailed": "Проверка не удалась",
"retry": "Повторить"
},
"requireAuth": {
"accessDenied": "Доступ запрещен",
"noPermission": "У вас нет разрешения на доступ к этой странице"
}
},
"settings": {
"title": "Настройки",
"categories": {
"personal": "Персональный",
"account": "Учётная запись"
},
"items": {
"profile": "Профиль",
"profileDesc": "Просмотр информации о вашей учетной записи",
"accessToken": "Токены доступа",
"accessTokenDesc": "Управляйте личными токенами для доступа API",
"notifications": "Уведомления",
"notificationsDesc": "Управляйте настройками уведомлений",
"appearance": "Внешний вид",
"appearanceDesc": "Настройте тему и отображение"
},
"appearance": {
"breadcrumb": "Внешний вид",
"themeMode": "Тематический режим",
"themeModeDesc": "Выберите общую светлую или темную тему.",
"modeLight": "Свет",
"modeDark": "Темный",
"modeSystem": "Система",
"interface": "Интерфейс",
"interfaceDesc": "Выберите цветовую схему и визуальный стиль",
"switched": "Внешний вид изменен на {name}",
"switchFailed": "Не удалось переключить внешний вид",
"language": "Язык",
"languageDesc": "Выберите язык интерфейса",
"comingSoon": "Скоро",
"comingSoonBody": "На подходе больше возможностей настройки…"
},
"notifications": {
"breadcrumb": "Уведомления",
"display": "Отображение уведомлений",
"displayDesc": "Настройка параметров отображения уведомлений",
"showBell": "Показать колокольчик уведомлений",
"showBellDesc": "Показывать колокольчик уведомлений в верхней панели навигации."
},
"accessToken": {
"breadcrumb": "Токены доступа",
"title": "Токены личного доступа",
"generate": "Создать токен",
"securityTitle": "Примечание по безопасности:",
"securityBody": "Токены доступа имеют полные разрешения API для вашей учетной записи. Никогда не делитесь ими через систему контроля версий, чат или общедоступные каналы. Создавайте токены по требованию и оперативно отзывайте неиспользованные.",
"listTitle": "Активные токены",
"listDesc": "Все доступные на данный момент токены доступа",
"userToken": "Токен пользователя",
"empty": "Вы еще не создали ни одного токена доступа.",
"generateFirst": "Создайте свой первый токен",
"createTitle": "Создать токен",
"createDesc": "Дайте токену узнаваемое имя для облегчения управления в дальнейшем.",
"name": "Имя токена",
"adminHint": "Если этот токен включен, он может получить доступ к конечным точкам /admin/** (по умолчанию отключено).",
"generateAction": "Генерировать",
"readyTitle": "Секрет токена готов",
"readyBody": "Это единственный раз, когда вы можете просмотреть секрет открытого текста. Скопируйте его сейчас и сохраните в надежном месте.",
"nameRequired": "Пожалуйста, введите имя токена",
"createSuccess": "Токен доступа создан.",
"createFailed": "Не удалось создать токен доступа.",
"deleteSuccess": "Токен доступа отозван",
"deleteFailed": "Не удалось удалить токен доступа.",
"rotateSuccess": "Секрет токена заменён; старый секрет больше не действует",
"rotateFailed": "Не удалось заменить секрет токена",
"deleteConfirm": "Отозвать токен «{name}»? Он немедленно перестанет работать и не подлежит восстановлению.",
"rotateConfirm": "Заменить секрет токена «{name}»? Будет создан новый секрет, а старый сразу перестанет действовать.",
"deleteConfirmTitle": "Подтвердить отзыв токена",
"rotateConfirmTitle": "Подтвердить замену секрета токена",
"confirmRevoke": "Подтвердить отзыв",
"confirmRotate": "Подтвердить замену",
"revoking": "Отзыв...",
"rotating": "Замена секрета…",
"subtitle": "Управляйте секретами доступа API для инструментов разработки или сторонних инструментов.",
"adminBadge": "Админ",
"adminPermission": "Разрешение администратора",
"createdAt": "Создано: {date}",
"copy": "Копировать",
"rotate": "Заменить секрет",
"revoke": "Отозвать",
"copySuccess": "Скопировано",
"copyFailed": "Не удалось скопировать",
"namePlaceholder": "например мой-ключ-развития",
"generating": "Создание…",
"importantTitle": "Важно:",
"savedConfirm": "Я скопировал и надежно сохранил его"
},
"profile": {
"passwordChangeSuccess": "Пароль успешно изменен",
"passwordChangeFailed": "Не удалось изменить пароль. Пожалуйста, попробуйте еще раз.",
"passwordMismatch": "Новые пароли не совпадают",
"passwordTooShort": "Новый пароль должен содержать не менее 8 символов.",
"profileUpdateSuccess": "Профиль успешно обновлен",
"profileUpdateFailed": "Не удалось обновить профиль. Пожалуйста, попробуйте еще раз.",
"bindSourceFailed": "Не удалось привязать источник аутентификации.",
"avatarUploadSuccess": "Аватарка загружена. Нажмите «Сохранить», чтобы подать заявку.",
"avatarUploadFailed": "Не удалось загрузить аватар",
"genderMale": "Мужской",
"genderFemale": "Женский",
"genderSecret": "Предпочитаю не говорить",
"title": "Профиль",
"userNotFound": "Информация о пользователе не найдена",
"breadcrumbSettings": "Настройки",
"breadcrumbProfile": "Профиль",
"basicInfo": "Основная информация",
"basicInfoDesc": "Основная информация вашего аккаунта",
"editProfile": "Редактировать профиль",
"account": "Учётная запись",
"nickname": "Псевдоним",
"notSet": "Не установлено",
"uid": "Пользователь ID (UID)",
"email": "Электронная почта",
"notBound": "Не связан",
"phone": "Номер телефона",
"gender": "Пол",
"website": "Сайт",
"location": "Расположение",
"isAdmin": "Администратор",
"yes": "Да",
"no": "Нет",
"bio": "Био",
"bioDefault": "Этот пользователь еще ничего не написал.",
"changePassword": "Изменить пароль",
"changePasswordDesc": "Измените пароль своей учетной записи в целях безопасности. Должно быть не менее 8 символов.",
"passwordRiskWarning": "Предупреждение о безопасности пароля",
"mustChangePassword": "В целях безопасности вашей учетной записи вам необходимо изменить первоначальный пароль.",
"currentPassword": "Текущий пароль",
"currentPasswordPlaceholder": "Введите текущий пароль",
"newPassword": "Новый пароль",
"newPasswordPlaceholder": "Новый пароль (минимум 8 символов)",
"confirmNewPassword": "Подтвердите новый пароль",
"confirmNewPasswordPlaceholder": "Подтвердите новый пароль",
"submitting": "Отправка...",
"confirmChange": "Подтвердить изменение",
"thirdPartyBinding": "Привязка стороннего аккаунта",
"thirdPartyBindingDesc": "Управляйте сторонними авторизованными учетными записями и связывайте их для быстрого входа в систему и проверки.",
"boundAccounts": "Привязанные аккаунты",
"noAccountIdentifier": "Идентификатор аккаунта не указан",
"unbind": "Отвязать",
"bindingRemoved": "Привязка удалена",
"noBoundAccounts": "Сторонние аккаунты пока не привязаны",
"bindNewAccount": "Привязать новую учетную запись",
"bindSource": "Привязать {name}",
"noAvailableSources": "Нет доступных сторонних источников аутентификации.",
"editProfileTitle": "Редактировать профиль",
"editProfileDesc": "Обновите свою основную информацию. Изменения вступают в силу сразу после сохранения.",
"uploadAvatar": "Нажмите, чтобы загрузить/изменить аватар",
"nicknamePlaceholder": "Введите свой никнейм",
"emailPlaceholder": "Введите адрес электронной почты",
"phonePlaceholder": "Введите номер телефона",
"genderPlaceholder": "Выберите пол",
"locationPlaceholder": "например Нью-Йорк",
"bioPlaceholder": "Расскажите о себе...",
"cancel": "Отмена",
"saving": "Сохранение...",
"saveChanges": "Сохранить изменения",
"cropAvatar": "Обрезать аватар",
"cropAvatarDesc": "Отрегулируйте положение и размер аватара так, чтобы он помещался в центральную круглую область."
},
"botBinding": {
"title": "Привязать бота",
"description": "Свяжите свой личный чат Telegram или QQ с этой учетной записью, чтобы сообщения, которые вы отправляете боту, можно было сохранять.",
"bound": "Связанный",
"empty": "Боты пока не привязаны",
"unbind": "Отвязать",
"bind": "Введите код сопряжения",
"bindDialogTitle": "Привязать бота",
"bindDialogDescription": "Выберите включенный канал и введите код сопряжения, который вам прислал бот.",
"selectChannel": "Выберите канал",
"pairingCode": "Код сопряжения",
"pairingCodePlaceholder": "ABCD-EFGH",
"submit": "Связать",
"cancel": "Отмена",
"bindSuccess": "Связано успешно",
"bindFailed": "Не удалось привязать",
"unbindSuccess": "Несвязанный",
"unbindFailed": "Не удалось отменить привязку",
"platformUserId": "Пользователь платформы ID",
"noChannels": "Нет доступных каналов. Попросите администратора добавить его.",
"typeTelegram": "Telegram",
"typeQQ": "QQ",
"loadFailed": "Не удалось загрузить привязки"
},
"security": {
"passwordLoginEnabled": "Разрешить вход по паролю",
"passwordLoginEnabledDesc": "Если этот параметр отключен, для входа доступны только сторонние источники аутентификации OIDC.",
"registrationEnabled": "Разрешить регистрацию",
"registrationEnabledDesc": "Если этот параметр отключен, новые пользователи не могут самостоятельно зарегистрироваться.",
"passwordRegisterEnabled": "Разрешить регистрацию пароля",
"passwordRegisterEnabledDesc": "Если этот параметр отключен, учетные записи могут создаваться только администраторами или связываться с помощью сторонней аутентификации.",
"oidcLoginEnabled": "Разрешить вход OIDC",
"oidcLoginEnabledDesc": "Если этот параметр отключен, все сторонние кнопки входа OIDC будут скрыты.",
"emailLoginVerification": "Проверка входа по электронной почте",
"emailLoginVerificationDesc": "Если эта функция включена, для входа в систему с паролем требуется 6-значный код подтверждения, отправленный по электронной почте.",
"emailRegisterVerification": "Проверка регистрации по электронной почте",
"emailRegisterVerificationDesc": "Если эта функция включена, для регистрации требуется 6-значный код подтверждения, отправленный по электронной почте.",
"loginSessionTTLUpdated": "Продолжительность сеанса входа обновлена.",
"updateConfigFailed": "Не удалось обновить конфигурацию",
"invalidHours": "Введите допустимое количество часов (положительное целое число)",
"securityConfigUpdated": "Конфигурация безопасности обновлена.",
"authSourceStatusUpdated": "Статус источника аутентификации обновлен.",
"toggleStatusFailed": "Не удалось переключить статус.",
"authSourceDeleted": "Источник аутентификации удален.",
"deleteAuthSourceFailed": "Не удалось удалить источник аутентификации.",
"captchaConfigSaved": "CAPTCHA конфигурация сохранена",
"saveConfigFailed": "Не удалось сохранить конфигурацию.",
"loginRegistrationSettings": "Настройки входа/регистрации",
"loginRegistrationSettingsDesc": "Настройте ограничения входа и разрешения на саморегистрацию пользователей.",
"loginSessionTTL": "Продолжительность сеанса входа в систему",
"loginSessionTTLDesc": "Настройте продолжительность сеансов входа в браузере. Установите значение «Выкл.», чтобы выйти из системы при закрытии браузера.",
"selectRetentionTime": "Выберите время хранения",
"sessionOff": "Выкл. (выйти при закрытии браузера)",
"session7Days": "7 дней",
"session30Days": "30 дней",
"sessionNeverExpire": "Никогда не истекает",
"sessionCustom": "Пользовательская продолжительность",
"hoursPlaceholder": "ч",
"authSourceManagement": "Управление источником аутентификации",
"authSourceManagementDesc": "Добавляйте, изменяйте и активируйте собственные источники аутентификации OIDC.",
"addAuthSource": "Добавить источник аутентификации",
"enabled": "Включено",
"disabled": "Отключено",
"identifier": "Идентификатор",
"type": "Тип",
"secretConfigured": "Секрет настроен",
"secretNotConfigured": "Секрет не настроен",
"deleteAuthSourceConfirm": "Удалить источник аутентификации «{name}»? Это невозможно отменить.",
"deleteAuthSourceTitle": "Подтвердить удаление источника аутентификации",
"confirmDelete": "Подтвердить удаление",
"deleting": "Удаление...",
"noAuthSources": "Источники аутентификации не настроены. Нажмите кнопку выше, чтобы добавить его.",
"loginCaptchaEnabled": "Войти CAPTCHA",
"captchaConfig": "Cap CAPTCHA",
"captchaConfigDesc": "Настройте невидимый CAPTCHA на основе Proof-of-Work (PoW) для защиты входа в систему от атак грубой силы и подброса учетных данных.",
"autoStartSolving": "Начинайте решать автоматически при загрузке страницы",
"challengeCount": "Количество испытаний",
"challengeCountDesc": "Количество задач, которые должен решить клиент. По умолчанию 1, рекомендуется от 1 до 5.",
"challengeDifficulty": "Сложность",
"challengeDifficultyDesc": "Хэш-биты префикса PoW; каждое приращение удваивает время вычислений. По умолчанию 4, рекомендуется 4",
"challengeSize": "Размер соли",
"challengeSizeDesc": "Вызов длины символа запутывания соли. По умолчанию 32",
"challengeTTL": "Вызов TTL (секунды)",
"challengeTTLDesc": "Срок действия вызова. По умолчанию 600 с (10 минут)",
"tokenTTL": "Токен TTL (секунды)",
"tokenTTLDesc": "Срок действия подписанного токена входа после завершения PoW. По умолчанию 1200 с (20 минут)",
"saving": "Сохранение...",
"saveConfig": "Сохранить настройки"
},
"system": {
"addressAutoDetected": "Текущий домен обнаружен и заполнен автоматически",
"configUpdated": "Конфигурация обновлена",
"updateConfigFailed": "Не удалось обновить конфигурацию",
"generalConfigSaved": "Общая конфигурация сохранена.",
"saveConfigFailed": "Не удалось сохранить конфигурацию.",
"smtpConfigSaved": "SMTP конфигурация почты сохранена",
"connectingTest": "Отправка тестового запроса...",
"testEmailSent": "Тестовое письмо успешно отправлено",
"sendFailedCheckConfig": "Отправить не удалось. Пожалуйста, проверьте конфигурацию и журналы.",
"testEmailFailed": "Не удалось отправить тестовое письмо.",
"requestFailed": "Запрос не выполнен",
"requestError": "[Ошибка запроса]",
"testRequestFailed": "Тестовый запрос не выполнен",
"enterTargetEmail": "Введите целевой адрес электронной почты",
"generalSettings": "Общие настройки",
"generalSettingsDesc": "Настройте идентификацию сайта, адрес сервера и политику индексирования поисковыми системами.",
"siteName": "Название сайта",
"siteNameDesc": "Используется в заголовках страниц, страницах входа/регистрации, панели администратора и системных электронных письмах.",
"serverAddress": "Адрес сервера",
"useCurrentDomain": "Использовать текущий домен",
"serverAddressDesc": "Разрешённый источник запросов к API (Origin). Оставьте пустым, чтобы разрешить любой источник.",
"searchEngineIndexing": "Индексация поисковыми системами",
"indexingAllowed": "Разрешить индексирование",
"indexingDenied": "Запретить индексирование",
"searchEngineIndexingDesc": "Контролируйте, могут ли Google, Baidu, Bing и другие поисковые системы индексировать общедоступные страницы.",
"addressChangeWarning": "Изменение адреса влияет на политику CORS. Пожалуйста, введите полный код URL с указанием протокола и домена.",
"saving": "Сохранение...",
"saveConfig": "Сохранить настройки",
"smtpSettings": "SMTP настройки почты",
"smtpSettingsDesc": "Настройте службу отправки электронной почты системы (SMTP)",
"smtpHost": "SMTP хозяин",
"smtpPort": "SMTP порт",
"smtpUsername": "SMTP имя пользователя",
"smtpPassword": "SMTP пароль",
"smtpPasswordMasked": "•••••• (настроено, оставьте пустым, чтобы сохранить)",
"smtpPasswordPlaceholder": "Введите пароль",
"testSend": "Отправить тест",
"smtpTestTitle": "SMTP отправить тест",
"smtpTestDesc": "Введите адрес электронной почты, чтобы получить тестовое сообщение. Система будет использовать конфигурацию SMTP, которую вы ввели в форму выше.",
"targetEmail": "Целевой адрес электронной почты",
"connectionLog": "Журнал подключения и передачи",
"testSuccess": "Тест удался! Письмо отправлено успешно.",
"testFailed": "Тест не пройден",
"close": "Закрыть",
"testing": "Тестирование...",
"startTest": "Начать тест"
},
"other": {
"menuDisplayUpdated": "Конфигурация отображения меню обновлена.",
"updateConfigFailed": "Не удалось обновить конфигурацию",
"menuDisplayManagement": "Управление отображением меню",
"menuDisplayManagementDesc": "Настройте видимость пунктов меню боковой панели для всех вошедших в систему пользователей.",
"notHideable": "Невозможно скрыть",
"securityTipTitle": "Примечание по безопасности:",
"securityTipDesc": "Чтобы предотвратить блокировку администраторов после сокрытия «Системных настроек», система ограничивает отключение этого пункта меню. Все остальные пункты меню можно свободно переключать. При скрытии пустые заголовки групп также автоматически скрываются.",
"groupBusiness": "Бизнес-меню",
"groupAdmin": "Меню администратора",
"groupDocs": "Меню Документы",
"descDashboard": "Просматривайте многомерные диаграммы пограничных запросов, посетителей и трафика.",
"descNodes": "Регистрация и управление состоянием пограничного узла обратного прокси-сервера",
"descProxyRoutes": "Настройте и опубликуйте прокси-маршруты, балансировку нагрузки и привязки источника.",
"descWebsites": "Настройте корневые домены и просмотрите сведения о связанном веб-сайте.",
"descCertificates": "Управление и распространение сертификатов веб-сайта SSL/TLS.",
"descDnsAccounts": "Настройте учетные данные Cloudflare/Alidns и другого DNS провайдера API.",
"descOrigins": "Управление серверами-источниками, которые используются в маршрутах.",
"descWaf": "Настройте WAF собственные правила и ограничения скорости.",
"descIpGroups": "Управление наборами разрешений/запретов IP, используемых правилами WAF",
"descPages": "Размещайте и публикуйте проекты статических сайтов с автоматической привязкой к домену.",
"descConfigVersions": "Просматривайте снимки правил и выполняйте «горячие» обновления или откаты.",
"descAccessLogs": "Просмотр сведений о доступе к периферийным запросам в режиме реального времени",
"descPerformance": "Настройка кэша, сжатия изображений и других политик ускорения.",
"descUsers": "Просмотр и управление пользователями системы и их статусом",
"descTasks": "Просмотр и планирование асинхронных задач и задач cron",
"descStorage": "Управляйте хранилищем файлов и очищайте неиспользуемые файлы",
"descDatabase": "Контролируйте физическую базу данных, просматривайте таблицы и запускайте интерактивный SQL",
"descPush": "Настройка и отправка системных уведомлений",
"descLogs": "Просмотр журналов выполнения асинхронных задач и состояния выполнения системы.",
"descSystem": "Управление конфигурацией «ключ-значение» базовой системы",
"descAdminSettings": "Настройте капчу, электронную почту и видимость меню.",
"descUsageDocs": "Руководство по развертыванию и эксплуатации для разработчиков"
},
"templates": {
"templateCreated": "Шаблон уведомления создан.",
"createTemplateFailed": "Не удалось создать шаблон",
"templateSaved": "Шаблон уведомления сохранен.",
"updateTemplateFailed": "Не удалось обновить шаблон.",
"templateDeleted": "Шаблон уведомления удален.",
"deleteTemplateFailed": "Не удалось удалить шаблон.",
"templateManagement": "Управление шаблонами уведомлений",
"templateManagementDesc": "Настраивайте и редактируйте шаблоны уведомлений по электронной почте/SMS с помощью динамической визуализации переменных.",
"addTemplate": "Добавить шаблон",
"systemBuiltIn": "Система встроенная",
"custom": "Пользовательский",
"identifier": "Идентификатор",
"subject": "Тема",
"deleteTemplateConfirm": "Удалить шаблон «{name}»? Это невозможно отменить.",
"deleteTemplateTitle": "Подтвердить удаление шаблона",
"confirmDelete": "Подтвердить удаление",
"deleting": "Удаление...",
"noTemplates": "Шаблоны уведомлений не настроены. Нажмите кнопку выше, чтобы добавить его.",
"editTemplate": "Изменить шаблон уведомления",
"addTemplateTitle": "Добавить шаблон уведомления",
"templateDesc": "Используйте синтаксис текста/шаблона Go, например {{.Code}} для кода подтверждения.",
"templateKey": "Ключ шаблона",
"templateKeyDesc": "Уникальный идентификатор, используемый для ссылки на этот шаблон в коде.",
"templateName": "Имя шаблона",
"templateNameDesc": "Имя, отображаемое администраторам.",
"templateType": "Тип шаблона",
"templateTypeDesc": "В настоящее время поддерживаются только шаблоны электронной почты.",
"templateSubject": "Тема",
"templateSubjectDesc": "Строка темы, используемая для шаблонов электронных писем.",
"templateDescription": "Описание и документация по переменным",
"templateContent": "Содержание",
"cancel": "Отмена",
"saving": "Сохранение...",
"saveConfig": "Сохранить настройки"
},
"info": {
"upgradeVerified": "Пакет обновления проверен. Служба перезапускается.",
"applyUpgradeFailed": "Не удалось применить обновление.",
"appUpdate": "Обновление приложения",
"appUpdateDesc": "Проверьте исходную версию GitHub Действия Выпустить и обновить текущую службу",
"newVersionAvailable": "Доступна новая версия",
"alreadyLatest": "Уже в курсе",
"cannotGetVersion": "Не удалось получить информацию о исходной версии.",
"recheck": "Перепроверить",
"currentVersion": "Текущая версия",
"latestVersion": "Последняя версия",
"buildTime": "Время сборки",
"platform": "Платформа",
"upstreamRepo": "Восходящее репо",
"releaseAsset": "Освободить актив",
"releaseNotes": "Примечания к выпуску",
"checkUpdate": "Проверить наличие обновлений",
"viewRelease": "Посмотреть выпуск",
"upgradeNow": "Обновите сейчас",
"upgradeTo": "Обновить до {version}?",
"upgradeDesc": "Служба загрузит и проверит {asset}, затем заменит текущий двоичный файл и перезапустится. Убедитесь, что каталог установки доступен для записи и служба поддерживает перезапуск на месте.",
"cancel": "Отмена",
"confirmUpgrade": "Подтвердить обновление",
"devBuildNoUpgrade": "Сборки разработки не имеют сопоставимой версии выпуска. Автоматическое обновление недоступно.",
"platformNotSupported": "Автоматическое обновление не поддерживается на этой платформе. Пожалуйста, обновите версию вручную со страницы выпуска.",
"noUpgradeNeeded": "Текущая версия не требует обновления."
},
"operation": {
"whitelistUpdated": "Белый список доступа к файлам обновлен.",
"updateWhitelistFailed": "Не удалось обновить белый список.",
"fileAccessControl": "Контроль доступа к файлам",
"fileAccessControlDesc": "Настройте бизнес-типы файлов, к которым можно получить доступ без входа в систему. Файлы, не входящие в белый список, требуют аутентификации.",
"addAuthFreeType": "Добавьте тип без авторизации:",
"selectBusinessType": "Выберите тип бизнеса...",
"allTypesAdded": "Добавлены все типы",
"currentAuthFreeList": "Типы файлов, доступные без авторизации",
"whitelistEmpty": "Белый список пуст. Все типы файлов требуют входа в систему.",
"typeAvatar": "Аватар (аватар)",
"typeAttachment": "Приложение (приложение)",
"typeDoc": "Документ (док)",
"typeGeneric": "Дженерик (дженерик)",
"logRetentionTitle": "Хранение журнала",
"logRetentionDesc": "Настройте дни хранения для каждой базы данных журналов. Журналы с истекшим сроком действия очищаются автоматически после переключения хранилища журналов.",
"days": "дн.",
"save": "Сохранить",
"logRetentionUpdated": "Хранение журнала обновлено.",
"logRetentionUpdateFailed": "Не удалось обновить хранение журнала.",
"retentionInvalid": "{label} должно быть целым числом, большим или равным 1.",
"retentionPostgresDesc": "Дни хранения журналов доступа и показателей наблюдаемости",
"retentionSqliteDesc": "SQLite дней хранения журнала",
"retentionClickhouseDesc": "ClickHouse дней хранения журнала"
},
"authSourceModal": {
"authSourceSaved": "Источник аутентификации сохранен.",
"saveAuthSourceFailed": "Не удалось сохранить источник аутентификации.",
"editAuthSource": "Изменить источник аутентификации",
"addAuthSource": "Добавить источник аутентификации",
"editAuthSourceDesc": "Измените пользовательские параметры источника аутентификации OIDC.",
"addAuthSourceDesc": "Настройте новый пользовательский источник аутентификации OIDC.",
"identifier": "Идентификатор (английское название)",
"displayName": "Отображаемое имя",
"keepOriginalIfEmpty": "Оставьте пустым, чтобы сохранить текущее значение",
"discoveryURL": "Открытие URL (OIDC эмитент URL)",
"iconURL": "Значок URL (необязательно)",
"enableAuthSource": "Включить источник аутентификации",
"enableAuthSourceDesc": "При включении он появится на странице входа и привязке учетной записи.",
"cancel": "Отмена",
"saving": "Сохранение...",
"save": "Сохранить"
}
},
"admin": {
"files": {
"pageTitle": "Хранилище",
"tabStats": "Статистика файлов",
"tabList": "Список файлов",
"tabStorage": "Конфигурация хранилища",
"stats": {
"noData": "Данных для загрузки пока нет",
"noDataDesc": "Загрузите файлы, чтобы просмотреть анализ емкости и распределения здесь.",
"totalFiles": "Всего файлов",
"countUnit": "шт.",
"totalFilesDesc": "Общее количество доступных загруженных файлов",
"totalSize": "Использовано памяти",
"totalSizeDesc": "Общий объем диска/S3, занимаемый файлами",
"weeklyNewFiles": "Новые файлы (7 дней)",
"weeklyNewFilesDesc": "Файлы успешно загружены за последние 7 дней",
"weeklyNewSize": "Данные загружены (7 дней)",
"weeklyNewSizeDesc": "Общий размер файлов, загруженных за последние 7 дней",
"trendTitle": "Тенденция загрузки за 7 дней",
"trendDesc": "Ежедневная статистика загрузок за последнюю неделю",
"trendCount": "Количество файлов",
"trendSize": "Размер загрузки (MB)",
"chartLabelCount": "Новые файлы",
"chartLabelSize": "Размер загрузки",
"countDistTitle": "Файлы по категориям",
"countDistDesc": "Доля загруженных файлов в каждой категории",
"noCategoryData": "Нет данных о категории",
"maxCountHint": "Самая частая категория: {name} ({count, plural, one {# файл} few {# файла} many {# файлов} other {# файла}}).",
"sizeDistTitle": "Хранение по категориям",
"sizeDistDesc": "Доля хранилища, используемая каждой категорией",
"noSizeData": "Нет данных о размерах",
"maxSizeHint": "Самая большая категория: {name} ({size}).",
"catImages": "Изображения",
"catVideos": "Видео",
"catAudio": "Аудио",
"catDocuments": "Документы",
"catArchives": "Архивы",
"catOthers": "Прочее",
"none": "Нет"
},
"list": {
"searchPlaceholder": "Поиск по имени файла...",
"selectAll": "Выбрать все на этой странице",
"deselectAll": "Отменить выбор всех",
"selectedCount": "Выбрано: {count}",
"batchDownload": "Скачать как архив",
"batchDownloadSuccess": "Пакетная загрузка началась.",
"batchDownloadFailed": "Пакетная загрузка не удалась",
"totalFiles": "Всего файлов: {count}",
"noMatch": "Нет подходящих файлов",
"noFiles": "Файлы еще не загружены",
"colPreview": "Предпросмотр",
"colName": "Имя файла",
"colPath": "Путь",
"colType": "Тип бизнеса",
"colMime": "MIME тип",
"colSize": "Размер",
"colUploadedAt": "Загружено в",
"colActions": "Действия",
"viewDetail": "Посмотреть детали",
"download": "Скачать",
"delete": "Удалить",
"prevPage": "Назад",
"nextPage": "Далее",
"detailTitle": "Детали файла",
"detailDesc": "Просмотрите полные метаданные и свойства конфигурации файла.",
"detailId": "Файл ID",
"detailName": "Имя файла",
"detailPath": "Путь хранения",
"detailSize": "Размер",
"bytes": "байты",
"detailMime": "MIME тип",
"detailExtension": "Расширение",
"detailBizType": "Тип бизнеса",
"detailDriver": "Драйвер хранилища",
"detailUploaderId": "Загрузчик ID",
"detailUploadedAt": "Загружено в",
"detailMetadata": "Дополнительные метаданные",
"deleteTitle": "Подтвердить удаление файла",
"deleteConfirm": "Удалить файл «{name}»? Это действие невозможно отменить.",
"cancel": "Отмена",
"confirmDelete": "Подтвердить удаление",
"deleteSuccess": "Файл удален",
"deleteFailed": "Удаление не удалось",
"extensionFile": "{ext} файл"
},
"storage": {
"maintenanceMode": "Режим обслуживания хранилища",
"maintenanceDesc": "{source} → {target}. Во время миграции файлы доступны только для чтения; загрузка, удаление и очистка отключены.",
"migrationProgress": "Ход переноса доступен в журнале выполнения задачи: {taskId}",
"notDispatched": "Еще не отправлено",
"retryMigration": "Повторить миграцию",
"fileStorage": "Хранение файлов",
"fileStorageDesc": "По умолчанию используется локальное хранилище. Настройте носитель для хранения системных файлов. При переключении типа хранилища с существующими файлами система переходит в режим обслуживания и автоматически переносит файлы.",
"storageType": "Тип хранилища",
"rootDir": "Корневой каталог",
"endpoint": "Конечная точка",
"username": "Имя пользователя",
"password": "Пароль",
"basePath": "Базовый путь",
"switchWarning": "⚠️ Вы переключили тип хранилища. Нажатие кнопки «Сохранить конфигурацию» переключит активный механизм хранения и обновит существующие теги драйвера файла. Используйте «Начать миграцию» только в том случае, если необходимо физическое копирование файлов.",
"saveConfig": "Сохранить настройки",
"startMigration": "Начать миграцию",
"keyPrefix": "Префикс объекта",
"cdnUrl": "CDN URL",
"pathStyleDesc": "Самостоятельное размещение S3, такое как MinIO, обычно требует включения стиля пути.",
"saveSuccess": "Конфигурация хранилища сохранена.",
"saveFailed": "Не удалось сохранить конфигурацию хранилища.",
"migrateSuccess": "Задача переноса хранилища отправлена.",
"migrateFailed": "Не удалось отправить задачу миграции хранилища.",
"retrySuccess": "Задача переноса хранилища повторно отправлена.",
"retryFailed": "Не удалось выполнить миграцию хранилища.",
"driverLocal": "Локальная файловая система",
"driverS3": "AWS S3",
"driverR2": "Cloudflare R2",
"driverMinio": "МинИО",
"driverOss": "Облако Алибаба OSS",
"driverWebdav": "ВебДАВ",
"driverUnknown": "Неизвестно"
}
},
"users": {
"pageTitle": "Пользователи",
"createUser": "Создать пользователя",
"colUser": "Пользователь",
"colEmail": "Электронная почта",
"colLastLogin": "Последний вход",
"colRegisteredAt": "Зарегистрировано в",
"colLastUpdate": "Последнее обновление",
"colActions": "Действия",
"loadingUsers": "Загрузка пользователей...",
"noUsers": "Пользователи не найдены",
"adminAccount": "учетная запись администратора",
"disableAccount": "Отключить аккаунт",
"enableAccount": "Включить учетную запись",
"viewDetail": "Посмотреть детали",
"editUser": "Изменить пользователя",
"editTitle": "Изменить пользователя",
"editDesc": "Измените профиль пользователя, предоставьте/отзовите доступ администратора или сбросьте пароль.",
"usernameImmutable": "Имя пользователя (неизменяемое)",
"nicknameOptional": "Псевдоним (необязательно)",
"nicknamePlaceholder": "Введите никнейм",
"email": "Электронная почта",
"emailPlaceholder": "Введите адрес электронной почты",
"resetPasswordOptional": "Сбросить пароль (необязательно)",
"resetPasswordPlaceholder": "Оставьте пустым, чтобы сохранить текущий пароль, или введите новый (не менее 8 символов).",
"adminPermission": "Разрешение администратора",
"adminPermissionDesc": "Если эта функция включена, эта учетная запись будет иметь доступ администратора.",
"cannotRevokeSelfAdmin": "Невозможно отозвать права администратора у текущего вошедшего в систему пользователя.",
"deleteUser": "Удалить пользователя",
"cancel": "Отмена",
"save": "Сохранить",
"saving": "Сохранение...",
"deleteConfirmTitle": "Подтвердите удаление пользователя",
"deleteConfirmDesc": "Удалить пользователя {name}? Это приведет к удалению учетной записи и не может быть отменено.",
"confirmDelete": "Подтвердить удаление",
"createTitle": "Создать пользователя",
"createDesc": "Создайте новую локальную учетную запись с паролем.",
"username": "Имя пользователя",
"usernamePlaceholder": "Введите имя пользователя (минимум 3 символа)",
"password": "Пароль",
"passwordPlaceholder": "Введите пароль (минимум 8 символов)",
"enableAccountLabel": "Включить учетную запись",
"enableAccountDesc": "Если эта учетная запись отключена, вход в систему невозможен.",
"create": "Создать",
"creating": "Создание...",
"userProfile": "Профиль пользователя",
"refreshingDetail": "Обновление деталей",
"registeredAt": "Зарегистрировано в",
"personalInfo": "Личная информация",
"phone": "Телефон",
"gender": "Пол",
"location": "Расположение",
"website": "Сайт",
"bio": "Био",
"systemRecords": "Системные записи",
"accountStatus": "Статус аккаунта",
"statusActive": "Активный",
"statusDisabled": "Отключено",
"isAdmin": "Админ",
"yes": "Да",
"no": "Нет",
"lastLogin": "Последний вход",
"lastUpdate": "Последнее обновление",
"banAccount": "Заблокировать аккаунт",
"unbanAccount": "Разблокировать аккаунт",
"search": "Поиск",
"searchUserIdPlaceholder": "Введите пользователя ID...",
"searchUsernamePlaceholder": "Введите имя пользователя...",
"searchEmailPlaceholder": "Введите адрес электронной почты...",
"clear": "Очистить",
"status": "Статус",
"statusAll": "Все статусы",
"clearFilters": "Очистить фильтры",
"totalRecords": "Записей: {total}",
"perPage": "По {count} на странице",
"refreshData": "Обновить данные",
"validation": {
"emailRequired": "Требуется электронная почта",
"emailInvalid": "Неверный формат электронной почты",
"passwordTooShort": "Пароль должен быть не менее 8 символов",
"usernameRequired": "Требуется имя пользователя",
"usernameTooShort": "Имя пользователя должно быть не менее 3 символов",
"passwordRequired": "Требуется пароль"
}
},
"tasks": {
"pageTitle": "Задачи",
"tabTasks": "Запуск задач",
"tabSchedules": "Задачи по расписанию",
"tabExecutions": "Журнал выполнения",
"unknownError": "Неизвестная ошибка",
"statusPending": "Ожидает",
"statusRunning": "Выполняется",
"statusSucceeded": "Успешно",
"statusFailed": "Ошибка",
"triggerSystem": "Система",
"triggerManual": "Вручную",
"triggerRetry": "Повторить",
"triggerSchedule": "Запланировано",
"allStatuses": "Все статусы",
"allTasks": "Все задачи",
"refresh": "Обновить",
"loadingExecutions": "Загрузка записей выполнения...",
"noExecutions": "Записи об исполнении не найдены",
"colTask": "Задача",
"colStatus": "Статус",
"colTrigger": "Источник запуска",
"colRetry": "Повторы",
"colDuration": "Продолжительность",
"colResult": "Результат/Ошибка",
"colCreatedAt": "Создано в",
"paginationInfo": "Записей: {total}, страница {current}/{totalPages}",
"prevPage": "Назад",
"nextPage": "Далее",
"executionDetailTitle": "Подробности выполнения",
"loadingDetail": "Загрузка сведений о задаче...",
"detailStatus": "Статус",
"detailTrigger": "Источник запуска",
"detailRetryCount": "Количество повторов",
"detailDuration": "Продолжительность",
"detailTaskId": "ID задачи",
"detailCreatedAt": "Создано в",
"detailStartedAt": "Начало",
"detailFinishedAt": "Завершение",
"detailUpdatedAt": "Обновлено в",
"detailResult": "Результат",
"detailError": "Ошибка",
"detailPayload": "Параметры",
"detailLog": "Журнал выполнения",
"noLog": "Нет доступного журнала",
"noExecutionSelected": "Запись выполнения не выбрана",
"refreshDetail": "Обновить детали",
"retryTask": "Повторить задачу",
"retrySuccess": "Задача отправлена повторно",
"retrySuccessDesc": "ID новой задачи: {taskId}",
"retryFailed": "Повторная попытка задачи не удалась",
"loadSchedulesFailed": "Не удалось загрузить запланированные задачи.",
"scheduleEnabled": "Запланированная задача включена: {name}",
"scheduleDisabled": "Запланированная задача отключена: {name}",
"changeScheduleStatusFailed": "Не удалось изменить статус задачи.",
"scheduleNameRequired": "Укажите название задачи.",
"cronRequired": "Требуется выражение Cron.",
"scheduleUpdateSuccess": "Запланированное задание обновлено.",
"scheduleCreateSuccess": "Запланированная задача создана.",
"submitFailed": "Отправка не удалась",
"scheduleDeleteSuccess": "Запланированное задание удалено",
"deleteFailed": "Удаление не удалось",
"addSchedule": "Добавить запланированную задачу",
"loadingSchedules": "Загрузка запланированных задач...",
"noSchedules": "Задач по расписанию пока нет. Нажмите кнопку выше, чтобы добавить задачу.",
"colScheduleName": "Название задачи",
"colAssociatedTask": "Тип задачи",
"colCron": "Выражение Cron",
"colPayload": "Параметры",
"colEnabled": "Включено",
"colActions": "Действия",
"editSchedule": "Изменить запланированное задание",
"scheduleDialogDesc": "Выберите тип задачи, задайте расписание и параметры.",
"scheduleName": "Название задачи",
"scheduleNamePlaceholder": "например ежедневная очистка данных",
"associatedTask": "Тип задачи",
"cronExpression": "Выражение Cron",
"cronPlaceholder": "например 0 */2 * * * или @daily",
"cronHint": "Использует стандартный формат Cron из 5 полей (минуты, часы, день месяца, месяц, день недели).",
"scheduleActive": "Включено",
"scheduleActiveDesc": "Определяет, будет ли эта запланированная задача запускаться по расписанию.",
"noParamsRequired": "Выбранный тип задачи не требует параметров времени выполнения.",
"payloadConfig": "Параметры задачи",
"paramOn": "Вкл.",
"paramOff": "Выкл.",
"saveChanges": "Сохранить изменения",
"confirmCreate": "Создать запланированную задачу",
"deleteScheduleTitle": "Удалить запланированную задачу",
"deleteScheduleDesc": "Удалить это запланированное задание? Это действие нельзя отменить, и его расписание будет немедленно отменено.",
"cancel": "Отмена",
"confirmDelete": "Подтвердить удаление",
"loadTaskTypesFailed": "Не удалось загрузить типы задач.",
"dispatchSuccess": "Задача отправлена",
"dispatchSuccessDesc": "Задача {name} добавлена в очередь: {taskId}",
"dispatchFailed": "Отправка задачи не удалась",
"loadingTaskTypes": "Загрузка типов задач...",
"noTaskTypes": "Нет доступных типов задач",
"taskType": "Тип:",
"taskRetry": "Повторные попытки:",
"executeNow": "Запустить",
"dispatchTask": "Запустить задачу",
"dispatchTaskDesc": "Настройте параметры и запустите задачу. Она будет выполняться в фоновом режиме.",
"executeTask": "Выполнить задачу",
"startTime": "Начало периода",
"startTimeDesc": "Начало временного диапазона",
"endTime": "Конец периода",
"endTimeDesc": "Конец временного диапазона",
"noParamsHint": "Дополнительные параметры не требуются. Задача будет добавлена в очередь после подтверждения.",
"start": "Запустить",
"dispatching": "Отправка...",
"selectDate": "Выберите дату",
"logPrimaryDb": "Основная база данных журналов",
"retentionDays": "Дни хранения",
"migrationStatus": "Статус миграции",
"migrating": "Миграция",
"idle": "Не выполняется",
"selectLogDb": "Выберите базу данных журналов",
"dbPostgresPrimary": "PostgreSQL (основной)",
"dbSqlitePrimary": "SQLite (основной)",
"dbClickhouse": "ClickHouse",
"taskTypeFilter": "Тип задачи",
"executionRecord": "Запись выполнения"
},
"push": {
"pageTitle": "Уведомления",
"eventsTab": "События",
"historiesTab": "История",
"settingsTab": "Каналы",
"events": {
"eventUpdateSuccess": "Событие обновлено",
"eventUpdateFailed": "Обновление события не удалось",
"operationFailed": "Операция не удалась",
"eventCreateSuccess": "Событие создано",
"eventCreateFailed": "Не удалось создать событие.",
"configDeleteSuccess": "Конфигурация удалена.",
"configDeleteFailed": "Удаление конфигурации не удалось",
"templateInvalidJson": "Недопустимый шаблон сообщения JSON",
"selectSystemEvent": "Пожалуйста, выберите системное событие",
"selectAsyncTask": "Пожалуйста, выберите асинхронную задачу",
"addEvent": "Добавить событие",
"loadingEvents": "Загрузка событий уведомлений...",
"noEvents": "Уведомления о событиях ещё не настроены. Нажмите кнопку выше, чтобы добавить событие.",
"colEvent": "Событие",
"colChannels": "Каналы",
"colTargets": "Получатели",
"colStatus": "Статус",
"colActions": "Действия",
"taskBadge": "Задача",
"noChannelSpecified": "Каналы не выбраны",
"emailChannel": "Электронная почта",
"configure": "Настроить",
"deleteEventConfirm": "Удалить настройки уведомлений об этом событии? Это действие нельзя отменить.",
"deleteEventTitle": "Удалить уведомления о событии",
"confirmDelete": "Подтвердить удаление",
"deleting": "Удаление...",
"delete": "Удалить",
"addEventDialogTitle": "Добавить событие",
"addEventDialogDesc": "Выберите событие, затем выберите каналы уведомлений и получателей.",
"eventType": "Тип события",
"builtinEventType": "Встроенное событие",
"taskEventType": "Завершение задачи",
"systemEvent": "Системное событие",
"loadingSystemEvents": "Загрузка системных событий...",
"allBuiltinEventsConfigured": "Все встроенные события уже настроены.",
"selectSystemEventPlaceholder": "Выберите системное событие",
"systemAsyncTask": "Тип задачи",
"loadingAsyncTasks": "Загрузка асинхронных задач...",
"noAvailableTasks": "Нет доступных системных задач.",
"selectAsyncTaskPlaceholder": "Выберите тип задачи",
"eventDescription": "Описание события:",
"noDescription": "Нет описания",
"taskDescription": "Описание задачи:",
"pushChannelsMulti": "Каналы уведомлений",
"selectConfiguredChannels": "Выберите каналы",
"emailPush": "Отправка по электронной почте",
"noAvailableChannels": "Нет доступных каналов. Создайте или включите канал на вкладке «Каналы».",
"pushTargets": "Получатели (для таких каналов, как электронная почта)",
"pushTargetsPlaceholder": "Адреса получателей через запятую, например user1@example.com, user2@example.com",
"contentTemplate": "Шаблон сообщения (JSON)",
"taskTemplateVars": "Поддерживаемые переменные: {{task_name}}, {{task_status}}, {{task_duration}}, {{user.username}}",
"eventTemplateVars": "Поддерживаемые переменные: {{user.username}}, {{ip}}, {{time}}",
"enableStatus": "Включено",
"enableStatusDesc": "Отправлять уведомления об этом событии после создания.",
"cancel": "Отмена",
"enableSave": "Создать событие",
"editEventDialogTitle": "Настроить уведомления о событии",
"editEventDialogDesc": "Выберите, как и куда отправлять уведомления об этом событии.",
"eventName": "Название события",
"eventKey": "Ключ события",
"relatedAsyncTask": "Тип задачи",
"noAvailableChannelsEdit": "Нет доступных каналов. Создайте или включите канал на вкладке «Каналы».",
"saveChanges": "Сохранить изменения",
"taskCompleteTitle": "Задача выполнена: {name}",
"taskCompleteContent": "Асинхронная задача {{task_name}} завершена. Статус: {{task_status}}, длительность: {{task_duration}} мс."
},
"settings": {
"channelCreateSuccess": "Канал создан",
"channelCreateFailed": "Не удалось создать канал",
"channelUpdateSuccess": "Канал обновлен",
"channelUpdateFailed": "Обновление канала не выполнено.",
"channelDeleteSuccess": "Канал удален",
"channelDeleteFailed": "Удаление канала не удалось",
"channelNameRequired": "Укажите название канала.",
"channelNameFormat": "Название канала может содержать только буквы, цифры и символы подчеркивания.",
"invalidChannelType": "Неверный тип канала",
"httpsRequired": "Для безопасного подключения URL должен начинаться с https://.",
"jsonFormatRequired": "Тело запроса должно быть действительным JSON",
"larkTemplateFormat": "Пользовательский шаблон карты должен быть действительным JSON",
"sendingTestPush": "Отправка тестового запроса...",
"testPushSuccess": "Тестовый запрос отправлен. Пожалуйста, проверьте целевую платформу.",
"connectivityTestFailed": "Проверка подключения не удалась",
"customPushChannels": "Каналы уведомлений",
"customPushChannelsDesc": "Подключите сторонние вебхуки и службы уведомлений.",
"createChannel": "Создать канал",
"loadingChannels": "Загрузка каналов...",
"noCustomChannels": "Каналы ещё не настроены. Нажмите кнопку выше, чтобы создать канал.",
"colName": "Название",
"colType": "Тип",
"colRemark": "Примечание",
"colStatus": "Статус",
"colActions": "Действия",
"noRemark": "Нет примечания",
"test": "Тест",
"edit": "Изменить",
"deleteChannelConfirm": "Удалить канал \"{name}\"? Это невозможно отменить.",
"deleteChannelTitle": "Подтвердить удаление канала",
"confirmDelete": "Подтвердить удаление",
"deleting": "Удаление...",
"delete": "Удалить",
"editChannelDialogTitle": "Редактировать канал",
"createChannelDialogTitle": "Создать канал",
"channelDialogDesc": "Выберите тип канала и настройте параметры его подключения.",
"channelName": "Название",
"channelNamePlaceholder": "например alerts_primary",
"channelNameHint": "Уникальный идентификатор, состоящий из букв, цифр и подчеркиваний. Невозможно изменить после создания.",
"channelRemark": "Описание",
"channelRemarkPlaceholder": "Дополнительное описание",
"channelType": "Тип канала",
"selectChannelType": "Выберите тип канала",
"quickLoadTemplates": "Используйте шаблон:",
"loadedFeishuTemplate": "Feishu Шаблон вебхука загружен.",
"loadedDingTalkTemplate": "DingTalk шаблон робота загружен",
"loadedWeChatTemplate": "WeCom шаблон робота загружен",
"loadedBarkTemplate": "Bark Шаблон приложения загружен.",
"cancel": "Отмена",
"confirm": "Подтвердить",
"sendTestNotification": "Отправить тестовое уведомление",
"sendTestNotificationDesc": "Введите цель теста и нажмите «Отправить». Система выполнит push-тест подключения через этот канал.",
"pushChannelName": "Название канала уведомлений",
"testPushTarget": "Цель теста (переменная шаблона $to)",
"testPushTargetPlaceholder": "Введите идентификатор цели теста, например токен Bark или адрес электронной почты.",
"sendTest": "Отправить тест",
"fieldRequired": "{label} требуется",
"configHelp": "{name} настройка"
},
"histories": {
"searchPlaceholder": "Фильтровать по ключу события...",
"sendStatus": "Отправить статус",
"allStatus": "Все статусы",
"sendSuccess": "Отправлено",
"sendFailed": "Ошибка",
"colEvent": "Событие",
"colChannel": "Канал",
"colTarget": "Получатель",
"colTitle": "Название",
"colLevel": "Уровень",
"colStatus": "Статус",
"colTime": "Время",
"loadingHistories": "Загрузка истории уведомлений...",
"noHistoryData": "Нет данных истории отправки",
"emailChannel": "Электронная почта",
"success": "Успешно",
"failed": "Ошибка",
"totalRecords": "Записей в истории: {total}",
"pushNotificationDetail": "Детали push-уведомления",
"pushNotificationDetailDesc": "Просмотрите подробную информацию об аудите и содержание этого уведомления.",
"eventIdentifier": "Идентификатор события",
"sendChannel": "Отправить канал",
"emailPush": "Отправка по электронной почте",
"pushTarget": "Получатель",
"sendTime": "Отправить время",
"notificationLevel": "Уровень уведомления",
"failureReason": "Причина отказа",
"notificationTitle": "Название уведомления",
"notificationContent": "Содержание уведомления",
"close": "Закрыть"
}
},
"messageGateway": {
"pageTitle": "Каналы обмена сообщениями",
"pageDescription": "Настройте ботов уровня экземпляра Telegram и QQ. Пользователи связывают свою личность в личном чате с помощью кода сопряжения.",
"addChannel": "Добавить канал",
"emptyTitle": "Каналов для обмена сообщениями пока нет",
"emptyDescription": "Добавьте общего бота, чтобы пользователи могли привязать его к своему профилю и отправлять личные сообщения.",
"enabled": "Включено",
"disabled": "Отключено",
"delete": "Удалить",
"deleteConfirmTitle": "Удалить этот канал?",
"deleteConfirmDescription": "Привязки и неиспользуемые коды сопряжения для этого канала также будут удалены. Это невозможно отменить.",
"createSuccess": "Канал создан",
"createFailed": "Не удалось создать канал",
"updateSuccess": "Канал обновлен",
"updateFailed": "Не удалось обновить канал",
"deleteSuccess": "Канал удален",
"deleteFailed": "Не удалось удалить канал",
"testSuccess": "Проверка подключения пройдена",
"testFailed": "Проверка подключения не удалась",
"name": "Название",
"namePlaceholder": "например Операционный бот",
"type": "Тип",
"typeTelegram": "Telegram",
"typeQQ": "QQ",
"selectType": "Выберите тип канала",
"botToken": "Токен бота",
"botTokenPlaceholder": "От BotFather",
"baseUrl": "API база URL",
"baseUrlPlaceholder": "https://api.telegram.org",
"appId": "Приложение ID",
"appSecret": "Секрет приложения",
"portalHost": "Хост портала",
"portalHostPlaceholder": "q.qq.com",
"keepSecretHint": "Оставьте пустым, чтобы сохранить сохраненный секрет.",
"cancel": "Отмена",
"create": "Создать",
"testConnection": "Тестовое соединение",
"loadFailed": "Не удалось загрузить каналы."
},
"database": {
"pageTitle": "База данных",
"refreshData": "Обновить данные",
"fetchOverviewFailed": "Не удалось получить обзор базы данных.",
"fetchTablesFailed": "Не удалось получить список таблиц.",
"exportSuccess": "База данных экспортирована.",
"exportSuccessDesc": "Скачанный архив: {filename}",
"exportFailed": "Экспорт базы данных не удался",
"dbType": "Тип базы данных",
"versionInfo": "Информация о версии",
"nameOrPath": "Имя/Путь",
"dbSize": "Размер базы данных",
"physicalTables": "Физические таблицы",
"activeConnections": "Активные соединения",
"featureArea": "Особенности",
"featureAreaDesc": "Экспорт базы данных и расширенный терминал SQL",
"dbBackupExport": "Экспорт резервной копии базы данных",
"dbBackupExportDesc": "Экспортируйте и загрузите физический образ базы данных (SQLite экспортирует .db, PostgreSQL экспортирует упакованный текстовый файл .sql)",
"preparing": "Подготовка...",
"startExport": "Начать экспорт",
"sqlQueryConsole": "SQL консоль запроса",
"sqlQueryConsoleDesc": "Откройте онлайн-терминал SQL, чтобы выполнить собственный SQL для фильтрации данных, обновлений, отладки или настройки производительности.",
"enterConsole": "Войдите в консоль",
"cache": {
"fetchCacheStatusFailed": "Не удалось получить статус дискового кэша.",
"saveFailed": "Сохранить не удалось",
"maxSizeMustBePositive": "Максимальный размер должен быть целым числом >= 1.",
"ttlMustBeNonNegative": "По умолчанию TTL должно быть целым числом >= 0.",
"saveSuccess": "Сохранено",
"cachePolicyHotUpdated": "Политика кэширования диска с горячей перезагрузкой",
"saveConfigFailed": "Не удалось сохранить конфигурацию.",
"clearSuccess": "Очищено",
"cacheDataCleared": "Все данные кэша очищены",
"clearCacheFailed": "Не удалось очистить кэш",
"cacheManagement": "Управление кэшем",
"cacheManagementDesc": "Управление и мониторинг использования ресурсов дискового кэша, жизненного цикла и политики вытеснения на уровне системы.",
"refreshStatus": "Обновить статус",
"runtimeStatus": "Статус выполнения",
"usedSpace": "Используемое пространство",
"cacheKeysCount": "Количество ключей кэша",
"files": "файлы",
"cacheBaseDirectory": "Базовый каталог кэша",
"clearCacheNow": "Очистить кэш сейчас",
"policyConfig": "Конфигурация политики",
"maxSizeLimit": "Максимальный размер (MB)",
"maxSizeHint": "Выселение инициируется, когда общий размер превышает это значение.",
"ttlLimit": "TTL лимит (минуты)",
"ttlHint": "Максимальное время жизни элемента кэша. Просроченные вещи убираются.",
"enableLru": "Включить вытеснение LRU",
"enableLruDesc": "При достижении максимального размера удаляются элементы, к которым дольше всего не обращались. Если отключено, удаляются только элементы с истекшим сроком хранения.",
"saving": "Сохранение...",
"saveSettings": "Сохранить настройки",
"noCacheStatus": "Информация о состоянии кэша не загружена",
"confirmClearAllCache": "Очистить весь кэш?",
"confirmClearDesc": "Это приведет к безвозвратному удалению всех файлов кэша из каталога диска (включая временные извлечения, обработанные изображения и блочные файлы), а счетчик ключей будет сброшен до 0. Эту операцию нельзя отменить, и это может привести к временному замедлению загрузки ресурсов пользователями.",
"cancel": "Отмена",
"clearing": "Очистка...",
"confirmClear": "Подтвердить очистку",
"unknownError": "Неизвестная ошибка",
"maxSizePlaceholder": "e.g. 100",
"ttlPlaceholder": "например 60, 0 означает, что срок действия никогда не истекает"
},
"sql": {
"sqlExecSuccess": "SQL выполнено успешно",
"sqlExecFailed": "SQL выполнение не удалось",
"sqlQueryTerminal": "SQL терминал запросов",
"sqlEditor": "SQL редактор",
"quickTemplates": "Быстрые шаблоны:",
"selectPresetSQL": "Выберите пресет SQL",
"queryUsers": "Запрос пользователей (SELECT пользователей)",
"queryFiles": "Файлы запросов (SELECT загрузок)",
"queryTaskExecutions": "Выполнение задач запроса (SELECT task_executions)",
"sqliteVersion": "Версия SQLite (только SQLite)",
"postgresVersion": "Версия PostgreSQL (только Postgres)",
"running": "Выполнение…",
"run": "Выполнить",
"executionOutput": "Выход",
"type": "Тип",
"duration": "Продолжительность",
"executingQuery": "Выполняется запрос, подождите...",
"queryResultEmpty": "Результат запроса пуст",
"sqlExecSuccessTitle": "SQL выполнено успешно",
"affectedRows": "Затронутые строки: {rows}, продолжительность: {ms}ms.",
"editorReady": "Редактор готов. Напишите SQL выше и запустите, чтобы увидеть результаты.",
"unknownExecError": "Неизвестная ошибка выполнения",
"clearEditor": "Очистить редактор",
"dragResize": "Перетащите, чтобы изменить размер",
"execErrorTitle": "SQL ошибка выполнения:",
"connected": "Подключено к {database}"
},
"tableBrowser": {
"tableBrowser": "Обозреватель таблиц",
"tableBrowserDesc": "Просмотр сведений и содержимого таблиц физической базы данных",
"selectTable": "Выберите таблицу",
"noRecordsInTable": "В этой таблице нет записей",
"totalRows": "Всего строк",
"records": "записи",
"prevPage": "Назад",
"nextPage": "Далее",
"pageIndicator": "Страница {current} / {total}",
"noTableSelected": "Таблица не выбрана или ее структуру невозможно загрузить.",
"fetchTableFailed": "Не удалось получить данные для таблицы {table}.",
"unknownError": "Неизвестная ошибка"
},
"unknownError": "Неизвестная ошибка",
"exportException": "Экспорт не удался"
},
"logs": {
"pageTitle": "Системные журналы",
"accessAnalytics": "Доступ к аналитике",
"userAccessLogs": "Журналы доступа пользователей",
"appRuntimeLogs": "Журналы приложений",
"accessLogs": {
"clickhouseDisabled": "ClickHouse отключено",
"clickhouseDisabledDesc": "Хранилище ClickHouse не включено в текущей конфигурации системы. Журналы доступа пользователей не собираются. Чтобы использовать эту функцию, настройте и включите ClickHouse в внутреннем файле config.yaml.",
"username": "Имя пользователя",
"usernamePlaceholder": "Поиск по имени пользователя...",
"apiPath": "API путь",
"pathPlaceholder": "Нечеткий путь совпадения...",
"startTime": "Начало периода",
"endTime": "Конец периода",
"search": "Поиск",
"reset": "Сброс",
"loadingAccessLogs": "Загрузка журналов доступа...",
"noAccessLogs": "Данные журнала доступа не найдены",
"colMethod": "Метод",
"colPath": "Путь",
"colUser": "Пользователь",
"colIp": "IP",
"colStatus": "Статус",
"colLatency": "Задержка",
"colRequestTime": "Запросить время",
"colDetail": "Деталь",
"unknownUser": "Неизвестный пользователь",
"paginationInfo": "Записей: {total}, страница {page}/{totalPages}",
"prevPage": "Назад",
"nextPage": "Далее",
"accessLogDetail": "Доступ к данным журнала",
"method": "Метод",
"responseStatus": "Статус ответа",
"latency": "Задержка",
"ipAddress": "IP адрес",
"user": "Пользователь",
"noNickname": "Нет псевдонима",
"unknownGuest": "Неизвестный/Гость",
"requestPath": "Путь запроса",
"requestTime": "Запросить время",
"noLogSelected": "Запись журнала не выбрана",
"copiedToClipboard": "{subject} скопировано в буфер обмена",
"noHeaderData": "Нет данных заголовка",
"accessId": "Доступ ID: {id}",
"copyUserAgent": "Копировать User-Agent",
"copyHeaders": "Копировать заголовки"
},
"analytics": {
"clickhouseDisabled": "ClickHouse отключено",
"clickhouseDisabledDesc": "Хранилище ClickHouse не включено в текущей конфигурации системы. Журналы доступа пользователей не собираются. Чтобы использовать эту функцию, настройте и включите ClickHouse в внутреннем файле config.yaml.",
"loadingAnalytics": "Загрузка аналитики доступа...",
"totalRequests7d": "Всего запросов (7 дней)",
"totalRequests7dDesc": "Всего API аутентифицированных запросов, зарегистрированных системой.",
"activeBrowserTypes": "Типы активных браузеров",
"activeBrowserTypesDesc": "Количество категорий браузерных агентов, сделавших запросы на этой неделе",
"activeUsers": "Активные пользователи (топ-10)",
"activeUsersDesc": "Аккаунты в топ-10 на этой неделе по API запросам.",
"weeklyAccessTrend": "Еженедельный тренд доступа",
"weeklyAccessTrendDesc": "Кривая ежедневных запросов API за последние 7 дней",
"noTrendData": "Нет данных о тенденциях",
"browserRanking": "Рейтинг браузера",
"browserRankingDesc": "Еженедельное распределение на основе классификации заголовков User-Agent.",
"noBrowserData": "Нет данных о рейтинге браузера",
"topActiveUsers": "Самые активные пользователи (Топ-10)",
"topActiveUsersDesc": "Аккаунты с наибольшим количеством API запросов за последнюю неделю",
"noActiveUsersData": "Нет активных пользовательских данных",
"unknown": "Неизвестно",
"noNickname": "(без прозвища)",
"requests": "запросы",
"fetchFailed": "Не удалось получить аналитику.",
"requestVolume": "Запросы",
"requestCount": "Количество запросов",
"countTimes": "{count} ({percent}%)",
"refresh": "Обновить"
},
"appLogs": {
"loading": "Загрузка…",
"loadOlderLogs": "Загрузить старые журналы",
"noLogs": "Нет журналов",
"backToLatest": "Вернуться к последнему",
"fetchFailed": "Не удалось получить журналы.",
"loadOlderFailed": "Не удалось загрузить старые журналы."
}
},
"system": {
"pageTitle": "Параметры системы",
"configKey": "Ключ",
"configValue": "Значение",
"required": "Требуется",
"configDescription": "Описание",
"optionalDescription": "Дополнительное описание",
"publicVisibility": "Публичная видимость",
"configType": "Тип конфигурации",
"systemConfig": "Параметры системы",
"businessConfig": "Бизнес-конфигурация",
"createdAt": "Создано в",
"emptyDescription": "Конфигурация системы не найдена",
"loadingDescription": "Загрузка конфигурации...",
"visible": "Видно",
"invisible": "Скрыто",
"description": "Описание"
},
"settings": {
"pageTitle": "Системные настройки",
"tabs": {
"security": "Безопасность",
"operation": "Обслуживание",
"system": "Система",
"other": "Прочее",
"status": "Статус",
"info": "Информация",
"openflare": "OpenFlare"
},
"status": {
"pageTitle": "Статус системы",
"fetchFailed": "Не удалось получить статус системы.",
"unknownRequestError": "Во время запроса произошла неизвестная ошибка",
"autoRefresh": "Автоматическое обновление",
"refresh": "Обновить",
"cards": {
"serviceOverview": "Состояние сервиса",
"serviceOverviewDesc": "Основные показатели работоспособности сервиса",
"memoryStats": "Статистика памяти",
"memoryStatsDesc": "Обзор потребления основной памяти",
"heapStack": "Детали кучи/стека",
"heapStackDesc": "Подробности о куче времени выполнения и пространстве памяти стека",
"internalStructs": "Внутренние структуры",
"internalStructsDesc": "Накладные расходы на внутреннюю структуру управления во время выполнения",
"gcAndAlloc": "GC и количество выделений",
"gcAndAllocDesc": "GC исторические данные и частота распределения"
},
"metrics": {
"uptime": "Время безотказной работы сервиса",
"goroutines": "Текущие горутины",
"heapObjects": "Объекты в куче",
"alloc": "Текущее использование памяти",
"totalAlloc": "Общий объем выделенной памяти",
"sys": "Объем памяти",
"nextGc": "Следующая цель памяти GC",
"memoryUsagePercent": "Текущее использование (Alloc/Sys)",
"heapAlloc": "Текущее использование динамической памяти",
"heapSys": "Объем кучи памяти",
"heapIdle": "Куча памяти простаивает",
"heapInuse": "Куча памяти используется",
"heapReleased": "Куча памяти освобождена",
"stackInuse": "Память стека используется",
"stackSys": "Выделенная стековая память",
"mspanInuse": "Используется структурная память MSpan",
"mspanSys": "Выделенная память MSpan",
"mcacheInuse": "Используется структурная память MCache",
"mcacheSys": "Выделенная память MCache",
"buckHashSys": "Выделенная память хеш-таблицы профилирования",
"gcSys": "Выделенная память метаданных GC",
"otherSys": "Другая выделенная системная память",
"numGc": "GC количество выполнений",
"lastGcTime": "Время с момента последнего GC",
"pauseTotalNs": "Общее время паузы GC",
"lastPause": "Время последней паузы GC",
"mallocs": "Счетчик выделения памяти",
"frees": "Количество освобождений памяти",
"lookups": "Счетчик поиска указателя"
}
}
},
"demo": {
"pageTitle": "Демонстрация стандартов разработки",
"specTitle": "Примечания к спецификациям",
"specDescription": "На этой странице показан стандартный макет заголовка для страниц, связанных с боковой панелью, для справки при разработке.",
"coreSpecTitle": "Детали основной спецификации и принципы написания:",
"rules": {
"structureFocus": {
"title": "Фокус структуры",
"description": ": Сделайте заголовок простым. Не добавляйте описания или подзаголовки под заголовком страницы."
},
"containerAlignment": {
"title": "Выравнивание контейнера и верхнего поля",
"description": "для строки заголовка без нижней границы. Использование",
"description2": "на внешнем контейнере, чтобы обеспечить постоянное расстояние между страницами."
},
"iconPresentation": {
"title": "Представление иконок",
"description": "стиль. Не заключайте значки в фоновые карточки, закругленные углы или декоративные рамки."
},
"textStyle": {
"title": "Стандарт стиля текста",
"description": ". Никакого жирного шрифта (например,",
"description2": ") или любые градиенты. Поддерживайте единообразную типографику по всему сайту."
},
"tabsModular": {
"title": "Модульная декомпозиция вкладок",
"description": "или разместить локально под",
"description2": "). Файл главной страницы поддерживает только активное состояние вкладки и макет внешнего скелета."
},
"complexityDriven": {
"title": "Декомпозиция блоков по сложности",
"description": "линии, разбивайте сложные участки на более мелкие компоненты. Храните компоненты, специфичные для маршрута, в каталоге функций (например,",
"description2": "). Только действительно межстраничные повторно используемые компоненты попадают в глобальную среду.",
"description3": ". Типичный эталонный случай — «База данных» ("
}
},
"tabs": {
"dashboard": "Панель мониторинга и карточки показателей",
"table": "Стандарты таблиц данных",
"controls": "Элементы управления вводом и формы"
},
"controls": {
"formDemoTitle": "Демонстрация взаимодействия формы и ввода",
"formDemoDesc": "Включает варианты кнопок, раскрывающиеся списки, флажки и стандартные стили ввода.",
"taskName": "Название задачи",
"taskNamePlaceholder": "Введите описание задачи...",
"taskNameHint": "Имя задачи используется для удобочитаемого отображения в записях выполнения.",
"taskCategory": "Категория задачи",
"categoryDatabase": "Операции с базой данных",
"categorySync": "Пакетная синхронизация данных",
"categoryCleanup": "Очистка просроченного диска",
"allowNotify": "Разрешить асинхронные push-уведомления",
"allowNotifyDesc": "Если этот флажок установлен, многоканальные push-уведомления будут отправляться после успешного завершения задачи.",
"buttonStyles": "Выравнивание стиля кнопок:",
"primaryButton": "Первичное действие",
"secondaryButton": "Вторичное действие",
"outlineButton": "Схема",
"ghostButton": "Призрак",
"formDesignSpec": "Спецификация дизайна формы",
"spec": {
"unifiedHeight": "1. Единый контроль высоты и тени:",
"checkboxAlignment": "2. Флажок и выравнивание текста:",
"buttonStrategy": "3. Стратегия использования кнопок:"
}
},
"table": {
"mockData": {
"syncExport": "Пакетная синхронизация информации о пользователях",
"dbBackup": "Еженедельный архив автоматического резервного копирования базы данных",
"s3Cleanup": "Удаленная задача автоматической очистки объекта кэша с истекшим сроком действия S3"
},
"mockType": {
"dataSync": "Синхронизация данных",
"dbOps": "Операции с базой данных",
"diskCleanup": "Очистка диска"
},
"mockDuration": {
"running": "Выполняется"
},
"searchPlaceholder": "Поиск по названию задачи...",
"filter": "Фильтр",
"newTask": "Новая задача",
"columns": {
"taskId": "Задача ID",
"taskName": "Название задачи",
"taskType": "Тип",
"status": "Статус",
"duration": "Продолжительность",
"triggerTime": "Время срабатывания",
"actions": "Действия"
},
"status": {
"success": "Успешно",
"running": "Выполняется",
"failed": "Ошибка"
},
"tableDesignSpec": "Спецификация конструкции таблицы и шаблон кода",
"spec": {
"container": "Контейнеры таблиц должны использовать контейнеры с пунктирной границей, то есть имя класса:",
"headerBg": "Фон заголовка таблицы:",
"headerStyle": ". Шрифт ячейки заголовка мелкий и жирный.",
"cellDivider": "В ячейках используются пунктирные разделители между строками и столбцами (",
"rowHover": "). При наведении строки таблицы используется плавный переход.",
"monoFont": "Закодированные поля, поля первичного ключа или уникальные поля ID должны использовать моноширинный шрифт:",
"badgeStyle": "Значки должны быть закругленными (",
"badgeStyle2": ") со светлым фоном и соответствующими точками значков для создания современного высококонтрастного визуального ощущения."
}
},
"dashboard": {
"cpuUsage": "Использование контейнера CPU",
"cpuStatus": "Контейнер работает нормально, нагрузка стабильна",
"storageUsage": "Использовано памяти",
"storageStatus": "Данные синхронизируются с удаленным сегментом S3, поддерживается автоматическое истечение срока действия.",
"database": "Физическая база данных",
"activeConnections": "Активные соединения:",
"totalTables": "Всего таблиц:",
"dbStatus": "Пул подключений поддерживается автоматически, максимальное количество подключений: 100.",
"dashboardDesignSpec": "Метрические карты и спецификация дизайна информационной панели",
"spec": {
"dashedBorder": "Метрические карты единообразно используют",
"dashedBorder2": "для границы и тени.",
"headerLayout": "Использование заголовка",
"headerLayout2": "макет: небольшой текст заголовка слева, значок Lucide справа.",
"valueStyle": "Числовое выделение использует и только использует",
"valueStyle2": "дисплей.",
"progressBar": "Использование индикаторов выполнения",
"progressBar2": "высота тонкой планки, не подавляющая.",
"secondaryText": "Вторичный текст описания внизу должен единообразно использовать",
"secondaryText2": "и подобные классы полезности."
}
}
}
}
}