mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-05-29 16:39:35 +00:00
Surface ~400 hardcoded English labels, tooltips, placeholders, dt/divider text, modal okText/cancelText, and Spin loading from the panel pages (clients/groups/inbounds/nodes/settings/xray/sub/index) into web/translation/en-US.json under existing pages.<page>.* namespaces, with JSX swapped to t(...). Brand and protocol identifiers (TLS, MTU, SNI, NordVPN, Cloudflare WARP, etc.) stay literal. Sync all 12 non-English locales (ar-EG, es-ES, fa-IR, id-ID, ja-JP, pt-BR, ru-RU, tr-TR, uk-UA, vi-VN, zh-CN, zh-TW) to match en-US's structure and translate the 521 new key paths per locale. Every locale file now has 1539 lines, mirroring en-US ordering. Also remove a dead duplicate "info": "Info" key under pages.inbounds that collided with the new pages.inbounds.info.* object. Backend: bulk attach/detach errors in web/service/client.go now route through logger.Warningf (so they appear under /panel/api/server/logs/) instead of only living on the response payload.
1540 lines
106 KiB
JSON
1540 lines
106 KiB
JSON
{
|
||
"username": "Имя пользователя",
|
||
"password": "Пароль",
|
||
"login": "Войти",
|
||
"confirm": "Подтвердить",
|
||
"cancel": "Отмена",
|
||
"close": "Закрыть",
|
||
"save": "Сохранить",
|
||
"logout": "Выход",
|
||
"create": "Создать",
|
||
"add": "Добавить",
|
||
"remove": "Удалить",
|
||
"update": "Обновить",
|
||
"copy": "Копировать",
|
||
"copied": "Скопировано",
|
||
"more": "ещё",
|
||
"download": "Скачать",
|
||
"remark": "Примечание",
|
||
"enable": "Включить",
|
||
"protocol": "Протокол",
|
||
"search": "Поиск",
|
||
"filter": "Фильтр",
|
||
"all": "Все",
|
||
"from": "От",
|
||
"to": "До",
|
||
"done": "Готово",
|
||
"loading": "Загрузка...",
|
||
"refresh": "Обновить",
|
||
"clear": "Очистить",
|
||
"second": "Секунда",
|
||
"minute": "Минута",
|
||
"hour": "Час",
|
||
"day": "День",
|
||
"check": "Проверить",
|
||
"indefinite": "Бесконечно",
|
||
"unlimited": "Безлимит",
|
||
"none": "Нет",
|
||
"qrCode": "QR-код",
|
||
"info": "Информация",
|
||
"edit": "Изменить",
|
||
"delete": "Удалить",
|
||
"reset": "Сброс",
|
||
"noData": "Нет данных.",
|
||
"copySuccess": "Скопировано",
|
||
"sure": "Да",
|
||
"encryption": "Шифрование",
|
||
"useIPv4ForHost": "Использовать IPv4 для подключения к хосту",
|
||
"transmission": "Транспорт",
|
||
"host": "Хост",
|
||
"path": "Путь",
|
||
"camouflage": "Обфускация",
|
||
"status": "Статус",
|
||
"enabled": "Включено",
|
||
"disabled": "Отключено",
|
||
"depleted": "Исчерпано",
|
||
"depletingSoon": "Почти исчерпано",
|
||
"offline": "Не в сети",
|
||
"online": "В сети",
|
||
"domainName": "Домен",
|
||
"monitor": "Мониторинг IP",
|
||
"certificate": "SSL-сертификат",
|
||
"fail": "Сбой",
|
||
"comment": "Комментарий",
|
||
"success": "Успешно",
|
||
"lastOnline": "Был(а) в сети",
|
||
"getVersion": "Узнать версию",
|
||
"install": "Установка",
|
||
"clients": "Клиенты",
|
||
"usage": "Использование",
|
||
"twoFactorCode": "Код 2FA",
|
||
"remained": "Остаток",
|
||
"security": "Безопасность",
|
||
"secAlertTitle": "Предупреждение системы безопасности",
|
||
"secAlertSsl": "Соединение не защищено. Не вводите конфиденциальные данные до установки SSL-сертификата.",
|
||
"secAlertConf": "Некоторые настройки уязвимы. Рекомендуется усилить защиту для предотвращения атак.",
|
||
"secAlertSSL": "Подключение к панели не защищено. Установите SSL-сертификат для защиты данных.",
|
||
"secAlertPanelPort": "Порт панели по умолчанию небезопасен. Установите нестандартный или случайный порт.",
|
||
"secAlertPanelURI": "Адрес панели по умолчанию небезопасен. Настройте уникальный и сложный URI.",
|
||
"secAlertSubURI": "URI подписки по умолчанию небезопасен. Настройте уникальный и сложный адрес.",
|
||
"secAlertSubJsonURI": "URI JSON-подписки по умолчанию небезопасен. Настройте уникальный и сложный адрес.",
|
||
"emptyDnsDesc": "Нет добавленных DNS-серверов.",
|
||
"emptyFakeDnsDesc": "Нет добавленных Fake DNS-серверов.",
|
||
"emptyBalancersDesc": "Нет добавленных балансировщиков.",
|
||
"emptyReverseDesc": "Нет добавленных реверс-прокси.",
|
||
"somethingWentWrong": "Что-то пошло не так",
|
||
"subscription": {
|
||
"title": "Информация о подписке",
|
||
"subId": "ID подписки",
|
||
"status": "Статус",
|
||
"downloaded": "Загружено",
|
||
"uploaded": "Отправлено",
|
||
"expiry": "Срок действия",
|
||
"totalQuota": "Общий лимит",
|
||
"individualLinks": "Индивидуальные ссылки",
|
||
"active": "Активна",
|
||
"inactive": "Неактивна",
|
||
"unlimited": "Неограниченно",
|
||
"noExpiry": "Бессрочно"
|
||
},
|
||
"menu": {
|
||
"theme": "Тема",
|
||
"dark": "Темная",
|
||
"ultraDark": "Очень темная",
|
||
"dashboard": "Дашборд",
|
||
"inbounds": "Входящие",
|
||
"clients": "Клиенты",
|
||
"groups": "Группы",
|
||
"nodes": "Узлы",
|
||
"settings": "Настройки панели",
|
||
"xray": "Конфигурации Xray",
|
||
"apiDocs": "Документация API",
|
||
"logout": "Выход",
|
||
"link": "Управление",
|
||
"donate": "Поддержать"
|
||
},
|
||
"pages": {
|
||
"login": {
|
||
"hello": "Привет!",
|
||
"title": "Добро пожаловать!",
|
||
"loginAgain": "Сессия истекла. Войдите в систему снова",
|
||
"toasts": {
|
||
"invalidFormData": "Недопустимый формат данных",
|
||
"emptyUsername": "Введите имя пользователя",
|
||
"emptyPassword": "Введите пароль",
|
||
"wrongUsernameOrPassword": "Неверные данные учетной записи.",
|
||
"successLogin": "Вход выполнен успешно"
|
||
}
|
||
},
|
||
"index": {
|
||
"title": "Дашборд",
|
||
"cpu": "CPU",
|
||
"logicalProcessors": "Логические процессоры",
|
||
"frequency": "Частота",
|
||
"swap": "Swap",
|
||
"storage": "Диск",
|
||
"memory": "RAM",
|
||
"threads": "Потоки",
|
||
"xrayStatus": "Xray",
|
||
"stopXray": "Стоп",
|
||
"restartXray": "Перезапуск",
|
||
"xraySwitch": "Выбор версии",
|
||
"xrayUpdates": "Обновления Xray",
|
||
"xraySwitchClick": "Выберите нужную версию",
|
||
"xraySwitchClickDesk": "Важно: старые версии могут не поддерживать текущие настройки",
|
||
"updatePanel": "Обновить панель",
|
||
"panelUpdateDesc": "Это обновит 3X-UI до последнего релиза и перезапустит сервис панели.",
|
||
"currentPanelVersion": "Текущая версия панели",
|
||
"latestPanelVersion": "Последняя версия панели",
|
||
"panelUpToDate": "Панель обновлена",
|
||
"upToDate": "Обновлено",
|
||
"xrayStatusUnknown": "Неизвестно",
|
||
"xrayStatusRunning": "Запущен",
|
||
"xrayStatusStop": "Остановлен",
|
||
"xrayStatusError": "Ошибка",
|
||
"xrayErrorPopoverTitle": "Ошибка при запуске Xray",
|
||
"operationHours": "Время работы системы",
|
||
"systemHistoryTitle": "История системы",
|
||
"charts": "Графики",
|
||
"xrayMetricsTitle": "Метрики Xray",
|
||
"xrayMetricsDisabled": "Конечная точка метрик Xray не настроена",
|
||
"xrayMetricsHint": "Добавьте блок metrics верхнего уровня в конфигурацию xray с tag metrics_out и listen 127.0.0.1:11111, затем перезапустите xray.",
|
||
"xrayObservatoryEmpty": "Данных Observatory пока нет",
|
||
"xrayObservatoryHint": "Добавьте блок observatory в конфигурацию xray с указанием тегов outbound для проверки, затем перезапустите xray.",
|
||
"xrayObservatoryTagPlaceholder": "Выберите outbound",
|
||
"xrayObservatoryAlive": "Активен",
|
||
"xrayObservatoryDead": "Недоступен",
|
||
"xrayObservatoryLastSeen": "Последняя активность",
|
||
"xrayObservatoryLastTry": "Последняя попытка",
|
||
"trendLast2Min": "Последние 2 минуты",
|
||
"systemLoad": "Нагрузка на систему",
|
||
"systemLoadDesc": "Средняя загрузка системы за последние 1, 5 и 15 минут",
|
||
"connectionCount": "Количество соединений",
|
||
"ipAddresses": "IP-адреса сервера",
|
||
"toggleIpVisibility": "Скрыть или показать IP-адреса сервера",
|
||
"overallSpeed": "Общая скорость передачи трафика",
|
||
"upload": "Загрузка",
|
||
"download": "Скачать",
|
||
"totalData": "Общий объем трафика",
|
||
"sent": "Отправлено",
|
||
"received": "Получено",
|
||
"documentation": "Документация",
|
||
"xraySwitchVersionDialog": "Переключить версию Xray",
|
||
"xraySwitchVersionDialogDesc": "Вы точно хотите сменить версию Xray?",
|
||
"xraySwitchVersionPopover": "Xray успешно обновлён",
|
||
"panelUpdateDialog": "Вы действительно хотите обновить панель?",
|
||
"panelUpdateDialogDesc": "Это обновит 3X-UI до версии #version# и перезапустит сервис панели.",
|
||
"panelUpdateCheckPopover": "Проверка обновления панели не удалась",
|
||
"panelUpdateStartedPopover": "Обновление панели началось",
|
||
"geofileUpdateDialog": "Вы действительно хотите обновить геофайл?",
|
||
"geofileUpdateDialogDesc": "Это обновит файл #filename#.",
|
||
"geofilesUpdateDialogDesc": "Это обновит все геофайлы.",
|
||
"geofilesUpdateAll": "Обновить все",
|
||
"geofileUpdatePopover": "Геофайлы успешно обновлены",
|
||
"customGeoTitle": "Пользовательские GeoSite / GeoIP",
|
||
"customGeoAdd": "Добавить",
|
||
"customGeoType": "Тип",
|
||
"customGeoAlias": "Псевдоним",
|
||
"customGeoUrl": "URL",
|
||
"customGeoEnabled": "Включено",
|
||
"customGeoLastUpdated": "Обновлено",
|
||
"customGeoExtColumn": "Маршрутизация (ext:…)",
|
||
"customGeoToastUpdateAll": "Все пользовательские источники обновлены",
|
||
"customGeoActions": "Действия",
|
||
"customGeoEdit": "Изменить",
|
||
"customGeoDelete": "Удалить",
|
||
"customGeoDownload": "Обновить сейчас",
|
||
"customGeoModalAdd": "Добавить источник",
|
||
"customGeoModalEdit": "Изменить источник",
|
||
"customGeoModalSave": "Сохранить",
|
||
"customGeoDeleteConfirm": "Удалить этот пользовательский источник?",
|
||
"customGeoRoutingHint": "В правилах маршрутизации используйте значение как ext:файл.dat:тег (замените тег).",
|
||
"customGeoInvalidId": "Некорректный идентификатор",
|
||
"customGeoAliasesError": "Не удалось загрузить список пользовательских geo",
|
||
"customGeoValidationAlias": "Псевдоним: только a-z, цифры, - и _",
|
||
"customGeoValidationUrl": "URL должен начинаться с http:// или https://",
|
||
"customGeoAliasPlaceholder": "a-z 0-9 _ -",
|
||
"customGeoAliasLabelSuffix": " (свой)",
|
||
"customGeoToastList": "Список пользовательских geo",
|
||
"customGeoToastAdd": "Добавить пользовательский geo",
|
||
"customGeoToastUpdate": "Изменить пользовательский geo",
|
||
"customGeoToastDelete": "Пользовательский geo-файл «{{ .fileName }}» удалён",
|
||
"customGeoToastDownload": "Geofile «{{ .fileName }}» обновлен",
|
||
"customGeoErrInvalidType": "Тип должен быть geosite или geoip",
|
||
"customGeoErrAliasRequired": "Укажите псевдоним",
|
||
"customGeoErrAliasPattern": "Псевдоним содержит недопустимые символы",
|
||
"customGeoErrAliasReserved": "Этот псевдоним зарезервирован",
|
||
"customGeoErrUrlRequired": "Укажите URL",
|
||
"customGeoErrInvalidUrl": "Некорректный URL",
|
||
"customGeoErrUrlScheme": "URL должен использовать http или https",
|
||
"customGeoErrUrlHost": "Некорректный хост URL",
|
||
"customGeoErrDuplicateAlias": "Такой псевдоним уже используется для этого типа",
|
||
"customGeoErrNotFound": "Источник не найден",
|
||
"customGeoErrDownload": "Ошибка загрузки",
|
||
"customGeoErrUpdateAllIncomplete": "Не удалось обновить один или несколько пользовательских источников",
|
||
"customGeoEmpty": "Пользовательских источников geo пока нет — нажмите «Добавить», чтобы создать",
|
||
"dontRefresh": "Установка в процессе. Не обновляйте страницу",
|
||
"logs": "Логи",
|
||
"config": "Конфигурация",
|
||
"backup": "Резервная копия",
|
||
"backupTitle": "Бэкап и восстановление",
|
||
"exportDatabase": "Экспорт базы данных",
|
||
"exportDatabaseDesc": "Нажмите, чтобы скачать файл .db, содержащий резервную копию вашей текущей базы данных на ваше устройство.",
|
||
"importDatabase": "Импорт базы данных",
|
||
"importDatabaseDesc": "Нажмите, чтобы выбрать и загрузить файл .db с вашего устройства для восстановления базы данных из резервной копии.",
|
||
"importDatabaseSuccess": "База данных успешно импортирована",
|
||
"importDatabaseError": "Произошла ошибка при импорте базы данных",
|
||
"readDatabaseError": "Произошла ошибка при чтении базы данных",
|
||
"getDatabaseError": "Произошла ошибка при получении базы данных",
|
||
"getConfigError": "Произошла ошибка при получении конфигурационного файла"
|
||
},
|
||
"inbounds": {
|
||
"title": "Входящие",
|
||
"totalDownUp": "Отправлено/получено",
|
||
"totalUsage": "Всего трафика",
|
||
"inboundCount": "Всего подключений",
|
||
"operate": "Меню",
|
||
"enable": "Включить",
|
||
"remark": "Примечание",
|
||
"node": "Узел",
|
||
"deployTo": "Развернуть на",
|
||
"localPanel": "Локальная панель",
|
||
"fallbacks": {
|
||
"title": "Fallback'и",
|
||
"help": "Когда соединение на этом инбаунде не совпадает ни с одним клиентом, оно перенаправляется на другой инбаунд. Выберите дочерний инбаунд ниже — поля маршрутизации (SNI / ALPN / Path / xver) заполнятся автоматически из его транспорта, для большинства конфигураций больше ничего менять не нужно. Каждый дочерний должен слушать на 127.0.0.1 с security=none.",
|
||
"empty": "Фолбэков пока нет",
|
||
"add": "Добавить фолбэк",
|
||
"pickInbound": "Выберите инбаунд",
|
||
"matchAny": "любой",
|
||
"rederive": "Заполнить из дочернего",
|
||
"rederived": "Заполнено из дочернего",
|
||
"editAdvanced": "Изменить поля маршрутизации",
|
||
"hideAdvanced": "Скрыть расширенные",
|
||
"quickAddAll": "Быстро добавить все подходящие",
|
||
"quickAdded": "Добавлено {n} фолбэк(ов)",
|
||
"quickAddedNone": "Нет новых подходящих инбаундов",
|
||
"routesWhen": "Маршрутизирует, когда",
|
||
"defaultCatchAll": "По умолчанию — ловит всё остальное"
|
||
},
|
||
"protocol": "Протокол",
|
||
"port": "Порт",
|
||
"portMap": "Сопоставление портов",
|
||
"traffic": "Трафик",
|
||
"details": "Подробнее",
|
||
"transportConfig": "Транспорт",
|
||
"expireDate": "Дата окончания",
|
||
"createdAt": "Создано",
|
||
"updatedAt": "Обновлено",
|
||
"resetTraffic": "Сбросить трафик",
|
||
"addInbound": "Создать подключение",
|
||
"generalActions": "Общие действия",
|
||
"modifyInbound": "Изменить подключение",
|
||
"deleteInbound": "Удалить подключение",
|
||
"deleteInboundContent": "Вы уверены, что хотите удалить подключение?",
|
||
"deleteConfirmTitle": "Удалить подключение \"{remark}\"?",
|
||
"deleteConfirmContent": "Подключение и все его клиенты будут удалены. Это действие нельзя отменить.",
|
||
"resetConfirmTitle": "Сбросить трафик \"{remark}\"?",
|
||
"resetConfirmContent": "Сбрасывает счётчики отправки/получения этого подключения до 0.",
|
||
"cloneConfirmTitle": "Клонировать подключение \"{remark}\"?",
|
||
"cloneConfirmContent": "Создаёт копию с новым портом и пустым списком клиентов.",
|
||
"delAllClients": "Удалить всех клиентов",
|
||
"delAllClientsConfirmTitle": "Удалить всех {count} клиентов из \"{remark}\"?",
|
||
"delAllClientsConfirmContent": "Удаляет всех клиентов этого подключения и сбрасывает их записи трафика. Само подключение сохраняется. Это действие нельзя отменить.",
|
||
"attachClients": "Привязать клиентов к…",
|
||
"addClientsToGroup": "Добавить клиентов в группу…",
|
||
"attachClientsTitle": "Привязать клиентов из «{remark}»",
|
||
"attachClientsDesc": "Привязывает тех же {count} клиент(ов) (с тем же UUID/паролем и общим трафиком) к выбранным входящим. Они остаются и на этом входящем.",
|
||
"attachClientsTargets": "Целевые входящие",
|
||
"attachClientsNoTargets": "Нет других совместимых входящих для привязки.",
|
||
"attachClientsResult": "Привязано {attached}, пропущено {skipped}.",
|
||
"attachClientsResultMixed": "Привязано {attached}, пропущено {skipped}, ошибок {errors}.",
|
||
"attachClientsSelectLabel": "Клиенты для привязки",
|
||
"attachClientsSearchPlaceholder": "Поиск email или комментария",
|
||
"attachClientsStatusDisabled": "Отключено",
|
||
"attachClientsSelectedCount": "{selected} из {total} выбрано",
|
||
"detachClients": "Отвязать клиентов",
|
||
"detachClientsTitle": "Отвязать клиентов из «{remark}»",
|
||
"detachClientsDesc": "Удаляет выбранных клиент(ов) только с этого входящего. Записи клиентов сохраняются (используйте Delete для полного удаления). У источника всего {count} клиент(ов).",
|
||
"detachClientsResult": "Отвязано {detached}, пропущено {skipped}.",
|
||
"detachClientsResultMixed": "Отвязано {detached}, пропущено {skipped}, ошибок {errors}.",
|
||
"detachClientsSelectLabel": "Клиенты для отвязки",
|
||
"exportLinksTitle": "Экспортировать ссылки подключения",
|
||
"exportSubsTitle": "Экспортировать ссылки подписки",
|
||
"exportAllLinksTitle": "Экспортировать все ссылки подключений",
|
||
"exportAllSubsTitle": "Экспортировать все ссылки подписок",
|
||
"inboundJsonTitle": "JSON входящего",
|
||
"deleteClient": "Удалить клиента",
|
||
"deleteClientContent": "Вы уверены, что хотите удалить клиента?",
|
||
"resetTrafficContent": "Вы уверены, что хотите сбросить трафик?",
|
||
"copyLink": "Копировать ссылку",
|
||
"address": "Адрес",
|
||
"network": "Сеть",
|
||
"destinationPort": "Порт назначения",
|
||
"targetAddress": "Целевой адрес",
|
||
"monitorDesc": "Оставьте пустым для прослушивания всех IP-адресов",
|
||
"meansNoLimit": "= Безлимит. (единица: ГБ)",
|
||
"totalFlow": "Общий расход",
|
||
"leaveBlankToNeverExpire": "Оставьте пустым, чтобы было бесконечным",
|
||
"noRecommendKeepDefault": "Рекомендуется оставить настройки по умолчанию",
|
||
"certificatePath": "Путь к сертификату",
|
||
"certificateContent": "Содержимое сертификата",
|
||
"publicKey": "Публичный ключ",
|
||
"privatekey": "Приватный ключ",
|
||
"clickOnQRcode": "Нажмите на QR-код, чтобы скопировать",
|
||
"client": "Клиент",
|
||
"export": "Экспорт ссылок",
|
||
"clone": "Клонировать",
|
||
"cloneInbound": "Клонировать",
|
||
"cloneInboundContent": "Будут клонированы все настройки подключений, кроме списка клиентов, порта и IP-адреса прослушивания",
|
||
"cloneInboundOk": "Клонировано",
|
||
"resetAllTraffic": "Сброс трафика всех подключений",
|
||
"resetAllTrafficTitle": "Сброс трафика всех подключений",
|
||
"resetAllTrafficContent": "Вы уверены, что хотите сбросить трафик всех подключений?",
|
||
"resetInboundClientTraffics": "Сброс трафика клиента",
|
||
"resetInboundClientTrafficTitle": "Сброс трафика клиентов",
|
||
"resetInboundClientTrafficContent": "Вы уверены, что хотите сбросить трафик для этих клиентов?",
|
||
"resetAllClientTraffics": "Сброс трафика всех клиентов",
|
||
"resetAllClientTrafficTitle": "Сброс трафика всех клиентов",
|
||
"resetAllClientTrafficContent": "Вы уверены, что хотите сбросить трафик всех клиентов?",
|
||
"delDepletedClients": "Удалить отключенных клиентов",
|
||
"delDepletedClientsTitle": "Удаление отключенных клиентов",
|
||
"delDepletedClientsContent": "Вы уверены, что хотите удалить всех отключенных клиентов?",
|
||
"email": "Email",
|
||
"emailDesc": "Пожалуйста, укажите уникальный Email",
|
||
"IPLimit": "Лимит по количеству IP",
|
||
"IPLimitDesc": "Ограничение числа одновременных подключений с разных IP (0 – отключить)",
|
||
"IPLimitlog": "Лог IP-адресов",
|
||
"IPLimitlogDesc": "Лог IP-адресов (перед включением лога IP-адресов, вы должны очистить лог)",
|
||
"IPLimitlogclear": "Очистить лог",
|
||
"setDefaultCert": "Установить сертификат панели",
|
||
"setDefaultCertEmpty": "Для панели не настроен сертификат. Сначала установите его в Настройках.",
|
||
"streamTab": "Stream",
|
||
"securityTab": "Безопасность",
|
||
"sniffingTab": "Sniffing",
|
||
"sniffingMetadataOnly": "Только метаданные",
|
||
"sniffingRouteOnly": "Только маршрутизация",
|
||
"sniffingIpsExcluded": "Исключённые IP",
|
||
"sniffingDomainsExcluded": "Исключённые домены",
|
||
"decryption": "Расшифрование",
|
||
"encryption": "Шифрование",
|
||
"vlessAuthX25519": "Аутентификация X25519",
|
||
"vlessAuthMlkem768": "Аутентификация ML-KEM-768",
|
||
"vlessAuthCustom": "Свой",
|
||
"vlessAuthSelected": "Выбрано: {auth}",
|
||
"advanced": {
|
||
"title": "Разделы JSON входящего",
|
||
"subtitle": "Полный JSON входящего и отдельные редакторы для settings, sniffing и streamSettings.",
|
||
"all": "Всё",
|
||
"allHelp": "Полный объект входящего со всеми полями в одном редакторе.",
|
||
"settings": "Настройки",
|
||
"settingsHelp": "Обёртка блока settings Xray:",
|
||
"sniffing": "Sniffing",
|
||
"sniffingHelp": "Обёртка блока sniffing Xray:",
|
||
"stream": "Stream",
|
||
"streamHelp": "Обёртка блока stream Xray:",
|
||
"jsonErrorPrefix": "Расширенный JSON"
|
||
},
|
||
"telegramDesc": "Пожалуйста, укажите Chat ID Telegram. (используйте команду '/id' в боте) или ({'@'}userinfobot)",
|
||
"subscriptionDesc": "Вы можете найти свою ссылку подписки в разделе 'Подробнее'",
|
||
"same": "Тот же",
|
||
"inboundData": "Данные подключений",
|
||
"exportInbound": "Экспорт подключений",
|
||
"import": "Импортировать",
|
||
"importInbound": "Импорт подключений",
|
||
"periodicTrafficResetTitle": "Сброс трафика",
|
||
"periodicTrafficResetDesc": "Автоматический сброс счетчика трафика через указанные интервалы",
|
||
"lastReset": "Последний сброс",
|
||
"periodicTrafficReset": {
|
||
"never": "Никогда",
|
||
"daily": "Ежедневно",
|
||
"weekly": "Еженедельно",
|
||
"monthly": "Ежемесячно",
|
||
"hourly": "Ежечасно"
|
||
},
|
||
"toasts": {
|
||
"obtain": "Получить",
|
||
"updateSuccess": "Обновление прошло успешно",
|
||
"logCleanSuccess": "Лог был очищен",
|
||
"inboundsUpdateSuccess": "Подключения успешно обновлены",
|
||
"inboundUpdateSuccess": "Подключение успешно обновлено",
|
||
"inboundCreateSuccess": "Подключение успешно создано",
|
||
"inboundDeleteSuccess": "Подключение успешно удалено",
|
||
"inboundClientAddSuccess": "Клиент(ы) подключения добавлен(ы)",
|
||
"inboundClientDeleteSuccess": "Клиент подключения удалён",
|
||
"inboundClientUpdateSuccess": "Клиент подключения обновлён",
|
||
"delDepletedClientsSuccess": "Все исчерпанные клиенты удалены",
|
||
"resetAllClientTrafficSuccess": "Весь трафик клиента сброшен",
|
||
"resetAllTrafficSuccess": "Весь трафик сброшен",
|
||
"resetInboundClientTrafficSuccess": "Трафик сброшен",
|
||
"resetInboundTrafficSuccess": "Входящий трафик сброшен",
|
||
"trafficGetError": "Ошибка получения данных о трафике",
|
||
"getNewX25519CertError": "Ошибка при получении сертификата X25519.",
|
||
"getNewmldsa65Error": "Ошибка при получении сертификата mldsa65.",
|
||
"getNewVlessEncError": "Ошибка при получении сертификата VlessEnc."
|
||
},
|
||
"form": {
|
||
"moveUp": "Вверх",
|
||
"moveDown": "Вниз",
|
||
"addAll": "Добавить все",
|
||
"addAllFallbackTooltip": "Добавляет строку fallback для каждого подходящего входящего, ещё не подключённого",
|
||
"peers": "Peers",
|
||
"addPeer": "Добавить peer",
|
||
"keepAlive": "Keep-alive",
|
||
"autoSystemRoutesTooltip": "Только для Windows. CIDR'ы автоматически добавляются в системную таблицу маршрутизации, чтобы соответствующий трафик шёл через TUN.",
|
||
"autoOutboundsInterface": "Авто-интерфейс исходящих",
|
||
"autoOutboundsInterfaceTooltip": "Физический интерфейс для исходящего трафика. Используйте 'auto' для автоопределения; включается автоматически при Auto system routes.",
|
||
"rewriteAddress": "Переписать адрес",
|
||
"rewritePort": "Переписать порт",
|
||
"allowedNetwork": "Разрешённая сеть",
|
||
"followRedirect": "Следовать redirect",
|
||
"accounts": "Аккаунты",
|
||
"allowTransparent": "Разрешить прозрачный",
|
||
"encryptionMethod": "Метод шифрования",
|
||
"visionTestseed": "Vision testseed",
|
||
"version": "Версия",
|
||
"udpIdleTimeout": "UDP idle timeout (с)",
|
||
"masquerade": "Masquerade",
|
||
"type": "Тип",
|
||
"upstreamUrl": "Upstream URL",
|
||
"rewriteHost": "Переписать Host",
|
||
"skipTlsVerify": "Пропустить TLS verify",
|
||
"directory": "Директория",
|
||
"statusCode": "Код статуса",
|
||
"body": "Body",
|
||
"headers": "Заголовки",
|
||
"proxyProtocol": "Proxy Protocol",
|
||
"requestVersion": "Версия запроса",
|
||
"requestMethod": "Метод запроса",
|
||
"requestPath": "Путь запроса",
|
||
"requestHeaders": "Заголовки запроса",
|
||
"responseVersion": "Версия ответа",
|
||
"responseStatus": "Статус ответа",
|
||
"responseReason": "Причина ответа",
|
||
"responseHeaders": "Заголовки ответа",
|
||
"heartbeatPeriod": "Период heartbeat",
|
||
"serviceName": "Имя сервиса",
|
||
"authority": "Authority",
|
||
"multiMode": "Multi Mode",
|
||
"maxBufferedUpload": "Макс. буферизованная загрузка",
|
||
"maxUploadSize": "Макс. размер загрузки (байт)",
|
||
"streamUpServer": "Stream-Up Server",
|
||
"serverMaxHeaderBytes": "Server Max Header Bytes",
|
||
"paddingBytes": "Padding Bytes",
|
||
"uplinkHttpMethod": "HTTP-метод Uplink",
|
||
"paddingObfsMode": "Padding Obfs Mode",
|
||
"paddingKey": "Padding Key",
|
||
"paddingHeader": "Padding Header",
|
||
"paddingPlacement": "Padding Placement",
|
||
"paddingMethod": "Padding Method",
|
||
"sessionPlacement": "Session Placement",
|
||
"sessionKey": "Session Key",
|
||
"sequencePlacement": "Sequence Placement",
|
||
"sequenceKey": "Sequence Key",
|
||
"uplinkDataPlacement": "Uplink Data Placement",
|
||
"uplinkDataKey": "Uplink Data Key",
|
||
"noSseHeader": "Без заголовка SSE",
|
||
"ttiMs": "TTI (мс)",
|
||
"uplinkMbps": "Uplink (МБ/с)",
|
||
"downlinkMbps": "Downlink (МБ/с)",
|
||
"cwndMultiplier": "Множитель CWND",
|
||
"maxSendingWindow": "Макс. окно отправки",
|
||
"externalProxy": "External Proxy",
|
||
"sniPlaceholder": "SNI (по умолчанию = host)",
|
||
"fingerprint": "Fingerprint",
|
||
"defaultOption": "По умолчанию",
|
||
"routeMark": "Route Mark",
|
||
"tcpKeepAliveInterval": "TCP Keep Alive Interval",
|
||
"tcpKeepAliveIdle": "TCP Keep Alive Idle",
|
||
"tcpMaxSeg": "TCP Max Seg",
|
||
"tcpUserTimeout": "TCP User Timeout",
|
||
"tcpWindowClamp": "TCP Window Clamp",
|
||
"tcpFastOpen": "TCP Fast Open",
|
||
"multipathTcp": "Multipath TCP",
|
||
"penetrate": "Penetrate",
|
||
"v6Only": "Только V6",
|
||
"tcpCongestion": "TCP Congestion",
|
||
"dialerProxy": "Dialer Proxy",
|
||
"trustedXForwardedFor": "Доверенный X-Forwarded-For",
|
||
"addressPortStrategy": "Стратегия адрес+порт",
|
||
"tryDelayMs": "Задержка попытки (мс)",
|
||
"prioritizeIPv6": "Приоритет IPv6",
|
||
"interleave": "Interleave",
|
||
"maxConcurrentTry": "Макс. одновременных попыток",
|
||
"customSockopt": "Пользовательский sockopt",
|
||
"addCustomOption": "Добавить опцию",
|
||
"serverNameIndication": "SNI",
|
||
"cipherSuites": "Cipher Suites",
|
||
"autoOption": "Авто",
|
||
"minMaxVersion": "Мин/Макс версия",
|
||
"rejectUnknownSni": "Отклонить неизвестный SNI",
|
||
"disableSystemRoot": "Отключить System Root",
|
||
"sessionResumption": "Возобновление сессии",
|
||
"oneTimeLoading": "Однократная загрузка",
|
||
"usageOption": "Опция использования",
|
||
"buildChain": "Build Chain",
|
||
"echKey": "ECH key",
|
||
"echConfig": "ECH config",
|
||
"getNewEchCert": "Получить новый ECH-сертификат",
|
||
"show": "Показать",
|
||
"xver": "Xver",
|
||
"target": "Цель",
|
||
"maxTimeDiff": "Макс. разница во времени (мс)",
|
||
"minClientVer": "Мин. версия клиента",
|
||
"maxClientVer": "Макс. версия клиента",
|
||
"shortIds": "Short IDs",
|
||
"spiderX": "SpiderX",
|
||
"getNewCert": "Получить новый сертификат",
|
||
"mldsa65Seed": "mldsa65 Seed",
|
||
"mldsa65Verify": "mldsa65 Verify",
|
||
"getNewSeed": "Получить новый Seed"
|
||
},
|
||
"info": {
|
||
"mode": "Режим",
|
||
"grpcServiceName": "grpc serviceName",
|
||
"grpcMultiMode": "grpc multiMode",
|
||
"interfaceName": "Имя интерфейса",
|
||
"mtu": "MTU",
|
||
"gateway": "Gateway",
|
||
"dns": "DNS",
|
||
"outboundsInterface": "Интерфейс исходящих",
|
||
"autoSystemRoutes": "Авто-маршруты системы",
|
||
"followRedirect": "FollowRedirect",
|
||
"auth": "Auth",
|
||
"noKernelTun": "TUN без kernel",
|
||
"keepAlive": "Keep alive",
|
||
"peerNumber": "Peer {n}",
|
||
"peerNumberConfig": "Конфиг Peer {n}"
|
||
},
|
||
"stream": {
|
||
"general": {
|
||
"request": "Запрос",
|
||
"response": "Ответ",
|
||
"name": "Имя",
|
||
"value": "Значение"
|
||
},
|
||
"tcp": {
|
||
"version": "Версия",
|
||
"method": "Метод",
|
||
"path": "Путь",
|
||
"status": "Статус",
|
||
"statusDescription": "Описание статуса",
|
||
"requestHeader": "Заголовок запроса",
|
||
"responseHeader": "Заголовок ответа"
|
||
}
|
||
}
|
||
},
|
||
"clients": {
|
||
"add": "Добавить клиента",
|
||
"edit": "Изменить клиента",
|
||
"submitAdd": "Добавить клиента",
|
||
"submitEdit": "Сохранить изменения",
|
||
"clientCount": "Количество клиентов",
|
||
"bulk": "Массовое добавление",
|
||
"copyFromInbound": "Скопировать клиентов из входящего",
|
||
"copyToInbound": "Скопировать клиентов в",
|
||
"copySelected": "Скопировать выбранное",
|
||
"copySource": "Источник",
|
||
"copyEmailPreview": "Предпросмотр результирующего email",
|
||
"copySelectSourceFirst": "Сначала выберите исходный входящий.",
|
||
"copyResult": "Результат копирования",
|
||
"copyResultSuccess": "Скопировано успешно",
|
||
"copyResultNone": "Нечего копировать: клиенты не выбраны или источник пуст",
|
||
"copyResultErrors": "Ошибки копирования",
|
||
"copyFlowLabel": "Flow для новых клиентов (VLESS)",
|
||
"copyFlowHint": "Применяется ко всем скопированным клиентам. Оставьте пустым, чтобы пропустить.",
|
||
"selectAll": "Выбрать всё",
|
||
"clearAll": "Очистить всё",
|
||
"method": "Метод",
|
||
"first": "Первый",
|
||
"last": "Последний",
|
||
"ipLog": "Журнал IP",
|
||
"prefix": "Префикс",
|
||
"postfix": "Постфикс",
|
||
"delayedStart": "Старт после первого использования",
|
||
"expireDays": "Длительность",
|
||
"days": "Дни",
|
||
"renew": "Автопродление",
|
||
"renewDesc": "Автоматическое продление после окончания. (0 = отключено) (единица: день)",
|
||
"searchPlaceholder": "Поиск email, комментария, sub ID, UUID, пароля, auth…",
|
||
"filterTitle": "Фильтр клиентов",
|
||
"clearAllFilters": "Очистить все",
|
||
"sortOldest": "Сначала старые",
|
||
"sortNewest": "Сначала новые",
|
||
"sortRecentlyUpdated": "Недавно обновлены",
|
||
"sortRecentlyOnline": "Недавно в сети",
|
||
"sortEmailAZ": "Email А→Я",
|
||
"sortEmailZA": "Email Я→А",
|
||
"sortMostTraffic": "Больше трафика",
|
||
"sortHighestRemaining": "Больше остатка",
|
||
"sortExpiringSoonest": "Скорее истекают",
|
||
"has": "Есть",
|
||
"hasNot": "Нет",
|
||
"title": "Клиенты",
|
||
"actions": "Действия",
|
||
"totalGB": "Всего отправлено/получено (ГБ)",
|
||
"expiryTime": "Срок действия",
|
||
"addClients": "Добавить клиентов",
|
||
"limitIp": "Лимит IP",
|
||
"password": "Пароль",
|
||
"subId": "ID подписки",
|
||
"online": "В сети",
|
||
"email": "Email",
|
||
"group": "Группа",
|
||
"groupDesc": "Логическая метка для группировки связанных клиентов (например, команда, клиент, регион). Фильтруется из панели инструментов.",
|
||
"groupPlaceholder": "например, customer-a",
|
||
"comment": "Комментарий",
|
||
"traffic": "Трафик",
|
||
"offline": "Не в сети",
|
||
"addTitle": "Добавить клиента",
|
||
"qrCode": "QR-код",
|
||
"moreInformation": "Подробнее",
|
||
"delete": "Удалить",
|
||
"reset": "Сбросить трафик",
|
||
"editTitle": "Изменить клиента",
|
||
"client": "Клиент",
|
||
"enabled": "Включён",
|
||
"remaining": "Остаток",
|
||
"duration": "Длительность",
|
||
"attachedInbounds": "Привязанные входящие",
|
||
"selectInbound": "Выберите один или несколько входящих",
|
||
"noSubId": "У этого клиента нет subId, ссылка для общего доступа недоступна.",
|
||
"noLinks": "Нет ссылок для общего доступа — сначала привяжите клиента к входящему с поддерживаемым протоколом.",
|
||
"link": "Ссылка",
|
||
"resetNotPossible": "Сначала привяжите этого клиента к входящему.",
|
||
"general": "Общие",
|
||
"resetAllTraffics": "Сбросить трафик всех клиентов",
|
||
"resetAllTrafficsTitle": "Сбросить трафик всех клиентов?",
|
||
"resetAllTrafficsContent": "Счётчики отправки/приёма всех клиентов сбрасываются в ноль. Квоты и срок действия не затрагиваются. Это действие нельзя отменить.",
|
||
"deleteConfirmTitle": "Удалить клиента {email}?",
|
||
"deleteConfirmContent": "Клиент будет удалён из всех привязанных входящих, а его запись трафика будет уничтожена. Это действие нельзя отменить.",
|
||
"deleteSelected": "Удалить ({count})",
|
||
"adjustSelected": "Изменить ({count})",
|
||
"subLinksSelected": "Sub-ссылки ({count})",
|
||
"addToGroupTitle": "Добавить {count} клиент(ов) в группу",
|
||
"addToGroupTooltip": "Выберите существующую группу или введите новое имя. Используйте Ungroup, чтобы удалить клиентов из их текущей группы.",
|
||
"addToGroupPlaceholder": "Имя группы",
|
||
"addToGroupSuccessToast": "{count} клиент(ов) добавлено в {group}",
|
||
"ungroupSuccessToast": "Группа очищена у {count} клиент(ов)",
|
||
"ungroup": "Разгруппировать",
|
||
"ungroupConfirmTitle": "Удалить {count} клиент(ов) из их группы?",
|
||
"ungroupConfirmContent": "Очищает метку группы у каждого выбранного клиента. Сами клиенты сохраняются (используйте Delete для полного удаления).",
|
||
"addToGroup": "Добавить в группу",
|
||
"attach": "Привязать",
|
||
"adjust": "Корректировка",
|
||
"subLinks": "Sub-ссылки",
|
||
"selectedCount": "{count} выбрано",
|
||
"attachSelected": "Привязать ({count})",
|
||
"attachToInboundsTitle": "Привязать {count} клиент(ов) к входящим",
|
||
"attachToInboundsDesc": "Привязывает выбранных {count} клиент(ов) (тот же UUID/пароль и общий трафик) к выбранным входящим. Существующие привязки сохраняются.",
|
||
"attachToInboundsTargets": "Целевые входящие",
|
||
"attachToInboundsNoTargets": "Нет доступных многопользовательских входящих для привязки.",
|
||
"detachSelected": "Отвязать ({count})",
|
||
"detach": "Отвязать",
|
||
"detachFromInboundsTitle": "Отвязать {count} клиент(ов) от входящих",
|
||
"detachFromInboundsDesc": "Удаляет выбранных {count} клиент(ов) из выбранных входящих. Пары, где клиент не был привязан, тихо пропускаются. Записи клиентов сохраняются (используйте Delete для полного удаления).",
|
||
"detachFromInboundsTargets": "Входящие для отвязки",
|
||
"detachFromInboundsNoTargets": "Нет доступных многопользовательских входящих.",
|
||
"detachFromInboundsResult": "Отвязано {detached}, пропущено {skipped}.",
|
||
"detachFromInboundsResultMixed": "Отвязано {detached}, пропущено {skipped}, ошибок {errors}.",
|
||
"subLinksTitle": "Sub-ссылки ({count})",
|
||
"subLinkColumn": "URL подписки",
|
||
"subJsonLinkColumn": "URL JSON-подписки",
|
||
"subLinksCopyAll": "Копировать все",
|
||
"subLinksCopiedAll": "Скопировано {count} ссылок",
|
||
"subLinksEmpty": "Ни у одного из выбранных клиентов нет ID подписки.",
|
||
"subLinksDisabled": "Сервис подписки отключён.",
|
||
"subLinksDisabledHint": "Включите подписку в Настройки панели → Подписка для генерации ссылок.",
|
||
"bulkDeleteConfirmTitle": "Удалить {count} клиентов?",
|
||
"bulkDeleteConfirmContent": "Каждый выбранный клиент удаляется из всех привязанных входящих, его запись трафика уничтожается. Это действие нельзя отменить.",
|
||
"bulkAdjustTitle": "Изменить {count} клиентов",
|
||
"bulkAdjustHint": "Положительные значения добавляют, отрицательные — уменьшают. Клиенты с неограниченным сроком или трафиком пропускаются для соответствующего поля.",
|
||
"bulkAdjustNothing": "Укажите дни или трафик перед применением.",
|
||
"addDays": "Добавить дни",
|
||
"addTrafficGB": "Добавить трафик (ГБ)",
|
||
"delDepleted": "Удалить исчерпанных",
|
||
"delDepletedConfirmTitle": "Удалить исчерпанных клиентов?",
|
||
"delDepletedConfirmContent": "Удаляются все клиенты, у которых исчерпана квота трафика или истёк срок. Это действие нельзя отменить.",
|
||
"auth": "Авторизация",
|
||
"hysteriaAuth": "Hysteria Auth",
|
||
"uuid": "UUID",
|
||
"flow": "Flow",
|
||
"vmessSecurity": "VMess Security",
|
||
"reverseTag": "Обратный тег",
|
||
"reverseTagPlaceholder": "Необязательный Reverse tag",
|
||
"telegramId": "ID пользователя Telegram",
|
||
"telegramIdPlaceholder": "Числовой ID пользователя Telegram (0 = нет)",
|
||
"created": "Создан",
|
||
"updated": "Обновлён",
|
||
"ipLimit": "Лимит IP",
|
||
"toasts": {
|
||
"deleted": "Клиент удалён",
|
||
"trafficReset": "Трафик сброшен",
|
||
"allTrafficsReset": "Трафик всех клиентов сброшен",
|
||
"bulkDeleted": "Удалено клиентов: {count}",
|
||
"bulkDeletedMixed": "Удалено: {ok}, не удалось: {failed}",
|
||
"bulkCreated": "Создано клиентов: {count}",
|
||
"bulkCreatedMixed": "Создано: {ok}, не удалось: {failed}",
|
||
"bulkAdjusted": "Изменено клиентов: {count}",
|
||
"bulkAdjustedMixed": "Изменено: {ok}, пропущено: {skipped}",
|
||
"delDepleted": "Удалено исчерпанных клиентов: {count}"
|
||
}
|
||
},
|
||
"groups": {
|
||
"title": "Группы",
|
||
"name": "Имя",
|
||
"clientCount": "Клиентов в группе",
|
||
"totalGroups": "Всего групп",
|
||
"totalGroupedClients": "Клиенты с группой",
|
||
"emptyGroups": "Пустые группы",
|
||
"addGroup": "Добавить группу",
|
||
"createSuccess": "Группа «{name}» создана.",
|
||
"rename": "Переименовать",
|
||
"renameTitle": "Переименовать {name}",
|
||
"renameCollision": "Группа с именем «{name}» уже существует.",
|
||
"renameSuccess": "Группа переименована для {count} клиент(ов).",
|
||
"deleteConfirmTitle": "Удалить группу {name}?",
|
||
"deleteConfirmContent": "Это удаляет группу и очищает её метку у {count} клиент(ов). Сами клиенты не удаляются.",
|
||
"deleteSuccess": "Группа очищена у {count} клиент(ов).",
|
||
"resetTraffic": "Сбросить трафик",
|
||
"resetConfirmTitle": "Сбросить трафик группы {name}?",
|
||
"resetConfirmContent": "Это обнулит up/down для всех {count} клиент(ов) в этой группе.",
|
||
"resetSuccess": "Сброшен трафик у {count} клиент(ов).",
|
||
"adjustSuccess": "Скорректировано {count} клиент(ов) в {name}.",
|
||
"emptyForAction": "В этой группе пока нет клиентов.",
|
||
"deleteGroupOnly": "Удалить группу (сохранить клиентов)",
|
||
"deleteClients": "Удалить клиентов группы",
|
||
"deleteClientsConfirmTitle": "Удалить всех клиентов в {name}?",
|
||
"deleteClientsConfirmContent": "Это безвозвратно удаляет {count} клиент(ов) вместе с их записями трафика. Метка группы также очищается. Это нельзя отменить.",
|
||
"deleteClientsSuccess": "Удалено {count} клиент(ов).",
|
||
"deleteClientsMixed": "{ok} удалено, {failed} пропущено",
|
||
"addToGroup": "Добавить клиентов…",
|
||
"addToGroupTitle": "Добавить клиентов в группу «{name}»",
|
||
"addToGroupDesc": "Выберите клиентов для добавления в эту группу. Существующие привязки к входящим сохраняются; меняется только метка группы. Клиенты, уже входящие в эту группу, не показываются.",
|
||
"addToGroupEmpty": "Нет других клиентов для добавления.",
|
||
"addToGroupResult": "Добавлено {count} клиент(ов) в {name}.",
|
||
"removeFromGroup": "Удалить клиентов…",
|
||
"removeFromGroupTitle": "Удалить клиентов из группы «{name}»",
|
||
"removeFromGroupDesc": "Выберите участников для удаления из этой группы. Сами клиенты сохраняются (используйте «Удалить клиентов группы» для полного удаления).",
|
||
"removeFromGroupResult": "Удалено {count} клиент(ов) из {name}."
|
||
},
|
||
"nodes": {
|
||
"title": "Узлы",
|
||
"addNode": "Добавить узел",
|
||
"editNode": "Изменить узел",
|
||
"totalNodes": "Всего узлов",
|
||
"onlineNodes": "В сети",
|
||
"offlineNodes": "Не в сети",
|
||
"avgLatency": "Средняя задержка",
|
||
"name": "Имя",
|
||
"namePlaceholder": "напр. de-frankfurt-1",
|
||
"addressPlaceholder": "panel.example.com или 1.2.3.4",
|
||
"remark": "Примечание",
|
||
"scheme": "Схема",
|
||
"address": "Адрес",
|
||
"port": "Порт",
|
||
"basePath": "Базовый путь",
|
||
"apiToken": "API Токен",
|
||
"apiTokenPlaceholder": "Токен со страницы Настроек удалённой панели",
|
||
"apiTokenHint": "Удалённая панель показывает свой токен API в разделе Настройки → Токен API.",
|
||
"regenerate": "Сгенерировать токен заново",
|
||
"regenerateConfirm": "Повторная генерация аннулирует текущий токен. Любая центральная панель, использующая его, потеряет доступ до обновления. Продолжить?",
|
||
"allowPrivateAddress": "Разрешить частный адрес",
|
||
"allowPrivateAddressHint": "Включить только для узлов в частной сети или VPN.",
|
||
"enable": "Включён",
|
||
"status": "Статус",
|
||
"cpu": "CPU",
|
||
"mem": "Память",
|
||
"uptime": "Аптайм",
|
||
"latency": "Задержка",
|
||
"lastHeartbeat": "Последний пинг",
|
||
"xrayVersion": "Версия Xray",
|
||
"panelVersion": "Версия панели",
|
||
"actions": "Действия",
|
||
"probe": "Проверить сейчас",
|
||
"testConnection": "Проверить соединение",
|
||
"connectionOk": "Соединение в порядке ({ms} мс)",
|
||
"connectionFailed": "Не удалось подключиться",
|
||
"never": "никогда",
|
||
"justNow": "только что",
|
||
"deleteConfirmTitle": "Удалить узел \"{name}\"?",
|
||
"deleteConfirmContent": "Это остановит мониторинг узла. Сама удалённая панель не будет затронута.",
|
||
"statusValues": {
|
||
"online": "В сети",
|
||
"offline": "Не в сети",
|
||
"unknown": "Неизвестно"
|
||
},
|
||
"toasts": {
|
||
"list": "Не удалось загрузить узлы",
|
||
"obtain": "Не удалось загрузить узел",
|
||
"add": "Добавить узел",
|
||
"update": "Обновить узел",
|
||
"delete": "Удалить узел",
|
||
"deleted": "Узел удалён",
|
||
"test": "Проверить соединение",
|
||
"fillRequired": "Имя, адрес, порт и токен API обязательны",
|
||
"probeFailed": "Проверка не удалась"
|
||
}
|
||
},
|
||
"settings": {
|
||
"title": "Настройки",
|
||
"save": "Сохранить",
|
||
"infoDesc": "Сохраните изменения и перезапустите панель для их применения.",
|
||
"restartPanel": "Перезапустить панель",
|
||
"restartPanelDesc": "Вы уверены, что хотите перезапустить панель? Подтвердите, и перезапуск произойдёт через 3 секунды. Если панель будет недоступна, проверьте лог сервера",
|
||
"restartPanelSuccess": "Панель успешно перезапущена",
|
||
"actions": "Действия",
|
||
"resetDefaultConfig": "Восстановить настройки по умолчанию",
|
||
"panelSettings": "Панель",
|
||
"securitySettings": "Учетная запись",
|
||
"securityWarnings": "Предупреждения безопасности",
|
||
"panelExposed": "Ваша панель может быть открыта:",
|
||
"warnHttp": "Панель работает по обычному HTTP — настройте TLS для продакшна.",
|
||
"warnDefaultPort": "Стандартный порт 2053 широко известен — измените его на случайный.",
|
||
"warnDefaultBasePath": "Базовый путь по умолчанию \"/\" широко известен — измените его на случайный.",
|
||
"warnDefaultSubPath": "Путь подписки по умолчанию \"/sub/\" широко известен — измените его.",
|
||
"warnDefaultJsonPath": "JSON-путь подписки по умолчанию \"/json/\" широко известен — измените его.",
|
||
"TGBotSettings": "Telegram-бот",
|
||
"panelListeningIP": "IP-адрес для управления панелью",
|
||
"panelListeningIPDesc": "Оставьте пустым для подключения с любого IP",
|
||
"panelListeningDomain": "Домен панели",
|
||
"panelListeningDomainDesc": "Оставьте пустым для подключения с любых доменов и IP.",
|
||
"panelPort": "Порт панели",
|
||
"panelPortDesc": "Порт, на котором работает панель",
|
||
"publicKeyPath": "Путь к файлу публичного ключа сертификата панели",
|
||
"publicKeyPathDesc": "Введите полный путь, начинающийся с '/'",
|
||
"privateKeyPath": "Путь к файлу приватного ключа сертификата панели",
|
||
"privateKeyPathDesc": "Введите полный путь, начинающийся с '/'",
|
||
"panelUrlPath": "URI-путь",
|
||
"panelUrlPathDesc": "Должен начинаться с '/' и заканчиваться '/'",
|
||
"pageSize": "Размер нумерации страниц",
|
||
"pageSizeDesc": "Определить размер страницы для таблицы подключений. Установите 0, чтобы отключить",
|
||
"panelProxy": "Сетевой прокси панели",
|
||
"panelProxyDesc": "Маршрутизирует исходящие запросы самой панели (обновления geo, проверки версий Xray/панели, Telegram) через этот прокси для обхода серверной фильтрации GitHub/Telegram. Принимает socks5:// или http(s)://, напр. локальный SOCKS-входящий Xray. Оставьте пустым для прямого подключения.",
|
||
"remarkModel": "Модель примечания и символ разделения",
|
||
"datepicker": "Тип календаря",
|
||
"datepickerPlaceholder": "Выберите дату",
|
||
"datepickerDescription": "Запланированные задачи будут выполняться в соответствии с этим календарем.",
|
||
"sampleRemark": "Пример примечания",
|
||
"oldUsername": "Текущий логин",
|
||
"currentPassword": "Текущий пароль",
|
||
"newUsername": "Новый логин",
|
||
"newPassword": "Новый пароль",
|
||
"telegramBotEnable": "Включить Telegram бота",
|
||
"telegramBotEnableDesc": "Доступ к функциям панели через Telegram-бота",
|
||
"telegramToken": "Telegram-токен",
|
||
"telegramTokenDesc": "Необходимо получить токен у менеджера ботов Telegram {'@'}botfather",
|
||
"telegramProxy": "SOCKS-прокси",
|
||
"telegramProxyDesc": "Если для подключения к Telegram вам нужен прокси Socks5, настройте его параметры согласно руководству.",
|
||
"telegramAPIServer": "Telegram API Server",
|
||
"telegramAPIServerDesc": "Используемый API-сервер Telegram. Оставьте пустым, чтобы использовать сервер по умолчанию.",
|
||
"telegramChatId": "User ID администратора бота",
|
||
"telegramChatIdDesc": "Один или несколько User ID администратора(-ов) Telegram-бота. Для получения User ID используйте {'@'}userinfobot или команду '/id' в боте.",
|
||
"telegramNotifyTime": "Частота уведомлений для администраторов от бота",
|
||
"telegramNotifyTimeDesc": "Укажите интервал уведомлений в формате Crontab",
|
||
"tgNotifyBackup": "Резервное копирование базы данных",
|
||
"tgNotifyBackupDesc": "Отправлять уведомление с файлом резервной копии базы данных",
|
||
"tgNotifyLogin": "Уведомление о входе",
|
||
"tgNotifyLoginDesc": "Отображает имя пользователя, IP-адрес и время, когда кто-то пытается войти в вашу панель.",
|
||
"sessionMaxAge": "Продолжительность сессии",
|
||
"sessionMaxAgeDesc": "Продолжительность сессии в системе (значение: минута)",
|
||
"expireTimeDiff": "Задержка уведомления об истечении сессии",
|
||
"expireTimeDiffDesc": "Получение уведомления об истечении срока действия сессии до достижения порогового значения (значение: день)",
|
||
"trafficDiff": "Порог трафика для уведомления",
|
||
"trafficDiffDesc": "Получение уведомления об исчерпании трафика до достижения порога (значение: ГБ)",
|
||
"tgNotifyCpu": "Порог нагрузки на ЦП для уведомления",
|
||
"tgNotifyCpuDesc": "Уведомление администраторов в Telegram, если нагрузка на ЦП превышает этот порог (значение: %)",
|
||
"timeZone": "Часовой пояс",
|
||
"timeZoneDesc": "Запланированные задачи выполняются в соответствии со временем в этом часовом поясе",
|
||
"subSettings": "Подписка",
|
||
"subEnable": "Включить подписку",
|
||
"subEnableDesc": "Функция подписки с отдельной конфигурацией",
|
||
"subJsonEnable": "Включить/отключить JSON-эндпоинт подписки независимо.",
|
||
"subJsonEnableTitle": "JSON-подписка",
|
||
"subClashEnableTitle": "Подписка Clash / Mihomo",
|
||
"subTitle": "Заголовок подписки",
|
||
"subTitleDesc": "Название подписки, которое видит клиент в VPN-клиенте",
|
||
"subSupportUrl": "URL поддержки",
|
||
"subSupportUrlDesc": "Ссылка на техническую поддержку, отображаемая в VPN-клиенте",
|
||
"subProfileUrl": "URL профиля",
|
||
"subProfileUrlDesc": "Ссылка на ваш сайт, отображаемая в VPN-клиенте",
|
||
"subAnnounce": "Объявление",
|
||
"subAnnounceDesc": "Текст объявления, отображаемый в VPN-клиенте",
|
||
"subEnableRouting": "Включить маршрутизацию",
|
||
"subEnableRoutingDesc": "Глобальная настройка для включения маршрутизации в VPN-клиенте. (Только для Happ)",
|
||
"subRoutingRules": "Правила маршрутизации",
|
||
"subRoutingRulesDesc": "Глобальные правила маршрутизации для VPN-клиента. (Только для Happ)",
|
||
"subListen": "Прослушивание IP",
|
||
"subListenDesc": "Оставьте пустым по умолчанию, чтобы отслеживать все IP-адреса",
|
||
"subPort": "Порт подписки",
|
||
"subPortDesc": "Номер порта для обслуживания службы подписки не должен использоваться на сервере",
|
||
"subCertPath": "Путь к файлу публичного ключа сертификата подписки",
|
||
"subCertPathDesc": "Введите полный путь, начинающийся с '/'",
|
||
"subKeyPath": "Путь к файлу приватного ключа сертификата подписки",
|
||
"subKeyPathDesc": "Введите полный путь, начинающийся с '/'",
|
||
"subPath": "URI-путь",
|
||
"subPathDesc": "Должен начинаться с '/' и заканчиваться на '/'",
|
||
"subDomain": "Домен прослушивания",
|
||
"subDomainDesc": "Оставьте пустым по умолчанию, чтобы слушать все домены и IP-адреса",
|
||
"subUpdates": "Интервалы обновления подписки",
|
||
"subUpdatesDesc": "Интервал между обновлениями в клиентском приложении (в часах)",
|
||
"subEncrypt": "Кодировать",
|
||
"subEncryptDesc": "Шифровать возвращенные конфиги в подписке",
|
||
"subShowInfo": "Показать информацию об использовании",
|
||
"subShowInfoDesc": "Отображать остаток трафика и дату окончания после имени конфигурации",
|
||
"subEmailInRemark": "Включать Email в название",
|
||
"subEmailInRemarkDesc": "Включать email клиента в название профиля подписки.",
|
||
"subURI": "URI обратного прокси",
|
||
"subURIDesc": "Изменить базовый URI URL-адреса подписки для использования за прокси-серверами",
|
||
"externalTrafficInformEnable": "Информация о внешнем трафике",
|
||
"externalTrafficInformEnableDesc": "Уведомлять внешний API при каждом обновлении трафика.",
|
||
"externalTrafficInformURI": "URI информации о внешнем трафике",
|
||
"externalTrafficInformURIDesc": "Обновления трафика отправляются на этот URI",
|
||
"restartXrayOnClientDisable": "Перезапускать Xray после автоотключения",
|
||
"restartXrayOnClientDisableDesc": "Когда клиент автоматически отключается из-за окончания срока действия или лимита трафика, перезапускать Xray.",
|
||
"fragment": "Фрагментация",
|
||
"fragmentDesc": "Включить фрагментацию TLS-хэндшейка",
|
||
"fragmentSett": "Настройки фрагментации",
|
||
"noisesDesc": "Включить Noises.",
|
||
"noisesSett": "Настройки Noises",
|
||
"trustedProxyCidrs": "Доверенные CIDR прокси",
|
||
"trustedProxyCidrsDesc": "IP/CIDR через запятую, которым разрешено устанавливать заголовки forwarded host, proto и client IP.",
|
||
"ldap": {
|
||
"enable": "Включить LDAP-синхронизацию",
|
||
"host": "LDAP-хост",
|
||
"port": "Порт LDAP",
|
||
"useTls": "Использовать TLS (LDAPS)",
|
||
"bindDn": "Bind DN",
|
||
"passwordConfigured": "Настроено; оставьте пустым, чтобы сохранить текущий пароль.",
|
||
"passwordUnconfigured": "Не настроено.",
|
||
"passwordPlaceholder": "Настроено — введите новое значение для замены",
|
||
"baseDn": "Base DN",
|
||
"userFilter": "Фильтр пользователя",
|
||
"userAttr": "Атрибут пользователя (username/email)",
|
||
"vlessField": "Атрибут VLESS-флага",
|
||
"flagField": "Общий атрибут флага (опц.)",
|
||
"flagFieldDesc": "Если задано, переопределяет флаг VLESS — напр. shadowInactive.",
|
||
"truthyValues": "Truthy-значения",
|
||
"truthyValuesDesc": "Через запятую; по умолчанию: true,1,yes,on",
|
||
"invertFlag": "Инвертировать флаг",
|
||
"invertFlagDesc": "Включите, когда атрибут означает «отключено» (напр. shadowInactive).",
|
||
"syncSchedule": "Расписание синхронизации",
|
||
"syncScheduleDesc": "Строка типа cron, напр. @every 1m",
|
||
"inboundTags": "Теги входящих",
|
||
"inboundTagsDesc": "Входящие, на которых LDAP-синхронизация может авто-создавать или авто-удалять клиентов.",
|
||
"noInbounds": "Входящие не найдены. Сначала создайте входящий.",
|
||
"autoCreate": "Авто-создание клиентов",
|
||
"autoDelete": "Авто-удаление клиентов",
|
||
"defaultTotalGb": "Объём по умолчанию (ГБ)",
|
||
"defaultExpiryDays": "Срок по умолчанию (дни)",
|
||
"defaultIpLimit": "Лимит IP по умолчанию"
|
||
},
|
||
"subFormats": {
|
||
"packets": "Пакеты",
|
||
"length": "Длина",
|
||
"interval": "Интервал",
|
||
"maxSplit": "Макс. разбиение",
|
||
"noises": "Шумы",
|
||
"noiseItem": "Шум №{n}",
|
||
"type": "Тип",
|
||
"packet": "Пакет",
|
||
"delayMs": "Задержка (мс)",
|
||
"applyTo": "Применить к",
|
||
"addNoise": "+ Шум",
|
||
"concurrency": "Параллелизм",
|
||
"xudpConcurrency": "Параллелизм xudp",
|
||
"xudpUdp443": "xudp UDP 443"
|
||
},
|
||
"mux": "Mux",
|
||
"muxDesc": "Передача нескольких независимых потоков данных в одном соединении.",
|
||
"muxSett": "Настройки Mux",
|
||
"direct": "Прямое подключение",
|
||
"directDesc": "Устанавливает прямые соединения с доменами или IP-адресами определённой страны.",
|
||
"notifications": "Уведомления",
|
||
"certs": "Сертификаты",
|
||
"externalTraffic": "Внешний трафик",
|
||
"dateAndTime": "Дата и время",
|
||
"proxyAndServer": "Прокси и сервер",
|
||
"intervals": "Интервалы",
|
||
"information": "Информация",
|
||
"language": "Язык интерфейса",
|
||
"telegramBotLanguage": "Язык Telegram-бота",
|
||
"security": {
|
||
"admin": "Учетные данные администратора",
|
||
"twoFactor": "Двухфакторная аутентификация",
|
||
"twoFactorEnable": "Включить 2FA",
|
||
"twoFactorEnableDesc": "Добавляет дополнительный уровень аутентификации для повышения безопасности.",
|
||
"twoFactorModalSetTitle": "Включить двухфакторную аутентификацию",
|
||
"twoFactorModalDeleteTitle": "Отключить двухфакторную аутентификацию",
|
||
"twoFactorModalSteps": "Для настройки двухфакторной аутентификации выполните несколько шагов:",
|
||
"twoFactorModalFirstStep": "1. Отсканируйте этот QR-код в приложении для аутентификации или скопируйте токен рядом с QR-кодом и вставьте его в приложение",
|
||
"twoFactorModalSecondStep": "2. Введите код из приложения",
|
||
"twoFactorModalRemoveStep": "Введите код из приложения, чтобы отключить двухфакторную аутентификацию.",
|
||
"twoFactorModalChangeCredentialsTitle": "Изменить учетные данные",
|
||
"twoFactorModalChangeCredentialsStep": "Введите код из приложения, чтобы изменить учетные данные администратора.",
|
||
"twoFactorModalSetSuccess": "Двухфакторная аутентификация была успешно установлена",
|
||
"twoFactorModalDeleteSuccess": "Двухфакторная аутентификация была успешно удалена",
|
||
"twoFactorModalError": "Неверный код",
|
||
"show": "Показать",
|
||
"hide": "Скрыть",
|
||
"apiTokenNew": "Новый токен",
|
||
"apiTokenName": "Имя",
|
||
"apiTokenNamePlaceholder": "например, central-panel-a",
|
||
"apiTokenNameRequired": "Имя обязательно",
|
||
"apiTokenEmpty": "Токенов пока нет — создайте один для аутентификации ботов или удалённых панелей.",
|
||
"apiTokenDeleteWarning": "Любой клиент, использующий этот токен, немедленно потеряет аутентификацию."
|
||
},
|
||
"toasts": {
|
||
"modifySettings": "Настройки изменены",
|
||
"getSettings": "Произошла ошибка при получении параметров.",
|
||
"modifyUserError": "Произошла ошибка при изменении учетных данных администратора.",
|
||
"modifyUser": "Вы успешно изменили учетные данные администратора.",
|
||
"originalUserPassIncorrect": "Неверное имя пользователя или пароль",
|
||
"userPassMustBeNotEmpty": "Новое имя пользователя и новый пароль должны быть заполнены",
|
||
"getOutboundTrafficError": "Ошибка получения трафика исходящего подключения",
|
||
"resetOutboundTrafficError": "Ошибка сброса трафика исходящего подключения"
|
||
}
|
||
},
|
||
"xray": {
|
||
"title": "Настройки Xray",
|
||
"save": "Сохранить",
|
||
"restart": "Перезапуск Xray",
|
||
"restartSuccess": "Xray успешно перезапущен",
|
||
"restartOutputTitle": "Вывод перезапуска Xray",
|
||
"restartConfirmTitle": "Перезапустить xray?",
|
||
"restartConfirmContent": "Перезагружает сервис xray с сохранённой конфигурацией.",
|
||
"stopSuccess": "Xray успешно остановлен",
|
||
"restartError": "Произошла ошибка при перезапуске Xray.",
|
||
"stopError": "Произошла ошибка при остановке Xray.",
|
||
"basicTemplate": "Основное",
|
||
"advancedTemplate": "Расширенный шаблон",
|
||
"generalConfigs": "Основные настройки",
|
||
"generalConfigsDesc": "Эти параметры описывают общие настройки",
|
||
"logConfigs": "Лог",
|
||
"logConfigsDesc": "Логи могут замедлять работу сервера. Включайте только нужные вам виды логов при необходимости!",
|
||
"blockConfigsDesc": "Настройте, чтобы клиенты не имели доступа к определенным протоколам",
|
||
"basicRouting": "Базовые соединения",
|
||
"blockConnectionsConfigsDesc": "Эти параметры будут блокировать трафик в зависимости от страны назначения.",
|
||
"directConnectionsConfigsDesc": "Прямое соединение означает, что определенный трафик не будет перенаправлен через другой сервер.",
|
||
"blockips": "Заблокированные IP-адреса",
|
||
"blockdomains": "Заблокированные домены",
|
||
"directips": "Прямые IP-адреса",
|
||
"directdomains": "Прямые домены",
|
||
"ipv4Routing": "Правила IPv4",
|
||
"ipv4RoutingDesc": "Эти параметры позволят клиентам маршрутизироваться к целевым доменам только через IPv4",
|
||
"warpRouting": "Правила WARP",
|
||
"warpRoutingDesc": " Эти опции будут направлять трафик в зависимости от конкретного пункта назначения через WARP.",
|
||
"nordRouting": "Маршрутизация NordVPN",
|
||
"nordRoutingDesc": "Эти опции будут направлять трафик в зависимости от конкретного пункта назначения через NordVPN.",
|
||
"Template": "Шаблон конфигурации Xray",
|
||
"TemplateDesc": "На основе шаблона создаётся конфигурационный файл Xray.",
|
||
"FreedomStrategy": "Настройка стратегии протокола Freedom",
|
||
"FreedomStrategyDesc": "Установка стратегии вывода сети в протоколе Freedom",
|
||
"RoutingStrategy": "Настройка маршрутизации доменов",
|
||
"RoutingStrategyDesc": "Установка общей стратегии маршрутизации разрешения DNS",
|
||
"outboundTestUrl": "URL для теста исходящего",
|
||
"outboundTestUrlDesc": "URL для проверки подключения исходящего",
|
||
"Torrent": "Заблокировать BitTorrent",
|
||
"Inbounds": "Входящие",
|
||
"InboundsDesc": "Изменение шаблона конфигурации для подключения определенных клиентов",
|
||
"Outbounds": "Исходящие",
|
||
"Balancers": "Балансировщик",
|
||
"balancerTagRequired": "Тег обязателен",
|
||
"balancerSelectorRequired": "Выберите хотя бы одно исходящее",
|
||
"OutboundsDesc": "Изменение шаблона конфигурации, чтобы определить исходящие подключения для этого сервера",
|
||
"Routings": "Маршрутизация",
|
||
"RoutingsDesc": "Важен приоритет каждого правила!",
|
||
"completeTemplate": "Все",
|
||
"logLevel": "Уровень логов",
|
||
"logLevelDesc": "Уровень журнала для журналов ошибок, указывающий информацию, которую необходимо записать.",
|
||
"accessLog": "Логи доступа",
|
||
"accessLogDesc": "Путь к файлу журнала доступа. Специальное значение «none» отключает логи доступа.",
|
||
"errorLog": "Логи ошибок",
|
||
"errorLogDesc": "Путь к файлу логов ошибок. Специальное значение «none» отключает логи ошибок.",
|
||
"dnsLog": "Логи DNS",
|
||
"dnsLogDesc": "Включить логи запросов DNS",
|
||
"maskAddress": "Маскировка адреса",
|
||
"maskAddressDesc": "При активации реальный IP-адрес заменяется на маскировочный в логах.",
|
||
"statistics": "Статистика",
|
||
"statsInboundUplink": "Статистика входящего аплинка",
|
||
"statsInboundUplinkDesc": "Включает сбор статистики для исходящего трафика всех входящих прокси.",
|
||
"statsInboundDownlink": "Статистика входящего даунлинка",
|
||
"statsInboundDownlinkDesc": "Включает сбор статистики для входящего трафика всех входящих прокси.",
|
||
"statsOutboundUplink": "Статистика исходящего аплинка",
|
||
"statsOutboundUplinkDesc": "Включает сбор статистики для исходящего трафика всех исходящих прокси.",
|
||
"statsOutboundDownlink": "Статистика исходящего даунлинка",
|
||
"statsOutboundDownlinkDesc": "Включает сбор статистики для входящего трафика всех исходящих прокси.",
|
||
"rules": {
|
||
"first": "Первый",
|
||
"last": "Последний",
|
||
"up": "Поднять вверх",
|
||
"down": "Опустить вниз",
|
||
"source": "Источник",
|
||
"dest": "Пункт назначения",
|
||
"inbound": "Входящее подключение",
|
||
"outbound": "Исходящее подключение",
|
||
"balancer": "Балансировщик",
|
||
"info": "Инфо",
|
||
"add": "Создать правило",
|
||
"edit": "Редактировать правило",
|
||
"useComma": "Элементы, разделённые запятыми"
|
||
},
|
||
"routing": {
|
||
"dragToReorder": "Перетащите для изменения порядка"
|
||
},
|
||
"ruleForm": {
|
||
"sourceIps": "IP источника",
|
||
"sourcePort": "Порт источника",
|
||
"vlessRoute": "VLESS route",
|
||
"attributes": "Атрибуты",
|
||
"value": "Значение",
|
||
"user": "Пользователь",
|
||
"inboundTags": "Теги входящих",
|
||
"outboundTag": "Тег исходящего",
|
||
"balancerTag": "Тег балансировщика",
|
||
"balancerTagTooltip": "Направляет трафик через один из настроенных балансировщиков нагрузки"
|
||
},
|
||
"outboundForm": {
|
||
"tagDuplicate": "Тег уже используется другим исходящим",
|
||
"tagRequired": "Тег обязателен",
|
||
"tagPlaceholder": "уникальный-тег",
|
||
"localIpPlaceholder": "локальный IP",
|
||
"addressRequired": "Адрес обязателен",
|
||
"portRequired": "Порт обязателен",
|
||
"optional": "опционально",
|
||
"udpOverTcp": "UDP over TCP",
|
||
"uotVersion": "Версия UoT",
|
||
"inboundTag": "Тег входящего",
|
||
"inboundTagPlaceholder": "тег входящего в правилах маршрутизации",
|
||
"responseType": "Тип ответа",
|
||
"rewriteNetwork": "Переписать сеть",
|
||
"unchanged": "(без изменений)",
|
||
"unchangedAddress": "(без изменений) напр. 1.1.1.1",
|
||
"rules": "Правила",
|
||
"ruleN": "Правило {n}",
|
||
"action": "Действие",
|
||
"redirect": "Redirect",
|
||
"fragment": "Fragment",
|
||
"finalRules": "Финальные правила",
|
||
"overrideXrayPrivateIp": "Переопределить дефолтный блок частных IP в Xray",
|
||
"blockDelay": "Задержка блока (мс)",
|
||
"reverseSniffing": "Обратный sniffing",
|
||
"workers": "Воркеры",
|
||
"reserved": "Зарезервировано",
|
||
"minUploadInterval": "Мин. интервал загрузки (мс)",
|
||
"maxUploadSizeBytes": "Макс. размер загрузки (байт)",
|
||
"uplinkChunkSize": "Размер chunk Uplink",
|
||
"noGrpcHeader": "Без gRPC-заголовка",
|
||
"maxConcurrency": "Макс. параллелизм",
|
||
"maxConnections": "Макс. соединений",
|
||
"maxReuseTimes": "Макс. повторных использований",
|
||
"maxRequestTimes": "Макс. запросов",
|
||
"maxReusableSecs": "Макс. секунд повторного использования",
|
||
"keepAlivePeriod": "Период keep alive",
|
||
"authPassword": "Пароль авторизации",
|
||
"visionTestpre": "Vision testpre",
|
||
"serverNamePlaceholder": "имя сервера",
|
||
"verifyPeerName": "Проверять имя peer",
|
||
"pinnedSha256": "Pinned SHA256",
|
||
"shortId": "Short ID",
|
||
"sockopts": "Sockopts",
|
||
"keepAliveInterval": "Интервал keep alive",
|
||
"markFwmark": "Mark (fwmark)",
|
||
"interface": "Интерфейс",
|
||
"ipv6Only": "Только IPv6",
|
||
"acceptProxyProtocol": "Принимать proxy protocol",
|
||
"tcpUserTimeoutMs": "TCP user timeout (мс)",
|
||
"tcpKeepAliveIdleS": "TCP keep-alive idle (с)"
|
||
},
|
||
"outbound": {
|
||
"addOutbound": "Создать исходящее подключение",
|
||
"addReverse": "Создать реверс-прокси",
|
||
"editOutbound": "Изменить исходящее подключение",
|
||
"editReverse": "Редактировать реверс-прокси",
|
||
"reverseTag": "Тег реверс-прокси",
|
||
"reverseTagDesc": "Тег исходящего подключения для простого реверс-прокси VLESS. Оставьте пустым для отключения.",
|
||
"reverseTagPlaceholder": "тег исходящего (пусто = отключено)",
|
||
"tag": "Тег",
|
||
"tagDesc": "Уникальный тег",
|
||
"address": "Адрес",
|
||
"reverse": "Реверс-прокси",
|
||
"domain": "Домен",
|
||
"type": "Тип",
|
||
"bridge": "Bridge",
|
||
"portal": "Portal",
|
||
"link": "Ссылка",
|
||
"intercon": "Соединение",
|
||
"settings": "Настройки",
|
||
"accountInfo": "Информация об учетной записи",
|
||
"outboundStatus": "Статус исходящего подключения",
|
||
"sendThrough": "Отправить через",
|
||
"test": "Тест",
|
||
"testResult": "Результат теста",
|
||
"testing": "Тестирование соединения...",
|
||
"testSuccess": "Тест успешен",
|
||
"testFailed": "Тест не пройден",
|
||
"testError": "Не удалось протестировать исходящее подключение",
|
||
"testModeTooltip": "TCP: быстрый dial-only probe. HTTP: полный запрос через xray.",
|
||
"testAll": "Тестировать все",
|
||
"nordvpn": "NordVPN",
|
||
"accessToken": "Токен доступа",
|
||
"country": "Страна",
|
||
"server": "Сервер",
|
||
"city": "Город",
|
||
"allCities": "Все города",
|
||
"privateKey": "Приватный ключ",
|
||
"load": "Нагрузка"
|
||
},
|
||
"balancer": {
|
||
"addBalancer": "Создать балансировщик",
|
||
"editBalancer": "Редактировать балансировщик",
|
||
"balancerStrategy": "Стратегия",
|
||
"balancerSelectors": "Селекторы",
|
||
"tag": "Тег",
|
||
"tagDesc": "Уникальный тег",
|
||
"tagDuplicate": "Тег уже используется другим балансировщиком",
|
||
"tagPlaceholder": "уникальный тег балансировщика",
|
||
"selector": "Селектор",
|
||
"fallback": "Fallback",
|
||
"expected": "Ожидаемое",
|
||
"expectedPlaceholder": "оптимальное число узлов",
|
||
"maxRtt": "Макс. RTT",
|
||
"tolerance": "Допуск",
|
||
"baselines": "Baselines",
|
||
"costs": "Costs",
|
||
"balancerDesc": "Невозможно одновременно использовать balancerTag и outboundTag. При одновременном использовании будет работать только outboundTag."
|
||
},
|
||
"wireguard": {
|
||
"secretKey": "Секретный ключ",
|
||
"publicKey": "Публичный ключ",
|
||
"allowedIPs": "Разрешенные IP-адреса",
|
||
"endpoint": "Конечная точка",
|
||
"psk": "Общий ключ",
|
||
"domainStrategy": "Стратегия домена"
|
||
},
|
||
"tun": {
|
||
"nameDesc": "Имя интерфейса TUN. Значение по умолчанию - 'xray0'",
|
||
"mtuDesc": "Максимальная единица передачи. Максимальный размер пакетов данных. Значение по умолчанию - 1500",
|
||
"userLevel": "Уровень пользователя",
|
||
"userLevelDesc": "Все соединения, установленные через этот входящий поток, будут использовать этот уровень пользователя. Значение по умолчанию - 0"
|
||
},
|
||
"nord": {
|
||
"accessToken": "Access token",
|
||
"privateKey": "Приватный ключ",
|
||
"noServers": "Серверов для выбранной страны не найдено",
|
||
"noPublicKey": "Выбранный сервер не сообщает публичный ключ NordLynx.",
|
||
"outboundAdded": "Исходящий NordVPN добавлен",
|
||
"outboundUpdated": "Исходящий NordVPN обновлён"
|
||
},
|
||
"warp": {
|
||
"licenseError": "Не удалось установить лицензию WARP.",
|
||
"fetchFirst": "Сначала получите WARP-конфиг.",
|
||
"createAccount": "Создать аккаунт WARP",
|
||
"accessToken": "Access token",
|
||
"deviceId": "ID устройства",
|
||
"licenseKey": "Лицензионный ключ",
|
||
"privateKey": "Приватный ключ",
|
||
"deleteAccount": "Удалить аккаунт",
|
||
"settings": "Настройки",
|
||
"licenseKeyLabel": "Лицензионный ключ WARP / WARP+",
|
||
"key": "Ключ",
|
||
"keyPlaceholder": "26-символьный ключ WARP+",
|
||
"accountInfo": "Информация об аккаунте",
|
||
"deviceName": "Имя устройства",
|
||
"deviceModel": "Модель устройства",
|
||
"deviceEnabled": "Устройство включено",
|
||
"accountType": "Тип аккаунта",
|
||
"role": "Роль",
|
||
"warpPlusData": "WARP+ data",
|
||
"quota": "Квота",
|
||
"usage": "Использование",
|
||
"addOutbound": "Добавить исходящий"
|
||
},
|
||
"dns": {
|
||
"enable": "Включить DNS",
|
||
"enableDesc": "Включить встроенный DNS-сервер",
|
||
"tag": "Название тега DNS",
|
||
"tagDesc": "Этот тег будет доступен как входящий тег в правилах маршрутизации.",
|
||
"clientIp": "IP клиента",
|
||
"clientIpDesc": "Используется для уведомления сервера о указанном местоположении IP во время DNS-запросов",
|
||
"disableCache": "Отключить кэш",
|
||
"disableCacheDesc": "Отключает кэширование DNS",
|
||
"disableFallback": "Отключить резервный DNS",
|
||
"disableFallbackDesc": "Отключает резервные DNS-запросы",
|
||
"disableFallbackIfMatch": "Отключить резервный DNS при совпадении",
|
||
"disableFallbackIfMatchDesc": "Отключает резервные DNS-запросы при совпадении списка доменов DNS-сервера",
|
||
"enableParallelQuery": "Включить параллельные запросы",
|
||
"enableParallelQueryDesc": "Включить параллельные DNS-запросы к нескольким серверам для более быстрого разрешения",
|
||
"strategy": "Стратегия запроса",
|
||
"strategyDesc": "Общая стратегия разрешения доменных имен",
|
||
"add": "Создать DNS",
|
||
"edit": "Редактировать DNS",
|
||
"domains": "Домены",
|
||
"expectIPs": "Ожидаемые IP",
|
||
"unexpectIPs": "Неожидаемые IP",
|
||
"useSystemHosts": "Использовать системные Hosts",
|
||
"useSystemHostsDesc": "Использовать файл hosts из установленной системы",
|
||
"serveStale": "Использовать устаревшие",
|
||
"serveStaleDesc": "Возвращать устаревшие результаты из кэша во время обновления в фоне",
|
||
"serveExpiredTTL": "TTL устаревших",
|
||
"serveExpiredTTLDesc": "Срок действия (секунды) устаревших записей кэша; 0 = бессрочно",
|
||
"timeoutMs": "Тайм-аут (мс)",
|
||
"skipFallback": "Пропустить Fallback",
|
||
"finalQuery": "Финальный запрос",
|
||
"hosts": "Hosts",
|
||
"hostsAdd": "Добавить Host",
|
||
"hostsEmpty": "Host не определены",
|
||
"hostsDomain": "Домен (напр. domain:example.com)",
|
||
"hostsValues": "IP или домен — введите и нажмите Enter",
|
||
"usePreset": "Использовать шаблон",
|
||
"dnsPresetTitle": "Шаблоны DNS",
|
||
"dnsPresetFamily": "Семейный",
|
||
"clearAll": "Удалить все",
|
||
"clearAllTitle": "Удалить все DNS-серверы?",
|
||
"clearAllConfirm": "Все DNS-серверы будут удалены из списка. Это действие нельзя отменить."
|
||
},
|
||
"fakedns": {
|
||
"add": "Создать Fake DNS",
|
||
"edit": "Редактировать Fake DNS",
|
||
"ipPool": "Подсеть пула IP",
|
||
"poolSize": "Размер пула"
|
||
}
|
||
}
|
||
},
|
||
"tgbot": {
|
||
"keyboardClosed": "❌ Клавиатура закрыта.",
|
||
"noResult": "❗ Нет результатов.",
|
||
"noQuery": "❌ Запрос не найден. Пожалуйста, повторите команду.",
|
||
"wentWrong": "❌ Что-то пошло не так...",
|
||
"noIpRecord": "❗ Нет записей об IP-адресе.",
|
||
"noInbounds": "❗ У вас не настроено ни одного входящего подключения.",
|
||
"unlimited": "♾ Безлимит",
|
||
"add": "Добавить",
|
||
"month": "Месяц",
|
||
"months": "Месяцев",
|
||
"day": "День",
|
||
"days": "Дней",
|
||
"hours": "Часов",
|
||
"minutes": "Минуты",
|
||
"unknown": "Неизвестно",
|
||
"inbounds": "Входящие",
|
||
"clients": "Клиенты",
|
||
"offline": "🔴 Не в сети",
|
||
"online": "🟢 В сети",
|
||
"commands": {
|
||
"unknown": "❗ Неизвестная команда",
|
||
"pleaseChoose": "👇 Пожалуйста, выберите:\r\n",
|
||
"help": "🤖 Добро пожаловать! Этот бот предназначен для предоставления вам данных с сервера и позволяет вносить изменения на него.\r\n\r\n",
|
||
"start": "👋 Привет, <i>{{ .Firstname }}</i>.\r\n",
|
||
"welcome": "🤖 Добро пожаловать в бота управления <b>{{ .Hostname }}</b>!\r\n",
|
||
"status": "✅ Бот функционирует нормально.",
|
||
"usage": "❗ Пожалуйста, укажите email для поиска.",
|
||
"getID": "🆔 Ваш User ID: <code>{{ .ID }}</code>",
|
||
"helpAdminCommands": "🔃 Для перезапуска Xray Core:\r\n<code>/restart</code>\r\n\r\n🔎 Для поиска клиента по email:\r\n<code>/usage [Email]</code>\r\n\r\n📊 Для поиска входящих подключений (со статистикой клиентов):\r\n<code>/inbound [имя подключения]</code>\r\n\r\n🆔 Ваш Telegram User ID:\r\n<code>/id</code>",
|
||
"helpClientCommands": "💲 Для просмотра информации о вашей подписке используйте команду:\r\n<code>/usage [Email]</code>\r\n\r\n🆔 Ваш Telegram User ID:\r\n<code>/id</code>",
|
||
"restartUsage": "\r\n\r\n<code>/restart</code>",
|
||
"restartSuccess": "✅ Ядро Xray успешно перезапущено.",
|
||
"restartFailed": "❗ Ошибка при перезапуске Xray-core.\r\n\r\n<code>Ошибка: {{ .Error }}</code>.",
|
||
"xrayNotRunning": "❗ Xray Core не запущен.",
|
||
"startDesc": "Показать главное меню",
|
||
"helpDesc": "Справка по боту",
|
||
"statusDesc": "Проверить статус бота",
|
||
"idDesc": "Показать ваш Telegram ID"
|
||
},
|
||
"messages": {
|
||
"cpuThreshold": "🔴 Загрузка процессора составляет {{ .Percent }}%, что превышает пороговое значение {{ .Threshold }}%",
|
||
"selectUserFailed": "❌ Ошибка при выборе пользователя.",
|
||
"userSaved": "✅ Пользователь Telegram сохранен.",
|
||
"loginSuccess": "✅ Успешный вход в панель.\r\n",
|
||
"loginFailed": "❗️ Ошибка входа в панель.\r\n",
|
||
"2faFailed": "Ошибка 2FA",
|
||
"report": "🕰 Запланированные отчеты: {{ .RunTime }}\r\n",
|
||
"datetime": "⏰ Дата и время: {{ .DateTime }}\r\n",
|
||
"hostname": "💻 Хост: {{ .Hostname }}\r\n",
|
||
"version": "🚀 Версия X-UI: {{ .Version }}\r\n",
|
||
"xrayVersion": "📡 Версия Xray: {{ .XrayVersion }}\r\n",
|
||
"ipv6": "🌐 IPv6: {{ .IPv6 }}\r\n",
|
||
"ipv4": "🌐 IPv4: {{ .IPv4 }}\r\n",
|
||
"ip": "🌐 IP: {{ .IP }}\r\n",
|
||
"ips": "🔢 IP:\r\n{{ .IPs }}\r\n",
|
||
"serverUpTime": "⏳ Время работы сервера: {{ .UpTime }} {{ .Unit }}\r\n",
|
||
"serverLoad": "📈 Нагрузка сервера: {{ .Load1 }}, {{ .Load2 }}, {{ .Load3 }}\r\n",
|
||
"serverMemory": "📋 RAM: {{ .Current }}/{{ .Total }}\r\n",
|
||
"tcpCount": "🔹 TCP: {{ .Count }}\r\n",
|
||
"udpCount": "🔸 UDP: {{ .Count }}\r\n",
|
||
"traffic": "🚦 Трафик: {{ .Total }} (↑{{ .Upload }},↓{{ .Download }})\r\n",
|
||
"xrayStatus": "ℹ️ Статус: {{ .State }}\r\n",
|
||
"username": "👤 Имя пользователя: {{ .Username }}\r\n",
|
||
"reason": "❗️ Причина: {{ .Reason }}\r\n",
|
||
"time": "⏰ Время: {{ .Time }}\r\n",
|
||
"inbound": "📍 Входящий: {{ .Remark }}\r\n",
|
||
"port": "🔌 Порт: {{ .Port }}\r\n",
|
||
"expire": "📅 Дата окончания: {{ .Time }}\r\n",
|
||
"expireIn": "📅 Окончание через: {{ .Time }}\r\n",
|
||
"active": "💡 Активен: {{ .Enable }}\r\n",
|
||
"enabled": "🚨 Активен: {{ .Enable }}\r\n",
|
||
"online": "🌐 Статус соединения: {{ .Status }}\r\n",
|
||
"lastOnline": "🔙 Был(а) в сети: {{ .Time }}\r\n",
|
||
"email": "📧 Email: {{ .Email }}\r\n",
|
||
"upload": "🔼 Загрузка: ↑{{ .Upload }}\r\n",
|
||
"download": "🔽 Загрузка: ↓{{ .Download }}\r\n",
|
||
"total": "📊 Всего: ↑↓{{ .UpDown }} / {{ .Total }}\r\n",
|
||
"TGUser": "👤 Telegram User ID: {{ .TelegramID }}\r\n",
|
||
"exhaustedMsg": "🚨 Исчерпаны {{ .Type }}:\r\n",
|
||
"exhaustedCount": "🚨 Количество исчерпанных {{ .Type }}:\r\n",
|
||
"onlinesCount": "🌐 Клиентов онлайн: {{ .Count }}\r\n",
|
||
"disabled": "🛑 Отключено: {{ .Disabled }}\r\n",
|
||
"depleteSoon": "🔜 Клиенты, у которых скоро исчерпание: {{ .Deplete }}\r\n\r\n",
|
||
"backupTime": "🗄 Время резервного копирования: {{ .Time }}\r\n",
|
||
"refreshedOn": "\r\n📋🔄 Обновлено: {{ .Time }}\r\n\r\n",
|
||
"yes": "✅ Да",
|
||
"no": "❌ Нет",
|
||
"received_id": "🔑📥 ID обновлён.",
|
||
"received_password": "🔑📥 Пароль обновлён.",
|
||
"received_email": "📧📥 Email обновлен.",
|
||
"received_comment": "💬📥 Комментарий обновлён.",
|
||
"id_prompt": "🔑 Стандартный ID: {{ .ClientId }}\n\nВведите ваш ID.",
|
||
"pass_prompt": "🔑 Стандартный пароль: {{ .ClientPassword }}\n\nВведите ваш пароль.",
|
||
"email_prompt": "📧 Стандартный email: {{ .ClientEmail }}\n\nВведите ваш email.",
|
||
"comment_prompt": "💬 Стандартный комментарий: {{ .ClientComment }}\n\nВведите ваш комментарий.",
|
||
"inbound_client_data_id": "🔄 Входящие подключения: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 Email: {{ .ClientEmail }}\n📊 Трафик: {{ .ClientTraffic }}\n📅 Срок действия: {{ .ClientExp }}\n💬 Комментарий: {{ .ClientComment }}\n\nТеперь вы можете добавить клиента в входящее подключение!",
|
||
"inbound_client_data_pass": "🔄 Входящие подключения: {{ .InboundRemark }}\n\n🔑 Пароль: {{ .ClientPass }}\n📧 Email: {{ .ClientEmail }}\n📊 Трафик: {{ .ClientTraffic }}\n📅 Срок действия: {{ .ClientExp }}\n💬 Комментарий: {{ .ClientComment }}\n\nТеперь вы можете добавить клиента в входящее подключение!",
|
||
"cancel": "❌ Процесс отменён! \n\nВы можете снова начать с /start в любое время. 🔄",
|
||
"error_add_client": "⚠️ Ошибка:\n\n {{ .error }}",
|
||
"using_default_value": "Используется значение по умолчанию👌",
|
||
"incorrect_input": "Ваш ввод недействителен.\nФразы должны быть непрерывными без пробелов.\nПравильный пример: aaaaaa\nНеправильный пример: aaa aaa 🚫",
|
||
"AreYouSure": "Вы уверены? 🤔",
|
||
"SuccessResetTraffic": "📧 Почта: {{ .ClientEmail }}\n🏁 Результат: ✅ Успешно",
|
||
"FailedResetTraffic": "📧 Почта: {{ .ClientEmail }}\n🏁 Результат: ❌ Неудача \n\n🛠️ Ошибка: [ {{ .ErrorMessage }} ]",
|
||
"FinishProcess": "🔚 Сброс трафика завершён для всех клиентов."
|
||
},
|
||
"buttons": {
|
||
"closeKeyboard": "❌ Закрыть клавиатуру",
|
||
"cancel": "❌ Отмена",
|
||
"cancelReset": "❌ Отменить сброс",
|
||
"cancelIpLimit": "❌ Отменить лимит IP",
|
||
"confirmResetTraffic": "✅ Подтвердить сброс трафика?",
|
||
"confirmClearIps": "✅ Подтвердить очистку IP?",
|
||
"confirmRemoveTGUser": "✅ Подтвердить удаление пользователя Telegram?",
|
||
"confirmToggle": "✅ Подтвердить вкл/выкл пользователя?",
|
||
"dbBackup": "📂 Бэкап БД",
|
||
"serverUsage": "💻 Состояние сервера",
|
||
"getInbounds": "🔌 Входящие подключения",
|
||
"depleteSoon": "⚠️ Скоро конец",
|
||
"clientUsage": "Статистика клиента",
|
||
"onlines": "🟢 Онлайн",
|
||
"commands": "🖱️ Команды",
|
||
"refresh": "🔄 Обновить",
|
||
"clearIPs": "❌ Очистить IP",
|
||
"removeTGUser": "❌ Удалить пользователя Telegram",
|
||
"selectTGUser": "👤 Выбрать пользователя Telegram",
|
||
"selectOneTGUser": "👤 Выберите пользователя Telegram:",
|
||
"resetTraffic": "📈 Сбросить трафик",
|
||
"resetExpire": "📅 Изменить дату окончания",
|
||
"ipLog": "🔢 Лог IP",
|
||
"ipLimit": "🔢 Лимит IP",
|
||
"setTGUser": "👤 Установить пользователя Telegram",
|
||
"toggle": "🔘 Вкл./Выкл.",
|
||
"custom": "🔢 Своё",
|
||
"confirmNumber": "✅ Подтвердить: {{ .Num }}",
|
||
"confirmNumberAdd": "✅ Подтвердить добавление: {{ .Num }}",
|
||
"limitTraffic": "🚧 Лимит трафика",
|
||
"getBanLogs": "📄 Лог банов",
|
||
"allClients": "👥 Все клиенты",
|
||
"addClient": "➕ Новый клиент",
|
||
"submitDisable": "Добавить отключенным ☑️",
|
||
"submitEnable": "Добавить включенным ✅",
|
||
"use_default": "🏷️ Использовать по умолчанию",
|
||
"change_id": "⚙️🔑 ID",
|
||
"change_password": "⚙️🔑 Пароль",
|
||
"change_email": "⚙️📧 Email",
|
||
"change_comment": "⚙️💬 Комментарий",
|
||
"change_flow": "⚙️🚦 Flow",
|
||
"ResetAllTraffics": "Сбросить весь трафик",
|
||
"SortedTrafficUsageReport": "Отсортированный отчет об использовании трафика"
|
||
},
|
||
"answers": {
|
||
"successfulOperation": "✅ Успешно!",
|
||
"errorOperation": "❗ Ошибка в операции.",
|
||
"getInboundsFailed": "❌ Не удалось получить входящие подключения.",
|
||
"getClientsFailed": "❌ Не удалось получить клиентов.",
|
||
"canceled": "❌ {{ .Email }}: Операция отменена.",
|
||
"clientRefreshSuccess": "✅ {{ .Email }}: Клиент успешно обновлен.",
|
||
"IpRefreshSuccess": "✅ {{ .Email }}: IP-адреса успешно обновлены.",
|
||
"TGIdRefreshSuccess": "✅ {{ .Email }}: Пользователь Telegram клиента успешно обновлен.",
|
||
"resetTrafficSuccess": "✅ {{ .Email }}: Трафик успешно сброшен.",
|
||
"setTrafficLimitSuccess": "✅ {{ .Email }}: Лимит трафика успешно установлен.",
|
||
"expireResetSuccess": "✅ {{ .Email }}: Срок действия успешно сброшен.",
|
||
"resetIpSuccess": "✅ {{ .Email }}: Лимит IP ({{ .Count }}) успешно сохранен.",
|
||
"clearIpSuccess": "✅ {{ .Email }}: IP-адреса успешно очищены.",
|
||
"getIpLog": "✅ {{ .Email }}: Получен лог IP.",
|
||
"getUserInfo": "✅ {{ .Email }}: Получена информация о пользователе Telegram.",
|
||
"removedTGUserSuccess": "✅ {{ .Email }}: Пользователь Telegram успешно удален.",
|
||
"enableSuccess": "✅ {{ .Email }}: Включено успешно.",
|
||
"disableSuccess": "✅ {{ .Email }}: Отключено успешно.",
|
||
"askToAddUserId": "❌ Ваша конфигурация не найдена!\r\n💭 Пожалуйста, попросите администратора использовать ваш Telegram User ID в конфигурации.\r\n\r\n🆔 Ваш User ID: <code>{{ .TgUserID }}</code>",
|
||
"chooseClient": "Выберите клиента для входящего подключения {{ .Inbound }}",
|
||
"chooseInbound": "Выберите входящее подключение"
|
||
}
|
||
}
|
||
}
|