✨ feat(locales): Add multiple languages
This commit is contained in:
@@ -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": "Обновлено"
|
||||
}
|
||||
@@ -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": "Условия обслуживания"
|
||||
}
|
||||
@@ -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": "неограниченный"
|
||||
}
|
||||
@@ -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": "Срок действия"
|
||||
}
|
||||
@@ -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": "Обновлено в"
|
||||
}
|
||||
@@ -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": "вчера"
|
||||
}
|
||||
@@ -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": "китайский (традиционный)"
|
||||
}
|
||||
@@ -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": "Управление пользователями"
|
||||
}
|
||||
@@ -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": "пользователь"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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": "Группа узлов"
|
||||
}
|
||||
}
|
||||
@@ -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": "Обновление успешно"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"actions": "действия",
|
||||
"cancel": "Отмена",
|
||||
"check": "Проверить",
|
||||
"close": "Закрыть",
|
||||
"closeSuccess": "Закрытие успешно",
|
||||
"closeWarning": "После закрытия дальнейшие действия с этим заказом будут невозможны. Пожалуйста, будьте осторожны.",
|
||||
"confirm": "Подтвердить",
|
||||
"confirmClose": "Вы уверены, что хотите закрыть?",
|
||||
"createdAt": "Время создания",
|
||||
"inputPlaceholder": "Пожалуйста, введите ваш вопрос, и мы ответим вам как можно скорее.",
|
||||
"open": "открыть",
|
||||
"reply": "ответ",
|
||||
"status": ["Статус", "Ожидает внимания", "Ожидает ответа", "Обработано", "Закрыто"],
|
||||
"ticketList": "Список заявок",
|
||||
"title": "Заголовок",
|
||||
"updatedAt": "Обновлено в",
|
||||
"user": "пользователь"
|
||||
}
|
||||
@@ -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": "Просмотр системных журналов, выполнение обновлений и перезагрузка системы"
|
||||
}
|
||||
@@ -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": "Электронная почта пользователя"
|
||||
}
|
||||
Reference in New Issue
Block a user