diff --git a/.github/update.log b/.github/update.log index 1a578d5b0d..dc62ca4b7a 100644 --- a/.github/update.log +++ b/.github/update.log @@ -703,3 +703,4 @@ Update On Thu Jul 11 20:30:51 CEST 2024 Update On Fri Jul 12 20:34:05 CEST 2024 Update On Sat Jul 13 20:28:46 CEST 2024 Update On Sun Jul 14 20:40:18 CEST 2024 +Update On Mon Jul 15 20:32:15 CEST 2024 diff --git a/clash-meta/adapter/outboundgroup/parser.go b/clash-meta/adapter/outboundgroup/parser.go index 67dc104dfb..efc38aabee 100644 --- a/clash-meta/adapter/outboundgroup/parser.go +++ b/clash-meta/adapter/outboundgroup/parser.go @@ -69,7 +69,7 @@ func ParseProxyGroup(config map[string]any, proxyMap map[string]C.Proxy, provide } if groupOption.IncludeAllProviders { - groupOption.Use = append(groupOption.Use, AllProviders...) + groupOption.Use = AllProviders } if groupOption.IncludeAllProxies { if groupOption.Filter != "" { diff --git a/clash-nyanpasu/backend/Cargo.lock b/clash-nyanpasu/backend/Cargo.lock index d6141db1fe..fa9033391d 100644 --- a/clash-nyanpasu/backend/Cargo.lock +++ b/clash-nyanpasu/backend/Cargo.lock @@ -1779,9 +1779,9 @@ dependencies = [ [[package]] name = "fast_image_resize" -version = "4.0.0" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02abb58c39fa9b20678cedabab49e6c4f6ecb7480d7cb5711496b9289184a875" +checksum = "89a06940fe3bab6e93dc275bb8a67cc833b70f4078124e7e7f7352f5c8470e63" dependencies = [ "cfg-if", "document-features", diff --git a/clash-nyanpasu/backend/tauri/tauri.conf.json b/clash-nyanpasu/backend/tauri/tauri.conf.json index 760bf53f2c..8fd7728229 100644 --- a/clash-nyanpasu/backend/tauri/tauri.conf.json +++ b/clash-nyanpasu/backend/tauri/tauri.conf.json @@ -108,7 +108,7 @@ }, "windows": [], "security": { - "csp": "script-src 'unsafe-eval' 'self'; default-src blob: data: filesystem: ws: wss: http: https: tauri: 'unsafe-eval' 'unsafe-inline' 'self'; img-src data: 'self' https:;" + "csp": "script-src 'unsafe-eval' 'self'; default-src 'self' blob: data: filesystem: ws: wss: http: https: tauri: 'unsafe-eval' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' http: https:;" } } } diff --git a/clash-verge-rev/.github/workflows/release.yml b/clash-verge-rev/.github/workflows/release.yml index fe33672762..0cb5fb3864 100644 --- a/clash-verge-rev/.github/workflows/release.yml +++ b/clash-verge-rev/.github/workflows/release.yml @@ -258,12 +258,23 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} submit-to-winget: - runs-on: windows-latest + runs-on: ubuntu-latest needs: [release-update] steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Get Version + run: | + sudo apt-get update + sudo apt-get install jq + echo "VERSION=$(cat package.json | jq '.version' | tr -d '"')" >> $GITHUB_ENV - name: Submit to Winget uses: vedantmgoyal9/winget-releaser@main with: identifier: ClashVergeRev.ClashVergeRev + version: ${{env.VERSION}} + release-tag: v${{env.VERSION}} installers-regex: '_(arm64|x64|x86)-setup\.exe$' - token: ${{ secrets.GITHUB_TOKEN }} + token: ${{ secrets.WINGET_TOKEN }} diff --git a/clash-verge-rev/UPDATELOG.md b/clash-verge-rev/UPDATELOG.md index 93d9da646a..75a03aa5a6 100644 --- a/clash-verge-rev/UPDATELOG.md +++ b/clash-verge-rev/UPDATELOG.md @@ -1,3 +1,28 @@ +## v1.7.5 + +### Features + +- 展示局域网 IP 地址信息 +- 在设置页面直接复制环境变量 +- 优化服务模式安装逻辑 + +### Performance + +- 优化切换订阅速度 +- 优化更改端口速度 + +### Bugs Fixes + +- 调整 MacOS 托盘图标大小 +- Trojan URI 解析错误 +- 卡片拖动显示层级错误 +- 代理绕过格式检查错误 +- MacOS 下编辑器最大化失败 +- MacOS 服务安装失败 +- 更改窗口大小导致闪退的问题 + +--- + ## v1.7.3 ### Features diff --git a/clash-verge-rev/package.json b/clash-verge-rev/package.json index e736201cad..b984a8d848 100644 --- a/clash-verge-rev/package.json +++ b/clash-verge-rev/package.json @@ -1,6 +1,6 @@ { "name": "clash-verge", - "version": "1.7.3", + "version": "1.7.5", "license": "GPL-3.0-only", "scripts": { "dev": "tauri dev", diff --git a/clash-verge-rev/src-tauri/Cargo.lock b/clash-verge-rev/src-tauri/Cargo.lock index 83a6f3d6a1..2e16fdd65a 100644 --- a/clash-verge-rev/src-tauri/Cargo.lock +++ b/clash-verge-rev/src-tauri/Cargo.lock @@ -790,7 +790,7 @@ dependencies = [ [[package]] name = "clash-verge" -version = "1.7.3" +version = "1.7.5" dependencies = [ "anyhow", "auto-launch", diff --git a/clash-verge-rev/src-tauri/Cargo.toml b/clash-verge-rev/src-tauri/Cargo.toml index a1de09f527..677d76bad6 100644 --- a/clash-verge-rev/src-tauri/Cargo.toml +++ b/clash-verge-rev/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "clash-verge" -version = "1.7.3" +version = "1.7.5" description = "clash verge" authors = ["zzzgydi", "wonfen", "MystiPanda"] license = "GPL-3.0-only" diff --git a/clash-verge-rev/src-tauri/src/utils/init.rs b/clash-verge-rev/src-tauri/src/utils/init.rs index 8c7082b960..943e33cba1 100644 --- a/clash-verge-rev/src-tauri/src/utils/init.rs +++ b/clash-verge-rev/src-tauri/src/utils/init.rs @@ -191,11 +191,15 @@ pub fn init_config() -> Result<()> { /// after tauri setup pub fn init_resources() -> Result<()> { let app_dir = dirs::app_home_dir()?; + let test_dir = app_dir.join("test"); let res_dir = dirs::app_resources_dir()?; if !app_dir.exists() { let _ = fs::create_dir_all(&app_dir); } + if !test_dir.exists() { + let _ = fs::create_dir_all(&test_dir); + } if !res_dir.exists() { let _ = fs::create_dir_all(&res_dir); } @@ -210,9 +214,10 @@ pub fn init_resources() -> Result<()> { for file in file_list.iter() { let src_path = res_dir.join(file); let dest_path = app_dir.join(file); + let test_dest_path = test_dir.join(file); - let handle_copy = || { - match fs::copy(&src_path, &dest_path) { + let handle_copy = |dest: &PathBuf| { + match fs::copy(&src_path, dest) { Ok(_) => log::debug!(target: "app", "resources copied '{file}'"), Err(err) => { log::error!(target: "app", "failed to copy resources '{file}', {err}") @@ -220,8 +225,11 @@ pub fn init_resources() -> Result<()> { }; }; + if src_path.exists() && !test_dest_path.exists() { + handle_copy(&test_dest_path); + } if src_path.exists() && !dest_path.exists() { - handle_copy(); + handle_copy(&dest_path); continue; } @@ -231,14 +239,14 @@ pub fn init_resources() -> Result<()> { match (src_modified, dest_modified) { (Ok(src_modified), Ok(dest_modified)) => { if src_modified > dest_modified { - handle_copy(); + handle_copy(&dest_path); } else { log::debug!(target: "app", "skipping resource copy '{file}'"); } } _ => { log::debug!(target: "app", "failed to get modified '{file}'"); - handle_copy(); + handle_copy(&dest_path); } }; } diff --git a/clash-verge-rev/src-tauri/tauri.conf.json b/clash-verge-rev/src-tauri/tauri.conf.json index ad5b936570..04d4f495ad 100644 --- a/clash-verge-rev/src-tauri/tauri.conf.json +++ b/clash-verge-rev/src-tauri/tauri.conf.json @@ -2,7 +2,7 @@ "$schema": "../node_modules/@tauri-apps/cli/schema.json", "package": { "productName": "Clash Verge", - "version": "1.7.3" + "version": "1.7.5" }, "build": { "distDir": "../dist", diff --git a/clash-verge-rev/src/components/base/base-switch.tsx b/clash-verge-rev/src/components/base/base-switch.tsx index c05c091542..747affcfcf 100644 --- a/clash-verge-rev/src/components/base/base-switch.tsx +++ b/clash-verge-rev/src/components/base/base-switch.tsx @@ -11,6 +11,7 @@ export const Switch = styled((props: SwitchProps) => ( width: 42, height: 26, padding: 0, + marginRight: 1, "& .MuiSwitch-switchBase": { padding: 0, margin: 2, diff --git a/clash-verge-rev/src/components/setting/mods/network-interface-viewer.tsx b/clash-verge-rev/src/components/setting/mods/network-interface-viewer.tsx index 3e162fdfea..e8771f5b21 100644 --- a/clash-verge-rev/src/components/setting/mods/network-interface-viewer.tsx +++ b/clash-verge-rev/src/components/setting/mods/network-interface-viewer.tsx @@ -49,9 +49,8 @@ export const NetworkInterfaceViewer = forwardRef((props, ref) => { } contentSx={{ width: 450, maxHeight: 330 }} - okBtn={t("Save")} - cancelBtn={t("Cancel")} - onClose={() => setOpen(false)} + disableOk + cancelBtn={t("Close")} onCancel={() => setOpen(false)} > {networkInterfaces.map((item) => ( diff --git a/clash-verge-rev/src/components/setting/mods/service-switcher.tsx b/clash-verge-rev/src/components/setting/mods/service-switcher.tsx new file mode 100644 index 0000000000..e86aa1eeb7 --- /dev/null +++ b/clash-verge-rev/src/components/setting/mods/service-switcher.tsx @@ -0,0 +1,97 @@ +import { KeyedMutator } from "swr"; +import { useState } from "react"; +import { useLockFn } from "ahooks"; +import { useTranslation } from "react-i18next"; +import { installService, uninstallService } from "@/services/cmds"; +import { Notice } from "@/components/base"; +import { LoadingButton } from "@mui/lab"; + +interface Props { + status: "active" | "installed" | "unknown" | "uninstall"; + mutate: KeyedMutator<"active" | "installed" | "unknown" | "uninstall">; + patchVerge: (value: Partial) => Promise; + onChangeData: (patch: Partial) => void; +} + +export const ServiceSwitcher = (props: Props) => { + const { status, mutate, patchVerge, onChangeData } = props; + + const isActive = status === "active"; + const isInstalled = status === "installed"; + const isUninstall = status === "uninstall" || status === "unknown"; + + const { t } = useTranslation(); + const [serviceLoading, setServiceLoading] = useState(false); + const [uninstallServiceLoaing, setUninstallServiceLoading] = useState(false); + + const onInstallOrEnableService = useLockFn(async () => { + setServiceLoading(true); + try { + if (isUninstall) { + // install service + await installService(); + await mutate(); + setTimeout(() => { + mutate(); + }, 2000); + Notice.success(t("Service Installed Successfully")); + setServiceLoading(false); + } else { + // enable or disable service + await patchVerge({ enable_service_mode: !isActive }); + onChangeData({ enable_service_mode: !isActive }); + await mutate(); + setTimeout(() => { + mutate(); + }, 2000); + setServiceLoading(false); + } + } catch (err: any) { + await mutate(); + Notice.error(err.message || err.toString()); + setServiceLoading(false); + } + }); + + const onUninstallService = useLockFn(async () => { + setUninstallServiceLoading(true); + try { + await uninstallService(); + await mutate(); + setTimeout(() => { + mutate(); + }, 2000); + Notice.success(t("Service Uninstalled Successfully")); + setUninstallServiceLoading(false); + } catch (err: any) { + await mutate(); + Notice.error(err.message || err.toString()); + setUninstallServiceLoading(false); + } + }); + + return ( + <> + + {isActive ? t("Disable") : isInstalled ? t("Enable") : t("Install")} + + {isInstalled && ( + + {t("Uninstall")} + + )} + + ); +}; diff --git a/clash-verge-rev/src/components/setting/mods/service-viewer.tsx b/clash-verge-rev/src/components/setting/mods/service-viewer.tsx deleted file mode 100644 index 5c4e97fa0e..0000000000 --- a/clash-verge-rev/src/components/setting/mods/service-viewer.tsx +++ /dev/null @@ -1,129 +0,0 @@ -import useSWR from "swr"; -import { forwardRef, useImperativeHandle, useState } from "react"; -import { useLockFn } from "ahooks"; -import { useTranslation } from "react-i18next"; -import { Button, Stack, Typography } from "@mui/material"; -import { - checkService, - installService, - uninstallService, - patchVergeConfig, -} from "@/services/cmds"; -import { BaseDialog, DialogRef, Notice } from "@/components/base"; - -interface Props { - enable: boolean; -} - -export const ServiceViewer = forwardRef((props, ref) => { - const { enable } = props; - - const { t } = useTranslation(); - const [open, setOpen] = useState(false); - - const { data: status, mutate: mutateCheck } = useSWR( - "checkService", - checkService, - { - revalidateIfStale: false, - shouldRetryOnError: false, - focusThrottleInterval: 36e5, // 1 hour - } - ); - - useImperativeHandle(ref, () => ({ - open: () => setOpen(true), - close: () => setOpen(false), - })); - - const state = status != null ? status : "pending"; - - const onInstall = useLockFn(async () => { - try { - await installService(); - await mutateCheck(); - setOpen(false); - setTimeout(() => { - mutateCheck(); - }, 2000); - Notice.success(t("Service Installed Successfully")); - } catch (err: any) { - mutateCheck(); - Notice.error(err.message || err.toString()); - } - }); - - const onUninstall = useLockFn(async () => { - try { - if (enable) { - await patchVergeConfig({ enable_service_mode: false }); - } - - await uninstallService(); - mutateCheck(); - setOpen(false); - Notice.success(t("Service Uninstalled Successfully")); - } catch (err: any) { - mutateCheck(); - Notice.error(err.message || err.toString()); - } - }); - - // fix unhandled error of the service mode - const onDisable = useLockFn(async () => { - try { - await patchVergeConfig({ enable_service_mode: false }); - mutateCheck(); - setOpen(false); - } catch (err: any) { - mutateCheck(); - Notice.error(err.message || err.toString()); - } - }); - - return ( - setOpen(false)} - > - - {t("Current State")}: {t(state)} - - - {(state === "unknown" || state === "uninstall") && ( - - {t( - "Information: Please make sure that the Clash Verge Service is installed and enabled" - )} - - )} - - - {state === "uninstall" && enable && ( - - )} - - {state === "uninstall" && ( - - )} - - {(state === "active" || state === "installed") && ( - - )} - - - ); -}); diff --git a/clash-verge-rev/src/components/setting/setting-system.tsx b/clash-verge-rev/src/components/setting/setting-system.tsx index 1bfae0b359..7686c8f622 100644 --- a/clash-verge-rev/src/components/setting/setting-system.tsx +++ b/clash-verge-rev/src/components/setting/setting-system.tsx @@ -1,13 +1,13 @@ import useSWR from "swr"; import { useRef } from "react"; import { useTranslation } from "react-i18next"; -import { PrivacyTipRounded, SettingsRounded } from "@mui/icons-material"; +import { SettingsRounded } from "@mui/icons-material"; import { checkService } from "@/services/cmds"; import { useVerge } from "@/hooks/use-verge"; -import { DialogRef, Switch } from "@/components/base"; +import { DialogRef, Notice, Switch } from "@/components/base"; import { SettingList, SettingItem } from "./mods/setting-comp"; import { GuardState } from "./mods/guard-state"; -import { ServiceViewer } from "./mods/service-viewer"; +import { ServiceSwitcher } from "./mods/service-switcher"; import { SysproxyViewer } from "./mods/sysproxy-viewer"; import { TunViewer } from "./mods/tun-viewer"; import { TooltipIcon } from "@/components/base/base-tooltip-icon"; @@ -20,22 +20,23 @@ const SettingSystem = ({ onError }: Props) => { const { t } = useTranslation(); const { verge, mutateVerge, patchVerge } = useVerge(); - // service mode - const { data: serviceStatus } = useSWR("checkService", checkService, { - revalidateIfStale: false, - shouldRetryOnError: false, - focusThrottleInterval: 36e5, // 1 hour - }); + const { data: serviceStatus, mutate: mutateServiceStatus } = useSWR( + "checkService", + checkService, + { + revalidateIfStale: false, + shouldRetryOnError: false, + focusThrottleInterval: 36e5, // 1 hour + } + ); - const serviceRef = useRef(null); const sysproxyRef = useRef(null); const tunRef = useRef(null); const { enable_tun_mode, enable_auto_launch, - enable_service_mode, enable_silent_start, enable_system_proxy, } = verge ?? {}; @@ -49,7 +50,6 @@ const SettingSystem = ({ onError }: Props) => { - { valueProps="checked" onCatch={onError} onFormat={onSwitchFormat} - onChange={(e) => onChangeData({ enable_tun_mode: e })} - onGuard={(e) => patchVerge({ enable_tun_mode: e })} + onChange={(e) => { + if (serviceStatus !== "active") { + onChangeData({ enable_tun_mode: false }); + } else { + onChangeData({ enable_tun_mode: e }); + } + }} + onGuard={(e) => { + if (serviceStatus !== "active" && e) { + Notice.error(t("Please Enable Service Mode")); + return Promise.resolve(); + } else { + return patchVerge({ enable_tun_mode: e }); + } + }} > - serviceRef.current?.open()} - /> - } - > - onChangeData({ enable_service_mode: e })} - onGuard={(e) => patchVerge({ enable_service_mode: e })} - > - - + + --- -diff --git a/Makefile b/Makefile --- a/Makefile +++ b/Makefile @@ -41,10 +41,10 @@ RANLIB= ranlib @@ -42,7 +41,7 @@ rename to doc/luac5.1.1 diff --git a/src/Makefile b/src/Makefile --- a/src/Makefile +++ b/src/Makefile -@@ -29,10 +29,10 @@ CORE_O= lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \ +@@ -29,10 +29,10 @@ CORE_O= lapi.o lcode.o ldebug.o ldo.o ld LIB_O= lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o \ lstrlib.o loadlib.o linit.o diff --git a/lede/package/utils/lua/patches-host/013-lnum-strtoul-parsing-fixes.patch b/lede/package/utils/lua/patches-host/013-lnum-strtoul-parsing-fixes.patch index 7f00c8c3a2..8887229589 100644 --- a/lede/package/utils/lua/patches-host/013-lnum-strtoul-parsing-fixes.patch +++ b/lede/package/utils/lua/patches-host/013-lnum-strtoul-parsing-fixes.patch @@ -1,8 +1,6 @@ -diff --git a/src/lnum.c b/src/lnum.c -index 1456b6a2ed23..b0632b04c2b7 100644 --- a/src/lnum.c +++ b/src/lnum.c -@@ -127,6 +127,8 @@ static int luaO_str2i (const char *s, lua_Integer *res, char **endptr_ref) { +@@ -127,6 +127,8 @@ static int luaO_str2i (const char *s, lu #else return 0; /* Reject the number */ #endif @@ -11,7 +9,7 @@ index 1456b6a2ed23..b0632b04c2b7 100644 } } else if ((v > LUA_INTEGER_MAX) || (*endptr && (!isspace(*endptr)))) { return TK_NUMBER; /* not in signed range, or has '.', 'e' etc. trailing */ -@@ -310,3 +312,13 @@ int try_unmint( lua_Integer *r, lua_Integer ib ) { +@@ -310,3 +312,13 @@ int try_unmint( lua_Integer *r, lua_Inte return 0; } @@ -25,8 +23,6 @@ index 1456b6a2ed23..b0632b04c2b7 100644 + return (unsigned LUA_INTEGER)v; +} +#endif -diff --git a/src/lnum_config.h b/src/lnum_config.h -index 19d7a4231a49..1092eead6629 100644 --- a/src/lnum_config.h +++ b/src/lnum_config.h @@ -141,7 +141,12 @@ @@ -43,6 +39,3 @@ index 19d7a4231a49..1092eead6629 100644 #endif #ifndef LUA_INTEGER_MIN # define LUA_INTEGER_MIN (-LUA_INTEGER_MAX -1) /* -2^16|32 */ --- -1.9.1 - diff --git a/lede/package/utils/lua/patches-host/100-no_readline.patch b/lede/package/utils/lua/patches-host/100-no_readline.patch index 209c302bb7..700114e43c 100644 --- a/lede/package/utils/lua/patches-host/100-no_readline.patch +++ b/lede/package/utils/lua/patches-host/100-no_readline.patch @@ -10,7 +10,7 @@ #if defined(LUA_USE_MACOSX) --- a/src/Makefile +++ b/src/Makefile -@@ -17,6 +17,7 @@ +@@ -17,6 +17,7 @@ LIBS= -lm $(MYLIBS) MYCFLAGS= MYLDFLAGS= MYLIBS= @@ -18,7 +18,7 @@ # == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE ========= -@@ -75,7 +76,7 @@ +@@ -75,7 +76,7 @@ echo: @echo "MYLIBS = $(MYLIBS)" # convenience targets for popular platforms @@ -27,7 +27,7 @@ none: @echo "Please choose a platform:" @echo " $(PLATS)" -@@ -90,16 +91,16 @@ +@@ -90,16 +91,16 @@ bsd: $(MAKE) all MYCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" MYLIBS="-Wl,-E" freebsd: diff --git a/lede/package/utils/lua/patches-host/400-CVE-2014-5461.patch b/lede/package/utils/lua/patches-host/400-CVE-2014-5461.patch new file mode 100644 index 0000000000..cce73ff96b --- /dev/null +++ b/lede/package/utils/lua/patches-host/400-CVE-2014-5461.patch @@ -0,0 +1,19 @@ +From: Enrico Tassi +Date: Tue, 26 Aug 2014 16:20:55 +0200 +Subject: Fix stack overflow in vararg functions + +--- + src/ldo.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/src/ldo.c ++++ b/src/ldo.c +@@ -274,7 +274,7 @@ int luaD_precall (lua_State *L, StkId fu + CallInfo *ci; + StkId st, base; + Proto *p = cl->p; +- luaD_checkstack(L, p->maxstacksize); ++ luaD_checkstack(L, p->maxstacksize + p->numparams); + func = restorestack(L, funcr); + if (!p->is_vararg) { /* no varargs? */ + base = func + 1; diff --git a/lede/package/utils/lua/patches/001-include-version-number.patch b/lede/package/utils/lua/patches/001-include-version-number.patch index f769e60736..806d37003e 100644 --- a/lede/package/utils/lua/patches/001-include-version-number.patch +++ b/lede/package/utils/lua/patches/001-include-version-number.patch @@ -8,7 +8,6 @@ Including it allows multiple lua versions to coexist. Signed-off-by: Rafał Miłecki --- -diff --git a/Makefile b/Makefile --- a/Makefile +++ b/Makefile @@ -41,10 +41,10 @@ RANLIB= ranlib @@ -42,7 +41,7 @@ rename to doc/luac5.1.1 diff --git a/src/Makefile b/src/Makefile --- a/src/Makefile +++ b/src/Makefile -@@ -29,10 +29,10 @@ CORE_O= lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \ +@@ -29,10 +29,10 @@ CORE_O= lapi.o lcode.o ldebug.o ldo.o ld LIB_O= lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o \ lstrlib.o loadlib.o linit.o diff --git a/lede/package/utils/lua/patches/013-lnum-strtoul-parsing-fixes.patch b/lede/package/utils/lua/patches/013-lnum-strtoul-parsing-fixes.patch index 7f00c8c3a2..8887229589 100644 --- a/lede/package/utils/lua/patches/013-lnum-strtoul-parsing-fixes.patch +++ b/lede/package/utils/lua/patches/013-lnum-strtoul-parsing-fixes.patch @@ -1,8 +1,6 @@ -diff --git a/src/lnum.c b/src/lnum.c -index 1456b6a2ed23..b0632b04c2b7 100644 --- a/src/lnum.c +++ b/src/lnum.c -@@ -127,6 +127,8 @@ static int luaO_str2i (const char *s, lua_Integer *res, char **endptr_ref) { +@@ -127,6 +127,8 @@ static int luaO_str2i (const char *s, lu #else return 0; /* Reject the number */ #endif @@ -11,7 +9,7 @@ index 1456b6a2ed23..b0632b04c2b7 100644 } } else if ((v > LUA_INTEGER_MAX) || (*endptr && (!isspace(*endptr)))) { return TK_NUMBER; /* not in signed range, or has '.', 'e' etc. trailing */ -@@ -310,3 +312,13 @@ int try_unmint( lua_Integer *r, lua_Integer ib ) { +@@ -310,3 +312,13 @@ int try_unmint( lua_Integer *r, lua_Inte return 0; } @@ -25,8 +23,6 @@ index 1456b6a2ed23..b0632b04c2b7 100644 + return (unsigned LUA_INTEGER)v; +} +#endif -diff --git a/src/lnum_config.h b/src/lnum_config.h -index 19d7a4231a49..1092eead6629 100644 --- a/src/lnum_config.h +++ b/src/lnum_config.h @@ -141,7 +141,12 @@ @@ -43,6 +39,3 @@ index 19d7a4231a49..1092eead6629 100644 #endif #ifndef LUA_INTEGER_MIN # define LUA_INTEGER_MIN (-LUA_INTEGER_MAX -1) /* -2^16|32 */ --- -1.9.1 - diff --git a/lede/package/utils/lua/patches/400-CVE-2014-5461.patch b/lede/package/utils/lua/patches/400-CVE-2014-5461.patch new file mode 100644 index 0000000000..cce73ff96b --- /dev/null +++ b/lede/package/utils/lua/patches/400-CVE-2014-5461.patch @@ -0,0 +1,19 @@ +From: Enrico Tassi +Date: Tue, 26 Aug 2014 16:20:55 +0200 +Subject: Fix stack overflow in vararg functions + +--- + src/ldo.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/src/ldo.c ++++ b/src/ldo.c +@@ -274,7 +274,7 @@ int luaD_precall (lua_State *L, StkId fu + CallInfo *ci; + StkId st, base; + Proto *p = cl->p; +- luaD_checkstack(L, p->maxstacksize); ++ luaD_checkstack(L, p->maxstacksize + p->numparams); + func = restorestack(L, funcr); + if (!p->is_vararg) { /* no varargs? */ + base = func + 1; diff --git a/mieru/pkg/congestion/bbr_sender.go b/mieru/pkg/congestion/bbr_sender.go index 44ac3b9d2e..0cf4fa1490 100644 --- a/mieru/pkg/congestion/bbr_sender.go +++ b/mieru/pkg/congestion/bbr_sender.go @@ -88,10 +88,10 @@ type BBRSender struct { currentRoundTripEnd int64 // Tracks the maximum bandwidth over the multiple recent round-trips. - maxBandwidth WindowedFilter[uint64] + maxBandwidth WindowedFilter[int64] // Tracks the maximum number of bytes acked faster than the sending rate. - maxAckHeight WindowedFilter[uint64] + maxAckHeight WindowedFilter[int64] // The time this aggregation started and the number of bytes acked during it. aggregationEpochStartTime time.Time @@ -158,7 +158,7 @@ type BBRSender struct { isAtFullBandwidth bool // Number of rounds during which there was no significant bandwidth increase. - roundsWithoutBandwidthGain uint64 + roundsWithoutBandwidthGain int64 // The bandwidth compared to which the increase is measured. bandwidthAtLastRound int64 @@ -234,7 +234,7 @@ func (b *BBRSender) IsProbingForMoreBandwidth() bool { return b.mode == modeProbeBW } -func (b *BBRSender) AdjustNetworkParameters(bandwidth uint64, rtt time.Duration) { +func (b *BBRSender) AdjustNetworkParameters(bandwidth int64, rtt time.Duration) { if bandwidth > 0 { b.maxBandwidth.Update(bandwidth, b.roundTripCount) } @@ -276,8 +276,7 @@ func (b *BBRSender) PacingRate(bytesInFlight int64) int64 { } func (b *BBRSender) BandwidthEstimate() int64 { - // Implementation here - return 0 + return b.maxBandwidth.GetBest() } func (b *BBRSender) GetCongestionWindow() int64 { @@ -286,7 +285,6 @@ func (b *BBRSender) GetCongestionWindow() int64 { } func (b *BBRSender) GetSlowStartThreshold() int64 { - // Implementation here return 0 } @@ -299,8 +297,10 @@ func (b *BBRSender) NumStartupRTTs() int64 { } func (b *BBRSender) GetMinRTT() time.Duration { - // Implementation here - return 0 + if b.minRTT != 0 { + return b.minRTT + } + return b.rttStats.SmoothedRTT() } func (b *BBRSender) IsAtFullBandwidth() bool { diff --git a/mihomo/adapter/outboundgroup/parser.go b/mihomo/adapter/outboundgroup/parser.go index 67dc104dfb..efc38aabee 100644 --- a/mihomo/adapter/outboundgroup/parser.go +++ b/mihomo/adapter/outboundgroup/parser.go @@ -69,7 +69,7 @@ func ParseProxyGroup(config map[string]any, proxyMap map[string]C.Proxy, provide } if groupOption.IncludeAllProviders { - groupOption.Use = append(groupOption.Use, AllProviders...) + groupOption.Use = AllProviders } if groupOption.IncludeAllProxies { if groupOption.Filter != "" { diff --git a/openwrt-packages/homeproxy/htdocs/luci-static/resources/view/homeproxy/client.js b/openwrt-packages/homeproxy/htdocs/luci-static/resources/view/homeproxy/client.js index b134019456..9602769d71 100644 --- a/openwrt-packages/homeproxy/htdocs/luci-static/resources/view/homeproxy/client.js +++ b/openwrt-packages/homeproxy/htdocs/luci-static/resources/view/homeproxy/client.js @@ -740,8 +740,7 @@ return view.extend({ so = ss.option(form.Value, 'client_subnet', _('EDNS Client subnet'), _('Append a edns0-subnet OPT extra record with the specified IP prefix to every query by default.
' + - 'If value is an IP address instead of prefix, /32 or /128 will be appended automatically.
' + - 'Can be overrides by rules.[].client_subnet. Will overrides dns.client_subnet.')); + 'If value is an IP address instead of prefix, /32 or /128 will be appended automatically.')); so.datatype = 'or(cidr, ipaddr)'; /* DNS servers end */ @@ -949,8 +948,7 @@ return view.extend({ so = ss.option(form.Value, 'client_subnet', _('EDNS Client subnet'), _('Append a edns0-subnet OPT extra record with the specified IP prefix to every query by default.
' + - 'If value is an IP address instead of prefix, /32 or /128 will be appended automatically.
' + - 'Will overrides dns.client_subnet and servers.[].client_subnet.')); + 'If value is an IP address instead of prefix, /32 or /128 will be appended automatically.')); so.datatype = 'or(cidr, ipaddr)'; /* DNS rules end */ /* Custom routing settings end */ diff --git a/openwrt-packages/homeproxy/htdocs/luci-static/resources/view/homeproxy/server.js b/openwrt-packages/homeproxy/htdocs/luci-static/resources/view/homeproxy/server.js index 69eaacadb4..b3d5f64b24 100644 --- a/openwrt-packages/homeproxy/htdocs/luci-static/resources/view/homeproxy/server.js +++ b/openwrt-packages/homeproxy/htdocs/luci-static/resources/view/homeproxy/server.js @@ -479,8 +479,7 @@ return view.extend({ o = s.option(form.Value, 'tls_sni', _('TLS SNI'), _('Used to verify the hostname on the returned certificates unless insecure is given.')); - o.depends({'tls': '1', 'tls_reality': '0'}); - o.depends({'tls': '1', 'tls_reality': null}); + o.depends('tls', '1'); o.modalonly = true; o = s.option(form.DynamicList, 'tls_alpn', _('TLS ALPN'), diff --git a/openwrt-packages/homeproxy/po/templates/homeproxy.pot b/openwrt-packages/homeproxy/po/templates/homeproxy.pot index 0cb849afd2..6c50ceca31 100644 --- a/openwrt-packages/homeproxy/po/templates/homeproxy.pot +++ b/openwrt-packages/homeproxy/po/templates/homeproxy.pot @@ -10,7 +10,7 @@ msgid "%s nodes removed" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:554 -#: htdocs/luci-static/resources/view/homeproxy/client.js:883 +#: htdocs/luci-static/resources/view/homeproxy/client.js:882 msgid "-- Please choose --" msgstr "" @@ -19,12 +19,12 @@ msgid "4 or 6. Not limited if empty." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1133 -#: htdocs/luci-static/resources/view/homeproxy/server.js:676 -#: htdocs/luci-static/resources/view/homeproxy/server.js:694 +#: htdocs/luci-static/resources/view/homeproxy/server.js:675 +#: htdocs/luci-static/resources/view/homeproxy/server.js:693 msgid "Save your configuration before uploading files!" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:585 +#: htdocs/luci-static/resources/view/homeproxy/server.js:584 msgid "API token" msgstr "" @@ -32,19 +32,19 @@ msgstr "" msgid "Accept any if empty." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1047 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1045 msgid "Access Control" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:570 +#: htdocs/luci-static/resources/view/homeproxy/server.js:569 msgid "Access key ID" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:575 +#: htdocs/luci-static/resources/view/homeproxy/server.js:574 msgid "Access key secret" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:758 +#: htdocs/luci-static/resources/view/homeproxy/client.js:757 msgid "Add a DNS rule" msgstr "" @@ -64,7 +64,7 @@ msgstr "" msgid "Add a routing rule" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:968 +#: htdocs/luci-static/resources/view/homeproxy/client.js:966 msgid "Add a rule set" msgstr "" @@ -85,7 +85,7 @@ msgstr "" msgid "Address strategy" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:563 +#: htdocs/luci-static/resources/view/homeproxy/server.js:562 msgid "Alibaba Cloud DNS" msgstr "" @@ -129,11 +129,11 @@ msgstr "" msgid "Alter ID" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:600 +#: htdocs/luci-static/resources/view/homeproxy/server.js:599 msgid "Alternative HTTP port" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:606 +#: htdocs/luci-static/resources/view/homeproxy/server.js:605 msgid "Alternative TLS port" msgstr "" @@ -141,33 +141,17 @@ msgstr "" msgid "An error occurred during updating subscriptions: %s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:909 +#: htdocs/luci-static/resources/view/homeproxy/client.js:908 msgid "Any" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:636 -msgid "" -"Append a edns0-subnet OPT extra record with the specified IP " -"prefix to every query by default.
If value is an IP address instead of " -"prefix, /32 or /128 will be appended automatically." -msgstr "" - #: htdocs/luci-static/resources/view/homeproxy/client.js:742 +#: htdocs/luci-static/resources/view/homeproxy/client.js:950 msgid "" "Append a edns0-subnet OPT extra record with the specified IP " "prefix to every query by default.
If value is an IP address instead of " "prefix, /32 or /128 will be appended automatically." -"
Can be overrides by rules.[].client_subnet. Will overrides " -"dns.client_subnet." -msgstr "" - -#: htdocs/luci-static/resources/view/homeproxy/client.js:951 -msgid "" -"Append a edns0-subnet OPT extra record with the specified IP " -"prefix to every query by default.
If value is an IP address instead of " -"prefix, /32 or /128 will be appended automatically." -"
Will overrides dns.client_subnet and servers.[]." -"client_subnet." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1119 @@ -234,16 +218,16 @@ msgstr "" msgid "Based on google/gvisor." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:990 +#: htdocs/luci-static/resources/view/homeproxy/client.js:988 msgid "Binary file" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:382 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1060 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1058 msgid "Bind interface" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1061 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1059 msgid "" "Bind outbound traffic to specific interface. Leave empty to auto detect." msgstr "" @@ -254,20 +238,20 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:333 #: htdocs/luci-static/resources/view/homeproxy/client.js:582 -#: htdocs/luci-static/resources/view/homeproxy/client.js:911 +#: htdocs/luci-static/resources/view/homeproxy/client.js:910 msgid "Block" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:612 -#: htdocs/luci-static/resources/view/homeproxy/client.js:929 +#: htdocs/luci-static/resources/view/homeproxy/client.js:928 msgid "Block DNS queries" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:462 #: htdocs/luci-static/resources/view/homeproxy/client.js:475 -#: htdocs/luci-static/resources/view/homeproxy/client.js:788 -#: htdocs/luci-static/resources/view/homeproxy/client.js:798 -#: htdocs/luci-static/resources/view/homeproxy/server.js:733 +#: htdocs/luci-static/resources/view/homeproxy/client.js:787 +#: htdocs/luci-static/resources/view/homeproxy/client.js:797 +#: htdocs/luci-static/resources/view/homeproxy/server.js:732 msgid "Both" msgstr "" @@ -283,7 +267,7 @@ msgstr "" msgid "Bypass mainland China traffic via firewall rules by default." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:549 +#: htdocs/luci-static/resources/view/homeproxy/server.js:548 msgid "CA provider" msgstr "" @@ -300,7 +284,7 @@ msgid "Cancel" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1125 -#: htdocs/luci-static/resources/view/homeproxy/server.js:665 +#: htdocs/luci-static/resources/view/homeproxy/server.js:664 msgid "Certificate path" msgstr "" @@ -329,7 +313,7 @@ msgid "China list version" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1111 -#: htdocs/luci-static/resources/view/homeproxy/server.js:507 +#: htdocs/luci-static/resources/view/homeproxy/server.js:506 msgid "Cipher suites" msgstr "" @@ -353,7 +337,7 @@ msgstr "" msgid "CloudFlare Public DNS (1.1.1.1)" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:564 +#: htdocs/luci-static/resources/view/homeproxy/server.js:563 msgid "Cloudflare" msgstr "" @@ -380,11 +364,11 @@ msgstr "" msgid "Custom routing" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:805 +#: htdocs/luci-static/resources/view/homeproxy/client.js:804 msgid "DNS" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:749 +#: htdocs/luci-static/resources/view/homeproxy/client.js:748 msgid "DNS Rules" msgstr "" @@ -396,11 +380,11 @@ msgstr "" msgid "DNS Settings" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:562 +#: htdocs/luci-static/resources/view/homeproxy/server.js:561 msgid "DNS provider" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:758 +#: htdocs/luci-static/resources/view/homeproxy/client.js:757 msgid "DNS rule" msgstr "" @@ -409,20 +393,20 @@ msgstr "" msgid "DNS server" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:557 +#: htdocs/luci-static/resources/view/homeproxy/server.js:556 msgid "DNS01 challenge" msgstr "" #: htdocs/luci-static/resources/homeproxy.js:17 #: htdocs/luci-static/resources/view/homeproxy/client.js:453 -#: htdocs/luci-static/resources/view/homeproxy/client.js:780 +#: htdocs/luci-static/resources/view/homeproxy/client.js:779 #: htdocs/luci-static/resources/view/homeproxy/node.js:749 msgid "Default" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:610 #: htdocs/luci-static/resources/view/homeproxy/client.js:687 -#: htdocs/luci-static/resources/view/homeproxy/client.js:927 +#: htdocs/luci-static/resources/view/homeproxy/client.js:926 msgid "Default DNS (issued by WAN)" msgstr "" @@ -446,7 +430,7 @@ msgstr "" msgid "Default packet encoding" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:528 +#: htdocs/luci-static/resources/view/homeproxy/server.js:527 msgid "Default server name" msgstr "" @@ -454,34 +438,34 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:395 #: htdocs/luci-static/resources/view/homeproxy/client.js:581 #: htdocs/luci-static/resources/view/homeproxy/client.js:729 -#: htdocs/luci-static/resources/view/homeproxy/client.js:910 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1029 +#: htdocs/luci-static/resources/view/homeproxy/client.js:909 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1027 #: htdocs/luci-static/resources/view/homeproxy/node.js:506 msgid "Direct" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1159 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1157 msgid "Direct Domain List" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1076 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1121 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1074 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1119 msgid "Direct IPv4 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1079 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1124 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1077 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1122 msgid "Direct IPv6 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1082 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1080 msgid "Direct MAC-s" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:142 #: htdocs/luci-static/resources/view/homeproxy/client.js:150 #: htdocs/luci-static/resources/view/homeproxy/client.js:331 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1070 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1068 #: htdocs/luci-static/resources/view/homeproxy/node.js:596 #: htdocs/luci-static/resources/view/homeproxy/node.js:608 #: htdocs/luci-static/resources/view/homeproxy/node.js:1165 @@ -495,7 +479,7 @@ msgstr "" msgid "Disable DNS cache" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:590 +#: htdocs/luci-static/resources/view/homeproxy/server.js:589 msgid "Disable HTTP challenge" msgstr "" @@ -504,11 +488,11 @@ msgstr "" msgid "Disable Path MTU discovery" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:595 +#: htdocs/luci-static/resources/view/homeproxy/server.js:594 msgid "Disable TLS ALPN challenge" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:941 +#: htdocs/luci-static/resources/view/homeproxy/client.js:940 msgid "Disable cache and save cache in this query." msgstr "" @@ -516,7 +500,7 @@ msgstr "" msgid "Disable cache expire" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:940 +#: htdocs/luci-static/resources/view/homeproxy/client.js:939 msgid "Disable dns cache" msgstr "" @@ -532,31 +516,31 @@ msgid "" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:486 -#: htdocs/luci-static/resources/view/homeproxy/client.js:817 +#: htdocs/luci-static/resources/view/homeproxy/client.js:816 msgid "Domain keyword" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:477 -#: htdocs/luci-static/resources/view/homeproxy/client.js:808 +#: htdocs/luci-static/resources/view/homeproxy/client.js:807 msgid "Domain name" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:490 -#: htdocs/luci-static/resources/view/homeproxy/client.js:821 +#: htdocs/luci-static/resources/view/homeproxy/client.js:820 msgid "Domain regex" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:376 -#: htdocs/luci-static/resources/view/homeproxy/server.js:724 +#: htdocs/luci-static/resources/view/homeproxy/server.js:723 msgid "Domain strategy" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:482 -#: htdocs/luci-static/resources/view/homeproxy/client.js:813 +#: htdocs/luci-static/resources/view/homeproxy/client.js:812 msgid "Domain suffix" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:522 +#: htdocs/luci-static/resources/view/homeproxy/server.js:521 msgid "Domains" msgstr "" @@ -581,7 +565,7 @@ msgstr "" msgid "Drop/keep specific nodes from subscriptions." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:613 +#: htdocs/luci-static/resources/view/homeproxy/server.js:612 msgid "" "EAB (External Account Binding) contains information necessary to bind or map " "an ACME account to some other account known by the CA.
External account " @@ -601,7 +585,7 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:635 #: htdocs/luci-static/resources/view/homeproxy/client.js:741 -#: htdocs/luci-static/resources/view/homeproxy/client.js:950 +#: htdocs/luci-static/resources/view/homeproxy/client.js:949 msgid "EDNS Client subnet" msgstr "" @@ -623,15 +607,15 @@ msgstr "" msgid "Edit nodes" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:534 +#: htdocs/luci-static/resources/view/homeproxy/server.js:533 msgid "Email" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:364 #: htdocs/luci-static/resources/view/homeproxy/client.js:440 #: htdocs/luci-static/resources/view/homeproxy/client.js:671 -#: htdocs/luci-static/resources/view/homeproxy/client.js:767 -#: htdocs/luci-static/resources/view/homeproxy/client.js:977 +#: htdocs/luci-static/resources/view/homeproxy/client.js:766 +#: htdocs/luci-static/resources/view/homeproxy/client.js:975 #: htdocs/luci-static/resources/view/homeproxy/server.js:75 #: htdocs/luci-static/resources/view/homeproxy/server.js:98 msgid "Enable" @@ -650,7 +634,7 @@ msgstr "" msgid "Enable 0-RTT handshake" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:516 +#: htdocs/luci-static/resources/view/homeproxy/server.js:515 msgid "Enable ACME" msgstr "" @@ -673,7 +657,7 @@ msgid "Enable TCP Brutal congestion control algorithm" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1223 -#: htdocs/luci-static/resources/view/homeproxy/server.js:715 +#: htdocs/luci-static/resources/view/homeproxy/server.js:714 msgid "Enable UDP fragmentation." msgstr "" @@ -686,7 +670,7 @@ msgstr "" msgid "Enable padding" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:704 +#: htdocs/luci-static/resources/view/homeproxy/server.js:703 msgid "Enable tcp fast open for listener." msgstr "" @@ -713,31 +697,31 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:206 #: htdocs/luci-static/resources/view/homeproxy/client.js:244 #: htdocs/luci-static/resources/view/homeproxy/client.js:249 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1005 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1010 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1013 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1152 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1181 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1003 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1008 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1011 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1150 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1179 #: htdocs/luci-static/resources/view/homeproxy/node.js:461 #: htdocs/luci-static/resources/view/homeproxy/node.js:564 #: htdocs/luci-static/resources/view/homeproxy/node.js:1186 #: htdocs/luci-static/resources/view/homeproxy/node.js:1269 #: htdocs/luci-static/resources/view/homeproxy/node.js:1272 #: htdocs/luci-static/resources/view/homeproxy/server.js:159 -#: htdocs/luci-static/resources/view/homeproxy/server.js:540 -#: htdocs/luci-static/resources/view/homeproxy/server.js:542 +#: htdocs/luci-static/resources/view/homeproxy/server.js:539 +#: htdocs/luci-static/resources/view/homeproxy/server.js:541 msgid "Expecting: %s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:612 +#: htdocs/luci-static/resources/view/homeproxy/server.js:611 msgid "External Account Binding" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:624 +#: htdocs/luci-static/resources/view/homeproxy/server.js:623 msgid "External account MAC key" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:619 +#: htdocs/luci-static/resources/view/homeproxy/server.js:618 msgid "External account key ID" msgstr "" @@ -758,7 +742,7 @@ msgstr "" msgid "Flow" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:988 +#: htdocs/luci-static/resources/view/homeproxy/client.js:986 msgid "Format" msgstr "" @@ -774,15 +758,15 @@ msgstr "" msgid "GFWList" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1094 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1092 msgid "Gaming mode IPv4 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1096 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1094 msgid "Gaming mode IPv6 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1099 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1097 msgid "Gaming mode MAC-s" msgstr "" @@ -799,15 +783,15 @@ msgstr "" msgid "Global padding" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1101 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1099 msgid "Global proxy IPv4 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1104 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1102 msgid "Global proxy IPv6 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1107 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1105 msgid "Global proxy MAC-s" msgstr "" @@ -828,7 +812,7 @@ msgid "Grant access to homeproxy configuration" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:467 -#: htdocs/luci-static/resources/view/homeproxy/client.js:802 +#: htdocs/luci-static/resources/view/homeproxy/client.js:801 #: htdocs/luci-static/resources/view/homeproxy/node.js:507 #: htdocs/luci-static/resources/view/homeproxy/node.js:819 #: htdocs/luci-static/resources/view/homeproxy/server.js:104 @@ -847,11 +831,11 @@ msgstr "" msgid "HTTPUpgrade" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:652 +#: htdocs/luci-static/resources/view/homeproxy/server.js:651 msgid "Handshake server address" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:658 +#: htdocs/luci-static/resources/view/homeproxy/server.js:657 msgid "Handshake server port" msgstr "" @@ -908,17 +892,17 @@ msgid "Hysteria2" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:505 -#: htdocs/luci-static/resources/view/homeproxy/client.js:845 +#: htdocs/luci-static/resources/view/homeproxy/client.js:844 msgid "IP CIDR" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:458 -#: htdocs/luci-static/resources/view/homeproxy/client.js:785 +#: htdocs/luci-static/resources/view/homeproxy/client.js:784 msgid "IP version" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:460 -#: htdocs/luci-static/resources/view/homeproxy/client.js:786 +#: htdocs/luci-static/resources/view/homeproxy/client.js:785 msgid "IPv4" msgstr "" @@ -927,7 +911,7 @@ msgid "IPv4 only" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:461 -#: htdocs/luci-static/resources/view/homeproxy/client.js:787 +#: htdocs/luci-static/resources/view/homeproxy/client.js:786 msgid "IPv6" msgstr "" @@ -950,7 +934,7 @@ msgid "" "connections." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:725 +#: htdocs/luci-static/resources/view/homeproxy/server.js:724 msgid "" "If set, the requested domain name will be resolved to IP before routing." msgstr "" @@ -992,7 +976,7 @@ msgstr "" msgid "Independent cache per server" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1053 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1051 msgid "Interface Control" msgstr "" @@ -1004,12 +988,12 @@ msgid "" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:570 -#: htdocs/luci-static/resources/view/homeproxy/client.js:898 +#: htdocs/luci-static/resources/view/homeproxy/client.js:897 msgid "Invert" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:571 -#: htdocs/luci-static/resources/view/homeproxy/client.js:899 +#: htdocs/luci-static/resources/view/homeproxy/client.js:898 msgid "Invert match result." msgstr "" @@ -1017,19 +1001,19 @@ msgstr "" msgid "It MUST support TCP query." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:683 +#: htdocs/luci-static/resources/view/homeproxy/server.js:682 msgid "Key path" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1067 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1065 msgid "LAN IP Policy" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:359 #: htdocs/luci-static/resources/view/homeproxy/client.js:435 #: htdocs/luci-static/resources/view/homeproxy/client.js:666 -#: htdocs/luci-static/resources/view/homeproxy/client.js:762 -#: htdocs/luci-static/resources/view/homeproxy/client.js:972 +#: htdocs/luci-static/resources/view/homeproxy/client.js:761 +#: htdocs/luci-static/resources/view/homeproxy/client.js:970 #: htdocs/luci-static/resources/view/homeproxy/node.js:500 #: htdocs/luci-static/resources/view/homeproxy/server.js:92 msgid "Label" @@ -1046,7 +1030,7 @@ msgstr "" msgid "Less compatibility and sometimes better performance." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:551 +#: htdocs/luci-static/resources/view/homeproxy/server.js:550 msgid "Let's Encrypt" msgstr "" @@ -1056,7 +1040,7 @@ msgid "" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1082 -#: htdocs/luci-static/resources/view/homeproxy/server.js:487 +#: htdocs/luci-static/resources/view/homeproxy/server.js:486 msgid "List of supported application level protocols, in order of preference." msgstr "" @@ -1064,7 +1048,7 @@ msgstr "" msgid "Listen address" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1055 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1053 msgid "Listen interfaces" msgstr "" @@ -1076,7 +1060,7 @@ msgstr "" msgid "Loading" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:983 +#: htdocs/luci-static/resources/view/homeproxy/client.js:981 msgid "Local" msgstr "" @@ -1104,7 +1088,7 @@ msgstr "" msgid "Main node" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:894 +#: htdocs/luci-static/resources/view/homeproxy/client.js:893 msgid "Make ipcidr in rule sets match the source IP." msgstr "" @@ -1122,7 +1106,7 @@ msgstr "" msgid "Masquerade" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:846 +#: htdocs/luci-static/resources/view/homeproxy/client.js:845 msgid "Match IP CIDR with query response." msgstr "" @@ -1131,40 +1115,40 @@ msgid "Match IP CIDR." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:483 -#: htdocs/luci-static/resources/view/homeproxy/client.js:814 +#: htdocs/luci-static/resources/view/homeproxy/client.js:813 msgid "Match domain suffix." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:487 -#: htdocs/luci-static/resources/view/homeproxy/client.js:818 +#: htdocs/luci-static/resources/view/homeproxy/client.js:817 msgid "Match domain using keyword." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:491 -#: htdocs/luci-static/resources/view/homeproxy/client.js:822 +#: htdocs/luci-static/resources/view/homeproxy/client.js:821 msgid "Match domain using regular expression." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:478 -#: htdocs/luci-static/resources/view/homeproxy/client.js:809 +#: htdocs/luci-static/resources/view/homeproxy/client.js:808 msgid "Match full domain." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:904 +#: htdocs/luci-static/resources/view/homeproxy/client.js:903 msgid "Match outbound." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:532 -#: htdocs/luci-static/resources/view/homeproxy/client.js:831 +#: htdocs/luci-static/resources/view/homeproxy/client.js:830 msgid "Match port range. Format as START:/:END/START:END." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:527 -#: htdocs/luci-static/resources/view/homeproxy/client.js:826 +#: htdocs/luci-static/resources/view/homeproxy/client.js:825 msgid "Match port." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:851 +#: htdocs/luci-static/resources/view/homeproxy/client.js:850 msgid "Match private IP with query response." msgstr "" @@ -1173,31 +1157,31 @@ msgid "Match private IP." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:500 -#: htdocs/luci-static/resources/view/homeproxy/client.js:841 +#: htdocs/luci-static/resources/view/homeproxy/client.js:840 msgid "Match private source IP." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:537 -#: htdocs/luci-static/resources/view/homeproxy/client.js:866 +#: htdocs/luci-static/resources/view/homeproxy/client.js:865 msgid "Match process name." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:541 -#: htdocs/luci-static/resources/view/homeproxy/client.js:870 +#: htdocs/luci-static/resources/view/homeproxy/client.js:869 msgid "Match process path." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:792 +#: htdocs/luci-static/resources/view/homeproxy/client.js:791 msgid "Match query type." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:549 -#: htdocs/luci-static/resources/view/homeproxy/client.js:878 +#: htdocs/luci-static/resources/view/homeproxy/client.js:877 msgid "Match rule set." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:495 -#: htdocs/luci-static/resources/view/homeproxy/client.js:836 +#: htdocs/luci-static/resources/view/homeproxy/client.js:835 msgid "Match source IP CIDR." msgstr "" @@ -1206,17 +1190,17 @@ msgid "Match source IP via rule set" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:522 -#: htdocs/luci-static/resources/view/homeproxy/client.js:861 +#: htdocs/luci-static/resources/view/homeproxy/client.js:860 msgid "Match source port range. Format as START:/:END/START:END." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:517 -#: htdocs/luci-static/resources/view/homeproxy/client.js:856 +#: htdocs/luci-static/resources/view/homeproxy/client.js:855 msgid "Match source port." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:545 -#: htdocs/luci-static/resources/view/homeproxy/client.js:874 +#: htdocs/luci-static/resources/view/homeproxy/client.js:873 msgid "Match user name." msgstr "" @@ -1230,7 +1214,7 @@ msgstr "" msgid "Max download speed in Mbps." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:647 +#: htdocs/luci-static/resources/view/homeproxy/server.js:646 msgid "Max time difference" msgstr "" @@ -1245,7 +1229,7 @@ msgid "Max upload speed in Mbps." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1103 -#: htdocs/luci-static/resources/view/homeproxy/server.js:499 +#: htdocs/luci-static/resources/view/homeproxy/server.js:498 msgid "Maximum TLS version" msgstr "" @@ -1270,7 +1254,7 @@ msgid "Method" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1095 -#: htdocs/luci-static/resources/view/homeproxy/server.js:491 +#: htdocs/luci-static/resources/view/homeproxy/server.js:490 msgid "Minimum TLS version" msgstr "" @@ -1292,12 +1276,12 @@ msgid "Mixed system TCP stack and gVisor UDP stack." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:445 -#: htdocs/luci-static/resources/view/homeproxy/client.js:772 +#: htdocs/luci-static/resources/view/homeproxy/client.js:771 msgid "Mode" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1218 -#: htdocs/luci-static/resources/view/homeproxy/server.js:709 +#: htdocs/luci-static/resources/view/homeproxy/server.js:708 msgid "MultiPath TCP" msgstr "" @@ -1328,8 +1312,8 @@ msgid "NaïveProxy" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:472 -#: htdocs/luci-static/resources/view/homeproxy/client.js:795 -#: htdocs/luci-static/resources/view/homeproxy/server.js:730 +#: htdocs/luci-static/resources/view/homeproxy/client.js:794 +#: htdocs/luci-static/resources/view/homeproxy/server.js:729 msgid "Network" msgstr "" @@ -1392,7 +1376,7 @@ msgstr "" msgid "Obfuscate type" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1056 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1054 msgid "Only process traffic from specific interfaces. Leave empty for all." msgstr "" @@ -1403,8 +1387,8 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:389 #: htdocs/luci-static/resources/view/homeproxy/client.js:575 #: htdocs/luci-static/resources/view/homeproxy/client.js:723 -#: htdocs/luci-static/resources/view/homeproxy/client.js:903 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1023 +#: htdocs/luci-static/resources/view/homeproxy/client.js:902 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1021 msgid "Outbound" msgstr "" @@ -1417,7 +1401,7 @@ msgid "Override address" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:321 -#: htdocs/luci-static/resources/view/homeproxy/server.js:720 +#: htdocs/luci-static/resources/view/homeproxy/server.js:719 msgid "Override destination" msgstr "" @@ -1426,7 +1410,7 @@ msgid "Override port" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:322 -#: htdocs/luci-static/resources/view/homeproxy/server.js:721 +#: htdocs/luci-static/resources/view/homeproxy/server.js:720 msgid "Override the connection destination address with the sniffed domain." msgstr "" @@ -1451,7 +1435,7 @@ msgstr "" msgid "Password" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:994 +#: htdocs/luci-static/resources/view/homeproxy/client.js:992 #: htdocs/luci-static/resources/view/homeproxy/node.js:879 #: htdocs/luci-static/resources/view/homeproxy/node.js:912 #: htdocs/luci-static/resources/view/homeproxy/server.js:365 @@ -1483,7 +1467,7 @@ msgid "Plugin opts" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:526 -#: htdocs/luci-static/resources/view/homeproxy/client.js:825 +#: htdocs/luci-static/resources/view/homeproxy/client.js:824 #: htdocs/luci-static/resources/view/homeproxy/node.js:530 msgid "Port" msgstr "" @@ -1493,7 +1477,7 @@ msgid "Port %s alrealy exists!" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:531 -#: htdocs/luci-static/resources/view/homeproxy/client.js:830 +#: htdocs/luci-static/resources/view/homeproxy/client.js:829 msgid "Port range" msgstr "" @@ -1510,7 +1494,7 @@ msgid "Prefer IPv6" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:510 -#: htdocs/luci-static/resources/view/homeproxy/client.js:850 +#: htdocs/luci-static/resources/view/homeproxy/client.js:849 msgid "Private IP" msgstr "" @@ -1524,22 +1508,22 @@ msgid "Private key passphrase" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:499 -#: htdocs/luci-static/resources/view/homeproxy/client.js:840 +#: htdocs/luci-static/resources/view/homeproxy/client.js:839 msgid "Private source IP" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:536 -#: htdocs/luci-static/resources/view/homeproxy/client.js:865 +#: htdocs/luci-static/resources/view/homeproxy/client.js:864 msgid "Process name" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:540 -#: htdocs/luci-static/resources/view/homeproxy/client.js:869 +#: htdocs/luci-static/resources/view/homeproxy/client.js:868 msgid "Process path" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:465 -#: htdocs/luci-static/resources/view/homeproxy/client.js:800 +#: htdocs/luci-static/resources/view/homeproxy/client.js:799 #: htdocs/luci-static/resources/view/homeproxy/node.js:584 #: htdocs/luci-static/resources/view/homeproxy/node.js:996 #: htdocs/luci-static/resources/view/homeproxy/server.js:168 @@ -1556,33 +1540,33 @@ msgid "" "default in v2ray and cannot be disabled)." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1130 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1128 msgid "Proxy Domain List" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1085 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1114 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1083 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1112 msgid "Proxy IPv4 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1088 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1117 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1086 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1115 msgid "Proxy IPv6 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1091 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1089 msgid "Proxy MAC-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1072 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1070 msgid "Proxy all except listed" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1069 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1067 msgid "Proxy filter mode" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1071 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1069 msgid "Proxy listed only" msgstr "" @@ -1591,7 +1575,7 @@ msgid "Proxy mode" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:469 -#: htdocs/luci-static/resources/view/homeproxy/client.js:804 +#: htdocs/luci-static/resources/view/homeproxy/client.js:803 #: htdocs/luci-static/resources/view/homeproxy/node.js:751 #: htdocs/luci-static/resources/view/homeproxy/node.js:821 #: htdocs/luci-static/resources/view/homeproxy/server.js:323 @@ -1617,7 +1601,7 @@ msgstr "" msgid "QUIC stream receive window" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:791 +#: htdocs/luci-static/resources/view/homeproxy/client.js:790 msgid "Query type" msgstr "" @@ -1626,11 +1610,11 @@ msgid "RDRC timeout" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1197 -#: htdocs/luci-static/resources/view/homeproxy/server.js:631 +#: htdocs/luci-static/resources/view/homeproxy/server.js:630 msgid "REALITY" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:637 +#: htdocs/luci-static/resources/view/homeproxy/server.js:636 msgid "REALITY private key" msgstr "" @@ -1639,7 +1623,7 @@ msgid "REALITY public key" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1207 -#: htdocs/luci-static/resources/view/homeproxy/server.js:642 +#: htdocs/luci-static/resources/view/homeproxy/server.js:641 msgid "REALITY short ID" msgstr "" @@ -1676,11 +1660,11 @@ msgstr "" msgid "Refresh every %s seconds." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:580 +#: htdocs/luci-static/resources/view/homeproxy/server.js:579 msgid "Region ID" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:984 +#: htdocs/luci-static/resources/view/homeproxy/client.js:982 msgid "Remote" msgstr "" @@ -1704,11 +1688,11 @@ msgstr "" msgid "Resources management" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:945 +#: htdocs/luci-static/resources/view/homeproxy/client.js:944 msgid "Rewrite TTL" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:946 +#: htdocs/luci-static/resources/view/homeproxy/client.js:945 msgid "Rewrite TTL in DNS responses." msgstr "" @@ -1741,17 +1725,17 @@ msgid "Routing rule" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:548 -#: htdocs/luci-static/resources/view/homeproxy/client.js:877 -#: htdocs/luci-static/resources/view/homeproxy/client.js:959 -#: htdocs/luci-static/resources/view/homeproxy/client.js:968 +#: htdocs/luci-static/resources/view/homeproxy/client.js:876 +#: htdocs/luci-static/resources/view/homeproxy/client.js:957 +#: htdocs/luci-static/resources/view/homeproxy/client.js:966 msgid "Rule set" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:893 +#: htdocs/luci-static/resources/view/homeproxy/client.js:892 msgid "Rule set IP CIDR as source IP" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1001 +#: htdocs/luci-static/resources/view/homeproxy/client.js:999 msgid "Rule set URL" msgstr "" @@ -1760,7 +1744,7 @@ msgid "SSH" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:470 -#: htdocs/luci-static/resources/view/homeproxy/client.js:806 +#: htdocs/luci-static/resources/view/homeproxy/client.js:805 msgid "STUN" msgstr "" @@ -1785,7 +1769,7 @@ msgstr "" msgid "Save subscriptions settings" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:921 +#: htdocs/luci-static/resources/view/homeproxy/client.js:920 #: htdocs/luci-static/resources/view/homeproxy/server.js:88 msgid "Server" msgstr "" @@ -1794,7 +1778,7 @@ msgstr "" msgid "Server Settings" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:529 +#: htdocs/luci-static/resources/view/homeproxy/server.js:528 msgid "" "Server name to use when choosing a certificate if the ClientHello's " "ServerName field is empty." @@ -1822,7 +1806,7 @@ msgid "Shadowsocks" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:466 -#: htdocs/luci-static/resources/view/homeproxy/client.js:801 +#: htdocs/luci-static/resources/view/homeproxy/client.js:800 msgid "" "Sniffed protocol, see Sniff for details." @@ -1850,21 +1834,21 @@ msgid "Socks5" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:494 -#: htdocs/luci-static/resources/view/homeproxy/client.js:835 +#: htdocs/luci-static/resources/view/homeproxy/client.js:834 msgid "Source IP CIDR" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:989 +#: htdocs/luci-static/resources/view/homeproxy/client.js:987 msgid "Source file" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:516 -#: htdocs/luci-static/resources/view/homeproxy/client.js:855 +#: htdocs/luci-static/resources/view/homeproxy/client.js:854 msgid "Source port" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:521 -#: htdocs/luci-static/resources/view/homeproxy/client.js:860 +#: htdocs/luci-static/resources/view/homeproxy/client.js:859 msgid "Source port range" msgstr "" @@ -1944,18 +1928,18 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:611 #: htdocs/luci-static/resources/view/homeproxy/client.js:688 -#: htdocs/luci-static/resources/view/homeproxy/client.js:928 +#: htdocs/luci-static/resources/view/homeproxy/client.js:927 msgid "System DNS" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:473 -#: htdocs/luci-static/resources/view/homeproxy/client.js:796 -#: htdocs/luci-static/resources/view/homeproxy/server.js:731 +#: htdocs/luci-static/resources/view/homeproxy/client.js:795 +#: htdocs/luci-static/resources/view/homeproxy/server.js:730 msgid "TCP" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1214 -#: htdocs/luci-static/resources/view/homeproxy/server.js:703 +#: htdocs/luci-static/resources/view/homeproxy/server.js:702 msgid "TCP fast open" msgstr "" @@ -1968,14 +1952,14 @@ msgid "TCP/IP stack." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:468 -#: htdocs/luci-static/resources/view/homeproxy/client.js:803 +#: htdocs/luci-static/resources/view/homeproxy/client.js:802 #: htdocs/luci-static/resources/view/homeproxy/node.js:1049 #: htdocs/luci-static/resources/view/homeproxy/server.js:453 msgid "TLS" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1081 -#: htdocs/luci-static/resources/view/homeproxy/server.js:486 +#: htdocs/luci-static/resources/view/homeproxy/server.js:485 msgid "TLS ALPN" msgstr "" @@ -1999,11 +1983,11 @@ msgstr "" msgid "Tag of an outbound for connecting to the dns server." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1024 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1022 msgid "Tag of the outbound to download rule set." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:922 +#: htdocs/luci-static/resources/view/homeproxy/client.js:921 msgid "Tag of the target dns server." msgstr "" @@ -2021,7 +2005,7 @@ msgstr "" msgid "Tencent Public DNS (119.29.29.29)" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:550 +#: htdocs/luci-static/resources/view/homeproxy/server.js:549 msgid "The ACME CA provider to use." msgstr "" @@ -2043,13 +2027,13 @@ msgstr "" msgid "The address of the dns server. Support UDP, TCP, DoT, DoH and RCode." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:601 +#: htdocs/luci-static/resources/view/homeproxy/server.js:600 msgid "" "The alternate port to use for the ACME HTTP challenge; if non-empty, this " "port will be used instead of 80 to spin up a listener for the HTTP challenge." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:607 +#: htdocs/luci-static/resources/view/homeproxy/server.js:606 msgid "" "The alternate port to use for the ACME TLS-ALPN challenge; the system must " "forward 443 to this port for challenge to succeed." @@ -2066,7 +2050,7 @@ msgid "" "than as a single rule sub-item." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:773 +#: htdocs/luci-static/resources/view/homeproxy/client.js:772 msgid "" "The default rule uses the following matching logic:
(domain || " "domain_suffix || domain_keyword || domain_regex) &&
(port " @@ -2083,20 +2067,20 @@ msgid "" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1112 -#: htdocs/luci-static/resources/view/homeproxy/server.js:508 +#: htdocs/luci-static/resources/view/homeproxy/server.js:507 msgid "" "The elliptic curves that will be used in an ECDHE handshake, in preference " "order. If empty, the default will be used." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:535 +#: htdocs/luci-static/resources/view/homeproxy/server.js:534 msgid "" "The email address to use when creating or selecting an existing ACME server " "account." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1104 -#: htdocs/luci-static/resources/view/homeproxy/server.js:500 +#: htdocs/luci-static/resources/view/homeproxy/server.js:499 msgid "The maximum TLS version that is acceptable." msgstr "" @@ -2106,12 +2090,12 @@ msgid "" "allowed to open." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:648 +#: htdocs/luci-static/resources/view/homeproxy/server.js:647 msgid "The maximum time difference between the server and the client." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1096 -#: htdocs/luci-static/resources/view/homeproxy/server.js:492 +#: htdocs/luci-static/resources/view/homeproxy/server.js:491 msgid "The minimum TLS version that is acceptable." msgstr "" @@ -2132,11 +2116,11 @@ msgstr "" msgid "The port must be unique." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:684 +#: htdocs/luci-static/resources/view/homeproxy/server.js:683 msgid "The server private key, in PEM format." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:666 +#: htdocs/luci-static/resources/view/homeproxy/server.js:665 msgid "The server public key, in PEM format." msgstr "" @@ -2203,20 +2187,20 @@ msgstr "" msgid "Tun TCP/UDP" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:982 +#: htdocs/luci-static/resources/view/homeproxy/client.js:980 #: htdocs/luci-static/resources/view/homeproxy/node.js:505 #: htdocs/luci-static/resources/view/homeproxy/server.js:103 msgid "Type" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:474 -#: htdocs/luci-static/resources/view/homeproxy/client.js:797 -#: htdocs/luci-static/resources/view/homeproxy/server.js:732 +#: htdocs/luci-static/resources/view/homeproxy/client.js:796 +#: htdocs/luci-static/resources/view/homeproxy/server.js:731 msgid "UDP" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1222 -#: htdocs/luci-static/resources/view/homeproxy/server.js:714 +#: htdocs/luci-static/resources/view/homeproxy/server.js:713 msgid "UDP Fragment" msgstr "" @@ -2261,11 +2245,11 @@ msgstr "" msgid "Update failed." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1041 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1039 msgid "Update interval" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1042 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1040 msgid "Update interval of rule set.
1d will be used if empty." msgstr "" @@ -2296,21 +2280,21 @@ msgid "Upload bandwidth in Mbps." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1132 -#: htdocs/luci-static/resources/view/homeproxy/server.js:675 +#: htdocs/luci-static/resources/view/homeproxy/server.js:674 msgid "Upload certificate" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:693 +#: htdocs/luci-static/resources/view/homeproxy/server.js:692 msgid "Upload key" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1135 -#: htdocs/luci-static/resources/view/homeproxy/server.js:678 -#: htdocs/luci-static/resources/view/homeproxy/server.js:696 +#: htdocs/luci-static/resources/view/homeproxy/server.js:677 +#: htdocs/luci-static/resources/view/homeproxy/server.js:695 msgid "Upload..." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:517 +#: htdocs/luci-static/resources/view/homeproxy/server.js:516 msgid "Use ACME TLS certificate issuer." msgstr "" @@ -2322,7 +2306,7 @@ msgid "" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:544 -#: htdocs/luci-static/resources/view/homeproxy/client.js:873 +#: htdocs/luci-static/resources/view/homeproxy/client.js:872 msgid "User" msgstr "" @@ -2346,7 +2330,7 @@ msgstr "" msgid "WAN DNS (read from interface)" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1112 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1110 msgid "WAN IP Policy" msgstr "" @@ -2393,19 +2377,19 @@ msgstr "" msgid "Your %s was successfully uploaded. Size: %sB." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:552 +#: htdocs/luci-static/resources/view/homeproxy/server.js:551 msgid "ZeroSSL" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1137 -#: htdocs/luci-static/resources/view/homeproxy/server.js:680 +#: htdocs/luci-static/resources/view/homeproxy/server.js:679 msgid "certificate" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1097 #: htdocs/luci-static/resources/view/homeproxy/node.js:1105 -#: htdocs/luci-static/resources/view/homeproxy/server.js:493 -#: htdocs/luci-static/resources/view/homeproxy/server.js:501 +#: htdocs/luci-static/resources/view/homeproxy/server.js:492 +#: htdocs/luci-static/resources/view/homeproxy/server.js:500 msgid "default" msgstr "" @@ -2434,7 +2418,7 @@ msgstr "" #: htdocs/luci-static/resources/homeproxy.js:248 #: htdocs/luci-static/resources/homeproxy.js:266 #: htdocs/luci-static/resources/view/homeproxy/client.js:176 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1005 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1003 #: htdocs/luci-static/resources/view/homeproxy/node.js:564 #: htdocs/luci-static/resources/view/homeproxy/node.js:1186 #: htdocs/luci-static/resources/view/homeproxy/server.js:159 @@ -2456,7 +2440,7 @@ msgstr "" msgid "passed" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:698 +#: htdocs/luci-static/resources/view/homeproxy/server.js:697 msgid "private key" msgstr "" @@ -2509,8 +2493,8 @@ msgstr "" msgid "valid IP address" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1010 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1013 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1008 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1011 #: htdocs/luci-static/resources/view/homeproxy/node.js:1269 #: htdocs/luci-static/resources/view/homeproxy/node.js:1272 msgid "valid URL" @@ -2524,8 +2508,8 @@ msgstr "" msgid "valid base64 key with %d characters" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1152 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1181 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1150 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1179 msgid "valid hostname" msgstr "" diff --git a/openwrt-packages/homeproxy/po/zh_Hans/homeproxy.po b/openwrt-packages/homeproxy/po/zh_Hans/homeproxy.po index c32e6d1164..c144302f6a 100644 --- a/openwrt-packages/homeproxy/po/zh_Hans/homeproxy.po +++ b/openwrt-packages/homeproxy/po/zh_Hans/homeproxy.po @@ -17,7 +17,7 @@ msgid "%s nodes removed" msgstr "移除了 %s 个节点" #: htdocs/luci-static/resources/view/homeproxy/client.js:554 -#: htdocs/luci-static/resources/view/homeproxy/client.js:883 +#: htdocs/luci-static/resources/view/homeproxy/client.js:882 msgid "-- Please choose --" msgstr "-- 请选择 --" @@ -26,12 +26,12 @@ msgid "4 or 6. Not limited if empty." msgstr "4 或 6。留空不限制。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1133 -#: htdocs/luci-static/resources/view/homeproxy/server.js:676 -#: htdocs/luci-static/resources/view/homeproxy/server.js:694 +#: htdocs/luci-static/resources/view/homeproxy/server.js:675 +#: htdocs/luci-static/resources/view/homeproxy/server.js:693 msgid "Save your configuration before uploading files!" msgstr "上传文件前请先保存配置!" -#: htdocs/luci-static/resources/view/homeproxy/server.js:585 +#: htdocs/luci-static/resources/view/homeproxy/server.js:584 msgid "API token" msgstr "API 令牌" @@ -39,19 +39,19 @@ msgstr "API 令牌" msgid "Accept any if empty." msgstr "留空则不校验。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1047 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1045 msgid "Access Control" msgstr "访问控制" -#: htdocs/luci-static/resources/view/homeproxy/server.js:570 +#: htdocs/luci-static/resources/view/homeproxy/server.js:569 msgid "Access key ID" msgstr "访问密钥 ID" -#: htdocs/luci-static/resources/view/homeproxy/server.js:575 +#: htdocs/luci-static/resources/view/homeproxy/server.js:574 msgid "Access key secret" msgstr "访问密钥" -#: htdocs/luci-static/resources/view/homeproxy/client.js:758 +#: htdocs/luci-static/resources/view/homeproxy/client.js:757 msgid "Add a DNS rule" msgstr "新增 DNS 规则" @@ -71,7 +71,7 @@ msgstr "新增路由节点" msgid "Add a routing rule" msgstr "新增路由规则" -#: htdocs/luci-static/resources/view/homeproxy/client.js:968 +#: htdocs/luci-static/resources/view/homeproxy/client.js:966 msgid "Add a rule set" msgstr "新增规则集" @@ -92,7 +92,7 @@ msgstr "地址解析器" msgid "Address strategy" msgstr "地址解析策略" -#: htdocs/luci-static/resources/view/homeproxy/server.js:563 +#: htdocs/luci-static/resources/view/homeproxy/server.js:562 msgid "Alibaba Cloud DNS" msgstr "阿里云 DNS" @@ -136,11 +136,11 @@ msgstr "已在更新中。" msgid "Alter ID" msgstr "额外 ID" -#: htdocs/luci-static/resources/view/homeproxy/server.js:600 +#: htdocs/luci-static/resources/view/homeproxy/server.js:599 msgid "Alternative HTTP port" msgstr "替代 HTTP 端口" -#: htdocs/luci-static/resources/view/homeproxy/server.js:606 +#: htdocs/luci-static/resources/view/homeproxy/server.js:605 msgid "Alternative TLS port" msgstr "替代 HTTPS 端口" @@ -148,34 +148,20 @@ msgstr "替代 HTTPS 端口" msgid "An error occurred during updating subscriptions: %s" msgstr "更新订阅时发生错误:%s" -#: htdocs/luci-static/resources/view/homeproxy/client.js:909 +#: htdocs/luci-static/resources/view/homeproxy/client.js:908 msgid "Any" msgstr "任何" #: htdocs/luci-static/resources/view/homeproxy/client.js:636 -msgid "" -"Append a edns0-subnet OPT extra record with the specified IP " -"prefix to every query by default.
If value is an IP address instead of " -"prefix, /32 or /128 will be appended automatically." -msgstr "" - #: htdocs/luci-static/resources/view/homeproxy/client.js:742 +#: htdocs/luci-static/resources/view/homeproxy/client.js:950 msgid "" "Append a edns0-subnet OPT extra record with the specified IP " "prefix to every query by default.
If value is an IP address instead of " "prefix, /32 or /128 will be appended automatically." -"
Can be overrides by rules.[].client_subnet. Will overrides " -"dns.client_subnet." -msgstr "" - -#: htdocs/luci-static/resources/view/homeproxy/client.js:951 -msgid "" -"Append a edns0-subnet OPT extra record with the specified IP " -"prefix to every query by default.
If value is an IP address instead of " -"prefix, /32 or /128 will be appended automatically." -"
Will overrides dns.client_subnet and servers.[]." -"client_subnet." msgstr "" +"将带有指定 IP 前缀的 edns0-subnet OPT 记录附加到每个查询。如果值" +"是 IP 地址而不是前缀,则会自动添加 /32/128。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1119 msgid "Append self-signed certificate" @@ -241,16 +227,16 @@ msgstr "Base64" msgid "Based on google/gvisor." msgstr "基于 google/gvisor。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:990 +#: htdocs/luci-static/resources/view/homeproxy/client.js:988 msgid "Binary file" msgstr "二进制文件" #: htdocs/luci-static/resources/view/homeproxy/client.js:382 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1060 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1058 msgid "Bind interface" msgstr "绑定接口" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1061 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1059 msgid "" "Bind outbound traffic to specific interface. Leave empty to auto detect." msgstr "绑定出站流量至指定端口。留空自动检测。" @@ -261,20 +247,20 @@ msgstr "黑名单模式" #: htdocs/luci-static/resources/view/homeproxy/client.js:333 #: htdocs/luci-static/resources/view/homeproxy/client.js:582 -#: htdocs/luci-static/resources/view/homeproxy/client.js:911 +#: htdocs/luci-static/resources/view/homeproxy/client.js:910 msgid "Block" msgstr "封锁" #: htdocs/luci-static/resources/view/homeproxy/client.js:612 -#: htdocs/luci-static/resources/view/homeproxy/client.js:929 +#: htdocs/luci-static/resources/view/homeproxy/client.js:928 msgid "Block DNS queries" msgstr "封锁 DNS 请求" #: htdocs/luci-static/resources/view/homeproxy/client.js:462 #: htdocs/luci-static/resources/view/homeproxy/client.js:475 -#: htdocs/luci-static/resources/view/homeproxy/client.js:788 -#: htdocs/luci-static/resources/view/homeproxy/client.js:798 -#: htdocs/luci-static/resources/view/homeproxy/server.js:733 +#: htdocs/luci-static/resources/view/homeproxy/client.js:787 +#: htdocs/luci-static/resources/view/homeproxy/client.js:797 +#: htdocs/luci-static/resources/view/homeproxy/server.js:732 msgid "Both" msgstr "全部" @@ -290,7 +276,7 @@ msgstr "大陆白名单" msgid "Bypass mainland China traffic via firewall rules by default." msgstr "默认使用防火墙规则绕过中国大陆流量。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:549 +#: htdocs/luci-static/resources/view/homeproxy/server.js:548 msgid "CA provider" msgstr "CA 颁发机构" @@ -307,7 +293,7 @@ msgid "Cancel" msgstr "取消" #: htdocs/luci-static/resources/view/homeproxy/node.js:1125 -#: htdocs/luci-static/resources/view/homeproxy/server.js:665 +#: htdocs/luci-static/resources/view/homeproxy/server.js:664 msgid "Certificate path" msgstr "证书路径" @@ -336,7 +322,7 @@ msgid "China list version" msgstr "大陆域名列表版本" #: htdocs/luci-static/resources/view/homeproxy/node.js:1111 -#: htdocs/luci-static/resources/view/homeproxy/server.js:507 +#: htdocs/luci-static/resources/view/homeproxy/server.js:506 msgid "Cipher suites" msgstr "密码套件" @@ -360,7 +346,7 @@ msgstr "客户端版本" msgid "CloudFlare Public DNS (1.1.1.1)" msgstr "CloudFlare 公共 DNS(1.1.1.1)" -#: htdocs/luci-static/resources/view/homeproxy/server.js:564 +#: htdocs/luci-static/resources/view/homeproxy/server.js:563 msgid "Cloudflare" msgstr "Cloudflare" @@ -387,11 +373,11 @@ msgstr "连接检查" msgid "Custom routing" msgstr "自定义路由" -#: htdocs/luci-static/resources/view/homeproxy/client.js:805 +#: htdocs/luci-static/resources/view/homeproxy/client.js:804 msgid "DNS" msgstr "DNS" -#: htdocs/luci-static/resources/view/homeproxy/client.js:749 +#: htdocs/luci-static/resources/view/homeproxy/client.js:748 msgid "DNS Rules" msgstr "DNS 规则" @@ -403,11 +389,11 @@ msgstr "DNS 服务器" msgid "DNS Settings" msgstr "DNS 设置" -#: htdocs/luci-static/resources/view/homeproxy/server.js:562 +#: htdocs/luci-static/resources/view/homeproxy/server.js:561 msgid "DNS provider" msgstr "DNS 提供商" -#: htdocs/luci-static/resources/view/homeproxy/client.js:758 +#: htdocs/luci-static/resources/view/homeproxy/client.js:757 msgid "DNS rule" msgstr "DNS 规则" @@ -416,20 +402,20 @@ msgstr "DNS 规则" msgid "DNS server" msgstr "DNS 服务器" -#: htdocs/luci-static/resources/view/homeproxy/server.js:557 +#: htdocs/luci-static/resources/view/homeproxy/server.js:556 msgid "DNS01 challenge" msgstr "DNS01 验证" #: htdocs/luci-static/resources/homeproxy.js:17 #: htdocs/luci-static/resources/view/homeproxy/client.js:453 -#: htdocs/luci-static/resources/view/homeproxy/client.js:780 +#: htdocs/luci-static/resources/view/homeproxy/client.js:779 #: htdocs/luci-static/resources/view/homeproxy/node.js:749 msgid "Default" msgstr "默认" #: htdocs/luci-static/resources/view/homeproxy/client.js:610 #: htdocs/luci-static/resources/view/homeproxy/client.js:687 -#: htdocs/luci-static/resources/view/homeproxy/client.js:927 +#: htdocs/luci-static/resources/view/homeproxy/client.js:926 msgid "Default DNS (issued by WAN)" msgstr "默认 DNS(由 WAN 下发)" @@ -453,7 +439,7 @@ msgstr "默认出站" msgid "Default packet encoding" msgstr "默认包封装格式" -#: htdocs/luci-static/resources/view/homeproxy/server.js:528 +#: htdocs/luci-static/resources/view/homeproxy/server.js:527 msgid "Default server name" msgstr "默认服务器名称" @@ -461,34 +447,34 @@ msgstr "默认服务器名称" #: htdocs/luci-static/resources/view/homeproxy/client.js:395 #: htdocs/luci-static/resources/view/homeproxy/client.js:581 #: htdocs/luci-static/resources/view/homeproxy/client.js:729 -#: htdocs/luci-static/resources/view/homeproxy/client.js:910 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1029 +#: htdocs/luci-static/resources/view/homeproxy/client.js:909 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1027 #: htdocs/luci-static/resources/view/homeproxy/node.js:506 msgid "Direct" msgstr "直连" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1159 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1157 msgid "Direct Domain List" msgstr "直连域名列表" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1076 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1121 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1074 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1119 msgid "Direct IPv4 IP-s" msgstr "直连 IPv4 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1079 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1124 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1077 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1122 msgid "Direct IPv6 IP-s" msgstr "直连 IPv6 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1082 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1080 msgid "Direct MAC-s" msgstr "直连 MAC 地址" #: htdocs/luci-static/resources/view/homeproxy/client.js:142 #: htdocs/luci-static/resources/view/homeproxy/client.js:150 #: htdocs/luci-static/resources/view/homeproxy/client.js:331 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1070 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1068 #: htdocs/luci-static/resources/view/homeproxy/node.js:596 #: htdocs/luci-static/resources/view/homeproxy/node.js:608 #: htdocs/luci-static/resources/view/homeproxy/node.js:1165 @@ -502,7 +488,7 @@ msgstr "禁用" msgid "Disable DNS cache" msgstr "禁用 DNS 缓存" -#: htdocs/luci-static/resources/view/homeproxy/server.js:590 +#: htdocs/luci-static/resources/view/homeproxy/server.js:589 msgid "Disable HTTP challenge" msgstr "禁用 HTTP 验证" @@ -511,11 +497,11 @@ msgstr "禁用 HTTP 验证" msgid "Disable Path MTU discovery" msgstr "禁用路径 MTU 探测" -#: htdocs/luci-static/resources/view/homeproxy/server.js:595 +#: htdocs/luci-static/resources/view/homeproxy/server.js:594 msgid "Disable TLS ALPN challenge" msgstr "禁用 TLS ALPN 认证" -#: htdocs/luci-static/resources/view/homeproxy/client.js:941 +#: htdocs/luci-static/resources/view/homeproxy/client.js:940 msgid "Disable cache and save cache in this query." msgstr "在本次查询中禁用缓存。" @@ -523,7 +509,7 @@ msgstr "在本次查询中禁用缓存。" msgid "Disable cache expire" msgstr "缓存永不过期" -#: htdocs/luci-static/resources/view/homeproxy/client.js:940 +#: htdocs/luci-static/resources/view/homeproxy/client.js:939 msgid "Disable dns cache" msgstr "禁用 DNS 缓存" @@ -541,31 +527,31 @@ msgstr "" "字节。" #: htdocs/luci-static/resources/view/homeproxy/client.js:486 -#: htdocs/luci-static/resources/view/homeproxy/client.js:817 +#: htdocs/luci-static/resources/view/homeproxy/client.js:816 msgid "Domain keyword" msgstr "域名关键词" #: htdocs/luci-static/resources/view/homeproxy/client.js:477 -#: htdocs/luci-static/resources/view/homeproxy/client.js:808 +#: htdocs/luci-static/resources/view/homeproxy/client.js:807 msgid "Domain name" msgstr "域名" #: htdocs/luci-static/resources/view/homeproxy/client.js:490 -#: htdocs/luci-static/resources/view/homeproxy/client.js:821 +#: htdocs/luci-static/resources/view/homeproxy/client.js:820 msgid "Domain regex" msgstr "域名正则表达式" #: htdocs/luci-static/resources/view/homeproxy/client.js:376 -#: htdocs/luci-static/resources/view/homeproxy/server.js:724 +#: htdocs/luci-static/resources/view/homeproxy/server.js:723 msgid "Domain strategy" msgstr "域名解析策略" #: htdocs/luci-static/resources/view/homeproxy/client.js:482 -#: htdocs/luci-static/resources/view/homeproxy/client.js:813 +#: htdocs/luci-static/resources/view/homeproxy/client.js:812 msgid "Domain suffix" msgstr "域名后缀" -#: htdocs/luci-static/resources/view/homeproxy/server.js:522 +#: htdocs/luci-static/resources/view/homeproxy/server.js:521 msgid "Domains" msgstr "域名" @@ -593,7 +579,7 @@ msgstr "" msgid "Drop/keep specific nodes from subscriptions." msgstr "从订阅中 丢弃/保留 指定节点" -#: htdocs/luci-static/resources/view/homeproxy/server.js:613 +#: htdocs/luci-static/resources/view/homeproxy/server.js:612 msgid "" "EAB (External Account Binding) contains information necessary to bind or map " "an ACME account to some other account known by the CA.
External account " @@ -618,9 +604,9 @@ msgstr "ECH 配置" #: htdocs/luci-static/resources/view/homeproxy/client.js:635 #: htdocs/luci-static/resources/view/homeproxy/client.js:741 -#: htdocs/luci-static/resources/view/homeproxy/client.js:950 +#: htdocs/luci-static/resources/view/homeproxy/client.js:949 msgid "EDNS Client subnet" -msgstr "" +msgstr "ENDS 客户端子网" #: htdocs/luci-static/resources/view/homeproxy/node.js:916 #: htdocs/luci-static/resources/view/homeproxy/server.js:399 @@ -640,15 +626,15 @@ msgstr "前置数据默认发送在路径而不是标头中。" msgid "Edit nodes" msgstr "修改节点" -#: htdocs/luci-static/resources/view/homeproxy/server.js:534 +#: htdocs/luci-static/resources/view/homeproxy/server.js:533 msgid "Email" msgstr "Email" #: htdocs/luci-static/resources/view/homeproxy/client.js:364 #: htdocs/luci-static/resources/view/homeproxy/client.js:440 #: htdocs/luci-static/resources/view/homeproxy/client.js:671 -#: htdocs/luci-static/resources/view/homeproxy/client.js:767 -#: htdocs/luci-static/resources/view/homeproxy/client.js:977 +#: htdocs/luci-static/resources/view/homeproxy/client.js:766 +#: htdocs/luci-static/resources/view/homeproxy/client.js:975 #: htdocs/luci-static/resources/view/homeproxy/server.js:75 #: htdocs/luci-static/resources/view/homeproxy/server.js:98 msgid "Enable" @@ -669,7 +655,7 @@ msgstr "" msgid "Enable 0-RTT handshake" msgstr "启用 0-RTT 握手" -#: htdocs/luci-static/resources/view/homeproxy/server.js:516 +#: htdocs/luci-static/resources/view/homeproxy/server.js:515 msgid "Enable ACME" msgstr "启用 ACME" @@ -692,7 +678,7 @@ msgid "Enable TCP Brutal congestion control algorithm" msgstr "启用 TCP Brutal 拥塞控制算法。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1223 -#: htdocs/luci-static/resources/view/homeproxy/server.js:715 +#: htdocs/luci-static/resources/view/homeproxy/server.js:714 msgid "Enable UDP fragmentation." msgstr "启用 UDP 分片。" @@ -705,7 +691,7 @@ msgstr "启用端点独立 NAT" msgid "Enable padding" msgstr "启用填充" -#: htdocs/luci-static/resources/view/homeproxy/server.js:704 +#: htdocs/luci-static/resources/view/homeproxy/server.js:703 msgid "Enable tcp fast open for listener." msgstr "为监听器启用 TCP 快速打开。" @@ -732,31 +718,31 @@ msgstr "加密方式" #: htdocs/luci-static/resources/view/homeproxy/client.js:206 #: htdocs/luci-static/resources/view/homeproxy/client.js:244 #: htdocs/luci-static/resources/view/homeproxy/client.js:249 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1005 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1010 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1013 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1152 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1181 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1003 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1008 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1011 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1150 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1179 #: htdocs/luci-static/resources/view/homeproxy/node.js:461 #: htdocs/luci-static/resources/view/homeproxy/node.js:564 #: htdocs/luci-static/resources/view/homeproxy/node.js:1186 #: htdocs/luci-static/resources/view/homeproxy/node.js:1269 #: htdocs/luci-static/resources/view/homeproxy/node.js:1272 #: htdocs/luci-static/resources/view/homeproxy/server.js:159 -#: htdocs/luci-static/resources/view/homeproxy/server.js:540 -#: htdocs/luci-static/resources/view/homeproxy/server.js:542 +#: htdocs/luci-static/resources/view/homeproxy/server.js:539 +#: htdocs/luci-static/resources/view/homeproxy/server.js:541 msgid "Expecting: %s" msgstr "请输入:%s" -#: htdocs/luci-static/resources/view/homeproxy/server.js:612 +#: htdocs/luci-static/resources/view/homeproxy/server.js:611 msgid "External Account Binding" msgstr "外部账户绑定" -#: htdocs/luci-static/resources/view/homeproxy/server.js:624 +#: htdocs/luci-static/resources/view/homeproxy/server.js:623 msgid "External account MAC key" msgstr "外部账户 MAC 密钥" -#: htdocs/luci-static/resources/view/homeproxy/server.js:619 +#: htdocs/luci-static/resources/view/homeproxy/server.js:618 msgid "External account key ID" msgstr "外部账户密钥标识符" @@ -777,7 +763,7 @@ msgstr "过滤节点" msgid "Flow" msgstr "流控" -#: htdocs/luci-static/resources/view/homeproxy/client.js:988 +#: htdocs/luci-static/resources/view/homeproxy/client.js:986 msgid "Format" msgstr "格式" @@ -793,15 +779,15 @@ msgstr "GFW 域名列表版本" msgid "GFWList" msgstr "GFWList" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1094 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1092 msgid "Gaming mode IPv4 IP-s" msgstr "游戏模式 IPv4 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1096 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1094 msgid "Gaming mode IPv6 IP-s" msgstr "游戏模式 IPv6 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1099 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1097 msgid "Gaming mode MAC-s" msgstr "游戏模式 MAC 地址" @@ -818,15 +804,15 @@ msgstr "全局" msgid "Global padding" msgstr "全局填充" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1101 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1099 msgid "Global proxy IPv4 IP-s" msgstr "全局代理 IPv4 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1104 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1102 msgid "Global proxy IPv6 IP-s" msgstr "全局代理 IPv6 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1107 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1105 msgid "Global proxy MAC-s" msgstr "全局代理 MAC 地址" @@ -847,7 +833,7 @@ msgid "Grant access to homeproxy configuration" msgstr "授予 homeproxy 访问 UCI 配置的权限" #: htdocs/luci-static/resources/view/homeproxy/client.js:467 -#: htdocs/luci-static/resources/view/homeproxy/client.js:802 +#: htdocs/luci-static/resources/view/homeproxy/client.js:801 #: htdocs/luci-static/resources/view/homeproxy/node.js:507 #: htdocs/luci-static/resources/view/homeproxy/node.js:819 #: htdocs/luci-static/resources/view/homeproxy/server.js:104 @@ -866,11 +852,11 @@ msgstr "身份验证失败时的 HTTP3 服务器响应。默认返回 404 页面 msgid "HTTPUpgrade" msgstr "HTTPUpgrade" -#: htdocs/luci-static/resources/view/homeproxy/server.js:652 +#: htdocs/luci-static/resources/view/homeproxy/server.js:651 msgid "Handshake server address" msgstr "握手服务器地址" -#: htdocs/luci-static/resources/view/homeproxy/server.js:658 +#: htdocs/luci-static/resources/view/homeproxy/server.js:657 msgid "Handshake server port" msgstr "握手服务器端口" @@ -927,17 +913,17 @@ msgid "Hysteria2" msgstr "Hysteria2" #: htdocs/luci-static/resources/view/homeproxy/client.js:505 -#: htdocs/luci-static/resources/view/homeproxy/client.js:845 +#: htdocs/luci-static/resources/view/homeproxy/client.js:844 msgid "IP CIDR" msgstr "IP CIDR" #: htdocs/luci-static/resources/view/homeproxy/client.js:458 -#: htdocs/luci-static/resources/view/homeproxy/client.js:785 +#: htdocs/luci-static/resources/view/homeproxy/client.js:784 msgid "IP version" msgstr "IP 版本" #: htdocs/luci-static/resources/view/homeproxy/client.js:460 -#: htdocs/luci-static/resources/view/homeproxy/client.js:786 +#: htdocs/luci-static/resources/view/homeproxy/client.js:785 msgid "IPv4" msgstr "IPv4" @@ -946,7 +932,7 @@ msgid "IPv4 only" msgstr "仅 IPv4" #: htdocs/luci-static/resources/view/homeproxy/client.js:461 -#: htdocs/luci-static/resources/view/homeproxy/client.js:787 +#: htdocs/luci-static/resources/view/homeproxy/client.js:786 msgid "IPv6" msgstr "IPv6" @@ -969,7 +955,7 @@ msgid "" "connections." msgstr "如果启用,客户端传输即使没有活动连接也会发送 keepalive ping。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:725 +#: htdocs/luci-static/resources/view/homeproxy/server.js:724 msgid "" "If set, the requested domain name will be resolved to IP before routing." msgstr "如果设置,请求的域名将在路由前被解析为 IP 地址。" @@ -1014,7 +1000,7 @@ msgstr "导入分享链接" msgid "Independent cache per server" msgstr "独立缓存" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1053 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1051 msgid "Interface Control" msgstr "接口控制" @@ -1026,12 +1012,12 @@ msgid "" msgstr "发送心跳包以保持连接存活的时间间隔(单位:秒)。" #: htdocs/luci-static/resources/view/homeproxy/client.js:570 -#: htdocs/luci-static/resources/view/homeproxy/client.js:898 +#: htdocs/luci-static/resources/view/homeproxy/client.js:897 msgid "Invert" msgstr "反转" #: htdocs/luci-static/resources/view/homeproxy/client.js:571 -#: htdocs/luci-static/resources/view/homeproxy/client.js:899 +#: htdocs/luci-static/resources/view/homeproxy/client.js:898 msgid "Invert match result." msgstr "反转匹配结果" @@ -1039,19 +1025,19 @@ msgstr "反转匹配结果" msgid "It MUST support TCP query." msgstr "它必须支持 TCP 查询。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:683 +#: htdocs/luci-static/resources/view/homeproxy/server.js:682 msgid "Key path" msgstr "证书路径" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1067 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1065 msgid "LAN IP Policy" msgstr "LAN IP 策略" #: htdocs/luci-static/resources/view/homeproxy/client.js:359 #: htdocs/luci-static/resources/view/homeproxy/client.js:435 #: htdocs/luci-static/resources/view/homeproxy/client.js:666 -#: htdocs/luci-static/resources/view/homeproxy/client.js:762 -#: htdocs/luci-static/resources/view/homeproxy/client.js:972 +#: htdocs/luci-static/resources/view/homeproxy/client.js:761 +#: htdocs/luci-static/resources/view/homeproxy/client.js:970 #: htdocs/luci-static/resources/view/homeproxy/node.js:500 #: htdocs/luci-static/resources/view/homeproxy/server.js:92 msgid "Label" @@ -1070,7 +1056,7 @@ msgstr "" msgid "Less compatibility and sometimes better performance." msgstr "有时性能更好。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:551 +#: htdocs/luci-static/resources/view/homeproxy/server.js:550 msgid "Let's Encrypt" msgstr "Let's Encrypt" @@ -1080,7 +1066,7 @@ msgid "" msgstr "分配给接口的 IP(v4 或 v6)地址前缀列表。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1082 -#: htdocs/luci-static/resources/view/homeproxy/server.js:487 +#: htdocs/luci-static/resources/view/homeproxy/server.js:486 msgid "List of supported application level protocols, in order of preference." msgstr "支持的应用层协议协商列表,按顺序排列。" @@ -1088,7 +1074,7 @@ msgstr "支持的应用层协议协商列表,按顺序排列。" msgid "Listen address" msgstr "监听地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1055 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1053 msgid "Listen interfaces" msgstr "监听接口" @@ -1100,7 +1086,7 @@ msgstr "监听端口" msgid "Loading" msgstr "加载中" -#: htdocs/luci-static/resources/view/homeproxy/client.js:983 +#: htdocs/luci-static/resources/view/homeproxy/client.js:981 msgid "Local" msgstr "本地" @@ -1128,7 +1114,7 @@ msgstr "主 UDP 节点" msgid "Main node" msgstr "主节点" -#: htdocs/luci-static/resources/view/homeproxy/client.js:894 +#: htdocs/luci-static/resources/view/homeproxy/client.js:893 msgid "Make ipcidr in rule sets match the source IP." msgstr "" @@ -1146,7 +1132,7 @@ msgstr "独立缓存每个 DNS 服务器的结果以供特殊用途。启用后 msgid "Masquerade" msgstr "伪装" -#: htdocs/luci-static/resources/view/homeproxy/client.js:846 +#: htdocs/luci-static/resources/view/homeproxy/client.js:845 msgid "Match IP CIDR with query response." msgstr "" @@ -1155,40 +1141,40 @@ msgid "Match IP CIDR." msgstr "匹配 IP CIDR。" #: htdocs/luci-static/resources/view/homeproxy/client.js:483 -#: htdocs/luci-static/resources/view/homeproxy/client.js:814 +#: htdocs/luci-static/resources/view/homeproxy/client.js:813 msgid "Match domain suffix." msgstr "匹配域名后缀。" #: htdocs/luci-static/resources/view/homeproxy/client.js:487 -#: htdocs/luci-static/resources/view/homeproxy/client.js:818 +#: htdocs/luci-static/resources/view/homeproxy/client.js:817 msgid "Match domain using keyword." msgstr "使用关键词匹配域名。" #: htdocs/luci-static/resources/view/homeproxy/client.js:491 -#: htdocs/luci-static/resources/view/homeproxy/client.js:822 +#: htdocs/luci-static/resources/view/homeproxy/client.js:821 msgid "Match domain using regular expression." msgstr "使用正则表达式匹配域名。" #: htdocs/luci-static/resources/view/homeproxy/client.js:478 -#: htdocs/luci-static/resources/view/homeproxy/client.js:809 +#: htdocs/luci-static/resources/view/homeproxy/client.js:808 msgid "Match full domain." msgstr "匹配完整域名。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:904 +#: htdocs/luci-static/resources/view/homeproxy/client.js:903 msgid "Match outbound." msgstr "匹配出站。" #: htdocs/luci-static/resources/view/homeproxy/client.js:532 -#: htdocs/luci-static/resources/view/homeproxy/client.js:831 +#: htdocs/luci-static/resources/view/homeproxy/client.js:830 msgid "Match port range. Format as START:/:END/START:END." msgstr "匹配端口范围。格式为 START:/:END/START:END。" #: htdocs/luci-static/resources/view/homeproxy/client.js:527 -#: htdocs/luci-static/resources/view/homeproxy/client.js:826 +#: htdocs/luci-static/resources/view/homeproxy/client.js:825 msgid "Match port." msgstr "匹配端口。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:851 +#: htdocs/luci-static/resources/view/homeproxy/client.js:850 msgid "Match private IP with query response." msgstr "" @@ -1197,31 +1183,31 @@ msgid "Match private IP." msgstr "匹配私有 IP。" #: htdocs/luci-static/resources/view/homeproxy/client.js:500 -#: htdocs/luci-static/resources/view/homeproxy/client.js:841 +#: htdocs/luci-static/resources/view/homeproxy/client.js:840 msgid "Match private source IP." msgstr "匹配私有源 IP。" #: htdocs/luci-static/resources/view/homeproxy/client.js:537 -#: htdocs/luci-static/resources/view/homeproxy/client.js:866 +#: htdocs/luci-static/resources/view/homeproxy/client.js:865 msgid "Match process name." msgstr "匹配进程名。" #: htdocs/luci-static/resources/view/homeproxy/client.js:541 -#: htdocs/luci-static/resources/view/homeproxy/client.js:870 +#: htdocs/luci-static/resources/view/homeproxy/client.js:869 msgid "Match process path." msgstr "匹配进程路径。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:792 +#: htdocs/luci-static/resources/view/homeproxy/client.js:791 msgid "Match query type." msgstr "匹配请求类型。" #: htdocs/luci-static/resources/view/homeproxy/client.js:549 -#: htdocs/luci-static/resources/view/homeproxy/client.js:878 +#: htdocs/luci-static/resources/view/homeproxy/client.js:877 msgid "Match rule set." msgstr "匹配规则集。" #: htdocs/luci-static/resources/view/homeproxy/client.js:495 -#: htdocs/luci-static/resources/view/homeproxy/client.js:836 +#: htdocs/luci-static/resources/view/homeproxy/client.js:835 msgid "Match source IP CIDR." msgstr "匹配源 IP CIDR。" @@ -1230,17 +1216,17 @@ msgid "Match source IP via rule set" msgstr "通过规则集匹配源 IP" #: htdocs/luci-static/resources/view/homeproxy/client.js:522 -#: htdocs/luci-static/resources/view/homeproxy/client.js:861 +#: htdocs/luci-static/resources/view/homeproxy/client.js:860 msgid "Match source port range. Format as START:/:END/START:END." msgstr "匹配源端口范围。格式为 START:/:END/START:END。" #: htdocs/luci-static/resources/view/homeproxy/client.js:517 -#: htdocs/luci-static/resources/view/homeproxy/client.js:856 +#: htdocs/luci-static/resources/view/homeproxy/client.js:855 msgid "Match source port." msgstr "匹配源端口。" #: htdocs/luci-static/resources/view/homeproxy/client.js:545 -#: htdocs/luci-static/resources/view/homeproxy/client.js:874 +#: htdocs/luci-static/resources/view/homeproxy/client.js:873 msgid "Match user name." msgstr "匹配用户名。" @@ -1254,7 +1240,7 @@ msgstr "最大下载速度" msgid "Max download speed in Mbps." msgstr "最大下载速度(Mbps)。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:647 +#: htdocs/luci-static/resources/view/homeproxy/server.js:646 msgid "Max time difference" msgstr "最大时间差" @@ -1269,7 +1255,7 @@ msgid "Max upload speed in Mbps." msgstr "最大上传速度(Mbps)。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1103 -#: htdocs/luci-static/resources/view/homeproxy/server.js:499 +#: htdocs/luci-static/resources/view/homeproxy/server.js:498 msgid "Maximum TLS version" msgstr "最大 TLS 版本" @@ -1296,7 +1282,7 @@ msgid "Method" msgstr "方式" #: htdocs/luci-static/resources/view/homeproxy/node.js:1095 -#: htdocs/luci-static/resources/view/homeproxy/server.js:491 +#: htdocs/luci-static/resources/view/homeproxy/server.js:490 msgid "Minimum TLS version" msgstr "最低 TLS 版本" @@ -1318,12 +1304,12 @@ msgid "Mixed system TCP stack and gVisor UDP stack." msgstr "混合系统 TCP 栈和 gVisor UDP 栈。" #: htdocs/luci-static/resources/view/homeproxy/client.js:445 -#: htdocs/luci-static/resources/view/homeproxy/client.js:772 +#: htdocs/luci-static/resources/view/homeproxy/client.js:771 msgid "Mode" msgstr "模式" #: htdocs/luci-static/resources/view/homeproxy/node.js:1218 -#: htdocs/luci-static/resources/view/homeproxy/server.js:709 +#: htdocs/luci-static/resources/view/homeproxy/server.js:708 msgid "MultiPath TCP" msgstr "多路径 TCP(MPTCP)" @@ -1354,8 +1340,8 @@ msgid "NaïveProxy" msgstr "NaïveProxy" #: htdocs/luci-static/resources/view/homeproxy/client.js:472 -#: htdocs/luci-static/resources/view/homeproxy/client.js:795 -#: htdocs/luci-static/resources/view/homeproxy/server.js:730 +#: htdocs/luci-static/resources/view/homeproxy/client.js:794 +#: htdocs/luci-static/resources/view/homeproxy/server.js:729 msgid "Network" msgstr "网络" @@ -1418,7 +1404,7 @@ msgstr "混淆密码" msgid "Obfuscate type" msgstr "混淆类型" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1056 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1054 msgid "Only process traffic from specific interfaces. Leave empty for all." msgstr "只处理来自指定接口的流量。留空表示全部。" @@ -1429,8 +1415,8 @@ msgstr "仅代理中国大陆" #: htdocs/luci-static/resources/view/homeproxy/client.js:389 #: htdocs/luci-static/resources/view/homeproxy/client.js:575 #: htdocs/luci-static/resources/view/homeproxy/client.js:723 -#: htdocs/luci-static/resources/view/homeproxy/client.js:903 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1023 +#: htdocs/luci-static/resources/view/homeproxy/client.js:902 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1021 msgid "Outbound" msgstr "出站" @@ -1443,7 +1429,7 @@ msgid "Override address" msgstr "覆盖地址" #: htdocs/luci-static/resources/view/homeproxy/client.js:321 -#: htdocs/luci-static/resources/view/homeproxy/server.js:720 +#: htdocs/luci-static/resources/view/homeproxy/server.js:719 msgid "Override destination" msgstr "覆盖目标地址" @@ -1452,7 +1438,7 @@ msgid "Override port" msgstr "覆盖端口" #: htdocs/luci-static/resources/view/homeproxy/client.js:322 -#: htdocs/luci-static/resources/view/homeproxy/server.js:721 +#: htdocs/luci-static/resources/view/homeproxy/server.js:720 msgid "Override the connection destination address with the sniffed domain." msgstr "使用嗅探到的域名覆盖连接目标。" @@ -1477,7 +1463,7 @@ msgstr "数据包编码" msgid "Password" msgstr "密码" -#: htdocs/luci-static/resources/view/homeproxy/client.js:994 +#: htdocs/luci-static/resources/view/homeproxy/client.js:992 #: htdocs/luci-static/resources/view/homeproxy/node.js:879 #: htdocs/luci-static/resources/view/homeproxy/node.js:912 #: htdocs/luci-static/resources/view/homeproxy/server.js:365 @@ -1509,7 +1495,7 @@ msgid "Plugin opts" msgstr "插件参数" #: htdocs/luci-static/resources/view/homeproxy/client.js:526 -#: htdocs/luci-static/resources/view/homeproxy/client.js:825 +#: htdocs/luci-static/resources/view/homeproxy/client.js:824 #: htdocs/luci-static/resources/view/homeproxy/node.js:530 msgid "Port" msgstr "端口" @@ -1519,7 +1505,7 @@ msgid "Port %s alrealy exists!" msgstr "端口 %s 已存在!" #: htdocs/luci-static/resources/view/homeproxy/client.js:531 -#: htdocs/luci-static/resources/view/homeproxy/client.js:830 +#: htdocs/luci-static/resources/view/homeproxy/client.js:829 msgid "Port range" msgstr "端口范围" @@ -1536,7 +1522,7 @@ msgid "Prefer IPv6" msgstr "优先 IPv6" #: htdocs/luci-static/resources/view/homeproxy/client.js:510 -#: htdocs/luci-static/resources/view/homeproxy/client.js:850 +#: htdocs/luci-static/resources/view/homeproxy/client.js:849 msgid "Private IP" msgstr "私有 IP" @@ -1550,22 +1536,22 @@ msgid "Private key passphrase" msgstr "私钥指纹" #: htdocs/luci-static/resources/view/homeproxy/client.js:499 -#: htdocs/luci-static/resources/view/homeproxy/client.js:840 +#: htdocs/luci-static/resources/view/homeproxy/client.js:839 msgid "Private source IP" msgstr "私有源 IP" #: htdocs/luci-static/resources/view/homeproxy/client.js:536 -#: htdocs/luci-static/resources/view/homeproxy/client.js:865 +#: htdocs/luci-static/resources/view/homeproxy/client.js:864 msgid "Process name" msgstr "进程名" #: htdocs/luci-static/resources/view/homeproxy/client.js:540 -#: htdocs/luci-static/resources/view/homeproxy/client.js:869 +#: htdocs/luci-static/resources/view/homeproxy/client.js:868 msgid "Process path" msgstr "进程路径" #: htdocs/luci-static/resources/view/homeproxy/client.js:465 -#: htdocs/luci-static/resources/view/homeproxy/client.js:800 +#: htdocs/luci-static/resources/view/homeproxy/client.js:799 #: htdocs/luci-static/resources/view/homeproxy/node.js:584 #: htdocs/luci-static/resources/view/homeproxy/node.js:996 #: htdocs/luci-static/resources/view/homeproxy/server.js:168 @@ -1582,33 +1568,33 @@ msgid "" "default in v2ray and cannot be disabled)." msgstr "协议参数。 如启用会随机浪费流量(在 v2ray 中默认启用并且无法禁用)。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1130 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1128 msgid "Proxy Domain List" msgstr "代理域名列表" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1085 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1114 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1083 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1112 msgid "Proxy IPv4 IP-s" msgstr "代理 IPv4 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1088 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1117 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1086 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1115 msgid "Proxy IPv6 IP-s" msgstr "代理 IPv6 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1091 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1089 msgid "Proxy MAC-s" msgstr "代理 MAC 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1072 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1070 msgid "Proxy all except listed" msgstr "仅允许列表外" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1069 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1067 msgid "Proxy filter mode" msgstr "代理过滤模式" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1071 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1069 msgid "Proxy listed only" msgstr "仅允许列表内" @@ -1617,7 +1603,7 @@ msgid "Proxy mode" msgstr "代理模式" #: htdocs/luci-static/resources/view/homeproxy/client.js:469 -#: htdocs/luci-static/resources/view/homeproxy/client.js:804 +#: htdocs/luci-static/resources/view/homeproxy/client.js:803 #: htdocs/luci-static/resources/view/homeproxy/node.js:751 #: htdocs/luci-static/resources/view/homeproxy/node.js:821 #: htdocs/luci-static/resources/view/homeproxy/server.js:323 @@ -1643,7 +1629,7 @@ msgstr "QUIC 最大双向并发流" msgid "QUIC stream receive window" msgstr "QUIC 流接收窗口" -#: htdocs/luci-static/resources/view/homeproxy/client.js:791 +#: htdocs/luci-static/resources/view/homeproxy/client.js:790 msgid "Query type" msgstr "请求类型" @@ -1652,11 +1638,11 @@ msgid "RDRC timeout" msgstr "RDRC 超时" #: htdocs/luci-static/resources/view/homeproxy/node.js:1197 -#: htdocs/luci-static/resources/view/homeproxy/server.js:631 +#: htdocs/luci-static/resources/view/homeproxy/server.js:630 msgid "REALITY" msgstr "REALITY" -#: htdocs/luci-static/resources/view/homeproxy/server.js:637 +#: htdocs/luci-static/resources/view/homeproxy/server.js:636 msgid "REALITY private key" msgstr "REALITY 私钥" @@ -1665,7 +1651,7 @@ msgid "REALITY public key" msgstr "REALITY 公钥" #: htdocs/luci-static/resources/view/homeproxy/node.js:1207 -#: htdocs/luci-static/resources/view/homeproxy/server.js:642 +#: htdocs/luci-static/resources/view/homeproxy/server.js:641 msgid "REALITY short ID" msgstr "REALITY 标识符" @@ -1702,11 +1688,11 @@ msgstr "Redirect TCP + Tun UDP" msgid "Refresh every %s seconds." msgstr "每 %s 秒刷新。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:580 +#: htdocs/luci-static/resources/view/homeproxy/server.js:579 msgid "Region ID" msgstr "区域 ID" -#: htdocs/luci-static/resources/view/homeproxy/client.js:984 +#: htdocs/luci-static/resources/view/homeproxy/client.js:982 msgid "Remote" msgstr "远程" @@ -1730,11 +1716,11 @@ msgstr "解析策略" msgid "Resources management" msgstr "资源管理" -#: htdocs/luci-static/resources/view/homeproxy/client.js:945 +#: htdocs/luci-static/resources/view/homeproxy/client.js:944 msgid "Rewrite TTL" msgstr "重写 TTL" -#: htdocs/luci-static/resources/view/homeproxy/client.js:946 +#: htdocs/luci-static/resources/view/homeproxy/client.js:945 msgid "Rewrite TTL in DNS responses." msgstr "在 DNS 响应中重写 TTL。" @@ -1767,17 +1753,17 @@ msgid "Routing rule" msgstr "路由规则" #: htdocs/luci-static/resources/view/homeproxy/client.js:548 -#: htdocs/luci-static/resources/view/homeproxy/client.js:877 -#: htdocs/luci-static/resources/view/homeproxy/client.js:959 -#: htdocs/luci-static/resources/view/homeproxy/client.js:968 +#: htdocs/luci-static/resources/view/homeproxy/client.js:876 +#: htdocs/luci-static/resources/view/homeproxy/client.js:957 +#: htdocs/luci-static/resources/view/homeproxy/client.js:966 msgid "Rule set" msgstr "规则集" -#: htdocs/luci-static/resources/view/homeproxy/client.js:893 +#: htdocs/luci-static/resources/view/homeproxy/client.js:892 msgid "Rule set IP CIDR as source IP" msgstr "规则集 IP CIDR 作为源 IP" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1001 +#: htdocs/luci-static/resources/view/homeproxy/client.js:999 msgid "Rule set URL" msgstr "规则集 URL" @@ -1786,7 +1772,7 @@ msgid "SSH" msgstr "SSH" #: htdocs/luci-static/resources/view/homeproxy/client.js:470 -#: htdocs/luci-static/resources/view/homeproxy/client.js:806 +#: htdocs/luci-static/resources/view/homeproxy/client.js:805 msgid "STUN" msgstr "STUN" @@ -1811,7 +1797,7 @@ msgstr "保存当前设置" msgid "Save subscriptions settings" msgstr "保存订阅设置" -#: htdocs/luci-static/resources/view/homeproxy/client.js:921 +#: htdocs/luci-static/resources/view/homeproxy/client.js:920 #: htdocs/luci-static/resources/view/homeproxy/server.js:88 msgid "Server" msgstr "服务器" @@ -1820,7 +1806,7 @@ msgstr "服务器" msgid "Server Settings" msgstr "服务器设置" -#: htdocs/luci-static/resources/view/homeproxy/server.js:529 +#: htdocs/luci-static/resources/view/homeproxy/server.js:528 msgid "" "Server name to use when choosing a certificate if the ClientHello's " "ServerName field is empty." @@ -1848,7 +1834,7 @@ msgid "Shadowsocks" msgstr "Shadowsocks" #: htdocs/luci-static/resources/view/homeproxy/client.js:466 -#: htdocs/luci-static/resources/view/homeproxy/client.js:801 +#: htdocs/luci-static/resources/view/homeproxy/client.js:800 msgid "" "Sniffed protocol, see Sniff for details." @@ -1878,21 +1864,21 @@ msgid "Socks5" msgstr "Socks5" #: htdocs/luci-static/resources/view/homeproxy/client.js:494 -#: htdocs/luci-static/resources/view/homeproxy/client.js:835 +#: htdocs/luci-static/resources/view/homeproxy/client.js:834 msgid "Source IP CIDR" msgstr "源 IP CIDR" -#: htdocs/luci-static/resources/view/homeproxy/client.js:989 +#: htdocs/luci-static/resources/view/homeproxy/client.js:987 msgid "Source file" msgstr "源文件" #: htdocs/luci-static/resources/view/homeproxy/client.js:516 -#: htdocs/luci-static/resources/view/homeproxy/client.js:855 +#: htdocs/luci-static/resources/view/homeproxy/client.js:854 msgid "Source port" msgstr "源端口" #: htdocs/luci-static/resources/view/homeproxy/client.js:521 -#: htdocs/luci-static/resources/view/homeproxy/client.js:860 +#: htdocs/luci-static/resources/view/homeproxy/client.js:859 msgid "Source port range" msgstr "源端口范围" @@ -1983,18 +1969,18 @@ msgstr "系统" #: htdocs/luci-static/resources/view/homeproxy/client.js:611 #: htdocs/luci-static/resources/view/homeproxy/client.js:688 -#: htdocs/luci-static/resources/view/homeproxy/client.js:928 +#: htdocs/luci-static/resources/view/homeproxy/client.js:927 msgid "System DNS" msgstr "系统 DNS" #: htdocs/luci-static/resources/view/homeproxy/client.js:473 -#: htdocs/luci-static/resources/view/homeproxy/client.js:796 -#: htdocs/luci-static/resources/view/homeproxy/server.js:731 +#: htdocs/luci-static/resources/view/homeproxy/client.js:795 +#: htdocs/luci-static/resources/view/homeproxy/server.js:730 msgid "TCP" msgstr "TCP" #: htdocs/luci-static/resources/view/homeproxy/node.js:1214 -#: htdocs/luci-static/resources/view/homeproxy/server.js:703 +#: htdocs/luci-static/resources/view/homeproxy/server.js:702 msgid "TCP fast open" msgstr "TCP 快速打开" @@ -2007,14 +1993,14 @@ msgid "TCP/IP stack." msgstr "TCP/IP 协议栈。" #: htdocs/luci-static/resources/view/homeproxy/client.js:468 -#: htdocs/luci-static/resources/view/homeproxy/client.js:803 +#: htdocs/luci-static/resources/view/homeproxy/client.js:802 #: htdocs/luci-static/resources/view/homeproxy/node.js:1049 #: htdocs/luci-static/resources/view/homeproxy/server.js:453 msgid "TLS" msgstr "TLS" #: htdocs/luci-static/resources/view/homeproxy/node.js:1081 -#: htdocs/luci-static/resources/view/homeproxy/server.js:486 +#: htdocs/luci-static/resources/view/homeproxy/server.js:485 msgid "TLS ALPN" msgstr "TLS ALPN" @@ -2040,11 +2026,11 @@ msgstr "" msgid "Tag of an outbound for connecting to the dns server." msgstr "用于连接到 DNS 服务器的出站标签。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1024 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1022 msgid "Tag of the outbound to download rule set." msgstr "用于下载规则集的出站标签。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:922 +#: htdocs/luci-static/resources/view/homeproxy/client.js:921 msgid "Tag of the target dns server." msgstr "目标 DNS 服务器标签。" @@ -2062,7 +2048,7 @@ msgstr "让客户端使用 BBR 流控算法。" msgid "Tencent Public DNS (119.29.29.29)" msgstr "腾讯公共 DNS(119.29.29.29)" -#: htdocs/luci-static/resources/view/homeproxy/server.js:550 +#: htdocs/luci-static/resources/view/homeproxy/server.js:549 msgid "The ACME CA provider to use." msgstr "使用的 ACME CA 颁发机构。" @@ -2084,7 +2070,7 @@ msgstr "用于接收数据的 QUIC 流级流控制窗口。" msgid "The address of the dns server. Support UDP, TCP, DoT, DoH and RCode." msgstr "DNS 服务器的地址。支持 UDP、TCP、DoT、DoH 和 RCode。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:601 +#: htdocs/luci-static/resources/view/homeproxy/server.js:600 msgid "" "The alternate port to use for the ACME HTTP challenge; if non-empty, this " "port will be used instead of 80 to spin up a listener for the HTTP challenge." @@ -2092,7 +2078,7 @@ msgstr "" "用于 ACME HTTP 质询的备用端口;如果非空,将使用此端口而不是 80 来启动 HTTP 质" "询的侦听器。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:607 +#: htdocs/luci-static/resources/view/homeproxy/server.js:606 msgid "" "The alternate port to use for the ACME TLS-ALPN challenge; the system must " "forward 443 to this port for challenge to succeed." @@ -2116,7 +2102,7 @@ msgstr "" "source_port_range)
&&
其他字段。此外,包含的所有规则" "集会被合并而不是独立生效。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:773 +#: htdocs/luci-static/resources/view/homeproxy/client.js:772 msgid "" "The default rule uses the following matching logic:
(domain || " "domain_suffix || domain_keyword || domain_regex) &&
(port " @@ -2138,20 +2124,20 @@ msgid "" msgstr "用于解析本 DNS 服务器的域名的策略。默认使用 dns.strategy。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1112 -#: htdocs/luci-static/resources/view/homeproxy/server.js:508 +#: htdocs/luci-static/resources/view/homeproxy/server.js:507 msgid "" "The elliptic curves that will be used in an ECDHE handshake, in preference " "order. If empty, the default will be used." msgstr "将在 ECDHE 握手中使用的椭圆曲线,按优先顺序排列。留空使用默认值。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:535 +#: htdocs/luci-static/resources/view/homeproxy/server.js:534 msgid "" "The email address to use when creating or selecting an existing ACME server " "account." msgstr "创建或选择现有 ACME 服务器帐户时使用的电子邮件地址。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1104 -#: htdocs/luci-static/resources/view/homeproxy/server.js:500 +#: htdocs/luci-static/resources/view/homeproxy/server.js:499 msgid "The maximum TLS version that is acceptable." msgstr "可接受的最高 TLS 版本。" @@ -2161,12 +2147,12 @@ msgid "" "allowed to open." msgstr "允许对等点打开的 QUIC 并发双向流的最大数量。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:648 +#: htdocs/luci-static/resources/view/homeproxy/server.js:647 msgid "The maximum time difference between the server and the client." msgstr "服务器和客户端之间的最大时间差。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1096 -#: htdocs/luci-static/resources/view/homeproxy/server.js:492 +#: htdocs/luci-static/resources/view/homeproxy/server.js:491 msgid "The minimum TLS version that is acceptable." msgstr "可接受的最低 TLS 版本。" @@ -2187,11 +2173,11 @@ msgstr "服务端证书路径,需要 PEM 格式。" msgid "The port must be unique." msgstr "必须是唯一端口。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:684 +#: htdocs/luci-static/resources/view/homeproxy/server.js:683 msgid "The server private key, in PEM format." msgstr "服务端私钥,需要 PEM 格式。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:666 +#: htdocs/luci-static/resources/view/homeproxy/server.js:665 msgid "The server public key, in PEM format." msgstr "服务端公钥,需要 PEM 格式。" @@ -2265,20 +2251,20 @@ msgstr "Tuic" msgid "Tun TCP/UDP" msgstr "Tun TCP/UDP" -#: htdocs/luci-static/resources/view/homeproxy/client.js:982 +#: htdocs/luci-static/resources/view/homeproxy/client.js:980 #: htdocs/luci-static/resources/view/homeproxy/node.js:505 #: htdocs/luci-static/resources/view/homeproxy/server.js:103 msgid "Type" msgstr "类型" #: htdocs/luci-static/resources/view/homeproxy/client.js:474 -#: htdocs/luci-static/resources/view/homeproxy/client.js:797 -#: htdocs/luci-static/resources/view/homeproxy/server.js:732 +#: htdocs/luci-static/resources/view/homeproxy/client.js:796 +#: htdocs/luci-static/resources/view/homeproxy/server.js:731 msgid "UDP" msgstr "UDP" #: htdocs/luci-static/resources/view/homeproxy/node.js:1222 -#: htdocs/luci-static/resources/view/homeproxy/server.js:714 +#: htdocs/luci-static/resources/view/homeproxy/server.js:713 msgid "UDP Fragment" msgstr "UDP 分片" @@ -2323,11 +2309,11 @@ msgstr "更新 %s 个订阅" msgid "Update failed." msgstr "更新失败。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1041 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1039 msgid "Update interval" msgstr "更新间隔" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1042 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1040 msgid "Update interval of rule set.
1d will be used if empty." msgstr "规则集更新间隔。
留空使用 1d。" @@ -2358,21 +2344,21 @@ msgid "Upload bandwidth in Mbps." msgstr "上传带宽(单位:Mbps)。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1132 -#: htdocs/luci-static/resources/view/homeproxy/server.js:675 +#: htdocs/luci-static/resources/view/homeproxy/server.js:674 msgid "Upload certificate" msgstr "上传证书" -#: htdocs/luci-static/resources/view/homeproxy/server.js:693 +#: htdocs/luci-static/resources/view/homeproxy/server.js:692 msgid "Upload key" msgstr "上传密钥" #: htdocs/luci-static/resources/view/homeproxy/node.js:1135 -#: htdocs/luci-static/resources/view/homeproxy/server.js:678 -#: htdocs/luci-static/resources/view/homeproxy/server.js:696 +#: htdocs/luci-static/resources/view/homeproxy/server.js:677 +#: htdocs/luci-static/resources/view/homeproxy/server.js:695 msgid "Upload..." msgstr "上传..." -#: htdocs/luci-static/resources/view/homeproxy/server.js:517 +#: htdocs/luci-static/resources/view/homeproxy/server.js:516 msgid "Use ACME TLS certificate issuer." msgstr "使用 ACME TLS 证书颁发机构。" @@ -2384,7 +2370,7 @@ msgid "" msgstr "用于验证返回证书上的主机名。如允许不安全连接,此配置无效。" #: htdocs/luci-static/resources/view/homeproxy/client.js:544 -#: htdocs/luci-static/resources/view/homeproxy/client.js:873 +#: htdocs/luci-static/resources/view/homeproxy/client.js:872 msgid "User" msgstr "用户" @@ -2408,7 +2394,7 @@ msgstr "VMess" msgid "WAN DNS (read from interface)" msgstr "WAN DNS(从接口获取)" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1112 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1110 msgid "WAN IP Policy" msgstr "WAN IP 策略" @@ -2455,19 +2441,19 @@ msgstr "您最多只能设置两个服务器。" msgid "Your %s was successfully uploaded. Size: %sB." msgstr "您的 %s 已成功上传。大小:%sB。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:552 +#: htdocs/luci-static/resources/view/homeproxy/server.js:551 msgid "ZeroSSL" msgstr "ZeroSSL" #: htdocs/luci-static/resources/view/homeproxy/node.js:1137 -#: htdocs/luci-static/resources/view/homeproxy/server.js:680 +#: htdocs/luci-static/resources/view/homeproxy/server.js:679 msgid "certificate" msgstr "证书" #: htdocs/luci-static/resources/view/homeproxy/node.js:1097 #: htdocs/luci-static/resources/view/homeproxy/node.js:1105 -#: htdocs/luci-static/resources/view/homeproxy/server.js:493 -#: htdocs/luci-static/resources/view/homeproxy/server.js:501 +#: htdocs/luci-static/resources/view/homeproxy/server.js:492 +#: htdocs/luci-static/resources/view/homeproxy/server.js:500 msgid "default" msgstr "默认" @@ -2496,7 +2482,7 @@ msgstr "gVisor" #: htdocs/luci-static/resources/homeproxy.js:248 #: htdocs/luci-static/resources/homeproxy.js:266 #: htdocs/luci-static/resources/view/homeproxy/client.js:176 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1005 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1003 #: htdocs/luci-static/resources/view/homeproxy/node.js:564 #: htdocs/luci-static/resources/view/homeproxy/node.js:1186 #: htdocs/luci-static/resources/view/homeproxy/server.js:159 @@ -2518,7 +2504,7 @@ msgstr "packet addr (v2ray-core v5+)" msgid "passed" msgstr "通过" -#: htdocs/luci-static/resources/view/homeproxy/server.js:698 +#: htdocs/luci-static/resources/view/homeproxy/server.js:697 msgid "private key" msgstr "私钥" @@ -2572,8 +2558,8 @@ msgstr "v3" msgid "valid IP address" msgstr "有效 IP 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1010 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1013 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1008 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1011 #: htdocs/luci-static/resources/view/homeproxy/node.js:1269 #: htdocs/luci-static/resources/view/homeproxy/node.js:1272 msgid "valid URL" @@ -2587,8 +2573,8 @@ msgstr "有效 地址#端口" msgid "valid base64 key with %d characters" msgstr "包含 %d 个字符的有效 base64 密钥" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1152 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1181 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1150 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1179 msgid "valid hostname" msgstr "有效主机名" diff --git a/openwrt-packages/homeproxy/root/etc/homeproxy/scripts/firewall_pre.ut b/openwrt-packages/homeproxy/root/etc/homeproxy/scripts/firewall_pre.ut index 1f8475a7d4..f53addd3bc 100755 --- a/openwrt-packages/homeproxy/root/etc/homeproxy/scripts/firewall_pre.ut +++ b/openwrt-packages/homeproxy/root/etc/homeproxy/scripts/firewall_pre.ut @@ -40,14 +40,15 @@ chain input { iifname {{ tun_name }} counter accept comment "!{{ cfgname }}: accept tun input" {% endif %} {% - uci.foreach(cfgname, 'server', (s) => { - if (s.enabled !== '1') - return; + if (auto_firewall === '1') + uci.foreach(cfgname, 'server', (s) => { + if (s.enabled !== '1') + return; - let proto = s.network || '{ tcp, udp }'; - printf(' meta l4proto %s th dport %s counter accept comment "!%s: accept server %s"\n', - proto, s.port, cfgname, s['.name']); - }); + let proto = s.network || '{ tcp, udp }'; + printf(' meta l4proto %s th dport %s counter accept comment "!%s: accept server %s"\n', + proto, s.port, cfgname, s['.name']); + }); %} } {% endif %} diff --git a/openwrt-packages/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/client.js b/openwrt-packages/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/client.js index b134019456..9602769d71 100644 --- a/openwrt-packages/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/client.js +++ b/openwrt-packages/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/client.js @@ -740,8 +740,7 @@ return view.extend({ so = ss.option(form.Value, 'client_subnet', _('EDNS Client subnet'), _('Append a edns0-subnet OPT extra record with the specified IP prefix to every query by default.
' + - 'If value is an IP address instead of prefix, /32 or /128 will be appended automatically.
' + - 'Can be overrides by rules.[].client_subnet. Will overrides dns.client_subnet.')); + 'If value is an IP address instead of prefix, /32 or /128 will be appended automatically.')); so.datatype = 'or(cidr, ipaddr)'; /* DNS servers end */ @@ -949,8 +948,7 @@ return view.extend({ so = ss.option(form.Value, 'client_subnet', _('EDNS Client subnet'), _('Append a edns0-subnet OPT extra record with the specified IP prefix to every query by default.
' + - 'If value is an IP address instead of prefix, /32 or /128 will be appended automatically.
' + - 'Will overrides dns.client_subnet and servers.[].client_subnet.')); + 'If value is an IP address instead of prefix, /32 or /128 will be appended automatically.')); so.datatype = 'or(cidr, ipaddr)'; /* DNS rules end */ /* Custom routing settings end */ diff --git a/openwrt-packages/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/server.js b/openwrt-packages/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/server.js index 69eaacadb4..b3d5f64b24 100644 --- a/openwrt-packages/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/server.js +++ b/openwrt-packages/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/server.js @@ -479,8 +479,7 @@ return view.extend({ o = s.option(form.Value, 'tls_sni', _('TLS SNI'), _('Used to verify the hostname on the returned certificates unless insecure is given.')); - o.depends({'tls': '1', 'tls_reality': '0'}); - o.depends({'tls': '1', 'tls_reality': null}); + o.depends('tls', '1'); o.modalonly = true; o = s.option(form.DynamicList, 'tls_alpn', _('TLS ALPN'), diff --git a/openwrt-packages/luci-app-homeproxy/po/templates/homeproxy.pot b/openwrt-packages/luci-app-homeproxy/po/templates/homeproxy.pot index 0cb849afd2..6c50ceca31 100644 --- a/openwrt-packages/luci-app-homeproxy/po/templates/homeproxy.pot +++ b/openwrt-packages/luci-app-homeproxy/po/templates/homeproxy.pot @@ -10,7 +10,7 @@ msgid "%s nodes removed" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:554 -#: htdocs/luci-static/resources/view/homeproxy/client.js:883 +#: htdocs/luci-static/resources/view/homeproxy/client.js:882 msgid "-- Please choose --" msgstr "" @@ -19,12 +19,12 @@ msgid "4 or 6. Not limited if empty." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1133 -#: htdocs/luci-static/resources/view/homeproxy/server.js:676 -#: htdocs/luci-static/resources/view/homeproxy/server.js:694 +#: htdocs/luci-static/resources/view/homeproxy/server.js:675 +#: htdocs/luci-static/resources/view/homeproxy/server.js:693 msgid "Save your configuration before uploading files!" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:585 +#: htdocs/luci-static/resources/view/homeproxy/server.js:584 msgid "API token" msgstr "" @@ -32,19 +32,19 @@ msgstr "" msgid "Accept any if empty." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1047 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1045 msgid "Access Control" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:570 +#: htdocs/luci-static/resources/view/homeproxy/server.js:569 msgid "Access key ID" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:575 +#: htdocs/luci-static/resources/view/homeproxy/server.js:574 msgid "Access key secret" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:758 +#: htdocs/luci-static/resources/view/homeproxy/client.js:757 msgid "Add a DNS rule" msgstr "" @@ -64,7 +64,7 @@ msgstr "" msgid "Add a routing rule" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:968 +#: htdocs/luci-static/resources/view/homeproxy/client.js:966 msgid "Add a rule set" msgstr "" @@ -85,7 +85,7 @@ msgstr "" msgid "Address strategy" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:563 +#: htdocs/luci-static/resources/view/homeproxy/server.js:562 msgid "Alibaba Cloud DNS" msgstr "" @@ -129,11 +129,11 @@ msgstr "" msgid "Alter ID" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:600 +#: htdocs/luci-static/resources/view/homeproxy/server.js:599 msgid "Alternative HTTP port" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:606 +#: htdocs/luci-static/resources/view/homeproxy/server.js:605 msgid "Alternative TLS port" msgstr "" @@ -141,33 +141,17 @@ msgstr "" msgid "An error occurred during updating subscriptions: %s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:909 +#: htdocs/luci-static/resources/view/homeproxy/client.js:908 msgid "Any" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:636 -msgid "" -"Append a edns0-subnet OPT extra record with the specified IP " -"prefix to every query by default.
If value is an IP address instead of " -"prefix, /32 or /128 will be appended automatically." -msgstr "" - #: htdocs/luci-static/resources/view/homeproxy/client.js:742 +#: htdocs/luci-static/resources/view/homeproxy/client.js:950 msgid "" "Append a edns0-subnet OPT extra record with the specified IP " "prefix to every query by default.
If value is an IP address instead of " "prefix, /32 or /128 will be appended automatically." -"
Can be overrides by rules.[].client_subnet. Will overrides " -"dns.client_subnet." -msgstr "" - -#: htdocs/luci-static/resources/view/homeproxy/client.js:951 -msgid "" -"Append a edns0-subnet OPT extra record with the specified IP " -"prefix to every query by default.
If value is an IP address instead of " -"prefix, /32 or /128 will be appended automatically." -"
Will overrides dns.client_subnet and servers.[]." -"client_subnet." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1119 @@ -234,16 +218,16 @@ msgstr "" msgid "Based on google/gvisor." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:990 +#: htdocs/luci-static/resources/view/homeproxy/client.js:988 msgid "Binary file" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:382 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1060 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1058 msgid "Bind interface" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1061 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1059 msgid "" "Bind outbound traffic to specific interface. Leave empty to auto detect." msgstr "" @@ -254,20 +238,20 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:333 #: htdocs/luci-static/resources/view/homeproxy/client.js:582 -#: htdocs/luci-static/resources/view/homeproxy/client.js:911 +#: htdocs/luci-static/resources/view/homeproxy/client.js:910 msgid "Block" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:612 -#: htdocs/luci-static/resources/view/homeproxy/client.js:929 +#: htdocs/luci-static/resources/view/homeproxy/client.js:928 msgid "Block DNS queries" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:462 #: htdocs/luci-static/resources/view/homeproxy/client.js:475 -#: htdocs/luci-static/resources/view/homeproxy/client.js:788 -#: htdocs/luci-static/resources/view/homeproxy/client.js:798 -#: htdocs/luci-static/resources/view/homeproxy/server.js:733 +#: htdocs/luci-static/resources/view/homeproxy/client.js:787 +#: htdocs/luci-static/resources/view/homeproxy/client.js:797 +#: htdocs/luci-static/resources/view/homeproxy/server.js:732 msgid "Both" msgstr "" @@ -283,7 +267,7 @@ msgstr "" msgid "Bypass mainland China traffic via firewall rules by default." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:549 +#: htdocs/luci-static/resources/view/homeproxy/server.js:548 msgid "CA provider" msgstr "" @@ -300,7 +284,7 @@ msgid "Cancel" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1125 -#: htdocs/luci-static/resources/view/homeproxy/server.js:665 +#: htdocs/luci-static/resources/view/homeproxy/server.js:664 msgid "Certificate path" msgstr "" @@ -329,7 +313,7 @@ msgid "China list version" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1111 -#: htdocs/luci-static/resources/view/homeproxy/server.js:507 +#: htdocs/luci-static/resources/view/homeproxy/server.js:506 msgid "Cipher suites" msgstr "" @@ -353,7 +337,7 @@ msgstr "" msgid "CloudFlare Public DNS (1.1.1.1)" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:564 +#: htdocs/luci-static/resources/view/homeproxy/server.js:563 msgid "Cloudflare" msgstr "" @@ -380,11 +364,11 @@ msgstr "" msgid "Custom routing" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:805 +#: htdocs/luci-static/resources/view/homeproxy/client.js:804 msgid "DNS" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:749 +#: htdocs/luci-static/resources/view/homeproxy/client.js:748 msgid "DNS Rules" msgstr "" @@ -396,11 +380,11 @@ msgstr "" msgid "DNS Settings" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:562 +#: htdocs/luci-static/resources/view/homeproxy/server.js:561 msgid "DNS provider" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:758 +#: htdocs/luci-static/resources/view/homeproxy/client.js:757 msgid "DNS rule" msgstr "" @@ -409,20 +393,20 @@ msgstr "" msgid "DNS server" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:557 +#: htdocs/luci-static/resources/view/homeproxy/server.js:556 msgid "DNS01 challenge" msgstr "" #: htdocs/luci-static/resources/homeproxy.js:17 #: htdocs/luci-static/resources/view/homeproxy/client.js:453 -#: htdocs/luci-static/resources/view/homeproxy/client.js:780 +#: htdocs/luci-static/resources/view/homeproxy/client.js:779 #: htdocs/luci-static/resources/view/homeproxy/node.js:749 msgid "Default" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:610 #: htdocs/luci-static/resources/view/homeproxy/client.js:687 -#: htdocs/luci-static/resources/view/homeproxy/client.js:927 +#: htdocs/luci-static/resources/view/homeproxy/client.js:926 msgid "Default DNS (issued by WAN)" msgstr "" @@ -446,7 +430,7 @@ msgstr "" msgid "Default packet encoding" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:528 +#: htdocs/luci-static/resources/view/homeproxy/server.js:527 msgid "Default server name" msgstr "" @@ -454,34 +438,34 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:395 #: htdocs/luci-static/resources/view/homeproxy/client.js:581 #: htdocs/luci-static/resources/view/homeproxy/client.js:729 -#: htdocs/luci-static/resources/view/homeproxy/client.js:910 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1029 +#: htdocs/luci-static/resources/view/homeproxy/client.js:909 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1027 #: htdocs/luci-static/resources/view/homeproxy/node.js:506 msgid "Direct" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1159 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1157 msgid "Direct Domain List" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1076 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1121 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1074 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1119 msgid "Direct IPv4 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1079 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1124 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1077 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1122 msgid "Direct IPv6 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1082 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1080 msgid "Direct MAC-s" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:142 #: htdocs/luci-static/resources/view/homeproxy/client.js:150 #: htdocs/luci-static/resources/view/homeproxy/client.js:331 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1070 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1068 #: htdocs/luci-static/resources/view/homeproxy/node.js:596 #: htdocs/luci-static/resources/view/homeproxy/node.js:608 #: htdocs/luci-static/resources/view/homeproxy/node.js:1165 @@ -495,7 +479,7 @@ msgstr "" msgid "Disable DNS cache" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:590 +#: htdocs/luci-static/resources/view/homeproxy/server.js:589 msgid "Disable HTTP challenge" msgstr "" @@ -504,11 +488,11 @@ msgstr "" msgid "Disable Path MTU discovery" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:595 +#: htdocs/luci-static/resources/view/homeproxy/server.js:594 msgid "Disable TLS ALPN challenge" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:941 +#: htdocs/luci-static/resources/view/homeproxy/client.js:940 msgid "Disable cache and save cache in this query." msgstr "" @@ -516,7 +500,7 @@ msgstr "" msgid "Disable cache expire" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:940 +#: htdocs/luci-static/resources/view/homeproxy/client.js:939 msgid "Disable dns cache" msgstr "" @@ -532,31 +516,31 @@ msgid "" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:486 -#: htdocs/luci-static/resources/view/homeproxy/client.js:817 +#: htdocs/luci-static/resources/view/homeproxy/client.js:816 msgid "Domain keyword" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:477 -#: htdocs/luci-static/resources/view/homeproxy/client.js:808 +#: htdocs/luci-static/resources/view/homeproxy/client.js:807 msgid "Domain name" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:490 -#: htdocs/luci-static/resources/view/homeproxy/client.js:821 +#: htdocs/luci-static/resources/view/homeproxy/client.js:820 msgid "Domain regex" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:376 -#: htdocs/luci-static/resources/view/homeproxy/server.js:724 +#: htdocs/luci-static/resources/view/homeproxy/server.js:723 msgid "Domain strategy" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:482 -#: htdocs/luci-static/resources/view/homeproxy/client.js:813 +#: htdocs/luci-static/resources/view/homeproxy/client.js:812 msgid "Domain suffix" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:522 +#: htdocs/luci-static/resources/view/homeproxy/server.js:521 msgid "Domains" msgstr "" @@ -581,7 +565,7 @@ msgstr "" msgid "Drop/keep specific nodes from subscriptions." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:613 +#: htdocs/luci-static/resources/view/homeproxy/server.js:612 msgid "" "EAB (External Account Binding) contains information necessary to bind or map " "an ACME account to some other account known by the CA.
External account " @@ -601,7 +585,7 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:635 #: htdocs/luci-static/resources/view/homeproxy/client.js:741 -#: htdocs/luci-static/resources/view/homeproxy/client.js:950 +#: htdocs/luci-static/resources/view/homeproxy/client.js:949 msgid "EDNS Client subnet" msgstr "" @@ -623,15 +607,15 @@ msgstr "" msgid "Edit nodes" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:534 +#: htdocs/luci-static/resources/view/homeproxy/server.js:533 msgid "Email" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:364 #: htdocs/luci-static/resources/view/homeproxy/client.js:440 #: htdocs/luci-static/resources/view/homeproxy/client.js:671 -#: htdocs/luci-static/resources/view/homeproxy/client.js:767 -#: htdocs/luci-static/resources/view/homeproxy/client.js:977 +#: htdocs/luci-static/resources/view/homeproxy/client.js:766 +#: htdocs/luci-static/resources/view/homeproxy/client.js:975 #: htdocs/luci-static/resources/view/homeproxy/server.js:75 #: htdocs/luci-static/resources/view/homeproxy/server.js:98 msgid "Enable" @@ -650,7 +634,7 @@ msgstr "" msgid "Enable 0-RTT handshake" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:516 +#: htdocs/luci-static/resources/view/homeproxy/server.js:515 msgid "Enable ACME" msgstr "" @@ -673,7 +657,7 @@ msgid "Enable TCP Brutal congestion control algorithm" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1223 -#: htdocs/luci-static/resources/view/homeproxy/server.js:715 +#: htdocs/luci-static/resources/view/homeproxy/server.js:714 msgid "Enable UDP fragmentation." msgstr "" @@ -686,7 +670,7 @@ msgstr "" msgid "Enable padding" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:704 +#: htdocs/luci-static/resources/view/homeproxy/server.js:703 msgid "Enable tcp fast open for listener." msgstr "" @@ -713,31 +697,31 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:206 #: htdocs/luci-static/resources/view/homeproxy/client.js:244 #: htdocs/luci-static/resources/view/homeproxy/client.js:249 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1005 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1010 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1013 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1152 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1181 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1003 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1008 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1011 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1150 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1179 #: htdocs/luci-static/resources/view/homeproxy/node.js:461 #: htdocs/luci-static/resources/view/homeproxy/node.js:564 #: htdocs/luci-static/resources/view/homeproxy/node.js:1186 #: htdocs/luci-static/resources/view/homeproxy/node.js:1269 #: htdocs/luci-static/resources/view/homeproxy/node.js:1272 #: htdocs/luci-static/resources/view/homeproxy/server.js:159 -#: htdocs/luci-static/resources/view/homeproxy/server.js:540 -#: htdocs/luci-static/resources/view/homeproxy/server.js:542 +#: htdocs/luci-static/resources/view/homeproxy/server.js:539 +#: htdocs/luci-static/resources/view/homeproxy/server.js:541 msgid "Expecting: %s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:612 +#: htdocs/luci-static/resources/view/homeproxy/server.js:611 msgid "External Account Binding" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:624 +#: htdocs/luci-static/resources/view/homeproxy/server.js:623 msgid "External account MAC key" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:619 +#: htdocs/luci-static/resources/view/homeproxy/server.js:618 msgid "External account key ID" msgstr "" @@ -758,7 +742,7 @@ msgstr "" msgid "Flow" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:988 +#: htdocs/luci-static/resources/view/homeproxy/client.js:986 msgid "Format" msgstr "" @@ -774,15 +758,15 @@ msgstr "" msgid "GFWList" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1094 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1092 msgid "Gaming mode IPv4 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1096 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1094 msgid "Gaming mode IPv6 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1099 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1097 msgid "Gaming mode MAC-s" msgstr "" @@ -799,15 +783,15 @@ msgstr "" msgid "Global padding" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1101 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1099 msgid "Global proxy IPv4 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1104 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1102 msgid "Global proxy IPv6 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1107 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1105 msgid "Global proxy MAC-s" msgstr "" @@ -828,7 +812,7 @@ msgid "Grant access to homeproxy configuration" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:467 -#: htdocs/luci-static/resources/view/homeproxy/client.js:802 +#: htdocs/luci-static/resources/view/homeproxy/client.js:801 #: htdocs/luci-static/resources/view/homeproxy/node.js:507 #: htdocs/luci-static/resources/view/homeproxy/node.js:819 #: htdocs/luci-static/resources/view/homeproxy/server.js:104 @@ -847,11 +831,11 @@ msgstr "" msgid "HTTPUpgrade" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:652 +#: htdocs/luci-static/resources/view/homeproxy/server.js:651 msgid "Handshake server address" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:658 +#: htdocs/luci-static/resources/view/homeproxy/server.js:657 msgid "Handshake server port" msgstr "" @@ -908,17 +892,17 @@ msgid "Hysteria2" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:505 -#: htdocs/luci-static/resources/view/homeproxy/client.js:845 +#: htdocs/luci-static/resources/view/homeproxy/client.js:844 msgid "IP CIDR" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:458 -#: htdocs/luci-static/resources/view/homeproxy/client.js:785 +#: htdocs/luci-static/resources/view/homeproxy/client.js:784 msgid "IP version" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:460 -#: htdocs/luci-static/resources/view/homeproxy/client.js:786 +#: htdocs/luci-static/resources/view/homeproxy/client.js:785 msgid "IPv4" msgstr "" @@ -927,7 +911,7 @@ msgid "IPv4 only" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:461 -#: htdocs/luci-static/resources/view/homeproxy/client.js:787 +#: htdocs/luci-static/resources/view/homeproxy/client.js:786 msgid "IPv6" msgstr "" @@ -950,7 +934,7 @@ msgid "" "connections." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:725 +#: htdocs/luci-static/resources/view/homeproxy/server.js:724 msgid "" "If set, the requested domain name will be resolved to IP before routing." msgstr "" @@ -992,7 +976,7 @@ msgstr "" msgid "Independent cache per server" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1053 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1051 msgid "Interface Control" msgstr "" @@ -1004,12 +988,12 @@ msgid "" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:570 -#: htdocs/luci-static/resources/view/homeproxy/client.js:898 +#: htdocs/luci-static/resources/view/homeproxy/client.js:897 msgid "Invert" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:571 -#: htdocs/luci-static/resources/view/homeproxy/client.js:899 +#: htdocs/luci-static/resources/view/homeproxy/client.js:898 msgid "Invert match result." msgstr "" @@ -1017,19 +1001,19 @@ msgstr "" msgid "It MUST support TCP query." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:683 +#: htdocs/luci-static/resources/view/homeproxy/server.js:682 msgid "Key path" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1067 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1065 msgid "LAN IP Policy" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:359 #: htdocs/luci-static/resources/view/homeproxy/client.js:435 #: htdocs/luci-static/resources/view/homeproxy/client.js:666 -#: htdocs/luci-static/resources/view/homeproxy/client.js:762 -#: htdocs/luci-static/resources/view/homeproxy/client.js:972 +#: htdocs/luci-static/resources/view/homeproxy/client.js:761 +#: htdocs/luci-static/resources/view/homeproxy/client.js:970 #: htdocs/luci-static/resources/view/homeproxy/node.js:500 #: htdocs/luci-static/resources/view/homeproxy/server.js:92 msgid "Label" @@ -1046,7 +1030,7 @@ msgstr "" msgid "Less compatibility and sometimes better performance." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:551 +#: htdocs/luci-static/resources/view/homeproxy/server.js:550 msgid "Let's Encrypt" msgstr "" @@ -1056,7 +1040,7 @@ msgid "" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1082 -#: htdocs/luci-static/resources/view/homeproxy/server.js:487 +#: htdocs/luci-static/resources/view/homeproxy/server.js:486 msgid "List of supported application level protocols, in order of preference." msgstr "" @@ -1064,7 +1048,7 @@ msgstr "" msgid "Listen address" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1055 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1053 msgid "Listen interfaces" msgstr "" @@ -1076,7 +1060,7 @@ msgstr "" msgid "Loading" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:983 +#: htdocs/luci-static/resources/view/homeproxy/client.js:981 msgid "Local" msgstr "" @@ -1104,7 +1088,7 @@ msgstr "" msgid "Main node" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:894 +#: htdocs/luci-static/resources/view/homeproxy/client.js:893 msgid "Make ipcidr in rule sets match the source IP." msgstr "" @@ -1122,7 +1106,7 @@ msgstr "" msgid "Masquerade" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:846 +#: htdocs/luci-static/resources/view/homeproxy/client.js:845 msgid "Match IP CIDR with query response." msgstr "" @@ -1131,40 +1115,40 @@ msgid "Match IP CIDR." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:483 -#: htdocs/luci-static/resources/view/homeproxy/client.js:814 +#: htdocs/luci-static/resources/view/homeproxy/client.js:813 msgid "Match domain suffix." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:487 -#: htdocs/luci-static/resources/view/homeproxy/client.js:818 +#: htdocs/luci-static/resources/view/homeproxy/client.js:817 msgid "Match domain using keyword." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:491 -#: htdocs/luci-static/resources/view/homeproxy/client.js:822 +#: htdocs/luci-static/resources/view/homeproxy/client.js:821 msgid "Match domain using regular expression." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:478 -#: htdocs/luci-static/resources/view/homeproxy/client.js:809 +#: htdocs/luci-static/resources/view/homeproxy/client.js:808 msgid "Match full domain." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:904 +#: htdocs/luci-static/resources/view/homeproxy/client.js:903 msgid "Match outbound." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:532 -#: htdocs/luci-static/resources/view/homeproxy/client.js:831 +#: htdocs/luci-static/resources/view/homeproxy/client.js:830 msgid "Match port range. Format as START:/:END/START:END." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:527 -#: htdocs/luci-static/resources/view/homeproxy/client.js:826 +#: htdocs/luci-static/resources/view/homeproxy/client.js:825 msgid "Match port." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:851 +#: htdocs/luci-static/resources/view/homeproxy/client.js:850 msgid "Match private IP with query response." msgstr "" @@ -1173,31 +1157,31 @@ msgid "Match private IP." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:500 -#: htdocs/luci-static/resources/view/homeproxy/client.js:841 +#: htdocs/luci-static/resources/view/homeproxy/client.js:840 msgid "Match private source IP." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:537 -#: htdocs/luci-static/resources/view/homeproxy/client.js:866 +#: htdocs/luci-static/resources/view/homeproxy/client.js:865 msgid "Match process name." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:541 -#: htdocs/luci-static/resources/view/homeproxy/client.js:870 +#: htdocs/luci-static/resources/view/homeproxy/client.js:869 msgid "Match process path." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:792 +#: htdocs/luci-static/resources/view/homeproxy/client.js:791 msgid "Match query type." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:549 -#: htdocs/luci-static/resources/view/homeproxy/client.js:878 +#: htdocs/luci-static/resources/view/homeproxy/client.js:877 msgid "Match rule set." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:495 -#: htdocs/luci-static/resources/view/homeproxy/client.js:836 +#: htdocs/luci-static/resources/view/homeproxy/client.js:835 msgid "Match source IP CIDR." msgstr "" @@ -1206,17 +1190,17 @@ msgid "Match source IP via rule set" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:522 -#: htdocs/luci-static/resources/view/homeproxy/client.js:861 +#: htdocs/luci-static/resources/view/homeproxy/client.js:860 msgid "Match source port range. Format as START:/:END/START:END." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:517 -#: htdocs/luci-static/resources/view/homeproxy/client.js:856 +#: htdocs/luci-static/resources/view/homeproxy/client.js:855 msgid "Match source port." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:545 -#: htdocs/luci-static/resources/view/homeproxy/client.js:874 +#: htdocs/luci-static/resources/view/homeproxy/client.js:873 msgid "Match user name." msgstr "" @@ -1230,7 +1214,7 @@ msgstr "" msgid "Max download speed in Mbps." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:647 +#: htdocs/luci-static/resources/view/homeproxy/server.js:646 msgid "Max time difference" msgstr "" @@ -1245,7 +1229,7 @@ msgid "Max upload speed in Mbps." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1103 -#: htdocs/luci-static/resources/view/homeproxy/server.js:499 +#: htdocs/luci-static/resources/view/homeproxy/server.js:498 msgid "Maximum TLS version" msgstr "" @@ -1270,7 +1254,7 @@ msgid "Method" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1095 -#: htdocs/luci-static/resources/view/homeproxy/server.js:491 +#: htdocs/luci-static/resources/view/homeproxy/server.js:490 msgid "Minimum TLS version" msgstr "" @@ -1292,12 +1276,12 @@ msgid "Mixed system TCP stack and gVisor UDP stack." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:445 -#: htdocs/luci-static/resources/view/homeproxy/client.js:772 +#: htdocs/luci-static/resources/view/homeproxy/client.js:771 msgid "Mode" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1218 -#: htdocs/luci-static/resources/view/homeproxy/server.js:709 +#: htdocs/luci-static/resources/view/homeproxy/server.js:708 msgid "MultiPath TCP" msgstr "" @@ -1328,8 +1312,8 @@ msgid "NaïveProxy" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:472 -#: htdocs/luci-static/resources/view/homeproxy/client.js:795 -#: htdocs/luci-static/resources/view/homeproxy/server.js:730 +#: htdocs/luci-static/resources/view/homeproxy/client.js:794 +#: htdocs/luci-static/resources/view/homeproxy/server.js:729 msgid "Network" msgstr "" @@ -1392,7 +1376,7 @@ msgstr "" msgid "Obfuscate type" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1056 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1054 msgid "Only process traffic from specific interfaces. Leave empty for all." msgstr "" @@ -1403,8 +1387,8 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:389 #: htdocs/luci-static/resources/view/homeproxy/client.js:575 #: htdocs/luci-static/resources/view/homeproxy/client.js:723 -#: htdocs/luci-static/resources/view/homeproxy/client.js:903 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1023 +#: htdocs/luci-static/resources/view/homeproxy/client.js:902 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1021 msgid "Outbound" msgstr "" @@ -1417,7 +1401,7 @@ msgid "Override address" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:321 -#: htdocs/luci-static/resources/view/homeproxy/server.js:720 +#: htdocs/luci-static/resources/view/homeproxy/server.js:719 msgid "Override destination" msgstr "" @@ -1426,7 +1410,7 @@ msgid "Override port" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:322 -#: htdocs/luci-static/resources/view/homeproxy/server.js:721 +#: htdocs/luci-static/resources/view/homeproxy/server.js:720 msgid "Override the connection destination address with the sniffed domain." msgstr "" @@ -1451,7 +1435,7 @@ msgstr "" msgid "Password" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:994 +#: htdocs/luci-static/resources/view/homeproxy/client.js:992 #: htdocs/luci-static/resources/view/homeproxy/node.js:879 #: htdocs/luci-static/resources/view/homeproxy/node.js:912 #: htdocs/luci-static/resources/view/homeproxy/server.js:365 @@ -1483,7 +1467,7 @@ msgid "Plugin opts" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:526 -#: htdocs/luci-static/resources/view/homeproxy/client.js:825 +#: htdocs/luci-static/resources/view/homeproxy/client.js:824 #: htdocs/luci-static/resources/view/homeproxy/node.js:530 msgid "Port" msgstr "" @@ -1493,7 +1477,7 @@ msgid "Port %s alrealy exists!" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:531 -#: htdocs/luci-static/resources/view/homeproxy/client.js:830 +#: htdocs/luci-static/resources/view/homeproxy/client.js:829 msgid "Port range" msgstr "" @@ -1510,7 +1494,7 @@ msgid "Prefer IPv6" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:510 -#: htdocs/luci-static/resources/view/homeproxy/client.js:850 +#: htdocs/luci-static/resources/view/homeproxy/client.js:849 msgid "Private IP" msgstr "" @@ -1524,22 +1508,22 @@ msgid "Private key passphrase" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:499 -#: htdocs/luci-static/resources/view/homeproxy/client.js:840 +#: htdocs/luci-static/resources/view/homeproxy/client.js:839 msgid "Private source IP" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:536 -#: htdocs/luci-static/resources/view/homeproxy/client.js:865 +#: htdocs/luci-static/resources/view/homeproxy/client.js:864 msgid "Process name" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:540 -#: htdocs/luci-static/resources/view/homeproxy/client.js:869 +#: htdocs/luci-static/resources/view/homeproxy/client.js:868 msgid "Process path" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:465 -#: htdocs/luci-static/resources/view/homeproxy/client.js:800 +#: htdocs/luci-static/resources/view/homeproxy/client.js:799 #: htdocs/luci-static/resources/view/homeproxy/node.js:584 #: htdocs/luci-static/resources/view/homeproxy/node.js:996 #: htdocs/luci-static/resources/view/homeproxy/server.js:168 @@ -1556,33 +1540,33 @@ msgid "" "default in v2ray and cannot be disabled)." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1130 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1128 msgid "Proxy Domain List" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1085 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1114 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1083 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1112 msgid "Proxy IPv4 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1088 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1117 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1086 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1115 msgid "Proxy IPv6 IP-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1091 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1089 msgid "Proxy MAC-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1072 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1070 msgid "Proxy all except listed" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1069 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1067 msgid "Proxy filter mode" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1071 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1069 msgid "Proxy listed only" msgstr "" @@ -1591,7 +1575,7 @@ msgid "Proxy mode" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:469 -#: htdocs/luci-static/resources/view/homeproxy/client.js:804 +#: htdocs/luci-static/resources/view/homeproxy/client.js:803 #: htdocs/luci-static/resources/view/homeproxy/node.js:751 #: htdocs/luci-static/resources/view/homeproxy/node.js:821 #: htdocs/luci-static/resources/view/homeproxy/server.js:323 @@ -1617,7 +1601,7 @@ msgstr "" msgid "QUIC stream receive window" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:791 +#: htdocs/luci-static/resources/view/homeproxy/client.js:790 msgid "Query type" msgstr "" @@ -1626,11 +1610,11 @@ msgid "RDRC timeout" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1197 -#: htdocs/luci-static/resources/view/homeproxy/server.js:631 +#: htdocs/luci-static/resources/view/homeproxy/server.js:630 msgid "REALITY" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:637 +#: htdocs/luci-static/resources/view/homeproxy/server.js:636 msgid "REALITY private key" msgstr "" @@ -1639,7 +1623,7 @@ msgid "REALITY public key" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1207 -#: htdocs/luci-static/resources/view/homeproxy/server.js:642 +#: htdocs/luci-static/resources/view/homeproxy/server.js:641 msgid "REALITY short ID" msgstr "" @@ -1676,11 +1660,11 @@ msgstr "" msgid "Refresh every %s seconds." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:580 +#: htdocs/luci-static/resources/view/homeproxy/server.js:579 msgid "Region ID" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:984 +#: htdocs/luci-static/resources/view/homeproxy/client.js:982 msgid "Remote" msgstr "" @@ -1704,11 +1688,11 @@ msgstr "" msgid "Resources management" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:945 +#: htdocs/luci-static/resources/view/homeproxy/client.js:944 msgid "Rewrite TTL" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:946 +#: htdocs/luci-static/resources/view/homeproxy/client.js:945 msgid "Rewrite TTL in DNS responses." msgstr "" @@ -1741,17 +1725,17 @@ msgid "Routing rule" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:548 -#: htdocs/luci-static/resources/view/homeproxy/client.js:877 -#: htdocs/luci-static/resources/view/homeproxy/client.js:959 -#: htdocs/luci-static/resources/view/homeproxy/client.js:968 +#: htdocs/luci-static/resources/view/homeproxy/client.js:876 +#: htdocs/luci-static/resources/view/homeproxy/client.js:957 +#: htdocs/luci-static/resources/view/homeproxy/client.js:966 msgid "Rule set" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:893 +#: htdocs/luci-static/resources/view/homeproxy/client.js:892 msgid "Rule set IP CIDR as source IP" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1001 +#: htdocs/luci-static/resources/view/homeproxy/client.js:999 msgid "Rule set URL" msgstr "" @@ -1760,7 +1744,7 @@ msgid "SSH" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:470 -#: htdocs/luci-static/resources/view/homeproxy/client.js:806 +#: htdocs/luci-static/resources/view/homeproxy/client.js:805 msgid "STUN" msgstr "" @@ -1785,7 +1769,7 @@ msgstr "" msgid "Save subscriptions settings" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:921 +#: htdocs/luci-static/resources/view/homeproxy/client.js:920 #: htdocs/luci-static/resources/view/homeproxy/server.js:88 msgid "Server" msgstr "" @@ -1794,7 +1778,7 @@ msgstr "" msgid "Server Settings" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:529 +#: htdocs/luci-static/resources/view/homeproxy/server.js:528 msgid "" "Server name to use when choosing a certificate if the ClientHello's " "ServerName field is empty." @@ -1822,7 +1806,7 @@ msgid "Shadowsocks" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:466 -#: htdocs/luci-static/resources/view/homeproxy/client.js:801 +#: htdocs/luci-static/resources/view/homeproxy/client.js:800 msgid "" "Sniffed protocol, see Sniff for details." @@ -1850,21 +1834,21 @@ msgid "Socks5" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:494 -#: htdocs/luci-static/resources/view/homeproxy/client.js:835 +#: htdocs/luci-static/resources/view/homeproxy/client.js:834 msgid "Source IP CIDR" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:989 +#: htdocs/luci-static/resources/view/homeproxy/client.js:987 msgid "Source file" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:516 -#: htdocs/luci-static/resources/view/homeproxy/client.js:855 +#: htdocs/luci-static/resources/view/homeproxy/client.js:854 msgid "Source port" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:521 -#: htdocs/luci-static/resources/view/homeproxy/client.js:860 +#: htdocs/luci-static/resources/view/homeproxy/client.js:859 msgid "Source port range" msgstr "" @@ -1944,18 +1928,18 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:611 #: htdocs/luci-static/resources/view/homeproxy/client.js:688 -#: htdocs/luci-static/resources/view/homeproxy/client.js:928 +#: htdocs/luci-static/resources/view/homeproxy/client.js:927 msgid "System DNS" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:473 -#: htdocs/luci-static/resources/view/homeproxy/client.js:796 -#: htdocs/luci-static/resources/view/homeproxy/server.js:731 +#: htdocs/luci-static/resources/view/homeproxy/client.js:795 +#: htdocs/luci-static/resources/view/homeproxy/server.js:730 msgid "TCP" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1214 -#: htdocs/luci-static/resources/view/homeproxy/server.js:703 +#: htdocs/luci-static/resources/view/homeproxy/server.js:702 msgid "TCP fast open" msgstr "" @@ -1968,14 +1952,14 @@ msgid "TCP/IP stack." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:468 -#: htdocs/luci-static/resources/view/homeproxy/client.js:803 +#: htdocs/luci-static/resources/view/homeproxy/client.js:802 #: htdocs/luci-static/resources/view/homeproxy/node.js:1049 #: htdocs/luci-static/resources/view/homeproxy/server.js:453 msgid "TLS" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1081 -#: htdocs/luci-static/resources/view/homeproxy/server.js:486 +#: htdocs/luci-static/resources/view/homeproxy/server.js:485 msgid "TLS ALPN" msgstr "" @@ -1999,11 +1983,11 @@ msgstr "" msgid "Tag of an outbound for connecting to the dns server." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1024 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1022 msgid "Tag of the outbound to download rule set." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:922 +#: htdocs/luci-static/resources/view/homeproxy/client.js:921 msgid "Tag of the target dns server." msgstr "" @@ -2021,7 +2005,7 @@ msgstr "" msgid "Tencent Public DNS (119.29.29.29)" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:550 +#: htdocs/luci-static/resources/view/homeproxy/server.js:549 msgid "The ACME CA provider to use." msgstr "" @@ -2043,13 +2027,13 @@ msgstr "" msgid "The address of the dns server. Support UDP, TCP, DoT, DoH and RCode." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:601 +#: htdocs/luci-static/resources/view/homeproxy/server.js:600 msgid "" "The alternate port to use for the ACME HTTP challenge; if non-empty, this " "port will be used instead of 80 to spin up a listener for the HTTP challenge." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:607 +#: htdocs/luci-static/resources/view/homeproxy/server.js:606 msgid "" "The alternate port to use for the ACME TLS-ALPN challenge; the system must " "forward 443 to this port for challenge to succeed." @@ -2066,7 +2050,7 @@ msgid "" "than as a single rule sub-item." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:773 +#: htdocs/luci-static/resources/view/homeproxy/client.js:772 msgid "" "The default rule uses the following matching logic:
(domain || " "domain_suffix || domain_keyword || domain_regex) &&
(port " @@ -2083,20 +2067,20 @@ msgid "" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1112 -#: htdocs/luci-static/resources/view/homeproxy/server.js:508 +#: htdocs/luci-static/resources/view/homeproxy/server.js:507 msgid "" "The elliptic curves that will be used in an ECDHE handshake, in preference " "order. If empty, the default will be used." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:535 +#: htdocs/luci-static/resources/view/homeproxy/server.js:534 msgid "" "The email address to use when creating or selecting an existing ACME server " "account." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1104 -#: htdocs/luci-static/resources/view/homeproxy/server.js:500 +#: htdocs/luci-static/resources/view/homeproxy/server.js:499 msgid "The maximum TLS version that is acceptable." msgstr "" @@ -2106,12 +2090,12 @@ msgid "" "allowed to open." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:648 +#: htdocs/luci-static/resources/view/homeproxy/server.js:647 msgid "The maximum time difference between the server and the client." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1096 -#: htdocs/luci-static/resources/view/homeproxy/server.js:492 +#: htdocs/luci-static/resources/view/homeproxy/server.js:491 msgid "The minimum TLS version that is acceptable." msgstr "" @@ -2132,11 +2116,11 @@ msgstr "" msgid "The port must be unique." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:684 +#: htdocs/luci-static/resources/view/homeproxy/server.js:683 msgid "The server private key, in PEM format." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:666 +#: htdocs/luci-static/resources/view/homeproxy/server.js:665 msgid "The server public key, in PEM format." msgstr "" @@ -2203,20 +2187,20 @@ msgstr "" msgid "Tun TCP/UDP" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:982 +#: htdocs/luci-static/resources/view/homeproxy/client.js:980 #: htdocs/luci-static/resources/view/homeproxy/node.js:505 #: htdocs/luci-static/resources/view/homeproxy/server.js:103 msgid "Type" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:474 -#: htdocs/luci-static/resources/view/homeproxy/client.js:797 -#: htdocs/luci-static/resources/view/homeproxy/server.js:732 +#: htdocs/luci-static/resources/view/homeproxy/client.js:796 +#: htdocs/luci-static/resources/view/homeproxy/server.js:731 msgid "UDP" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1222 -#: htdocs/luci-static/resources/view/homeproxy/server.js:714 +#: htdocs/luci-static/resources/view/homeproxy/server.js:713 msgid "UDP Fragment" msgstr "" @@ -2261,11 +2245,11 @@ msgstr "" msgid "Update failed." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1041 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1039 msgid "Update interval" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1042 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1040 msgid "Update interval of rule set.
1d will be used if empty." msgstr "" @@ -2296,21 +2280,21 @@ msgid "Upload bandwidth in Mbps." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1132 -#: htdocs/luci-static/resources/view/homeproxy/server.js:675 +#: htdocs/luci-static/resources/view/homeproxy/server.js:674 msgid "Upload certificate" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:693 +#: htdocs/luci-static/resources/view/homeproxy/server.js:692 msgid "Upload key" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1135 -#: htdocs/luci-static/resources/view/homeproxy/server.js:678 -#: htdocs/luci-static/resources/view/homeproxy/server.js:696 +#: htdocs/luci-static/resources/view/homeproxy/server.js:677 +#: htdocs/luci-static/resources/view/homeproxy/server.js:695 msgid "Upload..." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:517 +#: htdocs/luci-static/resources/view/homeproxy/server.js:516 msgid "Use ACME TLS certificate issuer." msgstr "" @@ -2322,7 +2306,7 @@ msgid "" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:544 -#: htdocs/luci-static/resources/view/homeproxy/client.js:873 +#: htdocs/luci-static/resources/view/homeproxy/client.js:872 msgid "User" msgstr "" @@ -2346,7 +2330,7 @@ msgstr "" msgid "WAN DNS (read from interface)" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1112 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1110 msgid "WAN IP Policy" msgstr "" @@ -2393,19 +2377,19 @@ msgstr "" msgid "Your %s was successfully uploaded. Size: %sB." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:552 +#: htdocs/luci-static/resources/view/homeproxy/server.js:551 msgid "ZeroSSL" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1137 -#: htdocs/luci-static/resources/view/homeproxy/server.js:680 +#: htdocs/luci-static/resources/view/homeproxy/server.js:679 msgid "certificate" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1097 #: htdocs/luci-static/resources/view/homeproxy/node.js:1105 -#: htdocs/luci-static/resources/view/homeproxy/server.js:493 -#: htdocs/luci-static/resources/view/homeproxy/server.js:501 +#: htdocs/luci-static/resources/view/homeproxy/server.js:492 +#: htdocs/luci-static/resources/view/homeproxy/server.js:500 msgid "default" msgstr "" @@ -2434,7 +2418,7 @@ msgstr "" #: htdocs/luci-static/resources/homeproxy.js:248 #: htdocs/luci-static/resources/homeproxy.js:266 #: htdocs/luci-static/resources/view/homeproxy/client.js:176 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1005 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1003 #: htdocs/luci-static/resources/view/homeproxy/node.js:564 #: htdocs/luci-static/resources/view/homeproxy/node.js:1186 #: htdocs/luci-static/resources/view/homeproxy/server.js:159 @@ -2456,7 +2440,7 @@ msgstr "" msgid "passed" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:698 +#: htdocs/luci-static/resources/view/homeproxy/server.js:697 msgid "private key" msgstr "" @@ -2509,8 +2493,8 @@ msgstr "" msgid "valid IP address" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1010 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1013 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1008 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1011 #: htdocs/luci-static/resources/view/homeproxy/node.js:1269 #: htdocs/luci-static/resources/view/homeproxy/node.js:1272 msgid "valid URL" @@ -2524,8 +2508,8 @@ msgstr "" msgid "valid base64 key with %d characters" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1152 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1181 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1150 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1179 msgid "valid hostname" msgstr "" diff --git a/openwrt-packages/luci-app-homeproxy/po/zh_Hans/homeproxy.po b/openwrt-packages/luci-app-homeproxy/po/zh_Hans/homeproxy.po index c32e6d1164..c144302f6a 100644 --- a/openwrt-packages/luci-app-homeproxy/po/zh_Hans/homeproxy.po +++ b/openwrt-packages/luci-app-homeproxy/po/zh_Hans/homeproxy.po @@ -17,7 +17,7 @@ msgid "%s nodes removed" msgstr "移除了 %s 个节点" #: htdocs/luci-static/resources/view/homeproxy/client.js:554 -#: htdocs/luci-static/resources/view/homeproxy/client.js:883 +#: htdocs/luci-static/resources/view/homeproxy/client.js:882 msgid "-- Please choose --" msgstr "-- 请选择 --" @@ -26,12 +26,12 @@ msgid "4 or 6. Not limited if empty." msgstr "4 或 6。留空不限制。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1133 -#: htdocs/luci-static/resources/view/homeproxy/server.js:676 -#: htdocs/luci-static/resources/view/homeproxy/server.js:694 +#: htdocs/luci-static/resources/view/homeproxy/server.js:675 +#: htdocs/luci-static/resources/view/homeproxy/server.js:693 msgid "Save your configuration before uploading files!" msgstr "上传文件前请先保存配置!" -#: htdocs/luci-static/resources/view/homeproxy/server.js:585 +#: htdocs/luci-static/resources/view/homeproxy/server.js:584 msgid "API token" msgstr "API 令牌" @@ -39,19 +39,19 @@ msgstr "API 令牌" msgid "Accept any if empty." msgstr "留空则不校验。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1047 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1045 msgid "Access Control" msgstr "访问控制" -#: htdocs/luci-static/resources/view/homeproxy/server.js:570 +#: htdocs/luci-static/resources/view/homeproxy/server.js:569 msgid "Access key ID" msgstr "访问密钥 ID" -#: htdocs/luci-static/resources/view/homeproxy/server.js:575 +#: htdocs/luci-static/resources/view/homeproxy/server.js:574 msgid "Access key secret" msgstr "访问密钥" -#: htdocs/luci-static/resources/view/homeproxy/client.js:758 +#: htdocs/luci-static/resources/view/homeproxy/client.js:757 msgid "Add a DNS rule" msgstr "新增 DNS 规则" @@ -71,7 +71,7 @@ msgstr "新增路由节点" msgid "Add a routing rule" msgstr "新增路由规则" -#: htdocs/luci-static/resources/view/homeproxy/client.js:968 +#: htdocs/luci-static/resources/view/homeproxy/client.js:966 msgid "Add a rule set" msgstr "新增规则集" @@ -92,7 +92,7 @@ msgstr "地址解析器" msgid "Address strategy" msgstr "地址解析策略" -#: htdocs/luci-static/resources/view/homeproxy/server.js:563 +#: htdocs/luci-static/resources/view/homeproxy/server.js:562 msgid "Alibaba Cloud DNS" msgstr "阿里云 DNS" @@ -136,11 +136,11 @@ msgstr "已在更新中。" msgid "Alter ID" msgstr "额外 ID" -#: htdocs/luci-static/resources/view/homeproxy/server.js:600 +#: htdocs/luci-static/resources/view/homeproxy/server.js:599 msgid "Alternative HTTP port" msgstr "替代 HTTP 端口" -#: htdocs/luci-static/resources/view/homeproxy/server.js:606 +#: htdocs/luci-static/resources/view/homeproxy/server.js:605 msgid "Alternative TLS port" msgstr "替代 HTTPS 端口" @@ -148,34 +148,20 @@ msgstr "替代 HTTPS 端口" msgid "An error occurred during updating subscriptions: %s" msgstr "更新订阅时发生错误:%s" -#: htdocs/luci-static/resources/view/homeproxy/client.js:909 +#: htdocs/luci-static/resources/view/homeproxy/client.js:908 msgid "Any" msgstr "任何" #: htdocs/luci-static/resources/view/homeproxy/client.js:636 -msgid "" -"Append a edns0-subnet OPT extra record with the specified IP " -"prefix to every query by default.
If value is an IP address instead of " -"prefix, /32 or /128 will be appended automatically." -msgstr "" - #: htdocs/luci-static/resources/view/homeproxy/client.js:742 +#: htdocs/luci-static/resources/view/homeproxy/client.js:950 msgid "" "Append a edns0-subnet OPT extra record with the specified IP " "prefix to every query by default.
If value is an IP address instead of " "prefix, /32 or /128 will be appended automatically." -"
Can be overrides by rules.[].client_subnet. Will overrides " -"dns.client_subnet." -msgstr "" - -#: htdocs/luci-static/resources/view/homeproxy/client.js:951 -msgid "" -"Append a edns0-subnet OPT extra record with the specified IP " -"prefix to every query by default.
If value is an IP address instead of " -"prefix, /32 or /128 will be appended automatically." -"
Will overrides dns.client_subnet and servers.[]." -"client_subnet." msgstr "" +"将带有指定 IP 前缀的 edns0-subnet OPT 记录附加到每个查询。如果值" +"是 IP 地址而不是前缀,则会自动添加 /32/128。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1119 msgid "Append self-signed certificate" @@ -241,16 +227,16 @@ msgstr "Base64" msgid "Based on google/gvisor." msgstr "基于 google/gvisor。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:990 +#: htdocs/luci-static/resources/view/homeproxy/client.js:988 msgid "Binary file" msgstr "二进制文件" #: htdocs/luci-static/resources/view/homeproxy/client.js:382 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1060 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1058 msgid "Bind interface" msgstr "绑定接口" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1061 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1059 msgid "" "Bind outbound traffic to specific interface. Leave empty to auto detect." msgstr "绑定出站流量至指定端口。留空自动检测。" @@ -261,20 +247,20 @@ msgstr "黑名单模式" #: htdocs/luci-static/resources/view/homeproxy/client.js:333 #: htdocs/luci-static/resources/view/homeproxy/client.js:582 -#: htdocs/luci-static/resources/view/homeproxy/client.js:911 +#: htdocs/luci-static/resources/view/homeproxy/client.js:910 msgid "Block" msgstr "封锁" #: htdocs/luci-static/resources/view/homeproxy/client.js:612 -#: htdocs/luci-static/resources/view/homeproxy/client.js:929 +#: htdocs/luci-static/resources/view/homeproxy/client.js:928 msgid "Block DNS queries" msgstr "封锁 DNS 请求" #: htdocs/luci-static/resources/view/homeproxy/client.js:462 #: htdocs/luci-static/resources/view/homeproxy/client.js:475 -#: htdocs/luci-static/resources/view/homeproxy/client.js:788 -#: htdocs/luci-static/resources/view/homeproxy/client.js:798 -#: htdocs/luci-static/resources/view/homeproxy/server.js:733 +#: htdocs/luci-static/resources/view/homeproxy/client.js:787 +#: htdocs/luci-static/resources/view/homeproxy/client.js:797 +#: htdocs/luci-static/resources/view/homeproxy/server.js:732 msgid "Both" msgstr "全部" @@ -290,7 +276,7 @@ msgstr "大陆白名单" msgid "Bypass mainland China traffic via firewall rules by default." msgstr "默认使用防火墙规则绕过中国大陆流量。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:549 +#: htdocs/luci-static/resources/view/homeproxy/server.js:548 msgid "CA provider" msgstr "CA 颁发机构" @@ -307,7 +293,7 @@ msgid "Cancel" msgstr "取消" #: htdocs/luci-static/resources/view/homeproxy/node.js:1125 -#: htdocs/luci-static/resources/view/homeproxy/server.js:665 +#: htdocs/luci-static/resources/view/homeproxy/server.js:664 msgid "Certificate path" msgstr "证书路径" @@ -336,7 +322,7 @@ msgid "China list version" msgstr "大陆域名列表版本" #: htdocs/luci-static/resources/view/homeproxy/node.js:1111 -#: htdocs/luci-static/resources/view/homeproxy/server.js:507 +#: htdocs/luci-static/resources/view/homeproxy/server.js:506 msgid "Cipher suites" msgstr "密码套件" @@ -360,7 +346,7 @@ msgstr "客户端版本" msgid "CloudFlare Public DNS (1.1.1.1)" msgstr "CloudFlare 公共 DNS(1.1.1.1)" -#: htdocs/luci-static/resources/view/homeproxy/server.js:564 +#: htdocs/luci-static/resources/view/homeproxy/server.js:563 msgid "Cloudflare" msgstr "Cloudflare" @@ -387,11 +373,11 @@ msgstr "连接检查" msgid "Custom routing" msgstr "自定义路由" -#: htdocs/luci-static/resources/view/homeproxy/client.js:805 +#: htdocs/luci-static/resources/view/homeproxy/client.js:804 msgid "DNS" msgstr "DNS" -#: htdocs/luci-static/resources/view/homeproxy/client.js:749 +#: htdocs/luci-static/resources/view/homeproxy/client.js:748 msgid "DNS Rules" msgstr "DNS 规则" @@ -403,11 +389,11 @@ msgstr "DNS 服务器" msgid "DNS Settings" msgstr "DNS 设置" -#: htdocs/luci-static/resources/view/homeproxy/server.js:562 +#: htdocs/luci-static/resources/view/homeproxy/server.js:561 msgid "DNS provider" msgstr "DNS 提供商" -#: htdocs/luci-static/resources/view/homeproxy/client.js:758 +#: htdocs/luci-static/resources/view/homeproxy/client.js:757 msgid "DNS rule" msgstr "DNS 规则" @@ -416,20 +402,20 @@ msgstr "DNS 规则" msgid "DNS server" msgstr "DNS 服务器" -#: htdocs/luci-static/resources/view/homeproxy/server.js:557 +#: htdocs/luci-static/resources/view/homeproxy/server.js:556 msgid "DNS01 challenge" msgstr "DNS01 验证" #: htdocs/luci-static/resources/homeproxy.js:17 #: htdocs/luci-static/resources/view/homeproxy/client.js:453 -#: htdocs/luci-static/resources/view/homeproxy/client.js:780 +#: htdocs/luci-static/resources/view/homeproxy/client.js:779 #: htdocs/luci-static/resources/view/homeproxy/node.js:749 msgid "Default" msgstr "默认" #: htdocs/luci-static/resources/view/homeproxy/client.js:610 #: htdocs/luci-static/resources/view/homeproxy/client.js:687 -#: htdocs/luci-static/resources/view/homeproxy/client.js:927 +#: htdocs/luci-static/resources/view/homeproxy/client.js:926 msgid "Default DNS (issued by WAN)" msgstr "默认 DNS(由 WAN 下发)" @@ -453,7 +439,7 @@ msgstr "默认出站" msgid "Default packet encoding" msgstr "默认包封装格式" -#: htdocs/luci-static/resources/view/homeproxy/server.js:528 +#: htdocs/luci-static/resources/view/homeproxy/server.js:527 msgid "Default server name" msgstr "默认服务器名称" @@ -461,34 +447,34 @@ msgstr "默认服务器名称" #: htdocs/luci-static/resources/view/homeproxy/client.js:395 #: htdocs/luci-static/resources/view/homeproxy/client.js:581 #: htdocs/luci-static/resources/view/homeproxy/client.js:729 -#: htdocs/luci-static/resources/view/homeproxy/client.js:910 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1029 +#: htdocs/luci-static/resources/view/homeproxy/client.js:909 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1027 #: htdocs/luci-static/resources/view/homeproxy/node.js:506 msgid "Direct" msgstr "直连" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1159 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1157 msgid "Direct Domain List" msgstr "直连域名列表" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1076 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1121 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1074 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1119 msgid "Direct IPv4 IP-s" msgstr "直连 IPv4 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1079 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1124 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1077 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1122 msgid "Direct IPv6 IP-s" msgstr "直连 IPv6 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1082 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1080 msgid "Direct MAC-s" msgstr "直连 MAC 地址" #: htdocs/luci-static/resources/view/homeproxy/client.js:142 #: htdocs/luci-static/resources/view/homeproxy/client.js:150 #: htdocs/luci-static/resources/view/homeproxy/client.js:331 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1070 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1068 #: htdocs/luci-static/resources/view/homeproxy/node.js:596 #: htdocs/luci-static/resources/view/homeproxy/node.js:608 #: htdocs/luci-static/resources/view/homeproxy/node.js:1165 @@ -502,7 +488,7 @@ msgstr "禁用" msgid "Disable DNS cache" msgstr "禁用 DNS 缓存" -#: htdocs/luci-static/resources/view/homeproxy/server.js:590 +#: htdocs/luci-static/resources/view/homeproxy/server.js:589 msgid "Disable HTTP challenge" msgstr "禁用 HTTP 验证" @@ -511,11 +497,11 @@ msgstr "禁用 HTTP 验证" msgid "Disable Path MTU discovery" msgstr "禁用路径 MTU 探测" -#: htdocs/luci-static/resources/view/homeproxy/server.js:595 +#: htdocs/luci-static/resources/view/homeproxy/server.js:594 msgid "Disable TLS ALPN challenge" msgstr "禁用 TLS ALPN 认证" -#: htdocs/luci-static/resources/view/homeproxy/client.js:941 +#: htdocs/luci-static/resources/view/homeproxy/client.js:940 msgid "Disable cache and save cache in this query." msgstr "在本次查询中禁用缓存。" @@ -523,7 +509,7 @@ msgstr "在本次查询中禁用缓存。" msgid "Disable cache expire" msgstr "缓存永不过期" -#: htdocs/luci-static/resources/view/homeproxy/client.js:940 +#: htdocs/luci-static/resources/view/homeproxy/client.js:939 msgid "Disable dns cache" msgstr "禁用 DNS 缓存" @@ -541,31 +527,31 @@ msgstr "" "字节。" #: htdocs/luci-static/resources/view/homeproxy/client.js:486 -#: htdocs/luci-static/resources/view/homeproxy/client.js:817 +#: htdocs/luci-static/resources/view/homeproxy/client.js:816 msgid "Domain keyword" msgstr "域名关键词" #: htdocs/luci-static/resources/view/homeproxy/client.js:477 -#: htdocs/luci-static/resources/view/homeproxy/client.js:808 +#: htdocs/luci-static/resources/view/homeproxy/client.js:807 msgid "Domain name" msgstr "域名" #: htdocs/luci-static/resources/view/homeproxy/client.js:490 -#: htdocs/luci-static/resources/view/homeproxy/client.js:821 +#: htdocs/luci-static/resources/view/homeproxy/client.js:820 msgid "Domain regex" msgstr "域名正则表达式" #: htdocs/luci-static/resources/view/homeproxy/client.js:376 -#: htdocs/luci-static/resources/view/homeproxy/server.js:724 +#: htdocs/luci-static/resources/view/homeproxy/server.js:723 msgid "Domain strategy" msgstr "域名解析策略" #: htdocs/luci-static/resources/view/homeproxy/client.js:482 -#: htdocs/luci-static/resources/view/homeproxy/client.js:813 +#: htdocs/luci-static/resources/view/homeproxy/client.js:812 msgid "Domain suffix" msgstr "域名后缀" -#: htdocs/luci-static/resources/view/homeproxy/server.js:522 +#: htdocs/luci-static/resources/view/homeproxy/server.js:521 msgid "Domains" msgstr "域名" @@ -593,7 +579,7 @@ msgstr "" msgid "Drop/keep specific nodes from subscriptions." msgstr "从订阅中 丢弃/保留 指定节点" -#: htdocs/luci-static/resources/view/homeproxy/server.js:613 +#: htdocs/luci-static/resources/view/homeproxy/server.js:612 msgid "" "EAB (External Account Binding) contains information necessary to bind or map " "an ACME account to some other account known by the CA.
External account " @@ -618,9 +604,9 @@ msgstr "ECH 配置" #: htdocs/luci-static/resources/view/homeproxy/client.js:635 #: htdocs/luci-static/resources/view/homeproxy/client.js:741 -#: htdocs/luci-static/resources/view/homeproxy/client.js:950 +#: htdocs/luci-static/resources/view/homeproxy/client.js:949 msgid "EDNS Client subnet" -msgstr "" +msgstr "ENDS 客户端子网" #: htdocs/luci-static/resources/view/homeproxy/node.js:916 #: htdocs/luci-static/resources/view/homeproxy/server.js:399 @@ -640,15 +626,15 @@ msgstr "前置数据默认发送在路径而不是标头中。" msgid "Edit nodes" msgstr "修改节点" -#: htdocs/luci-static/resources/view/homeproxy/server.js:534 +#: htdocs/luci-static/resources/view/homeproxy/server.js:533 msgid "Email" msgstr "Email" #: htdocs/luci-static/resources/view/homeproxy/client.js:364 #: htdocs/luci-static/resources/view/homeproxy/client.js:440 #: htdocs/luci-static/resources/view/homeproxy/client.js:671 -#: htdocs/luci-static/resources/view/homeproxy/client.js:767 -#: htdocs/luci-static/resources/view/homeproxy/client.js:977 +#: htdocs/luci-static/resources/view/homeproxy/client.js:766 +#: htdocs/luci-static/resources/view/homeproxy/client.js:975 #: htdocs/luci-static/resources/view/homeproxy/server.js:75 #: htdocs/luci-static/resources/view/homeproxy/server.js:98 msgid "Enable" @@ -669,7 +655,7 @@ msgstr "" msgid "Enable 0-RTT handshake" msgstr "启用 0-RTT 握手" -#: htdocs/luci-static/resources/view/homeproxy/server.js:516 +#: htdocs/luci-static/resources/view/homeproxy/server.js:515 msgid "Enable ACME" msgstr "启用 ACME" @@ -692,7 +678,7 @@ msgid "Enable TCP Brutal congestion control algorithm" msgstr "启用 TCP Brutal 拥塞控制算法。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1223 -#: htdocs/luci-static/resources/view/homeproxy/server.js:715 +#: htdocs/luci-static/resources/view/homeproxy/server.js:714 msgid "Enable UDP fragmentation." msgstr "启用 UDP 分片。" @@ -705,7 +691,7 @@ msgstr "启用端点独立 NAT" msgid "Enable padding" msgstr "启用填充" -#: htdocs/luci-static/resources/view/homeproxy/server.js:704 +#: htdocs/luci-static/resources/view/homeproxy/server.js:703 msgid "Enable tcp fast open for listener." msgstr "为监听器启用 TCP 快速打开。" @@ -732,31 +718,31 @@ msgstr "加密方式" #: htdocs/luci-static/resources/view/homeproxy/client.js:206 #: htdocs/luci-static/resources/view/homeproxy/client.js:244 #: htdocs/luci-static/resources/view/homeproxy/client.js:249 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1005 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1010 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1013 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1152 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1181 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1003 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1008 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1011 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1150 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1179 #: htdocs/luci-static/resources/view/homeproxy/node.js:461 #: htdocs/luci-static/resources/view/homeproxy/node.js:564 #: htdocs/luci-static/resources/view/homeproxy/node.js:1186 #: htdocs/luci-static/resources/view/homeproxy/node.js:1269 #: htdocs/luci-static/resources/view/homeproxy/node.js:1272 #: htdocs/luci-static/resources/view/homeproxy/server.js:159 -#: htdocs/luci-static/resources/view/homeproxy/server.js:540 -#: htdocs/luci-static/resources/view/homeproxy/server.js:542 +#: htdocs/luci-static/resources/view/homeproxy/server.js:539 +#: htdocs/luci-static/resources/view/homeproxy/server.js:541 msgid "Expecting: %s" msgstr "请输入:%s" -#: htdocs/luci-static/resources/view/homeproxy/server.js:612 +#: htdocs/luci-static/resources/view/homeproxy/server.js:611 msgid "External Account Binding" msgstr "外部账户绑定" -#: htdocs/luci-static/resources/view/homeproxy/server.js:624 +#: htdocs/luci-static/resources/view/homeproxy/server.js:623 msgid "External account MAC key" msgstr "外部账户 MAC 密钥" -#: htdocs/luci-static/resources/view/homeproxy/server.js:619 +#: htdocs/luci-static/resources/view/homeproxy/server.js:618 msgid "External account key ID" msgstr "外部账户密钥标识符" @@ -777,7 +763,7 @@ msgstr "过滤节点" msgid "Flow" msgstr "流控" -#: htdocs/luci-static/resources/view/homeproxy/client.js:988 +#: htdocs/luci-static/resources/view/homeproxy/client.js:986 msgid "Format" msgstr "格式" @@ -793,15 +779,15 @@ msgstr "GFW 域名列表版本" msgid "GFWList" msgstr "GFWList" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1094 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1092 msgid "Gaming mode IPv4 IP-s" msgstr "游戏模式 IPv4 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1096 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1094 msgid "Gaming mode IPv6 IP-s" msgstr "游戏模式 IPv6 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1099 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1097 msgid "Gaming mode MAC-s" msgstr "游戏模式 MAC 地址" @@ -818,15 +804,15 @@ msgstr "全局" msgid "Global padding" msgstr "全局填充" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1101 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1099 msgid "Global proxy IPv4 IP-s" msgstr "全局代理 IPv4 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1104 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1102 msgid "Global proxy IPv6 IP-s" msgstr "全局代理 IPv6 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1107 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1105 msgid "Global proxy MAC-s" msgstr "全局代理 MAC 地址" @@ -847,7 +833,7 @@ msgid "Grant access to homeproxy configuration" msgstr "授予 homeproxy 访问 UCI 配置的权限" #: htdocs/luci-static/resources/view/homeproxy/client.js:467 -#: htdocs/luci-static/resources/view/homeproxy/client.js:802 +#: htdocs/luci-static/resources/view/homeproxy/client.js:801 #: htdocs/luci-static/resources/view/homeproxy/node.js:507 #: htdocs/luci-static/resources/view/homeproxy/node.js:819 #: htdocs/luci-static/resources/view/homeproxy/server.js:104 @@ -866,11 +852,11 @@ msgstr "身份验证失败时的 HTTP3 服务器响应。默认返回 404 页面 msgid "HTTPUpgrade" msgstr "HTTPUpgrade" -#: htdocs/luci-static/resources/view/homeproxy/server.js:652 +#: htdocs/luci-static/resources/view/homeproxy/server.js:651 msgid "Handshake server address" msgstr "握手服务器地址" -#: htdocs/luci-static/resources/view/homeproxy/server.js:658 +#: htdocs/luci-static/resources/view/homeproxy/server.js:657 msgid "Handshake server port" msgstr "握手服务器端口" @@ -927,17 +913,17 @@ msgid "Hysteria2" msgstr "Hysteria2" #: htdocs/luci-static/resources/view/homeproxy/client.js:505 -#: htdocs/luci-static/resources/view/homeproxy/client.js:845 +#: htdocs/luci-static/resources/view/homeproxy/client.js:844 msgid "IP CIDR" msgstr "IP CIDR" #: htdocs/luci-static/resources/view/homeproxy/client.js:458 -#: htdocs/luci-static/resources/view/homeproxy/client.js:785 +#: htdocs/luci-static/resources/view/homeproxy/client.js:784 msgid "IP version" msgstr "IP 版本" #: htdocs/luci-static/resources/view/homeproxy/client.js:460 -#: htdocs/luci-static/resources/view/homeproxy/client.js:786 +#: htdocs/luci-static/resources/view/homeproxy/client.js:785 msgid "IPv4" msgstr "IPv4" @@ -946,7 +932,7 @@ msgid "IPv4 only" msgstr "仅 IPv4" #: htdocs/luci-static/resources/view/homeproxy/client.js:461 -#: htdocs/luci-static/resources/view/homeproxy/client.js:787 +#: htdocs/luci-static/resources/view/homeproxy/client.js:786 msgid "IPv6" msgstr "IPv6" @@ -969,7 +955,7 @@ msgid "" "connections." msgstr "如果启用,客户端传输即使没有活动连接也会发送 keepalive ping。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:725 +#: htdocs/luci-static/resources/view/homeproxy/server.js:724 msgid "" "If set, the requested domain name will be resolved to IP before routing." msgstr "如果设置,请求的域名将在路由前被解析为 IP 地址。" @@ -1014,7 +1000,7 @@ msgstr "导入分享链接" msgid "Independent cache per server" msgstr "独立缓存" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1053 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1051 msgid "Interface Control" msgstr "接口控制" @@ -1026,12 +1012,12 @@ msgid "" msgstr "发送心跳包以保持连接存活的时间间隔(单位:秒)。" #: htdocs/luci-static/resources/view/homeproxy/client.js:570 -#: htdocs/luci-static/resources/view/homeproxy/client.js:898 +#: htdocs/luci-static/resources/view/homeproxy/client.js:897 msgid "Invert" msgstr "反转" #: htdocs/luci-static/resources/view/homeproxy/client.js:571 -#: htdocs/luci-static/resources/view/homeproxy/client.js:899 +#: htdocs/luci-static/resources/view/homeproxy/client.js:898 msgid "Invert match result." msgstr "反转匹配结果" @@ -1039,19 +1025,19 @@ msgstr "反转匹配结果" msgid "It MUST support TCP query." msgstr "它必须支持 TCP 查询。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:683 +#: htdocs/luci-static/resources/view/homeproxy/server.js:682 msgid "Key path" msgstr "证书路径" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1067 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1065 msgid "LAN IP Policy" msgstr "LAN IP 策略" #: htdocs/luci-static/resources/view/homeproxy/client.js:359 #: htdocs/luci-static/resources/view/homeproxy/client.js:435 #: htdocs/luci-static/resources/view/homeproxy/client.js:666 -#: htdocs/luci-static/resources/view/homeproxy/client.js:762 -#: htdocs/luci-static/resources/view/homeproxy/client.js:972 +#: htdocs/luci-static/resources/view/homeproxy/client.js:761 +#: htdocs/luci-static/resources/view/homeproxy/client.js:970 #: htdocs/luci-static/resources/view/homeproxy/node.js:500 #: htdocs/luci-static/resources/view/homeproxy/server.js:92 msgid "Label" @@ -1070,7 +1056,7 @@ msgstr "" msgid "Less compatibility and sometimes better performance." msgstr "有时性能更好。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:551 +#: htdocs/luci-static/resources/view/homeproxy/server.js:550 msgid "Let's Encrypt" msgstr "Let's Encrypt" @@ -1080,7 +1066,7 @@ msgid "" msgstr "分配给接口的 IP(v4 或 v6)地址前缀列表。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1082 -#: htdocs/luci-static/resources/view/homeproxy/server.js:487 +#: htdocs/luci-static/resources/view/homeproxy/server.js:486 msgid "List of supported application level protocols, in order of preference." msgstr "支持的应用层协议协商列表,按顺序排列。" @@ -1088,7 +1074,7 @@ msgstr "支持的应用层协议协商列表,按顺序排列。" msgid "Listen address" msgstr "监听地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1055 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1053 msgid "Listen interfaces" msgstr "监听接口" @@ -1100,7 +1086,7 @@ msgstr "监听端口" msgid "Loading" msgstr "加载中" -#: htdocs/luci-static/resources/view/homeproxy/client.js:983 +#: htdocs/luci-static/resources/view/homeproxy/client.js:981 msgid "Local" msgstr "本地" @@ -1128,7 +1114,7 @@ msgstr "主 UDP 节点" msgid "Main node" msgstr "主节点" -#: htdocs/luci-static/resources/view/homeproxy/client.js:894 +#: htdocs/luci-static/resources/view/homeproxy/client.js:893 msgid "Make ipcidr in rule sets match the source IP." msgstr "" @@ -1146,7 +1132,7 @@ msgstr "独立缓存每个 DNS 服务器的结果以供特殊用途。启用后 msgid "Masquerade" msgstr "伪装" -#: htdocs/luci-static/resources/view/homeproxy/client.js:846 +#: htdocs/luci-static/resources/view/homeproxy/client.js:845 msgid "Match IP CIDR with query response." msgstr "" @@ -1155,40 +1141,40 @@ msgid "Match IP CIDR." msgstr "匹配 IP CIDR。" #: htdocs/luci-static/resources/view/homeproxy/client.js:483 -#: htdocs/luci-static/resources/view/homeproxy/client.js:814 +#: htdocs/luci-static/resources/view/homeproxy/client.js:813 msgid "Match domain suffix." msgstr "匹配域名后缀。" #: htdocs/luci-static/resources/view/homeproxy/client.js:487 -#: htdocs/luci-static/resources/view/homeproxy/client.js:818 +#: htdocs/luci-static/resources/view/homeproxy/client.js:817 msgid "Match domain using keyword." msgstr "使用关键词匹配域名。" #: htdocs/luci-static/resources/view/homeproxy/client.js:491 -#: htdocs/luci-static/resources/view/homeproxy/client.js:822 +#: htdocs/luci-static/resources/view/homeproxy/client.js:821 msgid "Match domain using regular expression." msgstr "使用正则表达式匹配域名。" #: htdocs/luci-static/resources/view/homeproxy/client.js:478 -#: htdocs/luci-static/resources/view/homeproxy/client.js:809 +#: htdocs/luci-static/resources/view/homeproxy/client.js:808 msgid "Match full domain." msgstr "匹配完整域名。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:904 +#: htdocs/luci-static/resources/view/homeproxy/client.js:903 msgid "Match outbound." msgstr "匹配出站。" #: htdocs/luci-static/resources/view/homeproxy/client.js:532 -#: htdocs/luci-static/resources/view/homeproxy/client.js:831 +#: htdocs/luci-static/resources/view/homeproxy/client.js:830 msgid "Match port range. Format as START:/:END/START:END." msgstr "匹配端口范围。格式为 START:/:END/START:END。" #: htdocs/luci-static/resources/view/homeproxy/client.js:527 -#: htdocs/luci-static/resources/view/homeproxy/client.js:826 +#: htdocs/luci-static/resources/view/homeproxy/client.js:825 msgid "Match port." msgstr "匹配端口。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:851 +#: htdocs/luci-static/resources/view/homeproxy/client.js:850 msgid "Match private IP with query response." msgstr "" @@ -1197,31 +1183,31 @@ msgid "Match private IP." msgstr "匹配私有 IP。" #: htdocs/luci-static/resources/view/homeproxy/client.js:500 -#: htdocs/luci-static/resources/view/homeproxy/client.js:841 +#: htdocs/luci-static/resources/view/homeproxy/client.js:840 msgid "Match private source IP." msgstr "匹配私有源 IP。" #: htdocs/luci-static/resources/view/homeproxy/client.js:537 -#: htdocs/luci-static/resources/view/homeproxy/client.js:866 +#: htdocs/luci-static/resources/view/homeproxy/client.js:865 msgid "Match process name." msgstr "匹配进程名。" #: htdocs/luci-static/resources/view/homeproxy/client.js:541 -#: htdocs/luci-static/resources/view/homeproxy/client.js:870 +#: htdocs/luci-static/resources/view/homeproxy/client.js:869 msgid "Match process path." msgstr "匹配进程路径。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:792 +#: htdocs/luci-static/resources/view/homeproxy/client.js:791 msgid "Match query type." msgstr "匹配请求类型。" #: htdocs/luci-static/resources/view/homeproxy/client.js:549 -#: htdocs/luci-static/resources/view/homeproxy/client.js:878 +#: htdocs/luci-static/resources/view/homeproxy/client.js:877 msgid "Match rule set." msgstr "匹配规则集。" #: htdocs/luci-static/resources/view/homeproxy/client.js:495 -#: htdocs/luci-static/resources/view/homeproxy/client.js:836 +#: htdocs/luci-static/resources/view/homeproxy/client.js:835 msgid "Match source IP CIDR." msgstr "匹配源 IP CIDR。" @@ -1230,17 +1216,17 @@ msgid "Match source IP via rule set" msgstr "通过规则集匹配源 IP" #: htdocs/luci-static/resources/view/homeproxy/client.js:522 -#: htdocs/luci-static/resources/view/homeproxy/client.js:861 +#: htdocs/luci-static/resources/view/homeproxy/client.js:860 msgid "Match source port range. Format as START:/:END/START:END." msgstr "匹配源端口范围。格式为 START:/:END/START:END。" #: htdocs/luci-static/resources/view/homeproxy/client.js:517 -#: htdocs/luci-static/resources/view/homeproxy/client.js:856 +#: htdocs/luci-static/resources/view/homeproxy/client.js:855 msgid "Match source port." msgstr "匹配源端口。" #: htdocs/luci-static/resources/view/homeproxy/client.js:545 -#: htdocs/luci-static/resources/view/homeproxy/client.js:874 +#: htdocs/luci-static/resources/view/homeproxy/client.js:873 msgid "Match user name." msgstr "匹配用户名。" @@ -1254,7 +1240,7 @@ msgstr "最大下载速度" msgid "Max download speed in Mbps." msgstr "最大下载速度(Mbps)。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:647 +#: htdocs/luci-static/resources/view/homeproxy/server.js:646 msgid "Max time difference" msgstr "最大时间差" @@ -1269,7 +1255,7 @@ msgid "Max upload speed in Mbps." msgstr "最大上传速度(Mbps)。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1103 -#: htdocs/luci-static/resources/view/homeproxy/server.js:499 +#: htdocs/luci-static/resources/view/homeproxy/server.js:498 msgid "Maximum TLS version" msgstr "最大 TLS 版本" @@ -1296,7 +1282,7 @@ msgid "Method" msgstr "方式" #: htdocs/luci-static/resources/view/homeproxy/node.js:1095 -#: htdocs/luci-static/resources/view/homeproxy/server.js:491 +#: htdocs/luci-static/resources/view/homeproxy/server.js:490 msgid "Minimum TLS version" msgstr "最低 TLS 版本" @@ -1318,12 +1304,12 @@ msgid "Mixed system TCP stack and gVisor UDP stack." msgstr "混合系统 TCP 栈和 gVisor UDP 栈。" #: htdocs/luci-static/resources/view/homeproxy/client.js:445 -#: htdocs/luci-static/resources/view/homeproxy/client.js:772 +#: htdocs/luci-static/resources/view/homeproxy/client.js:771 msgid "Mode" msgstr "模式" #: htdocs/luci-static/resources/view/homeproxy/node.js:1218 -#: htdocs/luci-static/resources/view/homeproxy/server.js:709 +#: htdocs/luci-static/resources/view/homeproxy/server.js:708 msgid "MultiPath TCP" msgstr "多路径 TCP(MPTCP)" @@ -1354,8 +1340,8 @@ msgid "NaïveProxy" msgstr "NaïveProxy" #: htdocs/luci-static/resources/view/homeproxy/client.js:472 -#: htdocs/luci-static/resources/view/homeproxy/client.js:795 -#: htdocs/luci-static/resources/view/homeproxy/server.js:730 +#: htdocs/luci-static/resources/view/homeproxy/client.js:794 +#: htdocs/luci-static/resources/view/homeproxy/server.js:729 msgid "Network" msgstr "网络" @@ -1418,7 +1404,7 @@ msgstr "混淆密码" msgid "Obfuscate type" msgstr "混淆类型" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1056 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1054 msgid "Only process traffic from specific interfaces. Leave empty for all." msgstr "只处理来自指定接口的流量。留空表示全部。" @@ -1429,8 +1415,8 @@ msgstr "仅代理中国大陆" #: htdocs/luci-static/resources/view/homeproxy/client.js:389 #: htdocs/luci-static/resources/view/homeproxy/client.js:575 #: htdocs/luci-static/resources/view/homeproxy/client.js:723 -#: htdocs/luci-static/resources/view/homeproxy/client.js:903 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1023 +#: htdocs/luci-static/resources/view/homeproxy/client.js:902 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1021 msgid "Outbound" msgstr "出站" @@ -1443,7 +1429,7 @@ msgid "Override address" msgstr "覆盖地址" #: htdocs/luci-static/resources/view/homeproxy/client.js:321 -#: htdocs/luci-static/resources/view/homeproxy/server.js:720 +#: htdocs/luci-static/resources/view/homeproxy/server.js:719 msgid "Override destination" msgstr "覆盖目标地址" @@ -1452,7 +1438,7 @@ msgid "Override port" msgstr "覆盖端口" #: htdocs/luci-static/resources/view/homeproxy/client.js:322 -#: htdocs/luci-static/resources/view/homeproxy/server.js:721 +#: htdocs/luci-static/resources/view/homeproxy/server.js:720 msgid "Override the connection destination address with the sniffed domain." msgstr "使用嗅探到的域名覆盖连接目标。" @@ -1477,7 +1463,7 @@ msgstr "数据包编码" msgid "Password" msgstr "密码" -#: htdocs/luci-static/resources/view/homeproxy/client.js:994 +#: htdocs/luci-static/resources/view/homeproxy/client.js:992 #: htdocs/luci-static/resources/view/homeproxy/node.js:879 #: htdocs/luci-static/resources/view/homeproxy/node.js:912 #: htdocs/luci-static/resources/view/homeproxy/server.js:365 @@ -1509,7 +1495,7 @@ msgid "Plugin opts" msgstr "插件参数" #: htdocs/luci-static/resources/view/homeproxy/client.js:526 -#: htdocs/luci-static/resources/view/homeproxy/client.js:825 +#: htdocs/luci-static/resources/view/homeproxy/client.js:824 #: htdocs/luci-static/resources/view/homeproxy/node.js:530 msgid "Port" msgstr "端口" @@ -1519,7 +1505,7 @@ msgid "Port %s alrealy exists!" msgstr "端口 %s 已存在!" #: htdocs/luci-static/resources/view/homeproxy/client.js:531 -#: htdocs/luci-static/resources/view/homeproxy/client.js:830 +#: htdocs/luci-static/resources/view/homeproxy/client.js:829 msgid "Port range" msgstr "端口范围" @@ -1536,7 +1522,7 @@ msgid "Prefer IPv6" msgstr "优先 IPv6" #: htdocs/luci-static/resources/view/homeproxy/client.js:510 -#: htdocs/luci-static/resources/view/homeproxy/client.js:850 +#: htdocs/luci-static/resources/view/homeproxy/client.js:849 msgid "Private IP" msgstr "私有 IP" @@ -1550,22 +1536,22 @@ msgid "Private key passphrase" msgstr "私钥指纹" #: htdocs/luci-static/resources/view/homeproxy/client.js:499 -#: htdocs/luci-static/resources/view/homeproxy/client.js:840 +#: htdocs/luci-static/resources/view/homeproxy/client.js:839 msgid "Private source IP" msgstr "私有源 IP" #: htdocs/luci-static/resources/view/homeproxy/client.js:536 -#: htdocs/luci-static/resources/view/homeproxy/client.js:865 +#: htdocs/luci-static/resources/view/homeproxy/client.js:864 msgid "Process name" msgstr "进程名" #: htdocs/luci-static/resources/view/homeproxy/client.js:540 -#: htdocs/luci-static/resources/view/homeproxy/client.js:869 +#: htdocs/luci-static/resources/view/homeproxy/client.js:868 msgid "Process path" msgstr "进程路径" #: htdocs/luci-static/resources/view/homeproxy/client.js:465 -#: htdocs/luci-static/resources/view/homeproxy/client.js:800 +#: htdocs/luci-static/resources/view/homeproxy/client.js:799 #: htdocs/luci-static/resources/view/homeproxy/node.js:584 #: htdocs/luci-static/resources/view/homeproxy/node.js:996 #: htdocs/luci-static/resources/view/homeproxy/server.js:168 @@ -1582,33 +1568,33 @@ msgid "" "default in v2ray and cannot be disabled)." msgstr "协议参数。 如启用会随机浪费流量(在 v2ray 中默认启用并且无法禁用)。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1130 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1128 msgid "Proxy Domain List" msgstr "代理域名列表" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1085 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1114 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1083 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1112 msgid "Proxy IPv4 IP-s" msgstr "代理 IPv4 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1088 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1117 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1086 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1115 msgid "Proxy IPv6 IP-s" msgstr "代理 IPv6 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1091 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1089 msgid "Proxy MAC-s" msgstr "代理 MAC 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1072 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1070 msgid "Proxy all except listed" msgstr "仅允许列表外" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1069 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1067 msgid "Proxy filter mode" msgstr "代理过滤模式" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1071 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1069 msgid "Proxy listed only" msgstr "仅允许列表内" @@ -1617,7 +1603,7 @@ msgid "Proxy mode" msgstr "代理模式" #: htdocs/luci-static/resources/view/homeproxy/client.js:469 -#: htdocs/luci-static/resources/view/homeproxy/client.js:804 +#: htdocs/luci-static/resources/view/homeproxy/client.js:803 #: htdocs/luci-static/resources/view/homeproxy/node.js:751 #: htdocs/luci-static/resources/view/homeproxy/node.js:821 #: htdocs/luci-static/resources/view/homeproxy/server.js:323 @@ -1643,7 +1629,7 @@ msgstr "QUIC 最大双向并发流" msgid "QUIC stream receive window" msgstr "QUIC 流接收窗口" -#: htdocs/luci-static/resources/view/homeproxy/client.js:791 +#: htdocs/luci-static/resources/view/homeproxy/client.js:790 msgid "Query type" msgstr "请求类型" @@ -1652,11 +1638,11 @@ msgid "RDRC timeout" msgstr "RDRC 超时" #: htdocs/luci-static/resources/view/homeproxy/node.js:1197 -#: htdocs/luci-static/resources/view/homeproxy/server.js:631 +#: htdocs/luci-static/resources/view/homeproxy/server.js:630 msgid "REALITY" msgstr "REALITY" -#: htdocs/luci-static/resources/view/homeproxy/server.js:637 +#: htdocs/luci-static/resources/view/homeproxy/server.js:636 msgid "REALITY private key" msgstr "REALITY 私钥" @@ -1665,7 +1651,7 @@ msgid "REALITY public key" msgstr "REALITY 公钥" #: htdocs/luci-static/resources/view/homeproxy/node.js:1207 -#: htdocs/luci-static/resources/view/homeproxy/server.js:642 +#: htdocs/luci-static/resources/view/homeproxy/server.js:641 msgid "REALITY short ID" msgstr "REALITY 标识符" @@ -1702,11 +1688,11 @@ msgstr "Redirect TCP + Tun UDP" msgid "Refresh every %s seconds." msgstr "每 %s 秒刷新。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:580 +#: htdocs/luci-static/resources/view/homeproxy/server.js:579 msgid "Region ID" msgstr "区域 ID" -#: htdocs/luci-static/resources/view/homeproxy/client.js:984 +#: htdocs/luci-static/resources/view/homeproxy/client.js:982 msgid "Remote" msgstr "远程" @@ -1730,11 +1716,11 @@ msgstr "解析策略" msgid "Resources management" msgstr "资源管理" -#: htdocs/luci-static/resources/view/homeproxy/client.js:945 +#: htdocs/luci-static/resources/view/homeproxy/client.js:944 msgid "Rewrite TTL" msgstr "重写 TTL" -#: htdocs/luci-static/resources/view/homeproxy/client.js:946 +#: htdocs/luci-static/resources/view/homeproxy/client.js:945 msgid "Rewrite TTL in DNS responses." msgstr "在 DNS 响应中重写 TTL。" @@ -1767,17 +1753,17 @@ msgid "Routing rule" msgstr "路由规则" #: htdocs/luci-static/resources/view/homeproxy/client.js:548 -#: htdocs/luci-static/resources/view/homeproxy/client.js:877 -#: htdocs/luci-static/resources/view/homeproxy/client.js:959 -#: htdocs/luci-static/resources/view/homeproxy/client.js:968 +#: htdocs/luci-static/resources/view/homeproxy/client.js:876 +#: htdocs/luci-static/resources/view/homeproxy/client.js:957 +#: htdocs/luci-static/resources/view/homeproxy/client.js:966 msgid "Rule set" msgstr "规则集" -#: htdocs/luci-static/resources/view/homeproxy/client.js:893 +#: htdocs/luci-static/resources/view/homeproxy/client.js:892 msgid "Rule set IP CIDR as source IP" msgstr "规则集 IP CIDR 作为源 IP" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1001 +#: htdocs/luci-static/resources/view/homeproxy/client.js:999 msgid "Rule set URL" msgstr "规则集 URL" @@ -1786,7 +1772,7 @@ msgid "SSH" msgstr "SSH" #: htdocs/luci-static/resources/view/homeproxy/client.js:470 -#: htdocs/luci-static/resources/view/homeproxy/client.js:806 +#: htdocs/luci-static/resources/view/homeproxy/client.js:805 msgid "STUN" msgstr "STUN" @@ -1811,7 +1797,7 @@ msgstr "保存当前设置" msgid "Save subscriptions settings" msgstr "保存订阅设置" -#: htdocs/luci-static/resources/view/homeproxy/client.js:921 +#: htdocs/luci-static/resources/view/homeproxy/client.js:920 #: htdocs/luci-static/resources/view/homeproxy/server.js:88 msgid "Server" msgstr "服务器" @@ -1820,7 +1806,7 @@ msgstr "服务器" msgid "Server Settings" msgstr "服务器设置" -#: htdocs/luci-static/resources/view/homeproxy/server.js:529 +#: htdocs/luci-static/resources/view/homeproxy/server.js:528 msgid "" "Server name to use when choosing a certificate if the ClientHello's " "ServerName field is empty." @@ -1848,7 +1834,7 @@ msgid "Shadowsocks" msgstr "Shadowsocks" #: htdocs/luci-static/resources/view/homeproxy/client.js:466 -#: htdocs/luci-static/resources/view/homeproxy/client.js:801 +#: htdocs/luci-static/resources/view/homeproxy/client.js:800 msgid "" "Sniffed protocol, see Sniff for details." @@ -1878,21 +1864,21 @@ msgid "Socks5" msgstr "Socks5" #: htdocs/luci-static/resources/view/homeproxy/client.js:494 -#: htdocs/luci-static/resources/view/homeproxy/client.js:835 +#: htdocs/luci-static/resources/view/homeproxy/client.js:834 msgid "Source IP CIDR" msgstr "源 IP CIDR" -#: htdocs/luci-static/resources/view/homeproxy/client.js:989 +#: htdocs/luci-static/resources/view/homeproxy/client.js:987 msgid "Source file" msgstr "源文件" #: htdocs/luci-static/resources/view/homeproxy/client.js:516 -#: htdocs/luci-static/resources/view/homeproxy/client.js:855 +#: htdocs/luci-static/resources/view/homeproxy/client.js:854 msgid "Source port" msgstr "源端口" #: htdocs/luci-static/resources/view/homeproxy/client.js:521 -#: htdocs/luci-static/resources/view/homeproxy/client.js:860 +#: htdocs/luci-static/resources/view/homeproxy/client.js:859 msgid "Source port range" msgstr "源端口范围" @@ -1983,18 +1969,18 @@ msgstr "系统" #: htdocs/luci-static/resources/view/homeproxy/client.js:611 #: htdocs/luci-static/resources/view/homeproxy/client.js:688 -#: htdocs/luci-static/resources/view/homeproxy/client.js:928 +#: htdocs/luci-static/resources/view/homeproxy/client.js:927 msgid "System DNS" msgstr "系统 DNS" #: htdocs/luci-static/resources/view/homeproxy/client.js:473 -#: htdocs/luci-static/resources/view/homeproxy/client.js:796 -#: htdocs/luci-static/resources/view/homeproxy/server.js:731 +#: htdocs/luci-static/resources/view/homeproxy/client.js:795 +#: htdocs/luci-static/resources/view/homeproxy/server.js:730 msgid "TCP" msgstr "TCP" #: htdocs/luci-static/resources/view/homeproxy/node.js:1214 -#: htdocs/luci-static/resources/view/homeproxy/server.js:703 +#: htdocs/luci-static/resources/view/homeproxy/server.js:702 msgid "TCP fast open" msgstr "TCP 快速打开" @@ -2007,14 +1993,14 @@ msgid "TCP/IP stack." msgstr "TCP/IP 协议栈。" #: htdocs/luci-static/resources/view/homeproxy/client.js:468 -#: htdocs/luci-static/resources/view/homeproxy/client.js:803 +#: htdocs/luci-static/resources/view/homeproxy/client.js:802 #: htdocs/luci-static/resources/view/homeproxy/node.js:1049 #: htdocs/luci-static/resources/view/homeproxy/server.js:453 msgid "TLS" msgstr "TLS" #: htdocs/luci-static/resources/view/homeproxy/node.js:1081 -#: htdocs/luci-static/resources/view/homeproxy/server.js:486 +#: htdocs/luci-static/resources/view/homeproxy/server.js:485 msgid "TLS ALPN" msgstr "TLS ALPN" @@ -2040,11 +2026,11 @@ msgstr "" msgid "Tag of an outbound for connecting to the dns server." msgstr "用于连接到 DNS 服务器的出站标签。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1024 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1022 msgid "Tag of the outbound to download rule set." msgstr "用于下载规则集的出站标签。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:922 +#: htdocs/luci-static/resources/view/homeproxy/client.js:921 msgid "Tag of the target dns server." msgstr "目标 DNS 服务器标签。" @@ -2062,7 +2048,7 @@ msgstr "让客户端使用 BBR 流控算法。" msgid "Tencent Public DNS (119.29.29.29)" msgstr "腾讯公共 DNS(119.29.29.29)" -#: htdocs/luci-static/resources/view/homeproxy/server.js:550 +#: htdocs/luci-static/resources/view/homeproxy/server.js:549 msgid "The ACME CA provider to use." msgstr "使用的 ACME CA 颁发机构。" @@ -2084,7 +2070,7 @@ msgstr "用于接收数据的 QUIC 流级流控制窗口。" msgid "The address of the dns server. Support UDP, TCP, DoT, DoH and RCode." msgstr "DNS 服务器的地址。支持 UDP、TCP、DoT、DoH 和 RCode。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:601 +#: htdocs/luci-static/resources/view/homeproxy/server.js:600 msgid "" "The alternate port to use for the ACME HTTP challenge; if non-empty, this " "port will be used instead of 80 to spin up a listener for the HTTP challenge." @@ -2092,7 +2078,7 @@ msgstr "" "用于 ACME HTTP 质询的备用端口;如果非空,将使用此端口而不是 80 来启动 HTTP 质" "询的侦听器。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:607 +#: htdocs/luci-static/resources/view/homeproxy/server.js:606 msgid "" "The alternate port to use for the ACME TLS-ALPN challenge; the system must " "forward 443 to this port for challenge to succeed." @@ -2116,7 +2102,7 @@ msgstr "" "source_port_range)
&&
其他字段。此外,包含的所有规则" "集会被合并而不是独立生效。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:773 +#: htdocs/luci-static/resources/view/homeproxy/client.js:772 msgid "" "The default rule uses the following matching logic:
(domain || " "domain_suffix || domain_keyword || domain_regex) &&
(port " @@ -2138,20 +2124,20 @@ msgid "" msgstr "用于解析本 DNS 服务器的域名的策略。默认使用 dns.strategy。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1112 -#: htdocs/luci-static/resources/view/homeproxy/server.js:508 +#: htdocs/luci-static/resources/view/homeproxy/server.js:507 msgid "" "The elliptic curves that will be used in an ECDHE handshake, in preference " "order. If empty, the default will be used." msgstr "将在 ECDHE 握手中使用的椭圆曲线,按优先顺序排列。留空使用默认值。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:535 +#: htdocs/luci-static/resources/view/homeproxy/server.js:534 msgid "" "The email address to use when creating or selecting an existing ACME server " "account." msgstr "创建或选择现有 ACME 服务器帐户时使用的电子邮件地址。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1104 -#: htdocs/luci-static/resources/view/homeproxy/server.js:500 +#: htdocs/luci-static/resources/view/homeproxy/server.js:499 msgid "The maximum TLS version that is acceptable." msgstr "可接受的最高 TLS 版本。" @@ -2161,12 +2147,12 @@ msgid "" "allowed to open." msgstr "允许对等点打开的 QUIC 并发双向流的最大数量。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:648 +#: htdocs/luci-static/resources/view/homeproxy/server.js:647 msgid "The maximum time difference between the server and the client." msgstr "服务器和客户端之间的最大时间差。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1096 -#: htdocs/luci-static/resources/view/homeproxy/server.js:492 +#: htdocs/luci-static/resources/view/homeproxy/server.js:491 msgid "The minimum TLS version that is acceptable." msgstr "可接受的最低 TLS 版本。" @@ -2187,11 +2173,11 @@ msgstr "服务端证书路径,需要 PEM 格式。" msgid "The port must be unique." msgstr "必须是唯一端口。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:684 +#: htdocs/luci-static/resources/view/homeproxy/server.js:683 msgid "The server private key, in PEM format." msgstr "服务端私钥,需要 PEM 格式。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:666 +#: htdocs/luci-static/resources/view/homeproxy/server.js:665 msgid "The server public key, in PEM format." msgstr "服务端公钥,需要 PEM 格式。" @@ -2265,20 +2251,20 @@ msgstr "Tuic" msgid "Tun TCP/UDP" msgstr "Tun TCP/UDP" -#: htdocs/luci-static/resources/view/homeproxy/client.js:982 +#: htdocs/luci-static/resources/view/homeproxy/client.js:980 #: htdocs/luci-static/resources/view/homeproxy/node.js:505 #: htdocs/luci-static/resources/view/homeproxy/server.js:103 msgid "Type" msgstr "类型" #: htdocs/luci-static/resources/view/homeproxy/client.js:474 -#: htdocs/luci-static/resources/view/homeproxy/client.js:797 -#: htdocs/luci-static/resources/view/homeproxy/server.js:732 +#: htdocs/luci-static/resources/view/homeproxy/client.js:796 +#: htdocs/luci-static/resources/view/homeproxy/server.js:731 msgid "UDP" msgstr "UDP" #: htdocs/luci-static/resources/view/homeproxy/node.js:1222 -#: htdocs/luci-static/resources/view/homeproxy/server.js:714 +#: htdocs/luci-static/resources/view/homeproxy/server.js:713 msgid "UDP Fragment" msgstr "UDP 分片" @@ -2323,11 +2309,11 @@ msgstr "更新 %s 个订阅" msgid "Update failed." msgstr "更新失败。" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1041 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1039 msgid "Update interval" msgstr "更新间隔" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1042 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1040 msgid "Update interval of rule set.
1d will be used if empty." msgstr "规则集更新间隔。
留空使用 1d。" @@ -2358,21 +2344,21 @@ msgid "Upload bandwidth in Mbps." msgstr "上传带宽(单位:Mbps)。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1132 -#: htdocs/luci-static/resources/view/homeproxy/server.js:675 +#: htdocs/luci-static/resources/view/homeproxy/server.js:674 msgid "Upload certificate" msgstr "上传证书" -#: htdocs/luci-static/resources/view/homeproxy/server.js:693 +#: htdocs/luci-static/resources/view/homeproxy/server.js:692 msgid "Upload key" msgstr "上传密钥" #: htdocs/luci-static/resources/view/homeproxy/node.js:1135 -#: htdocs/luci-static/resources/view/homeproxy/server.js:678 -#: htdocs/luci-static/resources/view/homeproxy/server.js:696 +#: htdocs/luci-static/resources/view/homeproxy/server.js:677 +#: htdocs/luci-static/resources/view/homeproxy/server.js:695 msgid "Upload..." msgstr "上传..." -#: htdocs/luci-static/resources/view/homeproxy/server.js:517 +#: htdocs/luci-static/resources/view/homeproxy/server.js:516 msgid "Use ACME TLS certificate issuer." msgstr "使用 ACME TLS 证书颁发机构。" @@ -2384,7 +2370,7 @@ msgid "" msgstr "用于验证返回证书上的主机名。如允许不安全连接,此配置无效。" #: htdocs/luci-static/resources/view/homeproxy/client.js:544 -#: htdocs/luci-static/resources/view/homeproxy/client.js:873 +#: htdocs/luci-static/resources/view/homeproxy/client.js:872 msgid "User" msgstr "用户" @@ -2408,7 +2394,7 @@ msgstr "VMess" msgid "WAN DNS (read from interface)" msgstr "WAN DNS(从接口获取)" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1112 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1110 msgid "WAN IP Policy" msgstr "WAN IP 策略" @@ -2455,19 +2441,19 @@ msgstr "您最多只能设置两个服务器。" msgid "Your %s was successfully uploaded. Size: %sB." msgstr "您的 %s 已成功上传。大小:%sB。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:552 +#: htdocs/luci-static/resources/view/homeproxy/server.js:551 msgid "ZeroSSL" msgstr "ZeroSSL" #: htdocs/luci-static/resources/view/homeproxy/node.js:1137 -#: htdocs/luci-static/resources/view/homeproxy/server.js:680 +#: htdocs/luci-static/resources/view/homeproxy/server.js:679 msgid "certificate" msgstr "证书" #: htdocs/luci-static/resources/view/homeproxy/node.js:1097 #: htdocs/luci-static/resources/view/homeproxy/node.js:1105 -#: htdocs/luci-static/resources/view/homeproxy/server.js:493 -#: htdocs/luci-static/resources/view/homeproxy/server.js:501 +#: htdocs/luci-static/resources/view/homeproxy/server.js:492 +#: htdocs/luci-static/resources/view/homeproxy/server.js:500 msgid "default" msgstr "默认" @@ -2496,7 +2482,7 @@ msgstr "gVisor" #: htdocs/luci-static/resources/homeproxy.js:248 #: htdocs/luci-static/resources/homeproxy.js:266 #: htdocs/luci-static/resources/view/homeproxy/client.js:176 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1005 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1003 #: htdocs/luci-static/resources/view/homeproxy/node.js:564 #: htdocs/luci-static/resources/view/homeproxy/node.js:1186 #: htdocs/luci-static/resources/view/homeproxy/server.js:159 @@ -2518,7 +2504,7 @@ msgstr "packet addr (v2ray-core v5+)" msgid "passed" msgstr "通过" -#: htdocs/luci-static/resources/view/homeproxy/server.js:698 +#: htdocs/luci-static/resources/view/homeproxy/server.js:697 msgid "private key" msgstr "私钥" @@ -2572,8 +2558,8 @@ msgstr "v3" msgid "valid IP address" msgstr "有效 IP 地址" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1010 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1013 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1008 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1011 #: htdocs/luci-static/resources/view/homeproxy/node.js:1269 #: htdocs/luci-static/resources/view/homeproxy/node.js:1272 msgid "valid URL" @@ -2587,8 +2573,8 @@ msgstr "有效 地址#端口" msgid "valid base64 key with %d characters" msgstr "包含 %d 个字符的有效 base64 密钥" -#: htdocs/luci-static/resources/view/homeproxy/client.js:1152 -#: htdocs/luci-static/resources/view/homeproxy/client.js:1181 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1150 +#: htdocs/luci-static/resources/view/homeproxy/client.js:1179 msgid "valid hostname" msgstr "有效主机名" diff --git a/openwrt-packages/luci-app-homeproxy/root/etc/homeproxy/scripts/firewall_pre.ut b/openwrt-packages/luci-app-homeproxy/root/etc/homeproxy/scripts/firewall_pre.ut index 1f8475a7d4..f53addd3bc 100755 --- a/openwrt-packages/luci-app-homeproxy/root/etc/homeproxy/scripts/firewall_pre.ut +++ b/openwrt-packages/luci-app-homeproxy/root/etc/homeproxy/scripts/firewall_pre.ut @@ -40,14 +40,15 @@ chain input { iifname {{ tun_name }} counter accept comment "!{{ cfgname }}: accept tun input" {% endif %} {% - uci.foreach(cfgname, 'server', (s) => { - if (s.enabled !== '1') - return; + if (auto_firewall === '1') + uci.foreach(cfgname, 'server', (s) => { + if (s.enabled !== '1') + return; - let proto = s.network || '{ tcp, udp }'; - printf(' meta l4proto %s th dport %s counter accept comment "!%s: accept server %s"\n', - proto, s.port, cfgname, s['.name']); - }); + let proto = s.network || '{ tcp, udp }'; + printf(' meta l4proto %s th dport %s counter accept comment "!%s: accept server %s"\n', + proto, s.port, cfgname, s['.name']); + }); %} } {% endif %} diff --git a/openwrt-passwall/luci-app-passwall/root/usr/share/passwall/nftables.sh b/openwrt-passwall/luci-app-passwall/root/usr/share/passwall/nftables.sh index 690c9eeeed..5a64c1231f 100755 --- a/openwrt-passwall/luci-app-passwall/root/usr/share/passwall/nftables.sh +++ b/openwrt-passwall/luci-app-passwall/root/usr/share/passwall/nftables.sh @@ -916,7 +916,8 @@ add_firewall_rule() { WAN_IP=$(get_wan_ip) if [ -n "${WAN_IP}" ]; then - [ -n "${is_tproxy}" ] && nft "add rule inet fw4 PSW_MANGLE ip daddr ${WAN_IP} counter return comment \"WAN_IP_RETURN\"" || nft "add rule inet fw4 PSW_NAT ip daddr ${WAN_IP} counter return comment \"WAN_IP_RETURN\"" + nft "add rule inet fw4 PSW_MANGLE ip daddr ${WAN_IP} counter return comment \"WAN_IP_RETURN\"" + [ -z "${is_tproxy}" ] && nft "add rule inet fw4 PSW_NAT ip daddr ${WAN_IP} counter return comment \"WAN_IP_RETURN\"" fi unset WAN_IP diff --git a/shadowsocks-rust/Cargo.lock b/shadowsocks-rust/Cargo.lock index 0e7342d986..856111ef27 100644 --- a/shadowsocks-rust/Cargo.lock +++ b/shadowsocks-rust/Cargo.lock @@ -308,9 +308,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.5.2" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d08263faac5cde2a4d52b513dadb80846023aade56fcd8fc99ba73ba8050e92" +checksum = "e9ec96fe9a81b5e365f9db71fe00edc4fe4ca2cc7dcb7861f0603012a7caa210" dependencies = [ "arrayref", "arrayvec", diff --git a/small/v2ray-geodata/Makefile b/small/v2ray-geodata/Makefile index 5ae011c409..43021159ce 100644 --- a/small/v2ray-geodata/Makefile +++ b/small/v2ray-geodata/Makefile @@ -30,13 +30,13 @@ define Download/geosite HASH:=dbaba085b1de1b8b875f3db78fb367aef080f24993af01abe21f4d4ba99048be endef -GEOSITE_IRAN_VER:=202407080029 +GEOSITE_IRAN_VER:=202407150030 GEOSITE_IRAN_FILE:=iran.dat.$(GEOSITE_IRAN_VER) define Download/geosite-ir URL:=https://github.com/bootmortis/iran-hosted-domains/releases/download/$(GEOSITE_IRAN_VER)/ URL_FILE:=iran.dat FILE:=$(GEOSITE_IRAN_FILE) - HASH:=d3c6bd7daab2c720c4c9796c3b31ee7328273cc52b9ff6621e63c5e0513f9a49 + HASH:=73f55b3bc7ae33c63a9eb5ae11be288d9500b89ffa824584a57eb89cbc84a8d6 endef define Package/v2ray-geodata/template diff --git a/xray-core/.github/workflows/release.yml b/xray-core/.github/workflows/release.yml index a2b9da7376..d044a5c165 100644 --- a/xray-core/.github/workflows/release.yml +++ b/xray-core/.github/workflows/release.yml @@ -78,6 +78,9 @@ jobs: # Include amd64 on all platforms. goos: [windows, freebsd, openbsd, linux, darwin] goarch: [amd64, 386] + gotoolchain: [""] + patch-assetname: [""] + exclude: # Exclude i386 on darwin - goarch: 386 @@ -152,6 +155,16 @@ jobs: goarch: arm goarm: 7 # END OPENBSD ARM + # BEGIN Windows 7 + - goos: windows + goarch: amd64 + gotoolchain: 1.21.4 + patch-assetname: win7-64 + - goos: windows + goarch: 386 + gotoolchain: 1.21.4 + patch-assetname: win7-32 + # END Windows 7 fail-fast: false runs-on: ubuntu-latest @@ -164,16 +177,17 @@ jobs: - name: Checkout codebase uses: actions/checkout@v4 - - name: Show workflow information + - name: Show workflow information run: | - export _NAME=$(jq ".[\"$GOOS-$GOARCH$GOARM$GOMIPS\"].friendlyName" -r < .github/build/friendly-filenames.json) + _NAME=${{ matrix.patch-assetname }} + [ -n "$_NAME" ] || _NAME=$(jq ".[\"$GOOS-$GOARCH$GOARM$GOMIPS\"].friendlyName" -r < .github/build/friendly-filenames.json) echo "GOOS: $GOOS, GOARCH: $GOARCH, GOARM: $GOARM, GOMIPS: $GOMIPS, RELEASE_NAME: $_NAME" echo "ASSET_NAME=$_NAME" >> $GITHUB_ENV - name: Set up Go uses: actions/setup-go@v5 with: - go-version-file: go.mod + go-version: ${{ matrix.gotoolchain || '1.22' }} check-latest: true - name: Get project dependencies diff --git a/xray-core/.github/workflows/test.yml b/xray-core/.github/workflows/test.yml index da178740cc..b2d91b0917 100644 --- a/xray-core/.github/workflows/test.yml +++ b/xray-core/.github/workflows/test.yml @@ -32,7 +32,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version-file: go.mod + go-version: '1.22' check-latest: true - name: Restore Cache uses: actions/cache/restore@v4 diff --git a/xray-core/README.md b/xray-core/README.md index 1072b9dfa2..66a8199f4e 100644 --- a/xray-core/README.md +++ b/xray-core/README.md @@ -27,8 +27,7 @@ - [ghcr.io/xtls/xray-core](https://ghcr.io/xtls/xray-core) (**Official**) - [teddysun/xray](https://hub.docker.com/r/teddysun/xray) - Web Panel - - [X-UI-English](https://github.com/NidukaAkalanka/x-ui-english), [3X-UI](https://github.com/MHSanaei/3x-ui), [X-UI](https://github.com/alireza0/x-ui), [X-UI](https://github.com/diditra/x-ui) - - [Xray-UI](https://github.com/qist/xray-ui), [X-UI](https://github.com/sing-web/x-ui) + - [3X-UI](https://github.com/MHSanaei/3x-ui), [X-UI](https://github.com/alireza0/x-ui), [Xray-UI](https://github.com/qist/xray-ui) - [Hiddify](https://github.com/hiddify/hiddify-config) - [Marzban](https://github.com/Gozargah/Marzban) - [Libertea](https://github.com/VZiChoushaDui/Libertea) @@ -67,13 +66,10 @@ - [luci-app-xray](https://github.com/yichya/luci-app-xray) ([openwrt-xray](https://github.com/yichya/openwrt-xray)) - Windows - [v2rayN](https://github.com/2dust/v2rayN) - - [NekoRay](https://github.com/Matsuridayo/nekoray) - [Furious](https://github.com/LorenEteval/Furious) - - [HiddifyN](https://github.com/hiddify/HiddifyN) - [Invisible Man - Xray](https://github.com/InvisibleManVPN/InvisibleMan-XRayClient) - Android - [v2rayNG](https://github.com/2dust/v2rayNG) - - [HiddifyNG](https://github.com/hiddify/HiddifyNG) - [X-flutter](https://github.com/XTLS/X-flutter) - iOS & macOS arm64 - [FoXray](https://apps.apple.com/app/foxray/id6448898396) @@ -85,7 +81,6 @@ - [FoXray](https://apps.apple.com/app/foxray/id6448898396) - Linux - [v2rayA](https://github.com/v2rayA/v2rayA) - - [NekoRay](https://github.com/Matsuridayo/nekoray) - [Furious](https://github.com/LorenEteval/Furious) ## Others that support VLESS, XTLS, REALITY, XUDP, PLUX... @@ -98,21 +93,15 @@ - [XTLS/libXray](https://github.com/XTLS/libXray) - [xtlsapi](https://github.com/hiddify/xtlsapi) - [AndroidLibXrayLite](https://github.com/2dust/AndroidLibXrayLite) - - [XrayKit](https://github.com/arror/XrayKit) - [Xray-core-python](https://github.com/LorenEteval/Xray-core-python) - [xray-api](https://github.com/XVGuardian/xray-api) - [XrayR](https://github.com/XrayR-project/XrayR) - [XrayR-release](https://github.com/XrayR-project/XrayR-release) - [XrayR-V2Board](https://github.com/missuo/XrayR-V2Board) - [Clash.Meta](https://github.com/MetaCubeX/Clash.Meta) - - [Clash Verge](https://github.com/zzzgydi/clash-verge) - [clashN](https://github.com/2dust/clashN) - [Clash Meta for Android](https://github.com/MetaCubeX/ClashMetaForAndroid) - - [meta_for_ios](https://t.me/meta_for_ios) - [sing-box](https://github.com/SagerNet/sing-box) - - [installReality](https://github.com/BoxXt/installReality) - - [sbox-reality](https://github.com/Misaka-blog/sbox-reality) - - [sing-box-for-ios](https://github.com/SagerNet/sing-box-for-ios) ## Contributing diff --git a/xray-core/common/errors/errors.go b/xray-core/common/errors/errors.go index 1915144af1..7a35f25439 100644 --- a/xray-core/common/errors/errors.go +++ b/xray-core/common/errors/errors.go @@ -151,7 +151,7 @@ func LogInfo(ctx context.Context, msg ...interface{}) { } func LogInfoInner(ctx context.Context, inner error, msg ...interface{}) { - doLog(ctx, inner, log.Severity_Debug, msg...) + doLog(ctx, inner, log.Severity_Info, msg...) } func LogWarning(ctx context.Context, msg ...interface{}) { @@ -159,7 +159,7 @@ func LogWarning(ctx context.Context, msg ...interface{}) { } func LogWarningInner(ctx context.Context, inner error, msg ...interface{}) { - doLog(ctx, inner, log.Severity_Debug, msg...) + doLog(ctx, inner, log.Severity_Warning, msg...) } func LogError(ctx context.Context, msg ...interface{}) { @@ -167,7 +167,7 @@ func LogError(ctx context.Context, msg ...interface{}) { } func LogErrorInner(ctx context.Context, inner error, msg ...interface{}) { - doLog(ctx, inner, log.Severity_Debug, msg...) + doLog(ctx, inner, log.Severity_Error, msg...) } func doLog(ctx context.Context, inner error, severity log.Severity, msg ...interface{}) { diff --git a/xray-core/core/core.go b/xray-core/core/core.go index bbe83f5068..1e4d8713cc 100644 --- a/xray-core/core/core.go +++ b/xray-core/core/core.go @@ -21,7 +21,7 @@ import ( var ( Version_x byte = 1 Version_y byte = 8 - Version_z byte = 17 + Version_z byte = 18 ) var ( diff --git a/xray-core/go.mod b/xray-core/go.mod index 9f7b2a9b06..b88896adf7 100644 --- a/xray-core/go.mod +++ b/xray-core/go.mod @@ -1,6 +1,6 @@ module github.com/xtls/xray-core -go 1.22 +go 1.21.4 require ( github.com/OmarTariq612/goech v0.0.0-20240405204721-8e2e1dafd3a0 diff --git a/yass/README.md b/yass/README.md index 5b37de44b9..802787fb58 100644 --- a/yass/README.md +++ b/yass/README.md @@ -17,7 +17,7 @@ More details are at [Latest Release Page](https://github.com/Chilledheart/yass/r - GTK3 [download rpm](https://github.com/Chilledheart/yass/releases/download/1.11.4/yass-gtk3.el8.x86_64.1.11.4.rpm) or [download deb](https://github.com/Chilledheart/yass/releases/download/1.11.4/yass-gtk3-ubuntu-16.04-xenial_amd64.1.11.4.deb) (minimum requirement: centos 8 or ubuntu 16.04) - Qt5 [download rpm](https://github.com/Chilledheart/yass/releases/download/1.11.4/yass-qt5.el8.x86_64.1.11.4.rpm) or [download deb](https://github.com/Chilledheart/yass/releases/download/1.11.4/yass-qt5-ubuntu-16.04-xenial_amd64.1.11.4.deb) (minimum requirement: centos 8 or ubuntu 16.04) - GTK4 [download rpm](https://github.com/Chilledheart/yass/releases/download/1.11.4/yass-gtk4.lp155.x86_64.1.11.4.rpm) or [download deb](https://github.com/Chilledheart/yass/releases/download/1.11.4/yass-gtk4-ubuntu-22.04-jammy_amd64.1.11.4.deb) (minimum requirement: opensuse leap 15.5, centos 9 or ubuntu 22.04) -- Qt6 [download rpm](https://github.com/Chilledheart/yass/releases/download/1.11.4/yass-qt6.lp155.x86_64.1.11.4.rpm) or [download deb](https://github.com/Chilledheart/yass/releases/download/1.11.4/yass-qt6-ubuntu-22.04-jammy_amd64.1.11.4.deb) (minimum requirement: opensuse leap 15.5 or ubuntu 22.04) +- Qt6 [download rpm](https://github.com/Chilledheart/yass/releases/download/1.11.4/yass-qt6.lp155.x86_64.1.11.4.rpm) or [download deb](https://github.com/Chilledheart/yass/releases/download/1.11.4/yass-qt6-ubuntu-22.04-jammy_amd64.1.11.4.deb) (minimum requirement: opensuse leap 15.5, centos 9 with epel or ubuntu 22.04) [![aur yass-proxy-gtk3](https://img.shields.io/aur/version/yass-proxy-gtk3)](https://aur.archlinux.org/packages/yass-proxy-gtk3) [![aur yass-proxy-qt5](https://img.shields.io/aur/version/yass-proxy-qt5)](https://aur.archlinux.org/packages/yass-proxy-qt5) diff --git a/yt-dlp/README.md b/yt-dlp/README.md index 08cca0a451..243b443449 100644 --- a/yt-dlp/README.md +++ b/yt-dlp/README.md @@ -1859,6 +1859,9 @@ The following extractors use this feature: #### bilibili * `prefer_multi_flv`: Prefer extracting flv formats over mp4 for older videos that still provide legacy formats +#### digitalconcerthall +* `prefer_combined_hls`: Prefer extracting combined/pre-merged video and audio HLS formats. This will exclude 4K/HEVC video and lossless/FLAC audio formats, which are only available as split video/audio HLS formats + **Note**: These options may be changed/removed in the future without concern for backward compatibility diff --git a/yt-dlp/test/test_utils.py b/yt-dlp/test/test_utils.py index 3ff1f8b556..e82f551bcb 100644 --- a/yt-dlp/test/test_utils.py +++ b/yt-dlp/test/test_utils.py @@ -929,6 +929,11 @@ class TestUtil(unittest.TestCase): 'acodec': 'none', 'dynamic_range': 'DV', }) + self.assertEqual(parse_codecs('fLaC'), { + 'vcodec': 'none', + 'acodec': 'flac', + 'dynamic_range': None, + }) self.assertEqual(parse_codecs('theora, vorbis'), { 'vcodec': 'theora', 'acodec': 'vorbis', diff --git a/yt-dlp/yt_dlp/extractor/digitalconcerthall.py b/yt-dlp/yt_dlp/extractor/digitalconcerthall.py index 8b4d5c0fc4..edb6fa9c08 100644 --- a/yt-dlp/yt_dlp/extractor/digitalconcerthall.py +++ b/yt-dlp/yt_dlp/extractor/digitalconcerthall.py @@ -1,6 +1,8 @@ from .common import InfoExtractor +from ..networking.exceptions import HTTPError from ..utils import ( ExtractorError, + parse_codecs, try_get, url_or_none, urlencode_postdata, @@ -12,6 +14,7 @@ class DigitalConcertHallIE(InfoExtractor): IE_DESC = 'DigitalConcertHall extractor' _VALID_URL = r'https?://(?:www\.)?digitalconcerthall\.com/(?P[a-z]+)/(?Pfilm|concert|work)/(?P[0-9]+)-?(?P[0-9]+)?' _OAUTH_URL = 'https://api.digitalconcerthall.com/v2/oauth2/token' + _USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15' _ACCESS_TOKEN = None _NETRC_MACHINE = 'digitalconcerthall' _TESTS = [{ @@ -68,33 +71,42 @@ class DigitalConcertHallIE(InfoExtractor): }] def _perform_login(self, username, password): - token_response = self._download_json( + login_token = self._download_json( self._OAUTH_URL, None, 'Obtaining token', errnote='Unable to obtain token', data=urlencode_postdata({ 'affiliate': 'none', 'grant_type': 'device', 'device_vendor': 'unknown', + # device_model 'Safari' gets split streams of 4K/HEVC video and lossless/FLAC audio + 'device_model': 'unknown' if self._configuration_arg('prefer_combined_hls') else 'Safari', 'app_id': 'dch.webapp', - 'app_version': '1.0.0', + 'app_distributor': 'berlinphil', + 'app_version': '1.84.0', 'client_secret': '2ySLN+2Fwb', }), headers={ - 'Content-Type': 'application/x-www-form-urlencoded', - }) - self._ACCESS_TOKEN = token_response['access_token'] + 'Accept': 'application/json', + 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', + 'User-Agent': self._USER_AGENT, + })['access_token'] try: - self._download_json( + login_response = self._download_json( self._OAUTH_URL, None, note='Logging in', errnote='Unable to login', data=urlencode_postdata({ 'grant_type': 'password', 'username': username, 'password': password, }), headers={ - 'Content-Type': 'application/x-www-form-urlencoded', + 'Accept': 'application/json', + 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', 'Referer': 'https://www.digitalconcerthall.com', - 'Authorization': f'Bearer {self._ACCESS_TOKEN}', + 'Authorization': f'Bearer {login_token}', + 'User-Agent': self._USER_AGENT, }) - except ExtractorError: - self.raise_login_required(msg='Login info incorrect') + except ExtractorError as error: + if isinstance(error.cause, HTTPError) and error.cause.status == 401: + raise ExtractorError('Invalid username or password', expected=True) + raise + self._ACCESS_TOKEN = login_response['access_token'] def _real_initialize(self): if not self._ACCESS_TOKEN: @@ -108,11 +120,15 @@ class DigitalConcertHallIE(InfoExtractor): 'Accept': 'application/json', 'Authorization': f'Bearer {self._ACCESS_TOKEN}', 'Accept-Language': language, + 'User-Agent': self._USER_AGENT, }) formats = [] for m3u8_url in traverse_obj(stream_info, ('channel', ..., 'stream', ..., 'url', {url_or_none})): - formats.extend(self._extract_m3u8_formats(m3u8_url, video_id, 'mp4', fatal=False)) + formats.extend(self._extract_m3u8_formats(m3u8_url, video_id, 'mp4', m3u8_id='hls', fatal=False)) + for fmt in formats: + if fmt.get('format_note') and fmt.get('vcodec') == 'none': + fmt.update(parse_codecs(fmt['format_note'])) yield { 'id': video_id, @@ -140,13 +156,15 @@ class DigitalConcertHallIE(InfoExtractor): f'https://api.digitalconcerthall.com/v2/{api_type}/{video_id}', video_id, headers={ 'Accept': 'application/json', 'Accept-Language': language, + 'User-Agent': self._USER_AGENT, + 'Authorization': f'Bearer {self._ACCESS_TOKEN}', }) - album_artists = traverse_obj(vid_info, ('_links', 'artist', ..., 'name')) videos = [vid_info] if type_ == 'film' else traverse_obj(vid_info, ('_embedded', ..., ...)) if type_ == 'work': videos = [videos[int(part) - 1]] + album_artists = traverse_obj(vid_info, ('_links', 'artist', ..., 'name', {str})) thumbnail = traverse_obj(vid_info, ( 'image', ..., {self._proto_relative_url}, {url_or_none}, {lambda x: x.format(width=0, height=0)}, any)) # NB: 0x0 is the original size diff --git a/yt-dlp/yt_dlp/extractor/generic.py b/yt-dlp/yt_dlp/extractor/generic.py index 3b8e1e957c..04cffaa861 100644 --- a/yt-dlp/yt_dlp/extractor/generic.py +++ b/yt-dlp/yt_dlp/extractor/generic.py @@ -43,6 +43,7 @@ from ..utils import ( xpath_text, xpath_with_ns, ) +from ..utils._utils import _UnsafeExtensionError class GenericIE(InfoExtractor): @@ -2446,9 +2447,13 @@ class GenericIE(InfoExtractor): if not is_html(first_bytes): self.report_warning( 'URL could be a direct video link, returning it as such.') + ext = determine_ext(url) + if ext not in _UnsafeExtensionError.ALLOWED_EXTENSIONS: + ext = 'unknown_video' info_dict.update({ 'direct': True, 'url': url, + 'ext': ext, }) return info_dict diff --git a/yt-dlp/yt_dlp/extractor/soundcloud.py b/yt-dlp/yt_dlp/extractor/soundcloud.py index afb512d90c..4f8d96407d 100644 --- a/yt-dlp/yt_dlp/extractor/soundcloud.py +++ b/yt-dlp/yt_dlp/extractor/soundcloud.py @@ -871,7 +871,7 @@ class SoundcloudUserPermalinkIE(SoundcloudPagedPlaylistBaseIE): 'id': '30909869', 'title': 'neilcic', }, - 'playlist_mincount': 23, + 'playlist_mincount': 22, }] def _real_extract(self, url): @@ -880,7 +880,7 @@ class SoundcloudUserPermalinkIE(SoundcloudPagedPlaylistBaseIE): self._resolv_url(url), user_id, 'Downloading user info', headers=self._HEADERS) return self._extract_playlist( - f'{self._API_V2_BASE}stream/users/{user["id"]}', str(user['id']), user.get('username')) + f'{self._API_V2_BASE}users/{user["id"]}/tracks', str(user['id']), user.get('username')) class SoundcloudTrackStationIE(SoundcloudPagedPlaylistBaseIE): diff --git a/yt-dlp/yt_dlp/extractor/youtube.py b/yt-dlp/yt_dlp/extractor/youtube.py index d1d57eb47e..53aca3816b 100644 --- a/yt-dlp/yt_dlp/extractor/youtube.py +++ b/yt-dlp/yt_dlp/extractor/youtube.py @@ -270,7 +270,7 @@ def build_innertube_clients(): THIRD_PARTY = { 'embedUrl': 'https://www.youtube.com/', # Can be any valid URL } - BASE_CLIENTS = ('ios', 'android', 'web', 'tv', 'mweb') + BASE_CLIENTS = ('ios', 'web', 'tv', 'mweb', 'android') priority = qualities(BASE_CLIENTS[::-1]) for client, ytcfg in tuple(INNERTUBE_CLIENTS.items()): @@ -3702,17 +3702,17 @@ class YoutubeIE(YoutubeBaseInfoExtractor): return pr_id def _extract_player_responses(self, clients, video_id, webpage, master_ytcfg, smuggled_data): - initial_pr = None + initial_pr = ignore_initial_response = None if webpage: - experiments = traverse_obj(master_ytcfg, ( - 'WEB_PLAYER_CONTEXT_CONFIGS', ..., 'serializedExperimentIds', {str}, {lambda x: x.split(',')}, ..., {str})) - if all(x in experiments for x in self._POTOKEN_EXPERIMENTS): - self.report_warning( - 'Webpage contains broken formats (poToken experiment detected). Ignoring initial player response') - master_ytcfg = self._get_default_ytcfg() - else: - initial_pr = self._search_json( - self._YT_INITIAL_PLAYER_RESPONSE_RE, webpage, 'initial player response', video_id, fatal=False) + if 'web' in clients: + experiments = traverse_obj(master_ytcfg, ( + 'WEB_PLAYER_CONTEXT_CONFIGS', ..., 'serializedExperimentIds', {lambda x: x.split(',')}, ...)) + if all(x in experiments for x in self._POTOKEN_EXPERIMENTS): + self.report_warning( + 'Webpage contains broken formats (poToken experiment detected). Ignoring initial player response') + ignore_initial_response = True + initial_pr = self._search_json( + self._YT_INITIAL_PLAYER_RESPONSE_RE, webpage, 'initial player response', video_id, fatal=False) prs = [] if initial_pr and not self._invalid_player_response(initial_pr, video_id): @@ -3740,8 +3740,10 @@ class YoutubeIE(YoutubeBaseInfoExtractor): skipped_clients = {} while clients: client, base_client, variant = _split_innertube_client(clients.pop()) - player_ytcfg = master_ytcfg if client == 'web' else {} - if 'configs' not in self._configuration_arg('player_skip') and client != 'web': + player_ytcfg = {} + if client == 'web': + player_ytcfg = self._get_default_ytcfg() if ignore_initial_response else master_ytcfg + elif 'configs' not in self._configuration_arg('player_skip'): player_ytcfg = self._download_ytcfg(client, video_id) or player_ytcfg player_url = player_url or self._extract_player_url(master_ytcfg, player_ytcfg, webpage=webpage) @@ -3754,7 +3756,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): player_url = self._download_player_url(video_id) tried_iframe_fallback = True - pr = initial_pr if client == 'web' and initial_pr else None + pr = initial_pr if client == 'web' and not ignore_initial_response else None for retry in self.RetryManager(fatal=False): try: pr = pr or self._extract_player_response( @@ -3765,7 +3767,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): break experiments = traverse_obj(pr, ( 'responseContext', 'serviceTrackingParams', lambda _, v: v['service'] == 'GFEEDBACK', - 'params', lambda _, v: v['key'] == 'e', 'value', {lambda x: x.split(',')}, ..., {str})) + 'params', lambda _, v: v['key'] == 'e', 'value', {lambda x: x.split(',')}, ...)) if all(x in experiments for x in self._POTOKEN_EXPERIMENTS): pr = None retry.error = ExtractorError('API returned broken formats (poToken experiment detected)', expected=True) diff --git a/yt-dlp/yt_dlp/utils/_utils.py b/yt-dlp/yt_dlp/utils/_utils.py index b582b7d4ee..2c23b3ed56 100644 --- a/yt-dlp/yt_dlp/utils/_utils.py +++ b/yt-dlp/yt_dlp/utils/_utils.py @@ -2984,6 +2984,7 @@ def parse_codecs(codecs_str): str.strip, codecs_str.strip().strip(',').split(',')))) vcodec, acodec, scodec, hdr = None, None, None, None for full_codec in split_codecs: + full_codec = re.sub(r'^([^.]+)', lambda m: m.group(1).lower(), full_codec) parts = re.sub(r'0+(?=\d)', '', full_codec).split('.') if parts[0] in ('avc1', 'avc2', 'avc3', 'avc4', 'vp9', 'vp8', 'hev1', 'hev2', 'h263', 'h264', 'mp4v', 'hvc1', 'av1', 'theora', 'dvh1', 'dvhe'):