♻️ refactor(view): System and Auth Control

This commit is contained in:
web
2025-08-04 08:58:57 -07:00
committed by speakeloudest
parent 9ba3ec40d6
commit 97aa24ba8e
333 changed files with 13905 additions and 9399 deletions
-16
View File
@@ -1,16 +0,0 @@
{
"clientId": "Идентификатор услуги",
"clientIdDescription": "Apple Service ID, вы можете получить его на портале разработчиков Apple",
"clientSecret": "Приватный ключ",
"clientSecretDescription": "Содержимое закрытого ключа (.p8 файл), используемого для аутентификации с Apple",
"enable": "Включить",
"enableDescription": "После включения пользователи смогут входить с помощью своего Apple ID",
"keyId": "Идентификатор ключа",
"keyIdDescription": "Идентификатор вашего закрытого ключа из Apple Developer Portal",
"redirectUri": "URL перенаправления",
"redirectUriDescription": "Пожалуйста, укажите адрес API перенаправленного URL после успешной аутентификации через Apple. Не используйте / в конце.",
"saveFailed": "Не удалось сохранить",
"saveSuccess": "Сохранение успешно",
"teamId": "ID команды",
"teamIdDescription": "Идентификатор команды разработчиков Apple"
}
+188 -56
View File
@@ -1,14 +1,149 @@
{
"invite": {
"commissionFirstTimeOnly": "Комиссия только за первую покупку",
"commissionFirstTimeOnlyDescription": "При включении комиссия начисляется только за первый платеж пригласившего; вы можете настроить отдельных пользователей в управлении пользователями",
"enableForcedInvite": "Включить принудительное приглашение",
"enableForcedInviteDescription": "При включении только приглашенные пользователи могут зарегистрироваться",
"inputPlaceholder": "Введите",
"inviteCommissionPercentage": "Процент комиссии за приглашение",
"inviteCommissionPercentageDescription": "Стандартное глобальное соотношение распределения комиссии; вы можете настроить индивидуальные соотношения в управлении пользователями",
"inviteSettings": "Настройки приглашения",
"saveSuccess": "Сохранение успешно"
"apple": {
"clientId": "Идентификатор услуги",
"clientIdDescription": "Apple Service ID, вы можете получить его на портале разработчиков Apple",
"clientSecret": "Приватный ключ",
"clientSecretDescription": "Содержимое закрытого ключа (.p8 файл), используемого для аутентификации с Apple",
"description": "Аутентификация пользователей с помощью учетных записей Apple",
"enable": "Включить",
"enableDescription": "После включения пользователи смогут входить с помощью своего Apple ID",
"keyId": "Идентификатор ключа",
"keyIdDescription": "Идентификатор вашего закрытого ключа из Apple Developer Portal",
"redirectUri": "URL перенаправления",
"redirectUriDescription": "Пожалуйста, укажите адрес API перенаправленного URL после успешной аутентификации через Apple. Не используйте / в конце.",
"teamId": "ID команды",
"teamIdDescription": "Идентификатор команды разработчиков Apple",
"title": "Вход с Apple"
},
"common": {
"cancel": "Отмена",
"save": "Сохранить",
"saveFailed": "Ошибка сохранения",
"saveSuccess": "Успешно сохранено"
},
"communicationMethods": "Communication Methods",
"device": {
"blockVirtualMachine": "Блокировать виртуальную машину",
"blockVirtualMachineDescription": "При включении устройства не смогут работать на виртуальных машинах или эмуляторах",
"communicationKey": "Ключ связи",
"communicationKeyDescription": "Ключ связи используется для безопасной связи между устройствами и серверами",
"description": "Аутентификация пользователей с помощью идентификаторов устройств",
"enable": "Включить",
"enableDescription": "После включения поддерживаются несколько идентификаторов устройств, таких как IMEI/IDFA/IDFV/AndroidID/Mac-адрес для входа и регистрации",
"enableSecurity": "Включить шифрование связи",
"enableSecurityDescription": "При включении связь между устройствами и серверами будет зашифрована",
"showAds": "Показать рекламу",
"showAdsDescription": "При включении реклама будет отображаться на устройствах",
"title": "Аутентификация устройства"
},
"deviceAuthMethods": "Device Authentication Methods",
"email": {
"basicSettings": "Основные настройки",
"description": "Аутентификация пользователей с помощью адресов электронной почты",
"emailSuffixWhitelist": "Белый список суффиксов электронной почты",
"emailSuffixWhitelistDescription": "Когда включено, только электронные письма с суффиксами из списка могут регистрироваться",
"emailVerification": "Подтверждение электронной почты",
"emailVerificationDescription": "Когда включено, пользователям необходимо будет подтвердить свой адрес электронной почты",
"enable": "Включить",
"enableDescription": "После включения будут активированы функции регистрации по электронной почте, входа в систему, привязки и отвязки.",
"expirationEmailTemplate": "Шаблон уведомления о истечении срока",
"expirationTemplate": "Уведомление о истечении срока",
"inputPlaceholder": "Введите значение...",
"logs": "Журналы",
"logsDescription": "Просмотр истории отправленных писем и их статуса",
"maintenanceEmailTemplate": "Шаблон уведомления о техническом обслуживании",
"maintenanceTemplate": "Уведомление о техническом обслуживании",
"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-серверу.",
"smtpSettings": "Настройки SMTP",
"templateVariables": {
"code": {
"description": "6-значный код подтверждения",
"title": "Код подтверждения"
},
"expire": {
"description": "Время действия кода подтверждения (минуты)",
"title": "Срок действия"
},
"expireDate": {
"description": "Дата истечения услуги, напоминает пользователям о сроке действия услуги",
"title": "Дата истечения"
},
"maintenanceDate": {
"description": "Дата технического обслуживания системы, отображает дату начала обслуживания",
"title": "Дата обслуживания"
},
"maintenanceTime": {
"description": "Ожидаемое время обслуживания, отображает период или продолжительность обслуживания",
"title": "Продолжительность обслуживания"
},
"siteLogo": {
"description": "URL-адрес изображения логотипа сайта",
"title": "Логотип сайта"
},
"siteName": {
"description": "Текущее название сайта",
"title": "Название сайта"
},
"title": "Переменные шаблона электронной почты",
"type": {
"conditionalSyntax": "Поддерживает условный синтаксис для переключения содержимого в зависимости от типа",
"description": "Идентификатор типа электронной почты, 1 для кода подтверждения регистрации, другие для кода подтверждения сброса пароля",
"title": "Тип электронной почты"
}
},
"title": "Аутентификация по электронной почте",
"trafficExceedEmailTemplate": "Шаблон уведомления о превышении трафика",
"trafficTemplate": "Ограничение трафика",
"verifyEmailTemplate": "Шаблон письма для подтверждения",
"verifyTemplate": "Письмо для подтверждения",
"whitelistSuffixes": "Белый список суффиксов",
"whitelistSuffixesDescription": "Используется для проверки электронной почты при регистрации; один на строку",
"whitelistSuffixesPlaceholder": "Введите суффиксы электронной почты, по одному на строку"
},
"facebook": {
"clientId": "ID клиента",
"clientIdDescription": "ID приложения Facebook из консоли разработчиков Facebook",
"clientSecret": "Секрет клиента",
"clientSecretDescription": "Секрет приложения Facebook из консоли разработчиков Facebook",
"description": "Аутентификация пользователей с помощью учетных записей Facebook",
"enable": "Включить",
"enableDescription": "После включения пользователи смогут входить в систему с помощью своей учетной записи Facebook",
"title": "Вход с Facebook"
},
"github": {
"clientId": "Идентификатор клиента GitHub",
"clientIdDescription": "Идентификатор клиента из настроек вашего OAuth-приложения на GitHub",
"clientSecret": "Секрет клиента GitHub",
"clientSecretDescription": "Секрет клиента из настроек вашего OAuth-приложения GitHub",
"description": "Аутентификация пользователей с помощью учетных записей GitHub",
"enable": "Включить аутентификацию через GitHub",
"enableDescription": "Разрешить пользователям входить в систему с помощью их учетных записей GitHub",
"title": "Вход с GitHub"
},
"google": {
"clientId": "ID клиента",
"clientIdDescription": "Идентификатор клиента Google OAuth 2.0 из консоли Google Cloud",
"clientSecret": "Секрет клиента",
"clientSecretDescription": "Секрет клиента Google OAuth 2.0 из консоли Google Cloud",
"description": "Аутентификация пользователей с помощью учетных записей Google",
"enable": "Включить",
"enableDescription": "После включения пользователи смогут входить в систему с помощью своей учетной записи Google",
"title": "Вход с Google"
},
"log": {
"content": "Содержимое",
@@ -23,52 +158,49 @@
"to": "Получатель",
"updatedAt": "Дата обновления"
},
"register": {
"day": ень",
"hour": "Час",
"ipRegistrationLimit": "Ограничение регистрации по IP",
"ipRegistrationLimitDescription": "При включении IP-адреса, соответствующие требованиям правила, будут ограничены в регистрации; обратите внимание, что определение IP может вызвать проблемы из-за CDN или прокси-серверов",
"minute": "Минута",
"month": "Месяц",
"noLimit": "Без ограничений",
"penaltyTime": "Время штрафа (минуты)",
"penaltyTimeDescription": "Пользователи должны подождать истечения времени штрафа перед повторной регистрацией",
"registerSettings": "Настройки регистрации",
"registrationLimitCount": "Количество ограничений на регистрацию",
"registrationLimitCountDescription": "Включить штраф после достижения лимита регистрации",
"saveSuccess": "Сохранение успешно",
"stopNewUserRegistration": "Остановить регистрацию новых пользователей",
"stopNewUserRegistrationDescription": "При включении никто не сможет зарегистрироваться",
"trialDuration": "Срок пробного периода",
"trialRegistration": "Пробная регистрация",
"trialRegistrationDescription": "Включить пробную регистрацию; сначала измените пробный пакет и срок",
"trialSubscribePlan": "План пробной подписки",
"trialSubscribePlanDescription": "Выберите план пробной подписки",
"year": "Год"
"phone": {
"accessLabel": оступ",
"applyPlatform": "Применить платформу",
"description": "Аутентификация пользователей с помощью номеров телефонов",
"enable": "Включить",
"enableTip": "После включения будут доступны функции регистрации, входа, привязки и отвязки мобильного телефона",
"endpointLabel": "Конечная точка",
"logs": "Журналы",
"logsDescription": "Просмотр истории отправленных SMS-сообщений и их статуса",
"phoneNumberLabel": "Номер телефона",
"placeholders": {
"template": "Ваш проверочный код: {code}, действителен в течение 5 минут"
},
"platform": "Платформа SMS",
"platformConfigTip": "Пожалуйста, заполните предоставленную конфигурацию {key}",
"platformTip": "Пожалуйста, выберите платформу SMS",
"secretLabel": "Секрет",
"sendFailed": "Не удалось отправить",
"sendSuccess": "Успешно отправлено",
"settings": "Настройки",
"signNameLabel": "Имя подписи",
"template": "Шаблон SMS",
"templateCodeLabel": "Код шаблона",
"templateTip": "Пожалуйста, заполните шаблон SMS, оставив {code} в середине, в противном случае функция SMS не будет работать",
"testSms": "Отправить тестовое SMS",
"testSmsPhone": "Введите номер телефона",
"testSmsTip": "Отправьте тестовое SMS, чтобы проверить вашу конфигурацию",
"title": "Аутентификация по телефону",
"updateSuccess": "Обновление успешно",
"whitelistAreaCode": "Код региона в белом списке",
"whitelistAreaCodeTip": "Пожалуйста, введите коды регионов в белом списке, например, 1, 852, 886, 888",
"whitelistValidation": "Проверка белого списка",
"whitelistValidationTip": "При включении только коды регионов из белого списка могут отправлять SMS"
},
"verify": {
"inputPlaceholder": "Введите",
"loginVerificationCode": "Код проверки входа",
"loginVerificationCodeDescription": "Проверка человека при входе",
"registrationVerificationCode": "Код проверки регистрации",
"registrationVerificationCodeDescription": "Проверка человека при регистрации",
"resetPasswordVerificationCode": "Код проверки сброса пароля",
"resetPasswordVerificationCodeDescription": "Проверка человека при сбросе пароля",
"saveSuccess": "Сохранение успешно",
"turnstileSecretDescription": "Секретный ключ Turnstile, предоставленный Cloudflare",
"turnstileSiteKeyDescription": "Ключ сайта Turnstile, предоставленный Cloudflare",
"verifySettings": "Настройки проверки"
},
"verify-code": {
"dailyLimit": "Ежедневный лимит",
"dailyLimitDescription": "Максимальное количество кодов подтверждения, которые можно отправить за день",
"expireTime": "Время истечения",
"expireTimeDescription": "Время истечения срока действия кода подтверждения (в секундах)",
"interval": "Интервал отправки",
"intervalDescription": "Минимальный интервал между отправкой кодов подтверждения (секунды)",
"saveSuccess": "Сохранение успешно",
"second": "секунды",
"times": "раз",
"verifyCodeSettings": "Настройки кода подтверждения"
"socialAuthMethods": "Social Authentication Methods",
"telegram": {
"clientId": "ID бота",
"clientIdDescription": "ID бота Telegram, вы можете получить его у @BotFather",
"clientSecret": "Токен бота",
"clientSecretDescription": "Токен бота Telegram, который вы можете получить у @BotFather",
"description": "Аутентификация пользователей с помощью учетных записей Telegram",
"enable": "Включить",
"enableDescription": "После включения будут доступны функции регистрации, входа, привязки и отвязки мобильного телефона",
"title": "Вход с Telegram"
}
}
-14
View File
@@ -1,14 +0,0 @@
{
"blockVirtualMachine": "Блокировать виртуальную машину",
"blockVirtualMachineDescription": "При включении устройства не смогут работать на виртуальных машинах или эмуляторах",
"communicationKey": "Ключ связи",
"communicationKeyDescription": "Ключ связи используется для безопасной связи между устройствами и серверами",
"enable": "Включить",
"enableDescription": "После включения поддерживаются несколько идентификаторов устройств, таких как IMEI/IDFA/IDFV/AndroidID/Mac-адрес для входа и регистрации",
"enableSecurity": "Включить шифрование связи",
"enableSecurityDescription": "При включении связь между устройствами и серверами будет зашифрована",
"saveFailed": "Не удалось сохранить",
"saveSuccess": "Сохранение успешно",
"showAds": "Показать рекламу",
"showAdsDescription": "При включении реклама будет отображаться на устройствах"
}
-49
View File
@@ -1,49 +0,0 @@
{
"emailBasicConfigDescription": "Настройте параметры сервера SMTP и параметры проверки электронной почты",
"emailLogsDescription": "Просмотр истории отправленных писем и их статуса",
"emailSuffixWhitelist": "Белый список суффиксов электронной почты",
"emailSuffixWhitelistDescription": "Когда включено, только электронные письма с суффиксами из списка могут регистрироваться",
"emailVerification": "Подтверждение электронной почты",
"emailVerificationDescription": "Когда включено, пользователям необходимо будет подтвердить свой адрес электронной почты",
"enable": "Включить",
"enableDescription": "После включения будут активированы функции регистрации по электронной почте, входа в систему, привязки и отвязки.",
"expiration_email_template": "Шаблон уведомления об истечении срока",
"expiration_email_templateDescription": "Заполнители {after}.variable{before} будут заменены фактическими данными. Убедитесь, что эти переменные сохранены.",
"failed": "Не удалось",
"inputPlaceholder": "Введите значение...",
"logs": "Журналы",
"maintenance_email_template": "Шаблон уведомления о техническом обслуживании",
"maintenance_email_templateDescription": "Заполнители {after}.variable{before} будут заменены на фактические данные. Убедитесь, что эти переменные сохранены.",
"recipient": "Получатель",
"saveFailed": "Не удалось сохранить конфигурацию",
"saveSuccess": "Конфигурация успешно сохранена.",
"sendFailure": "Не удалось отправить тестовое письмо, пожалуйста, проверьте настройки.",
"sendSuccess": "Тестовое письмо успешно отправлено.",
"sendTestEmail": "Отправить тестовое письмо",
"sendTestEmailDescription": "Отправьте тестовое письмо, чтобы проверить конфигурацию.",
"senderAddress": "Адрес отправителя",
"senderAddressDescription": "Адрес электронной почты по умолчанию, используемый для отправки писем.",
"sent": "Отправлено",
"sentAt": "Отправлено в",
"settings": "Настройки",
"smtpAccount": "Учетная запись SMTP",
"smtpAccountDescription": "Учетная запись электронной почты, используемая для аутентификации.",
"smtpEncryptionMethod": "Метод шифрования SMTP",
"smtpEncryptionMethodDescription": "Выберите, включить ли шифрование SSL/TLS.",
"smtpPassword": "Пароль SMTP",
"smtpPasswordDescription": "Пароль для учетной записи SMTP.",
"smtpServerAddress": "Адрес SMTP сервера",
"smtpServerAddressDescription": "Укажите адрес сервера, используемого для отправки электронных писем.",
"smtpServerPort": "Порт SMTP сервера",
"smtpServerPortDescription": "Укажите порт, используемый для подключения к SMTP-серверу.",
"status": "Статус",
"subject": "Тема",
"template": "Шаблон",
"traffic_exceed_email_template": "Шаблон уведомления о превышении трафика",
"traffic_exceed_email_templateDescription": "Места {after}.variable{before} будут заменены на фактические данные. Убедитесь, что эти переменные сохранены.",
"verify_email_template": "Шаблон письма для подтверждения",
"verify_email_templateDescription": "Заполнители {after}.variable{before} будут заменены фактическими данными. Убедитесь, что эти переменные сохранены.",
"whitelistSuffixes": "Белый список суффиксов",
"whitelistSuffixesDescription": "Используется для проверки электронной почты при регистрации; один на строку",
"whitelistSuffixesPlaceholder": "Введите суффиксы электронной почты, по одному на строку"
}
-10
View File
@@ -1,10 +0,0 @@
{
"clientId": "ID клиента",
"clientIdDescription": "ID приложения Facebook из консоли разработчиков Facebook",
"clientSecret": "Секрет клиента",
"clientSecretDescription": "Секрет приложения Facebook из консоли разработчиков Facebook",
"enable": "Включить",
"enableDescription": "После включения пользователи смогут входить в систему с помощью своей учетной записи Facebook",
"saveFailed": "Не удалось сохранить",
"saveSuccess": "Сохранение успешно"
}
-10
View File
@@ -1,10 +0,0 @@
{
"clientId": "Идентификатор клиента GitHub",
"clientIdDescription": "Идентификатор клиента из настроек вашего OAuth-приложения на GitHub",
"clientSecret": "Секрет клиента GitHub",
"clientSecretDescription": "Секрет клиента из настроек вашего OAuth-приложения GitHub",
"enable": "Включить аутентификацию через GitHub",
"enableDescription": "Разрешить пользователям входить в систему с помощью их учетных записей GitHub",
"saveFailed": "Не удалось сохранить настройки GitHub",
"saveSuccess": "Настройки GitHub успешно сохранены"
}
-10
View File
@@ -1,10 +0,0 @@
{
"clientId": "ID клиента",
"clientIdDescription": "Идентификатор клиента Google OAuth 2.0 из консоли Google Cloud",
"clientSecret": "Секрет клиента",
"clientSecretDescription": "Секрет клиента Google OAuth 2.0 из консоли Google Cloud",
"enable": "Включить",
"enableDescription": "После включения пользователи смогут входить в систему с помощью своей учетной записи Google",
"saveFailed": "Не удалось сохранить",
"saveSuccess": "Сохранение успешно"
}
-32
View File
@@ -1,32 +0,0 @@
{
"accessLabel": "Доступ",
"applyPlatform": "Применить платформу",
"enable": "Включить",
"enableTip": "После включения будут доступны функции регистрации, входа, привязки и отвязки мобильного телефона",
"endpointLabel": "Конечная точка",
"logs": "Журналы",
"phoneNumberLabel": "Номер телефона",
"placeholders": {
"template": "Ваш проверочный код: {code}, действителен в течение 5 минут",
"templateCode": "Введите код шаблона"
},
"platform": "Платформа SMS",
"platformConfigTip": "Пожалуйста, заполните предоставленную конфигурацию {key}",
"platformTip": "Пожалуйста, выберите платформу SMS",
"secretLabel": "Секрет",
"sendFailed": "Не удалось отправить",
"sendSuccess": "Успешно отправлено",
"settings": "Настройки",
"signNameLabel": "Имя подписи",
"template": "Шаблон SMS",
"templateCodeLabel": "Код шаблона",
"templateTip": "Пожалуйста, заполните шаблон SMS, оставив {code} в середине, в противном случае функция SMS не будет работать",
"testSms": "Отправить тестовое SMS",
"testSmsPhone": "Введите номер телефона",
"testSmsTip": "Отправьте тестовое SMS, чтобы проверить вашу конфигурацию",
"updateSuccess": "Обновление успешно",
"whitelistAreaCode": "Код региона в белом списке",
"whitelistAreaCodeTip": "Пожалуйста, введите коды регионов в белом списке, например, 1, 852, 886, 888",
"whitelistValidation": "Проверка белого списка",
"whitelistValidationTip": "При включении только коды регионов из белого списка могут отправлять SMS"
}
+6
View File
@@ -8,9 +8,12 @@
"createRule": "Добавить правило",
"createSuccess": "Правило успешно создано",
"createdAt": "Создано",
"default": "По умолчанию",
"defaultRule": "Правило по умолчанию",
"delete": "Удалить",
"deleteSuccess": "Правило успешно удалено",
"deleteWarning": "Вы уверены, что хотите удалить это правило? Это действие нельзя отменить.",
"direct": "Прямой",
"downloadTemplate": "Скачать шаблон",
"edit": "Редактировать",
"editRule": "Редактировать правило",
@@ -29,11 +32,14 @@
"noValidRules": "Не найдено действительных правил",
"pleaseUploadFile": "Пожалуйста, загрузите файл YAML",
"preview": "Предварительный просмотр",
"reject": "Отклонить",
"rulesFormat": "Формат правила: тип правила, содержание совпадения, [политика], где политика является необязательной.\nЕсли политика не указана, будет автоматически использовано текущее имя группы правил. Примеры:",
"rulesLabel": "Содержание правила",
"searchRule": "Поиск имени правила",
"selectTags": "Выбрать теги узлов",
"selectType": "Выберите тип правила",
"tags": "Теги узлов",
"tagsLabel": "Теги узлов",
"type": "Тип правила",
"updateSuccess": "Правило успешно обновлено"
}
+100 -75
View File
@@ -33,21 +33,22 @@
"description": "Описание",
"edit": "Редактировать",
"editNodeGroup": "Редактировать группу узлов",
"form": {
"cancel": "Отмена",
"confirm": "Подтвердить",
"description": "Описание",
"name": "Название"
},
"name": "Название",
"title": "Список групп узлов",
"updatedAt": "Время обновления"
},
"groupForm": {
"cancel": "Отмена",
"confirm": "Подтвердить",
"description": "Описание",
"name": "Имя"
},
"node": {
"abnormal": "Аномалия",
"actions": "Действия",
"address": "Адрес",
"all": "Все",
"basicInfo": "Основная информация",
"cancel": "Отмена",
"confirm": "Подтвердить",
"confirmDelete": "Вы уверены, что хотите удалить?",
@@ -59,96 +60,120 @@
"delete": "Удалить",
"deleteSuccess": "Успешно удалено",
"deleteWarning": "После удаления данные не могут быть восстановлены. Пожалуйста, будьте осторожны.",
"detail": "Детали",
"disabled": "Отключено",
"disk": "Диск",
"edit": "Редактировать",
"editNode": "Редактировать узел",
"enable": "Включить",
"form": {
"allowInsecure": "Разрешить небезопасное",
"cancel": "Отмена",
"city": "Город",
"confirm": "Подтвердить",
"country": "Страна",
"edit": "Редактировать",
"editSecurity": "Редактировать настройки безопасности",
"enableTLS": "Включить TLS",
"encryptionMethod": "Метод шифрования",
"flow": "Алгоритм управления потоком",
"groupId": "Группа узлов",
"hopInterval": "Интервал прыжка",
"hopPorts": "Порты прыжка",
"hopPortsPlaceholder": "Несколько портов разделяются запятыми",
"name": "Имя",
"obfsPassword": "Пароль обфускации",
"obfsPasswordPlaceholder": "Оставьте пустым для отсутствия обфускации",
"path": "Путь",
"pleaseSelect": "Пожалуйста, выберите",
"port": "Порт сервера",
"protocol": "Протокол",
"relayHost": "Адрес реле",
"relayMode": "Режим ретрансляции",
"relayModeOptions": {
"all": "Все",
"none": "Нет",
"random": "Случайный"
},
"relayPort": "Порт реле",
"relayPrefix": "Префикс ретрансляции",
"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": "Выберите протокол",
"selectRelayMode": "Выберите режим ретрансляции",
"serverAddr": "Адрес сервера",
"serverKey": "Ключ сервера",
"serverName": "Имя сервера",
"speedLimit": "Ограничение скорости",
"speedLimitPlaceholder": "Без ограничений",
"tags": "Теги",
"tagsPlaceholder": "Используйте Enter или запятую (,), чтобы ввести несколько тегов",
"trafficRatio": "Коэффициент трафика",
"transport": "Транспортный протокол",
"transportConfig": "Настройки транспортного протокола",
"transportHost": "Адрес транспортного сервиса",
"transportPath": "Транспортный путь",
"transportServerName": "Имя транспортного сервиса"
},
"enabled": "Включено",
"expireTime": "Время истечения",
"hide": "Скрыть",
"id": "ID",
"ipAddresses": "IP-адреса",
"lastUpdated": "Последнее обновление",
"location": "Местоположение",
"memory": "Память",
"name": "Имя",
"noData": "--",
"node": "Узел",
"nodeDetail": "Детали узла",
"nodeGroup": "Группа узлов",
"nodeStatus": "Статус узла",
"normal": "Нормально",
"onlineCount": "Количество онлайн",
"onlineUsers": "Онлайн пользователи",
"protocol": "Протокол",
"rate": "Скорость",
"relay": "Реле",
"serverAddr": "Адрес сервера",
"speedLimit": "Ограничение скорости",
"status": "Статус",
"subscribeId": "ID подписки",
"subscribeName": "Имя подписки",
"subscription": "Подписка",
"tags": "Теги",
"trafficRatio": "Коэффициент трафика",
"trafficUsage": "Использование трафика",
"type": "Тип",
"updateSuccess": "Успешно обновлено",
"updatedAt": "Время обновления"
"updatedAt": "Время обновления",
"userAccount": "Учетная запись пользователя",
"userDetail": "Детали пользователя",
"userId": "ID пользователя"
},
"nodeForm": {
"allowInsecure": "Разрешить небезопасное соединение",
"cancel": "Отмена",
"city": "Город",
"confirm": "Подтвердить",
"congestionController": "Контроллер перегрузки",
"country": "Страна",
"disableSni": "Отключить SNI",
"edit": "Редактировать",
"editSecurity": "Редактировать настройки безопасности",
"enableTLS": "Включить TLS",
"encryptionMethod": "Метод шифрования",
"fingerprint": "Отпечаток",
"flow": "Алгоритм управления потоком",
"groupId": "Группа узлов",
"hopInterval": "Интервал перехода",
"hopPorts": "Порты перехода",
"hopPortsPlaceholder": "Разделите несколько портов запятыми",
"name": "Имя",
"obfsPassword": "Пароль обфускации",
"obfsPasswordPlaceholder": "Оставьте пустым для отсутствия обфускации",
"path": "Путь",
"pleaseSelect": "Пожалуйста, выберите",
"port": "Порт сервера",
"protocol": "Протокол",
"reduceRtt": "Сократить RTT",
"relayHost": "Хост реле",
"relayMode": "Режим реле",
"relayPort": "Порт реле",
"relayPrefix": "Префикс реле",
"remarks": "Примечания",
"security": "Безопасность",
"securityConfig": "Настройки безопасности",
"selectEncryptionMethod": "Выберите метод шифрования",
"selectNodeGroup": "Выберите группу узлов",
"selectProtocol": "Выберите протокол",
"selectRelayMode": "Выберите режим реле",
"serverAddr": "Адрес сервера",
"serverKey": "Ключ сервера",
"serverName": "Имя службы",
"speedLimit": "Ограничение скорости",
"speedLimitPlaceholder": "Неограниченно",
"tags": "Теги",
"tagsPlaceholder": "Используйте Enter или запятую (,) для ввода нескольких тегов",
"trafficRatio": "Доля трафика",
"transport": "Настройки транспортного протокола",
"transportConfig": "Настройки транспортного протокола",
"transportHost": "Адрес транспортного сервера",
"transportPath": "Транспортный путь",
"transportServerName": "Имя транспортного сервера",
"udpRelayMode": "Режим UDP реле"
},
"relayModeOptions": {
"all": "Все",
"none": "Нет",
"random": "Случайный"
},
"securityConfig": {
"fingerprint": "Отпечаток",
"privateKey": "Закрытый ключ",
"privateKeyPlaceholder": "Оставьте пустым для авто-генерации",
"publicKey": "Открытый ключ",
"publicKeyPlaceholder": "Оставьте пустым для авто-генерации",
"serverAddress": "Адрес сервера",
"serverAddressPlaceholder": "REALITY целевой адрес, по умолчанию используется SNI",
"serverName": "Имя сервера (SNI)",
"serverNamePlaceholder": "REALITY требуется, должно соответствовать бэкенду",
"serverPort": "Порт сервера",
"serverPortPlaceholder": "REALITY целевой порт, по умолчанию 443",
"shortId": "Короткий ID",
"shortIdPlaceholder": "Оставьте пустым для авто-генерации",
"sni": "Указание имени сервера (SNI)"
},
"tabs": {
"node": "Узел",
+92 -11
View File
@@ -1,28 +1,77 @@
{
"authSettings": "Настройки аутентификации",
"basicSettings": "Основные настройки",
"common": {
"cancel": "Отмена",
"save": "Сохранить настройки",
"saveFailed": "Ошибка сохранения",
"saveSuccess": "Сохранение успешно"
},
"currency": {
"accessKey": "Ключ доступа",
"accessKeyDescription": "https://exchangerate.host предоставляет бесплатный API-ключ для обменных курсов",
"accessKeyDescription": "{url} предоставляет бесплатный API-ключ для обменных курсов",
"accessKeyPlaceholder": "Введите API ключ",
"currencySymbol": "Символ валюты",
"currencySymbolDescription": "Используется только для отображения, после изменения все валютные единицы в системе будут изменены",
"currencySymbolPlaceholder": "₽",
"currencyUnit": "Валютная единица",
"currencyUnitDescription": "Используется только для отображения, после изменения все валютные единицы в системе будут изменены",
"saveSuccess": "Успешно сохранено"
"currencyUnitPlaceholder": "RUB",
"description": "Настройка единиц валюты, символов и параметров API обменного курса",
"title": "Настройки валюты"
},
"privacy-policy": {
"invite": {
"description": "Настройка приглашений пользователей и вознаграждений за рефералов",
"forcedInvite": "Требовать приглашение для регистрации",
"forcedInviteDescription": "При включении пользователи должны регистрироваться по ссылке-приглашению",
"inputPlaceholder": "Пожалуйста, введите",
"onlyFirstPurchase": "Только вознаграждение за первую покупку",
"onlyFirstPurchaseDescription": "При включении рефереры получают вознаграждения только за первую покупку приглашенных пользователей",
"referralPercentage": "Процент вознаграждения за рефералов",
"referralPercentageDescription": "Процент вознаграждения, предоставляемого реферерам",
"saveFailed": "Ошибка сохранения",
"saveSuccess": "Сохранение успешно",
"title": "Настройки приглашений"
},
"privacyPolicy": {
"description": "Редактирование и управление содержимым политики конфиденциальности",
"title": "Политика конфиденциальности"
},
"register": {
"day": "день(дней)",
"defaultSubscribe": "Подписка по умолчанию",
"defaultSubscribeDescription": "Подписка по умолчанию для новых пользователей",
"description": "Настройка параметров, связанных с регистрацией пользователей",
"inputPlaceholder": "Пожалуйста, введите",
"ipRegistrationLimit": "Лимит регистрации по IP",
"ipRegistrationLimitDescription": "Ограничение на количество регистраций с одного IP-адреса",
"registrationLimitCount": "Количество регистраций по лимиту",
"registrationLimitCountDescription": "Количество регистраций, разрешенных на один IP в течение лимитированного периода",
"registrationLimitExpire": "Период лимита",
"registrationLimitExpireDescription": "Длительность лимита регистрации по IP",
"saveFailed": "Ошибка сохранения",
"saveSuccess": "Сохранение успешно",
"selectPlaceholder": "Пожалуйста, выберите",
"stopNewUserRegistration": "Остановить регистрацию новых пользователей",
"stopNewUserRegistrationDescription": "При включении регистрация новых пользователей будет отключена",
"title": "Настройки регистрации",
"trialDay": "Пробные дни",
"trialDayDescription": "Пробные дни, предоставляемые новым пользователям при регистрации",
"trialFlow": "Пробный трафик",
"trialFlowDescription": "Пробный трафик, предоставляемый новым пользователям при регистрации"
},
"site": {
"customData": "Пользовательские данные",
"customDataDescription": "Пользовательские данные, используемые для пользовательских данных сайта",
"customHtml": "Пользовательский HTML",
"customHtmlDescription": "Пользовательский HTML-код, который будет вставлен в конец тега body сайта.",
"description": "Настройка основной информации о сайте, логотипе, домене и других параметрах",
"keywords": "Ключевые слова",
"keywordsDescription": "Используется для SEO",
"keywordsPlaceholder": "ключевое слово1, ключевое слово2, ключевое слово3",
"logo": "ЛОГОТИП",
"logoDescription": "Используется для отображения места, где необходимо показать ЛОГОТИП",
"logoPlaceholder": "Введите URL-адрес ЛОГОТИПА, не заканчивайте на '/'",
"saveSuccess": "Успешно сохранено",
"siteDesc": "Описание сайта",
"siteDescDescription": "Используется для отображения места, где необходимо показать описание сайта",
"siteDescPlaceholder": "Введите описание сайта",
@@ -31,15 +80,47 @@
"siteDomainPlaceholder": "Введите доменный адрес, по одному домену на строку",
"siteName": "Название сайта",
"siteNameDescription": "Используется для отображения места, где необходимо показать название сайта",
"siteNamePlaceholder": "Введите название сайта"
},
"tabs": {
"currency": "Валюта",
"site": "Сайт",
"tos": "Условия обслуживания"
"siteNamePlaceholder": "Введите название сайта",
"title": "Настройки сайта"
},
"siteSettings": "Настройки сайта",
"tos": {
"saveSuccess": "Сохранение успешно",
"description": "Редактирование и управление содержимым условий обслуживания",
"title": "Условия обслуживания"
},
"userSecuritySettings": "Пользовательская безопасность",
"verify": {
"description": "Настройка Turnstile CAPTCHA и параметров проверки",
"enableLoginVerify": "Включить проверку при входе",
"enableLoginVerifyDescription": "При включении пользователи должны пройти проверку на человечность при входе",
"enablePasswordVerify": "Включить проверку при сбросе пароля",
"enablePasswordVerifyDescription": "При включении пользователи должны пройти проверку на человечность при сбросе пароля",
"enableRegisterVerify": "Включить проверку при регистрации",
"enableRegisterVerifyDescription": "При включении пользователи должны пройти проверку на человечность при регистрации",
"inputPlaceholder": "Пожалуйста, введите",
"saveFailed": "Ошибка сохранения",
"saveSuccess": "Сохранение успешно",
"title": "Проверка безопасности",
"turnstileSecret": "Секретный ключ Turnstile",
"turnstileSecretDescription": "Секретный ключ Cloudflare Turnstile для бэкенд-проверки",
"turnstileSecretPlaceholder": "Введите секретный ключ Turnstile",
"turnstileSiteKey": "Ключ сайта Turnstile",
"turnstileSiteKeyDescription": "Ключ сайта Cloudflare Turnstile для фронтенд-проверки",
"turnstileSiteKeyPlaceholder": "Введите ключ сайта Turnstile"
},
"verifyCode": {
"dailyLimit": "Дневной лимит отправки",
"dailyLimitDescription": "Максимальное количество кодов проверки, которые каждый пользователь может отправить за день",
"description": "Настройка правил и лимитов отправки кода проверки по электронной почте",
"expireTime": "Срок действия кода проверки",
"expireTimeDescription": "Срок действия кодов проверки (в секундах)",
"inputPlaceholder": "Пожалуйста, введите",
"interval": "Интервал отправки",
"intervalDescription": "Минимальный интервал между двумя отправками кода проверки (в секундах)",
"saveFailed": "Ошибка сохранения",
"saveSuccess": "Сохранение успешно",
"seconds": "секунд",
"times": "раз(а)",
"title": "Настройки кода проверки"
}
}
-10
View File
@@ -1,10 +0,0 @@
{
"clientId": "ID бота",
"clientIdDescription": "ID бота Telegram, вы можете получить его у @BotFather",
"clientSecret": "Токен бота",
"clientSecretDescription": "Токен бота Telegram, который вы можете получить у @BotFather",
"enable": "Включить",
"enableDescription": "После включения будут доступны функции регистрации, входа, привязки и отвязки мобильного телефона",
"saveFailed": "Не удалось сохранить",
"saveSuccess": "Сохранение успешно"
}