diff --git a/luci-app-nikki/Makefile b/luci-app-nikki/Makefile index df52f6e..9e9f0b4 100644 --- a/luci-app-nikki/Makefile +++ b/luci-app-nikki/Makefile @@ -1,6 +1,6 @@ include $(TOPDIR)/rules.mk -PKG_VERSION:=1.23.2 +PKG_VERSION:=1.23.3 LUCI_TITLE:=LuCI Support for nikki LUCI_DEPENDS:=+luci-base +nikki 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 585b217..7004ab9 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 @@ -502,6 +502,7 @@ return view.extend({ so.value('RULE-SET', _('Rule Set')); so.value('DOMAIN', _('Domain Name')); so.value('DOMAIN-SUFFIX', _('Domain Name Suffix')); + so.value('DOMAIN-WILDCARD', _('Domain Name Wildcard')); so.value('DOMAIN-KEYWORD', _('Domain Name Keyword')); so.value('DOMAIN-REGEX', _('Domain Name Regex')); so.value('IP-CIDR', _('Destination IP')); 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 ca2e459..d4e3adc 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 @@ -99,6 +99,9 @@ return view.extend({ so = o.subsection.option(form.Flag, 'proxy', _('Proxy')); so.rmempty = false; + so = o.subsection.option(form.Flag, 'dns', _('DNS')); + so.rmempty = false; + s.tab('lan', _('LAN Proxy')); o = s.taboption('lan', form.Flag, 'lan_proxy', _('Enable')); diff --git a/luci-app-nikki/po/templates/nikki.pot b/luci-app-nikki/po/templates/nikki.pot index 3220b86..1f9b135 100644 --- a/luci-app-nikki/po/templates/nikki.pot +++ b/luci-app-nikki/po/templates/nikki.pot @@ -10,12 +10,12 @@ msgid "API Secret" msgstr "" #: 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:119 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:122 msgid "Access Control" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:169 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:174 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:172 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:177 msgid "All Port" msgstr "" @@ -56,15 +56,15 @@ msgstr "" msgid "Block Mode" 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 "Bypass" msgstr "" -#: 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:167 msgid "Bypass China Mainland IP" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:177 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:180 msgid "Bypass DSCP" msgstr "" @@ -85,8 +85,8 @@ msgstr "" msgid "Clear Log" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:170 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:175 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:173 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:178 msgid "Commonly Used Port" msgstr "" @@ -114,6 +114,10 @@ msgstr "" msgid "Cron Expression" msgstr "" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:102 +msgid "DNS" +msgstr "" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:228 msgid "DNS Config" msgstr "" @@ -130,23 +134,23 @@ 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:167 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:170 msgid "Destination TCP Port to Proxy" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:172 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:175 msgid "Destination UDP Port to Proxy" msgstr "" @@ -175,7 +179,7 @@ msgstr "" #: 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: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" @@ -206,15 +210,15 @@ msgstr "" 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 "" @@ -222,6 +226,10 @@ msgstr "" msgid "Domain Name Suffix" msgstr "" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505 +msgid "Domain Name Wildcard" +msgstr "" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:168 msgid "Edit Authentications" msgstr "" @@ -289,13 +297,13 @@ msgstr "" #: 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: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:77 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:104 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:127 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:107 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:130 msgid "Enable" msgstr "" @@ -380,39 +388,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 "" @@ -464,11 +472,11 @@ msgstr "" msgid "Inbound Config" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:107 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:110 msgid "Inbound Interface" msgstr "" -#: 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:105 msgid "LAN Proxy" msgstr "" @@ -494,11 +502,11 @@ 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: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 "" @@ -510,7 +518,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 "" @@ -536,12 +544,12 @@ msgstr "" msgid "Nikki" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:524 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:525 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:517 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:518 msgid "Node" msgstr "" @@ -601,7 +609,7 @@ msgstr "" 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 "" @@ -613,7 +621,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 "" @@ -631,7 +639,7 @@ msgid "Protocol" msgstr "" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:99 -#: 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:162 msgid "Proxy" msgstr "" @@ -742,7 +750,7 @@ msgstr "" 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 "" @@ -885,14 +893,14 @@ msgstr "" #: 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: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 "" diff --git a/luci-app-nikki/po/zh_Hans/nikki.po b/luci-app-nikki/po/zh_Hans/nikki.po index 31467ec..f85ac27 100644 --- a/luci-app-nikki/po/zh_Hans/nikki.po +++ b/luci-app-nikki/po/zh_Hans/nikki.po @@ -17,12 +17,12 @@ msgid "API Secret" msgstr "API 密钥" #: 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:119 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:122 msgid "Access Control" msgstr "访问控制" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:169 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:174 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:172 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:177 msgid "All Port" msgstr "全部端口" @@ -63,15 +63,15 @@ msgstr "行为" msgid "Block Mode" 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 "Bypass" msgstr "绕过" -#: 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:167 msgid "Bypass China Mainland IP" msgstr "绕过中国大陆 IP" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:177 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:180 msgid "Bypass DSCP" msgstr "绕过 DSCP" @@ -92,8 +92,8 @@ msgstr "选择配置文件" msgid "Clear Log" msgstr "清空日志" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:170 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:175 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:173 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:178 msgid "Commonly Used Port" msgstr "常用端口" @@ -121,6 +121,10 @@ msgstr "核心版本" msgid "Cron Expression" msgstr "Cron 表达式" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:102 +msgid "DNS" +msgstr "DNS" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:228 msgid "DNS Config" msgstr "DNS 配置" @@ -137,23 +141,23 @@ 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:167 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:170 msgid "Destination TCP Port to Proxy" msgstr "要代理的 TCP 目标端口" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:172 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:175 msgid "Destination UDP Port to Proxy" msgstr "要代理的 UDP 目标端口" @@ -182,7 +186,7 @@ msgstr "直连模式" #: 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: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" @@ -213,15 +217,15 @@ msgstr "DoH 优先 HTTP/3" 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 "域名(正则表达式)" @@ -229,6 +233,10 @@ msgstr "域名(正则表达式)" msgid "Domain Name Suffix" msgstr "域名(后缀)" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505 +msgid "Domain Name Wildcard" +msgstr "域名(通配符)" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:168 msgid "Edit Authentications" msgstr "编辑身份验证" @@ -296,13 +304,13 @@ msgstr "编辑器" #: 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: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:77 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:104 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:127 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:107 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:130 msgid "Enable" msgstr "启用" @@ -387,39 +395,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 文件更新间隔" @@ -433,7 +441,7 @@ msgstr "全局模式" #: applications/luci-app-nikki/root/usr/share/rpcd/acl.d/luci-app-nikki.json:3 msgid "Grant access to nikki procedures" -msgstr "" +msgstr "授予访问 nikki 程序的权限" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:87 msgid "Group" @@ -471,11 +479,11 @@ msgstr "忽略嗅探的域名" msgid "Inbound Config" msgstr "入站配置" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:107 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:110 msgid "Inbound Interface" msgstr "入站接口" -#: 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:105 msgid "LAN Proxy" msgstr "局域网代理" @@ -501,11 +509,11 @@ 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: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 "为内存受限设备优化的加载器" @@ -517,7 +525,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 "混入文件内容" @@ -541,14 +549,14 @@ msgstr "DNS 服务器" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:38 #: applications/luci-app-nikki/root/usr/share/luci/menu.d/luci-app-nikki.json:3 msgid "Nikki" -msgstr "" +msgstr "Nikki" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:524 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:525 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:517 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:518 msgid "Node" msgstr "节点" @@ -608,7 +616,7 @@ msgstr "覆盖按协议嗅探" 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 "请前往编辑器标签编辑用于混入的文件" @@ -620,7 +628,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 "进程名" @@ -638,7 +646,7 @@ msgid "Protocol" msgstr "协议" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:99 -#: 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:162 msgid "Proxy" msgstr "代理" @@ -749,7 +757,7 @@ msgstr "嗅探器配置" 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 "标准加载器" @@ -892,14 +900,14 @@ msgstr "统一延迟" #: 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: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 "不修改" diff --git a/luci-app-nikki/po/zh_Hant/nikki.po b/luci-app-nikki/po/zh_Hant/nikki.po index 07f4862..ecff652 100644 --- a/luci-app-nikki/po/zh_Hant/nikki.po +++ b/luci-app-nikki/po/zh_Hant/nikki.po @@ -17,12 +17,12 @@ msgid "API Secret" msgstr "API 密鑰" #: 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:119 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:122 msgid "Access Control" msgstr "存取控制" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:169 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:174 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:172 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:177 msgid "All Port" msgstr "所有埠" @@ -63,15 +63,15 @@ msgstr "行為" msgid "Block Mode" 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 "Bypass" msgstr "繞過" -#: 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:167 msgid "Bypass China Mainland IP" msgstr "繞過中國大陸 IP" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:177 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:180 msgid "Bypass DSCP" msgstr "繞過 DSCP" @@ -92,8 +92,8 @@ msgstr "選擇設定檔" msgid "Clear Log" msgstr "清空日誌" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:170 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:175 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:173 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:178 msgid "Commonly Used Port" msgstr "常用埠" @@ -121,6 +121,10 @@ msgstr "核心版本" msgid "Cron Expression" msgstr "Cron 表達式" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:102 +msgid "DNS" +msgstr "DNS" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:228 msgid "DNS Config" msgstr "DNS 設定" @@ -137,23 +141,23 @@ 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(地理位置)" -#: 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:167 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:170 msgid "Destination TCP Port to Proxy" msgstr "要代理的 TCP 目標埠" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:172 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:175 msgid "Destination UDP Port to Proxy" msgstr "要代理的 UDP 目標埠" @@ -182,7 +186,7 @@ msgstr "直連模式" #: 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: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" @@ -213,15 +217,15 @@ msgstr "DoH 優先使用 HTTP/3" 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 "網域名稱(正則表達式)" @@ -229,6 +233,10 @@ msgstr "網域名稱(正則表達式)" msgid "Domain Name Suffix" msgstr "網域名稱(後綴)" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505 +msgid "Domain Name Wildcard" +msgstr "網域名稱(通配符)" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:168 msgid "Edit Authentications" msgstr "編輯身分驗證" @@ -296,13 +304,13 @@ msgstr "編輯器" #: 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: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:77 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:104 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:127 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:107 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:130 msgid "Enable" msgstr "啟用" @@ -387,39 +395,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 檔案更新間隔" @@ -471,11 +479,11 @@ msgstr "忽略嗅探的網域名稱" msgid "Inbound Config" msgstr "入站設定" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:107 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:110 msgid "Inbound Interface" msgstr "入站介面" -#: 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:105 msgid "LAN Proxy" msgstr "區域網路代理" @@ -501,11 +509,11 @@ 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: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 "為記憶體受限裝置最佳化的載入器" @@ -517,7 +525,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 "混入檔案內容" @@ -543,12 +551,12 @@ msgstr "DNS 伺服器" msgid "Nikki" msgstr "Nikki" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:524 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:525 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:517 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:518 msgid "Node" msgstr "節點" @@ -608,7 +616,7 @@ msgstr "覆寫按協定嗅探" 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 "請前往編輯器標籤編輯用於混入的檔案" @@ -620,7 +628,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 "程序名稱" @@ -638,7 +646,7 @@ msgid "Protocol" msgstr "協定" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:99 -#: 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:162 msgid "Proxy" msgstr "代理" @@ -749,7 +757,7 @@ msgstr "嗅探器設定" 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 "標準載入器" @@ -892,14 +900,14 @@ msgstr "統一延遲" #: 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: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 "不修改" diff --git a/nikki/Makefile b/nikki/Makefile index efb1878..5edc7c7 100644 --- a/nikki/Makefile +++ b/nikki/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=nikki PKG_VERSION:=2025.06.25 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) diff --git a/nikki/files/uci-defaults/migrate.sh b/nikki/files/uci-defaults/migrate.sh index 2ba9621..f17dff2 100644 --- a/nikki/files/uci-defaults/migrate.sh +++ b/nikki/files/uci-defaults/migrate.sh @@ -40,18 +40,18 @@ proxy_transparent_proxy=$(uci -q get nikki.proxy.transparent_proxy); [ -n "$prox uci add nikki router_access_control uci set nikki.@router_access_control[-1].enabled=1 proxy_bypass_user=$(uci -q get nikki.proxy.bypass_user); [ -n "$proxy_bypass_user" ] && { - for user in $proxy_bypass_user; do - uci add_list nikki.@router_access_control[-1].user="$user" + for router_access_control_user in $proxy_bypass_user; do + uci add_list nikki.@router_access_control[-1].user="$router_access_control_user" done } proxy_bypass_group=$(uci -q get nikki.proxy.bypass_group); [ -n "$proxy_bypass_group" ] && { - for group in $proxy_bypass_group; do - uci add_list nikki.@router_access_control[-1].group="$group" + for router_access_control_group in $proxy_bypass_group; do + uci add_list nikki.@router_access_control[-1].group="$router_access_control_group" done } proxy_bypass_cgroup=$(uci -q get nikki.proxy.bypass_cgroup); [ -n "$proxy_bypass_cgroup" ] && { - for cgroup in $proxy_bypass_cgroup; do - uci add_list nikki.@router_access_control[-1].cgroup="$cgroup" + for router_access_control_cgroup in $proxy_bypass_cgroup; do + uci add_list nikki.@router_access_control[-1].cgroup="$router_access_control_cgroup" done } uci set nikki.@router_access_control[-1].proxy=0 @@ -129,11 +129,11 @@ proxy_tun_interval=$(uci -q get nikki.proxy.tun_interval); [ -z "$proxy_tun_inte # since v1.23.1 uci show nikki | grep -o -E 'nikki.@router_access_control\[[[:digit:]]+\]=router_access_control' | cut -d '=' -f 1 | while read -r router_access_control; do - for cgroup in $(uci -q get "$router_access_control.cgroup"); do - [ -d "/sys/fs/cgroup/$cgroup" ] && continue - [ -d "/sys/fs/cgroup/services/$cgroup" ] && { - uci del_list "$router_access_control.cgroup=$cgroup" - uci add_list "$router_access_control.cgroup=services/$cgroup" + for router_access_control_cgroup in $(uci -q get "$router_access_control.cgroup"); do + [ -d "/sys/fs/cgroup/$router_access_control_cgroup" ] && continue + [ -d "/sys/fs/cgroup/services/$router_access_control_cgroup" ] && { + uci del_list "$router_access_control.cgroup=$router_access_control_cgroup" + uci add_list "$router_access_control.cgroup=services/$router_access_control_cgroup" } done done @@ -143,6 +143,19 @@ env_disable_safe_path_check=$(uci -q get nikki.env.disable_safe_path_check); [ - env_skip_system_ipv6_check=$(uci -q get nikki.env.skip_system_ipv6_check); [ -z "$env_skip_system_ipv6_check" ] && uci set nikki.env.skip_system_ipv6_check=0 +# since v1.23.3 +uci show nikki | grep -o -E 'nikki.@router_access_control\[[[:digit:]]+\]=router_access_control' | cut -d '=' -f 1 | while read -r router_access_control; do + router_access_control_proxy=$(uci -q get "$router_access_control.proxy") + router_access_control_dns=$(uci -q get "$router_access_control.dns") + [ -z "$router_access_control_dns" ] && uci set "$router_access_control.dns=$router_access_control_proxy" +done + +uci show nikki | grep -o -E 'nikki.@lan_access_control\[[[:digit:]]+\]=lan_access_control' | cut -d '=' -f 1 | while read -r lan_access_control; do + lan_access_control_proxy=$(uci -q get "$lan_access_control.proxy") + lan_access_control_dns=$(uci -q get "$lan_access_control.dns") + [ -z "$lan_access_control_dns" ] && uci set "$lan_access_control.dns=$lan_access_control_proxy" +done + # commit uci commit nikki diff --git a/nikki/files/ucode/hijack.ut b/nikki/files/ucode/hijack.ut index 89af6ce..dd37443 100644 --- a/nikki/files/ucode/hijack.ut +++ b/nikki/files/ucode/hijack.ut @@ -43,6 +43,7 @@ access_control['group'] = filter(uci_array(access_control['group']), (x) => index(groups, x) >= 0); access_control['cgroup'] = filter(uci_array(access_control['cgroup']), (x) => index(cgroups, x) >= 0); access_control['proxy'] = uci_bool(access_control['proxy']); + access_control['dns'] = uci_bool(access_control['dns']); push(router_access_control, access_control); }); @@ -63,6 +64,7 @@ access_control['ip6'] = uci_array(access_control['ip6']); access_control['mac'] = uci_array(access_control['mac']); access_control['proxy'] = uci_bool(access_control['proxy']); + access_control['dns'] = uci_bool(access_control['dns']); push(lan_access_control, access_control); }); @@ -182,20 +184,20 @@ table inet nikki { {% for (let access_control in router_access_control): %} {% if (access_control['enabled']): %} {% if (length(access_control['user']) == 0 && length(access_control['group']) == 0 && length(access_control['cgroup']) == 0): %} - meta l4proto { tcp, udp } th dport 53 counter {% if (access_control.proxy == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} + meta l4proto { tcp, udp } th dport 53 counter {% if (access_control.dns == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} {% else %} {% if (length(access_control['user']) > 0): %} - meta l4proto { tcp, udp } meta skuid { {{ join(', ', access_control['user']) }} } th dport 53 counter {% if (access_control.proxy == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} + meta l4proto { tcp, udp } meta skuid { {{ join(', ', access_control['user']) }} } th dport 53 counter {% if (access_control.dns == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} {% endif %} {% if (length(access_control['group']) > 0): %} - meta l4proto { tcp, udp } meta skgid { {{ join(', ', access_control['group']) }} } th dport 53 counter {% if (access_control.proxy == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} + meta l4proto { tcp, udp } meta skgid { {{ join(', ', access_control['group']) }} } th dport 53 counter {% if (access_control.dns == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} {% endif %} {% if (cgroups_version == 2 && length(access_control['cgroup']) > 0): %} {% for (let cgroup in access_control['cgroup']): %} - meta l4proto { tcp, udp } socket cgroupv2 level {{ length(split(cgroup, '/')) }} "{{ cgroup }}" th dport 53 counter {% if (access_control.proxy == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} + meta l4proto { tcp, udp } socket cgroupv2 level {{ length(split(cgroup, '/')) }} "{{ cgroup }}" th dport 53 counter {% if (access_control.dns == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} {% endfor %} {% endif %} @@ -288,19 +290,19 @@ table inet nikki { {% for (let access_control in lan_access_control): %} {% if (access_control['enabled']): %} {% if (length(access_control['ip']) == 0 && length(access_control['ip6']) == 0 && length(access_control['mac']) == 0): %} - meta l4proto { tcp, udp } th dport 53 counter {% if (access_control.proxy == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} + meta l4proto { tcp, udp } th dport 53 counter {% if (access_control.dns == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} {% else %} {% if (length(access_control['ip']) > 0): %} - meta l4proto { tcp, udp } ip saddr { {{ join(', ', access_control['ip']) }} } th dport 53 counter {% if (access_control.proxy == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} + meta l4proto { tcp, udp } ip saddr { {{ join(', ', access_control['ip']) }} } th dport 53 counter {% if (access_control.dns == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} {% endif %} {% if (length(access_control['ip6']) > 0): %} - meta l4proto { tcp, udp } ip6 saddr { {{ join(', ', access_control['ip6']) }} } th dport 53 counter {% if (access_control.proxy == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} + meta l4proto { tcp, udp } ip6 saddr { {{ join(', ', access_control['ip6']) }} } th dport 53 counter {% if (access_control.dns == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} {% endif %} {% if (length(access_control['mac']) > 0): %} - meta l4proto { tcp, udp } ether saddr { {{ join(', ', access_control['mac']) }} } th dport 53 counter {% if (access_control.proxy == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} + meta l4proto { tcp, udp } ether saddr { {{ join(', ', access_control['mac']) }} } th dport 53 counter {% if (access_control.dns == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} {% endif %} {% endif %}