mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-06-07 21:04:32 +00:00
i18n(panel): migrate hardcoded panel strings to en-US and translate all locales
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.
This commit is contained in:
@@ -8,15 +8,22 @@
|
||||
"save": "Сохранить",
|
||||
"logout": "Выход",
|
||||
"create": "Создать",
|
||||
"add": "Добавить",
|
||||
"remove": "Удалить",
|
||||
"update": "Обновить",
|
||||
"copy": "Копировать",
|
||||
"copied": "Скопировано",
|
||||
"more": "ещё",
|
||||
"download": "Скачать",
|
||||
"remark": "Примечание",
|
||||
"enable": "Включить",
|
||||
"protocol": "Протокол",
|
||||
"search": "Поиск",
|
||||
"filter": "Фильтр",
|
||||
"all": "Все",
|
||||
"from": "От",
|
||||
"to": "До",
|
||||
"done": "Готово",
|
||||
"loading": "Загрузка...",
|
||||
"refresh": "Обновить",
|
||||
"clear": "Очистить",
|
||||
@@ -27,12 +34,12 @@
|
||||
"check": "Проверить",
|
||||
"indefinite": "Бесконечно",
|
||||
"unlimited": "Безлимит",
|
||||
"none": "Пусто",
|
||||
"none": "Нет",
|
||||
"qrCode": "QR-код",
|
||||
"info": "Информация",
|
||||
"edit": "Изменить",
|
||||
"delete": "Удалить",
|
||||
"reset": "Сбросить",
|
||||
"reset": "Сброс",
|
||||
"noData": "Нет данных.",
|
||||
"copySuccess": "Скопировано",
|
||||
"sure": "Да",
|
||||
@@ -41,14 +48,14 @@
|
||||
"transmission": "Транспорт",
|
||||
"host": "Хост",
|
||||
"path": "Путь",
|
||||
"camouflage": "Маскировка",
|
||||
"camouflage": "Обфускация",
|
||||
"status": "Статус",
|
||||
"enabled": "Включено",
|
||||
"disabled": "Отключено",
|
||||
"depleted": "Исчерпано",
|
||||
"depletingSoon": "Почти исчерпано",
|
||||
"offline": "Офлайн",
|
||||
"online": "Онлайн",
|
||||
"offline": "Не в сети",
|
||||
"online": "В сети",
|
||||
"domainName": "Домен",
|
||||
"monitor": "Мониторинг IP",
|
||||
"certificate": "SSL-сертификат",
|
||||
@@ -95,11 +102,12 @@
|
||||
"dark": "Темная",
|
||||
"ultraDark": "Очень темная",
|
||||
"dashboard": "Дашборд",
|
||||
"inbounds": "Подключения",
|
||||
"inbounds": "Входящие",
|
||||
"clients": "Клиенты",
|
||||
"groups": "Группы",
|
||||
"nodes": "Узлы",
|
||||
"settings": "Настройки",
|
||||
"xray": "Настройки Xray",
|
||||
"settings": "Настройки панели",
|
||||
"xray": "Конфигурации Xray",
|
||||
"apiDocs": "Документация API",
|
||||
"logout": "Выход",
|
||||
"link": "Управление",
|
||||
@@ -120,16 +128,16 @@
|
||||
},
|
||||
"index": {
|
||||
"title": "Дашборд",
|
||||
"cpu": "ЦП",
|
||||
"cpu": "CPU",
|
||||
"logicalProcessors": "Логические процессоры",
|
||||
"frequency": "Частота",
|
||||
"swap": "Файл подкачки",
|
||||
"swap": "Swap",
|
||||
"storage": "Диск",
|
||||
"memory": "ОЗУ",
|
||||
"memory": "RAM",
|
||||
"threads": "Потоки",
|
||||
"xrayStatus": "Xray",
|
||||
"stopXray": "Остановить",
|
||||
"restartXray": "Перезапустить",
|
||||
"stopXray": "Стоп",
|
||||
"restartXray": "Перезапуск",
|
||||
"xraySwitch": "Выбор версии",
|
||||
"xrayUpdates": "Обновления Xray",
|
||||
"xraySwitchClick": "Выберите нужную версию",
|
||||
@@ -165,8 +173,8 @@
|
||||
"ipAddresses": "IP-адреса сервера",
|
||||
"toggleIpVisibility": "Скрыть или показать IP-адреса сервера",
|
||||
"overallSpeed": "Общая скорость передачи трафика",
|
||||
"upload": "Отправка",
|
||||
"download": "Загрузка",
|
||||
"upload": "Загрузка",
|
||||
"download": "Скачать",
|
||||
"totalData": "Общий объем трафика",
|
||||
"sent": "Отправлено",
|
||||
"received": "Получено",
|
||||
@@ -226,7 +234,7 @@
|
||||
"customGeoErrUpdateAllIncomplete": "Не удалось обновить один или несколько пользовательских источников",
|
||||
"customGeoEmpty": "Пользовательских источников geo пока нет — нажмите «Добавить», чтобы создать",
|
||||
"dontRefresh": "Установка в процессе. Не обновляйте страницу",
|
||||
"logs": "Журнал",
|
||||
"logs": "Логи",
|
||||
"config": "Конфигурация",
|
||||
"backup": "Резервная копия",
|
||||
"backupTitle": "Бэкап и восстановление",
|
||||
@@ -241,7 +249,7 @@
|
||||
"getConfigError": "Произошла ошибка при получении конфигурационного файла"
|
||||
},
|
||||
"inbounds": {
|
||||
"title": "Подключения",
|
||||
"title": "Входящие",
|
||||
"totalDownUp": "Отправлено/получено",
|
||||
"totalUsage": "Всего трафика",
|
||||
"inboundCount": "Всего подключений",
|
||||
@@ -252,7 +260,7 @@
|
||||
"deployTo": "Развернуть на",
|
||||
"localPanel": "Локальная панель",
|
||||
"fallbacks": {
|
||||
"title": "Фолбэки",
|
||||
"title": "Fallback'и",
|
||||
"help": "Когда соединение на этом инбаунде не совпадает ни с одним клиентом, оно перенаправляется на другой инбаунд. Выберите дочерний инбаунд ниже — поля маршрутизации (SNI / ALPN / Path / xver) заполнятся автоматически из его транспорта, для большинства конфигураций больше ничего менять не нужно. Каждый дочерний должен слушать на 127.0.0.1 с security=none.",
|
||||
"empty": "Фолбэков пока нет",
|
||||
"add": "Добавить фолбэк",
|
||||
@@ -270,14 +278,14 @@
|
||||
},
|
||||
"protocol": "Протокол",
|
||||
"port": "Порт",
|
||||
"portMap": "Порт-маппинг",
|
||||
"portMap": "Сопоставление портов",
|
||||
"traffic": "Трафик",
|
||||
"details": "Подробнее",
|
||||
"transportConfig": "Транспорт",
|
||||
"expireDate": "Дата окончания",
|
||||
"createdAt": "Создано",
|
||||
"updatedAt": "Обновлено",
|
||||
"resetTraffic": "Сброс трафика",
|
||||
"resetTraffic": "Сбросить трафик",
|
||||
"addInbound": "Создать подключение",
|
||||
"generalActions": "Общие действия",
|
||||
"modifyInbound": "Изменить подключение",
|
||||
@@ -292,11 +300,29 @@
|
||||
"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 подключения",
|
||||
"inboundJsonTitle": "JSON входящего",
|
||||
"deleteClient": "Удалить клиента",
|
||||
"deleteClientContent": "Вы уверены, что хотите удалить клиента?",
|
||||
"resetTrafficContent": "Вы уверены, что хотите сбросить трафик?",
|
||||
@@ -306,7 +332,7 @@
|
||||
"destinationPort": "Порт назначения",
|
||||
"targetAddress": "Целевой адрес",
|
||||
"monitorDesc": "Оставьте пустым для прослушивания всех IP-адресов",
|
||||
"meansNoLimit": "= Без ограничений (значение: ГБ)",
|
||||
"meansNoLimit": "= Безлимит. (единица: ГБ)",
|
||||
"totalFlow": "Общий расход",
|
||||
"leaveBlankToNeverExpire": "Оставьте пустым, чтобы было бесконечным",
|
||||
"noRecommendKeepDefault": "Рекомендуется оставить настройки по умолчанию",
|
||||
@@ -341,9 +367,10 @@
|
||||
"IPLimitlogDesc": "Лог IP-адресов (перед включением лога IP-адресов, вы должны очистить лог)",
|
||||
"IPLimitlogclear": "Очистить лог",
|
||||
"setDefaultCert": "Установить сертификат панели",
|
||||
"streamTab": "Поток",
|
||||
"setDefaultCertEmpty": "Для панели не настроен сертификат. Сначала установите его в Настройках.",
|
||||
"streamTab": "Stream",
|
||||
"securityTab": "Безопасность",
|
||||
"sniffingTab": "Сниффинг",
|
||||
"sniffingTab": "Sniffing",
|
||||
"sniffingMetadataOnly": "Только метаданные",
|
||||
"sniffingRouteOnly": "Только маршрутизация",
|
||||
"sniffingIpsExcluded": "Исключённые IP",
|
||||
@@ -361,15 +388,14 @@
|
||||
"allHelp": "Полный объект входящего со всеми полями в одном редакторе.",
|
||||
"settings": "Настройки",
|
||||
"settingsHelp": "Обёртка блока settings Xray:",
|
||||
"sniffing": "Сниффинг",
|
||||
"sniffing": "Sniffing",
|
||||
"sniffingHelp": "Обёртка блока sniffing Xray:",
|
||||
"stream": "Поток",
|
||||
"stream": "Stream",
|
||||
"streamHelp": "Обёртка блока stream Xray:",
|
||||
"jsonErrorPrefix": "Расширенный JSON"
|
||||
},
|
||||
"telegramDesc": "Пожалуйста, укажите Chat ID Telegram. (используйте команду '/id' в боте) или ({'@'}userinfobot)",
|
||||
"subscriptionDesc": "Вы можете найти свою ссылку подписки в разделе 'Подробнее'",
|
||||
"info": "Информация",
|
||||
"same": "Тот же",
|
||||
"inboundData": "Данные подключений",
|
||||
"exportInbound": "Экспорт подключений",
|
||||
@@ -406,6 +432,139 @@
|
||||
"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": "Запрос",
|
||||
@@ -456,6 +615,20 @@
|
||||
"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": "Всего отправлено/получено (ГБ)",
|
||||
@@ -466,6 +639,9 @@
|
||||
"subId": "ID подписки",
|
||||
"online": "В сети",
|
||||
"email": "Email",
|
||||
"group": "Группа",
|
||||
"groupDesc": "Логическая метка для группировки связанных клиентов (например, команда, клиент, регион). Фильтруется из панели инструментов.",
|
||||
"groupPlaceholder": "например, customer-a",
|
||||
"comment": "Комментарий",
|
||||
"traffic": "Трафик",
|
||||
"offline": "Не в сети",
|
||||
@@ -485,15 +661,49 @@
|
||||
"noLinks": "Нет ссылок для общего доступа — сначала привяжите клиента к входящему с поддерживаемым протоколом.",
|
||||
"link": "Ссылка",
|
||||
"resetNotPossible": "Сначала привяжите этого клиента к входящему.",
|
||||
"general": "Общее",
|
||||
"general": "Общие",
|
||||
"resetAllTraffics": "Сбросить трафик всех клиентов",
|
||||
"resetAllTrafficsTitle": "Сбросить трафик всех клиентов?",
|
||||
"resetAllTrafficsContent": "Счётчики отправки/приёма всех клиентов сбрасываются в ноль. Квоты и срок действия не затрагиваются. Это действие нельзя отменить.",
|
||||
"empty": "Клиентов пока нет — добавьте первого, чтобы начать.",
|
||||
"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} клиентов",
|
||||
@@ -504,11 +714,12 @@
|
||||
"delDepleted": "Удалить исчерпанных",
|
||||
"delDepletedConfirmTitle": "Удалить исчерпанных клиентов?",
|
||||
"delDepletedConfirmContent": "Удаляются все клиенты, у которых исчерпана квота трафика или истёк срок. Это действие нельзя отменить.",
|
||||
"auth": "Auth",
|
||||
"hysteriaAuth": "Auth для Hysteria",
|
||||
"auth": "Авторизация",
|
||||
"hysteriaAuth": "Hysteria Auth",
|
||||
"uuid": "UUID",
|
||||
"flow": "Flow",
|
||||
"reverseTag": "Reverse tag",
|
||||
"vmessSecurity": "VMess Security",
|
||||
"reverseTag": "Обратный тег",
|
||||
"reverseTagPlaceholder": "Необязательный Reverse tag",
|
||||
"telegramId": "ID пользователя Telegram",
|
||||
"telegramIdPlaceholder": "Числовой ID пользователя Telegram (0 = нет)",
|
||||
@@ -528,13 +739,51 @@
|
||||
"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": "Редактировать узел",
|
||||
"editNode": "Изменить узел",
|
||||
"totalNodes": "Всего узлов",
|
||||
"onlineNodes": "Онлайн",
|
||||
"offlineNodes": "Офлайн",
|
||||
"onlineNodes": "В сети",
|
||||
"offlineNodes": "Не в сети",
|
||||
"avgLatency": "Средняя задержка",
|
||||
"name": "Имя",
|
||||
"namePlaceholder": "напр. de-frankfurt-1",
|
||||
@@ -544,7 +793,7 @@
|
||||
"address": "Адрес",
|
||||
"port": "Порт",
|
||||
"basePath": "Базовый путь",
|
||||
"apiToken": "Токен API",
|
||||
"apiToken": "API Токен",
|
||||
"apiTokenPlaceholder": "Токен со страницы Настроек удалённой панели",
|
||||
"apiTokenHint": "Удалённая панель показывает свой токен API в разделе Настройки → Токен API.",
|
||||
"regenerate": "Сгенерировать токен заново",
|
||||
@@ -555,7 +804,7 @@
|
||||
"status": "Статус",
|
||||
"cpu": "CPU",
|
||||
"mem": "Память",
|
||||
"uptime": "Время работы",
|
||||
"uptime": "Аптайм",
|
||||
"latency": "Задержка",
|
||||
"lastHeartbeat": "Последний пинг",
|
||||
"xrayVersion": "Версия Xray",
|
||||
@@ -570,8 +819,8 @@
|
||||
"deleteConfirmTitle": "Удалить узел \"{name}\"?",
|
||||
"deleteConfirmContent": "Это остановит мониторинг узла. Сама удалённая панель не будет затронута.",
|
||||
"statusValues": {
|
||||
"online": "Онлайн",
|
||||
"offline": "Офлайн",
|
||||
"online": "В сети",
|
||||
"offline": "Не в сети",
|
||||
"unknown": "Неизвестно"
|
||||
},
|
||||
"toasts": {
|
||||
@@ -590,7 +839,7 @@
|
||||
"title": "Настройки",
|
||||
"save": "Сохранить",
|
||||
"infoDesc": "Сохраните изменения и перезапустите панель для их применения.",
|
||||
"restartPanel": "Перезапуск панели",
|
||||
"restartPanel": "Перезапустить панель",
|
||||
"restartPanelDesc": "Вы уверены, что хотите перезапустить панель? Подтвердите, и перезапуск произойдёт через 3 секунды. Если панель будет недоступна, проверьте лог сервера",
|
||||
"restartPanelSuccess": "Панель успешно перезапущена",
|
||||
"actions": "Действия",
|
||||
@@ -604,7 +853,7 @@
|
||||
"warnDefaultBasePath": "Базовый путь по умолчанию \"/\" широко известен — измените его на случайный.",
|
||||
"warnDefaultSubPath": "Путь подписки по умолчанию \"/sub/\" широко известен — измените его.",
|
||||
"warnDefaultJsonPath": "JSON-путь подписки по умолчанию \"/json/\" широко известен — измените его.",
|
||||
"TGBotSettings": "Telegram-Бот",
|
||||
"TGBotSettings": "Telegram-бот",
|
||||
"panelListeningIP": "IP-адрес для управления панелью",
|
||||
"panelListeningIPDesc": "Оставьте пустым для подключения с любого IP",
|
||||
"panelListeningDomain": "Домен панели",
|
||||
@@ -615,10 +864,12 @@
|
||||
"publicKeyPathDesc": "Введите полный путь, начинающийся с '/'",
|
||||
"privateKeyPath": "Путь к файлу приватного ключа сертификата панели",
|
||||
"privateKeyPathDesc": "Введите полный путь, начинающийся с '/'",
|
||||
"panelUrlPath": "Корневой путь URL адреса панели",
|
||||
"panelUrlPath": "URI-путь",
|
||||
"panelUrlPathDesc": "Должен начинаться с '/' и заканчиваться '/'",
|
||||
"pageSize": "Размер нумерации страниц",
|
||||
"pageSizeDesc": "Определить размер страницы для таблицы подключений. Установите 0, чтобы отключить",
|
||||
"panelProxy": "Сетевой прокси панели",
|
||||
"panelProxyDesc": "Маршрутизирует исходящие запросы самой панели (обновления geo, проверки версий Xray/панели, Telegram) через этот прокси для обхода серверной фильтрации GitHub/Telegram. Принимает socks5:// или http(s)://, напр. локальный SOCKS-входящий Xray. Оставьте пустым для прямого подключения.",
|
||||
"remarkModel": "Модель примечания и символ разделения",
|
||||
"datepicker": "Тип календаря",
|
||||
"datepickerPlaceholder": "Выберите дату",
|
||||
@@ -630,11 +881,11 @@
|
||||
"newPassword": "Новый пароль",
|
||||
"telegramBotEnable": "Включить Telegram бота",
|
||||
"telegramBotEnableDesc": "Доступ к функциям панели через Telegram-бота",
|
||||
"telegramToken": "Токен Telegram бота",
|
||||
"telegramToken": "Telegram-токен",
|
||||
"telegramTokenDesc": "Необходимо получить токен у менеджера ботов Telegram {'@'}botfather",
|
||||
"telegramProxy": "Прокси-сервер Socks5",
|
||||
"telegramProxy": "SOCKS-прокси",
|
||||
"telegramProxyDesc": "Если для подключения к Telegram вам нужен прокси Socks5, настройте его параметры согласно руководству.",
|
||||
"telegramAPIServer": "API-сервер Telegram",
|
||||
"telegramAPIServer": "Telegram API Server",
|
||||
"telegramAPIServerDesc": "Используемый API-сервер Telegram. Оставьте пустым, чтобы использовать сервер по умолчанию.",
|
||||
"telegramChatId": "User ID администратора бота",
|
||||
"telegramChatIdDesc": "Один или несколько User ID администратора(-ов) Telegram-бота. Для получения User ID используйте {'@'}userinfobot или команду '/id' в боте.",
|
||||
@@ -658,6 +909,8 @@
|
||||
"subEnable": "Включить подписку",
|
||||
"subEnableDesc": "Функция подписки с отдельной конфигурацией",
|
||||
"subJsonEnable": "Включить/отключить JSON-эндпоинт подписки независимо.",
|
||||
"subJsonEnableTitle": "JSON-подписка",
|
||||
"subClashEnableTitle": "Подписка Clash / Mihomo",
|
||||
"subTitle": "Заголовок подписки",
|
||||
"subTitleDesc": "Название подписки, которое видит клиент в VPN-клиенте",
|
||||
"subSupportUrl": "URL поддержки",
|
||||
@@ -678,13 +931,13 @@
|
||||
"subCertPathDesc": "Введите полный путь, начинающийся с '/'",
|
||||
"subKeyPath": "Путь к файлу приватного ключа сертификата подписки",
|
||||
"subKeyPathDesc": "Введите полный путь, начинающийся с '/'",
|
||||
"subPath": "Корневой путь URL-адреса подписки",
|
||||
"subPath": "URI-путь",
|
||||
"subPathDesc": "Должен начинаться с '/' и заканчиваться на '/'",
|
||||
"subDomain": "Домен прослушивания",
|
||||
"subDomainDesc": "Оставьте пустым по умолчанию, чтобы слушать все домены и IP-адреса",
|
||||
"subUpdates": "Интервалы обновления подписки",
|
||||
"subUpdatesDesc": "Интервал между обновлениями в клиентском приложении (в часах)",
|
||||
"subEncrypt": "Шифровать конфиги",
|
||||
"subEncrypt": "Кодировать",
|
||||
"subEncryptDesc": "Шифровать возвращенные конфиги в подписке",
|
||||
"subShowInfo": "Показать информацию об использовании",
|
||||
"subShowInfoDesc": "Отображать остаток трафика и дату окончания после имени конфигурации",
|
||||
@@ -693,7 +946,7 @@
|
||||
"subURI": "URI обратного прокси",
|
||||
"subURIDesc": "Изменить базовый URI URL-адреса подписки для использования за прокси-серверами",
|
||||
"externalTrafficInformEnable": "Информация о внешнем трафике",
|
||||
"externalTrafficInformEnableDesc": "Информировать внешний API о каждом обновлении трафика",
|
||||
"externalTrafficInformEnableDesc": "Уведомлять внешний API при каждом обновлении трафика.",
|
||||
"externalTrafficInformURI": "URI информации о внешнем трафике",
|
||||
"externalTrafficInformURIDesc": "Обновления трафика отправляются на этот URI",
|
||||
"restartXrayOnClientDisable": "Перезапускать Xray после автоотключения",
|
||||
@@ -703,6 +956,54 @@
|
||||
"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",
|
||||
@@ -758,6 +1059,9 @@
|
||||
"save": "Сохранить",
|
||||
"restart": "Перезапуск Xray",
|
||||
"restartSuccess": "Xray успешно перезапущен",
|
||||
"restartOutputTitle": "Вывод перезапуска Xray",
|
||||
"restartConfirmTitle": "Перезапустить xray?",
|
||||
"restartConfirmContent": "Перезагружает сервис xray с сохранённой конфигурацией.",
|
||||
"stopSuccess": "Xray успешно остановлен",
|
||||
"restartError": "Произошла ошибка при перезапуске Xray.",
|
||||
"stopError": "Произошла ошибка при остановке Xray.",
|
||||
@@ -765,7 +1069,7 @@
|
||||
"advancedTemplate": "Расширенный шаблон",
|
||||
"generalConfigs": "Основные настройки",
|
||||
"generalConfigsDesc": "Эти параметры описывают общие настройки",
|
||||
"logConfigs": "Логи",
|
||||
"logConfigs": "Лог",
|
||||
"logConfigsDesc": "Логи могут замедлять работу сервера. Включайте только нужные вам виды логов при необходимости!",
|
||||
"blockConfigsDesc": "Настройте, чтобы клиенты не имели доступа к определенным протоколам",
|
||||
"basicRouting": "Базовые соединения",
|
||||
@@ -790,10 +1094,12 @@
|
||||
"outboundTestUrl": "URL для теста исходящего",
|
||||
"outboundTestUrlDesc": "URL для проверки подключения исходящего",
|
||||
"Torrent": "Заблокировать BitTorrent",
|
||||
"Inbounds": "Входящие подключения",
|
||||
"Inbounds": "Входящие",
|
||||
"InboundsDesc": "Изменение шаблона конфигурации для подключения определенных клиентов",
|
||||
"Outbounds": "Исходящие подключения",
|
||||
"Outbounds": "Исходящие",
|
||||
"Balancers": "Балансировщик",
|
||||
"balancerTagRequired": "Тег обязателен",
|
||||
"balancerSelectorRequired": "Выберите хотя бы одно исходящее",
|
||||
"OutboundsDesc": "Изменение шаблона конфигурации, чтобы определить исходящие подключения для этого сервера",
|
||||
"Routings": "Маршрутизация",
|
||||
"RoutingsDesc": "Важен приоритет каждого правила!",
|
||||
@@ -827,11 +1133,78 @@
|
||||
"inbound": "Входящее подключение",
|
||||
"outbound": "Исходящее подключение",
|
||||
"balancer": "Балансировщик",
|
||||
"info": "Информация",
|
||||
"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": "Создать реверс-прокси",
|
||||
@@ -846,8 +1219,8 @@
|
||||
"reverse": "Реверс-прокси",
|
||||
"domain": "Домен",
|
||||
"type": "Тип",
|
||||
"bridge": "Мост",
|
||||
"portal": "Портал",
|
||||
"bridge": "Bridge",
|
||||
"portal": "Portal",
|
||||
"link": "Ссылка",
|
||||
"intercon": "Соединение",
|
||||
"settings": "Настройки",
|
||||
@@ -860,6 +1233,8 @@
|
||||
"testSuccess": "Тест успешен",
|
||||
"testFailed": "Тест не пройден",
|
||||
"testError": "Не удалось протестировать исходящее подключение",
|
||||
"testModeTooltip": "TCP: быстрый dial-only probe. HTTP: полный запрос через xray.",
|
||||
"testAll": "Тестировать все",
|
||||
"nordvpn": "NordVPN",
|
||||
"accessToken": "Токен доступа",
|
||||
"country": "Страна",
|
||||
@@ -876,6 +1251,16 @@
|
||||
"balancerSelectors": "Селекторы",
|
||||
"tag": "Тег",
|
||||
"tagDesc": "Уникальный тег",
|
||||
"tagDuplicate": "Тег уже используется другим балансировщиком",
|
||||
"tagPlaceholder": "уникальный тег балансировщика",
|
||||
"selector": "Селектор",
|
||||
"fallback": "Fallback",
|
||||
"expected": "Ожидаемое",
|
||||
"expectedPlaceholder": "оптимальное число узлов",
|
||||
"maxRtt": "Макс. RTT",
|
||||
"tolerance": "Допуск",
|
||||
"baselines": "Baselines",
|
||||
"costs": "Costs",
|
||||
"balancerDesc": "Невозможно одновременно использовать balancerTag и outboundTag. При одновременном использовании будет работать только outboundTag."
|
||||
},
|
||||
"wireguard": {
|
||||
@@ -892,6 +1277,38 @@
|
||||
"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-сервер",
|
||||
@@ -959,10 +1376,10 @@
|
||||
"hours": "Часов",
|
||||
"minutes": "Минуты",
|
||||
"unknown": "Неизвестно",
|
||||
"inbounds": "Входящие подключения",
|
||||
"inbounds": "Входящие",
|
||||
"clients": "Клиенты",
|
||||
"offline": "🔴 Офлайн",
|
||||
"online": "🟢 Онлайн",
|
||||
"offline": "🔴 Не в сети",
|
||||
"online": "🟢 В сети",
|
||||
"commands": {
|
||||
"unknown": "❗ Неизвестная команда",
|
||||
"pleaseChoose": "👇 Пожалуйста, выберите:\r\n",
|
||||
@@ -992,24 +1409,24 @@
|
||||
"2faFailed": "Ошибка 2FA",
|
||||
"report": "🕰 Запланированные отчеты: {{ .RunTime }}\r\n",
|
||||
"datetime": "⏰ Дата и время: {{ .DateTime }}\r\n",
|
||||
"hostname": "💻 Имя хоста: {{ .Hostname }}\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",
|
||||
"ips": "🔢 IP:\r\n{{ .IPs }}\r\n",
|
||||
"serverUpTime": "⏳ Время работы сервера: {{ .UpTime }} {{ .Unit }}\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",
|
||||
"xrayStatus": "ℹ️ Состояние Xray: {{ .State }}\r\n",
|
||||
"xrayStatus": "ℹ️ Статус: {{ .State }}\r\n",
|
||||
"username": "👤 Имя пользователя: {{ .Username }}\r\n",
|
||||
"reason": "❗️ Причина: {{ .Reason }}\r\n",
|
||||
"time": "⏰ Время: {{ .Time }}\r\n",
|
||||
"inbound": "📍 Входящее подключение: {{ .Remark }}\r\n",
|
||||
"inbound": "📍 Входящий: {{ .Remark }}\r\n",
|
||||
"port": "🔌 Порт: {{ .Port }}\r\n",
|
||||
"expire": "📅 Дата окончания: {{ .Time }}\r\n",
|
||||
"expireIn": "📅 Окончание через: {{ .Time }}\r\n",
|
||||
@@ -1018,9 +1435,9 @@
|
||||
"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",
|
||||
"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",
|
||||
@@ -1077,7 +1494,7 @@
|
||||
"ipLimit": "🔢 Лимит IP",
|
||||
"setTGUser": "👤 Установить пользователя Telegram",
|
||||
"toggle": "🔘 Вкл./Выкл.",
|
||||
"custom": "🔢 Свой",
|
||||
"custom": "🔢 Своё",
|
||||
"confirmNumber": "✅ Подтвердить: {{ .Num }}",
|
||||
"confirmNumberAdd": "✅ Подтвердить добавление: {{ .Num }}",
|
||||
"limitTraffic": "🚧 Лимит трафика",
|
||||
@@ -1091,7 +1508,7 @@
|
||||
"change_password": "⚙️🔑 Пароль",
|
||||
"change_email": "⚙️📧 Email",
|
||||
"change_comment": "⚙️💬 Комментарий",
|
||||
"change_flow": "⚙️🚦 Поток",
|
||||
"change_flow": "⚙️🚦 Flow",
|
||||
"ResetAllTraffics": "Сбросить весь трафик",
|
||||
"SortedTrafficUsageReport": "Отсортированный отчет об использовании трафика"
|
||||
},
|
||||
@@ -1119,4 +1536,4 @@
|
||||
"chooseInbound": "Выберите входящее подключение"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user