update 2025-07-25 09:38:20

This commit is contained in:
actions-user 2025-07-25 09:38:20 +08:00
parent fe1c805859
commit 39e511180d
9 changed files with 213 additions and 170 deletions

View File

@ -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

View File

@ -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'));

View File

@ -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'));

View File

@ -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 ""

View File

@ -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 "目标 IPGeo"
#: 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 "不修改"

View File

@ -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 "不修改"

View File

@ -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)

View File

@ -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

View File

@ -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 %}