feat(locales): Add multiple languages

This commit is contained in:
web@ppanel
2024-12-18 23:12:53 +07:00
parent a20834a9ac
commit b243ab9006
610 changed files with 23247 additions and 9 deletions
@@ -0,0 +1,30 @@
{
"actions": "Действия",
"announcementList": "Список объявлений",
"cancel": "Отмена",
"confirm": "Подтвердить",
"confirmDelete": "Вы уверены, что хотите удалить?",
"content": "содержание",
"create": "Создать",
"createAnnouncement": "Создать объявление",
"createSuccess": "Создание успешно",
"delete": "Удалить",
"deleteDescription": "После удаления данные не могут быть восстановлены. Пожалуйста, действуйте осторожно.",
"deleteSuccess": "Удаление успешно",
"edit": "редактировать",
"editAnnouncement": "Редактировать объявление",
"enable": "Включить",
"form": {
"cancel": "Отмена",
"confirm": "Подтвердить",
"content": "Содержание",
"contentPlaceholder": "Пожалуйста, введите содержание объявления (поддерживается Markdown)",
"title": "Заголовок",
"titlePlaceholder": "Пожалуйста, введите"
},
"hide": "скрыть",
"show": "Показать",
"title": "Заголовок",
"updateSuccess": "Обновление успешно",
"updatedAt": "Обновлено"
}
+39
View File
@@ -0,0 +1,39 @@
{
"check": {
"checking": "Проверка...",
"continue": "Продолжить",
"description": "Пожалуйста, введите ваш адрес электронной почты для продолжения входа или регистрации.",
"email": "Пожалуйста, введите действительный адрес электронной почты.",
"title": "Вход/Регистрация",
"whitelist": "Домен электронной почты не входит в разрешенный белый список."
},
"login": {
"description": "Пожалуйста, введите данные вашей учетной записи для входа.",
"forgotPassword": "Забыли пароль?",
"success": "Вход выполнен успешно!",
"switchAccount": "Регистрация/Сменить аккаунт",
"title": "Вход"
},
"logout": "Выйти из системы",
"orWithEmail": "или с помощью электронной почты",
"register": {
"description": "Создайте новый аккаунт, заполните свои данные для регистрации.",
"existingAccount": "Уже есть аккаунт?",
"get": "Получить",
"invite": "Код приглашения",
"message": "#### Уважаемый пользователь!\n\nБлагодарим вас за интерес и поддержку. В связи с изменением стратегии работы сайта, мы закрыли функцию регистрации новых пользователей. В этот период использование существующими пользователями не будет затронуто.\n\nМы стремимся предоставить вам лучший сервис и опыт, поэтому в период закрытия регистрации будет проведена полная оптимизация системы и обновление функций. В будущем мы встретим вас с более качественным контентом и услугами.\n\nПожалуйста, следите за нашим сайтом и социальными сетями, чтобы получать последние новости и уведомления. Благодарим за ваше понимание и поддержку.\n\nЕсли у вас есть вопросы или нужна помощь, пожалуйста, свяжитесь с нашей службой поддержки.\n\n**Еще раз благодарим за вашу поддержку и понимание.**",
"passwordMismatch": "Введенные пароли не совпадают",
"success": "Регистрация успешна, вы автоматически вошли в систему!",
"switchToLogin": "Войти/Сбросить почту",
"title": "Регистрация"
},
"reset": {
"description": "Пожалуйста, введите ваш адрес электронной почты, чтобы сбросить пароль.",
"existingAccount": "Уже есть аккаунт?",
"get": "Получить",
"success": "Пароль успешно сброшен, автоматически переключено на вход!",
"switchToLogin": "Вход/Регистрация",
"title": "Сброс пароля"
},
"tos": "Условия обслуживания"
}
+60
View File
@@ -0,0 +1,60 @@
{
"billing": {
"description": "Спонсорство помогает PPanel продолжать выпускать обновления!",
"title": "Спонсоры"
},
"empty": [
"Представьте, что здесь полно удивительного контента! Пока что только воображение…",
"Эта область таинственно исчезла, мы пытаемся вернуть её обратно!",
"Ой, ничего не произошло… может, вы что-то добавите сами!",
"Это как на концерте обнаружить, что на сцене никого нет… может, вы хотите выступить?",
"Вы нашли пустую землю! Хотите построить дом?",
"Здесь пока ничего нет, но именно здесь начинается творчество!",
"Ничего нет… но не волнуйтесь, это только начало!",
"Здесь был приготовлен большой сюрприз, но он ускользнул!",
"Пока ничего нет, как будто шкаф со сладостями опустел.",
"Эта пустая площадка ждёт своего главного героя!"
],
"request": {
"10001": "Запрос пока не удался, пожалуйста, повторите попытку позже или проверьте ваши условия.",
"10002": "Операция обновления не удалась, пожалуйста, попробуйте позже.",
"10003": "Вставка временно невозможна, пожалуйста, попробуйте позже.",
"10004": "Удаление не удалось, пожалуйста, попробуйте позже.",
"20001": "Информация о пользователе уже существует, пожалуйста, измените данные и попробуйте снова.",
"20002": "Пользователь не найден, пожалуйста, проверьте информацию и попробуйте снова.",
"20003": "Введённый вами пароль неверен, пожалуйста, введите его снова.",
"20004": "Пользователь заблокирован, если у вас есть вопросы, пожалуйста, свяжитесь с поддержкой.",
"20005": "Недостаточно средств, пожалуйста, пополните баланс и попробуйте снова.",
"20006": "Регистрация временно недоступна, пожалуйста, попробуйте позже.",
"30001": "Узел уже существует, пожалуйста, не добавляйте его повторно.",
"30002": "Связанный узел не найден, пожалуйста, проверьте и попробуйте снова.",
"30003": "Группа уже существует, пожалуйста, попробуйте использовать другое название.",
"30004": "Группа не найдена, пожалуйста, проверьте информацию и попробуйте снова.",
"30005": "В группе всё ещё есть содержимое, пожалуйста, очистите её и попробуйте снова.",
"400": "Параметры запроса некорректны, пожалуйста, проверьте и отправьте снова.",
"40002": "Действительный токен не найден, пожалуйста, войдите в систему и попробуйте снова.",
"40003": "Текущий токен недействителен, пожалуйста, получите новый и попробуйте снова.",
"40004": "Срок действия токена истёк, пожалуйста, войдите в систему снова.",
"40005": "У вас нет доступа, если у вас есть вопросы, пожалуйста, свяжитесь с администратором.",
"401": "Слишком частые запросы, пожалуйста, попробуйте позже.",
"500": "Сервер столкнулся с проблемами, пожалуйста, попробуйте позже.",
"50001": "Информация о купоне не найдена, пожалуйста, проверьте и попробуйте снова.",
"50002": "Купон уже использован, повторное использование невозможно.",
"60001": "Подписка истекла, пожалуйста, продлите её и используйте снова.",
"60002": "Подписка временно недоступна, пожалуйста, попробуйте позже.",
"70001": "Код подтверждения неверен, пожалуйста, введите его снова.",
"80001": "Задача не была успешно добавлена в очередь, пожалуйста, попробуйте позже.",
"90001": "Пожалуйста, отключите режим DEBUG и попробуйте снова.",
"undefined": "Произошла ошибка в системе, пожалуйста, попробуйте позже."
},
"table": {
"actions": "Действия",
"asc": "По возрастанию",
"desc": "По убыванию",
"hide": "Скрыть",
"pageInfo": "Страница {current} из {total}",
"rowsPerPage": "Строк на странице",
"selectedItems": "Выбрано {total} строк"
},
"unlimited": "неограниченный"
}
+50
View File
@@ -0,0 +1,50 @@
{
"actions": "действия",
"amount": "сумма",
"cancel": "Отмена",
"code": "код",
"confirm": "Подтвердить",
"confirmDelete": "Вы уверены, что хотите удалить?",
"count": "количество",
"couponList": "Список купонов",
"create": "Создать",
"createCoupon": "Создать купон",
"createSuccess": "Создание успешно",
"delete": "Удалить",
"deleteSuccess": "Удаление успешно",
"deleteWarning": "После удаления данные не могут быть восстановлены. Пожалуйста, действуйте осторожно.",
"discount": "скидка",
"edit": "редактировать",
"editCoupon": "Редактировать купон",
"enable": "Включить",
"form": {
"amountDiscount": "Скидка на сумму",
"cancel": "Отмена",
"confirm": "Подтвердить",
"count": "Максимальное количество использований",
"countPlaceholder": "Максимальное количество использований (оставьте пустым для неограниченного)",
"customCouponCode": "Пользовательский код купона",
"customCouponCodePlaceholder": "Пользовательский код купона (оставьте пустым для автоматической генерации)",
"enterCouponName": "Введите название купона",
"enterValue": "Введите значение",
"expireTime": "Время истечения",
"name": "Название",
"percentageDiscount": "Скидка в процентах",
"selectServer": "Пожалуйста, выберите подписку",
"selectTime": "Выберите время",
"specifiedServer": "Указанная подписка",
"startTime": "Время начала действия",
"type": "Тип купона",
"userLimit": "Максимальное количество использований на пользователя",
"userLimitPlaceholder": "Максимальное количество использований на пользователя (оставьте пустым для неограниченного)"
},
"name": "название",
"percentage": "процент",
"remainingTimes": "Осталось",
"subscribe": "Подписаться",
"type": "Тип",
"unlimited": "неограниченный",
"updateSuccess": "Обновление успешно",
"usedTimes": "Количество использований",
"validityPeriod": "Срок действия"
}
+29
View File
@@ -0,0 +1,29 @@
{
"DocumentList": "Список документов",
"actions": "Действия",
"cancel": "Отмена",
"confirm": "Подтвердить",
"confirmDelete": "Вы уверены, что хотите удалить?",
"create": "Создать",
"createDocument": "Создать документ",
"createSuccess": "Создание успешно",
"delete": "Удалить",
"deleteDescription": "После удаления данные не могут быть восстановлены. Пожалуйста, действуйте осторожно.",
"deleteSuccess": "Удаление успешно",
"edit": "редактировать",
"editDocument": "Редактировать документ",
"form": {
"cancel": "Отмена",
"confirm": "Подтвердить",
"content": "Содержание",
"tags": "Категории",
"tagsPlaceholder": "Пожалуйста, используйте клавишу Enter или запятую (,) для разделения и ввода нескольких категорий",
"title": "Заголовок",
"titlePlaceholder": "Пожалуйста, введите"
},
"show": "Показать",
"tags": "Категории",
"title": "Заголовок",
"updateSuccess": "Обновление успешно",
"updatedAt": "Обновлено в"
}
+29
View File
@@ -0,0 +1,29 @@
{
"email": "Электронная почта",
"month": "Этот месяц",
"monthDownloadTraffic": "Трафик загрузки за месяц",
"monthUploadTraffic": "Трафик загрузки за этот месяц",
"newPurchase": "Новая покупка",
"nodeTraffic": "Трафик узла",
"nodes": "узлы",
"offlineNodeCount": "Количество офлайн-узлов",
"onlineIPCount": "Количество онлайн IP",
"onlineNodeCount": "Количество онлайн-узлов",
"pendingTickets": "Ожидающие заявки",
"register": "Регистрация",
"repurchase": "повторная покупка",
"revenueTitle": "Статистика доходов",
"selectTypePlaceholder": "Выберите тип",
"statisticsTitle": "Статистика",
"today": "Сегодня",
"todayDownloadTraffic": "Сегодняшний трафик загрузки",
"todayUploadTraffic": "Сегодняшний объем загруженного трафика",
"total": "Итого",
"totalIncome": "Общий доход",
"trafficRank": "Рейтинг трафика",
"type": "Тип",
"userTitle": "Статистика пользователей",
"userTraffic": "Пользовательский трафик",
"users": "пользователи",
"yesterday": "вчера"
}
+24
View File
@@ -0,0 +1,24 @@
{
"cs-CZ": "Чешский",
"de-DE": "Немецкий",
"en-US": "английский",
"es-ES": "испанский",
"es-MX": "испанский (Мексика)",
"fi-FI": "финский",
"fr-FR": "Французский",
"hi-IN": "хинди",
"hu-HU": "Венгерский",
"ja-JP": "японский",
"ko-KR": "Корейский",
"no-NO": "Норвежский",
"pl-PL": "польский",
"pt-BR": "португальский (Бразилия)",
"ro-RO": "румынский",
"ru-RU": "Русский",
"th-TH": "тайский",
"tr-TR": "Турецкий",
"uk-UA": "Украинский",
"vi-VN": "вьетнамский",
"zh-CN": "Китайский (упрощенный)",
"zh-TW": "китайский (традиционный)"
}
+18
View File
@@ -0,0 +1,18 @@
{
"Announcement Management": "Управление объявлениями",
"Coupon Management": "Управление купонами",
"Dashboard": "Панель управления",
"Document Management": "Управление документами",
"Finance": "Финансы",
"Order Management": "Управление заказами",
"Payment Config": "Настройки оплаты",
"Server": "Сервер",
"Server Management": "Управление сервером",
"Settings": "Настройки",
"Subscribe Management": "Управление подписками",
"System Config": "Системная конфигурация",
"System Tool": "Системные инструменты",
"Ticket Management": "Управление заявками",
"User": "Пользователь",
"User Management": "Управление пользователями"
}
+37
View File
@@ -0,0 +1,37 @@
{
"amount": "Сумма",
"couponDiscount": "Скидка по купону",
"discount": "Сумма скидки",
"failed": "Неудача",
"feeAmount": "Комиссия",
"method": "Способ оплаты",
"methods": {
"alipay_f2f": "Alipay(лицом к лицу)",
"balance": "Баланс",
"epay": "Epay",
"stripe_alipay": "Stripe(Alipay)",
"stripe_wechat_pay": "Stripe(WeChat)"
},
"orderNumber": "Номер заказа",
"status": {
"0": "Статус",
"1": "Ожидает оплаты",
"2": "Оплачено",
"3": "Отменено",
"4": "Закрыто",
"5": "Завершено"
},
"subscribe": "Подписаться",
"subscribePrice": "Цена подписки",
"total": "Итого",
"tradeNo": "Номер транзакции",
"type": {
"0": "Тип",
"1": "Новая покупка",
"2": "Продление",
"3": "Сброс трафика",
"4": "Пополнение"
},
"updateTime": "Время обновления",
"user": "пользователь"
}
+44
View File
@@ -0,0 +1,44 @@
{
"aliPay": "Оплата через Alipay",
"alipayf2f": {
"appId": "ID приложения Alipay",
"invoiceName": "Пользовательское название продукта",
"invoiceNameDescription": "Будет отображаться в счете Alipay",
"privateKey": "Приватный ключ Alipay",
"publicKey": "Публичный ключ Alipay",
"sandbox": "Режим песочницы",
"sandboxDescription": "Включите режим песочницы для тестирования платежей"
},
"enable": "Включить",
"enableDescription": "Включить этот способ оплаты",
"epay": {
"key": "КЛЮЧ",
"pid": "PID",
"url": "URL"
},
"feeMode": "Способ оплаты",
"feeModeDescription": "Способ взимания дополнительной комиссии",
"feeModeItems": ["Без комиссии", "Процент", "Фиксированная сумма", "Оба вышеуказанных"],
"feePercent": "Процентная комиссия (необязательно)",
"feePercentDescription": "Добавление комиссии к сумме заказа",
"fixedFee": "Фиксированная плата (по желанию)",
"fixedFeeDescription": "Добавление фиксированной платы к сумме заказа",
"iconUrl": "URL значка (необязательно)",
"iconUrlDescription": "Используется для отображения на фронтенде",
"inputPlaceholder": "Пожалуйста, введите",
"key": "КЛЮЧ",
"notifyUrl": "Пользовательский домен уведомлений (необязательно)",
"notifyUrlDescription": "Уведомление шлюза будет отправлено на этот домен",
"payForRecommendations": "Оплатить рекомендации",
"pid": "PID",
"saveSuccess": "Сохранение успешно",
"showName": "Показать имя",
"showNameDescription": "Используется для отображения на фронтенде",
"stripe": {
"publicKey": "ОТКРЫТЫЙ КЛЮЧ",
"secretKey": "СЕКРЕТНЫЙ КЛЮЧ",
"webhookSecret": "СЕКРЕТ ПОДПИСИ ВЕБХУКА"
},
"url": "URL",
"wechatPay": "WeChat Pay"
}
+122
View File
@@ -0,0 +1,122 @@
{
"group": {
"actions": "Действия",
"cancel": "Отмена",
"confirm": "Подтвердить",
"confirmDelete": "Вы уверены, что хотите удалить?",
"create": "Создать",
"createNodeGroup": "Создать группу узлов",
"createdSuccessfully": "Успешно создано",
"delete": "Удалить",
"deleteWarning": "После удаления данные не могут быть восстановлены, пожалуйста, будьте осторожны.",
"deletedSuccessfully": "Успешно удалено",
"description": "Описание",
"edit": "Редактировать",
"editNodeGroup": "Редактировать группу узлов",
"form": {
"cancel": "Отмена",
"confirm": "Подтвердить",
"description": "Описание",
"name": "Название"
},
"name": "Название",
"title": "Список групп узлов",
"updatedAt": "Время обновления"
},
"node": {
"abnormal": "Аномалия",
"actions": "Действия",
"address": "Адрес",
"all": "Все",
"cancel": "Отмена",
"confirm": "Подтвердить",
"confirmDelete": "Вы уверены, что хотите удалить?",
"create": "Создать",
"createNode": "Создать узел",
"createSuccess": "Успешно создано",
"delete": "Удалить",
"deleteSuccess": "Успешно удалено",
"deleteWarning": "После удаления данные не могут быть восстановлены. Пожалуйста, будьте осторожны.",
"disk": "Диск",
"edit": "Редактировать",
"editNode": "Редактировать узел",
"enable": "Включить",
"form": {
"allowInsecure": "Разрешить небезопасное",
"cancel": "Отмена",
"confirm": "Подтвердить",
"edit": "Редактировать",
"editSecurity": "Редактировать настройки безопасности",
"enableRelay": "Включить реле",
"enableTLS": "Включить TLS",
"encryptionMethod": "Метод шифрования",
"flow": "Алгоритм управления потоком",
"hopInterval": "Интервал прыжка",
"hopPorts": "Порты прыжка",
"hopPortsPlaceholder": "Несколько портов разделяются запятыми",
"name": "Имя",
"nodeGroupId": "ID группы узлов",
"obfsPassword": "Пароль обфускации",
"obfsPasswordPlaceholder": "Оставьте пустым для отсутствия обфускации",
"path": "Путь",
"pleaseSelect": "Пожалуйста, выберите",
"port": "Порт сервера",
"protocol": "Протокол",
"relayHost": "Адрес реле",
"relayPort": "Порт реле",
"remarks": "Примечания",
"security": "Безопасность",
"securityConfig": "Настройки безопасности",
"security_config": {
"fingerprint": "Отпечаток пальца",
"privateKey": "Закрытый ключ",
"privateKeyPlaceholder": "Оставьте пустым для автоматической генерации",
"publicKey": "Открытый ключ",
"publicKeyPlaceholder": "Оставьте пустым для автоматической генерации",
"serverAddress": "Адрес сервера",
"serverAddressPlaceholder": "Адрес цели REALITY, по умолчанию используется SNI",
"serverName": "Имя сервера (SNI)",
"serverNamePlaceholder": "Обязательно для REALITY, должно совпадать с бэкендом",
"serverPort": "Порт сервера",
"serverPortPlaceholder": "Порт цели REALITY, по умолчанию 443",
"shortId": "Короткий ID",
"shortIdPlaceholder": "Оставьте пустым для автоматической генерации",
"sni": "Индикатор имени сервера (SNI)"
},
"selectEncryptionMethod": "Выберите метод шифрования",
"selectNodeGroup": "Выберите группу узлов",
"selectProtocol": "Выберите протокол",
"serverAddr": "Адрес сервера",
"serverName": "Имя сервера",
"speedLimit": "Ограничение скорости",
"speedLimitPlaceholder": "Без ограничений",
"trafficRatio": "Коэффициент трафика",
"transport": "Транспортный протокол",
"transportConfig": "Настройки транспортного протокола",
"transportHost": "Адрес транспортного сервиса",
"transportPath": "Транспортный путь",
"transportServerName": "Имя транспортного сервиса"
},
"lastUpdated": "Последнее обновление",
"memory": "Память",
"name": "Имя",
"node": "Узел",
"nodeGroup": "Группа узлов",
"normal": "Нормально",
"onlineCount": "Количество онлайн",
"onlineUsers": "Онлайн пользователи",
"rate": "Скорость",
"relay": "Реле",
"serverAddr": "Адрес сервера",
"speedLimit": "Ограничение скорости",
"status": "Статус",
"trafficRatio": "Коэффициент трафика",
"type": "Тип",
"updateSuccess": "Успешно обновлено",
"updatedAt": "Время обновления"
},
"tabs": {
"node": "Узел",
"nodeGroup": "Группа узлов"
}
}
+79
View File
@@ -0,0 +1,79 @@
{
"actions": "действия",
"cancel": "Отмена",
"confirm": "Подтвердить",
"confirmDelete": "Вы уверены, что хотите удалить?",
"create": "Создать",
"createSubscribe": "Создать подписку",
"createSuccess": "Создание успешно",
"delete": "Удалить",
"deleteSuccess": "Удаление успешно",
"deleteWarning": "После удаления данные не могут быть восстановлены, пожалуйста, действуйте осторожно.",
"deviceLimit": "Количество устройств/шт",
"edit": "редактировать",
"editSubscribe": "Редактировать подписку",
"form": {
"cancel": "Отмена",
"confirm": "Подтвердить",
"description": "Описание",
"deviceLimit": "Ограничение устройств",
"discount": "Скидка",
"discountDescription": "Установить скидку на основе цены за единицу",
"discountMonths": "месяцев",
"discountPercent": "Процент скидки",
"discount_price": "Цена со скидкой",
"duration": "Продолжительность (месяцы)",
"inventory": "Инвентарь",
"name": "Название",
"noLimit": "Без ограничений",
"quota": "Лимит покупки",
"replacement": "Цена замены (за раз)",
"selectSubscribeGroup": "Пожалуйста, выберите группу подписки",
"server": "Сервер",
"serverGroup": "Группа серверов",
"speedLimit": "Ограничение скорости (Мбит/с)",
"subscribeGroup": "Группа подписки",
"traffic": "Трафик",
"unit_price": "Цена за месяц"
},
"group": {
"actions": "Действия",
"cancel": "Отмена",
"confirm": "Подтвердить",
"confirmDelete": "Вы уверены, что хотите удалить?",
"create": "Создать",
"createSubscribeGroup": "Создать новую группу подписок",
"createSuccess": "Успешно создано",
"delete": "Удалить",
"deleteSuccess": "Успешно удалено",
"deleteWarning": "После удаления данные не могут быть восстановлены, пожалуйста, будьте осторожны.",
"description": "Описание",
"edit": "Редактировать",
"editSubscribeGroup": "Редактировать группу подписок",
"form": {
"cancel": "Отмена",
"confirm": "Подтвердить",
"description": "Описание",
"name": "Название"
},
"name": "Название",
"title": "Список групп подписок",
"updateSuccess": "Успешно обновлено",
"updatedAt": "Время обновления"
},
"inventory": "инвентарь",
"name": "название",
"quota": "Лимит/раз",
"replacement": "Сбросить цену/раз",
"sell": "Продажа",
"show": "Показать на главной странице",
"subscribe": "Подписаться",
"subscribeGroup": "Подписаться на группу",
"tabs": {
"subscribe": "Подписаться",
"subscribeGroup": "Группа подписок"
},
"traffic": "трафик",
"unitPrice": "Цена/месяц",
"updateSuccess": "Обновление успешно"
}
+156
View File
@@ -0,0 +1,156 @@
{
"currency": {
"accessKey": "Ключ доступа",
"accessKeyDescription": "https://exchangerate.host предоставляет бесплатный API-ключ для обменных курсов",
"currencySymbol": "Символ валюты",
"currencySymbolDescription": "Используется только для отображения, после изменения все валютные единицы в системе будут изменены",
"currencyUnit": "Валютная единица",
"currencyUnitDescription": "Используется только для отображения, после изменения все валютные единицы в системе будут изменены",
"saveSuccess": "Успешно сохранено"
},
"email": {
"expiration_email_template": "Шаблон уведомления об истечении срока",
"expiration_email_templateDescription": "Переменные {after}.имя_переменной{before} в шаблоне будут заменены фактическими данными, пожалуйста, убедитесь, что эти переменные сохранены.",
"inputPlaceholder": "Пожалуйста, введите содержимое...",
"maintenance_email_template": "Шаблон уведомления о техническом обслуживании",
"maintenance_email_templateDescription": "Переменные {after}.имя_переменной{before} в шаблоне будут заменены фактическими данными, пожалуйста, убедитесь, что эти переменные сохранены.",
"saveSuccess": "Конфигурация успешно сохранена.",
"sendFailure": "Не удалось отправить тестовое письмо, пожалуйста, проверьте конфигурацию.",
"sendSuccess": "Тестовое письмо успешно отправлено.",
"sendTestEmail": "Отправить тестовое письмо",
"sendTestEmailDescription": "Отправьте тестовое письмо, чтобы проверить правильность конфигурации.",
"senderAddress": "Адрес отправителя",
"senderAddressDescription": "Адрес электронной почты, используемый по умолчанию для отправки писем.",
"smtpAccount": "Учетная запись SMTP",
"smtpAccountDescription": "Учетная запись электронной почты для аутентификации.",
"smtpEncryptionMethod": "Метод шифрования SMTP",
"smtpEncryptionMethodDescription": "Выберите, включать ли шифрование SSL/TLS.",
"smtpPassword": "Пароль SMTP",
"smtpPasswordDescription": "Пароль для этой учетной записи SMTP.",
"smtpServerAddress": "Адрес SMTP-сервера",
"smtpServerAddressDescription": "Укажите адрес сервера для отправки писем.",
"smtpServerPort": "Порт SMTP-сервера",
"smtpServerPortDescription": "Укажите номер порта для подключения к SMTP-серверу.",
"verify_email_template": "Шаблон письма для верификации",
"verify_email_templateDescription": "Переменные {after}.имя_переменной{before} в шаблоне будут заменены фактическими данными, пожалуйста, убедитесь, что эти переменные сохранены."
},
"invite": {
"commissionFirstTimeOnly": "Комиссия только за первую покупку",
"commissionFirstTimeOnlyDescription": "После активации комиссия начисляется только при первой оплате приглашённого. Вы можете настроить для каждого пользователя в управлении пользователями.",
"enableForcedInvite": "Включить обязательное приглашение",
"enableForcedInviteDescription": "После активации только приглашённые пользователи смогут зарегистрироваться",
"inputPlaceholder": "Пожалуйста, введите",
"inviteCommissionPercentage": "Процент комиссии за приглашение",
"inviteCommissionPercentageDescription": "Глобальный процент распределения комиссии по умолчанию. Вы можете настроить индивидуальный процент в управлении пользователями.",
"saveSuccess": "Успешно сохранено"
},
"node": {
"communicationKey": "Ключ связи",
"communicationKeyDescription": "Ключ для связи узла, чтобы гарантировать, что данные не будут перехвачены другими",
"inputPlaceholder": "Пожалуйста, введите",
"nodePullInterval": "Интервал извлечения узла",
"nodePullIntervalDescription": "Частота, с которой узел получает данные с панели (в секундах)",
"nodePushInterval": "Интервал отправки узла",
"nodePushIntervalDescription": "Частота, с которой узел отправляет данные на панель",
"saveSuccess": "Успешно сохранено"
},
"register": {
"emailSuffixWhitelist": "Белый список суффиксов электронной почты",
"emailSuffixWhitelistDescription": "После включения только электронные письма с суффиксами из списка смогут зарегистрироваться",
"emailVerification": "Подтверждение электронной почты",
"emailVerificationDescription": "После включения пользователям потребуется подтвердить свою электронную почту",
"ipRegistrationLimit": "Ограничение регистрации по IP",
"ipRegistrationLimitDescription": "После включения IP, соответствующие правилам, будут ограничены в регистрации. Обратите внимание, что из-за CDN или прокси-сервера определение IP может вызвать проблемы",
"penaltyTime": "Время наказания (в минутах)",
"penaltyTimeDescription": "Пользователь должен подождать, пока не истечет время наказания, чтобы зарегистрироваться снова",
"registrationLimitCount": "Лимит регистраций",
"registrationLimitCountDescription": "После достижения лимита регистраций включается наказание",
"saveSuccess": "Успешно сохранено",
"stopNewUserRegistration": "Остановить регистрацию новых пользователей",
"stopNewUserRegistrationDescription": "После включения никто не сможет зарегистрироваться",
"trialRegistration": "Пробная регистрация",
"trialRegistrationDescription": "Включите пробную регистрацию, сначала измените пробный пакет и продолжительность",
"whitelistSuffixes": "Суффиксы белого списка",
"whitelistSuffixesDescription": "Для проверки электронной почты при регистрации, по одному на строку",
"whitelistSuffixesPlaceholder": "Введите суффиксы электронной почты, по одному на строку"
},
"site": {
"logo": "ЛОГОТИП",
"logoDescription": "Используется для отображения места, где необходимо показать ЛОГОТИП",
"logoPlaceholder": "Введите URL-адрес ЛОГОТИПА, не заканчивайте на '/'",
"saveSuccess": "Успешно сохранено",
"siteDesc": "Описание сайта",
"siteDescDescription": "Используется для отображения места, где необходимо показать описание сайта",
"siteDescPlaceholder": "Введите описание сайта",
"siteDomain": "Домен сайта",
"siteDomainDescription": "Доменный адрес текущего сайта, например, для использования в электронной почте",
"siteDomainPlaceholder": "Введите доменный адрес, по одному домену на строку",
"siteName": "Название сайта",
"siteNameDescription": "Используется для отображения места, где необходимо показать название сайта",
"siteNamePlaceholder": "Введите название сайта"
},
"subscription": {
"add": "Добавить",
"app": "Приложение",
"appDescription": "Настройте адрес загрузки приложения и правила импорта, не забудьте сохранить изменения",
"appDownloadURL": "URL загрузки приложения",
"appIcon": "Иконка приложения",
"appName": "Название приложения",
"delete": "Удалить",
"reset": "Сбросить",
"save": "Сохранить",
"saveSuccess": "Успешно сохранено",
"singleSubscriptionMode": "Режим единой подписки",
"singleSubscriptionModeDescription": "При включении все пакеты пользователей будут преобразованы в баланс",
"subscriptionDomain": "Домен подписки",
"subscriptionDomainDescription": "Используется для подписки, если оставить пустым, будет использоваться домен сайта",
"subscriptionDomainPlaceholder": "Введите домен подписки, для нескольких доменов используйте новую строку для каждого",
"subscriptionPath": "Путь подписки",
"subscriptionPathDescription": "Используется для подписки, после изменения обязательно перезапустите систему для обеспечения наилучшей производительности",
"subscriptionPathPlaceholder": "Введите",
"subscriptionProtocol": "Протокол подписки",
"wildcardResolution": "Разрешение подстановочных знаков",
"wildcardResolutionDescription": "Используется для подписки"
},
"tabs": {
"currency": "Валюта",
"email": "Электронная почта",
"invite": "Пригласить",
"node": "Узел",
"register": "Регистрация",
"site": "Сайт",
"subscription": "Подписка",
"telegram": "Telegram",
"tos": "Условия обслуживания",
"verify": "Проверка"
},
"telegram": {
"botToken": "Токен бота",
"botTokenDescription": "Пожалуйста, введите токен, предоставленный Botfather",
"enableBotNotifications": "Включить уведомления бота",
"enableBotNotificationsDescription": "После включения бот будет отправлять основные уведомления администраторам и пользователям, связанным с Telegram",
"groupURL": "URL группы",
"groupURLDescription": "После заполнения будет отображаться на стороне пользователя или использоваться там, где это необходимо",
"inputPlaceholderBotToken": "0000000000:xxxxxxxxx_xxxxxxxxxxxxxxx",
"inputPlaceholderGroupURL": "https://t.me/xxxxxx",
"saveSuccess": "Успешно сохранено"
},
"tos": {
"saveSuccess": "Сохранение успешно",
"title": "Условия обслуживания"
},
"verify": {
"inputPlaceholder": "Пожалуйста, введите",
"loginVerificationCode": "Код верификации для входа",
"loginVerificationCodeDescription": "Проверка человека при входе",
"registrationVerificationCode": "Код верификации для регистрации",
"registrationVerificationCodeDescription": "Проверка человека при регистрации",
"resetPasswordVerificationCode": "Код верификации для сброса пароля",
"resetPasswordVerificationCodeDescription": "Проверка человека при сбросе пароля",
"saveSuccess": "Успешно сохранено",
"turnstileSecret": "Секретный ключ Turnstile",
"turnstileSecretDescription": "Секретный ключ Turnstile, предоставленный Cloudflare",
"turnstileSiteKey": "Ключ сайта Turnstile",
"turnstileSiteKeyDescription": "Ключ сайта Turnstile, предоставленный Cloudflare"
}
}
+19
View File
@@ -0,0 +1,19 @@
{
"actions": "действия",
"cancel": "Отмена",
"check": "Проверить",
"close": "Закрыть",
"closeSuccess": "Закрытие успешно",
"closeWarning": "После закрытия дальнейшие действия с этим заказом будут невозможны. Пожалуйста, будьте осторожны.",
"confirm": "Подтвердить",
"confirmClose": "Вы уверены, что хотите закрыть?",
"createdAt": "Время создания",
"inputPlaceholder": "Пожалуйста, введите ваш вопрос, и мы ответим вам как можно скорее.",
"open": "открыть",
"reply": "ответ",
"status": ["Статус", "Ожидает внимания", "Ожидает ответа", "Обработано", "Закрыто"],
"ticketList": "Список заявок",
"title": "Заголовок",
"updatedAt": "Обновлено в",
"user": "пользователь"
}
+26
View File
@@ -0,0 +1,26 @@
{
"caller": "Звонящий",
"cancel": "Отмена",
"confirmReboot": "Подтвердите перезагрузку",
"confirmSystemReboot": "Подтвердите перезагрузку системы",
"confirmSystemUpgrade": "Подтвердить обновление системы",
"confirmUpgrade": "Подтвердить обновление",
"currentVersion": "Текущая версия системы:",
"errors": "Ошибки",
"ip": "IP",
"lastUpdated": "Последнее обновление:",
"none": "Нет",
"query": "Запрос",
"rebootDescription": "Вы уверены, что хотите перезагрузить систему? Это действие приведет к кратковременному прерыванию обслуживания.",
"rebooting": "Перезагрузка системы...",
"refreshLogs": "Обновить журналы",
"request": "Запрос",
"status": "Статус",
"systemLogs": "Системные журналы",
"systemReboot": "Перезагрузка системы",
"systemServices": "Системные службы",
"systemUpgrade": "Обновление системы",
"upgradeDescription": "Вы уверены, что хотите выполнить обновление системы? Эта операция может занять несколько минут, в течение которых система может не отвечать.",
"userAgent": "Пользовательский агент",
"viewLogsAndManage": "Просмотр системных журналов, выполнение обновлений и перезагрузка системы"
}
+38
View File
@@ -0,0 +1,38 @@
{
"actions": "действия",
"balance": "Баланс",
"cancel": "Отмена",
"confirm": "Подтвердить",
"confirmDelete": "Вы уверены, что хотите удалить?",
"create": "Создать",
"createSuccess": "Создание успешно",
"createUser": "Создать пользователя",
"createdAt": "Время регистрации",
"delete": "Удалить",
"deleteDescription": "После удаления данные не могут быть восстановлены, пожалуйста, действуйте осторожно.",
"deleteSuccess": "Удаление успешно",
"edit": "редактировать",
"editUser": "Редактировать пользователя",
"email": "Электронная почта",
"enable": "Включить",
"form": {
"balance": "Баланс",
"balancePlaceholder": "Баланс",
"cancel": "Отмена",
"confirm": "Подтвердить",
"invalidEmailFormat": "Недопустимый формат электронной почты",
"inviteCode": "Код приглашения",
"inviteCodePlaceholder": "Введите код приглашения (оставьте пустым для автоматической генерации)",
"manager": "Администратор",
"password": "Пароль",
"passwordPlaceholder": "Введите новый пароль (можно оставить пустым)",
"refererId": "ID рекомендателя",
"refererIdPlaceholder": "Введите ID рекомендателя",
"userEmail": "Электронная почта пользователя",
"userEmailPlaceholder": "Введите электронную почту пользователя"
},
"referer": "Реферер",
"updateSuccess": "Обновление успешно",
"userList": "Список пользователей",
"userName": "Электронная почта пользователя"
}