mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-07-15 09:06:07 +00:00
feat(sub): auto-detect subscription format by User-Agent (Updated) (#5826)
* feat(settings): add subscription format controls
* feat(sub): auto-detect subscription formats
* fix(xray): validate balancer regexes before save
* Revert "fix(xray): validate balancer regexes before save"
This reverts commit 8a208ce71b.
* doc(endpoints): align indent spaces
* doc(settings): improve error message formatting in validateSubUserAgentRegex
- Use NewErrorf with proper formatting instead of NewError with string concatenation
- Add comment explaining the rationale for returning original pattern value
- This preserves the intentional design where empty input is stored as empty
in the DB and inherited as the runtime default at read time
---------
Co-authored-by: Tomilla <5007859+Tomilla@users.noreply.github.com>
Co-authored-by: Sanaei <ho3ein.sanaei@gmail.com>
This commit is contained in:
@@ -1191,6 +1191,19 @@
|
||||
"subJsonEnable": "Включить/отключить JSON-эндпоинт подписки независимо.",
|
||||
"subJsonEnableTitle": "JSON-подписка",
|
||||
"subClashEnableTitle": "Подписка Clash / Mihomo",
|
||||
"subFormatsTipTitle": "Настройки подписки для отдельных форматов",
|
||||
"subFormatsTipDesc": "Настройте отдельно URL-пути, обратные URL и автоматическое определение клиентов для JSON и Clash / Mihomo.",
|
||||
"subFormatsTipAction": "Открыть форматы подписки",
|
||||
"subJsonAutoDetect": "Автоматически определять клиентов Xray JSON",
|
||||
"subJsonAutoDetectDesc": "Если параметр включён, распознанные совместимые клиенты при запросе стандартного URL подписки автоматически получают массив конфигураций Xray JSON. Остальные клиенты получают прежний ответ raw/Base64. Для применения требуется включить JSON-подписку и перезапустить панель.",
|
||||
"subJsonAlwaysArray": "Всегда возвращать массив JSON",
|
||||
"subJsonAlwaysArrayDesc": "Возвращает явную JSON-подписку как массив даже при одном профиле согласно стандарту XTLS. Автоматически определённые JSON-ответы всегда используют массив. Отключите, чтобы сохранить прежний ответ в виде одного объекта.",
|
||||
"subJsonUserAgentRegex": "Регулярное выражение User-Agent Xray JSON",
|
||||
"subJsonUserAgentRegexDesc": "Регулярное выражение Go RE2, сопоставляемое с User-Agent клиента для автоматического выбора формата Xray JSON на стандартном URL подписки. По умолчанию пустое, поэтому автоопределение отключено, пока вы не зададите шаблон для нужных клиентов. Остальные клиенты получают ответ raw/Base64. После изменения перезапустите панель.",
|
||||
"subClashAutoDetect": "Автоматически определять клиентов Clash/Mihomo",
|
||||
"subClashAutoDetectDesc": "Если параметр включён, распознанные клиенты Clash/Mihomo при запросе стандартного URL подписки автоматически получают Clash YAML. Браузеры по-прежнему показывают страницу подписки, остальные клиенты получают прежний ответ raw/Base64, а явные URL JSON и Clash остаются доступными. Для применения требуется включить подписку Clash/Mihomo и перезапустить панель.",
|
||||
"subClashUserAgentRegex": "Регулярное выражение User-Agent Clash/Mihomo",
|
||||
"subClashUserAgentRegexDesc": "Регулярное выражение Go RE2, сопоставляемое с User-Agent клиента для распознавания клиентов Clash/Mihomo на стандартном URL подписки. Оставьте поле пустым, чтобы использовать шаблон по умолчанию. После изменения перезапустите панель.",
|
||||
"subTitle": "Заголовок подписки",
|
||||
"subTitleDesc": "Название подписки, которое видит клиент в VPN-клиенте",
|
||||
"subSupportUrl": "URL поддержки",
|
||||
@@ -1281,7 +1294,7 @@
|
||||
},
|
||||
"subFormats": {
|
||||
"finalMask": "Final Mask",
|
||||
"finalMaskDesc": "Маски finalmask xray (TCP/UDP) и настройки QUIC, добавляемые в каждый поток JSON-подписки. Требуется свежая версия xray на клиенте.",
|
||||
"finalMaskDesc": "Добавляет TCP/UDP-маски finalmask Xray и параметры QUIC в каждый созданный профиль Xray JSON. Требуется приложение с поддержкой подписок Xray JSON и свежая версия ядра Xray.",
|
||||
"packets": "Пакеты",
|
||||
"length": "Длина",
|
||||
"interval": "Интервал",
|
||||
|
||||
Reference in New Issue
Block a user