|
@@ -8,15 +8,22 @@
|
|
|
"save": "Сохранить",
|
|
"save": "Сохранить",
|
|
|
"logout": "Выход",
|
|
"logout": "Выход",
|
|
|
"create": "Создать",
|
|
"create": "Создать",
|
|
|
|
|
+ "add": "Добавить",
|
|
|
|
|
+ "remove": "Удалить",
|
|
|
"update": "Обновить",
|
|
"update": "Обновить",
|
|
|
"copy": "Копировать",
|
|
"copy": "Копировать",
|
|
|
"copied": "Скопировано",
|
|
"copied": "Скопировано",
|
|
|
|
|
+ "more": "ещё",
|
|
|
"download": "Скачать",
|
|
"download": "Скачать",
|
|
|
"remark": "Примечание",
|
|
"remark": "Примечание",
|
|
|
"enable": "Включить",
|
|
"enable": "Включить",
|
|
|
"protocol": "Протокол",
|
|
"protocol": "Протокол",
|
|
|
"search": "Поиск",
|
|
"search": "Поиск",
|
|
|
"filter": "Фильтр",
|
|
"filter": "Фильтр",
|
|
|
|
|
+ "all": "Все",
|
|
|
|
|
+ "from": "От",
|
|
|
|
|
+ "to": "До",
|
|
|
|
|
+ "done": "Готово",
|
|
|
"loading": "Загрузка...",
|
|
"loading": "Загрузка...",
|
|
|
"refresh": "Обновить",
|
|
"refresh": "Обновить",
|
|
|
"clear": "Очистить",
|
|
"clear": "Очистить",
|
|
@@ -27,12 +34,12 @@
|
|
|
"check": "Проверить",
|
|
"check": "Проверить",
|
|
|
"indefinite": "Бесконечно",
|
|
"indefinite": "Бесконечно",
|
|
|
"unlimited": "Безлимит",
|
|
"unlimited": "Безлимит",
|
|
|
- "none": "Пусто",
|
|
|
|
|
|
|
+ "none": "Нет",
|
|
|
"qrCode": "QR-код",
|
|
"qrCode": "QR-код",
|
|
|
"info": "Информация",
|
|
"info": "Информация",
|
|
|
"edit": "Изменить",
|
|
"edit": "Изменить",
|
|
|
"delete": "Удалить",
|
|
"delete": "Удалить",
|
|
|
- "reset": "Сбросить",
|
|
|
|
|
|
|
+ "reset": "Сброс",
|
|
|
"noData": "Нет данных.",
|
|
"noData": "Нет данных.",
|
|
|
"copySuccess": "Скопировано",
|
|
"copySuccess": "Скопировано",
|
|
|
"sure": "Да",
|
|
"sure": "Да",
|
|
@@ -41,14 +48,14 @@
|
|
|
"transmission": "Транспорт",
|
|
"transmission": "Транспорт",
|
|
|
"host": "Хост",
|
|
"host": "Хост",
|
|
|
"path": "Путь",
|
|
"path": "Путь",
|
|
|
- "camouflage": "Маскировка",
|
|
|
|
|
|
|
+ "camouflage": "Обфускация",
|
|
|
"status": "Статус",
|
|
"status": "Статус",
|
|
|
"enabled": "Включено",
|
|
"enabled": "Включено",
|
|
|
"disabled": "Отключено",
|
|
"disabled": "Отключено",
|
|
|
"depleted": "Исчерпано",
|
|
"depleted": "Исчерпано",
|
|
|
"depletingSoon": "Почти исчерпано",
|
|
"depletingSoon": "Почти исчерпано",
|
|
|
- "offline": "Офлайн",
|
|
|
|
|
- "online": "Онлайн",
|
|
|
|
|
|
|
+ "offline": "Не в сети",
|
|
|
|
|
+ "online": "В сети",
|
|
|
"domainName": "Домен",
|
|
"domainName": "Домен",
|
|
|
"monitor": "Мониторинг IP",
|
|
"monitor": "Мониторинг IP",
|
|
|
"certificate": "SSL-сертификат",
|
|
"certificate": "SSL-сертификат",
|
|
@@ -95,11 +102,12 @@
|
|
|
"dark": "Темная",
|
|
"dark": "Темная",
|
|
|
"ultraDark": "Очень темная",
|
|
"ultraDark": "Очень темная",
|
|
|
"dashboard": "Дашборд",
|
|
"dashboard": "Дашборд",
|
|
|
- "inbounds": "Подключения",
|
|
|
|
|
|
|
+ "inbounds": "Входящие",
|
|
|
"clients": "Клиенты",
|
|
"clients": "Клиенты",
|
|
|
|
|
+ "groups": "Группы",
|
|
|
"nodes": "Узлы",
|
|
"nodes": "Узлы",
|
|
|
- "settings": "Настройки",
|
|
|
|
|
- "xray": "Настройки Xray",
|
|
|
|
|
|
|
+ "settings": "Настройки панели",
|
|
|
|
|
+ "xray": "Конфигурации Xray",
|
|
|
"apiDocs": "Документация API",
|
|
"apiDocs": "Документация API",
|
|
|
"logout": "Выход",
|
|
"logout": "Выход",
|
|
|
"link": "Управление",
|
|
"link": "Управление",
|
|
@@ -120,16 +128,16 @@
|
|
|
},
|
|
},
|
|
|
"index": {
|
|
"index": {
|
|
|
"title": "Дашборд",
|
|
"title": "Дашборд",
|
|
|
- "cpu": "ЦП",
|
|
|
|
|
|
|
+ "cpu": "CPU",
|
|
|
"logicalProcessors": "Логические процессоры",
|
|
"logicalProcessors": "Логические процессоры",
|
|
|
"frequency": "Частота",
|
|
"frequency": "Частота",
|
|
|
- "swap": "Файл подкачки",
|
|
|
|
|
|
|
+ "swap": "Swap",
|
|
|
"storage": "Диск",
|
|
"storage": "Диск",
|
|
|
- "memory": "ОЗУ",
|
|
|
|
|
|
|
+ "memory": "RAM",
|
|
|
"threads": "Потоки",
|
|
"threads": "Потоки",
|
|
|
"xrayStatus": "Xray",
|
|
"xrayStatus": "Xray",
|
|
|
- "stopXray": "Остановить",
|
|
|
|
|
- "restartXray": "Перезапустить",
|
|
|
|
|
|
|
+ "stopXray": "Стоп",
|
|
|
|
|
+ "restartXray": "Перезапуск",
|
|
|
"xraySwitch": "Выбор версии",
|
|
"xraySwitch": "Выбор версии",
|
|
|
"xrayUpdates": "Обновления Xray",
|
|
"xrayUpdates": "Обновления Xray",
|
|
|
"xraySwitchClick": "Выберите нужную версию",
|
|
"xraySwitchClick": "Выберите нужную версию",
|
|
@@ -165,8 +173,8 @@
|
|
|
"ipAddresses": "IP-адреса сервера",
|
|
"ipAddresses": "IP-адреса сервера",
|
|
|
"toggleIpVisibility": "Скрыть или показать IP-адреса сервера",
|
|
"toggleIpVisibility": "Скрыть или показать IP-адреса сервера",
|
|
|
"overallSpeed": "Общая скорость передачи трафика",
|
|
"overallSpeed": "Общая скорость передачи трафика",
|
|
|
- "upload": "Отправка",
|
|
|
|
|
- "download": "Загрузка",
|
|
|
|
|
|
|
+ "upload": "Загрузка",
|
|
|
|
|
+ "download": "Скачать",
|
|
|
"totalData": "Общий объем трафика",
|
|
"totalData": "Общий объем трафика",
|
|
|
"sent": "Отправлено",
|
|
"sent": "Отправлено",
|
|
|
"received": "Получено",
|
|
"received": "Получено",
|
|
@@ -226,7 +234,7 @@
|
|
|
"customGeoErrUpdateAllIncomplete": "Не удалось обновить один или несколько пользовательских источников",
|
|
"customGeoErrUpdateAllIncomplete": "Не удалось обновить один или несколько пользовательских источников",
|
|
|
"customGeoEmpty": "Пользовательских источников geo пока нет — нажмите «Добавить», чтобы создать",
|
|
"customGeoEmpty": "Пользовательских источников geo пока нет — нажмите «Добавить», чтобы создать",
|
|
|
"dontRefresh": "Установка в процессе. Не обновляйте страницу",
|
|
"dontRefresh": "Установка в процессе. Не обновляйте страницу",
|
|
|
- "logs": "Журнал",
|
|
|
|
|
|
|
+ "logs": "Логи",
|
|
|
"config": "Конфигурация",
|
|
"config": "Конфигурация",
|
|
|
"backup": "Резервная копия",
|
|
"backup": "Резервная копия",
|
|
|
"backupTitle": "Бэкап и восстановление",
|
|
"backupTitle": "Бэкап и восстановление",
|
|
@@ -241,7 +249,7 @@
|
|
|
"getConfigError": "Произошла ошибка при получении конфигурационного файла"
|
|
"getConfigError": "Произошла ошибка при получении конфигурационного файла"
|
|
|
},
|
|
},
|
|
|
"inbounds": {
|
|
"inbounds": {
|
|
|
- "title": "Подключения",
|
|
|
|
|
|
|
+ "title": "Входящие",
|
|
|
"totalDownUp": "Отправлено/получено",
|
|
"totalDownUp": "Отправлено/получено",
|
|
|
"totalUsage": "Всего трафика",
|
|
"totalUsage": "Всего трафика",
|
|
|
"inboundCount": "Всего подключений",
|
|
"inboundCount": "Всего подключений",
|
|
@@ -252,7 +260,7 @@
|
|
|
"deployTo": "Развернуть на",
|
|
"deployTo": "Развернуть на",
|
|
|
"localPanel": "Локальная панель",
|
|
"localPanel": "Локальная панель",
|
|
|
"fallbacks": {
|
|
"fallbacks": {
|
|
|
- "title": "Фолбэки",
|
|
|
|
|
|
|
+ "title": "Fallback'и",
|
|
|
"help": "Когда соединение на этом инбаунде не совпадает ни с одним клиентом, оно перенаправляется на другой инбаунд. Выберите дочерний инбаунд ниже — поля маршрутизации (SNI / ALPN / Path / xver) заполнятся автоматически из его транспорта, для большинства конфигураций больше ничего менять не нужно. Каждый дочерний должен слушать на 127.0.0.1 с security=none.",
|
|
"help": "Когда соединение на этом инбаунде не совпадает ни с одним клиентом, оно перенаправляется на другой инбаунд. Выберите дочерний инбаунд ниже — поля маршрутизации (SNI / ALPN / Path / xver) заполнятся автоматически из его транспорта, для большинства конфигураций больше ничего менять не нужно. Каждый дочерний должен слушать на 127.0.0.1 с security=none.",
|
|
|
"empty": "Фолбэков пока нет",
|
|
"empty": "Фолбэков пока нет",
|
|
|
"add": "Добавить фолбэк",
|
|
"add": "Добавить фолбэк",
|
|
@@ -270,14 +278,14 @@
|
|
|
},
|
|
},
|
|
|
"protocol": "Протокол",
|
|
"protocol": "Протокол",
|
|
|
"port": "Порт",
|
|
"port": "Порт",
|
|
|
- "portMap": "Порт-маппинг",
|
|
|
|
|
|
|
+ "portMap": "Сопоставление портов",
|
|
|
"traffic": "Трафик",
|
|
"traffic": "Трафик",
|
|
|
"details": "Подробнее",
|
|
"details": "Подробнее",
|
|
|
"transportConfig": "Транспорт",
|
|
"transportConfig": "Транспорт",
|
|
|
"expireDate": "Дата окончания",
|
|
"expireDate": "Дата окончания",
|
|
|
"createdAt": "Создано",
|
|
"createdAt": "Создано",
|
|
|
"updatedAt": "Обновлено",
|
|
"updatedAt": "Обновлено",
|
|
|
- "resetTraffic": "Сброс трафика",
|
|
|
|
|
|
|
+ "resetTraffic": "Сбросить трафик",
|
|
|
"addInbound": "Создать подключение",
|
|
"addInbound": "Создать подключение",
|
|
|
"generalActions": "Общие действия",
|
|
"generalActions": "Общие действия",
|
|
|
"modifyInbound": "Изменить подключение",
|
|
"modifyInbound": "Изменить подключение",
|
|
@@ -292,11 +300,31 @@
|
|
|
"delAllClients": "Удалить всех клиентов",
|
|
"delAllClients": "Удалить всех клиентов",
|
|
|
"delAllClientsConfirmTitle": "Удалить всех {count} клиентов из \"{remark}\"?",
|
|
"delAllClientsConfirmTitle": "Удалить всех {count} клиентов из \"{remark}\"?",
|
|
|
"delAllClientsConfirmContent": "Удаляет всех клиентов этого подключения и сбрасывает их записи трафика. Само подключение сохраняется. Это действие нельзя отменить.",
|
|
"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": "Экспортировать ссылки подключения",
|
|
"exportLinksTitle": "Экспортировать ссылки подключения",
|
|
|
"exportSubsTitle": "Экспортировать ссылки подписки",
|
|
"exportSubsTitle": "Экспортировать ссылки подписки",
|
|
|
"exportAllLinksTitle": "Экспортировать все ссылки подключений",
|
|
"exportAllLinksTitle": "Экспортировать все ссылки подключений",
|
|
|
"exportAllSubsTitle": "Экспортировать все ссылки подписок",
|
|
"exportAllSubsTitle": "Экспортировать все ссылки подписок",
|
|
|
- "inboundJsonTitle": "JSON подключения",
|
|
|
|
|
|
|
+ "exportAllLinksFileName": "Все-входящие",
|
|
|
|
|
+ "exportAllSubsFileName": "Все-входящие-Subs",
|
|
|
|
|
+ "inboundJsonTitle": "JSON входящего",
|
|
|
"deleteClient": "Удалить клиента",
|
|
"deleteClient": "Удалить клиента",
|
|
|
"deleteClientContent": "Вы уверены, что хотите удалить клиента?",
|
|
"deleteClientContent": "Вы уверены, что хотите удалить клиента?",
|
|
|
"resetTrafficContent": "Вы уверены, что хотите сбросить трафик?",
|
|
"resetTrafficContent": "Вы уверены, что хотите сбросить трафик?",
|
|
@@ -306,7 +334,7 @@
|
|
|
"destinationPort": "Порт назначения",
|
|
"destinationPort": "Порт назначения",
|
|
|
"targetAddress": "Целевой адрес",
|
|
"targetAddress": "Целевой адрес",
|
|
|
"monitorDesc": "Оставьте пустым для прослушивания всех IP-адресов",
|
|
"monitorDesc": "Оставьте пустым для прослушивания всех IP-адресов",
|
|
|
- "meansNoLimit": "= Без ограничений (значение: ГБ)",
|
|
|
|
|
|
|
+ "meansNoLimit": "= Безлимит. (единица: ГБ)",
|
|
|
"totalFlow": "Общий расход",
|
|
"totalFlow": "Общий расход",
|
|
|
"leaveBlankToNeverExpire": "Оставьте пустым, чтобы было бесконечным",
|
|
"leaveBlankToNeverExpire": "Оставьте пустым, чтобы было бесконечным",
|
|
|
"noRecommendKeepDefault": "Рекомендуется оставить настройки по умолчанию",
|
|
"noRecommendKeepDefault": "Рекомендуется оставить настройки по умолчанию",
|
|
@@ -341,6 +369,7 @@
|
|
|
"IPLimitlogDesc": "Лог IP-адресов (перед включением лога IP-адресов, вы должны очистить лог)",
|
|
"IPLimitlogDesc": "Лог IP-адресов (перед включением лога IP-адресов, вы должны очистить лог)",
|
|
|
"IPLimitlogclear": "Очистить лог",
|
|
"IPLimitlogclear": "Очистить лог",
|
|
|
"setDefaultCert": "Установить сертификат панели",
|
|
"setDefaultCert": "Установить сертификат панели",
|
|
|
|
|
+ "setDefaultCertEmpty": "Для панели не настроен сертификат. Сначала установите его в Настройках.",
|
|
|
"streamTab": "Поток",
|
|
"streamTab": "Поток",
|
|
|
"securityTab": "Безопасность",
|
|
"securityTab": "Безопасность",
|
|
|
"sniffingTab": "Сниффинг",
|
|
"sniffingTab": "Сниффинг",
|
|
@@ -361,15 +390,14 @@
|
|
|
"allHelp": "Полный объект входящего со всеми полями в одном редакторе.",
|
|
"allHelp": "Полный объект входящего со всеми полями в одном редакторе.",
|
|
|
"settings": "Настройки",
|
|
"settings": "Настройки",
|
|
|
"settingsHelp": "Обёртка блока settings Xray:",
|
|
"settingsHelp": "Обёртка блока settings Xray:",
|
|
|
- "sniffing": "Сниффинг",
|
|
|
|
|
|
|
+ "sniffing": "Sniffing",
|
|
|
"sniffingHelp": "Обёртка блока sniffing Xray:",
|
|
"sniffingHelp": "Обёртка блока sniffing Xray:",
|
|
|
- "stream": "Поток",
|
|
|
|
|
|
|
+ "stream": "Stream",
|
|
|
"streamHelp": "Обёртка блока stream Xray:",
|
|
"streamHelp": "Обёртка блока stream Xray:",
|
|
|
"jsonErrorPrefix": "Расширенный JSON"
|
|
"jsonErrorPrefix": "Расширенный JSON"
|
|
|
},
|
|
},
|
|
|
"telegramDesc": "Пожалуйста, укажите Chat ID Telegram. (используйте команду '/id' в боте) или ({'@'}userinfobot)",
|
|
"telegramDesc": "Пожалуйста, укажите Chat ID Telegram. (используйте команду '/id' в боте) или ({'@'}userinfobot)",
|
|
|
"subscriptionDesc": "Вы можете найти свою ссылку подписки в разделе 'Подробнее'",
|
|
"subscriptionDesc": "Вы можете найти свою ссылку подписки в разделе 'Подробнее'",
|
|
|
- "info": "Информация",
|
|
|
|
|
"same": "Тот же",
|
|
"same": "Тот же",
|
|
|
"inboundData": "Данные подключений",
|
|
"inboundData": "Данные подключений",
|
|
|
"exportInbound": "Экспорт подключений",
|
|
"exportInbound": "Экспорт подключений",
|
|
@@ -406,6 +434,143 @@
|
|
|
"getNewmldsa65Error": "Ошибка при получении сертификата mldsa65.",
|
|
"getNewmldsa65Error": "Ошибка при получении сертификата mldsa65.",
|
|
|
"getNewVlessEncError": "Ошибка при получении сертификата VlessEnc."
|
|
"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",
|
|
|
|
|
+ "pinnedPeerCertSha256": "Закреплённый SHA-256 сертификата пира",
|
|
|
|
|
+ "pinnedPeerCertSha256Tip": "SHA-256-хеши сертификата пира в кодировке Base64. Только для панели — не записывается в конфиг xray сервера, но включается в ссылки-приглашения, чтобы клиенты могли закрепить сертификат.",
|
|
|
|
|
+ "pinnedPeerCertSha256Placeholder": "Base64-хеш(и), через запятую",
|
|
|
|
|
+ "generateRandomPin": "Сгенерировать случайный хеш",
|
|
|
|
|
+ "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": {
|
|
"stream": {
|
|
|
"general": {
|
|
"general": {
|
|
|
"request": "Запрос",
|
|
"request": "Запрос",
|
|
@@ -456,6 +621,20 @@
|
|
|
"days": "Дни",
|
|
"days": "Дни",
|
|
|
"renew": "Автопродление",
|
|
"renew": "Автопродление",
|
|
|
"renewDesc": "Автоматическое продление после окончания. (0 = отключено) (единица: день)",
|
|
"renewDesc": "Автоматическое продление после окончания. (0 = отключено) (единица: день)",
|
|
|
|
|
+ "searchPlaceholder": "Поиск email, комментария, sub ID, UUID, пароля, auth…",
|
|
|
|
|
+ "filterTitle": "Фильтр клиентов",
|
|
|
|
|
+ "clearAllFilters": "Очистить все",
|
|
|
|
|
+ "sortOldest": "Сначала старые",
|
|
|
|
|
+ "sortNewest": "Сначала новые",
|
|
|
|
|
+ "sortRecentlyUpdated": "Недавно обновлены",
|
|
|
|
|
+ "sortRecentlyOnline": "Недавно в сети",
|
|
|
|
|
+ "sortEmailAZ": "Email А→Я",
|
|
|
|
|
+ "sortEmailZA": "Email Я→А",
|
|
|
|
|
+ "sortMostTraffic": "Больше трафика",
|
|
|
|
|
+ "sortHighestRemaining": "Больше остатка",
|
|
|
|
|
+ "sortExpiringSoonest": "Скорее истекают",
|
|
|
|
|
+ "has": "Есть",
|
|
|
|
|
+ "hasNot": "Нет",
|
|
|
"title": "Клиенты",
|
|
"title": "Клиенты",
|
|
|
"actions": "Действия",
|
|
"actions": "Действия",
|
|
|
"totalGB": "Всего отправлено/получено (ГБ)",
|
|
"totalGB": "Всего отправлено/получено (ГБ)",
|
|
@@ -466,6 +645,9 @@
|
|
|
"subId": "ID подписки",
|
|
"subId": "ID подписки",
|
|
|
"online": "В сети",
|
|
"online": "В сети",
|
|
|
"email": "Email",
|
|
"email": "Email",
|
|
|
|
|
+ "group": "Группа",
|
|
|
|
|
+ "groupDesc": "Логическая метка для группировки связанных клиентов (например, команда, клиент, регион). Фильтруется из панели инструментов.",
|
|
|
|
|
+ "groupPlaceholder": "например, customer-a",
|
|
|
"comment": "Комментарий",
|
|
"comment": "Комментарий",
|
|
|
"traffic": "Трафик",
|
|
"traffic": "Трафик",
|
|
|
"offline": "Не в сети",
|
|
"offline": "Не в сети",
|
|
@@ -485,15 +667,49 @@
|
|
|
"noLinks": "Нет ссылок для общего доступа — сначала привяжите клиента к входящему с поддерживаемым протоколом.",
|
|
"noLinks": "Нет ссылок для общего доступа — сначала привяжите клиента к входящему с поддерживаемым протоколом.",
|
|
|
"link": "Ссылка",
|
|
"link": "Ссылка",
|
|
|
"resetNotPossible": "Сначала привяжите этого клиента к входящему.",
|
|
"resetNotPossible": "Сначала привяжите этого клиента к входящему.",
|
|
|
- "general": "Общее",
|
|
|
|
|
|
|
+ "general": "Общие",
|
|
|
"resetAllTraffics": "Сбросить трафик всех клиентов",
|
|
"resetAllTraffics": "Сбросить трафик всех клиентов",
|
|
|
"resetAllTrafficsTitle": "Сбросить трафик всех клиентов?",
|
|
"resetAllTrafficsTitle": "Сбросить трафик всех клиентов?",
|
|
|
"resetAllTrafficsContent": "Счётчики отправки/приёма всех клиентов сбрасываются в ноль. Квоты и срок действия не затрагиваются. Это действие нельзя отменить.",
|
|
"resetAllTrafficsContent": "Счётчики отправки/приёма всех клиентов сбрасываются в ноль. Квоты и срок действия не затрагиваются. Это действие нельзя отменить.",
|
|
|
- "empty": "Клиентов пока нет — добавьте первого, чтобы начать.",
|
|
|
|
|
"deleteConfirmTitle": "Удалить клиента {email}?",
|
|
"deleteConfirmTitle": "Удалить клиента {email}?",
|
|
|
"deleteConfirmContent": "Клиент будет удалён из всех привязанных входящих, а его запись трафика будет уничтожена. Это действие нельзя отменить.",
|
|
"deleteConfirmContent": "Клиент будет удалён из всех привязанных входящих, а его запись трафика будет уничтожена. Это действие нельзя отменить.",
|
|
|
"deleteSelected": "Удалить ({count})",
|
|
"deleteSelected": "Удалить ({count})",
|
|
|
"adjustSelected": "Изменить ({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} клиентов?",
|
|
"bulkDeleteConfirmTitle": "Удалить {count} клиентов?",
|
|
|
"bulkDeleteConfirmContent": "Каждый выбранный клиент удаляется из всех привязанных входящих, его запись трафика уничтожается. Это действие нельзя отменить.",
|
|
"bulkDeleteConfirmContent": "Каждый выбранный клиент удаляется из всех привязанных входящих, его запись трафика уничтожается. Это действие нельзя отменить.",
|
|
|
"bulkAdjustTitle": "Изменить {count} клиентов",
|
|
"bulkAdjustTitle": "Изменить {count} клиентов",
|
|
@@ -504,11 +720,12 @@
|
|
|
"delDepleted": "Удалить исчерпанных",
|
|
"delDepleted": "Удалить исчерпанных",
|
|
|
"delDepletedConfirmTitle": "Удалить исчерпанных клиентов?",
|
|
"delDepletedConfirmTitle": "Удалить исчерпанных клиентов?",
|
|
|
"delDepletedConfirmContent": "Удаляются все клиенты, у которых исчерпана квота трафика или истёк срок. Это действие нельзя отменить.",
|
|
"delDepletedConfirmContent": "Удаляются все клиенты, у которых исчерпана квота трафика или истёк срок. Это действие нельзя отменить.",
|
|
|
- "auth": "Auth",
|
|
|
|
|
- "hysteriaAuth": "Auth для Hysteria",
|
|
|
|
|
|
|
+ "auth": "Авторизация",
|
|
|
|
|
+ "hysteriaAuth": "Hysteria Auth",
|
|
|
"uuid": "UUID",
|
|
"uuid": "UUID",
|
|
|
"flow": "Flow",
|
|
"flow": "Flow",
|
|
|
- "reverseTag": "Reverse tag",
|
|
|
|
|
|
|
+ "vmessSecurity": "VMess Security",
|
|
|
|
|
+ "reverseTag": "Обратный тег",
|
|
|
"reverseTagPlaceholder": "Необязательный Reverse tag",
|
|
"reverseTagPlaceholder": "Необязательный Reverse tag",
|
|
|
"telegramId": "ID пользователя Telegram",
|
|
"telegramId": "ID пользователя Telegram",
|
|
|
"telegramIdPlaceholder": "Числовой ID пользователя Telegram (0 = нет)",
|
|
"telegramIdPlaceholder": "Числовой ID пользователя Telegram (0 = нет)",
|
|
@@ -528,13 +745,51 @@
|
|
|
"delDepleted": "Удалено исчерпанных клиентов: {count}"
|
|
"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": {
|
|
"nodes": {
|
|
|
"title": "Узлы",
|
|
"title": "Узлы",
|
|
|
"addNode": "Добавить узел",
|
|
"addNode": "Добавить узел",
|
|
|
- "editNode": "Редактировать узел",
|
|
|
|
|
|
|
+ "editNode": "Изменить узел",
|
|
|
"totalNodes": "Всего узлов",
|
|
"totalNodes": "Всего узлов",
|
|
|
- "onlineNodes": "Онлайн",
|
|
|
|
|
- "offlineNodes": "Офлайн",
|
|
|
|
|
|
|
+ "onlineNodes": "В сети",
|
|
|
|
|
+ "offlineNodes": "Не в сети",
|
|
|
"avgLatency": "Средняя задержка",
|
|
"avgLatency": "Средняя задержка",
|
|
|
"name": "Имя",
|
|
"name": "Имя",
|
|
|
"namePlaceholder": "напр. de-frankfurt-1",
|
|
"namePlaceholder": "напр. de-frankfurt-1",
|
|
@@ -544,7 +799,7 @@
|
|
|
"address": "Адрес",
|
|
"address": "Адрес",
|
|
|
"port": "Порт",
|
|
"port": "Порт",
|
|
|
"basePath": "Базовый путь",
|
|
"basePath": "Базовый путь",
|
|
|
- "apiToken": "Токен API",
|
|
|
|
|
|
|
+ "apiToken": "API Токен",
|
|
|
"apiTokenPlaceholder": "Токен со страницы Настроек удалённой панели",
|
|
"apiTokenPlaceholder": "Токен со страницы Настроек удалённой панели",
|
|
|
"apiTokenHint": "Удалённая панель показывает свой токен API в разделе Настройки → Токен API.",
|
|
"apiTokenHint": "Удалённая панель показывает свой токен API в разделе Настройки → Токен API.",
|
|
|
"regenerate": "Сгенерировать токен заново",
|
|
"regenerate": "Сгенерировать токен заново",
|
|
@@ -555,7 +810,7 @@
|
|
|
"status": "Статус",
|
|
"status": "Статус",
|
|
|
"cpu": "CPU",
|
|
"cpu": "CPU",
|
|
|
"mem": "Память",
|
|
"mem": "Память",
|
|
|
- "uptime": "Время работы",
|
|
|
|
|
|
|
+ "uptime": "Аптайм",
|
|
|
"latency": "Задержка",
|
|
"latency": "Задержка",
|
|
|
"lastHeartbeat": "Последний пинг",
|
|
"lastHeartbeat": "Последний пинг",
|
|
|
"xrayVersion": "Версия Xray",
|
|
"xrayVersion": "Версия Xray",
|
|
@@ -570,8 +825,8 @@
|
|
|
"deleteConfirmTitle": "Удалить узел \"{name}\"?",
|
|
"deleteConfirmTitle": "Удалить узел \"{name}\"?",
|
|
|
"deleteConfirmContent": "Это остановит мониторинг узла. Сама удалённая панель не будет затронута.",
|
|
"deleteConfirmContent": "Это остановит мониторинг узла. Сама удалённая панель не будет затронута.",
|
|
|
"statusValues": {
|
|
"statusValues": {
|
|
|
- "online": "Онлайн",
|
|
|
|
|
- "offline": "Офлайн",
|
|
|
|
|
|
|
+ "online": "В сети",
|
|
|
|
|
+ "offline": "Не в сети",
|
|
|
"unknown": "Неизвестно"
|
|
"unknown": "Неизвестно"
|
|
|
},
|
|
},
|
|
|
"toasts": {
|
|
"toasts": {
|
|
@@ -590,7 +845,7 @@
|
|
|
"title": "Настройки",
|
|
"title": "Настройки",
|
|
|
"save": "Сохранить",
|
|
"save": "Сохранить",
|
|
|
"infoDesc": "Сохраните изменения и перезапустите панель для их применения.",
|
|
"infoDesc": "Сохраните изменения и перезапустите панель для их применения.",
|
|
|
- "restartPanel": "Перезапуск панели",
|
|
|
|
|
|
|
+ "restartPanel": "Перезапустить панель",
|
|
|
"restartPanelDesc": "Вы уверены, что хотите перезапустить панель? Подтвердите, и перезапуск произойдёт через 3 секунды. Если панель будет недоступна, проверьте лог сервера",
|
|
"restartPanelDesc": "Вы уверены, что хотите перезапустить панель? Подтвердите, и перезапуск произойдёт через 3 секунды. Если панель будет недоступна, проверьте лог сервера",
|
|
|
"restartPanelSuccess": "Панель успешно перезапущена",
|
|
"restartPanelSuccess": "Панель успешно перезапущена",
|
|
|
"actions": "Действия",
|
|
"actions": "Действия",
|
|
@@ -604,7 +859,7 @@
|
|
|
"warnDefaultBasePath": "Базовый путь по умолчанию \"/\" широко известен — измените его на случайный.",
|
|
"warnDefaultBasePath": "Базовый путь по умолчанию \"/\" широко известен — измените его на случайный.",
|
|
|
"warnDefaultSubPath": "Путь подписки по умолчанию \"/sub/\" широко известен — измените его.",
|
|
"warnDefaultSubPath": "Путь подписки по умолчанию \"/sub/\" широко известен — измените его.",
|
|
|
"warnDefaultJsonPath": "JSON-путь подписки по умолчанию \"/json/\" широко известен — измените его.",
|
|
"warnDefaultJsonPath": "JSON-путь подписки по умолчанию \"/json/\" широко известен — измените его.",
|
|
|
- "TGBotSettings": "Telegram-Бот",
|
|
|
|
|
|
|
+ "TGBotSettings": "Telegram-бот",
|
|
|
"panelListeningIP": "IP-адрес для управления панелью",
|
|
"panelListeningIP": "IP-адрес для управления панелью",
|
|
|
"panelListeningIPDesc": "Оставьте пустым для подключения с любого IP",
|
|
"panelListeningIPDesc": "Оставьте пустым для подключения с любого IP",
|
|
|
"panelListeningDomain": "Домен панели",
|
|
"panelListeningDomain": "Домен панели",
|
|
@@ -615,10 +870,12 @@
|
|
|
"publicKeyPathDesc": "Введите полный путь, начинающийся с '/'",
|
|
"publicKeyPathDesc": "Введите полный путь, начинающийся с '/'",
|
|
|
"privateKeyPath": "Путь к файлу приватного ключа сертификата панели",
|
|
"privateKeyPath": "Путь к файлу приватного ключа сертификата панели",
|
|
|
"privateKeyPathDesc": "Введите полный путь, начинающийся с '/'",
|
|
"privateKeyPathDesc": "Введите полный путь, начинающийся с '/'",
|
|
|
- "panelUrlPath": "Корневой путь URL адреса панели",
|
|
|
|
|
|
|
+ "panelUrlPath": "URI-путь",
|
|
|
"panelUrlPathDesc": "Должен начинаться с '/' и заканчиваться '/'",
|
|
"panelUrlPathDesc": "Должен начинаться с '/' и заканчиваться '/'",
|
|
|
"pageSize": "Размер нумерации страниц",
|
|
"pageSize": "Размер нумерации страниц",
|
|
|
"pageSizeDesc": "Определить размер страницы для таблицы подключений. Установите 0, чтобы отключить",
|
|
"pageSizeDesc": "Определить размер страницы для таблицы подключений. Установите 0, чтобы отключить",
|
|
|
|
|
+ "panelProxy": "Сетевой прокси панели",
|
|
|
|
|
+ "panelProxyDesc": "Маршрутизирует исходящие запросы самой панели (обновления geo, проверки версий Xray/панели, Telegram) через этот прокси для обхода серверной фильтрации GitHub/Telegram. Принимает socks5:// или http(s)://, напр. локальный SOCKS-входящий Xray. Оставьте пустым для прямого подключения.",
|
|
|
"remarkModel": "Модель примечания и символ разделения",
|
|
"remarkModel": "Модель примечания и символ разделения",
|
|
|
"datepicker": "Тип календаря",
|
|
"datepicker": "Тип календаря",
|
|
|
"datepickerPlaceholder": "Выберите дату",
|
|
"datepickerPlaceholder": "Выберите дату",
|
|
@@ -630,11 +887,11 @@
|
|
|
"newPassword": "Новый пароль",
|
|
"newPassword": "Новый пароль",
|
|
|
"telegramBotEnable": "Включить Telegram бота",
|
|
"telegramBotEnable": "Включить Telegram бота",
|
|
|
"telegramBotEnableDesc": "Доступ к функциям панели через Telegram-бота",
|
|
"telegramBotEnableDesc": "Доступ к функциям панели через Telegram-бота",
|
|
|
- "telegramToken": "Токен Telegram бота",
|
|
|
|
|
|
|
+ "telegramToken": "Telegram-токен",
|
|
|
"telegramTokenDesc": "Необходимо получить токен у менеджера ботов Telegram {'@'}botfather",
|
|
"telegramTokenDesc": "Необходимо получить токен у менеджера ботов Telegram {'@'}botfather",
|
|
|
- "telegramProxy": "Прокси-сервер Socks5",
|
|
|
|
|
|
|
+ "telegramProxy": "SOCKS-прокси",
|
|
|
"telegramProxyDesc": "Если для подключения к Telegram вам нужен прокси Socks5, настройте его параметры согласно руководству.",
|
|
"telegramProxyDesc": "Если для подключения к Telegram вам нужен прокси Socks5, настройте его параметры согласно руководству.",
|
|
|
- "telegramAPIServer": "API-сервер Telegram",
|
|
|
|
|
|
|
+ "telegramAPIServer": "Telegram API Server",
|
|
|
"telegramAPIServerDesc": "Используемый API-сервер Telegram. Оставьте пустым, чтобы использовать сервер по умолчанию.",
|
|
"telegramAPIServerDesc": "Используемый API-сервер Telegram. Оставьте пустым, чтобы использовать сервер по умолчанию.",
|
|
|
"telegramChatId": "User ID администратора бота",
|
|
"telegramChatId": "User ID администратора бота",
|
|
|
"telegramChatIdDesc": "Один или несколько User ID администратора(-ов) Telegram-бота. Для получения User ID используйте {'@'}userinfobot или команду '/id' в боте.",
|
|
"telegramChatIdDesc": "Один или несколько User ID администратора(-ов) Telegram-бота. Для получения User ID используйте {'@'}userinfobot или команду '/id' в боте.",
|
|
@@ -658,6 +915,8 @@
|
|
|
"subEnable": "Включить подписку",
|
|
"subEnable": "Включить подписку",
|
|
|
"subEnableDesc": "Функция подписки с отдельной конфигурацией",
|
|
"subEnableDesc": "Функция подписки с отдельной конфигурацией",
|
|
|
"subJsonEnable": "Включить/отключить JSON-эндпоинт подписки независимо.",
|
|
"subJsonEnable": "Включить/отключить JSON-эндпоинт подписки независимо.",
|
|
|
|
|
+ "subJsonEnableTitle": "JSON-подписка",
|
|
|
|
|
+ "subClashEnableTitle": "Подписка Clash / Mihomo",
|
|
|
"subTitle": "Заголовок подписки",
|
|
"subTitle": "Заголовок подписки",
|
|
|
"subTitleDesc": "Название подписки, которое видит клиент в VPN-клиенте",
|
|
"subTitleDesc": "Название подписки, которое видит клиент в VPN-клиенте",
|
|
|
"subSupportUrl": "URL поддержки",
|
|
"subSupportUrl": "URL поддержки",
|
|
@@ -678,13 +937,13 @@
|
|
|
"subCertPathDesc": "Введите полный путь, начинающийся с '/'",
|
|
"subCertPathDesc": "Введите полный путь, начинающийся с '/'",
|
|
|
"subKeyPath": "Путь к файлу приватного ключа сертификата подписки",
|
|
"subKeyPath": "Путь к файлу приватного ключа сертификата подписки",
|
|
|
"subKeyPathDesc": "Введите полный путь, начинающийся с '/'",
|
|
"subKeyPathDesc": "Введите полный путь, начинающийся с '/'",
|
|
|
- "subPath": "Корневой путь URL-адреса подписки",
|
|
|
|
|
|
|
+ "subPath": "URI-путь",
|
|
|
"subPathDesc": "Должен начинаться с '/' и заканчиваться на '/'",
|
|
"subPathDesc": "Должен начинаться с '/' и заканчиваться на '/'",
|
|
|
"subDomain": "Домен прослушивания",
|
|
"subDomain": "Домен прослушивания",
|
|
|
"subDomainDesc": "Оставьте пустым по умолчанию, чтобы слушать все домены и IP-адреса",
|
|
"subDomainDesc": "Оставьте пустым по умолчанию, чтобы слушать все домены и IP-адреса",
|
|
|
"subUpdates": "Интервалы обновления подписки",
|
|
"subUpdates": "Интервалы обновления подписки",
|
|
|
"subUpdatesDesc": "Интервал между обновлениями в клиентском приложении (в часах)",
|
|
"subUpdatesDesc": "Интервал между обновлениями в клиентском приложении (в часах)",
|
|
|
- "subEncrypt": "Шифровать конфиги",
|
|
|
|
|
|
|
+ "subEncrypt": "Кодировать",
|
|
|
"subEncryptDesc": "Шифровать возвращенные конфиги в подписке",
|
|
"subEncryptDesc": "Шифровать возвращенные конфиги в подписке",
|
|
|
"subShowInfo": "Показать информацию об использовании",
|
|
"subShowInfo": "Показать информацию об использовании",
|
|
|
"subShowInfoDesc": "Отображать остаток трафика и дату окончания после имени конфигурации",
|
|
"subShowInfoDesc": "Отображать остаток трафика и дату окончания после имени конфигурации",
|
|
@@ -693,7 +952,7 @@
|
|
|
"subURI": "URI обратного прокси",
|
|
"subURI": "URI обратного прокси",
|
|
|
"subURIDesc": "Изменить базовый URI URL-адреса подписки для использования за прокси-серверами",
|
|
"subURIDesc": "Изменить базовый URI URL-адреса подписки для использования за прокси-серверами",
|
|
|
"externalTrafficInformEnable": "Информация о внешнем трафике",
|
|
"externalTrafficInformEnable": "Информация о внешнем трафике",
|
|
|
- "externalTrafficInformEnableDesc": "Информировать внешний API о каждом обновлении трафика",
|
|
|
|
|
|
|
+ "externalTrafficInformEnableDesc": "Уведомлять внешний API при каждом обновлении трафика.",
|
|
|
"externalTrafficInformURI": "URI информации о внешнем трафике",
|
|
"externalTrafficInformURI": "URI информации о внешнем трафике",
|
|
|
"externalTrafficInformURIDesc": "Обновления трафика отправляются на этот URI",
|
|
"externalTrafficInformURIDesc": "Обновления трафика отправляются на этот URI",
|
|
|
"restartXrayOnClientDisable": "Перезапускать Xray после автоотключения",
|
|
"restartXrayOnClientDisable": "Перезапускать Xray после автоотключения",
|
|
@@ -703,6 +962,54 @@
|
|
|
"fragmentSett": "Настройки фрагментации",
|
|
"fragmentSett": "Настройки фрагментации",
|
|
|
"noisesDesc": "Включить Noises.",
|
|
"noisesDesc": "Включить Noises.",
|
|
|
"noisesSett": "Настройки 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",
|
|
"mux": "Mux",
|
|
|
"muxDesc": "Передача нескольких независимых потоков данных в одном соединении.",
|
|
"muxDesc": "Передача нескольких независимых потоков данных в одном соединении.",
|
|
|
"muxSett": "Настройки Mux",
|
|
"muxSett": "Настройки Mux",
|
|
@@ -758,6 +1065,9 @@
|
|
|
"save": "Сохранить",
|
|
"save": "Сохранить",
|
|
|
"restart": "Перезапуск Xray",
|
|
"restart": "Перезапуск Xray",
|
|
|
"restartSuccess": "Xray успешно перезапущен",
|
|
"restartSuccess": "Xray успешно перезапущен",
|
|
|
|
|
+ "restartOutputTitle": "Вывод перезапуска Xray",
|
|
|
|
|
+ "restartConfirmTitle": "Перезапустить xray?",
|
|
|
|
|
+ "restartConfirmContent": "Перезагружает сервис xray с сохранённой конфигурацией.",
|
|
|
"stopSuccess": "Xray успешно остановлен",
|
|
"stopSuccess": "Xray успешно остановлен",
|
|
|
"restartError": "Произошла ошибка при перезапуске Xray.",
|
|
"restartError": "Произошла ошибка при перезапуске Xray.",
|
|
|
"stopError": "Произошла ошибка при остановке Xray.",
|
|
"stopError": "Произошла ошибка при остановке Xray.",
|
|
@@ -765,7 +1075,7 @@
|
|
|
"advancedTemplate": "Расширенный шаблон",
|
|
"advancedTemplate": "Расширенный шаблон",
|
|
|
"generalConfigs": "Основные настройки",
|
|
"generalConfigs": "Основные настройки",
|
|
|
"generalConfigsDesc": "Эти параметры описывают общие настройки",
|
|
"generalConfigsDesc": "Эти параметры описывают общие настройки",
|
|
|
- "logConfigs": "Логи",
|
|
|
|
|
|
|
+ "logConfigs": "Лог",
|
|
|
"logConfigsDesc": "Логи могут замедлять работу сервера. Включайте только нужные вам виды логов при необходимости!",
|
|
"logConfigsDesc": "Логи могут замедлять работу сервера. Включайте только нужные вам виды логов при необходимости!",
|
|
|
"blockConfigsDesc": "Настройте, чтобы клиенты не имели доступа к определенным протоколам",
|
|
"blockConfigsDesc": "Настройте, чтобы клиенты не имели доступа к определенным протоколам",
|
|
|
"basicRouting": "Базовые соединения",
|
|
"basicRouting": "Базовые соединения",
|
|
@@ -790,10 +1100,12 @@
|
|
|
"outboundTestUrl": "URL для теста исходящего",
|
|
"outboundTestUrl": "URL для теста исходящего",
|
|
|
"outboundTestUrlDesc": "URL для проверки подключения исходящего",
|
|
"outboundTestUrlDesc": "URL для проверки подключения исходящего",
|
|
|
"Torrent": "Заблокировать BitTorrent",
|
|
"Torrent": "Заблокировать BitTorrent",
|
|
|
- "Inbounds": "Входящие подключения",
|
|
|
|
|
|
|
+ "Inbounds": "Входящие",
|
|
|
"InboundsDesc": "Изменение шаблона конфигурации для подключения определенных клиентов",
|
|
"InboundsDesc": "Изменение шаблона конфигурации для подключения определенных клиентов",
|
|
|
- "Outbounds": "Исходящие подключения",
|
|
|
|
|
|
|
+ "Outbounds": "Исходящие",
|
|
|
"Balancers": "Балансировщик",
|
|
"Balancers": "Балансировщик",
|
|
|
|
|
+ "balancerTagRequired": "Тег обязателен",
|
|
|
|
|
+ "balancerSelectorRequired": "Выберите хотя бы одно исходящее",
|
|
|
"OutboundsDesc": "Изменение шаблона конфигурации, чтобы определить исходящие подключения для этого сервера",
|
|
"OutboundsDesc": "Изменение шаблона конфигурации, чтобы определить исходящие подключения для этого сервера",
|
|
|
"Routings": "Маршрутизация",
|
|
"Routings": "Маршрутизация",
|
|
|
"RoutingsDesc": "Важен приоритет каждого правила!",
|
|
"RoutingsDesc": "Важен приоритет каждого правила!",
|
|
@@ -827,11 +1139,78 @@
|
|
|
"inbound": "Входящее подключение",
|
|
"inbound": "Входящее подключение",
|
|
|
"outbound": "Исходящее подключение",
|
|
"outbound": "Исходящее подключение",
|
|
|
"balancer": "Балансировщик",
|
|
"balancer": "Балансировщик",
|
|
|
- "info": "Информация",
|
|
|
|
|
|
|
+ "info": "Инфо",
|
|
|
"add": "Создать правило",
|
|
"add": "Создать правило",
|
|
|
"edit": "Редактировать правило",
|
|
"edit": "Редактировать правило",
|
|
|
"useComma": "Элементы, разделённые запятыми"
|
|
"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": {
|
|
"outbound": {
|
|
|
"addOutbound": "Создать исходящее подключение",
|
|
"addOutbound": "Создать исходящее подключение",
|
|
|
"addReverse": "Создать реверс-прокси",
|
|
"addReverse": "Создать реверс-прокси",
|
|
@@ -846,8 +1225,8 @@
|
|
|
"reverse": "Реверс-прокси",
|
|
"reverse": "Реверс-прокси",
|
|
|
"domain": "Домен",
|
|
"domain": "Домен",
|
|
|
"type": "Тип",
|
|
"type": "Тип",
|
|
|
- "bridge": "Мост",
|
|
|
|
|
- "portal": "Портал",
|
|
|
|
|
|
|
+ "bridge": "Bridge",
|
|
|
|
|
+ "portal": "Portal",
|
|
|
"link": "Ссылка",
|
|
"link": "Ссылка",
|
|
|
"intercon": "Соединение",
|
|
"intercon": "Соединение",
|
|
|
"settings": "Настройки",
|
|
"settings": "Настройки",
|
|
@@ -860,6 +1239,8 @@
|
|
|
"testSuccess": "Тест успешен",
|
|
"testSuccess": "Тест успешен",
|
|
|
"testFailed": "Тест не пройден",
|
|
"testFailed": "Тест не пройден",
|
|
|
"testError": "Не удалось протестировать исходящее подключение",
|
|
"testError": "Не удалось протестировать исходящее подключение",
|
|
|
|
|
+ "testModeTooltip": "TCP: быстрый dial-only probe. HTTP: полный запрос через xray.",
|
|
|
|
|
+ "testAll": "Тестировать все",
|
|
|
"nordvpn": "NordVPN",
|
|
"nordvpn": "NordVPN",
|
|
|
"accessToken": "Токен доступа",
|
|
"accessToken": "Токен доступа",
|
|
|
"country": "Страна",
|
|
"country": "Страна",
|
|
@@ -876,6 +1257,16 @@
|
|
|
"balancerSelectors": "Селекторы",
|
|
"balancerSelectors": "Селекторы",
|
|
|
"tag": "Тег",
|
|
"tag": "Тег",
|
|
|
"tagDesc": "Уникальный тег",
|
|
"tagDesc": "Уникальный тег",
|
|
|
|
|
+ "tagDuplicate": "Тег уже используется другим балансировщиком",
|
|
|
|
|
+ "tagPlaceholder": "уникальный тег балансировщика",
|
|
|
|
|
+ "selector": "Селектор",
|
|
|
|
|
+ "fallback": "Fallback",
|
|
|
|
|
+ "expected": "Ожидаемое",
|
|
|
|
|
+ "expectedPlaceholder": "оптимальное число узлов",
|
|
|
|
|
+ "maxRtt": "Макс. RTT",
|
|
|
|
|
+ "tolerance": "Допуск",
|
|
|
|
|
+ "baselines": "Baselines",
|
|
|
|
|
+ "costs": "Costs",
|
|
|
"balancerDesc": "Невозможно одновременно использовать balancerTag и outboundTag. При одновременном использовании будет работать только outboundTag."
|
|
"balancerDesc": "Невозможно одновременно использовать balancerTag и outboundTag. При одновременном использовании будет работать только outboundTag."
|
|
|
},
|
|
},
|
|
|
"wireguard": {
|
|
"wireguard": {
|
|
@@ -892,6 +1283,38 @@
|
|
|
"userLevel": "Уровень пользователя",
|
|
"userLevel": "Уровень пользователя",
|
|
|
"userLevelDesc": "Все соединения, установленные через этот входящий поток, будут использовать этот уровень пользователя. Значение по умолчанию - 0"
|
|
"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": {
|
|
"dns": {
|
|
|
"enable": "Включить DNS",
|
|
"enable": "Включить DNS",
|
|
|
"enableDesc": "Включить встроенный DNS-сервер",
|
|
"enableDesc": "Включить встроенный DNS-сервер",
|
|
@@ -959,10 +1382,10 @@
|
|
|
"hours": "Часов",
|
|
"hours": "Часов",
|
|
|
"minutes": "Минуты",
|
|
"minutes": "Минуты",
|
|
|
"unknown": "Неизвестно",
|
|
"unknown": "Неизвестно",
|
|
|
- "inbounds": "Входящие подключения",
|
|
|
|
|
|
|
+ "inbounds": "Входящие",
|
|
|
"clients": "Клиенты",
|
|
"clients": "Клиенты",
|
|
|
- "offline": "🔴 Офлайн",
|
|
|
|
|
- "online": "🟢 Онлайн",
|
|
|
|
|
|
|
+ "offline": "🔴 Не в сети",
|
|
|
|
|
+ "online": "🟢 В сети",
|
|
|
"commands": {
|
|
"commands": {
|
|
|
"unknown": "❗ Неизвестная команда",
|
|
"unknown": "❗ Неизвестная команда",
|
|
|
"pleaseChoose": "👇 Пожалуйста, выберите:\r\n",
|
|
"pleaseChoose": "👇 Пожалуйста, выберите:\r\n",
|
|
@@ -992,24 +1415,24 @@
|
|
|
"2faFailed": "Ошибка 2FA",
|
|
"2faFailed": "Ошибка 2FA",
|
|
|
"report": "🕰 Запланированные отчеты: {{ .RunTime }}\r\n",
|
|
"report": "🕰 Запланированные отчеты: {{ .RunTime }}\r\n",
|
|
|
"datetime": "⏰ Дата и время: {{ .DateTime }}\r\n",
|
|
"datetime": "⏰ Дата и время: {{ .DateTime }}\r\n",
|
|
|
- "hostname": "💻 Имя хоста: {{ .Hostname }}\r\n",
|
|
|
|
|
|
|
+ "hostname": "💻 Хост: {{ .Hostname }}\r\n",
|
|
|
"version": "🚀 Версия X-UI: {{ .Version }}\r\n",
|
|
"version": "🚀 Версия X-UI: {{ .Version }}\r\n",
|
|
|
"xrayVersion": "📡 Версия Xray: {{ .XrayVersion }}\r\n",
|
|
"xrayVersion": "📡 Версия Xray: {{ .XrayVersion }}\r\n",
|
|
|
"ipv6": "🌐 IPv6: {{ .IPv6 }}\r\n",
|
|
"ipv6": "🌐 IPv6: {{ .IPv6 }}\r\n",
|
|
|
"ipv4": "🌐 IPv4: {{ .IPv4 }}\r\n",
|
|
"ipv4": "🌐 IPv4: {{ .IPv4 }}\r\n",
|
|
|
"ip": "🌐 IP: {{ .IP }}\r\n",
|
|
"ip": "🌐 IP: {{ .IP }}\r\n",
|
|
|
- "ips": "🔢 IP-адреса:\r\n{{ .IPs }}\r\n",
|
|
|
|
|
|
|
+ "ips": "🔢 IP:\r\n{{ .IPs }}\r\n",
|
|
|
"serverUpTime": "⏳ Время работы сервера: {{ .UpTime }} {{ .Unit }}\r\n",
|
|
"serverUpTime": "⏳ Время работы сервера: {{ .UpTime }} {{ .Unit }}\r\n",
|
|
|
"serverLoad": "📈 Нагрузка сервера: {{ .Load1 }}, {{ .Load2 }}, {{ .Load3 }}\r\n",
|
|
"serverLoad": "📈 Нагрузка сервера: {{ .Load1 }}, {{ .Load2 }}, {{ .Load3 }}\r\n",
|
|
|
- "serverMemory": "📋 ОЗУ сервера: {{ .Current }}/{{ .Total }}\r\n",
|
|
|
|
|
- "tcpCount": "🔹 Количество TCP-соединений: {{ .Count }}\r\n",
|
|
|
|
|
- "udpCount": "🔸 Количество UDP-соединений: {{ .Count }}\r\n",
|
|
|
|
|
|
|
+ "serverMemory": "📋 RAM: {{ .Current }}/{{ .Total }}\r\n",
|
|
|
|
|
+ "tcpCount": "🔹 TCP: {{ .Count }}\r\n",
|
|
|
|
|
+ "udpCount": "🔸 UDP: {{ .Count }}\r\n",
|
|
|
"traffic": "🚦 Трафик: {{ .Total }} (↑{{ .Upload }},↓{{ .Download }})\r\n",
|
|
"traffic": "🚦 Трафик: {{ .Total }} (↑{{ .Upload }},↓{{ .Download }})\r\n",
|
|
|
- "xrayStatus": "ℹ️ Состояние Xray: {{ .State }}\r\n",
|
|
|
|
|
|
|
+ "xrayStatus": "ℹ️ Статус: {{ .State }}\r\n",
|
|
|
"username": "👤 Имя пользователя: {{ .Username }}\r\n",
|
|
"username": "👤 Имя пользователя: {{ .Username }}\r\n",
|
|
|
"reason": "❗️ Причина: {{ .Reason }}\r\n",
|
|
"reason": "❗️ Причина: {{ .Reason }}\r\n",
|
|
|
"time": "⏰ Время: {{ .Time }}\r\n",
|
|
"time": "⏰ Время: {{ .Time }}\r\n",
|
|
|
- "inbound": "📍 Входящее подключение: {{ .Remark }}\r\n",
|
|
|
|
|
|
|
+ "inbound": "📍 Входящий: {{ .Remark }}\r\n",
|
|
|
"port": "🔌 Порт: {{ .Port }}\r\n",
|
|
"port": "🔌 Порт: {{ .Port }}\r\n",
|
|
|
"expire": "📅 Дата окончания: {{ .Time }}\r\n",
|
|
"expire": "📅 Дата окончания: {{ .Time }}\r\n",
|
|
|
"expireIn": "📅 Окончание через: {{ .Time }}\r\n",
|
|
"expireIn": "📅 Окончание через: {{ .Time }}\r\n",
|
|
@@ -1018,9 +1441,9 @@
|
|
|
"online": "🌐 Статус соединения: {{ .Status }}\r\n",
|
|
"online": "🌐 Статус соединения: {{ .Status }}\r\n",
|
|
|
"lastOnline": "🔙 Был(а) в сети: {{ .Time }}\r\n",
|
|
"lastOnline": "🔙 Был(а) в сети: {{ .Time }}\r\n",
|
|
|
"email": "📧 Email: {{ .Email }}\r\n",
|
|
"email": "📧 Email: {{ .Email }}\r\n",
|
|
|
- "upload": "🔼 Исходящий трафик: ↑{{ .Upload }}\r\n",
|
|
|
|
|
- "download": "🔽 Входящий трафик: ↓{{ .Download }}\r\n",
|
|
|
|
|
- "total": "📊 Всего: ↑↓{{ .UpDown }} из {{ .Total }}\r\n",
|
|
|
|
|
|
|
+ "upload": "🔼 Загрузка: ↑{{ .Upload }}\r\n",
|
|
|
|
|
+ "download": "🔽 Загрузка: ↓{{ .Download }}\r\n",
|
|
|
|
|
+ "total": "📊 Всего: ↑↓{{ .UpDown }} / {{ .Total }}\r\n",
|
|
|
"TGUser": "👤 Telegram User ID: {{ .TelegramID }}\r\n",
|
|
"TGUser": "👤 Telegram User ID: {{ .TelegramID }}\r\n",
|
|
|
"exhaustedMsg": "🚨 Исчерпаны {{ .Type }}:\r\n",
|
|
"exhaustedMsg": "🚨 Исчерпаны {{ .Type }}:\r\n",
|
|
|
"exhaustedCount": "🚨 Количество исчерпанных {{ .Type }}:\r\n",
|
|
"exhaustedCount": "🚨 Количество исчерпанных {{ .Type }}:\r\n",
|
|
@@ -1077,7 +1500,7 @@
|
|
|
"ipLimit": "🔢 Лимит IP",
|
|
"ipLimit": "🔢 Лимит IP",
|
|
|
"setTGUser": "👤 Установить пользователя Telegram",
|
|
"setTGUser": "👤 Установить пользователя Telegram",
|
|
|
"toggle": "🔘 Вкл./Выкл.",
|
|
"toggle": "🔘 Вкл./Выкл.",
|
|
|
- "custom": "🔢 Свой",
|
|
|
|
|
|
|
+ "custom": "🔢 Своё",
|
|
|
"confirmNumber": "✅ Подтвердить: {{ .Num }}",
|
|
"confirmNumber": "✅ Подтвердить: {{ .Num }}",
|
|
|
"confirmNumberAdd": "✅ Подтвердить добавление: {{ .Num }}",
|
|
"confirmNumberAdd": "✅ Подтвердить добавление: {{ .Num }}",
|
|
|
"limitTraffic": "🚧 Лимит трафика",
|
|
"limitTraffic": "🚧 Лимит трафика",
|
|
@@ -1091,7 +1514,7 @@
|
|
|
"change_password": "⚙️🔑 Пароль",
|
|
"change_password": "⚙️🔑 Пароль",
|
|
|
"change_email": "⚙️📧 Email",
|
|
"change_email": "⚙️📧 Email",
|
|
|
"change_comment": "⚙️💬 Комментарий",
|
|
"change_comment": "⚙️💬 Комментарий",
|
|
|
- "change_flow": "⚙️🚦 Поток",
|
|
|
|
|
|
|
+ "change_flow": "⚙️🚦 Flow",
|
|
|
"ResetAllTraffics": "Сбросить весь трафик",
|
|
"ResetAllTraffics": "Сбросить весь трафик",
|
|
|
"SortedTrafficUsageReport": "Отсортированный отчет об использовании трафика"
|
|
"SortedTrafficUsageReport": "Отсортированный отчет об использовании трафика"
|
|
|
},
|
|
},
|
|
@@ -1119,4 +1542,4 @@
|
|
|
"chooseInbound": "Выберите входящее подключение"
|
|
"chooseInbound": "Выберите входящее подключение"
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
+}
|