diff --git a/luci-app-nikki/Makefile b/luci-app-nikki/Makefile index c27aa10d9..27c25a03b 100644 --- a/luci-app-nikki/Makefile +++ b/luci-app-nikki/Makefile @@ -1,6 +1,6 @@ include $(TOPDIR)/rules.mk -PKG_VERSION:=1.21.2 +PKG_VERSION:=1.22.0 LUCI_TITLE:=LuCI Support for nikki LUCI_DEPENDS:=+luci-base +nikki diff --git a/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js b/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js index b480f2a58..38b5f08a9 100644 --- a/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js +++ b/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js @@ -37,7 +37,8 @@ return view.extend({ m = new form.Map('nikki', _('Nikki'), `${_('Transparent Proxy with Mihomo on OpenWrt.')} ${_('How To Use')}`); - s = m.section(form.NamedSection, 'status', 'status', _('Status')); + s = m.section(form.TableSection, 'status', _('Status')); + s.anonymous = true; o = s.option(form.Value, '_app_version', _('App Version')); o.readonly = true; @@ -63,28 +64,28 @@ return view.extend({ }); }); - o = s.option(form.Button, 'reload', '-'); + o = s.option(form.Button, 'reload'); o.inputstyle = 'action'; o.inputtitle = _('Reload Service'); o.onclick = function () { return nikki.reload(); }; - o = s.option(form.Button, 'restart', '-'); + o = s.option(form.Button, 'restart'); o.inputstyle = 'negative'; o.inputtitle = _('Restart Service'); o.onclick = function () { return nikki.restart(); }; - o = s.option(form.Button, 'update_dashboard', '-'); + o = s.option(form.Button, 'update_dashboard'); o.inputstyle = 'positive'; o.inputtitle = _('Update Dashboard'); o.onclick = function () { return nikki.updateDashboard(); }; - o = s.option(form.Button, 'open_dashboard', '-'); + o = s.option(form.Button, 'open_dashboard'); o.inputtitle = _('Open Dashboard'); o.onclick = function () { return nikki.openDashboard(); diff --git a/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js b/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js index 6d732a697..7705a5e61 100644 --- a/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js +++ b/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js @@ -29,8 +29,8 @@ return view.extend({ o = s.taboption('app_log', form.Button, 'clear_app_log'); o.inputstyle = 'negative'; o.inputtitle = _('Clear Log'); - o.onclick = function () { - m.lookupOption('nikki.log._app_log')[0].getUIElement('log').setValue(''); + o.onclick = function (_, section_id) { + m.lookupOption('_app_log', section_id)[0].getUIElement(section_id).setValue(''); return nikki.clearAppLog(); }; @@ -52,8 +52,8 @@ return view.extend({ o = s.taboption('app_log', form.Button, 'scroll_app_log_to_bottom'); o.inputtitle = _('Scroll To Bottom'); - o.onclick = function () { - const element = m.lookupOption('nikki.log._app_log')[0].getUIElement('log').node.firstChild; + o.onclick = function (_, section_id) { + const element = m.lookupOption('_app_log', section_id)[0].getUIElement(section_id).node.firstChild; element.scrollTop = element.scrollHeight; }; @@ -62,8 +62,8 @@ return view.extend({ o = s.taboption('core_log', form.Button, 'clear_core_log'); o.inputstyle = 'negative'; o.inputtitle = _('Clear Log'); - o.onclick = function () { - m.lookupOption('nikki.log._core_log')[0].getUIElement('log').setValue(''); + o.onclick = function (_, section_id) { + m.lookupOption('_core_log', section_id)[0].getUIElement(section_id).setValue(''); return nikki.clearCoreLog(); }; @@ -85,8 +85,8 @@ return view.extend({ o = s.taboption('core_log', form.Button, 'scroll_core_log_to_bottom'); o.inputtitle = _('Scroll To Bottom'); - o.onclick = function () { - const element = m.lookupOption('nikki.log._core_log')[0].getUIElement('log').node.firstChild; + o.onclick = function (_, section_id) { + const element = m.lookupOption('_core_log', section_id)[0].getUIElement(section_id).node.firstChild; element.scrollTop = element.scrollHeight; }; diff --git a/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js b/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js index f3215d37e..264a80644 100644 --- a/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js +++ b/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js @@ -61,7 +61,7 @@ return view.extend({ o.value(network.getName()); } - o = s.taboption('general', form.ListValue, 'ipv6', _('IPv6')); + o = s.taboption('general', form.ListValue, 'ipv6', 'IPv6'); o.optional = true; o.placeholder = _('Unmodified'); o.value('0', _('Disable')); @@ -233,7 +233,7 @@ return view.extend({ o.placeholder = _('Unmodified'); o.rmempty = false; - o = s.taboption('dns', form.ListValue, 'dns_ipv6', _('IPv6')); + o = s.taboption('dns', form.ListValue, 'dns_ipv6', 'IPv6'); o.optional = true; o.placeholder = _('Unmodified'); o.value('0', _('Disable')); @@ -309,7 +309,7 @@ return view.extend({ so = o.subsection.option(form.Value, 'domain_name', _('Domain Name')); so.rmempty = false; - so = o.subsection.option(form.DynamicList, 'ip', _('IP')); + so = o.subsection.option(form.DynamicList, 'ip', 'IP'); o = s.taboption('dns', form.Flag, 'dns_nameserver', _('Overwrite Nameserver')); o.rmempty = false; diff --git a/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js b/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js index efca690aa..f767309b2 100644 --- a/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js +++ b/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js @@ -22,104 +22,87 @@ return view.extend({ const groups = data[3]?.groups ?? []; const cgroups = data[3]?.cgroups ?? []; - let m, s, o; + let m, s, o, so; m = new form.Map('nikki'); s = m.section(form.NamedSection, 'proxy', 'proxy', _('Proxy Config')); - s.tab('transparent_proxy', _('Transparent Proxy')); + s.tab('proxy', _('Proxy Config')); - o = s.taboption('transparent_proxy', form.Flag, 'transparent_proxy', _('Enable')); + o = s.taboption('proxy', form.Flag, 'enabled', _('Enable')); o.rmempty = false; - o = s.taboption('transparent_proxy', form.ListValue, 'tcp_transparent_proxy_mode', _('TCP Proxy Mode')); + o = s.taboption('proxy', form.ListValue, 'tcp_mode', _('TCP Mode')); o.optional = true; o.placeholder = _('Disable'); o.value('redirect', _('Redirect Mode')); o.value('tproxy', _('TPROXY Mode')); o.value('tun', _('TUN Mode')); - o = s.taboption('transparent_proxy', form.ListValue, 'udp_transparent_proxy_mode', _('UDP Proxy Mode')); + o = s.taboption('proxy', form.ListValue, 'udp_mode', _('UDP Mode')); o.optional = true; o.placeholder = _('Disable'); o.value('tproxy', _('TPROXY Mode')); o.value('tun', _('TUN Mode')); - o = s.taboption('transparent_proxy', form.Flag, 'ipv4_dns_hijack', _('IPv4 DNS Hijack')); + o = s.taboption('proxy', form.Flag, 'ipv4_dns_hijack', _('IPv4 DNS Hijack')); o.rmempty = false; - o = s.taboption('transparent_proxy', form.Flag, 'ipv6_dns_hijack', _('IPv6 DNS Hijack')); + o = s.taboption('proxy', form.Flag, 'ipv6_dns_hijack', _('IPv6 DNS Hijack')); o.rmempty = false; - o = s.taboption('transparent_proxy', form.Flag, 'ipv4_proxy', _('IPv4 Proxy')); + o = s.taboption('proxy', form.Flag, 'ipv4_proxy', _('IPv4 Proxy')); o.rmempty = false; - o = s.taboption('transparent_proxy', form.Flag, 'ipv6_proxy', _('IPv6 Proxy')); + o = s.taboption('proxy', form.Flag, 'ipv6_proxy', _('IPv6 Proxy')); o.rmempty = false; - o = s.taboption('transparent_proxy', form.Flag, 'fake_ip_ping_hijack', _('Fake-IP Ping Hijack')); + o = s.taboption('proxy', form.Flag, 'fake_ip_ping_hijack', _('Fake-IP Ping Hijack')); o.rmempty = false; - o = s.taboption('transparent_proxy', form.Flag, 'router_proxy', _('Router Proxy')); + s.tab('router', _('Router Proxy')); + + o = s.taboption('router', form.Flag, 'router_proxy', _('Enable')); o.rmempty = false; - o = s.taboption('transparent_proxy', form.Flag, 'lan_proxy', _('Lan Proxy')); - o.rmempty = false; + o = s.taboption('router', form.SectionValue, '_router_access_control', form.TableSection, 'router_access_control', _('Access Control')); - s.tab('access_control', _('Access Control')); + o.subsection.addremove = true; + o.subsection.anonymous = true; + o.subsection.sortable = true; - o = s.taboption('access_control', form.ListValue, 'access_control_mode', _('Mode')); - o.value('all', _('All Mode')); - o.value('allow', _('Allow Mode')); - o.value('block', _('Block Mode')); + so = o.subsection.option(form.Flag, 'enabled', _('Enable')); + so.default = '1'; + so.rmempty = false; - o = s.taboption('access_control', form.DynamicList, 'acl_ip', 'IP'); - o.datatype = 'ipmask4'; - o.retain = true; - o.depends('access_control_mode', 'allow'); - o.depends('access_control_mode', 'block'); + so = o.subsection.option(form.DynamicList, 'user', _('User')); - for (const mac in hosts) { - const host = hosts[mac]; - for (const ip of host.ipaddrs) { - const hint = host.name ?? mac; - o.value(ip, hint ? '%s (%s)'.format(ip, hint) : ip); - }; + for (const user of users) { + so.value(user); }; - o = s.taboption('access_control', form.DynamicList, 'acl_ip6', 'IP6'); - o.datatype = 'ipmask6'; - o.retain = true; - o.depends('access_control_mode', 'allow'); - o.depends('access_control_mode', 'block'); + so = o.subsection.option(form.DynamicList, 'group', _('Group')); - for (const mac in hosts) { - const host = hosts[mac]; - for (const ip of host.ip6addrs) { - const hint = host.name ?? mac; - o.value(ip, hint ? '%s (%s)'.format(ip, hint) : ip); - }; + for (const group of groups) { + so.value(group); }; - o = s.taboption('access_control', form.DynamicList, 'acl_mac', 'MAC'); - o.datatype = 'macaddr'; - o.retain = true; - o.depends('access_control_mode', 'allow'); - o.depends('access_control_mode', 'block'); + so = o.subsection.option(form.DynamicList, 'cgroup', _('CGroup')); - for (const mac in hosts) { - const host = hosts[mac]; - const hint = host.name ?? host.ipaddrs[0]; - o.value(mac, hint ? '%s (%s)'.format(mac, hint) : mac); + for (const cgroup of cgroups) { + so.value(cgroup); }; - o = s.taboption('access_control', form.DynamicList, 'acl_interface', _('Interface')); - o.multiple = true; - o.optional = true; - o.retain = true; - o.depends('access_control_mode', 'allow'); - o.depends('access_control_mode', 'block'); + so = o.subsection.option(form.Flag, 'proxy', _('Proxy')); + so.rmempty = false; + + s.tab('lan', _('LAN Proxy')); + + o = s.taboption('lan', form.Flag, 'lan_proxy', _('Enable')); + + o = s.taboption('lan', form.DynamicList, 'lan_inbound_interface', _('Inbound Interface')); + o.rmempty = false; for (const network of networks) { if (network.getName() === 'loopback') { @@ -128,26 +111,49 @@ return view.extend({ o.value(network.getName()); } + o = s.taboption('lan', form.SectionValue, '_lan_access_control', form.TableSection, 'lan_access_control', _('Access Control')); + + o.subsection.addremove = true; + o.subsection.anonymous = true; + o.subsection.sortable = true; + + so = o.subsection.option(form.Flag, 'enabled', _('Enable')); + so.default = '1'; + so.rmempty = false; + + so = o.subsection.option(form.DynamicList, 'ip', 'IP'); + + for (const mac in hosts) { + const host = hosts[mac]; + for (const ip of host.ipaddrs) { + const hint = host.name ?? mac; + so.value(ip, hint ? '%s (%s)'.format(ip, hint) : ip); + }; + }; + + so = o.subsection.option(form.DynamicList, 'ip6', 'IP6'); + + for (const mac in hosts) { + const host = hosts[mac]; + for (const ip of host.ip6addrs) { + const hint = host.name ?? mac; + so.value(ip, hint ? '%s (%s)'.format(ip, hint) : ip); + }; + }; + + so = o.subsection.option(form.DynamicList, 'mac', 'MAC'); + + for (const mac in hosts) { + const host = hosts[mac]; + const hint = host.name ?? host.ipaddrs[0]; + so.value(mac, hint ? '%s (%s)'.format(mac, hint) : mac); + }; + + so = o.subsection.option(form.Flag, 'proxy', _('Proxy')); + so.rmempty = false; + s.tab('bypass', _('Bypass')); - o = s.taboption('bypass', form.DynamicList, 'bypass_user', _('Bypass User')); - - for (const user of users) { - o.value(user); - }; - - o = s.taboption('bypass', form.DynamicList, 'bypass_group', _('Bypass Group')); - - for (const group of groups) { - o.value(group); - }; - - o = s.taboption('bypass', form.DynamicList, 'bypass_cgroup', _('Bypass cgroup')); - - for (const cgroup of cgroups) { - o.value(cgroup); - }; - o = s.taboption('bypass', form.Flag, 'bypass_china_mainland_ip', _('Bypass China Mainland IP')); o.rmempty = false; diff --git a/luci-app-nikki/po/templates/nikki.pot b/luci-app-nikki/po/templates/nikki.pot index 4794d5b97..623e0b216 100644 --- a/luci-app-nikki/po/templates/nikki.pot +++ b/luci-app-nikki/po/templates/nikki.pot @@ -1,33 +1,29 @@ msgid "" msgstr "Content-Type: text/plain; charset=UTF-8" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:120 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:121 msgid "API Listen" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:125 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:126 msgid "API Secret" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:70 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:69 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:114 msgid "Access Control" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:73 -msgid "All Mode" -msgstr "" - -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:159 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:164 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:162 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:167 msgid "All Port" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:137 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:138 msgid "Allow Lan" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:262 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:74 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:263 msgid "Allow Mode" msgstr "" @@ -44,45 +40,36 @@ msgstr "" msgid "App Version" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:485 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:486 msgid "Append Rule" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:416 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:417 msgid "Append Rule Provider" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:472 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:473 msgid "Behavior" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:261 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:75 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:262 msgid "Block Mode" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:131 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:155 msgid "Bypass" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:154 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:157 msgid "Bypass China Mainland IP" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:167 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:170 msgid "Bypass DSCP" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:140 -msgid "Bypass Group" -msgstr "" - -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:133 -msgid "Bypass User" -msgstr "" - -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:147 -msgid "Bypass cgroup" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:91 +msgid "CGroup" msgstr "" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:29 @@ -98,8 +85,8 @@ msgstr "" msgid "Clear Log" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:160 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:165 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:163 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:168 msgid "Commonly Used Port" msgstr "" @@ -123,15 +110,15 @@ msgstr "" msgid "Cron Expression" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:228 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:229 msgid "DNS Config" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:230 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:231 msgid "DNS Listen" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:241 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:242 msgid "DNS Mode" msgstr "" @@ -139,27 +126,27 @@ msgstr "" msgid "Debug Log" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:507 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:508 msgid "Destination IP" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:511 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:512 msgid "Destination IP Geo" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:508 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:509 msgid "Destination Port" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:157 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:160 msgid "Destination TCP Port to Proxy" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:162 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:165 msgid "Destination UDP Port to Proxy" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:188 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:189 msgid "Device Name" msgstr "" @@ -171,20 +158,20 @@ msgstr "" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:73 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:79 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:85 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:132 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:140 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:206 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:216 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:238 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:267 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:273 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:279 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:285 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:291 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:558 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:133 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:141 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:207 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:217 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:239 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:268 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:274 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:280 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:286 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:292 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:361 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:367 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:373 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:559 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:38 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:45 msgid "Disable" @@ -210,60 +197,60 @@ msgstr "" msgid "Disable TCP Keep Alive" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:276 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:277 msgid "DoH Prefer HTTP/3" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:308 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:503 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:309 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:504 msgid "Domain Name" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:510 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:511 msgid "Domain Name Geo" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:506 msgid "Domain Name Keyword" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:506 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:507 msgid "Domain Name Regex" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:504 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505 msgid "Domain Name Suffix" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:168 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:169 msgid "Edit Authentications" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:222 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:223 msgid "Edit DNS Hijacks" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:254 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:255 msgid "Edit Fake-IP Filters" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:297 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:298 msgid "Edit Hosts" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:339 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:340 msgid "Edit Nameserver Policies" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:316 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:317 msgid "Edit Nameservers" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:419 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:420 msgid "Edit Rule Providers" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:488 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:489 msgid "Edit Rules" msgstr "" @@ -281,34 +268,38 @@ msgstr "" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:74 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:80 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:86 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:133 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:141 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:176 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:207 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:217 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:239 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:268 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:274 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:280 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:286 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:292 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:305 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:324 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:347 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:357 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:361 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:367 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:373 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:399 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:427 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:496 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:559 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:567 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:134 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:142 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:177 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:208 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:218 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:240 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:269 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:275 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:281 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:287 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:293 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:306 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:325 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:348 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:358 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:362 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:368 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:374 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:400 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:428 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:497 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:560 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:568 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:33 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:75 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:102 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:120 msgid "Enable" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:213 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:214 msgid "Endpoint Independent NAT" msgstr "" @@ -320,11 +311,11 @@ msgstr "" msgid "External Control Config" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:264 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:265 msgid "Fake-IP Cache" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:258 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:259 msgid "Fake-IP Filter Mode" msgstr "" @@ -332,7 +323,7 @@ msgstr "" msgid "Fake-IP Ping Hijack" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:246 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:247 msgid "Fake-IP Range" msgstr "" @@ -340,15 +331,15 @@ msgstr "" msgid "Fast Reload" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:466 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:467 msgid "File Format" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:460 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:461 msgid "File Path" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:454 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:455 msgid "File Size Limit" msgstr "" @@ -369,15 +360,15 @@ msgstr "" msgid "File:" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:378 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:379 msgid "Force Sniff Domain Name" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:203 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:204 msgid "GSO" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:209 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:210 msgid "GSO Max Size" msgstr "" @@ -389,39 +380,39 @@ msgstr "" msgid "Generate & Download" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:537 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:538 msgid "GeoData Loader" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:531 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:532 msgid "GeoIP Format" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:552 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:553 msgid "GeoIP(ASN) Url" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:549 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:550 msgid "GeoIP(DAT) Url" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:546 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:547 msgid "GeoIP(MMDB) Url" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:543 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:544 msgid "GeoSite Url" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:555 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:556 msgid "GeoX Auto Update" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:529 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:530 msgid "GeoX Config" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:561 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:562 msgid "GeoX Update Interval" msgstr "" @@ -437,7 +428,11 @@ msgstr "" msgid "Grant access to nikki procedures" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:143 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:85 +msgid "Group" +msgstr "" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:144 msgid "HTTP Port" msgstr "" @@ -445,10 +440,6 @@ msgstr "" msgid "How To Use" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:311 -msgid "IP" -msgstr "" - #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:49 msgid "IPv4 DNS Hijack" msgstr "" @@ -457,11 +448,6 @@ msgstr "" msgid "IPv4 Proxy" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:64 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:235 -msgid "IPv6" -msgstr "" - #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:52 msgid "IPv6 DNS Hijack" msgstr "" @@ -470,20 +456,20 @@ msgstr "" msgid "IPv6 Proxy" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:385 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:386 msgid "Ignore Sniff Domain Name" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:135 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:136 msgid "Inbound Config" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:117 -msgid "Interface" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:104 +msgid "Inbound Interface" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:67 -msgid "Lan Proxy" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:100 +msgid "LAN Proxy" msgstr "" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:82 @@ -499,7 +485,7 @@ msgstr "" msgid "Log Level" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:199 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:200 msgid "MTU" msgstr "" @@ -507,16 +493,16 @@ msgstr "" msgid "Match Process" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:350 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:513 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:351 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:514 msgid "Matcher" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:541 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:542 msgid "Memory Conservative Loader" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:151 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:152 msgid "Mixed Port" msgstr "" @@ -524,7 +510,7 @@ msgstr "" msgid "Mixin Config" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:565 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:566 msgid "Mixin File Content" msgstr "" @@ -533,16 +519,15 @@ msgid "Mixin Option" msgstr "" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:39 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:72 msgid "Mode" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:433 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:434 msgid "Name" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:334 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:353 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:335 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:354 msgid "Nameserver" msgstr "" @@ -551,12 +536,12 @@ msgstr "" msgid "Nikki" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:523 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:524 msgid "No Resolve" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:447 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:516 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:448 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:517 msgid "Node" msgstr "" @@ -572,55 +557,55 @@ msgstr "" msgid "Outbound Interface" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:165 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:166 msgid "Overwrite Authentication" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:219 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:220 msgid "Overwrite DNS Hijack" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:411 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:412 msgid "Overwrite Destination" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:251 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:252 msgid "Overwrite Fake-IP Filter" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:375 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:376 msgid "Overwrite Force Sniff Domain Name" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:294 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:295 msgid "Overwrite Hosts" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:382 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:383 msgid "Overwrite Ignore Sniff Domain Name" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:313 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:314 msgid "Overwrite Nameserver" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:336 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:337 msgid "Overwrite Nameserver Policy" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:389 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:390 msgid "Overwrite Sniff By Protocol" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:182 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:183 msgid "Password" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:567 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:568 msgid "Please go to the editor tab to edit the file for mixin" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:408 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:409 msgid "Port" msgstr "" @@ -628,7 +613,7 @@ msgstr "" msgid "Prefer" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:509 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:510 msgid "Process Name" msgstr "" @@ -641,11 +626,17 @@ msgstr "" msgid "Profile for Startup" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:402 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:403 msgid "Protocol" msgstr "" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:97 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:152 +msgid "Proxy" +msgstr "" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:29 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:31 #: applications/luci-app-nikki/root/usr/share/luci/menu.d/luci-app-nikki.json:37 msgid "Proxy Config" msgstr "" @@ -662,7 +653,7 @@ msgstr "" msgid "Redirect Mode" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:155 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:156 msgid "Redirect Port" msgstr "" @@ -674,7 +665,7 @@ msgstr "" msgid "Remote" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:270 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:271 msgid "Respect Rules" msgstr "" @@ -686,7 +677,7 @@ msgstr "" msgid "Router Proxy" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:414 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:415 msgid "Rule Config" msgstr "" @@ -698,7 +689,7 @@ msgstr "" msgid "Rule Provider:" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:502 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:503 msgid "Rule Set" msgstr "" @@ -706,11 +697,11 @@ msgstr "" msgid "Running" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:147 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:148 msgid "SOCKS Port" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:129 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:130 msgid "Save Proxy Selection" msgstr "" @@ -723,27 +714,27 @@ msgstr "" msgid "Scroll To Bottom" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:392 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:393 msgid "Sniff By Protocol" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:369 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:370 msgid "Sniff Pure IP" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:363 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:364 msgid "Sniff Redir-Host" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:355 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:356 msgid "Sniffer Config" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:192 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:193 msgid "Stack" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:540 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:541 msgid "Standard Loader" msgstr "" @@ -785,7 +776,7 @@ msgid "TCP Keep Alive Interval" msgstr "" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:36 -msgid "TCP Proxy Mode" +msgid "TCP Mode" msgstr "" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:40 @@ -793,11 +784,11 @@ msgstr "" msgid "TPROXY Mode" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:160 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:161 msgid "TPROXY Port" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:186 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:187 msgid "TUN Config" msgstr "" @@ -814,22 +805,18 @@ msgstr "" msgid "Total" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:31 -msgid "Transparent Proxy" -msgstr "" - #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:38 msgid "Transparent Proxy with Mihomo on OpenWrt." msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:327 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:436 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:500 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:328 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:437 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:501 msgid "Type" msgstr "" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:43 -msgid "UDP Proxy Mode" +msgid "UDP Mode" msgstr "" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:110 @@ -862,42 +849,42 @@ msgstr "" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:107 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:111 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:114 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:122 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:127 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:131 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:139 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:145 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:149 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:153 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:157 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:162 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:189 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:194 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:201 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:205 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:211 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:215 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:232 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:237 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:242 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:248 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:260 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:266 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:272 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:278 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:284 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:290 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:359 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:365 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:371 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:533 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:539 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:544 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:547 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:550 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:553 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:557 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:563 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:123 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:128 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:132 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:140 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:146 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:150 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:154 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:158 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:163 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:190 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:195 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:202 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:206 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:212 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:216 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:233 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:238 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:243 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:249 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:261 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:267 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:273 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:279 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:285 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:291 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:534 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:540 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:545 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:548 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:551 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:554 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:558 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:564 msgid "Unmodified" msgstr "" @@ -913,7 +900,7 @@ msgstr "" msgid "Update Dashboard" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:479 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:480 msgid "Update Interval" msgstr "" @@ -921,15 +908,15 @@ msgstr "" msgid "Upload Profile" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:442 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:443 msgid "Url" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:288 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:289 msgid "Use Hosts" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:282 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:283 msgid "Use System Hosts" msgstr "" @@ -937,10 +924,14 @@ msgstr "" msgid "Used" msgstr "" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:79 +msgid "User" +msgstr "" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:70 msgid "User Agent" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:179 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:180 msgid "Username" msgstr "" diff --git a/luci-app-nikki/po/zh_Hans/nikki.po b/luci-app-nikki/po/zh_Hans/nikki.po index fedaf894a..6d970f10b 100644 --- a/luci-app-nikki/po/zh_Hans/nikki.po +++ b/luci-app-nikki/po/zh_Hans/nikki.po @@ -8,33 +8,29 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:120 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:121 msgid "API Listen" msgstr "API 监听" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:125 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:126 msgid "API Secret" msgstr "API 密钥" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:70 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:69 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:114 msgid "Access Control" msgstr "访问控制" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:73 -msgid "All Mode" -msgstr "全部模式" - -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:159 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:164 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:162 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:167 msgid "All Port" msgstr "全部端口" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:137 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:138 msgid "Allow Lan" msgstr "允许局域网访问" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:262 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:74 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:263 msgid "Allow Mode" msgstr "白名单模式" @@ -51,46 +47,37 @@ msgstr "插件日志" msgid "App Version" msgstr "插件版本" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:485 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:486 msgid "Append Rule" msgstr "追加规则" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:416 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:417 msgid "Append Rule Provider" msgstr "追加规则提供者" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:472 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:473 msgid "Behavior" msgstr "行为" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:261 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:75 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:262 msgid "Block Mode" msgstr "黑名单模式" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:131 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:155 msgid "Bypass" msgstr "绕过" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:154 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:157 msgid "Bypass China Mainland IP" msgstr "绕过中国大陆 IP" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:167 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:170 msgid "Bypass DSCP" msgstr "绕过 DSCP" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:140 -msgid "Bypass Group" -msgstr "绕过用户组" - -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:133 -msgid "Bypass User" -msgstr "绕过用户" - -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:147 -msgid "Bypass cgroup" -msgstr "绕过资源控制组" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:91 +msgid "CGroup" +msgstr "控制组" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:29 msgid "Choose File" @@ -105,8 +92,8 @@ msgstr "选择配置文件" msgid "Clear Log" msgstr "清空日志" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:160 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:165 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:163 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:168 msgid "Commonly Used Port" msgstr "常用端口" @@ -130,15 +117,15 @@ msgstr "核心版本" msgid "Cron Expression" msgstr "Cron 表达式" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:228 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:229 msgid "DNS Config" msgstr "DNS 配置" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:230 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:231 msgid "DNS Listen" msgstr "DNS 监听" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:241 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:242 msgid "DNS Mode" msgstr "DNS 模式" @@ -146,27 +133,27 @@ msgstr "DNS 模式" msgid "Debug Log" msgstr "调试日志" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:507 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:508 msgid "Destination IP" msgstr "目标 IP" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:511 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:512 msgid "Destination IP Geo" msgstr "目标 IP(Geo)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:508 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:509 msgid "Destination Port" msgstr "目标端口" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:157 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:160 msgid "Destination TCP Port to Proxy" msgstr "要代理的 TCP 目标端口" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:162 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:165 msgid "Destination UDP Port to Proxy" msgstr "要代理的 UDP 目标端口" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:188 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:189 msgid "Device Name" msgstr "设备名称" @@ -178,20 +165,20 @@ msgstr "直连模式" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:73 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:79 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:85 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:132 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:140 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:206 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:216 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:238 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:267 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:273 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:279 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:285 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:291 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:558 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:133 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:141 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:207 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:217 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:239 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:268 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:274 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:280 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:286 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:292 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:361 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:367 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:373 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:559 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:38 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:45 msgid "Disable" @@ -217,60 +204,60 @@ msgstr "禁用安全路径检查" msgid "Disable TCP Keep Alive" msgstr "禁用 TCP Keep Alive" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:276 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:277 msgid "DoH Prefer HTTP/3" msgstr "DoH 优先 HTTP/3" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:308 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:503 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:309 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:504 msgid "Domain Name" msgstr "域名" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:510 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:511 msgid "Domain Name Geo" msgstr "域名(Geo)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:506 msgid "Domain Name Keyword" msgstr "域名(关键字)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:506 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:507 msgid "Domain Name Regex" msgstr "域名(正则表达式)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:504 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505 msgid "Domain Name Suffix" msgstr "域名(后缀)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:168 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:169 msgid "Edit Authentications" msgstr "编辑身份验证" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:222 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:223 msgid "Edit DNS Hijacks" msgstr "编辑 DNS 劫持" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:254 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:255 msgid "Edit Fake-IP Filters" msgstr "编辑 Fake-IP 过滤列表" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:297 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:298 msgid "Edit Hosts" msgstr "编辑 Hosts" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:339 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:340 msgid "Edit Nameserver Policies" msgstr "编辑 DNS 服务器查询策略" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:316 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:317 msgid "Edit Nameservers" msgstr "编辑 DNS 服务器" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:419 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:420 msgid "Edit Rule Providers" msgstr "编辑规则提供者" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:488 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:489 msgid "Edit Rules" msgstr "编辑规则" @@ -288,34 +275,38 @@ msgstr "编辑器" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:74 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:80 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:86 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:133 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:141 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:176 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:207 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:217 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:239 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:268 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:274 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:280 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:286 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:292 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:305 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:324 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:347 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:357 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:361 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:367 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:373 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:399 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:427 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:496 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:559 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:567 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:134 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:142 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:177 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:208 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:218 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:240 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:269 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:275 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:281 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:287 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:293 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:306 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:325 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:348 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:358 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:362 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:368 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:374 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:400 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:428 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:497 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:560 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:568 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:33 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:75 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:102 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:120 msgid "Enable" msgstr "启用" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:213 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:214 msgid "Endpoint Independent NAT" msgstr "独立于端点的 NAT" @@ -327,11 +318,11 @@ msgstr "到期时间" msgid "External Control Config" msgstr "外部控制配置" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:264 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:265 msgid "Fake-IP Cache" msgstr "Fake-IP 缓存" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:258 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:259 msgid "Fake-IP Filter Mode" msgstr "Fake-IP 过滤模式" @@ -339,7 +330,7 @@ msgstr "Fake-IP 过滤模式" msgid "Fake-IP Ping Hijack" msgstr "Fake-IP Ping 劫持" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:246 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:247 msgid "Fake-IP Range" msgstr "Fake-IP 范围" @@ -347,15 +338,15 @@ msgstr "Fake-IP 范围" msgid "Fast Reload" msgstr "快速重载" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:466 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:467 msgid "File Format" msgstr "文件格式" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:460 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:461 msgid "File Path" msgstr "文件路径" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:454 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:455 msgid "File Size Limit" msgstr "文件大小限制" @@ -376,15 +367,15 @@ msgstr "IPv6 保留地址" msgid "File:" msgstr "文件:" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:378 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:379 msgid "Force Sniff Domain Name" msgstr "强制嗅探的域名" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:203 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:204 msgid "GSO" msgstr "通用分段卸载" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:209 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:210 msgid "GSO Max Size" msgstr "分段最大长度" @@ -396,39 +387,39 @@ msgstr "全局配置" msgid "Generate & Download" msgstr "生成并下载" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:537 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:538 msgid "GeoData Loader" msgstr "GeoData 加载器" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:531 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:532 msgid "GeoIP Format" msgstr "GeoIP 格式" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:552 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:553 msgid "GeoIP(ASN) Url" msgstr "GeoIP(ASN) 下载地址" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:549 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:550 msgid "GeoIP(DAT) Url" msgstr "GeoIP(DAT) 下载地址" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:546 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:547 msgid "GeoIP(MMDB) Url" msgstr "GeoIP(MMDB) 下载地址" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:543 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:544 msgid "GeoSite Url" msgstr "GeoSite 下载地址" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:555 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:556 msgid "GeoX Auto Update" msgstr "定时更新GeoX文件" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:529 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:530 msgid "GeoX Config" msgstr "GeoX 配置" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:561 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:562 msgid "GeoX Update Interval" msgstr "GeoX 文件更新间隔" @@ -444,7 +435,11 @@ msgstr "全局模式" msgid "Grant access to nikki procedures" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:143 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:85 +msgid "Group" +msgstr "用户组" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:144 msgid "HTTP Port" msgstr "HTTP 端口" @@ -452,10 +447,6 @@ msgstr "HTTP 端口" msgid "How To Use" msgstr "使用说明" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:311 -msgid "IP" -msgstr "" - #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:49 msgid "IPv4 DNS Hijack" msgstr "IPv4 DNS 劫持" @@ -464,11 +455,6 @@ msgstr "IPv4 DNS 劫持" msgid "IPv4 Proxy" msgstr "IPv4 代理" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:64 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:235 -msgid "IPv6" -msgstr "" - #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:52 msgid "IPv6 DNS Hijack" msgstr "IPv6 DNS 劫持" @@ -477,20 +463,20 @@ msgstr "IPv6 DNS 劫持" msgid "IPv6 Proxy" msgstr "IPv6 代理" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:385 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:386 msgid "Ignore Sniff Domain Name" msgstr "忽略嗅探的域名" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:135 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:136 msgid "Inbound Config" msgstr "入站配置" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:117 -msgid "Interface" -msgstr "接口" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:104 +msgid "Inbound Interface" +msgstr "入站接口" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:67 -msgid "Lan Proxy" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:100 +msgid "LAN Proxy" msgstr "局域网代理" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:82 @@ -506,7 +492,7 @@ msgstr "日志" msgid "Log Level" msgstr "日志级别" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:199 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:200 msgid "MTU" msgstr "最大传输单元" @@ -514,16 +500,16 @@ msgstr "最大传输单元" msgid "Match Process" msgstr "匹配进程" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:350 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:513 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:351 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:514 msgid "Matcher" msgstr "匹配" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:541 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:542 msgid "Memory Conservative Loader" msgstr "为内存受限设备优化的加载器" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:151 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:152 msgid "Mixed Port" msgstr "混合端口" @@ -531,7 +517,7 @@ msgstr "混合端口" msgid "Mixin Config" msgstr "混入配置" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:565 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:566 msgid "Mixin File Content" msgstr "混入文件内容" @@ -540,16 +526,15 @@ msgid "Mixin Option" msgstr "混入选项" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:39 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:72 msgid "Mode" msgstr "模式" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:433 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:434 msgid "Name" msgstr "名称" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:334 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:353 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:335 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:354 msgid "Nameserver" msgstr "DNS 服务器" @@ -558,12 +543,12 @@ msgstr "DNS 服务器" msgid "Nikki" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:523 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:524 msgid "No Resolve" msgstr "不解析" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:447 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:516 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:448 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:517 msgid "Node" msgstr "节点" @@ -579,55 +564,55 @@ msgstr "打开面板" msgid "Outbound Interface" msgstr "出站接口" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:165 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:166 msgid "Overwrite Authentication" msgstr "覆盖身份验证" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:219 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:220 msgid "Overwrite DNS Hijack" msgstr "覆盖 DNS 劫持" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:411 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:412 msgid "Overwrite Destination" msgstr "将嗅探结果作为连接目标" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:251 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:252 msgid "Overwrite Fake-IP Filter" msgstr "覆盖 Fake-IP 过滤列表" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:375 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:376 msgid "Overwrite Force Sniff Domain Name" msgstr "覆盖强制嗅探的域名" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:294 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:295 msgid "Overwrite Hosts" msgstr "覆盖 Hosts" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:382 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:383 msgid "Overwrite Ignore Sniff Domain Name" msgstr "覆盖忽略嗅探的域名" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:313 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:314 msgid "Overwrite Nameserver" msgstr "覆盖 DNS 服务器" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:336 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:337 msgid "Overwrite Nameserver Policy" msgstr "覆盖 DNS 服务器查询策略" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:389 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:390 msgid "Overwrite Sniff By Protocol" msgstr "覆盖按协议嗅探" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:182 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:183 msgid "Password" msgstr "密码" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:567 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:568 msgid "Please go to the editor tab to edit the file for mixin" msgstr "请前往编辑器标签编辑用于混入的文件" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:408 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:409 msgid "Port" msgstr "端口" @@ -635,7 +620,7 @@ msgstr "端口" msgid "Prefer" msgstr "优先" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:509 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:510 msgid "Process Name" msgstr "进程名" @@ -648,11 +633,17 @@ msgstr "配置文件" msgid "Profile for Startup" msgstr "用于启动的配置文件" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:402 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:403 msgid "Protocol" msgstr "协议" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:97 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:152 +msgid "Proxy" +msgstr "代理" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:29 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:31 #: applications/luci-app-nikki/root/usr/share/luci/menu.d/luci-app-nikki.json:37 msgid "Proxy Config" msgstr "代理配置" @@ -669,7 +660,7 @@ msgstr "随机" msgid "Redirect Mode" msgstr "Redirect 模式" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:155 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:156 msgid "Redirect Port" msgstr "Redirect 端口" @@ -681,7 +672,7 @@ msgstr "重载服务" msgid "Remote" msgstr "远程" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:270 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:271 msgid "Respect Rules" msgstr "遵循分流规则" @@ -693,7 +684,7 @@ msgstr "重启服务" msgid "Router Proxy" msgstr "路由器代理" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:414 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:415 msgid "Rule Config" msgstr "规则配置" @@ -705,7 +696,7 @@ msgstr "规则模式" msgid "Rule Provider:" msgstr "规则提供者:" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:502 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:503 msgid "Rule Set" msgstr "规则集" @@ -713,11 +704,11 @@ msgstr "规则集" msgid "Running" msgstr "运行中" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:147 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:148 msgid "SOCKS Port" msgstr "SOCKS 端口" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:129 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:130 msgid "Save Proxy Selection" msgstr "保存节点/策略组选择" @@ -730,27 +721,27 @@ msgstr "定时重启" msgid "Scroll To Bottom" msgstr "滚动到底部" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:392 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:393 msgid "Sniff By Protocol" msgstr "按协议嗅探" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:369 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:370 msgid "Sniff Pure IP" msgstr "嗅探纯 IP 连接" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:363 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:364 msgid "Sniff Redir-Host" msgstr "嗅探 Redir-Host 流量" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:355 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:356 msgid "Sniffer Config" msgstr "嗅探器配置" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:192 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:193 msgid "Stack" msgstr "栈" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:540 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:541 msgid "Standard Loader" msgstr "标准加载器" @@ -792,19 +783,19 @@ msgid "TCP Keep Alive Interval" msgstr "TCP Keep Alive 间隔" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:36 -msgid "TCP Proxy Mode" -msgstr "TCP 代理模式" +msgid "TCP Mode" +msgstr "TCP 模式" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:40 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:46 msgid "TPROXY Mode" msgstr "TPROXY 模式" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:160 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:161 msgid "TPROXY Port" msgstr "TPROXY 端口" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:186 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:187 msgid "TUN Config" msgstr "TUN 配置" @@ -821,23 +812,19 @@ msgstr "检查配置文件" msgid "Total" msgstr "总量" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:31 -msgid "Transparent Proxy" -msgstr "透明代理" - #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:38 msgid "Transparent Proxy with Mihomo on OpenWrt." msgstr "在 OpenWrt 上使用 Mihomo 进行透明代理。" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:327 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:436 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:500 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:328 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:437 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:501 msgid "Type" msgstr "类型" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:43 -msgid "UDP Proxy Mode" -msgstr "UDP 代理模式" +msgid "UDP Mode" +msgstr "UDP 模式" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:110 msgid "UI Name" @@ -869,42 +856,42 @@ msgstr "统一延迟" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:107 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:111 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:114 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:122 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:127 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:131 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:139 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:145 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:149 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:153 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:157 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:162 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:189 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:194 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:201 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:205 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:211 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:215 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:232 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:237 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:242 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:248 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:260 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:266 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:272 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:278 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:284 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:290 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:359 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:365 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:371 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:533 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:539 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:544 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:547 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:550 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:553 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:557 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:563 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:123 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:128 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:132 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:140 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:146 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:150 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:154 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:158 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:163 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:190 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:195 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:202 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:206 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:212 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:216 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:233 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:238 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:243 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:249 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:261 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:267 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:273 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:279 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:285 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:291 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:534 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:540 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:545 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:548 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:551 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:554 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:558 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:564 msgid "Unmodified" msgstr "不修改" @@ -920,7 +907,7 @@ msgstr "更新时间" msgid "Update Dashboard" msgstr "更新面板" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:479 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:480 msgid "Update Interval" msgstr "更新间隔" @@ -928,15 +915,15 @@ msgstr "更新间隔" msgid "Upload Profile" msgstr "上传配置文件" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:442 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:443 msgid "Url" msgstr "下载地址" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:288 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:289 msgid "Use Hosts" msgstr "使用 Hosts" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:282 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:283 msgid "Use System Hosts" msgstr "使用系统的 Hosts" @@ -944,10 +931,14 @@ msgstr "使用系统的 Hosts" msgid "Used" msgstr "已使用" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:79 +msgid "User" +msgstr "用户" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:70 msgid "User Agent" msgstr "用户代理(UA)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:179 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:180 msgid "Username" msgstr "用户名" diff --git a/luci-app-nikki/root/usr/share/rpcd/ucode/luci.nikki b/luci-app-nikki/root/usr/share/rpcd/ucode/luci.nikki index bdf6063fd..7abf9ced0 100644 --- a/luci-app-nikki/root/usr/share/rpcd/ucode/luci.nikki +++ b/luci-app-nikki/root/usr/share/rpcd/ucode/luci.nikki @@ -59,8 +59,8 @@ const methods = { }, get_identifiers: { call: function() { - const users = filter(get_users(), (x) => x != '' && x != 'root'); - const groups = filter(get_groups(), (x) => x != '' && x != 'root'); + const users = filter(get_users(), (x) => x != ''); + const groups = filter(get_groups(), (x) => x != ''); const cgroups = filter(get_cgroups(), (x) => x != '' && x != 'nikki'); return { users: users, groups: groups, cgroups: cgroups }; }