diff --git a/luci-app-passwall2/Makefile b/luci-app-passwall2/Makefile index a5536db4..3d8aa3cf 100644 --- a/luci-app-passwall2/Makefile +++ b/luci-app-passwall2/Makefile @@ -16,14 +16,11 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Haproxy \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Server \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Client \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Server \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Simple_Obfs \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_tuic_client \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_V2ray_Plugin LUCI_TITLE:=LuCI support for PassWall 2 @@ -100,17 +97,6 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy select PACKAGE_naiveproxy default n -config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client - bool "Include Shadowsocks Libev Client" - select PACKAGE_shadowsocks-libev-ss-local - select PACKAGE_shadowsocks-libev-ss-redir - default y - -config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server - bool "Include Shadowsocks Libev Server" - select PACKAGE_shadowsocks-libev-ss-server - default n - config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client bool "Include Shadowsocks Rust Client" depends on !i386 @@ -139,12 +125,6 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_Simple_Obfs select PACKAGE_simple-obfs-client default y -config PACKAGE_$(PKG_NAME)_INCLUDE_tuic_client - bool "Include tuic-client" - depends on aarch64||arm||i386||x86_64 - select PACKAGE_tuic-client - default n - config PACKAGE_$(PKG_NAME)_INCLUDE_V2ray_Plugin bool "Include V2ray-Plugin (Shadowsocks Plugin)" select PACKAGE_v2ray-plugin diff --git a/luci-app-passwall2/luasrc/controller/passwall2.lua b/luci-app-passwall2/luasrc/controller/passwall2.lua index 03d0587f..c3520cfc 100644 --- a/luci-app-passwall2/luasrc/controller/passwall2.lua +++ b/luci-app-passwall2/luasrc/controller/passwall2.lua @@ -59,6 +59,7 @@ function index() entry({"admin", "services", appname, "server_user"}, cbi(appname .. "/server/user")).leaf = true --[[ API ]] + entry({"admin", "services", appname, "server_user_update"}, call("server_user_update")).leaf = true entry({"admin", "services", appname, "server_user_status"}, call("server_user_status")).leaf = true entry({"admin", "services", appname, "server_user_log"}, call("server_user_log")).leaf = true entry({"admin", "services", appname, "server_get_log"}, call("server_get_log")).leaf = true @@ -629,6 +630,23 @@ function rollback_rules() http_write_json_ok() end +function server_user_update() + local id = http.formvalue("id") -- Node id + local data = http.formvalue("data") -- json new Data + if id and data then + local data_t = jsonParse(data) or {} + if next(data_t) then + for k, v in pairs(data_t) do + uci:set(appname .. "_server", id, k, v) + end + api.uci_save(uci, appname .. "_server") + http_write_json_ok() + return + end + end + http_write_json_error() +end + function server_user_status() local e = {} e.index = http.formvalue("index") diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/acl_config.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/acl_config.lua index 6f7b1866..b8b77501 100644 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/acl_config.lua +++ b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/acl_config.lua @@ -78,103 +78,10 @@ o.rmempty = false o = s:option(Value, "interface", translate("Source Interface")) o:value("", translate("All")) --- Populate with actual kernel network devices instead of UCI interface names, --- because the backend (nftables iifname / iptables -i) matches kernel device names. -do - local nfs = require "nixio.fs" - local _cursor = require("luci.model.uci").cursor() - local _sysnet = "/sys/class/net/" - - -- Map UCI interface names to their device names and vice versa - local _iface_to_dev = {} - local _dev_to_ifaces = {} - local _iface_proto = {} - _cursor:foreach("network", "interface", function(sec) - local name = sec[".name"] - if name ~= "loopback" then - _iface_proto[name] = sec.proto - if sec.device then - _iface_to_dev[name] = sec.device - _dev_to_ifaces[sec.device] = _dev_to_ifaces[sec.device] or {} - table.insert(_dev_to_ifaces[sec.device], name) - end - end - end) - - -- Classify device type using sysfs attributes - local function classify_sysfs(dev) - if nfs.stat(_sysnet .. dev .. "/bridge", "type") == "dir" then - return translate("Bridge") - elseif nfs.stat(_sysnet .. dev .. "/wireless", "type") == "dir" then - return translate("Wireless Adapter") - elseif dev:match("^tun") or dev:match("^tap") or dev:match("^wg") or dev:match("^ppp") then - return translate("Tunnel Interface") - else - return translate("Ethernet Adapter") - end - end - - -- Classify offline UCI interfaces by config hints - local function classify_uci(dev_name, proto) - if dev_name and dev_name:match("^br%-") then - return translate("Bridge") - elseif proto == "wireguard" or proto == "pppoe" or proto == "pptp" or proto == "l2tp" then - return translate("Tunnel Interface") - else - return translate("Interface") - end - end - - local _seen = {} - local _devices = {} - - -- Active kernel devices from /sys/class/net/. - -- Skip bridge member ports (/master) and DSA master devices (/dsa) because - -- nftables iifname matches the parent bridge for routed traffic, not - -- individual member ports. Also skip internal virtual devices. - local _iter = nfs.dir(_sysnet) - if _iter then - for dev in _iter do - if dev ~= "lo" - and not dev:match("^veth") - and not dev:match("^ifb") - and not dev:match("^gre") - and not dev:match("^sit") - and not dev:match("^ip6tnl") - and not dev:match("^erspan") - and not nfs.stat(_sysnet .. dev .. "/master", "type") - and not nfs.stat(_sysnet .. dev .. "/dsa", "type") - then - local dtype = classify_sysfs(dev) - local label = dtype .. ': "' .. dev .. '"' - if _dev_to_ifaces[dev] then - label = label .. " (" .. table.concat(_dev_to_ifaces[dev], ", ") .. ")" - end - _devices[#_devices + 1] = { name = dev, label = label, sort = dtype .. ":" .. dev } - _seen[dev] = true - end - end - end - - -- UCI interfaces whose device does not currently exist (down tunnels, VPNs, etc.). - -- Stored by UCI name since the kernel device is not available yet. - -- Dedup by device: if two interfaces share a device, only one is shown. - for iface, dev in pairs(_iface_to_dev) do - if not _seen[dev] then - local dtype = classify_uci(dev, _iface_proto[iface]) - local label = dtype .. ': "' .. iface .. '"' - -- Sort offline entries after active devices - _devices[#_devices + 1] = { name = iface, label = label, sort = "zzz:" .. iface } - _seen[dev] = true - end - end - - table.sort(_devices, function(a, b) return a.sort < b.sort end) - for _, d in ipairs(_devices) do - o:value(d.name, d.label) - end +local iface = api.get_network_devices() +for _, d in ipairs(iface) do + o:value(d.name, d.label) end - o.validate = function(self, value, section) if value == "" or value:match("^[a-zA-Z0-9][a-zA-Z0-9%.%_%-]*$") then return value diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/node_config.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/node_config.lua index 28e3aa7d..5051bd7b 100644 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/node_config.lua +++ b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/node_config.lua @@ -14,6 +14,7 @@ formvalue_key = "cbid." .. appname .. "." .. arg[1] .. "." local header = Template(appname .. "/node_config/header") header.api = api +header.config = m.config header.section = arg[1] m:append(header) @@ -91,6 +92,7 @@ end local footer = Template(appname .. "/node_config/footer") footer.api = api +footer.config = m.config footer.section = arg[1] m:append(footer) diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/node_subscribe.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/node_subscribe.lua index a13e46ee..7140ac5c 100644 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/node_subscribe.lua +++ b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/node_subscribe.lua @@ -1,7 +1,6 @@ local api = require "luci.passwall2.api" local appname = api.appname local uci = api.uci -local has_ss = api.is_finded("ss-redir") local has_ss_rust = api.is_finded("sslocal") local has_singbox = api.finded_com("sing-box") local has_xray = api.finded_com("xray") @@ -12,10 +11,6 @@ local vmess_type = {} local vless_type = {} local hysteria2_type = {} local xray_version = api.get_app_version("xray") -if has_ss then - local s = "shadowsocks-libev" - table.insert(ss_type, s) -end if has_ss_rust then local s = "shadowsocks-rust" table.insert(ss_type, s) diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/node_subscribe_config.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/node_subscribe_config.lua index 6be6bacf..1cc68769 100644 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/node_subscribe_config.lua +++ b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/node_subscribe_config.lua @@ -15,7 +15,6 @@ end m:append(Template(appname .. "/cbi/nodes_listvalue_com")) -local has_ss = api.is_finded("ss-redir") local has_ss_rust = api.is_finded("sslocal") local has_singbox = api.finded_com("sing-box") local has_xray = api.finded_com("xray") @@ -26,10 +25,6 @@ local vmess_type = {} local vless_type = {} local hysteria2_type = {} local xray_version = api.get_app_version("xray") -if has_ss then - local s = "shadowsocks-libev" - table.insert(ss_type, s) -end if has_ss_rust then local s = "shadowsocks-rust" table.insert(ss_type, s) @@ -223,6 +218,14 @@ if #hysteria2_type > 0 then for key, value in pairs(hysteria2_type) do o:value(value) end + + o = s:option(Value, "hysteria_up_mbps", "Hy/Hy2 " .. translate("Max upload Mbps")) + o.datatype = "uinteger" + o.default = "100" + + o = s:option(Value, "hysteria_down_mbps", "Hy/Hy2 " .. translate("Max download Mbps")) + o.datatype = "uinteger" + o.default = "100" end o = s:option(Flag, "boot_update", translate("Update Once on Boot"), translate("Updates the subscription the first time runs automatically after each system boot.")) @@ -287,6 +290,7 @@ o = s:option(ListValue, "chain_proxy", translate("Chain Proxy")) o:value("", translate("Close(Not use)")) o:value("1", translate("Preproxy Node")) o:value("2", translate("Landing Node")) +o:value("3", translate("Outbound Interface")) local descrStr = "Chained proxy works only with Xray or Sing-box nodes.
" descrStr = descrStr .. "You can only use manual or imported nodes as chained nodes." @@ -304,6 +308,14 @@ o2.description = descrStr o2.template = appname .. "/cbi/nodes_listvalue" o2.group = {} +o3 = s:option(Value, "outbound_iface", translate("Outbound Interface")) +o3:depends({ ["chain_proxy"] = "3" }) +o3:value("", translate("All")) +local iface = api.get_network_devices() +for _, d in ipairs(iface) do + o3:value(d.name, d.label) +end + for k, v in pairs(nodes_table) do if (v.type == "Xray" or v.type == "sing-box") and (not v.chain_proxy or v.chain_proxy == "") and v.add_mode ~= "2" then o1:value(v.id, v.remark) diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/ray.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/ray.lua index 012f4952..f1264f1f 100644 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/ray.lua +++ b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/ray.lua @@ -78,6 +78,7 @@ if not arg_select_proto:find("_") then load_normal_options = true end +local netdev_list = api.get_network_devices() local node_list = api.get_node_list() local fallback_list = {} local is_balancer = nil @@ -270,8 +271,10 @@ end -- [[ Load balancing End ]] if load_iface_options then -- [[ Custom Interface Start ]] o = s:option(Value, _n("iface"), translate("Interface")) - o.default = "eth1" o:depends({ [_n("protocol")] = "_iface" }) + for _, d in ipairs(netdev_list) do + o:value(d.name, d.label) + end end -- [[ Custom Interface End ]] @@ -793,6 +796,7 @@ if not load_shunt_options then if not (load_iface_options or load_balancing_options) then -- Special node cannot be use pre-proxy. o:value("1", translate("Preproxy Node")) + o:value("3", translate("Outbound Interface")) end o:value("2", translate("Landing Node")) @@ -801,6 +805,13 @@ if not load_shunt_options then o1.template = appname .. "/cbi/nodes_listvalue" o1.group = {} + o3 = s:option(Value, _n("outbound_iface"), translate("Outbound Interface")) + o3:depends({ [_n("chain_proxy")] = "3" }) + o3:value("", translate("All")) + for _, d in ipairs(netdev_list) do + o3:value(d.name, d.label) + end + o2 = s:option(ListValue, _n("to_node"), translate("Landing Node"), translate("Only support a layer of proxy.")) o2:depends({ [_n("chain_proxy")] = "2" }) o2.template = appname .. "/cbi/nodes_listvalue" diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/sing-box.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/sing-box.lua index cfb5fb61..a3c591ca 100644 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/sing-box.lua +++ b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/sing-box.lua @@ -94,6 +94,7 @@ if not arg_select_proto:find("_") then load_normal_options = true end +local netdev_list = api.get_network_devices() local node_list = api.get_node_list() if load_urltest_options then -- [[ URLTest Start ]] @@ -198,8 +199,10 @@ end -- [[ URLTest End ]] if load_iface_options then -- [[ Custom Interface Start ]] o = s:option(Value, _n("iface"), translate("Interface")) - o.default = "eth1" o:depends({ [_n("protocol")] = "_iface" }) + for _, d in ipairs(netdev_list) do + o:value(d.name, d.label) + end end -- [[ Custom Interface End ]] @@ -875,8 +878,11 @@ if not load_shunt_options then o1.group = {} o3 = s:option(Value, _n("outbound_iface"), translate("Outbound Interface")) - o3.default = "eth1" o3:depends({ [_n("chain_proxy")] = "3" }) + o3:value("", translate("All")) + for _, d in ipairs(netdev_list) do + o3:value(d.name, d.label) + end o2 = s:option(ListValue, _n("to_node"), translate("Landing Node"), translate("Only support a layer of proxy.")) o2:depends({ [_n("chain_proxy")] = "2", [_n("hysteria2_realms")] = false }) diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/ss.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/ss.lua deleted file mode 100644 index b1abf4a5..00000000 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/ss.lua +++ /dev/null @@ -1,62 +0,0 @@ -local m, s = ... - -if not api.is_finded("ss-local") then - return -end - -type_name = "SS" - --- [[ Shadowsocks Libev ]] - -s.fields["type"]:value(type_name, "Shadowsocks Libev") - -if s.val["type"] ~= type_name then - return -end - -local option_prefix = "ss_" - -local function _n(name) - return option_prefix .. name -end - -local ss_encrypt_method_list = { - "rc4-md5", "aes-128-cfb", "aes-192-cfb", "aes-256-cfb", "aes-128-ctr", - "aes-192-ctr", "aes-256-ctr", "bf-cfb", "salsa20", "chacha20", "chacha20-ietf", - "aes-128-gcm", "aes-192-gcm", "aes-256-gcm", "chacha20-ietf-poly1305", - "xchacha20-ietf-poly1305" -} - -o = s:option(Value, _n("address"), translate("Address (Support Domain Name)")) - -o = s:option(Value, _n("port"), translate("Port")) -o.datatype = "port" - -o = s:option(Value, _n("password"), translate("Password")) -o.password = true - -o = s:option(Value, _n("method"), translate("Encrypt Method")) -for a, t in ipairs(ss_encrypt_method_list) do o:value(t) end - -o = s:option(Value, _n("timeout"), translate("Connection Timeout")) -o.datatype = "uinteger" -o.default = 300 - -o = s:option(Flag, _n("tcp_fast_open"), "TCP " .. translate("Fast Open"), translate("Need node support required")) -o.default = 0 - -o = s:option(Flag, _n("plugin_enabled"), translate("plugin")) -o.default = 0 - -o = s:option(ListValue, _n("plugin"), "SIP003 " .. translate("plugin")) -o.default = "none" -o:value("none", translate("none")) -if api.is_finded("xray-plugin") then o:value("xray-plugin") end -if api.is_finded("v2ray-plugin") then o:value("v2ray-plugin") end -if api.is_finded("obfs-local") then o:value("obfs-local") end -o:depends({ [_n("plugin_enabled")] = true }) - -o = s:option(Value, _n("plugin_opts"), translate("opts")) -o:depends({ [_n("plugin_enabled")] = true }) - -api.luci_types(arg[1], m, s, type_name, option_prefix) diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/tuic.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/tuic.lua deleted file mode 100644 index fb7f91ac..00000000 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/tuic.lua +++ /dev/null @@ -1,145 +0,0 @@ -local m, s = ... - -if not api.is_finded("tuic-client") then - return -end - -type_name = "TUIC" - --- [[ TUIC ]] - -s.fields["type"]:value(type_name, "TUIC") - -if s.val["type"] ~= type_name then - return -end - -local option_prefix = "tuic_" - -local function _n(name) - return option_prefix .. name -end - -o = s:option(Value, _n("address"), translate("Address (Support Domain Name)")) - -o = s:option(Value, _n("port"), translate("Port")) -o.datatype = "port" - -o = s:option(Value, _n("uuid"), translate("ID")) -o.password = true - --- Tuic Password for remote server connect -o = s:option(Value, _n("password"), translate("TUIC User Password For Connect Remote Server")) -o.password = true -o.rmempty = true -o.default = "" -o.rewrite_option = o.option - ---[[ --- Tuic username for local socks connect -o = s:option(Value, _n("socks_username"), translate("TUIC UserName For Local Socks")) -o.rmempty = true -o.default = "" -o.rewrite_option = o.option - --- Tuic Password for local socks connect -o = s:option(Value, _n("socks_password"), translate("TUIC Password For Local Socks")) -o.password = true -o.rmempty = true -o.default = "" -o.rewrite_option = o.option ---]] - -o = s:option(Value, _n("ip"), translate("Set the TUIC proxy server ip address")) -o.datatype = "ipaddr" -o.rmempty = true -o.rewrite_option = o.option - -o = s:option(ListValue, _n("udp_relay_mode"), translate("UDP relay mode")) -o:value("native", translate("native")) -o:value("quic", translate("QUIC")) -o.default = "native" -o.rmempty = true -o.rewrite_option = o.option - -o = s:option(ListValue, _n("congestion_control"), translate("Congestion control algorithm")) -o:value("bbr", translate("BBR")) -o:value("cubic", translate("CUBIC")) -o:value("new_reno", translate("New Reno")) -o.default = "cubic" -o.rmempty = true -o.rewrite_option = o.option - -o = s:option(Value, _n("heartbeat"), translate("Heartbeat interval(second)")) -o.datatype = "uinteger" -o.default = "3" -o.rmempty = true -o.rewrite_option = o.option - -o = s:option(Value, _n("timeout"), translate("Timeout for establishing a connection to server(second)")) -o.datatype = "uinteger" -o.default = "8" -o.rmempty = true -o.rewrite_option = o.option - -o = s:option(Value, _n("gc_interval"), translate("Garbage collection interval(second)")) -o.datatype = "uinteger" -o.default = "3" -o.rmempty = true -o.rewrite_option = o.option - -o = s:option(Value, _n("gc_lifetime"), translate("Garbage collection lifetime(second)")) -o.datatype = "uinteger" -o.default = "15" -o.rmempty = true -o.rewrite_option = o.option - -o = s:option(Value, _n("send_window"), translate("TUIC send window")) -o.datatype = "uinteger" -o.default = 20971520 -o.rmempty = true -o.rewrite_option = o.option - -o = s:option(Value, _n("receive_window"), translate("TUIC receive window")) -o.datatype = "uinteger" -o.default = 10485760 -o.rmempty = true -o.rewrite_option = o.option - -o = s:option(Value, _n("max_package_size"), translate("TUIC Maximum packet size the socks5 server can receive from external, in bytes")) -o.datatype = "uinteger" -o.default = 1500 -o.rmempty = true -o.rewrite_option = o.option - ---Tuic settings for the local inbound socks5 server -o = s:option(Flag, _n("dual_stack"), translate("Set if the listening socket should be dual-stack")) -o.default = 0 -o.rmempty = true -o.rewrite_option = o.option - -o = s:option(Flag, _n("disable_sni"), translate("Disable SNI")) -o.default = 0 -o.rmempty = true -o.rewrite_option = o.option - -o = s:option(Flag, _n("zero_rtt_handshake"), translate("Enable 0-RTT QUIC handshake")) -o.default = 0 -o.rmempty = true -o.rewrite_option = o.option - -o = s:option(ListValue, _n("tls_alpn"), translate("TLS ALPN")) -o.rmempty = true -o.default = "" -o:value("", translate("Default")) -o:value("h3") -o:value("h2") -o:value("h3,h2") -o:value("http/1.1") -o:value("h2,http/1.1") -o:value("h3,h2,http/1.1") -o:value("spdy/3.1") -o:value("h3,spdy/3.1") -o.rewrite_option = o.option - -api.luci_types(arg[1], m, s, type_name, option_prefix) diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/hysteria2.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/hysteria2.lua index 74f5a37d..89742db8 100644 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/hysteria2.lua +++ b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/hysteria2.lua @@ -1,28 +1,29 @@ local m, s = ... -local api = require "luci.passwall2.api" - if not api.finded_com("hysteria") then return end local type_name = "Hysteria2" +-- [[ Hysteria2 ]] + +s.fields["type"]:value(type_name, "Hysteria2") + +if s.val["type"] and s.val["type"] ~= type_name then + return +end + local option_prefix = "hysteria2_" local function _n(name) return option_prefix .. name end --- [[ Hysteria2 ]] - -s.fields["type"]:value(type_name, "Hysteria2") - o = s:option(Flag, _n("custom"), translate("Use Custom Config")) o = s:option(Value, _n("port"), translate("Listen Port")) o.datatype = "port" -o.rmempty = false o:depends({ [_n("custom")] = false }) o = s:option(Flag, _n("realms"), translate("Realms")) diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/ray.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/ray.lua index 3a4d9ba3..ff99b15b 100644 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/ray.lua +++ b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/ray.lua @@ -1,13 +1,22 @@ local m, s = ... -local api = require "luci.passwall2.api" - if not api.finded_com("xray") then return end local type_name = "Xray" +-- [[ Xray ]] + +s.fields["type"]:value(type_name, "Xray") +if not s.fields["type"].default then + s.fields["type"].default = type_name +end + +if s.val["type"] and s.val["type"] ~= type_name then + return +end + local option_prefix = "xray_" local function _n(name) @@ -22,13 +31,6 @@ local header_type_list = { "none", "srtp", "utp", "wechat-video", "dtls", "wireguard", "dns" } --- [[ Xray ]] - -s.fields["type"]:value(type_name, "Xray") -if not s.fields["type"].default then - s.fields["type"].default = type_name -end - o = s:option(Flag, _n("custom"), translate("Use Custom Config")) o = s:option(ListValue, _n("protocol"), translate("Protocol")) @@ -487,8 +489,11 @@ o:depends({ [_n("outbound_node")] = "_socks"}) o:depends({ [_n("outbound_node")] = "_http"}) o = s:option(Value, _n("outbound_node_iface"), translate("Interface")) -o.default = "eth1" o:depends({ [_n("outbound_node")] = "_iface"}) +local netdev_list = api.get_network_devices() +for _, d in ipairs(netdev_list) do + o:value(d.name, d.label) +end o = s:option(TextValue, _n("custom_config"), translate("Custom Config")) o.rows = 10 diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/sing-box.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/sing-box.lua index 96beede8..dd3cb2f4 100644 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/sing-box.lua +++ b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/sing-box.lua @@ -1,30 +1,13 @@ local m, s = ... -local api = require "luci.passwall2.api" - local singbox_bin = api.finded_com("sing-box") if not singbox_bin then return end -local fs = api.fs - -local singbox_tags = luci.sys.exec(singbox_bin .. " version | grep 'Tags:' | awk '{print $2}'") - local type_name = "sing-box" -local option_prefix = "singbox_" - -local function _n(name) - return option_prefix .. name -end - -local ss_method_list = { - "none", "aes-128-gcm", "aes-192-gcm", "aes-256-gcm", "chacha20-ietf-poly1305", "xchacha20-ietf-poly1305", - "2022-blake3-aes-128-gcm", "2022-blake3-aes-256-gcm", "2022-blake3-chacha20-poly1305" -} - -- [[ Sing-Box ]] s.fields["type"]:value(type_name, "Sing-Box") @@ -32,6 +15,23 @@ if not s.fields["type"].default then s.fields["type"].default = type_name end +if s.val["type"] and s.val["type"] ~= type_name then + return +end + +local option_prefix = "singbox_" + +local function _n(name) + return option_prefix .. name +end + +local singbox_tags = luci.sys.exec(singbox_bin .. " version | grep 'Tags:' | awk '{print $2}'") + +local ss_method_list = { + "none", "aes-128-gcm", "aes-192-gcm", "aes-256-gcm", "chacha20-ietf-poly1305", "xchacha20-ietf-poly1305", + "2022-blake3-aes-128-gcm", "2022-blake3-aes-256-gcm", "2022-blake3-chacha20-poly1305" +} + o = s:option(Flag, _n("custom"), translate("Use Custom Config")) o = s:option(ListValue, _n("protocol"), translate("Protocol")) @@ -58,7 +58,6 @@ o:depends({ [_n("custom")] = false }) o = s:option(Value, _n("port"), translate("Listen Port")) o.datatype = "port" -o.rmempty = false o:depends({ [_n("custom")] = false }) o = s:option(Flag, _n("auth"), translate("Auth")) @@ -302,7 +301,7 @@ o:depends({ [_n("protocol")] = "tuic" }) o:depends({ [_n("protocol")] = "hysteria2" }) o.validate = function(self, value, t) if value and value ~= "" then - if not nixio.fs.access(value) then + if not fs.access(value) then return nil, translate("Can't find this file!") else return value @@ -321,7 +320,7 @@ o:depends({ [_n("protocol")] = "tuic" }) o:depends({ [_n("protocol")] = "hysteria2" }) o.validate = function(self, value, t) if value and value ~= "" then - if not nixio.fs.access(value) then + if not fs.access(value) then return nil, translate("Can't find this file!") else return value @@ -464,8 +463,11 @@ o:depends({ [_n("outbound_node")] = "_socks" }) o:depends({ [_n("outbound_node")] = "_http" }) o = s:option(Value, _n("outbound_node_iface"), translate("Interface")) -o.default = "eth1" o:depends({ [_n("outbound_node")] = "_iface" }) +local netdev_list = api.get_network_devices() +for _, d in ipairs(netdev_list) do + o:value(d.name, d.label) +end o = s:option(TextValue, _n("custom_config"), translate("Custom Config")) o.rows = 10 diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/ss-rust.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/ss-rust.lua index 2b800be2..d0939430 100644 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/ss-rust.lua +++ b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/ss-rust.lua @@ -1,13 +1,19 @@ local m, s = ... -local api = require "luci.passwall2.api" - if not api.is_finded("ssserver") then return end local type_name = "SS-Rust" +-- [[ Shadowsocks Rust ]] + +s.fields["type"]:value(type_name, translate("Shadowsocks Rust")) + +if s.val["type"] and s.val["type"] ~= type_name then + return +end + local option_prefix = "ssrust_" local function _n(name) @@ -20,10 +26,6 @@ local ssrust_encrypt_method_list = { "2022-blake3-aes-128-gcm", "2022-blake3-aes-256-gcm", "2022-blake3-chacha8-poly1305", "2022-blake3-chacha20-poly1305" } --- [[ Shadowsocks Rust ]] - -s.fields["type"]:value(type_name, translate("Shadowsocks Rust")) - o = s:option(Flag, _n("custom"), translate("Use Custom Config")) o = s:option(Value, _n("port"), translate("Listen Port")) diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/ss.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/ss.lua deleted file mode 100644 index 093ab70c..00000000 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/ss.lua +++ /dev/null @@ -1,78 +0,0 @@ -local m, s = ... - -local api = require "luci.passwall2.api" - -if not api.is_finded("ss-server") then - return -end - -local type_name = "SS" - -local option_prefix = "ss_" - -local function _n(name) - return option_prefix .. name -end - -local ss_encrypt_method_list = { - "rc4-md5", "aes-128-cfb", "aes-192-cfb", "aes-256-cfb", "aes-128-ctr", - "aes-192-ctr", "aes-256-ctr", "bf-cfb", "camellia-128-cfb", - "camellia-192-cfb", "camellia-256-cfb", "salsa20", "chacha20", - "chacha20-ietf", -- aead - "aes-128-gcm", "aes-192-gcm", "aes-256-gcm", "chacha20-ietf-poly1305", - "xchacha20-ietf-poly1305" -} - --- [[ Shadowsocks ]] - -s.fields["type"]:value(type_name, translate("Shadowsocks")) - -o = s:option(Flag, _n("custom"), translate("Use Custom Config")) - -o = s:option(Value, _n("port"), translate("Listen Port")) -o.datatype = "port" -o:depends({ [_n("custom")] = false }) - -o = s:option(Value, _n("password"), translate("Password")) -o.password = true -o:depends({ [_n("custom")] = false }) - -o = s:option(ListValue, _n("method"), translate("Encrypt Method")) -for a, t in ipairs(ss_encrypt_method_list) do o:value(t) end -o:depends({ [_n("custom")] = false }) - -o = s:option(Value, _n("timeout"), translate("Connection Timeout")) -o.datatype = "uinteger" -o.default = 300 -o:depends({ [_n("custom")] = false }) - -o = s:option(Flag, _n("tcp_fast_open"), "TCP " .. translate("Fast Open")) -o.default = "0" -o:depends({ [_n("custom")] = false }) - -o = s:option(TextValue, _n("custom_config"), translate("Custom Config")) -o.rows = 10 -o.wrap = "off" -o:depends({ [_n("custom")] = true }) -o.validate = function(self, value, t) - if value and api.jsonc.parse(value) then - return value - else - return nil, translate("Custom Config") .. " " .. translate("Must be JSON text!") - end -end -o.custom_cfgvalue = function(self, section, value) - local config_str = m:get(section, "config_str") - if config_str then - return api.base64Decode(config_str) - end -end -o.custom_write = function(self, section, value) - m:set(section, "config_str", api.base64Encode(value) or "") -end - -o = s:option(Flag, _n("log"), translate("Log")) -o.default = "1" -o.rmempty = false - -api.luci_types(arg[1], m, s, type_name, option_prefix) diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/ssr.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/ssr.lua index 3bcf5597..02a94f61 100644 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/ssr.lua +++ b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/type/ssr.lua @@ -1,13 +1,19 @@ local m, s = ... -local api = require "luci.passwall2.api" - if not api.is_finded("ssr-server") then return end local type_name = "SSR" +-- [[ ShadowsocksR ]] + +s.fields["type"]:value(type_name, translate("ShadowsocksR")) + +if s.val["type"] and s.val["type"] ~= type_name then + return +end + local option_prefix = "ssr_" local function _n(name) @@ -33,10 +39,6 @@ local ssr_obfs_list = { "tls1.0_session_auth", "tls1.2_ticket_auth" } --- [[ ShadowsocksR ]] - -s.fields["type"]:value(type_name, translate("ShadowsocksR")) - o = s:option(Flag, _n("custom"), translate("Use Custom Config")) o = s:option(Value, _n("port"), translate("Listen Port")) diff --git a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/user.lua b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/user.lua index a5dc64a9..c50d5ca9 100644 --- a/luci-app-passwall2/luasrc/model/cbi/passwall2/server/user.lua +++ b/luci-app-passwall2/luasrc/model/cbi/passwall2/server/user.lua @@ -1,7 +1,6 @@ -local api = require "luci.passwall2.api" -local appname = api.appname -local fs = api.fs -local types_dir = "/usr/lib/lua/luci/model/cbi/" .. appname .. "/server/type/" +api = require "luci.passwall2.api" +appname = api.appname +fs = api.fs m = Map("passwall2_server", translate("Server Config")) m.redirect = api.url("server") @@ -11,12 +10,21 @@ if not arg[1] or not m:get(arg[1]) then luci.http.redirect(m.redirect) end +local header = Template(appname .. "/server/config_header") +header.api = api +header.config = m.config +header.section = arg[1] +m:append(header) + m:append(Template(appname .. "/cbi/nodes_listvalue_com")) s = m:section(NamedSection, arg[1], "user", "") s.addremove = false s.dynamic = false +local types_dir = "/usr/lib/lua/luci/model/cbi/" .. appname .. "/server/type/" +s.val = m:get(arg[1]) or {} + o = s:option(Flag, "enable", translate("Enable")) o.default = "1" o.rmempty = false @@ -32,8 +40,6 @@ for filename in fs.dir(types_dir) do table.insert(type_table, filename) end table.sort(type_table, function(a, b) - if a == "socks.lua" then return true end - if b == "socks.lua" then return false end return a < b end) @@ -42,4 +48,10 @@ for index, value in ipairs(type_table) do setfenv(p_func, getfenv(1))(m, s) end +local footer = Template(appname .. "/server/config_footer") +footer.api = api +footer.config = m.config +footer.section = arg[1] +m:append(footer) + return m diff --git a/luci-app-passwall2/luasrc/passwall2/api.lua b/luci-app-passwall2/luasrc/passwall2/api.lua index 71a59821..e2510f51 100644 --- a/luci-app-passwall2/luasrc/passwall2/api.lua +++ b/luci-app-passwall2/luasrc/passwall2/api.lua @@ -1367,6 +1367,11 @@ function set_apply_on_parse(map) end function luci_types(id, m, s, type_name, option_prefix) + local fv_type + local field_type = s.fields["type"] + if field_type then + fv_type = field_type:formvalue(id) + end local rewrite_option_table = {} for key, value in pairs(s.fields) do if key:find(option_prefix) == 1 then @@ -1435,6 +1440,10 @@ function luci_types(id, m, s, type_name, option_prefix) else s.fields[key]:depends({ type = type_name }) end + + if fv_type and fv_type ~= type_name then + s.fields[key].rmempty = true + end end end end @@ -1623,3 +1632,83 @@ function parse_realm_uri(uri) end return realm end + +function get_network_devices() + local _sysnet = "/sys/class/net/" + -- Map UCI interface names to their device names and vice versa + local _iface_to_dev = {} + local _dev_to_ifaces = {} + local _iface_proto = {} + uci:foreach("network", "interface", function(sec) + local name = sec[".name"] + if name ~= "loopback" then + _iface_proto[name] = sec.proto + if sec.device then + _iface_to_dev[name] = sec.device + _dev_to_ifaces[sec.device] = _dev_to_ifaces[sec.device] or {} + table.insert(_dev_to_ifaces[sec.device], name) + end + end + end) + -- Classify device type using sysfs attributes + local function classify_sysfs(dev) + if fs.stat(_sysnet .. dev .. "/bridge", "type") == "dir" then + return i18n.translate("Bridge") + elseif fs.stat(_sysnet .. dev .. "/wireless", "type") == "dir" then + return i18n.translate("Wireless Adapter") + elseif dev:match("^tun") or dev:match("^tap") or dev:match("^wg") or dev:match("^ppp") then + return i18n.translate("Tunnel Interface") + else + return i18n.translate("Ethernet Adapter") + end + end + -- Classify offline UCI interfaces by config hints + local function classify_uci(dev_name, proto) + if dev_name and dev_name:match("^br%-") then + return i18n.translate("Bridge") + elseif proto == "wireguard" or proto == "pppoe" or proto == "pptp" or proto == "l2tp" then + return i18n.translate("Tunnel Interface") + else + return i18n.translate("Interface") + end + end + + local _seen = {} + local _devices = {} + -- Active kernel devices from /sys/class/net/ + -- Skip bridge member ports (/master) and DSA master devices (/dsa) + local _iter = fs.dir(_sysnet) + if _iter then + for dev in _iter do + if dev ~= "lo" + and not dev:match("^veth") + and not dev:match("^ifb") + and not dev:match("^gre") + and not dev:match("^sit") + and not dev:match("^ip6tnl") + and not dev:match("^erspan") + and not fs.stat(_sysnet .. dev .. "/master", "type") + and not fs.stat(_sysnet .. dev .. "/dsa", "type") + then + local dtype = classify_sysfs(dev) + local label = dtype .. ': "' .. dev .. '"' + if _dev_to_ifaces[dev] then + label = label .. " (" .. table.concat(_dev_to_ifaces[dev], ", ") .. ")" + end + _devices[#_devices + 1] = { name = dev, label = label, sort = dtype .. ":" .. dev } + _seen[dev] = true + end + end + end + -- UCI interfaces whose device does not currently exist + for iface, dev in pairs(_iface_to_dev) do + if not _seen[dev] then + local dtype = classify_uci(dev, _iface_proto[iface]) + local label = dtype .. ': "' .. iface .. '"' + _devices[#_devices + 1] = { name = iface, label = label, sort = "zzz:" .. iface } + _seen[dev] = true + end + end + table.sort(_devices, function(a, b) return a.sort < b.sort end) + return _devices +end diff --git a/luci-app-passwall2/luasrc/passwall2/server_app.lua b/luci-app-passwall2/luasrc/passwall2/server_app.lua index 6203614f..360305ff 100644 --- a/luci-app-passwall2/luasrc/passwall2/server_app.lua +++ b/luci-app-passwall2/luasrc/passwall2/server_app.lua @@ -120,7 +120,7 @@ local function start() local config_file = CONFIG_PATH .. "/" .. id .. ".json" local udp_forward = 1 local type = user.type or "" - if type == "SS" or type == "SSR" then + if type == "SSR" then if user.custom == "1" and user.config_str then config = jsonc.parse(api.base64Decode(user.config_str)) else diff --git a/luci-app-passwall2/luasrc/passwall2/util_shadowsocks.lua b/luci-app-passwall2/luasrc/passwall2/util_shadowsocks.lua index 5978991b..f4645138 100644 --- a/luci-app-passwall2/luasrc/passwall2/util_shadowsocks.lua +++ b/luci-app-passwall2/luasrc/passwall2/util_shadowsocks.lua @@ -75,11 +75,7 @@ function gen_config(var) reuse_port = true } - if node.type == "SS" then - config.plugin = plugin_file or nil - config.plugin_opts = (plugin_file) and node.plugin_opts or nil - config.mode = mode - elseif node.type == "SSR" then + if node.type == "SSR" then config.protocol = node.protocol config.protocol_param = node.protocol_param config.obfs = node.obfs diff --git a/luci-app-passwall2/luasrc/passwall2/util_tuic.lua b/luci-app-passwall2/luasrc/passwall2/util_tuic.lua deleted file mode 100644 index 9695c4f4..00000000 --- a/luci-app-passwall2/luasrc/passwall2/util_tuic.lua +++ /dev/null @@ -1,68 +0,0 @@ -module("luci.passwall2.util_tuic", package.seeall) -local api = require "luci.passwall2.api" -local uci = api.uci -local jsonc = api.jsonc - -function gen_config(var) - local node_id = var["node"] - if not node_id then - print("node Cannot be empty!") - return - end - local node = uci:get_all("passwall2", node_id) - local local_addr = var["local_addr"] - local local_port = var["local_port"] - local server_host = var["server_host"] or (node.address or ""):lower() - local server_port = var["server_port"] or node.port - local loglevel = var["loglevel"] or "warn" - - local tuic= { - relay = { - server = server_host .. ":" .. server_port, - ip = node.tuic_ip, - uuid = node.uuid, - password = node.tuic_password, - -- certificates = node.tuic_certificate and { node.tuic_certpath } or nil, - udp_relay_mode = node.tuic_udp_relay_mode, - congestion_control = node.tuic_congestion_control, - heartbeat = (tonumber(node.tuic_heartbeat) or 3) .. "s", - timeout = (tonumber(node.tuic_timeout) or 8) .. "s", - gc_interval = (tonumber(node.tuic_gc_interval) or 3) .. "s", - gc_lifetime = (tonumber(node.tuic_gc_lifetime) or 15) .. "s", - alpn = (node.tuic_tls_alpn and node.tuic_tls_alpn ~= "") and (function() - local alpn = {} - string.gsub(node.tuic_tls_alpn, '[^,]+', function(w) - table.insert(alpn, w) - end) - if #alpn > 0 then return alpn end - return nil - end)() or nil, - disable_sni = (node.tuic_disable_sni == "1"), - zero_rtt_handshake = (node.tuic_zero_rtt_handshake == "1"), - send_window = tonumber(node.tuic_send_window), - receive_window = tonumber(node.tuic_receive_window) - }, - ["local"] = { - server = "[::]:" .. local_port, - username = node.tuic_socks_username, - password = node.tuic_socks_password, - dual_stack = (node.tuic_dual_stack == "1") and true or false, - max_packet_size = tonumber(node.tuic_max_package_size) - }, - log_level = loglevel - } - return jsonc.stringify(tuic, 1) -end - -_G.gen_config = gen_config - -if arg[1] then - local func =_G[arg[1]] - if func then - local var = nil - if arg[2] then - var = jsonc.parse(arg[2]) - end - print(func(var)) - end -end diff --git a/luci-app-passwall2/luasrc/passwall2/util_xray.lua b/luci-app-passwall2/luasrc/passwall2/util_xray.lua index cf9fd5f6..b674e971 100644 --- a/luci-app-passwall2/luasrc/passwall2/util_xray.lua +++ b/luci-app-passwall2/luasrc/passwall2/util_xray.lua @@ -1219,6 +1219,11 @@ function gen_config(var) end end end + if node.chain_proxy == "3" and node.outbound_iface then + if outbound.streamSettings and outbound.streamSettings.sockopt then + outbound.streamSettings.sockopt.interface = node.outbound_iface + end + end return default_outTag, last_insert_outbound end diff --git a/luci-app-passwall2/luasrc/view/passwall2/node_config/footer.htm b/luci-app-passwall2/luasrc/view/passwall2/node_config/footer.htm index 2d9e3c77..feefc4dd 100644 --- a/luci-app-passwall2/luasrc/view/passwall2/node_config/footer.htm +++ b/luci-app-passwall2/luasrc/view/passwall2/node_config/footer.htm @@ -4,7 +4,7 @@ local api = self.api diff --git a/luci-app-passwall2/luasrc/view/passwall2/server/config_header.htm b/luci-app-passwall2/luasrc/view/passwall2/server/config_header.htm new file mode 100644 index 00000000..1957dec4 --- /dev/null +++ b/luci-app-passwall2/luasrc/view/passwall2/server/config_header.htm @@ -0,0 +1,56 @@ +<% +local api = self.api +-%> + diff --git a/luci-app-passwall2/po/fa/passwall2.po b/luci-app-passwall2/po/fa/passwall2.po index bd98dfe7..dfb60669 100644 --- a/luci-app-passwall2/po/fa/passwall2.po +++ b/luci-app-passwall2/po/fa/passwall2.po @@ -564,9 +564,6 @@ msgstr "اصلی" msgid "Transport Plugin" msgstr "افزونه انتقال" -msgid "Shadowsocks secondary encryption" -msgstr "رمزنگاری ثانویه Shadowsocks" - msgid "Obfs Type" msgstr "نوع مبهم‌سازی (Obfs)" @@ -1365,18 +1362,6 @@ msgstr "زمانی استفاده می‌شود که لینک گره شامل ا msgid "%s Node Use Type" msgstr "نوع استفاده گره %s" -msgid "Set the TUIC proxy server ip address" -msgstr "تنظیم آدرس IP سرور پروکسی TUIC" - -msgid "TUIC User Password For Connect Remote Server" -msgstr "رمز عبور کاربر TUIC برای اتصال به سرور راه دور" - -msgid "TUIC UserName For Local Socks" -msgstr "نام کاربری TUIC برای Socks محلی" - -msgid "TUIC Password For Local Socks" -msgstr "رمز عبور TUIC برای Socks محلی" - msgid "UDP relay mode" msgstr "حالت بازپخش UDP" @@ -1389,33 +1374,12 @@ msgstr "الگوریتم کنترل ازدحام" msgid "Heartbeat interval(second)" msgstr "بازه ضربان قلب (ثانیه)" -msgid "Timeout for establishing a connection to server(second)" -msgstr "مهلت زمانی برای برقراری اتصال به سرور (ثانیه)" - -msgid "Garbage collection interval(second)" -msgstr "بازه جمع‌آوری زباله (ثانیه)" - -msgid "Garbage collection lifetime(second)" -msgstr "طول عمر جمع‌آوری زباله (ثانیه)" - msgid "Disable SNI" msgstr "غیرفعال کردن SNI" msgid "Enable 0-RTT QUIC handshake" msgstr "فعال‌سازی دست تکان دادن 0-RTT QUIC" -msgid "TUIC send window" -msgstr "پنجره ارسال TUIC" - -msgid "TUIC receive window" -msgstr "پنجره دریافت TUIC" - -msgid "TUIC Maximum packet size the socks5 server can receive from external, in bytes" -msgstr "حداکثر اندازه بسته TUIC که سرور socks5 می‌تواند از خارج دریافت کند، به بایت" - -msgid "Set if the listening socket should be dual-stack" -msgstr "تنظیم کنید که سوکت شنونده دو پشته‌ای (dual-stack) باشد یا خیر" - msgid "
none: default, no masquerade, data sent is packets with no characteristics.
srtp: disguised as an SRTP packet, it will be recognized as video call data (such as FaceTime).
utp: packets disguised as uTP will be recognized as bittorrent downloaded data.
wechat-video: packets disguised as WeChat video calls.
dtls: disguised as DTLS 1.2 packet.
wireguard: disguised as a WireGuard packet. (not really WireGuard protocol)
dns: Disguising traffic as DNS requests." msgstr "
none: پیش‌فرض، بدون استتار، داده‌های ارسالی بسته‌های بدون مشخصه هستند.
srtp: مبدل شده به بسته SRTP، به عنوان داده تماس تصویری (مانند FaceTime) شناخته می‌شود.
utp: بسته‌های مبدل شده به uTP به عنوان داده دانلود شده bittorrent شناخته می‌شوند.
wechat-video: بسته‌های مبدل شده به تماس‌های تصویری WeChat.
dtls: مبدل شده به بسته DTLS 1.2.
wireguard: مبدل شده به بسته WireGuard. (نه واقعاً پروتکل WireGuard)
dns: پنهان کردن ترافیک به عنوان درخواست‌های DNS." @@ -2323,9 +2287,6 @@ msgstr "Xray از افزونه %s پشتیبانی نمی‌کند." msgid "Plugin options Incomplete." msgstr "گزینه‌های افزونه ناقص است." -msgid "shadowsocks-libev unsupport 2022 encryption." -msgstr "shadowsocks-libev از رمزنگاری 2022 پشتیبانی نمی‌کند." - msgid "Please replace %s to support %s transmission method." msgstr "لطفا برای پشتیبانی از روش انتقال %s، %s را جایگزین کنید." diff --git a/luci-app-passwall2/po/ru/passwall2.po b/luci-app-passwall2/po/ru/passwall2.po index 3e814ff5..cb5b8969 100644 --- a/luci-app-passwall2/po/ru/passwall2.po +++ b/luci-app-passwall2/po/ru/passwall2.po @@ -559,9 +559,6 @@ msgstr "Оригинал" msgid "Transport Plugin" msgstr "Плагин транспорта" -msgid "Shadowsocks secondary encryption" -msgstr "Дополнительное шифрование Shadowsocks" - msgid "global_padding" msgstr "Включить padding-заполнение" @@ -1366,18 +1363,6 @@ msgstr "Используется, если в ссылке на узел это msgid "%s Node Use Type" msgstr "Тип использования сервера %s" -msgid "Set the TUIC proxy server ip address" -msgstr "Указать IP-адрес сервера TUIC" - -msgid "TUIC User Password For Connect Remote Server" -msgstr "Пароль для подключения к удалённому серверу TUIC" - -msgid "TUIC UserName For Local Socks" -msgstr "Имя пользователя для локального SOCKS TUIC" - -msgid "TUIC Password For Local Socks" -msgstr "Пароль для локального SOCKS TUIC" - msgid "UDP relay mode" msgstr "Режим ретрансляции UDP" @@ -1390,33 +1375,12 @@ msgstr "Алгоритм контроля перегрузок" msgid "Heartbeat interval(second)" msgstr "Интервал heartbeat-пакетов (сек)" -msgid "Timeout for establishing a connection to server(second)" -msgstr "Тайм-аут установки соединения с сервером (сек)" - -msgid "Garbage collection interval(second)" -msgstr "Интервал очистки фрагментов UDP (сек)" - -msgid "Garbage collection lifetime(second)" -msgstr "Время жизни фрагментов UDP на сервере (сек)" - msgid "Disable SNI" msgstr "Отключить SNI" msgid "Enable 0-RTT QUIC handshake" msgstr "Включить 0-RTT рукопожатие QUIC" -msgid "TUIC send window" -msgstr "Окно отправки TUIC (макс. байт без подтверждения: по умолчанию 8 МБ × 2)" - -msgid "TUIC receive window" -msgstr "Окно приёма TUIC (макс. байт без подтверждения: по умолчанию 8 МБ)" - -msgid "TUIC Maximum packet size the socks5 server can receive from external, in bytes" -msgstr "Макс. размер пакета, который SOCKS5-сервер TUIC может принять извне (в байтах)" - -msgid "Set if the listening socket should be dual-stack" -msgstr "Включить поддержку dual-stack для слушающего сокета" - msgid "
none: default, no masquerade, data sent is packets with no characteristics.
srtp: disguised as an SRTP packet, it will be recognized as video call data (such as FaceTime).
utp: packets disguised as uTP will be recognized as bittorrent downloaded data.
wechat-video: packets disguised as WeChat video calls.
dtls: disguised as DTLS 1.2 packet.
wireguard: disguised as a WireGuard packet. (not really WireGuard protocol)
dns: Disguising traffic as DNS requests." msgstr "
none: по умолчанию, без маскировки, данные отправляются обычными пакетами.
srtp: маскировка под SRTP — трафик определяется как видеозвонок (например, FaceTime).
utp: маскировка под uTP — трафик определяется как BitTorrent.
wechat-video: маскировка под видеозвонок WeChat.
dtls: маскировка под DTLS 1.2.
wireguard: маскировка под WireGuard (не настоящий протокол WireGuard).
dns: маскировка трафика под DNS-запросы." @@ -2321,9 +2285,6 @@ msgstr "Xray не поддерживает плагин %s." msgid "Plugin options Incomplete." msgstr "Опции плагина указаны не полностью." -msgid "shadowsocks-libev unsupport 2022 encryption." -msgstr "shadowsocks-libev не поддерживает шифрование 2022." - msgid "Please replace %s to support %s transmission method." msgstr "Пожалуйста, замените %s, чтобы поддержать метод передачи %s." diff --git a/luci-app-passwall2/po/zh-cn/passwall2.po b/luci-app-passwall2/po/zh-cn/passwall2.po index 36492fcb..1010101b 100644 --- a/luci-app-passwall2/po/zh-cn/passwall2.po +++ b/luci-app-passwall2/po/zh-cn/passwall2.po @@ -556,9 +556,6 @@ msgstr "原版" msgid "Transport Plugin" msgstr "传输层插件" -msgid "Shadowsocks secondary encryption" -msgstr "Shadowsocks 二次加密" - msgid "Obfs Type" msgstr "混淆类型" @@ -1357,18 +1354,6 @@ msgstr "当节点链接未包含该参数时,将使用此设置。" msgid "%s Node Use Type" msgstr "%s 节点使用类型" -msgid "Set the TUIC proxy server ip address" -msgstr "指定远程TUIC服务器IP" - -msgid "TUIC User Password For Connect Remote Server" -msgstr "用于远程TUIC服务器连接的密码" - -msgid "TUIC UserName For Local Socks" -msgstr "用于本地Socks服务器连接的用户名" - -msgid "TUIC Password For Local Socks" -msgstr "用于本地Socks服务器连接的密码" - msgid "UDP relay mode" msgstr "UDP中继模式" @@ -1381,33 +1366,12 @@ msgstr "拥塞控制算法" msgid "Heartbeat interval(second)" msgstr "保活心跳包发送间隔(单位:秒)" -msgid "Timeout for establishing a connection to server(second)" -msgstr "连接超时时间(单位:秒)" - -msgid "Garbage collection interval(second)" -msgstr "UDP数据包片残片清理间隔(单位:秒)" - -msgid "Garbage collection lifetime(second)" -msgstr "UDP数据包残片在服务器的保留时间(单位:秒)" - msgid "Disable SNI" msgstr "关闭SNI服务器名称指示" msgid "Enable 0-RTT QUIC handshake" msgstr "客户端启用 0-RTT QUIC 连接握手" -msgid "TUIC send window" -msgstr "发送窗口(无需确认即可发送的最大字节数:默认8Mb*2)" - -msgid "TUIC receive window" -msgstr "接收窗口(无需确认即可接收的最大字节数:默认8Mb)" - -msgid "TUIC Maximum packet size the socks5 server can receive from external, in bytes" -msgstr "TUIC socks5 服务器可以从外部接收的最大数据包大小(以字节为单位)" - -msgid "Set if the listening socket should be dual-stack" -msgstr "设置监听套接字为双栈" - msgid "
none: default, no masquerade, data sent is packets with no characteristics.
srtp: disguised as an SRTP packet, it will be recognized as video call data (such as FaceTime).
utp: packets disguised as uTP will be recognized as bittorrent downloaded data.
wechat-video: packets disguised as WeChat video calls.
dtls: disguised as DTLS 1.2 packet.
wireguard: disguised as a WireGuard packet. (not really WireGuard protocol)
dns: Disguising traffic as DNS requests." msgstr "
none:默认值,不进行伪装,发送的数据是没有特征的数据包。
srtp:伪装成 SRTP 数据包,会被识别为视频通话数据(如 FaceTime)。
utp:伪装成 uTP 数据包,会被识别为 BT 下载数据。
wechat-video:伪装成微信视频通话的数据包。
dtls:伪装成 DTLS 1.2 数据包。
wireguard:伪装成 WireGuard 数据包。(并不是真正的 WireGuard 协议)
dns:把流量伪装成 DNS 请求。" @@ -2309,9 +2273,6 @@ msgstr "Xray 不支持 %s 插件。" msgid "Plugin options Incomplete." msgstr "插件选项不完整。" -msgid "shadowsocks-libev unsupport 2022 encryption." -msgstr "shadowsocks-libev 不支持2022加密。" - msgid "Please replace %s to support %s transmission method." msgstr "请更换 %s 以支持 %s 传输方式。" diff --git a/luci-app-passwall2/po/zh-tw/passwall2.po b/luci-app-passwall2/po/zh-tw/passwall2.po index ab40100e..efea133a 100644 --- a/luci-app-passwall2/po/zh-tw/passwall2.po +++ b/luci-app-passwall2/po/zh-tw/passwall2.po @@ -556,9 +556,6 @@ msgstr "原版" msgid "Transport Plugin" msgstr "傳輸層插件" -msgid "Shadowsocks secondary encryption" -msgstr "Shadowsocks 二次加密" - msgid "Obfs Type" msgstr "混淆類型" @@ -1357,18 +1354,6 @@ msgstr "當節點連結未包含該參數時,將使用此設定。" msgid "%s Node Use Type" msgstr "%s 節點使用類型" -msgid "Set the TUIC proxy server ip address" -msgstr "指定遠程TUIC服務器IP" - -msgid "TUIC User Password For Connect Remote Server" -msgstr "用於遠程TUIC服務器連接的密碼" - -msgid "TUIC UserName For Local Socks" -msgstr "用於本地Socks服務器連接的用戶名" - -msgid "TUIC Password For Local Socks" -msgstr "用於本地Socks服務器連接的密碼" - msgid "UDP relay mode" msgstr "UDP中继模式" @@ -1381,33 +1366,12 @@ msgstr "拥塞控制算法" msgid "Heartbeat interval(second)" msgstr "保活心跳包發送間隔(單位:秒)" -msgid "Timeout for establishing a connection to server(second)" -msgstr "連接超時時間(單位:秒)" - -msgid "Garbage collection interval(second)" -msgstr "UDP數据包片残片清理間隔(單位:秒)" - -msgid "Garbage collection lifetime(second)" -msgstr "UDP數据包残片在服務器的保留時間(單位:秒)" - msgid "Disable SNI" msgstr "關閉SNI服務器名称指示" msgid "Enable 0-RTT QUIC handshake" msgstr "客戶端啟用 0-RTT QUIC 連接握手" -msgid "TUIC send window" -msgstr "發送窗口(無需確認即可發送的最大字节數:默認8Mb*2)" - -msgid "TUIC receive window" -msgstr "接收窗口(無需確認即可接收的最大字节數:默認8Mb)" - -msgid "TUIC Maximum packet size the socks5 server can receive from external, in bytes" -msgstr "TUIC socks5 服務器可以从外部接收的最大數据包大小(以字节為單位)" - -msgid "Set if the listening socket should be dual-stack" -msgstr "設置監聽套接字為双栈" - msgid "
none: default, no masquerade, data sent is packets with no characteristics.
srtp: disguised as an SRTP packet, it will be recognized as video call data (such as FaceTime).
utp: packets disguised as uTP will be recognized as bittorrent downloaded data.
wechat-video: packets disguised as WeChat video calls.
dtls: disguised as DTLS 1.2 packet.
wireguard: disguised as a WireGuard packet. (not really WireGuard protocol)
dns: Disguising traffic as DNS requests." msgstr "
none:默認值,不进行伪装,發送的數据是沒有特征的數据包。
srtp:伪装成 SRTP 數据包,会被识别為視频通话數据(如 FaceTime)。
utp:伪装成 uTP 數据包,会被识别為 BT 下載數据。
wechat-video:伪装成微信視频通话的數据包。
dtls:伪装成 DTLS 1.2 數据包。
wireguard:伪装成 WireGuard 數据包。(並不是真正的 WireGuard 協議)
dns:把流量伪装成 DNS 請求。" @@ -2315,9 +2279,6 @@ msgstr "Xray 不支持 %s 插件。" msgid "Plugin options Incomplete." msgstr "插件選項不完整。" -msgid "shadowsocks-libev unsupport 2022 encryption." -msgstr "shadowsocks-libev 不支持2022加密。" - msgid "Please replace %s to support %s transmission method." msgstr "請更換 %s 以支援 %s 傳輸方式。" diff --git a/luci-app-passwall2/root/usr/share/passwall2/app.sh b/luci-app-passwall2/root/usr/share/passwall2/app.sh index 75dff526..b65a3217 100755 --- a/luci-app-passwall2/root/usr/share/passwall2/app.sh +++ b/luci-app-passwall2/root/usr/share/passwall2/app.sh @@ -14,7 +14,6 @@ UTIL_SS=$LUA_UTIL_PATH/util_shadowsocks.lua UTIL_XRAY=$LUA_UTIL_PATH/util_xray.lua UTIL_NAIVE=$LUA_UTIL_PATH/util_naiveproxy.lua UTIL_HYSTERIA2=$LUA_UTIL_PATH/util_hysteria2.lua -UTIL_TUIC=$LUA_UTIL_PATH/util_tuic.lua SINGBOX_BIN=$(first_type $(config_t_get global_app sing_box_file) sing-box) XRAY_BIN=$(first_type $(config_t_get global_app xray_file) xray) @@ -467,18 +466,6 @@ run_socks() { lua $UTIL_SS gen_config "${_json_arg}" > $config_file [ -z "$no_run" ] && ln_run ${QUEUE_RUN} "$(first_type ssr-local)" "ssr-local" $log_file -c "$config_file" -v -u ;; - ss) - json_add_string "local_addr" "${bind}" - json_add_string "local_port" "${socks_port}" - json_add_string "mode" "tcp_and_udp" - [ -z "$no_run" ] && { - local plugin_sh="${config_file%.json}_plugin.sh" - json_add_string "plugin_sh" "${plugin_sh}" - } - local _json_arg="$(json_dump)" - lua $UTIL_SS gen_config "${_json_arg}" > $config_file - [ -z "$no_run" ] && ln_run ${QUEUE_RUN} "$(first_type ss-local)" "ss-local" $log_file -c "$config_file" -v - ;; ss-rust) json_add_string "local_socks_address" "${bind}" json_add_string "local_socks_port" "${socks_port}" @@ -509,13 +496,6 @@ run_socks() { lua $UTIL_HYSTERIA2 gen_config "${_json_arg}" > $config_file [ -z "$no_run" ] && ln_run ${QUEUE_RUN} "$(first_type $(config_t_get global_app hysteria_file))" "hysteria" $log_file -c "$config_file" client ;; - tuic) - json_add_string "local_addr" "${bind}" - json_add_string "local_port" "${socks_port}" - local _json_arg="$(json_dump)" - lua $UTIL_TUIC gen_config "${_json_arg}" > $config_file - [ -z "$no_run" ] && ln_run ${QUEUE_RUN} "$(first_type tuic-client)" "tuic-client" $log_file -c "$config_file" - ;; esac # http to socks diff --git a/luci-app-passwall2/root/usr/share/passwall2/subscribe.lua b/luci-app-passwall2/root/usr/share/passwall2/subscribe.lua index c374fb43..35104922 100755 --- a/luci-app-passwall2/root/usr/share/passwall2/subscribe.lua +++ b/luci-app-passwall2/root/usr/share/passwall2/subscribe.lua @@ -25,7 +25,6 @@ local log = api.log local i18n = api.i18n local lyaml = require "lyaml" -local has_ss = api.is_finded("ss-redir") local has_ss_rust = api.is_finded("sslocal") local has_ssr = api.is_finded("ssr-local") and api.is_finded("ssr-redir") local has_singbox = api.finded_com("sing-box") @@ -36,7 +35,7 @@ local DEFAULT_FILTER_KEYWORD_MODE = uci:get(appname, "@global_subscribe[0]", "fi local DEFAULT_FILTER_KEYWORD_DISCARD_LIST = uci:get(appname, "@global_subscribe[0]", "filter_discard_list") or {} local DEFAULT_FILTER_KEYWORD_KEEP_LIST = uci:get(appname, "@global_subscribe[0]", "filter_keep_list") or {} -- Nodes should be retrieved using the core type (if not set on the node subscription page, the default type will be used automatically). -local DEFAULT_SS_TYPE = api.get_core("ss_type", {{has_ss,"shadowsocks-libev"},{has_ss_rust,"shadowsocks-rust"},{has_singbox,"sing-box"},{has_xray,"xray"}}) +local DEFAULT_SS_TYPE = api.get_core("ss_type", {{has_ss_rust,"shadowsocks-rust"},{has_singbox,"sing-box"},{has_xray,"xray"}}) local DEFAULT_TROJAN_TYPE = api.get_core("trojan_type", {{has_singbox,"sing-box"},{has_xray,"xray"}}) local DEFAULT_VMESS_TYPE = api.get_core("vmess_type", {{has_xray,"xray"},{has_singbox,"sing-box"}}) local DEFAULT_VLESS_TYPE = api.get_core("vless_type", {{has_xray,"xray"},{has_singbox,"sing-box"}}) @@ -44,7 +43,6 @@ local DEFAULT_HYSTERIA2_TYPE = api.get_core("hysteria2_type", {{has_hysteria2,"h local core_has = { ["xray"] = has_xray, ["sing-box"] = has_singbox, - ["shadowsocks-libev"] = has_ss, ["shadowsocks-rust"] = has_ss_rust, ["hysteria2"] = has_hysteria2 } @@ -460,9 +458,7 @@ end -- Configure the SS protocol implementation type local function set_ss_implementation(ss_type, result) - if ss_type == "shadowsocks-libev" and has_ss then - result.type = "SS" - elseif ss_type == "shadowsocks-rust" and has_ss_rust then + if ss_type == "shadowsocks-rust" and has_ss_rust then result.type = 'SS-Rust' elseif ss_type == "xray" and has_xray then result.type = 'Xray' @@ -485,6 +481,7 @@ local function parseClashNode(node, add_mode, group, sub_cfg) local sub_vmess_type = DEFAULT_VMESS_TYPE local sub_vless_type = DEFAULT_VLESS_TYPE local sub_hysteria2_type = DEFAULT_HYSTERIA2_TYPE + local sub_hy_up_mbps, sub_hy_down_mbps = 1000, 1000 if sub_cfg then if sub_cfg.allowInsecure and sub_cfg.allowInsecure ~= "1" then sub_allowinsecure = nil @@ -509,6 +506,8 @@ local function parseClashNode(node, add_mode, group, sub_cfg) if hysteria2_type ~= "global" and core_has[hysteria2_type] then sub_hysteria2_type = hysteria2_type end + sub_hy_up_mbps = sub_cfg.hysteria_up_mbps + sub_hy_down_mbps = sub_cfg.hysteria_down_mbps end local result = { timeout = 60, @@ -778,6 +777,7 @@ local function processData(szType, content, add_mode, group, sub_cfg) local sub_vmess_type = DEFAULT_VMESS_TYPE local sub_vless_type = DEFAULT_VLESS_TYPE local sub_hysteria2_type = DEFAULT_HYSTERIA2_TYPE + local sub_hy_up_mbps, sub_hy_down_mbps = 1000, 1000 if sub_cfg then if sub_cfg.allowInsecure and sub_cfg.allowInsecure ~= "1" then sub_allowinsecure = nil @@ -802,6 +802,8 @@ local function processData(szType, content, add_mode, group, sub_cfg) if hysteria2_type ~= "global" and core_has[hysteria2_type] then sub_hysteria2_type = hysteria2_type end + sub_hy_up_mbps = sub_cfg.hysteria_up_mbps + sub_hy_down_mbps = sub_cfg.hysteria_down_mbps end local result = { timeout = 60, @@ -1113,20 +1115,6 @@ local function processData(szType, content, add_mode, group, sub_cfg) end end - if result.type == "SS" then - local aead2022_methods = { "2022-blake3-aes-128-gcm", "2022-blake3-aes-256-gcm", "2022-blake3-chacha20-poly1305" } - local aead2022 = false - for k, v in ipairs(aead2022_methods) do - if method:lower() == v:lower() then - aead2022 = true - end - end - if aead2022 then - -- shadowsocks-libev does not support 2022 encryption. - result.error_msg = i18n.translatef("shadowsocks-libev unsupport 2022 encryption.") - end - end - if params.type then params.type = string.lower(params.type) if result.type == "sing-box" and params.type == "raw" then @@ -1140,7 +1128,7 @@ local function processData(szType, content, add_mode, group, sub_cfg) else result.transport = params.type end - if result.type ~= "SS-Rust" and result.type ~= "SS" then + if result.type ~= "SS-Rust" then if params.type == 'ws' then result.ws_host = params.host result.ws_path = params.path @@ -1647,8 +1635,8 @@ local function processData(szType, content, add_mode, group, sub_cfg) local insecure = params.allowinsecure or params.allowInsecure or params.insecure result.tls_allowInsecure = (insecure == "1" or insecure == "0") and insecure or (sub_allowinsecure and "1" or "0") result.alpn = params.alpn - result.hysteria_up_mbps = params.upmbps - result.hysteria_down_mbps = params.downmbps + result.hysteria_up_mbps = params.upmbps or sub_hy_up_mbps + result.hysteria_down_mbps = params.downmbps or sub_hy_down_mbps result.hysteria_hop = params.mport elseif szType == 'hysteria2' or szType == 'hy2' then @@ -1692,6 +1680,8 @@ local function processData(szType, content, add_mode, group, sub_cfg) result.tls_CertByName = params.vcn local insecure = params.allowinsecure or params.insecure result.tls_allowInsecure = (insecure == "1" or insecure == "0") and insecure or (sub_allowinsecure and "1" or "0") + result.hysteria2_up_mbps = params.upmbps or sub_hy_up_mbps + result.hysteria2_down_mbps = params.downmbps or sub_hy_down_mbps result.hysteria2_hop = params.mport if params["obfs-password"] or params["obfs_password"] then result.hysteria2_obfs_type = "salamander" @@ -2180,7 +2170,7 @@ local function update_node(manual) local list = v["list"] local sub_cfg = v["sub_cfg"] local domain_resolver, domain_resolver_dns, domain_resolver_dns_https, domain_strategy - local preproxy_node_group, to_node_group, chain_node_type = "", "", "" + local preproxy_node_group, to_node_group, outbound_iface_group, chain_node_type = "", "", "", "" -- Subscription Group Chain Agent local function valid_chain_node(node) if not node then return "" end @@ -2200,6 +2190,8 @@ local function update_node(manual) domain_strategy = (sub_cfg.domain_strategy == "UseIPv4" or sub_cfg.domain_strategy == "UseIPv6") and sub_cfg.domain_strategy or nil preproxy_node_group = (sub_cfg.chain_proxy == "1") and valid_chain_node(sub_cfg.preproxy_node) or "" to_node_group = (sub_cfg.chain_proxy == "2") and valid_chain_node(sub_cfg.to_node) or "" + outbound_iface_group = (sub_cfg.chain_proxy == "3") and sub_cfg.outbound_iface or "" + chain_node_type = (outbound_iface_group ~= "") and "iface" or chain_node_type end for _, vv in ipairs(list) do local cfgid = uci:section(appname, "nodes", api.gen_short_uuid()) @@ -2235,6 +2227,9 @@ local function update_node(manual) elseif to_node_group ~= "" then uci:set(appname, cfgid, "chain_proxy", "2") uci:set(appname, cfgid, "to_node", to_node_group) + elseif outbound_iface_group ~= "" then + uci:set(appname, cfgid, "chain_proxy", "3") + uci:set(appname, cfgid, "outbound_iface", outbound_iface_group) end end end diff --git a/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua b/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua index 014fe3af..79430d37 100644 --- a/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua +++ b/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua @@ -647,6 +647,8 @@ function index() entry({"admin", "services", "shadowsocksr", "ping"}, call("act_ping")) entry({"admin", "services", "shadowsocksr", "save_order"}, call("save_order")).leaf = true entry({"admin", "services", "shadowsocksr", "delete_node"}, call("act_delete_node")).leaf = true + entry({"admin", "services", "shadowsocksr", "add_subscribe_item"}, call("add_subscribe_item")).leaf = true + entry({"admin", "services", "shadowsocksr", "delete_subscribe_item"}, call("delete_subscribe_item")).leaf = true entry({"admin", "services", "shadowsocksr", "toggle_subscribe_item_enabled"}, call("toggle_subscribe_item_enabled")).leaf = true entry({"admin", "services", "shadowsocksr", "reset"}, call("act_reset")) entry({"admin", "services", "shadowsocksr", "restart"}, call("act_restart")) @@ -665,7 +667,9 @@ end function subscribe() nixio.fs.remove(SERVER_DETECT_CACHE) - local ret = luci.sys.call(": > /var/log/ssrplus.log && /usr/bin/lua /usr/share/shadowsocksr/subscribe.lua >>/var/log/ssrplus.log 2>&1") + local sid = luci.http.formvalue("sid") or "" + local subscribe_arg = sid ~= "" and (" " .. luci.util.shellquote(sid)) or "" + local ret = luci.sys.call(": > /var/log/ssrplus.log && /usr/bin/lua /usr/share/shadowsocksr/subscribe.lua" .. subscribe_arg .. " >>/var/log/ssrplus.log 2>&1") luci.http.prepare_content("application/json") luci.http.write_json({ret = ret}) end @@ -775,8 +779,67 @@ function act_delete_node() return end - local com_cmd = luci.sys.call("uci -q commit shadowsocksr >/dev/null 2>&1") - if com_cmd ~= 0 then + local ret_cmd = luci.sys.call("uci -q commit shadowsocksr >/dev/null 2>&1") + if ret_cmd ~= 0 then + luci.http.prepare_content("application/json") + luci.http.write_json({ ret = 0, error = "commit failed" }) + return + end + + luci.http.prepare_content("application/json") + luci.http.write_json({ ret = 1, sid = sid }) +end + +function add_subscribe_item() + local sid = luci.sys.exec("uci add shadowsocksr server_subscribe_item"):gsub("%s+", "") + + if not sid or sid == "" then + luci.http.prepare_content("application/json") + luci.http.write_json({ ret = 0, error = "add failed" }) + return + end + + local alias = string.format("Subscribe %s", sid:sub(-4)) + + -- set enabled + local subscribe_enabled = luci.sys.call("uci -q set shadowsocksr." .. sid .. ".enabled=1") + if subscribe_enabled ~= 0 then + luci.http.prepare_content("application/json") + luci.http.write_json({ ret = 0, error = "set enabled failed" }) + return + end + + -- set alias + local subscribe_alias = luci.sys.call("uci -q set shadowsocksr." .. sid .. ".alias='" .. alias .. "'") + if subscribe_alias ~= 0 then + luci.http.prepare_content("application/json") + luci.http.write_json({ ret = 0, error = "set alias failed" }) + return + end + + luci.http.prepare_content("application/json") + luci.http.write_json({ ret = 1, sid = sid, alias = alias, enabled = "1" }) +end + +function delete_subscribe_item() + local sid = trim(luci.http.formvalue("sid")) + if sid == "" then + luci.http.status(400, "Bad Request") + luci.http.prepare_content("application/json") + luci.http.write_json({ ret = 0, error = "missing sid" }) + return + end + + local delete_subscribe_set = luci.sys.call("uci -q delete shadowsocksr." .. sid .. " 2>/dev/null") + if delete_subscribe_set ~= 0 then + luci.http.prepare_content("application/json") + luci.http.write_json({ ret = 0, error = "delete failed" }) + return + end + + -- commit + local delete_subscribe_cmd = luci.sys.call("uci -q commit shadowsocksr >/dev/null 2>&1") + if delete_subscribe_cmd ~= 0 then luci.http.prepare_content("application/json") luci.http.write_json({ ret = 0, error = "commit failed" }) return @@ -788,21 +851,69 @@ end function toggle_subscribe_item_enabled() local sid = trim(luci.http.formvalue("sid")) - local enabled = luci.http.formvalue("enabled") == "1" and "1" or "0" + local field = luci.http.formvalue("field") + local value = luci.http.formvalue("value") - if sid == "" or uci:get("shadowsocksr", sid) ~= "server_subscribe_item" then + -- 兼容旧调用方式(只传 enabled) + if not field then + field = "enabled" + value = luci.http.formvalue("enabled") == "1" and "1" or "0" + end + + -- 参数校验 + if sid == "" then + luci.http.status(400, "Bad Request") + luci.http.prepare_content("application/json") + luci.http.write_json({ ret = 0, error = "missing sid" }) + return + end + + -- 检查 sid 对应的 section 类型 + if uci:get("shadowsocksr", sid) ~= "server_subscribe_item" then luci.http.status(400, "Bad Request") luci.http.prepare_content("application/json") luci.http.write_json({ ret = 0, error = "invalid_sid" }) return end - uci:set("shadowsocksr", sid, "enabled", enabled) - uci:save("shadowsocksr") - uci:commit("shadowsocksr") + -- 白名单:只允许以下字段 + local allowed_fields = { enabled = true, alias = true, url = true } + if not allowed_fields[field] then + luci.http.status(400, "Bad Request") + luci.http.prepare_content("application/json") + luci.http.write_json({ ret = 0, error = "unsupported field" }) + return + end + + -- 处理字段值 + if field == "enabled" then + value = (value == "1" or value == "true") and "1" or "0" + elseif field == "alias" or field == "url" then + value = value and trim(value) or "" + end + + -- 转义 value 中的单引号(避免破坏 uci 命令) + local escaped_value = value:gsub("'", "'\\''") + + -- 使用外部 uci 命令设置值 + local set_cmd = string.format("uci -q set shadowsocksr.%s.%s='%s'", sid, field, escaped_value) + local set_ret = luci.sys.call(set_cmd .. " >/dev/null 2>&1") + if set_ret ~= 0 then + luci.http.prepare_content("application/json") + luci.http.write_json({ ret = 0, error = "uci set failed" }) + return + end + + -- 提交更改 + local ret_cmd = luci.sys.call("uci -q commit shadowsocksr >/dev/null 2>&1") + if ret_cmd ~= 0 then + luci.http.prepare_content("application/json") + luci.http.write_json({ ret = 0, error = "commit failed" }) + return + end luci.http.prepare_content("application/json") - luci.http.write_json({ ret = 1, sid = sid, enabled = enabled }) + luci.http.write_json({ ret = 1, sid = sid, field = field, value = value }) end function component_status() @@ -1342,6 +1453,10 @@ function act_ping() }) end + if e.ping then + e.ping = math.floor(e.ping + 0.5) + end + luci.http.prepare_content("application/json") luci.http.write_json(e) end diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 76f8a6e9..32b6ba05 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -142,7 +142,7 @@ local function set_apply_on_parse(map) local old = map.on_after_save map.on_after_save = function(self) if old then old(self) end - map:set("@global[0]", "timestamp", os.time()) + --map:set("@global[0]", "timestamp", os.time()) end end end diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua index 8fa3f19e..92a8917b 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua @@ -64,7 +64,7 @@ local function set_apply_on_parse(map) local old = map.on_after_save map.on_after_save = function(self) if old then old(self) end - map:set("@global[0]", "timestamp", os.time()) + -- map:set("@global[0]", "timestamp", os.time()) end end end @@ -552,8 +552,9 @@ s = m:section(TypedSection, "server_subscribe_item", translate("Subscribe URL")) s.anonymous = true s.addremove = true s.sortable = true -s.template = "cbi/tblsection" -s.template_addremove = "shadowsocksr/subscribe_actions_footer" +s.template = "shadowsocksr/subscribe_actions_footer" +--s.template = "cbi/tblsection" +--s.template_addremove = "shadowsocksr/subscribe_actions_footer" s.description = translate("Manage multiple subscribe URLs, including Clash subscriptions. Only enabled entries are included when updating all subscriptions.") o = s:option(Flag, "enabled", translate("Enable")) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm index 3ac4c9ce..14ce0b7d 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm @@ -199,16 +199,17 @@ local autostart = self.map and self.map.ssr_subscribe_autostart } function startSubscribe(options, done) { + options = options || {}; running = true; updateLog(''); - setStatus('<%:Starting subscription update...%>', '#0072c3'); + setStatus(options.title || '<%:Starting subscription update...%>', '#0072c3'); openModal(); clearPoll(); fetchLog(); pollTimer = window.setInterval(fetchLog, 1000); - XHR.get('<%=subscribe_url%>', null, function(x, rv) { + XHR.get('<%=subscribe_url%>', options.sid ? { sid: options.sid } : null, function(x, rv) { var ok = !!(rv && typeof rv.ret !== 'undefined' && Number(rv.ret) === 0); if (typeof done === 'function') { done(ok); diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm index 22bd436f..e9d4e0e3 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm @@ -1,62 +1,295 @@ +<%- +local rowcnt = 0 + +local function rowstyle() + rowcnt = rowcnt + 1 + if rowcnt % 2 == 0 then + return " cbi-rowstyle-1" + end + return " cbi-rowstyle-2" +end + +local function width(o) + if o.width then + if type(o.width) == "number" then + return ' style="width:%dpx"' % o.width + end + return ' style="width:%s"' % o.width + end + return "" +end +-%> + +
+ <% if self.title and #self.title > 0 then -%> +

<%=self.title%>

+ <%- end %> + <%- if self.sortable then -%> + + <%- end -%> +
<%=self.description%>
+ + + <% for _, node in ipairs(self.children) do if not node.optional and node.option ~= "_update" then -%> + + <% end end -%> + + + + <% + local isempty = true + for i, section in ipairs(self:cfgsections()) do + isempty = false + local colorclass = rowstyle() + local scope = { + valueheader = "cbi/cell_valueheader", + valuefooter = "cbi/cell_valuefooter" + } + -%> + + <% + for _, node in ipairs(self.children) do + if not node.optional and node.option ~= "_update" then + node:render(section, scope) + end + end + local alias = self.map:get(section, "alias") or string.format("Subscribe %s", section:sub(-4)) + local update_title = "Subscribe: " .. tostring(alias) + -%> + + + <%- end -%> + + <%- if isempty then -%> + + + + <%- end -%> +
><%=node.title%><%:Actions%>
+
+ + + + onclick="return window.ssrUpdateSubscribeItem(this)" + /> +
+
<%:This section contains no values yet%>
+
+
- - - - + + +
@@ -114,7 +359,8 @@ width: 100%; } - #ssr-subscribe-toolbar > .btn.cbi-button-add { + #ssr-subscribe-toolbar > .btn.cbi-button-add, + #ssr-subscribe-toolbar > .btn.cbi-button-save { margin: 0; } @@ -143,17 +389,13 @@ } #ssr-subscribe-toolbar > .btn.cbi-button-add, - #ssr-subscribe-toolbar > .ssr-subscribe-save-settings, + #ssr-subscribe-toolbar > .btn.cbi-button-save, #ssr-subscribe-toolbar .ssr-subscribe-toolbar-slot .btn { min-height: 2.1rem; padding-top: 0.18rem; padding-bottom: 0.18rem; } - #ssr-subscribe-toolbar > .ssr-subscribe-save-settings { - margin: 0; - } - #ssr-subscribe-toolbar .ssr-subscribe-toolbar-slot .btn.cbi-button-add { margin: 0; width: auto; @@ -174,7 +416,7 @@ } #ssr-subscribe-toolbar > .btn.cbi-button-add, - #ssr-subscribe-toolbar > .ssr-subscribe-save-settings, + #ssr-subscribe-toolbar > .btn.cbi-button-save, #ssr-subscribe-toolbar .ssr-subscribe-toolbar-slot-delete, #ssr-subscribe-toolbar .ssr-subscribe-toolbar-slot-update { margin-left: 0; diff --git a/luci-app-ssr-plus/po/templates/ssr-plus.pot b/luci-app-ssr-plus/po/templates/ssr-plus.pot index d178abdd..faf79287 100644 --- a/luci-app-ssr-plus/po/templates/ssr-plus.pot +++ b/luci-app-ssr-plus/po/templates/ssr-plus.pot @@ -20,7 +20,7 @@ msgstr "" msgid "128 Threads" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1508 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1503 msgid "16" msgstr "" @@ -36,7 +36,7 @@ msgstr "" msgid "32 Threads" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1339 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1334 msgid "360" msgstr "" @@ -56,7 +56,7 @@ msgstr "" msgid "64 Threads" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1495 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1490 msgid "8" msgstr "" @@ -68,9 +68,9 @@ msgstr "" msgid "" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1016 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1354 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1381 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1011 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1349 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1376 msgid "" msgstr "" @@ -80,30 +80,47 @@ msgid "" "etc." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1188 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1488 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1501 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1514 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1183 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1483 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1496 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1509 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:186 msgid "
  • " msgstr "" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:354 +msgid "A legal file path. This file must not exist before running." +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:387 +msgid "Accept LAN Access" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:627 msgid "Access Control" msgstr "" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:1035 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:235 msgid "Actions" msgstr "" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:1015 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_table.htm:290 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_table.htm:298 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:5 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:7 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:189 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:284 msgid "Add" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:215 +msgid "Add failed:" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:182 +msgid "Adding..." +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:221 msgid "Additional Version" msgstr "" @@ -124,12 +141,12 @@ msgstr "" msgid "AliYun Public DNS (223.5.5.5)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:563 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:651 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:568 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:656 msgid "Alias" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:378 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:373 msgid "Alias(optional)" msgstr "" @@ -149,6 +166,10 @@ msgstr "" msgid "All client proxy rules cleared." msgstr "" +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:101 +msgid "All settings saved successfully." +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/control.lua:35 msgid "Allow all except listed" msgstr "" @@ -157,7 +178,7 @@ msgstr "" msgid "Allow listed only" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:467 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:471 msgid "Allow subscribe Insecure nodes By default" msgstr "" @@ -166,11 +187,15 @@ msgstr "" msgid "Already up to date" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:862 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:186 +msgid "Alter ID" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:857 msgid "AlterId" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1256 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1251 msgid "An FinalMaskObject in JSON format, used for sharing." msgstr "" @@ -196,20 +221,24 @@ msgstr "" msgid "Apple domains optimization" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:711 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:717 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:716 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:722 msgid "Apply" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:408 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:412 msgid "Appointment Mode" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:112 +msgid "Are you sure you want to delete subscribe link: %s ?" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/backup_restore.htm:133 msgid "Are you sure you want to restore the client to default settings?" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:728 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:733 msgid "Auto Switch" msgstr "" @@ -217,22 +246,22 @@ msgstr "" msgid "Auto Threads" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:403 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:407 msgid "Auto Update" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:405 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:409 msgid "Auto Update Server subscription, GFW list and CHN route" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:796 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1554 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1570 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:791 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1549 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1565 msgid "BBR" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1555 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1571 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1550 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1566 msgid "BRUTAL" msgstr "" @@ -256,8 +285,12 @@ msgstr "" msgid "Base64 sstr failed." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1139 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1149 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:378 +msgid "Bind Local Only" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1134 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1144 msgid "BitTorrent (uTP)" msgstr "" @@ -265,7 +298,7 @@ msgstr "" msgid "Black Domain List" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:513 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:508 msgid "Bloom Filter" msgstr "" @@ -286,22 +319,26 @@ msgstr "" msgid "CNNIC SDNS (1.2.4.8)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:797 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1556 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1574 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:792 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1551 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1569 msgid "CUBIC" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1156 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1151 msgid "Camouflage Domain" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:924 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1145 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:919 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1140 msgid "Camouflage Type" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1464 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:227 +msgid "Certificate File Path" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1459 msgid "Certificate fingerprint" msgstr "" @@ -379,19 +416,19 @@ msgstr "" msgid "Clash Panel" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:397 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:392 msgid "Clash Subscription URL" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:409 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:404 msgid "Clash User-Agent" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:403 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:398 msgid "Clash YAML Path" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:357 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:352 msgid "Clash/Mihomo" msgstr "" @@ -408,9 +445,9 @@ msgid "Clear logs" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:264 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1018 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1356 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1383 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1013 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1351 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1378 msgid "Click to the page" msgstr "" @@ -431,7 +468,7 @@ msgid "Client supports manual IP or IP/CIDR input." msgstr "" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:1024 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:250 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:251 msgid "Close" msgstr "" @@ -459,11 +496,11 @@ msgstr "" msgid "Component Update" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1016 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1011 msgid "Configure XHTTP Extra Settings (JSON format), see:" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:794 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:789 msgid "Congestion control algorithm" msgstr "" @@ -475,11 +512,11 @@ msgstr "" msgid "Connect OK" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:103 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:82 msgid "Connection Timeout" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1367 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1362 msgid "" "Controls the policy used when performing DNS queries for ECH configuration." msgstr "" @@ -501,7 +538,7 @@ msgstr "" msgid "Create Backup File" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1602 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1597 msgid "Create upload file error." msgstr "" @@ -509,7 +546,7 @@ msgstr "" msgid "Current ARCH" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1622 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1617 msgid "Current Certificate Path" msgstr "" @@ -517,7 +554,7 @@ msgstr "" msgid "Current Version" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:547 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:542 msgid "Custom" msgstr "" @@ -541,7 +578,7 @@ msgid "" "(tcp://8.8.8.8 or tls://dns.google:853)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:551 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:546 msgid "Custom Plugin Path" msgstr "" @@ -561,7 +598,7 @@ msgstr "" msgid "Custom client proxy rules saved." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1257 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1252 msgid "" "Custom finalmask overrides mkcp, hysteria2, fragment, noise, and related " "settings." @@ -571,7 +608,7 @@ msgstr "" msgid "DL Backup" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1153 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1148 msgid "DNS" msgstr "" @@ -583,8 +620,8 @@ msgstr "" msgid "DNSPod Public DNS (119.29.29.29)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1141 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1151 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1136 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1146 msgid "DTLS 1.2" msgstr "" @@ -596,14 +633,18 @@ msgstr "" msgid "Day/Week" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1203 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1198 msgid "Decimal numbers separated by \",\" or Base64-encoded strings." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1231 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1404 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1416 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1430 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:193 +msgid "Decryption" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1226 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1399 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1411 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1425 msgid "Default" msgstr "" @@ -611,21 +652,21 @@ msgstr "" msgid "Default Node Local Port" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1515 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1510 msgid "Default reject rejects traffic." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:692 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:687 msgid "Default value 0 indicatesno heartbeat." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1489 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1484 msgid "" "Default: disable. When entering a negative number, such as -1, The Mux " "module will not be used to carry TCP traffic." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1502 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1497 msgid "" "Default:16. When entering a negative number, such as -1, The Mux module will " "not be used to carry UDP traffic, Use original UDP transmission method of " @@ -654,13 +695,18 @@ msgstr "" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:589 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_table.htm:248 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:261 msgid "Delete" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:500 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:504 msgid "Delete All Subscribe Servers" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:130 +msgid "Delete failed:" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/control.lua:112 msgid "Deny Domain List" msgstr "" @@ -678,15 +724,15 @@ msgstr "" msgid "Disable IPv6 for Overseas FQDN" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:649 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:644 msgid "Disable QUIC path MTU discovery" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:838 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:833 msgid "Disable SNI" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:719 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:714 msgid "Disable TCP No_delay" msgstr "" @@ -706,11 +752,15 @@ msgstr "" msgid "Domain Strategy" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:353 +msgid "DomainSocket Path" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:199 msgid "Domestic DNS Server" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1174 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1169 msgid "Downlink Capacity(Default:Mbps)" msgstr "" @@ -722,19 +772,19 @@ msgstr "" msgid "Download failed" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:849 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:844 msgid "Dual-stack Listening Socket" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1352 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1347 msgid "ECH Config" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1366 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1361 msgid "ECH Query Policy" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:966 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:961 msgid "Early Data Header Name" msgstr "" @@ -743,65 +793,65 @@ msgstr "" msgid "Edit" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:312 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:69 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:307 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:40 msgid "Edit ShadowSocksR Server" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:157 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:198 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:278 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:82 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:54 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:101 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:555 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:560 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:1031 msgid "Enable" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:843 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:838 msgid "Enable 0-RTT QUIC handshake" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:457 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:452 msgid "Enable Authentication" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:80 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1639 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1634 msgid "Enable Auto Switch" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1347 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1342 msgid "Enable ECH(optional)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:625 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:620 msgid "Enable Lazy Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1374 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1369 msgid "Enable ML-DSA-65(optional)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1533 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1528 msgid "" "Enable Multipath TCP, need to be enabled in both server and client " "configuration." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1469 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1464 msgid "Enable Mux.Cool" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:619 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:614 msgid "Enable Obfuscation" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:519 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:514 msgid "Enable Plugin" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:587 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:582 msgid "Enable Port Hopping" msgstr "" @@ -809,15 +859,15 @@ msgstr "" msgid "Enable Server" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:600 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:595 msgid "Enable Transport Protocol Settings" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:705 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:700 msgid "Enable V2 protocol." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:704 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:699 msgid "Enable V3 protocol." msgstr "" @@ -825,15 +875,15 @@ msgstr "" msgid "Enable adblock" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:508 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:503 msgid "Enable the SUoT protocol, requires server support." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1009 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1004 msgid "Enable this option to configure XHTTP Extra (JSON format)." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1186 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1181 msgid "Enabled Kernel virtual NIC TUN(optional)" msgstr "" @@ -841,19 +891,20 @@ msgstr "" msgid "Enabled Mixed" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:714 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1628 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:709 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1623 msgid "Enabling TCP Fast Open Requires Server Support." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:486 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:493 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:746 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:757 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:888 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:118 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:125 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:122 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:481 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:488 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:741 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:752 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:883 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:103 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:108 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:171 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:127 msgid "Encrypt Method" msgstr "" @@ -861,35 +912,35 @@ msgstr "" msgid "Enter Custom Ports" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:415 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:419 msgid "Every Day" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:420 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:424 msgid "Every Friday" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:416 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:420 msgid "Every Monday" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:421 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:425 msgid "Every Saturday" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:422 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:426 msgid "Every Sunday" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:419 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:423 msgid "Every Thursday" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:417 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:421 msgid "Every Tuesday" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:418 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:422 msgid "Every Wednesday" msgstr "" @@ -905,7 +956,7 @@ msgstr "" msgid "Extract failed" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1572 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1567 msgid "FORCE BRUTAL" msgstr "" @@ -942,19 +993,20 @@ msgstr "" msgid "File Not Exist" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:457 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:461 msgid "Filter Words splited by /" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1245 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1240 msgid "FinalMask" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1331 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1326 msgid "Finger Print" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1318 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1313 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:212 msgid "Flow" msgstr "" @@ -968,7 +1020,7 @@ msgstr "" msgid "For specific usage, see:" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:594 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:589 msgid "" "Format as 10000:20000 or 10000-20000 Multiple groups are separated by commas " "(,)." @@ -1014,11 +1066,11 @@ msgstr "" msgid "Game Mode UDP Relay" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:814 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:809 msgid "Garbage collection interval(second)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:820 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:815 msgid "Garbage collection lifetime(second)" msgstr "" @@ -1088,20 +1140,20 @@ msgstr "" msgid "Grant UCI access for luci-app-ssr-plus" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1080 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1075 msgid "Gun" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1099 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1094 msgid "H2 Read Idle Timeout" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1094 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1089 msgid "H2/gRPC Health Check" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:426 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:927 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:421 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:922 msgid "HTTP" msgstr "" @@ -1109,7 +1161,8 @@ msgstr "" msgid "HTTP Auth Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:931 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:926 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:291 msgid "HTTP Host" msgstr "" @@ -1117,7 +1170,8 @@ msgstr "" msgid "HTTP Password" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:936 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:931 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:295 msgid "HTTP Path" msgstr "" @@ -1129,27 +1183,29 @@ msgstr "" msgid "HTTP proxy auth method, default:none." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1062 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1057 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:268 msgid "HTTP/2 Host" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1067 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1062 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:274 msgid "HTTP/2 Path" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1134 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1129 msgid "Header" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1111 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1106 msgid "Health Check Timeout" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:802 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:797 msgid "Heartbeat interval(second)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:953 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:948 msgid "HeartbeatPeriod(second)" msgstr "" @@ -1157,20 +1213,20 @@ msgstr "" msgid "Hour" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:975 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:970 msgid "Httpupgrade Host" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:980 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:975 msgid "Httpupgrade Path" msgstr "" #: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:407 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:423 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:418 msgid "Hysteria2" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:643 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:638 msgid "Hysterir QUIC parameters" msgstr "" @@ -1178,7 +1234,7 @@ msgstr "" msgid "IP Route Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1428 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1423 msgid "IP Stack Preference" msgstr "" @@ -1186,27 +1242,27 @@ msgstr "" msgid "If empty, Not change Apple domains parsing DNS (Default is empty)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1354 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1349 msgid "" "If it is not empty, it indicates that the Client has enabled Encrypted " "Client, see:" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:850 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:845 msgid "If this option is not set, the socket behavior is platform dependent." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1441 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1436 msgid "" "If true, allowss insecure connection at TLS client, e.g., TLS server uses " "unverifiable certificates." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1586 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1581 msgid "If you have a self-signed certificate,please check the box" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1081 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1088 msgid "Import" msgstr "" @@ -1217,16 +1273,16 @@ msgstr "" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:195 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:376 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:520 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:583 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:617 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:724 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:840 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:992 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1072 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:590 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:624 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:731 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:847 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:999 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1079 msgid "Import configuration information successfully." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1087 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1082 msgid "Initial Windows Size" msgstr "" @@ -1254,27 +1310,59 @@ msgstr "" msgid "Invalid" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1075 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1082 msgid "Invalid format." msgstr "" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:330 +msgid "KCP Congestion Control" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:324 +msgid "KCP Downlink Capacity" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:306 +msgid "KCP MTU" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:335 +msgid "KCP Read Buffer Size" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:347 +msgid "KCP Seed" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:312 +msgid "KCP TTI" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:318 +msgid "KCP Uplink Capacity" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:341 +msgid "KCP Write Buffer Size" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua:231 msgid "KcpTun" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1644 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1639 msgid "KcpTun Enable" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1664 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1659 msgid "KcpTun Param" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1658 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1653 msgid "KcpTun Password" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1651 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1646 msgid "KcpTun Port" msgstr "" @@ -1352,7 +1440,7 @@ msgstr "" msgid "Limit the maximum number of splits." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1189 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1184 msgid "" "Linux kernel TUN virtual NIC requires system support and root privileges." msgstr "" @@ -1376,7 +1464,7 @@ msgstr "" msgid "Local Servers" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1197 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1192 msgid "Local addresses" msgstr "" @@ -1384,7 +1472,7 @@ msgstr "" msgid "Log" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:409 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:413 msgid "Loop Mode" msgstr "" @@ -1396,15 +1484,15 @@ msgstr "" msgid "Loyalsoldier/v2ray-rules-dat" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1379 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1374 msgid "ML-DSA-65 Public key" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1533 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1528 msgid "MPTCP" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1160 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1155 msgid "MTU" msgstr "" @@ -1412,7 +1500,7 @@ msgstr "" msgid "Main Server" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:553 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:558 msgid "" "Manage multiple subscribe URLs, including Clash subscriptions. Only enabled " "entries are included when updating all subscriptions." @@ -1423,7 +1511,7 @@ msgstr "" msgid "Matching release asset not found" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:959 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:954 msgid "Max Early Data" msgstr "" @@ -1431,7 +1519,7 @@ msgstr "" msgid "Max Split" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:855 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:850 msgid "Maximum packet size the socks5 server can receive from external" msgstr "" @@ -1452,13 +1540,13 @@ msgstr "" msgid "Min" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1503 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1498 msgid "" "Min value is 1, Max value is 1024. When omitted or set to 0, Will same path " "as TCP traffic." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1490 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1485 msgid "" "Min value is 1, Max value is 128. When omitted or set to 0, it equals 8." msgstr "" @@ -1495,7 +1583,7 @@ msgstr "" msgid "Muitiple DNS server can saperate with ','" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1081 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1076 msgid "Multi" msgstr "" @@ -1503,12 +1591,12 @@ msgstr "" msgid "Multi Threads Option" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1051 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1275 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1046 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1270 msgid "Must be JSON text!" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1469 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1464 msgid "Mux" msgstr "" @@ -1521,7 +1609,7 @@ msgid "NOT RUNNING" msgstr "" #: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:401 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:354 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:349 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:13 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:396 msgid "NaiveProxy" @@ -1535,7 +1623,7 @@ msgstr "" msgid "Nanjing Xinfeng 114DNS (114.114.114.114)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:798 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:793 msgid "New Reno" msgstr "" @@ -1554,11 +1642,11 @@ msgstr "" msgid "No available Xray core to import this Hysteria2 node." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:539 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:546 msgid "No available core (Shadowsocks or Xray) to import this node." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:731 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:738 msgid "No available core (Xray) to import this node." msgstr "" @@ -1574,16 +1662,20 @@ msgstr "" msgid "No new data!" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1618 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1613 msgid "No specify upload file." msgstr "" +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:94 +msgid "No subscription items found" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:615 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_panel.htm:32 msgid "No switchable proxy groups found." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:577 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:582 msgid "" "Node order can be dragged with the mouse and takes effect immediately. The " "automatic switch order of server nodes is consistent with the node order in " @@ -1594,13 +1686,13 @@ msgstr "" msgid "Noise" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:527 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:926 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1125 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1137 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1147 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:648 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:522 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:921 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1120 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1132 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1142 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:653 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:658 msgid "None" msgstr "" @@ -1628,35 +1720,35 @@ msgid "" "compatibility issues." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1544 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1539 msgid "Number of early established connections to reduce latency." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:526 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:569 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:139 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:133 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:521 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:564 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:118 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:138 msgid "Obfs" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:576 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:146 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:571 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:123 msgid "Obfs param (optional)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1181 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1176 msgid "Obfuscate password (optional)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:636 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:631 msgid "Obfuscation Password" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:630 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:625 msgid "Obfuscation Type" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1453 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1448 msgid "Once set, connects only when the server’s chain fingerprint matches." msgstr "" @@ -1711,8 +1803,8 @@ msgstr "" msgid "Panel" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:471 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:114 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:466 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:93 msgid "Password" msgstr "" @@ -1720,7 +1812,7 @@ msgstr "" msgid "Paste sharing link here" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1212 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1207 msgid "Peer public key" msgstr "" @@ -1733,15 +1825,15 @@ msgstr "" msgid "Perform reset" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1117 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1112 msgid "Permit Without Stream" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:696 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:701 msgid "Ping Latency" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1625 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1620 msgid "Please confirm the current certificate path" msgstr "" @@ -1749,11 +1841,11 @@ msgstr "" msgid "Please fill in reset" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:392 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:387 msgid "Please specify either a Clash subscription URL or a local YAML path." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:555 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:550 msgid "Plugin Opts" msgstr "" @@ -1761,19 +1853,19 @@ msgstr "" msgid "Policy" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:611 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:606 msgid "Port Hopping Interval(Unit:Second)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:593 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:588 msgid "Port hopping range" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1544 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1539 msgid "Pre-connections" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1216 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1211 msgid "Pre-shared key" msgstr "" @@ -1785,7 +1877,11 @@ msgstr "" msgid "Prev" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1207 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:232 +msgid "Private Key File Path" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1202 msgid "Private key" msgstr "" @@ -1794,13 +1890,13 @@ msgstr "" msgid "Processing..." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:559 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:132 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:128 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:554 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:113 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:133 msgid "Protocol" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:566 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:561 msgid "Protocol param (optional)" msgstr "" @@ -1808,39 +1904,45 @@ msgstr "" msgid "Proxy Ports" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1305 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1300 msgid "Public key" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1130 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:371 +msgid "QUIC Camouflage Type" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1125 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:367 msgid "QUIC Key" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1123 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1118 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:359 msgid "QUIC Security" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:670 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:665 msgid "QUIC initConnReceiveWindow" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:656 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:651 msgid "QUIC initStreamReceiveWindow" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:677 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:672 msgid "QUIC maxConnReceiveWindow" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:684 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:679 msgid "QUIC maxIdleTimeout(Unit:second)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:663 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:658 msgid "QUIC maxStreamReceiveWindow" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1300 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1295 msgid "REALITY" msgstr "" @@ -1866,7 +1968,7 @@ msgstr "" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:802 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_panel.htm:93 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:228 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:252 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:253 msgid "Ready." msgstr "" @@ -1874,7 +1976,7 @@ msgstr "" msgid "Really reset all changes?" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:715 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:720 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:272 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_panel_button.htm:17 msgid "Reapply" @@ -1908,11 +2010,11 @@ msgstr "" msgid "Refresh..." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:427 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:431 msgid "Regular update (Hour)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:435 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:439 msgid "Regular update (Min)" msgstr "" @@ -1930,16 +2032,22 @@ msgstr "" msgid "Reloading YAML..." msgstr "" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:133 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:134 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:1034 msgid "Remarks" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1557 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1573 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1552 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1568 msgid "Reno" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1202 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:154 +msgid "Required for VMess/VLESS. Generate with: uuidgen" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1197 msgid "Reserved bytes(optional)" msgstr "" @@ -2026,24 +2134,31 @@ msgid "SSR Server" msgstr "" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:1023 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:13 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:14 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:260 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:285 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:286 msgid "Save" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:488 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:492 msgid "Save Subscribe Settings" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:463 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:467 msgid "Save Words splited by /" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:490 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:494 msgid "Save current subscribe settings" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:82 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:105 +msgid "Save failed:" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:687 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:51 msgid "Saving..." msgstr "" @@ -2051,25 +2166,29 @@ msgstr "" msgid "Second" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1578 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1573 msgid "Self-signed Certificate" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:429 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:424 msgid "Server Address" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:502 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:506 msgid "Server Count" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:340 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:223 +msgid "Server Name (SNI)" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:335 msgid "Server Node Type" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:443 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:96 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:112 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:438 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:75 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:117 msgid "Server Port" msgstr "" @@ -2077,7 +2196,7 @@ msgstr "" msgid "Server Setting" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:86 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:58 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:107 msgid "Server Type" msgstr "" @@ -2090,30 +2209,30 @@ msgstr "" msgid "Servers Nodes" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:389 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:393 msgid "Servers subscription and manage" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1294 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1289 msgid "Session Ticket" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:363 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:358 msgid "Shadow-TLS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:731 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:726 msgid "Shadow-TLS ChainPoxy type" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:348 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:351 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:418 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:89 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:343 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:346 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:413 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:61 msgid "ShadowSocks" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:734 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:729 msgid "ShadowSocks-rust Version" msgstr "" @@ -2133,7 +2252,11 @@ msgstr "" msgid "Shadowsocks" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:742 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:166 +msgid "Shadowsocks Password" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:737 msgid "Shadowsocks password" msgstr "" @@ -2142,12 +2265,12 @@ msgid "Shadowsocks-rust" msgstr "" #: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:381 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:345 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:92 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:340 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:64 msgid "ShadowsocksR" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1309 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1304 msgid "Short ID" msgstr "" @@ -2155,15 +2278,15 @@ msgstr "" msgid "Showing %d-%d of %d nodes" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:656 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:661 msgid "Socket Connected" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:425 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:420 msgid "Socks" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:896 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:891 msgid "Socks Version" msgstr "" @@ -2171,8 +2294,8 @@ msgstr "" msgid "Socks protocol auth methods, default:noauth." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:366 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:87 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:361 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:59 msgid "Socks5" msgstr "" @@ -2192,7 +2315,7 @@ msgstr "" msgid "Start Detection" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:204 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:205 msgid "Starting subscription update..." msgstr "" @@ -2211,28 +2334,28 @@ msgstr "" msgid "Stop Detection" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:449 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:453 msgid "Subscribe Advanced Settings" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:474 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:478 msgid "Subscribe Default Auto-Switch" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:455 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:459 msgid "Subscribe Filter Words" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:249 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:250 msgid "Subscribe Log" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:461 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:465 msgid "Subscribe Save Words" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:547 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:570 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:551 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:575 msgid "Subscribe URL" msgstr "" @@ -2240,11 +2363,11 @@ msgstr "" msgid "Subscribe failed, refreshing page..." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:476 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:480 msgid "Subscribe new add server default Auto-Switch on" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:469 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:473 msgid "Subscribe nodes allows insecure connection as TLS client (insecure)" msgstr "" @@ -2252,7 +2375,7 @@ msgstr "" msgid "Support AdGuardHome and DNSMASQ format list" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:612 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:607 msgid "Supports a fixed value or a random range (e.g., 30, 5-30), minimum 5." msgstr "" @@ -2275,9 +2398,13 @@ msgstr "" msgid "Switching..." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:714 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1628 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:149 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:282 +msgid "TCP Camouflage Type" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:709 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1623 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:126 msgid "TCP Fast Open" msgstr "" @@ -2291,64 +2418,65 @@ msgstr "" msgid "TCP upstream" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1280 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1275 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:199 msgid "TLS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:709 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:704 msgid "TLS 1.3 Strict mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1402 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1397 msgid "TLS ALPN" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1458 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1453 msgid "TLS Certificate Name (CertName)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1453 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1448 msgid "TLS Chain Fingerprint (SHA256)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1394 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1389 msgid "TLS Host" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1458 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1453 msgid "TLS is used to verify the leaf certificate name." msgstr "" #: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:379 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:360 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:355 msgid "TUIC" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1414 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1409 msgid "TUIC ALPN" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:774 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:769 msgid "TUIC Server IP Address" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:781 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:776 msgid "TUIC User Password" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:767 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:762 msgid "TUIC User UUID" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:832 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:827 msgid "TUIC receive window" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:826 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:821 msgid "TUIC send window" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1381 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1376 msgid "" "The client has not configured mldsa65Verify, but it will not perform the " "\"additional verification\" step and can still connect normally, see:" @@ -2358,7 +2486,7 @@ msgstr "" msgid "The content entered is incorrect!" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:691 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:686 msgid "The keep-alive period.(Unit:second)" msgstr "" @@ -2394,14 +2522,16 @@ msgid "" msgstr "" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_table.htm:272 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:126 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:277 msgid "This section contains no values yet" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:481 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:485 msgid "Through proxy update" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:483 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:487 msgid "Through proxy update list, Not Recommended" msgstr "" @@ -2409,7 +2539,7 @@ msgstr "" msgid "Timeout" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:808 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:803 msgid "Timeout for establishing a connection to server(second)" msgstr "" @@ -2421,29 +2551,35 @@ msgstr "" msgid "Total Records:" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:905 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:900 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:177 msgid "Transport" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:605 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:600 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:238 msgid "Transport Protocol" msgstr "" #: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:399 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:417 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:412 msgid "Trojan" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:160 +msgid "Trojan Password" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/advanced_switch_compact.htm:79 msgid "Try Count" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:282 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:645 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:650 msgid "Type" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:607 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:602 msgid "UDP" msgstr "" @@ -2453,11 +2589,11 @@ msgid "" "restrictions." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:507 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:502 msgid "UDP over TCP" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:787 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:782 msgid "UDP relay mode" msgstr "" @@ -2473,10 +2609,14 @@ msgstr "" msgid "UL Restore" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:520 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:524 msgid "URL Test Address" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:153 +msgid "UUID" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:92 msgid "Unable to copy SSR to clipboard." msgstr "" @@ -2491,6 +2631,9 @@ msgid "Unknown" msgstr "" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:80 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:82 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:130 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:215 msgid "Unknown error" msgstr "" @@ -2503,19 +2646,24 @@ msgstr "" msgid "Unsupported component" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:493 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:265 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:266 +msgid "Update" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:497 msgid "Update All Subscribe Servers" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:443 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:447 msgid "Update Interval(min)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:407 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:411 msgid "Update Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:414 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:418 msgid "Update cycle (Day/Week)" msgstr "" @@ -2534,6 +2682,10 @@ msgid "" "Update the GeoSite.dat database used by Mihomo/Clash runtime when available." msgstr "" +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:31 +msgid "Updating..." +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:157 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:406 msgid "Upgrade" @@ -2551,21 +2703,21 @@ msgstr "" msgid "Upgrading..." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1167 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1162 msgid "Uplink Capacity(Default:Mbps)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1588 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1583 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/certupload.htm:3 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_yaml_upload.htm:3 msgid "Upload" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:540 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:544 msgid "Upload Custom YAML File" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:542 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:546 msgid "" "Upload a custom Clash/Mihomo YAML file. The file will be preprocessed and " "saved as a local Clash node." @@ -2601,36 +2753,40 @@ msgstr "" msgid "Use MosDNS query" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1157 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1152 msgid "" "Use it together with the DNS disguised type. You can fill in any domain." msgstr "" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:142 +msgid "User Level" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:104 msgid "User cancelled." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1229 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:530 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1224 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:534 msgid "User-Agent" msgstr "" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:313 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1021 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1028 msgid "Userinfo format error." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:464 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:110 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:117 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:459 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:89 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:122 msgid "Username" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:581 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:576 msgid "Users Authentication" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:376 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:371 msgid "Using incorrect encryption mothod may causes service fail to start" msgstr "" @@ -2639,40 +2795,40 @@ msgstr "" msgid "V2Ray GEO Databases" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:342 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:337 msgid "V2Ray/XRay" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:414 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:409 msgid "V2Ray/XRay protocol" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:415 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:410 msgid "VLESS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:877 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:872 msgid "VLESS Encryption" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:416 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:411 msgid "VMess" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1138 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1148 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1133 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1143 msgid "VideoCall (SRTP)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:737 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:732 msgid "Vmess Protocol" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:752 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:747 msgid "Vmess UUID" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:869 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:864 msgid "Vmess/VLESS ID (UUID)" msgstr "" @@ -2688,49 +2844,65 @@ msgstr "" msgid "WAN White List IP" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:942 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:937 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:252 msgid "WebSocket Host" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:948 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:943 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:259 msgid "WebSocket Path" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1140 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1150 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1135 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1145 msgid "WechatVideo" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1190 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1185 msgid "When enabled, it occupies IPv6 routing table 1023." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:420 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1142 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1152 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:388 +msgid "When selected, it can be accessed from LAN. This may not be safe!" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:379 +msgid "" +"When selected, it can only be accessed locally. Recommended when using " +"reverse proxies." +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:415 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1137 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1147 msgid "WireGuard" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1222 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1217 msgid "Wireguard allows only traffic from specific source IP." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1008 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1003 msgid "XHTTP Extra" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:996 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:991 msgid "XHTTP Host" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:987 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:982 msgid "XHTTP Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1002 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:997 msgid "XHTTP Path" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:207 +msgid "XTLS" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:394 msgid "Xray" msgstr "" @@ -2762,27 +2934,27 @@ msgstr "" msgid "adblock_url" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1126 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1121 msgid "aes-128-gcm" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1522 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1517 msgid "allow" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1516 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1511 msgid "allow: Allows use Mux connection." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1436 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1431 msgid "allowInsecure" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1221 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1216 msgid "allowedIPs(optional)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1337 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1332 msgid "android" msgstr "" @@ -2790,7 +2962,7 @@ msgstr "" msgid "anti-AD" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1127 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1122 msgid "chacha20-poly1305" msgstr "" @@ -2798,37 +2970,45 @@ msgstr "" msgid "china-operator-ip" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1232 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1333 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1227 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1328 msgid "chrome" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1553 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1569 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1548 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1564 msgid "comment_tcpcongestion_disable" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1486 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1481 msgid "concurrency" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1237 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1232 msgid "curl" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1550 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1566 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1545 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1561 msgid "custom_tcpcongestion" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1343 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1494 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1507 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1338 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1489 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1502 msgid "disable" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1235 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1338 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:228 +msgid "e.g.: /etc/ssl/fullchain.pem" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:233 +msgid "e.g.: /etc/ssl/private.key" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1230 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1333 msgid "edge" msgstr "" @@ -2836,20 +3016,20 @@ msgstr "" msgid "felixonmars/dnsmasq-china-list" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1233 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1334 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1228 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1329 msgid "firefox" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1105 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1100 msgid "gRPC Idle Timeout" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1078 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1073 msgid "gRPC Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1072 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1067 msgid "gRPC Service Name" msgstr "" @@ -2861,26 +3041,30 @@ msgstr "" msgid "gfwlist/gfwlist" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1236 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1231 msgid "golang" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:535 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:530 msgid "gost-plugin" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1336 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1331 msgid "ios" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:545 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:540 msgid "kcptun" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:790 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:785 msgid "lossless UDP relay using QUIC streams" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:300 +msgid "mKCP Camouflage Type" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:46 msgid "mihomo binary not found in archive" msgstr "" @@ -2889,67 +3073,67 @@ msgstr "" msgid "naive binary not found in archive" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:789 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:784 msgid "native UDP characteristics" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:497 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1322 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:492 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1317 msgid "none" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:529 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:524 msgid "obfs-local" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1340 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1335 msgid "qq" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1341 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1336 msgid "random" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1342 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1337 msgid "randomized" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1521 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1516 msgid "reject" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:544 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:539 msgid "restls" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1234 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1335 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1229 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1330 msgid "safari" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:724 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:719 msgid "shadow-TLS SNI" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:541 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:536 msgid "shadow-tls" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:702 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:697 msgid "shadowTLS protocol Version" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1523 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1518 msgid "skip" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1517 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1512 msgid "" "skip: Not use Mux module to carry UDP 443 traffic, Use original UDP " "transmission method of proxy protocol." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1313 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1308 msgid "spiderX" msgstr "" @@ -2957,7 +3141,7 @@ msgstr "" msgid "v2fly/domain-list-community" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:532 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:527 msgid "v2ray-plugin" msgstr "" @@ -2965,7 +3149,7 @@ msgstr "" msgid "valid address:port" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:101 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:80 msgid "warning! Please do not reuse the port!" msgstr "" @@ -2973,14 +3157,14 @@ msgstr "" msgid "xray binary not found in archive" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:538 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:533 msgid "xray-plugin" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1499 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1494 msgid "xudpConcurrency" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1512 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1507 msgid "xudpProxyUDP443" msgstr "" diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index 458c3c63..d88e6d6a 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -22,7 +22,7 @@ msgstr "单线程" msgid "128 Threads" msgstr "128 线程" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1508 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1503 msgid "16" msgstr "" @@ -38,7 +38,7 @@ msgstr "2 线程" msgid "32 Threads" msgstr "32 线程" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1339 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1334 msgid "360" msgstr "" @@ -58,7 +58,7 @@ msgstr "4 线程" msgid "64 Threads" msgstr "64 线程" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1495 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1490 msgid "8" msgstr "" @@ -70,9 +70,9 @@ msgstr "8 线程" msgid "" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1016 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1354 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1381 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1011 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1349 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1376 msgid "" msgstr "" @@ -84,30 +84,47 @@ msgstr "" "

    支持 SS/SSR/V2RAY/XRAY/TROJAN/TUIC/HYSTERIA2/NAIVEPROXY/SOCKS5/CLASH 等协" "议。

    " -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1188 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1488 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1501 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1514 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1183 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1483 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1496 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1509 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:186 msgid "
    • " msgstr "" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:354 +msgid "A legal file path. This file must not exist before running." +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:387 +msgid "Accept LAN Access" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:627 msgid "Access Control" msgstr "访问控制" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:1035 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:235 msgid "Actions" -msgstr "" +msgstr "操作" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:1015 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_table.htm:290 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_table.htm:298 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:5 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:7 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:189 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:284 msgid "Add" msgstr "添加" +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:215 +msgid "Add failed:" +msgstr "添加失败:" + +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:182 +msgid "Adding..." +msgstr "添加中..." + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:221 msgid "Additional Version" msgstr "附加版本" @@ -128,12 +145,12 @@ msgstr "【广告屏蔽】数据库" msgid "AliYun Public DNS (223.5.5.5)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:563 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:651 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:568 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:656 msgid "Alias" msgstr "别名" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:378 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:373 msgid "Alias(optional)" msgstr "别名(可选)" @@ -153,6 +170,10 @@ msgstr "所有客户端代理规则已清空并生效。" msgid "All client proxy rules cleared." msgstr "所有客户端代理规则已清空。" +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:101 +msgid "All settings saved successfully." +msgstr "所有设置保存成功。" + #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/control.lua:35 msgid "Allow all except listed" msgstr "除列表外主机皆允许" @@ -161,7 +182,7 @@ msgstr "除列表外主机皆允许" msgid "Allow listed only" msgstr "仅允许列表内主机" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:467 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:471 msgid "Allow subscribe Insecure nodes By default" msgstr "订阅节点允许不验证 TLS 证书" @@ -170,11 +191,15 @@ msgstr "订阅节点允许不验证 TLS 证书" msgid "Already up to date" msgstr "已是最新版本" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:862 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:186 +msgid "Alter ID" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:857 msgid "AlterId" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1256 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1251 msgid "An FinalMaskObject in JSON format, used for sharing." msgstr "JSON 格式的 FinalMaskObject,用来实现分享。" @@ -200,20 +225,24 @@ msgstr "Apple 域名更新 URL" msgid "Apple domains optimization" msgstr "Apple 域名解析优化" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:711 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:717 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:716 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:722 msgid "Apply" msgstr "应用" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:408 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:412 msgid "Appointment Mode" msgstr "定时模式" +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:112 +msgid "Are you sure you want to delete subscribe link: %s ?" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/backup_restore.htm:133 msgid "Are you sure you want to restore the client to default settings?" msgstr "是否真的要恢复客户端默认配置?" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:728 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:733 msgid "Auto Switch" msgstr "自动切换" @@ -221,22 +250,22 @@ msgstr "自动切换" msgid "Auto Threads" msgstr "自动(CPU 线程数)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:403 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:407 msgid "Auto Update" msgstr "自动更新" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:405 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:409 msgid "Auto Update Server subscription, GFW list and CHN route" msgstr "自动更新服务器订阅、GFW 列表和中国大陆 IP 段" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:796 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1554 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1570 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:791 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1549 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1565 msgid "BBR" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1555 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1571 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1550 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1566 msgid "BRUTAL" msgstr "" @@ -260,8 +289,12 @@ msgstr "" msgid "Base64 sstr failed." msgstr "Base64 解码失败。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1139 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1149 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:378 +msgid "Bind Local Only" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1134 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1144 msgid "BitTorrent (uTP)" msgstr "BT 下载(uTP)" @@ -269,7 +302,7 @@ msgstr "BT 下载(uTP)" msgid "Black Domain List" msgstr "强制走代理的域名" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:513 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:508 msgid "Bloom Filter" msgstr "布隆过滤器" @@ -290,22 +323,26 @@ msgstr "关闭窗口" msgid "CNNIC SDNS (1.2.4.8)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:797 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1556 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1574 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:792 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1551 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1569 msgid "CUBIC" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1156 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1151 msgid "Camouflage Domain" msgstr "伪装域名" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:924 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1145 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:919 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1140 msgid "Camouflage Type" msgstr "伪装类型" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1464 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:227 +msgid "Certificate File Path" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1459 msgid "Certificate fingerprint" msgstr "证书指纹" @@ -383,19 +420,19 @@ msgstr "Clash" msgid "Clash Panel" msgstr "Clash 面板" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:397 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:392 msgid "Clash Subscription URL" msgstr "Clash 订阅链接" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:409 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:404 msgid "Clash User-Agent" msgstr "Clash User-Agent" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:403 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:398 msgid "Clash YAML Path" msgstr "Clash YAML 路径" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:357 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:352 msgid "Clash/Mihomo" msgstr "Clash/Mihomo" @@ -412,9 +449,9 @@ msgid "Clear logs" msgstr "清空日志" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:264 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1018 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1356 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1383 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1013 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1351 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1378 msgid "Click to the page" msgstr "点击前往" @@ -435,7 +472,7 @@ msgid "Client supports manual IP or IP/CIDR input." msgstr "客户端支持手动输入 IP 或 IP/CIDR。" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:1024 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:250 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:251 msgid "Close" msgstr "关闭" @@ -463,11 +500,11 @@ msgstr "组件" msgid "Component Update" msgstr "组件升级" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1016 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1011 msgid "Configure XHTTP Extra Settings (JSON format), see:" msgstr "配置 XHTTP 额外设置(JSON 格式),具体请参见:" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:794 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:789 msgid "Congestion control algorithm" msgstr "拥塞控制算法" @@ -479,11 +516,11 @@ msgstr "连接错误" msgid "Connect OK" msgstr "连接正常" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:103 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:82 msgid "Connection Timeout" msgstr "连接超时" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1367 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1362 msgid "" "Controls the policy used when performing DNS queries for ECH configuration." msgstr "控制使用 DNS 查询 ECH 配置时的策略。" @@ -505,7 +542,7 @@ msgstr "Country MMDB" msgid "Create Backup File" msgstr "创建备份文件" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1602 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1597 msgid "Create upload file error." msgstr "创建上传文件错误。" @@ -513,7 +550,7 @@ msgstr "创建上传文件错误。" msgid "Current ARCH" msgstr "当前架构" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1622 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1617 msgid "Current Certificate Path" msgstr "当前证书路径" @@ -521,7 +558,7 @@ msgstr "当前证书路径" msgid "Current Version" msgstr "当前版本" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:547 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:542 msgid "Custom" msgstr "自定义" @@ -546,7 +583,7 @@ msgid "" msgstr "" "格式为tcp://IP:Port或tls://域名:Port (tcp://8.8.8.8或tls://dns.google:853)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:551 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:546 msgid "Custom Plugin Path" msgstr "自定义插件路径" @@ -566,7 +603,7 @@ msgstr "自定义客户端代理规则已保存并生效。" msgid "Custom client proxy rules saved." msgstr "自定义客户端代理规则已保存。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1257 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1252 msgid "" "Custom finalmask overrides mkcp, hysteria2, fragment, noise, and related " "settings." @@ -576,7 +613,7 @@ msgstr "自定义 finalmask 将覆盖 mkcp、hysteria2、fragment、noise 等相 msgid "DL Backup" msgstr "下载备份" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1153 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1148 msgid "DNS" msgstr "" @@ -588,8 +625,8 @@ msgstr "DNS 防污染服务" msgid "DNSPod Public DNS (119.29.29.29)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1141 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1151 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1136 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1146 msgid "DTLS 1.2" msgstr "DTLS 1.2 数据包" @@ -601,14 +638,18 @@ msgstr "数据库" msgid "Day/Week" msgstr "日/周" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1203 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1198 msgid "Decimal numbers separated by \",\" or Base64-encoded strings." msgstr "用“,”隔开的十进制数字或 Base64 编码字符串。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1231 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1404 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1416 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1430 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:193 +msgid "Decryption" +msgstr "解密" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1226 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1399 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1411 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1425 msgid "Default" msgstr "默认" @@ -616,21 +657,21 @@ msgstr "默认" msgid "Default Node Local Port" msgstr "节点默认本地端口" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1515 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1510 msgid "Default reject rejects traffic." msgstr "默认 reject 拒绝流量。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:692 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:687 msgid "Default value 0 indicatesno heartbeat." msgstr "默认为 0 表示无心跳。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1489 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1484 msgid "" "Default: disable. When entering a negative number, such as -1, The Mux " "module will not be used to carry TCP traffic." msgstr "默认:禁用。填负数时,如 -1,不使用 Mux 模块承载 TCP 流量。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1502 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1497 msgid "" "Default:16. When entering a negative number, such as -1, The Mux module will " "not be used to carry UDP traffic, Use original UDP transmission method of " @@ -663,13 +704,18 @@ msgstr "延迟(ms)" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:589 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_table.htm:248 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:261 msgid "Delete" msgstr "删除" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:500 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:504 msgid "Delete All Subscribe Servers" msgstr "删除所有订阅节点" +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:130 +msgid "Delete failed:" +msgstr "删除失败:" + #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/control.lua:112 msgid "Deny Domain List" msgstr "禁止连接的域名" @@ -687,15 +733,15 @@ msgstr "直通模式(禁用 ChinaDNS-NG)" msgid "Disable IPv6 for Overseas FQDN" msgstr "禁止海外域名返回 IPv6 记录" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:649 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:644 msgid "Disable QUIC path MTU discovery" msgstr "禁用 QUIC 启用 MTU 探测" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:838 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:833 msgid "Disable SNI" msgstr "关闭 SNI 服务器名称指示" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:719 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:714 msgid "Disable TCP No_delay" msgstr "禁用 TCP 无延迟" @@ -715,11 +761,15 @@ msgstr "DoT 上游(需使用 wolfssl 版本)" msgid "Domain Strategy" msgstr "域名解析策略" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:353 +msgid "DomainSocket Path" +msgstr "域 Socket 路径" + #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:199 msgid "Domestic DNS Server" msgstr "国内 DNS 服务器" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1174 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1169 msgid "Downlink Capacity(Default:Mbps)" msgstr "下行链路容量(默认:Mbps)" @@ -731,19 +781,19 @@ msgstr "下载源" msgid "Download failed" msgstr "下载失败" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:849 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:844 msgid "Dual-stack Listening Socket" msgstr "双栈 Socket 监听" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1352 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1347 msgid "ECH Config" msgstr "ECH 配置" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1366 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1361 msgid "ECH Query Policy" msgstr "ECH 查询策略" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:966 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:961 msgid "Early Data Header Name" msgstr "前置数据标头" @@ -752,65 +802,65 @@ msgstr "前置数据标头" msgid "Edit" msgstr "编辑" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:312 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:69 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:307 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:40 msgid "Edit ShadowSocksR Server" msgstr "编辑服务器配置" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:157 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:198 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:278 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:82 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:54 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:101 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:555 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:560 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:1031 msgid "Enable" msgstr "启用" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:843 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:838 msgid "Enable 0-RTT QUIC handshake" msgstr "客户端启用 0-RTT QUIC 连接握手" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:457 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:452 msgid "Enable Authentication" msgstr "启用用户名/密码认证" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:80 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1639 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1634 msgid "Enable Auto Switch" msgstr "启用自动切换" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1347 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1342 msgid "Enable ECH(optional)" msgstr "启用 ECH (可选)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:625 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:620 msgid "Enable Lazy Mode" msgstr "启用懒狗模式" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1374 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1369 msgid "Enable ML-DSA-65(optional)" msgstr "启用 ML-DSA-65 (可选)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1533 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1528 msgid "" "Enable Multipath TCP, need to be enabled in both server and client " "configuration." msgstr "启用 Multipath TCP,需在服务端和客户端配置中同时启用。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1469 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1464 msgid "Enable Mux.Cool" msgstr "启用 Mux.Cool" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:619 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:614 msgid "Enable Obfuscation" msgstr "启用混淆功能" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:519 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:514 msgid "Enable Plugin" msgstr "启用插件" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:587 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:582 msgid "Enable Port Hopping" msgstr "启用端口跳跃" @@ -818,15 +868,15 @@ msgstr "启用端口跳跃" msgid "Enable Server" msgstr "启动服务端" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:600 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:595 msgid "Enable Transport Protocol Settings" msgstr "启用传输协议设置" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:705 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:700 msgid "Enable V2 protocol." msgstr "开启 V2 协议。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:704 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:699 msgid "Enable V3 protocol." msgstr "开启 V3 协议。" @@ -834,15 +884,15 @@ msgstr "开启 V3 协议。" msgid "Enable adblock" msgstr "启用广告屏蔽" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:508 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:503 msgid "Enable the SUoT protocol, requires server support." msgstr "启用 SUoT 协议,需要服务端支持。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1009 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1004 msgid "Enable this option to configure XHTTP Extra (JSON format)." msgstr "启用此选项配置 XHTTP 附加项(JSON 格式)。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1186 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1181 msgid "Enabled Kernel virtual NIC TUN(optional)" msgstr "启用内核的虚拟网卡 TUN(可选)" @@ -850,19 +900,20 @@ msgstr "启用内核的虚拟网卡 TUN(可选)" msgid "Enabled Mixed" msgstr "启用 Mixed" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:714 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1628 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:709 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1623 msgid "Enabling TCP Fast Open Requires Server Support." msgstr "启用 TCP 快速打开需要服务端支持。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:486 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:493 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:746 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:757 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:888 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:118 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:125 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:122 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:481 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:488 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:741 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:752 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:883 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:103 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:108 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:171 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:127 msgid "Encrypt Method" msgstr "加密方式" @@ -870,35 +921,35 @@ msgstr "加密方式" msgid "Enter Custom Ports" msgstr "输入自定义端口" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:415 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:419 msgid "Every Day" msgstr "每天" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:420 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:424 msgid "Every Friday" msgstr "每周五" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:416 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:420 msgid "Every Monday" msgstr "每周一" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:421 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:425 msgid "Every Saturday" msgstr "每周六" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:422 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:426 msgid "Every Sunday" msgstr "每周日" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:419 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:423 msgid "Every Thursday" msgstr "每周四" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:417 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:421 msgid "Every Tuesday" msgstr "每周二" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:418 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:422 msgid "Every Wednesday" msgstr "每周三" @@ -914,7 +965,7 @@ msgstr "批量导出客户端规则" msgid "Extract failed" msgstr "解压失败" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1572 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1567 msgid "FORCE BRUTAL" msgstr "" @@ -949,21 +1000,22 @@ msgstr "保存自定义客户端代理规则失败。" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:219 msgid "File Not Exist" -msgstr "" +msgstr "文件不存在" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:457 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:461 msgid "Filter Words splited by /" msgstr "命中关键字的节点将被丢弃。多个关键字用 / 分隔" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1245 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1240 msgid "FinalMask" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1331 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1326 msgid "Finger Print" msgstr "指纹伪造" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1318 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1313 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:212 msgid "Flow" msgstr "流控(Flow)" @@ -977,7 +1029,7 @@ msgstr "配备中国大陆 CDN 的 Apple 域名,始终应答中国大陆 CDN msgid "For specific usage, see:" msgstr "具体使用方法,具体请参见:" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:594 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:589 msgid "" "Format as 10000:20000 or 10000-20000 Multiple groups are separated by commas " "(,)." @@ -1023,11 +1075,11 @@ msgstr "增强游戏模式客户端 LAN IP" msgid "Game Mode UDP Relay" msgstr "游戏模式 UDP 中继" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:814 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:809 msgid "Garbage collection interval(second)" msgstr "UDP 数据包片残片清理间隔(单位:秒)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:820 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:815 msgid "Garbage collection lifetime(second)" msgstr "UDP 数据包残片在服务器的保留时间(单位:秒)" @@ -1073,7 +1125,7 @@ msgstr "全局设置" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_table.htm:76 msgid "Go to relevant configuration page" -msgstr "" +msgstr "前往相关配置页面" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua:248 msgid "Google Connectivity" @@ -1097,20 +1149,20 @@ msgstr "" msgid "Grant UCI access for luci-app-ssr-plus" msgstr "授予访问 luci-app-ssr-plus 配置的权限" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1080 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1075 msgid "Gun" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1099 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1094 msgid "H2 Read Idle Timeout" msgstr "H2 读取空闲超时" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1094 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1089 msgid "H2/gRPC Health Check" msgstr "H2/gRPC 健康检查" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:426 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:927 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:421 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:922 msgid "HTTP" msgstr "" @@ -1118,7 +1170,8 @@ msgstr "" msgid "HTTP Auth Mode" msgstr "HTTP 认证模式" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:931 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:926 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:291 msgid "HTTP Host" msgstr "HTTP 主机名" @@ -1126,7 +1179,8 @@ msgstr "HTTP 主机名" msgid "HTTP Password" msgstr "HTTP 密码" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:936 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:931 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:295 msgid "HTTP Path" msgstr "HTTP 路径" @@ -1138,27 +1192,29 @@ msgstr "HTTP 用户名" msgid "HTTP proxy auth method, default:none." msgstr "HTTP 代理认证方式,默认:none。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1062 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1057 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:268 msgid "HTTP/2 Host" msgstr "HTTP/2 主机名" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1067 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1062 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:274 msgid "HTTP/2 Path" msgstr "HTTP/2 路径" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1134 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1129 msgid "Header" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1111 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1106 msgid "Health Check Timeout" msgstr "健康检查超时" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:802 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:797 msgid "Heartbeat interval(second)" msgstr "保活心跳包发送间隔(单位:秒)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:953 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:948 msgid "HeartbeatPeriod(second)" msgstr "心跳周期(单位:秒)" @@ -1166,20 +1222,20 @@ msgstr "心跳周期(单位:秒)" msgid "Hour" msgstr "时" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:975 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:970 msgid "Httpupgrade Host" msgstr "HTTPUpgrade 主机名" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:980 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:975 msgid "Httpupgrade Path" msgstr "HTTPUpgrade 路径" #: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:407 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:423 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:418 msgid "Hysteria2" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:643 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:638 msgid "Hysterir QUIC parameters" msgstr "QUIC 参数" @@ -1187,7 +1243,7 @@ msgstr "QUIC 参数" msgid "IP Route Mode" msgstr "绕过中国大陆 IP 模式" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1428 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1423 msgid "IP Stack Preference" msgstr "IP 栈优先级" @@ -1195,28 +1251,28 @@ msgstr "IP 栈优先级" msgid "If empty, Not change Apple domains parsing DNS (Default is empty)" msgstr "如果为空,则不更改 Apple 域名解析 DNS(默认为空)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1354 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1349 msgid "" "If it is not empty, it indicates that the Client has enabled Encrypted " "Client, see:" msgstr "如果不为空,表示客户端已启用加密客户端,具体请参见:" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:850 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:845 msgid "If this option is not set, the socket behavior is platform dependent." msgstr "如果未设置此选项,则 Socket 行为依赖于平台。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1441 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1436 msgid "" "If true, allowss insecure connection at TLS client, e.g., TLS server uses " "unverifiable certificates." msgstr "" "是否允许不安全连接。当选择时,将不会检查远端主机所提供的 TLS 证书的有效性。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1586 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1581 msgid "If you have a self-signed certificate,please check the box" msgstr "如果你使用自签证书,请选择" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1081 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1088 msgid "Import" msgstr "导入配置信息" @@ -1227,16 +1283,16 @@ msgstr "批量导入客户端规则" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:195 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:376 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:520 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:583 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:617 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:724 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:840 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:992 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1072 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:590 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:624 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:731 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:847 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:999 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1079 msgid "Import configuration information successfully." msgstr "导入配置信息成功。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1087 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1082 msgid "Initial Windows Size" msgstr "初始窗口大小" @@ -1262,29 +1318,61 @@ msgstr "接口控制" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_table.htm:293 msgid "Invalid" -msgstr "" +msgstr "无效的" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1075 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1082 msgid "Invalid format." msgstr "无效的格式。" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:330 +msgid "KCP Congestion Control" +msgstr "KCP 拥塞控制" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:324 +msgid "KCP Downlink Capacity" +msgstr "KCP 下行带宽容量" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:306 +msgid "KCP MTU" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:335 +msgid "KCP Read Buffer Size" +msgstr "KCP 读缓冲区大小" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:347 +msgid "KCP Seed" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:312 +msgid "KCP TTI" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:318 +msgid "KCP Uplink Capacity" +msgstr "KCP 上行链路容量" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:341 +msgid "KCP Write Buffer Size" +msgstr "KCP 写缓冲区大小" + #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua:231 msgid "KcpTun" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1644 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1639 msgid "KcpTun Enable" msgstr "KcpTun 启用" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1664 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1659 msgid "KcpTun Param" msgstr "KcpTun 参数" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1658 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1653 msgid "KcpTun Password" msgstr "KcpTun 密码" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1651 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1646 msgid "KcpTun Port" msgstr "KcpTun 端口" @@ -1362,7 +1450,7 @@ msgstr "" msgid "Limit the maximum number of splits." msgstr "限制分片的最大数量。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1189 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1184 msgid "" "Linux kernel TUN virtual NIC requires system support and root privileges." msgstr "Linux 内核 TUN 虚拟网卡需要系统支持和 root 权限。" @@ -1386,7 +1474,7 @@ msgstr "本地端口" msgid "Local Servers" msgstr "本机服务端" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1197 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1192 msgid "Local addresses" msgstr "本地地址" @@ -1394,7 +1482,7 @@ msgstr "本地地址" msgid "Log" msgstr "日志" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:409 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:413 msgid "Loop Mode" msgstr "循环模式" @@ -1406,15 +1494,15 @@ msgstr "" msgid "Loyalsoldier/v2ray-rules-dat" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1379 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1374 msgid "ML-DSA-65 Public key" msgstr "ML-DSA-65 公钥" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1533 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1528 msgid "MPTCP" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1160 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1155 msgid "MTU" msgstr "最大传输单元" @@ -1422,7 +1510,7 @@ msgstr "最大传输单元" msgid "Main Server" msgstr "主服务器" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:553 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:558 msgid "" "Manage multiple subscribe URLs, including Clash subscriptions. Only enabled " "entries are included when updating all subscriptions." @@ -1435,7 +1523,7 @@ msgstr "" msgid "Matching release asset not found" msgstr "未找到匹配的发布资产" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:959 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:954 msgid "Max Early Data" msgstr "最大前置数据" @@ -1443,7 +1531,7 @@ msgstr "最大前置数据" msgid "Max Split" msgstr "最大分片数" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:855 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:850 msgid "Maximum packet size the socks5 server can receive from external" msgstr "socks5 服务器可以从外部接收的最大数据包大小(单位:字节)" @@ -1464,7 +1552,7 @@ msgstr "Mihomo 面板" msgid "Min" msgstr "分" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1503 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1498 msgid "" "Min value is 1, Max value is 1024. When omitted or set to 0, Will same path " "as TCP traffic." @@ -1472,7 +1560,7 @@ msgstr "" "最小值 1,最大值 1024。 省略或者填 0 时,将与 TCP 流量走同一条路,也就是传统" "的行为。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1490 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1485 msgid "" "Min value is 1, Max value is 128. When omitted or set to 0, it equals 8." msgstr "最小值 1,最大值 128。省略或者填 0 时都等于 8。" @@ -1509,7 +1597,7 @@ msgstr "上移" msgid "Muitiple DNS server can saperate with ','" msgstr "多个上游 DNS 服务器请用 ',' 分隔(注意用英文逗号)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1081 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1076 msgid "Multi" msgstr "" @@ -1517,12 +1605,12 @@ msgstr "" msgid "Multi Threads Option" msgstr "多线程并发转发" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1051 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1275 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1046 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1270 msgid "Must be JSON text!" msgstr "必须是 JSON 文本内容!" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1469 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1464 msgid "Mux" msgstr "" @@ -1535,7 +1623,7 @@ msgid "NOT RUNNING" msgstr "未运行" #: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:401 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:354 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:349 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:13 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:396 msgid "NaiveProxy" @@ -1549,7 +1637,7 @@ msgstr "" msgid "Nanjing Xinfeng 114DNS (114.114.114.114)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:798 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:793 msgid "New Reno" msgstr "" @@ -1568,11 +1656,11 @@ msgstr "未检查" msgid "No available Xray core to import this Hysteria2 node." msgstr "没有可用的 Xray 核心可以导入此 Hysteria2 节点。" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:539 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:546 msgid "No available core (Shadowsocks or Xray) to import this node." msgstr "没有可用的核心(Shadowsocks 或 Xray)可以导入此节点。" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:731 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:738 msgid "No available core (Xray) to import this node." msgstr "" @@ -1588,16 +1676,20 @@ msgstr "暂无自定义客户端代理规则。" msgid "No new data!" msgstr "你已经是最新数据,无需更新!" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1618 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1613 msgid "No specify upload file." msgstr "没有上传证书。" +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:94 +msgid "No subscription items found" +msgstr "没有找到任何订阅项" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:615 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_panel.htm:32 msgid "No switchable proxy groups found." msgstr "未找到可切换的代理组。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:577 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:582 msgid "" "Node order can be dragged with the mouse and takes effect immediately. The " "automatic switch order of server nodes is consistent with the node order in " @@ -1609,13 +1701,13 @@ msgstr "" msgid "Noise" msgstr "噪声" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:527 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:926 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1125 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1137 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1147 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:648 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:522 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:921 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1120 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1132 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1142 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:653 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:658 msgid "None" msgstr "" @@ -1643,35 +1735,35 @@ msgid "" "compatibility issues." msgstr "注意:不同版本间的配置恢复可能会导致兼容性问题。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1544 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1539 msgid "Number of early established connections to reduce latency." msgstr "预连接的数量,用于降低延迟。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:526 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:569 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:139 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:133 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:521 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:564 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:118 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:138 msgid "Obfs" msgstr "混淆插件" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:576 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:146 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:571 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:123 msgid "Obfs param (optional)" msgstr "混淆参数(可选)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1181 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1176 msgid "Obfuscate password (optional)" msgstr "混淆密码(可选)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:636 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:631 msgid "Obfuscation Password" msgstr "混淆密码" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:630 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:625 msgid "Obfuscation Type" msgstr "混淆类型" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1453 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1448 msgid "Once set, connects only when the server’s chain fingerprint matches." msgstr "设置后,仅在服务器证书链指纹匹配时连接。" @@ -1726,8 +1818,8 @@ msgstr "数据包 | Rand 长度" msgid "Panel" msgstr "面板" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:471 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:114 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:466 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:93 msgid "Password" msgstr "密码" @@ -1735,7 +1827,7 @@ msgstr "密码" msgid "Paste sharing link here" msgstr "在此处粘贴分享链接" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1212 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1207 msgid "Peer public key" msgstr "节点公钥" @@ -1748,15 +1840,15 @@ msgstr "每页" msgid "Perform reset" msgstr "执行重置" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1117 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1112 msgid "Permit Without Stream" msgstr "允许无数据流" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:696 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:701 msgid "Ping Latency" msgstr "Ping 延迟" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1625 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1620 msgid "Please confirm the current certificate path" msgstr "请选择确认所传证书,证书不正确将无法运行" @@ -1764,11 +1856,11 @@ msgstr "请选择确认所传证书,证书不正确将无法运行" msgid "Please fill in reset" msgstr "请填写 reset" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:392 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:387 msgid "Please specify either a Clash subscription URL or a local YAML path." msgstr "请填写 Clash 订阅 URL 或本地 YAML 路径中的至少一项。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:555 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:550 msgid "Plugin Opts" msgstr "插件参数" @@ -1776,19 +1868,19 @@ msgstr "插件参数" msgid "Policy" msgstr "策略" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:611 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:606 msgid "Port Hopping Interval(Unit:Second)" msgstr "端口跳跃间隔(单位:秒)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:593 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:588 msgid "Port hopping range" msgstr "端口跳跃范围" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1544 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1539 msgid "Pre-connections" msgstr "预连接" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1216 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1211 msgid "Pre-shared key" msgstr "预共享密钥" @@ -1800,7 +1892,11 @@ msgstr "优先使用模块内置 DNS" msgid "Prev" msgstr "上一页" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1207 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:232 +msgid "Private Key File Path" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1202 msgid "Private key" msgstr "私钥" @@ -1809,13 +1905,13 @@ msgstr "私钥" msgid "Processing..." msgstr "处理中..." -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:559 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:132 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:128 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:554 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:113 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:133 msgid "Protocol" msgstr "传输协议" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:566 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:561 msgid "Protocol param (optional)" msgstr "传输协议参数(可选)" @@ -1823,39 +1919,45 @@ msgstr "传输协议参数(可选)" msgid "Proxy Ports" msgstr "需要代理的端口" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1305 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1300 msgid "Public key" msgstr "公钥" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1130 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:371 +msgid "QUIC Camouflage Type" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1125 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:367 msgid "QUIC Key" msgstr "QUIC 密钥" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1123 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1118 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:359 msgid "QUIC Security" msgstr "QUIC 加密方式" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:670 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:665 msgid "QUIC initConnReceiveWindow" msgstr "QUIC 初始的连接接收窗口大小" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:656 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:651 msgid "QUIC initStreamReceiveWindow" msgstr "QUIC 初始流接收窗口大小。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:677 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:672 msgid "QUIC maxConnReceiveWindow" msgstr "QUIC 最大的连接接收窗口大小" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:684 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:679 msgid "QUIC maxIdleTimeout(Unit:second)" msgstr "QUIC 最长空闲超时时间(单位:秒)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:663 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:658 msgid "QUIC maxStreamReceiveWindow" msgstr "QUIC 最大的流接收窗口大小" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1300 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1295 msgid "REALITY" msgstr "" @@ -1881,7 +1983,7 @@ msgstr "运行中,当前为 %s 模式" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:802 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_panel.htm:93 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:228 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:252 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:253 msgid "Ready." msgstr "就绪。" @@ -1889,7 +1991,7 @@ msgstr "就绪。" msgid "Really reset all changes?" msgstr "真的重置所有更改吗?" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:715 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:720 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:272 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_panel_button.htm:17 msgid "Reapply" @@ -1904,7 +2006,7 @@ msgstr "条记录" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_panel.htm:10 msgid "Refresh" -msgstr "" +msgstr "更新" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/refresh.htm:29 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/refresh.htm:35 @@ -1923,11 +2025,11 @@ msgstr "更新成功!" msgid "Refresh..." msgstr "正在更新,请稍候..." -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:427 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:431 msgid "Regular update (Hour)" msgstr "定时更新(小时)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:435 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:439 msgid "Regular update (Min)" msgstr "定时更新(分钟)" @@ -1945,16 +2047,22 @@ msgstr "重载 YAML" msgid "Reloading YAML..." msgstr "正在重载 YAML..." +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:133 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:134 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:1034 msgid "Remarks" msgstr "备注" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1557 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1573 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1552 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1568 msgid "Reno" msgstr "Reno" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1202 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:154 +msgid "Required for VMess/VLESS. Generate with: uuidgen" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1197 msgid "Reserved bytes(optional)" msgstr "保留字节(可选)" @@ -2041,25 +2149,32 @@ msgid "SSR Server" msgstr "服务端" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:1023 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:13 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:14 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:260 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:285 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:286 msgid "Save" -msgstr "" +msgstr "保存" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:488 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:492 msgid "Save Subscribe Settings" msgstr "保存订阅设置" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:463 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:467 msgid "Save Words splited by /" msgstr "" "命中关键字的节点将被保留。多个关键字用 / 分隔。此项为空则不启用保留匹配" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:490 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:494 msgid "Save current subscribe settings" msgstr "保存当前订阅设置" +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:82 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:105 +msgid "Save failed:" +msgstr "保存失败:" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:687 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:51 msgid "Saving..." msgstr "保存中..." @@ -2067,25 +2182,29 @@ msgstr "保存中..." msgid "Second" msgstr "周期" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1578 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1573 msgid "Self-signed Certificate" msgstr "自签证书" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:429 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:424 msgid "Server Address" msgstr "服务器地址" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:502 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:506 msgid "Server Count" msgstr "服务器节点数量" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:340 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:223 +msgid "Server Name (SNI)" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:335 msgid "Server Node Type" msgstr "服务器节点类型" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:443 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:96 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:112 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:438 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:75 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:117 msgid "Server Port" msgstr "端口" @@ -2093,7 +2212,7 @@ msgstr "端口" msgid "Server Setting" msgstr "服务端配置" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:86 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:58 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:107 msgid "Server Type" msgstr "服务端类型" @@ -2106,30 +2225,30 @@ msgstr "服务器节点故障自动切换/广告屏蔽/中国大陆 IP 段数据 msgid "Servers Nodes" msgstr "服务器节点" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:389 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:393 msgid "Servers subscription and manage" msgstr "服务器节点订阅与管理" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1294 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1289 msgid "Session Ticket" msgstr "会话凭据" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:363 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:358 msgid "Shadow-TLS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:731 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:726 msgid "Shadow-TLS ChainPoxy type" msgstr "代理链类型" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:348 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:351 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:418 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:89 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:343 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:346 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:413 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:61 msgid "ShadowSocks" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:734 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:729 msgid "ShadowSocks-rust Version" msgstr "ShadowSocks-rust 版本" @@ -2149,7 +2268,11 @@ msgstr "ShadowTLS" msgid "Shadowsocks" msgstr "Shadowsocks" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:742 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:166 +msgid "Shadowsocks Password" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:737 msgid "Shadowsocks password" msgstr "shadowsocks密码" @@ -2158,12 +2281,12 @@ msgid "Shadowsocks-rust" msgstr "Shadowsocks-rust" #: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:381 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:345 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:92 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:340 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:64 msgid "ShadowsocksR" msgstr "ShadowsocksR" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1309 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1304 msgid "Short ID" msgstr "" @@ -2171,15 +2294,15 @@ msgstr "" msgid "Showing %d-%d of %d nodes" msgstr "当前显示第 %d-%d 个节点,共 %d 个" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:656 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:661 msgid "Socket Connected" msgstr "连接测试" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:425 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:420 msgid "Socks" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:896 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:891 msgid "Socks Version" msgstr "Socks 版本" @@ -2187,8 +2310,8 @@ msgstr "Socks 版本" msgid "Socks protocol auth methods, default:noauth." msgstr "Socks 协议的认证方式,默认值:noauth。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:366 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:87 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:361 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:59 msgid "Socks5" msgstr "" @@ -2208,7 +2331,7 @@ msgstr "Socks5 用户名" msgid "Start Detection" msgstr "开始探测" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:204 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:205 msgid "Starting subscription update..." msgstr "正在开始更新订阅..." @@ -2227,28 +2350,28 @@ msgstr "状态" msgid "Stop Detection" msgstr "停止探测" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:449 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:453 msgid "Subscribe Advanced Settings" msgstr "订阅高级设置" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:474 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:478 msgid "Subscribe Default Auto-Switch" msgstr "订阅新节点自动切换设置" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:455 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:459 msgid "Subscribe Filter Words" msgstr "订阅节点关键字过滤" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:249 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:250 msgid "Subscribe Log" msgstr "订阅日志" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:461 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:465 msgid "Subscribe Save Words" msgstr "订阅节点关键字保留检查" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:547 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:570 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:551 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:575 msgid "Subscribe URL" msgstr "订阅 URL (支持SS/SSR/V2/TROJAN/HY2/TUIC/CLASH等)" @@ -2256,11 +2379,11 @@ msgstr "订阅 URL (支持SS/SSR/V2/TROJAN/HY2/TUIC/CLASH等)" msgid "Subscribe failed, refreshing page..." msgstr "订阅失败,正在刷新页面..." -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:476 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:480 msgid "Subscribe new add server default Auto-Switch on" msgstr "订阅加入的新节点默认开启自动切换" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:469 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:473 msgid "Subscribe nodes allows insecure connection as TLS client (insecure)" msgstr "订阅节点强制开启 不验证TLS客户端证书 (insecure)" @@ -2268,7 +2391,7 @@ msgstr "订阅节点强制开启 不验证TLS客户端证书 (insecure)" msgid "Support AdGuardHome and DNSMASQ format list" msgstr "同时支持 AdGuard Home 和 DNSMASQ 格式的过滤列表" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:612 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:607 msgid "Supports a fixed value or a random range (e.g., 30, 5-30), minimum 5." msgstr "支持固定值或随机范围(如 30 或 5-30),最小 5 秒。" @@ -2291,9 +2414,13 @@ msgstr "切换成功。" msgid "Switching..." msgstr "正在切换..." -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:714 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1628 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:149 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:282 +msgid "TCP Camouflage Type" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:709 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1623 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:126 msgid "TCP Fast Open" msgstr "TCP 快速打开" @@ -2307,64 +2434,65 @@ msgstr "TCP 分片,在某些情况下可以欺骗审查系统,比如绕过 S msgid "TCP upstream" msgstr "TCP 上游" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1280 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1275 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:199 msgid "TLS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:709 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:704 msgid "TLS 1.3 Strict mode" msgstr "TLS 1.3 限定模式" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1402 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1397 msgid "TLS ALPN" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1458 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1453 msgid "TLS Certificate Name (CertName)" msgstr "TLS 证书名称(CertName)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1453 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1448 msgid "TLS Chain Fingerprint (SHA256)" msgstr "TLS 证书链指纹(SHA256)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1394 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1389 msgid "TLS Host" msgstr "TLS 主机名" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1458 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1453 msgid "TLS is used to verify the leaf certificate name." msgstr "TLS 用于验证 leaf 证书的 name。" #: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:379 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:360 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:355 msgid "TUIC" msgstr "TUIC" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1414 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1409 msgid "TUIC ALPN" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:774 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:769 msgid "TUIC Server IP Address" msgstr "TUIC 服务器 IP 地址" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:781 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:776 msgid "TUIC User Password" msgstr "TUIC 用户密钥" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:767 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:762 msgid "TUIC User UUID" msgstr "TUIC 用户 uuid" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:832 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:827 msgid "TUIC receive window" msgstr "接收窗口(无需确认即可接收的最大字节数:默认8Mb)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:826 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:821 msgid "TUIC send window" msgstr "发送窗口(无需确认即可发送的最大字节数:默认8Mb*2)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1381 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1376 msgid "" "The client has not configured mldsa65Verify, but it will not perform the " "\"additional verification\" step and can still connect normally, see:" @@ -2376,7 +2504,7 @@ msgstr "" msgid "The content entered is incorrect!" msgstr "输入的内容不正确!" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:691 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:686 msgid "The keep-alive period.(Unit:second)" msgstr "心跳包发送间隔(单位:秒)" @@ -2418,14 +2546,16 @@ msgid "" msgstr "该面板仅在当前 Clash 总节点已启用时可用。" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_table.htm:272 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:126 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:277 msgid "This section contains no values yet" -msgstr "" +msgstr "该部分目前无任何内容。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:481 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:485 msgid "Through proxy update" msgstr "通过代理更新" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:483 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:487 msgid "Through proxy update list, Not Recommended" msgstr "通过路由器自身代理更新订阅" @@ -2433,7 +2563,7 @@ msgstr "通过路由器自身代理更新订阅" msgid "Timeout" msgstr "超时" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:808 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:803 msgid "Timeout for establishing a connection to server(second)" msgstr "连接超时时间(单位:秒)" @@ -2445,29 +2575,35 @@ msgstr "在 Xray 设置中勾选 “噪声” 以发送噪声包。" msgid "Total Records:" msgstr "新的总记录数:" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:905 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:900 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:177 msgid "Transport" msgstr "传输协议" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:605 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:600 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:238 msgid "Transport Protocol" msgstr "传输协议" #: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:399 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:417 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:412 msgid "Trojan" msgstr "Trojan" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:160 +msgid "Trojan Password" +msgstr "Trojan 密码" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/advanced_switch_compact.htm:79 msgid "Try Count" msgstr "重试次数" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:282 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:645 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:650 msgid "Type" msgstr "类型" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:607 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:602 msgid "UDP" msgstr "" @@ -2477,11 +2613,11 @@ msgid "" "restrictions." msgstr "UDP 噪声,在某些情况下可以绕过一些针对 UDP 协议的限制。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:507 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:502 msgid "UDP over TCP" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:787 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:782 msgid "UDP relay mode" msgstr "UDP 中继模式" @@ -2497,10 +2633,14 @@ msgstr "UDP/TCP 上游" msgid "UL Restore" msgstr "上传恢复" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:520 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:524 msgid "URL Test Address" msgstr "URL 测试地址" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:153 +msgid "UUID" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:92 msgid "Unable to copy SSR to clipboard." msgstr "无法复制 SSR 网址到剪贴板。" @@ -2515,6 +2655,9 @@ msgid "Unknown" msgstr "未知" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:80 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:82 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:130 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:215 msgid "Unknown error" msgstr "未知错误" @@ -2527,19 +2670,24 @@ msgstr "不支持当前架构" msgid "Unsupported component" msgstr "不支持的组件" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:493 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:265 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:266 +msgid "Update" +msgstr "更新" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:497 msgid "Update All Subscribe Servers" msgstr "更新所有订阅节点" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:443 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:447 msgid "Update Interval(min)" -msgstr "" +msgstr "更新间隔(分钟)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:407 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:411 msgid "Update Mode" msgstr "更新模式" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:414 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:418 msgid "Update cycle (Day/Week)" msgstr "更新周期(天/周)" @@ -2558,6 +2706,10 @@ msgid "" "Update the GeoSite.dat database used by Mihomo/Clash runtime when available." msgstr "更新 Mihomo/Clash 运行时可用的 GeoSite.dat 数据库。" +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:31 +msgid "Updating..." +msgstr "更新中..." + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:157 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:406 msgid "Upgrade" @@ -2575,21 +2727,21 @@ msgstr "升级完成" msgid "Upgrading..." msgstr "升级中..." -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1167 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1162 msgid "Uplink Capacity(Default:Mbps)" msgstr "上行链路容量(默认:Mbps)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1588 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1583 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/certupload.htm:3 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_yaml_upload.htm:3 msgid "Upload" msgstr "上传" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:540 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:544 msgid "Upload Custom YAML File" msgstr "上传自定义 YAML 文件" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:542 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:546 msgid "" "Upload a custom Clash/Mihomo YAML file. The file will be preprocessed and " "saved as a local Clash node." @@ -2627,36 +2779,40 @@ msgstr "使用本机端口为 5335 的 DNS 服务" msgid "Use MosDNS query" msgstr "使用 MosDNS 查询" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1157 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1152 msgid "" "Use it together with the DNS disguised type. You can fill in any domain." msgstr "配合伪装类型 DNS 使用,可随便填一个域名。" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:142 +msgid "User Level" +msgstr "用户等级" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:104 msgid "User cancelled." msgstr "用户已取消。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1229 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:530 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1224 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:534 msgid "User-Agent" msgstr "用户代理(User-Agent)" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:313 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1021 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1028 msgid "Userinfo format error." msgstr "用户信息格式错误。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:464 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:110 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:117 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:459 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:89 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:122 msgid "Username" msgstr "用户名" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:581 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:576 msgid "Users Authentication" msgstr "用户验证" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:376 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:371 msgid "Using incorrect encryption mothod may causes service fail to start" msgstr "输入不正确的参数组合可能会导致服务无法启动" @@ -2665,40 +2821,40 @@ msgstr "输入不正确的参数组合可能会导致服务无法启动" msgid "V2Ray GEO Databases" msgstr "V2Ray GEO 数据库" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:342 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:337 msgid "V2Ray/XRay" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:414 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:409 msgid "V2Ray/XRay protocol" msgstr "V2Ray/XRay 协议" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:415 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:410 msgid "VLESS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:877 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:872 msgid "VLESS Encryption" msgstr "VLESS 加密" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:416 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:411 msgid "VMess" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1138 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1148 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1133 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1143 msgid "VideoCall (SRTP)" msgstr "视频通话(SRTP)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:737 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:732 msgid "Vmess Protocol" msgstr "VMESS 协议" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:752 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:747 msgid "Vmess UUID" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:869 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:864 msgid "Vmess/VLESS ID (UUID)" msgstr "" @@ -2714,49 +2870,65 @@ msgstr "WAN IP 访问控制" msgid "WAN White List IP" msgstr "不走代理的 WAN IP" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:942 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:937 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:252 msgid "WebSocket Host" msgstr "WebSocket 主机名" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:948 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:943 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:259 msgid "WebSocket Path" msgstr "WebSocket 路径" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1140 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1150 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1135 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1145 msgid "WechatVideo" msgstr "微信视频通话" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1190 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1185 msgid "When enabled, it occupies IPv6 routing table 1023." msgstr "启用后,将占用 IPv6 路由表 1023。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:420 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1142 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1152 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:388 +msgid "When selected, it can be accessed from LAN. This may not be safe!" +msgstr "一旦选定,即可通过局域网进行访问。但这样做可能存在安全隐患!" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:379 +msgid "" +"When selected, it can only be accessed locally. Recommended when using " +"reverse proxies." +msgstr "一旦启用,它只能在本地进行访问。在使用“反向代理”时建议使用此功能。" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:415 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1137 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1147 msgid "WireGuard" msgstr "WireGuard 数据包" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1222 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1217 msgid "Wireguard allows only traffic from specific source IP." msgstr "Wireguard 仅允许特定源 IP 的流量。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1008 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1003 msgid "XHTTP Extra" msgstr "XHTTP 附加项" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:996 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:991 msgid "XHTTP Host" msgstr "XHTTP 主机名" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:987 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:982 msgid "XHTTP Mode" msgstr "XHTTP 模式" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1002 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:997 msgid "XHTTP Path" msgstr "XHTTP 路径" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:207 +msgid "XTLS" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:394 msgid "Xray" msgstr "Xray" @@ -2788,27 +2960,27 @@ msgstr "YAML 已重载!" msgid "adblock_url" msgstr "广告屏蔽更新 URL" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1126 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1121 msgid "aes-128-gcm" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1522 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1517 msgid "allow" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1516 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1511 msgid "allow: Allows use Mux connection." msgstr "allow:允许走 Mux 连接。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1436 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1431 msgid "allowInsecure" msgstr "允许不安全连接" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1221 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1216 msgid "allowedIPs(optional)" msgstr "allowedIPs(可选)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1337 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1332 msgid "android" msgstr "" @@ -2816,7 +2988,7 @@ msgstr "" msgid "anti-AD" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1127 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1122 msgid "chacha20-poly1305" msgstr "" @@ -2824,37 +2996,45 @@ msgstr "" msgid "china-operator-ip" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1232 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1333 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1227 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1328 msgid "chrome" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1553 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1569 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1548 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1564 msgid "comment_tcpcongestion_disable" msgstr "系统默认值" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1486 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1481 msgid "concurrency" msgstr "TCP 最大并发连接数" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1237 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1232 msgid "curl" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1550 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1566 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1545 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1561 msgid "custom_tcpcongestion" msgstr "连接服务器节点的 TCP 拥塞控制算法" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1343 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1494 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1507 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1338 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1489 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1502 msgid "disable" msgstr "禁用" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1235 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1338 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:228 +msgid "e.g.: /etc/ssl/fullchain.pem" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:233 +msgid "e.g.: /etc/ssl/private.key" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1230 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1333 msgid "edge" msgstr "" @@ -2862,20 +3042,20 @@ msgstr "" msgid "felixonmars/dnsmasq-china-list" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1233 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1334 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1228 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1329 msgid "firefox" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1105 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1100 msgid "gRPC Idle Timeout" msgstr "gPRC 空闲超时" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1078 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1073 msgid "gRPC Mode" msgstr "gRPC 模式" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1072 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1067 msgid "gRPC Service Name" msgstr "gRPC 服务名称" @@ -2887,26 +3067,30 @@ msgstr "GFW 列表更新 URL" msgid "gfwlist/gfwlist" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1236 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1231 msgid "golang" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:535 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:530 msgid "gost-plugin" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1336 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1331 msgid "ios" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:545 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:540 msgid "kcptun" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:790 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:785 msgid "lossless UDP relay using QUIC streams" msgstr "使用 QUIC 流的无损 UDP 中继" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:300 +msgid "mKCP Camouflage Type" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:46 msgid "mihomo binary not found in archive" msgstr "压缩包中未找到 mihomo 二进制文件" @@ -2915,68 +3099,68 @@ msgstr "压缩包中未找到 mihomo 二进制文件" msgid "naive binary not found in archive" msgstr "压缩包中未找到 naive 二进制文件" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:789 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:784 msgid "native UDP characteristics" msgstr "原生 UDP 特性" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:497 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1322 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:492 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1317 msgid "none" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:529 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:524 msgid "obfs-local" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1340 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1335 msgid "qq" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1341 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1336 msgid "random" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1342 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1337 msgid "randomized" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1521 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1516 msgid "reject" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:544 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:539 msgid "restls" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1234 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1335 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1229 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1330 msgid "safari" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:724 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:719 msgid "shadow-TLS SNI" msgstr "服务器名称指示" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:541 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:536 msgid "shadow-tls" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:702 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:697 msgid "shadowTLS protocol Version" msgstr "ShadowTLS 协议版本" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1523 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1518 msgid "skip" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1517 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1512 msgid "" "skip: Not use Mux module to carry UDP 443 traffic, Use original UDP " "transmission method of proxy protocol." msgstr "" "skip:不使用 Mux 模块承载 UDP 443 流量,将使用代理协议原本的 UDP 传输方式。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1313 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1308 msgid "spiderX" msgstr "" @@ -2984,7 +3168,7 @@ msgstr "" msgid "v2fly/domain-list-community" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:532 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:527 msgid "v2ray-plugin" msgstr "" @@ -2992,7 +3176,7 @@ msgstr "" msgid "valid address:port" msgstr "有效的地址:端口" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:101 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:80 msgid "warning! Please do not reuse the port!" msgstr "警告!请不要重复使用端口!" @@ -3000,30 +3184,27 @@ msgstr "警告!请不要重复使用端口!" msgid "xray binary not found in archive" msgstr "压缩包中未找到 xray 二进制文件" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:538 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:533 msgid "xray-plugin" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1499 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1494 msgid "xudpConcurrency" msgstr "UDP 最大并发连接数" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1512 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1507 msgid "xudpProxyUDP443" msgstr "对被代理的 UDP/443 流量处理方式" +#~ msgid "Are you sure you want to delete subscribe link: %s ? " +#~ msgstr "确定删除此订阅链接:%s 吗?" + #~ msgid "%s Node Use Type" #~ msgstr "%s 节点使用类型" #~ msgid "Drag reorder applies within the current page only." #~ msgstr "拖拽排序仅在当前分页内生效。" -#~ msgid "Update" -#~ msgstr "更新" - -#~ msgid "Updating..." -#~ msgstr "更新中..." - #~ msgid "Anti-pollution DNS Server For Shunt Mode" #~ msgstr "分流模式下的访问国外域名 DNS 服务器" diff --git a/v2ray-geodata/Makefile b/v2ray-geodata/Makefile index e4f3403d..481202f7 100644 --- a/v2ray-geodata/Makefile +++ b/v2ray-geodata/Makefile @@ -21,13 +21,13 @@ define Download/geoip HASH:=e9002979e0df72bce1c8751ff70725386594c551db684b7a232935b8b2bb8aa2 endef -GEOSITE_VER:=20260520170255 +GEOSITE_VER:=20260522120028 GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER) define Download/geosite URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/ URL_FILE:=dlc.dat FILE:=$(GEOSITE_FILE) - HASH:=441d689a2f129132e0dd4c51517fe370a2e66eb2cccb86e4f5cd010559d0b5ce + HASH:=1c039aacd6346523f7a316d63318c62d4333864f7a88519e445777005cf65ef3 endef GEOSITE_IRAN_VER:=202605180152