luci-app-nikki: sync upstream

last commit: ccf106d8fb
This commit is contained in:
gitea-action 2025-02-20 20:00:31 +08:00
parent 52c0104c0d
commit d74fbc6b4d
7 changed files with 439 additions and 63 deletions

View File

@ -1,6 +1,6 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_VERSION:=1.17.5 PKG_VERSION:=1.18.0
LUCI_TITLE:=LuCI Support for nikki LUCI_TITLE:=LuCI Support for nikki
LUCI_DEPENDS:=+luci-base +nikki LUCI_DEPENDS:=+luci-base +nikki

View File

@ -10,6 +10,9 @@ const subscriptionsDir = `${homeDir}/subscriptions`;
const mixinFilePath = `${homeDir}/mixin.yaml`; const mixinFilePath = `${homeDir}/mixin.yaml`;
const runDir = `${homeDir}/run`; const runDir = `${homeDir}/run`;
const runProfilePath = `${runDir}/config.yaml`; const runProfilePath = `${runDir}/config.yaml`;
const providersDir = `${runDir}/providers`;
const ruleProvidersDir = `${providersDir}/rule`;
const proxyProvidersDir = `${providersDir}/proxy`;
const logDir = `/var/log/nikki`; const logDir = `/var/log/nikki`;
const appLogPath = `${logDir}/app.log`; const appLogPath = `${logDir}/app.log`;
const coreLogPath = `${logDir}/core.log`; const coreLogPath = `${logDir}/core.log`;
@ -21,6 +24,8 @@ return baseclass.extend({
homeDir: homeDir, homeDir: homeDir,
profilesDir: profilesDir, profilesDir: profilesDir,
subscriptionsDir: subscriptionsDir, subscriptionsDir: subscriptionsDir,
ruleProvidersDir: ruleProvidersDir,
proxyProvidersDir: proxyProvidersDir,
mixinFilePath: mixinFilePath, mixinFilePath: mixinFilePath,
runDir: runDir, runDir: runDir,
appLogPath: appLogPath, appLogPath: appLogPath,
@ -56,6 +61,14 @@ return baseclass.extend({
return L.resolveDefault(fs.list(this.profilesDir), []); return L.resolveDefault(fs.list(this.profilesDir), []);
}, },
listRuleProviders: function () {
return L.resolveDefault(fs.list(this.ruleProvidersDir), []);
},
listProxyProviders: function () {
return L.resolveDefault(fs.list(this.proxyProvidersDir), []);
},
updateSubscription: function (section_id) { updateSubscription: function (section_id) {
return fs.exec_direct('/usr/libexec/nikki-call', ['subscription', 'update', section_id]); return fs.exec_direct('/usr/libexec/nikki-call', ['subscription', 'update', section_id]);
}, },

View File

@ -9,12 +9,16 @@ return view.extend({
load: function () { load: function () {
return Promise.all([ return Promise.all([
uci.load('nikki'), uci.load('nikki'),
nikki.listProfiles() nikki.listProfiles(),
nikki.listRuleProviders(),
nikki.listProxyProviders(),
]); ]);
}, },
render: function (data) { render: function (data) {
const subscriptions = uci.sections('nikki', 'subscription'); const subscriptions = uci.sections('nikki', 'subscription');
const profiles = data[1]; const profiles = data[1];
const ruleProviders = data[2];
const proxyProviders = data[3];
let m, s, o; let m, s, o;
@ -33,6 +37,14 @@ return view.extend({
o.value(nikki.subscriptionsDir + '/' + subscription['.name'] + '.yaml', _('Subscription:') + subscription.name); o.value(nikki.subscriptionsDir + '/' + subscription['.name'] + '.yaml', _('Subscription:') + subscription.name);
}; };
for (const ruleProvider of ruleProviders) {
o.value(nikki.ruleProvidersDir + '/' + ruleProvider.name, _('Rule Provider:') + ruleProvider.name);
};
for (const proxyProvider of proxyProviders) {
o.value(nikki.proxyProvidersDir + '/' + proxyProvider.name, _('Proxy Provider:') + proxyProvider.name);
};
o.value(nikki.mixinFilePath, _('File for Mixin')); o.value(nikki.mixinFilePath, _('File for Mixin'));
o.value(nikki.runProfilePath, _('Profile for Startup')); o.value(nikki.runProfilePath, _('Profile for Startup'));
o.value(nikki.reservedIPNFT, _('File for Reserved IP')); o.value(nikki.reservedIPNFT, _('File for Reserved IP'));

View File

@ -311,9 +311,11 @@ return view.extend({
o.rmempty = false; o.rmempty = false;
o = s.taboption('sniffer', form.SectionValue, '_sniffer_sniffs', form.TableSection, 'sniff', _('Sniff By Protocol')); o = s.taboption('sniffer', form.SectionValue, '_sniffer_sniffs', form.TableSection, 'sniff', _('Sniff By Protocol'));
o.retain = true;
o.depends('sniffer_sniff', '1');
o.subsection.anonymous = true; o.subsection.anonymous = true;
o.subsection.addremove = false; o.subsection.addremove = false;
o.depends('sniffer_sniff', '1');
so = o.subsection.option(form.Flag, 'enabled', _('Enable')); so = o.subsection.option(form.Flag, 'enabled', _('Enable'));
so.rmempty = false; so.rmempty = false;
@ -330,6 +332,122 @@ return view.extend({
so = o.subsection.option(form.Flag, 'overwrite_destination', _('Overwrite Destination')); so = o.subsection.option(form.Flag, 'overwrite_destination', _('Overwrite Destination'));
so.rmempty = false; so.rmempty = false;
s.tab('rule', _('Rule Config'));
o = s.taboption('rule', form.Flag, 'rule_provider', '*' + ' ' + _('Append Rule Provider'));
o.rmempty = false;
o = s.taboption('rule', form.SectionValue, '_rule_providers', form.GridSection, 'rule_provider', _('Edit Rule Providers'));
o.retain = true;
o.depends('rule_provider', '1');
o.subsection.anonymous = true;
o.subsection.addremove = true;
o.subsection.sortable = true;
so = o.subsection.option(form.Flag, 'enabled', _('Enable'));
so.default = 1;
so.editable = true;
so.modalonly = false;
so.rmempty = false;
so = o.subsection.option(form.Value, 'name', _('Name'));
so.rmempty = false;
so = o.subsection.option(form.ListValue, 'type', _('Type'));
so.default = 'http';
so.rmempty = false;
so.value('http');
so.value('file');
so = o.subsection.option(form.Value, 'url', _('Url'));
so.modalonly = true;
so.rmempty = false;
so.depends('type', 'http');
so = o.subsection.option(form.Value, 'node', _('Node'));
so.default = 'DIRECT';
so.modalonly = true;
so.depends('type', 'http');
so.value('GLOBAL');
so.value('DIRECT');
so = o.subsection.option(form.Value, 'file_size_limit', _('File Size Limit'));
so.datatype = 'uinteger';
so.default = 0;
so.modalonly = true;
so.depends('type', 'http');
so = o.subsection.option(form.FileUpload, 'file_path', _('File Path'));
so.modalonly = true;
so.rmempty = false;
so.root_directory = nikki.ruleProvidersDir;
so.depends('type', 'file');
so = o.subsection.option(form.ListValue, 'file_format', _('File Format'));
so.default = 'yaml';
so.value('mrs');
so.value('yaml');
so.value('text');
so = o.subsection.option(form.ListValue, 'behavior', _('Behavior'));
so.default = 'classical';
so.rmempty = false;
so.value('classical');
so.value('domain');
so.value('ipcidr');
so = o.subsection.option(form.Value, 'update_interval', _('Update Interval'));
so.datatype = 'uinteger';
so.default = 0;
so.modalonly = true;
so.depends('type', 'http');
o = s.taboption('rule', form.Flag, 'rule', '*' + ' ' + _('Append Rule'));
o.rmempty = false;
o = s.taboption('rule', form.SectionValue, '_rules', form.TableSection, 'rule', _('Edit Rules'));
o.retain = true;
o.depends('rule', '1');
o.subsection.anonymous = true;
o.subsection.addremove = true;
o.subsection.sortable = true;
so = o.subsection.option(form.Flag, 'enabled', _('Enable'));
so.default = 1;
so.rmempty = false;
so = o.subsection.option(form.Value, 'type', _('Type'));
so.optional = true;
so.rmempty = true;
so.value('RULE-SET', _('Rule Set'));
so.value('DOMAIN', _('Domain Name'));
so.value('DOMAIN-SUFFIX', _('Domain Name Suffix'));
so.value('DOMAIN-KEYWORD', _('Domain Name Keyword'));
so.value('DOMAIN-REGEX', _('Domain Name Regex'));
so.value('IP-CIDR', _('Destination IP'));
so.value('DST-PORT', _('Destination Port'));
so.value('PROCESS-NAME', _('Process Name'));
so.value('GEOSITE', _('Domain Name Geo'));
so.value('GEOIP', _('Destination IP Geo'));
so = o.subsection.option(form.Value, 'match', _('Matcher'));
so.rmempty = false;
so = o.subsection.option(form.Value, 'node', _('Node'));
so.default = 'GLOBAL';
so.value('GLOBAL');
so.value('DIRECT');
so.value('REJECT');
so.value('REJECT-DROP');
so = o.subsection.option(form.Flag, 'no_resolve', _('No Resolve'));
so.rmempty = false;
so.depends('type', 'IP-CIDR');
so.depends('type', 'IP-CIDR6');
so.depends('type', 'GEOIP');
s.tab('geox', _('GeoX Config')); s.tab('geox', _('GeoX Config'));
o = s.taboption('geox', form.ListValue, 'geoip_format', _('GeoIP Format')); o = s.taboption('geox', form.ListValue, 'geoip_format', _('GeoIP Format'));

View File

@ -44,10 +44,22 @@ msgstr ""
msgid "App Version" msgid "App Version"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:406
msgid "Append Rule"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:337
msgid "Append Rule Provider"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:43 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:43
msgid "Auto" msgid "Auto"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:393
msgid "Behavior"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:199 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:199
#: 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:66
msgid "Block Mode" msgid "Block Mode"
@ -73,7 +85,7 @@ msgstr ""
msgid "Bypass User" msgid "Bypass User"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:25 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:29
msgid "Choose File" msgid "Choose File"
msgstr "" msgstr ""
@ -123,6 +135,18 @@ msgstr ""
msgid "DNS Port" msgid "DNS Port"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:429
msgid "Destination IP"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:433
msgid "Destination IP Geo"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:430
msgid "Destination Port"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:134 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:134
msgid "Destination TCP Port to Proxy" msgid "Destination TCP Port to Proxy"
msgstr "" msgstr ""
@ -164,9 +188,26 @@ msgid "DoH Prefer HTTP/3"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:237 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:237
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:425
msgid "Domain Name" msgid "Domain Name"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:432
msgid "Domain Name Geo"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:427
msgid "Domain Name Keyword"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:428
msgid "Domain Name Regex"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:426
msgid "Domain Name Suffix"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:117 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:117
msgid "Edit Authentications" msgid "Edit Authentications"
msgstr "" msgstr ""
@ -191,11 +232,19 @@ msgstr ""
msgid "Edit Nameservers" msgid "Edit Nameservers"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:340
msgid "Edit Rule Providers"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:409
msgid "Edit Rules"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:32 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:32
msgid "Edit Subscription" msgid "Edit Subscription"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:23 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:27
#: applications/luci-app-nikki/root/usr/share/luci/menu.d/luci-app-nikki.json:45 #: applications/luci-app-nikki/root/usr/share/luci/menu.d/luci-app-nikki.json:45
msgid "Editor" msgid "Editor"
msgstr "" msgstr ""
@ -208,8 +257,10 @@ msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:253 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:253
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:276 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:276
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:286 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:286
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:318 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:320
#: 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:348
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:417
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:484
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:31 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:31
msgid "Enable" msgid "Enable"
msgstr "" msgstr ""
@ -242,20 +293,32 @@ msgstr ""
msgid "Fast Reload" msgid "Fast Reload"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:36 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:387
msgid "File Format"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:381
msgid "File Path"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:375
msgid "File Size Limit"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:48
msgid "File for Mixin" msgid "File for Mixin"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:38 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:50
msgid "File for Reserved IP" msgid "File for Reserved IP"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:39 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:51
msgid "File for Reserved IP6" msgid "File for Reserved IP6"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:103 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:103
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:29 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:33
msgid "File:" msgid "File:"
msgstr "" msgstr ""
@ -275,39 +338,39 @@ msgstr ""
msgid "General Config" msgid "General Config"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:339 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:457
msgid "GeoData Loader" msgid "GeoData Loader"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:335 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:453
msgid "GeoIP Format" msgid "GeoIP Format"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:352 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:470
msgid "GeoIP(ASN) Url" msgid "GeoIP(ASN) Url"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:349 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:467
msgid "GeoIP(DAT) Url" msgid "GeoIP(DAT) Url"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:346 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:464
msgid "GeoIP(MMDB) Url" msgid "GeoIP(MMDB) Url"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:343 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:461
msgid "GeoSite Url" msgid "GeoSite Url"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:355 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:473
msgid "GeoX Auto Update" msgid "GeoX Auto Update"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:333 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:451
msgid "GeoX Config" msgid "GeoX Config"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:358 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:476
msgid "GeoX Update Interval" msgid "GeoX Update Interval"
msgstr "" msgstr ""
@ -390,10 +453,11 @@ msgid "Match Process"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:279 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:279
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:435
msgid "Matcher" msgid "Matcher"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:341 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:459
msgid "Memory Conservative Loader" msgid "Memory Conservative Loader"
msgstr "" msgstr ""
@ -406,7 +470,7 @@ msgstr ""
msgid "Mixin Config" msgid "Mixin Config"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:364 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:482
msgid "Mixin File Content" msgid "Mixin File Content"
msgstr "" msgstr ""
@ -419,6 +483,10 @@ msgstr ""
msgid "Mode" msgid "Mode"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:354
msgid "Name"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:263 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:263
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:282 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:282
msgid "Nameserver" msgid "Nameserver"
@ -429,6 +497,15 @@ msgstr ""
msgid "Nikki" msgid "Nikki"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:445
msgid "No Resolve"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:368
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:438
msgid "Node"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:15 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:15
msgid "Not Running" msgid "Not Running"
msgstr "" msgstr ""
@ -450,7 +527,7 @@ msgid "Overwrite DNS Hijack"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:295 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:295
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:330 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:332
msgid "Overwrite Destination" msgid "Overwrite Destination"
msgstr "" msgstr ""
@ -486,11 +563,11 @@ msgstr ""
msgid "Password" msgid "Password"
msgstr "" msgstr ""
#: 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:484
msgid "Please go to the editor tab to edit the file for mixin" msgid "Please go to the editor tab to edit the file for mixin"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:327 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:329
msgid "Port" msgid "Port"
msgstr "" msgstr ""
@ -498,16 +575,20 @@ msgstr ""
msgid "Prefer" msgid "Prefer"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:431
msgid "Process Name"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:18 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:18
#: applications/luci-app-nikki/root/usr/share/luci/menu.d/luci-app-nikki.json:21 #: applications/luci-app-nikki/root/usr/share/luci/menu.d/luci-app-nikki.json:21
msgid "Profile" msgid "Profile"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:37 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:49
msgid "Profile for Startup" msgid "Profile for Startup"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:321 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:323
msgid "Protocol" msgid "Protocol"
msgstr "" msgstr ""
@ -516,6 +597,10 @@ msgstr ""
msgid "Proxy Config" msgid "Proxy Config"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:45
msgid "Proxy Provider:"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:35 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:35
msgid "Redirect Mode" msgid "Redirect Mode"
msgstr "" msgstr ""
@ -544,10 +629,22 @@ msgstr ""
msgid "Router Proxy" msgid "Router Proxy"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:335
msgid "Rule Config"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:39 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:39
msgid "Rule Mode" msgid "Rule Mode"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:41
msgid "Rule Provider:"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:424
msgid "Rule Set"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:15 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:15
msgid "Running" msgid "Running"
msgstr "" msgstr ""
@ -569,8 +666,8 @@ msgstr ""
msgid "Scroll To Bottom" msgid "Scroll To Bottom"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:100 #: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:113
#: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:118 #: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:131
msgid "Service is not running." msgid "Service is not running."
msgstr "" msgstr ""
@ -594,7 +691,7 @@ msgstr ""
msgid "Stack" msgid "Stack"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:340 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:458
msgid "Standard Loader" msgid "Standard Loader"
msgstr "" msgstr ""
@ -619,7 +716,7 @@ msgid "Subscription Url"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:107 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:107
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:33 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:37
msgid "Subscription:" msgid "Subscription:"
msgstr "" msgstr ""
@ -674,6 +771,8 @@ msgid "Transparent Proxy with Mihomo on OpenWrt."
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:256 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:256
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:357
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:421
msgid "Type" msgid "Type"
msgstr "" msgstr ""
@ -693,8 +792,8 @@ msgstr ""
msgid "Unify Delay" msgid "Unify Delay"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:80 #: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:93
#: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:84 #: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:97
msgid "Unknown" msgid "Unknown"
msgstr "" msgstr ""
@ -710,10 +809,18 @@ msgstr ""
msgid "Update Dashboard" msgid "Update Dashboard"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:400
msgid "Update Interval"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:20 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:20
msgid "Upload Profile" msgid "Upload Profile"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:363
msgid "Url"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:220 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:220
msgid "Use Hosts" msgid "Use Hosts"
msgstr "" msgstr ""

View File

@ -51,10 +51,22 @@ msgstr "插件日志"
msgid "App Version" msgid "App Version"
msgstr "插件版本" msgstr "插件版本"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:406
msgid "Append Rule"
msgstr "追加规则"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:337
msgid "Append Rule Provider"
msgstr "追加规则提供者"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:43 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:43
msgid "Auto" msgid "Auto"
msgstr "自动" msgstr "自动"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:393
msgid "Behavior"
msgstr "行为"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:199 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:199
#: 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:66
msgid "Block Mode" msgid "Block Mode"
@ -80,7 +92,7 @@ msgstr "绕过用户组"
msgid "Bypass User" msgid "Bypass User"
msgstr "绕过用户" msgstr "绕过用户"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:25 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:29
msgid "Choose File" msgid "Choose File"
msgstr "选择文件" msgstr "选择文件"
@ -130,6 +142,18 @@ msgstr "DNS 模式"
msgid "DNS Port" msgid "DNS Port"
msgstr "DNS 端口" msgstr "DNS 端口"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:429
msgid "Destination IP"
msgstr "目标 IP"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:433
msgid "Destination IP Geo"
msgstr "目标 IPGeo"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:430
msgid "Destination Port"
msgstr "目标端口"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:134 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:134
msgid "Destination TCP Port to Proxy" msgid "Destination TCP Port to Proxy"
msgstr "要代理的 TCP 目标端口" msgstr "要代理的 TCP 目标端口"
@ -171,9 +195,26 @@ msgid "DoH Prefer HTTP/3"
msgstr "DoH 优先 HTTP/3" msgstr "DoH 优先 HTTP/3"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:237 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:237
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:425
msgid "Domain Name" msgid "Domain Name"
msgstr "域名" msgstr "域名"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:432
msgid "Domain Name Geo"
msgstr "域名Geo"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:427
msgid "Domain Name Keyword"
msgstr "域名(关键字)"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:428
msgid "Domain Name Regex"
msgstr "域名(正则表达式)"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:426
msgid "Domain Name Suffix"
msgstr "域名(后缀)"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:117 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:117
msgid "Edit Authentications" msgid "Edit Authentications"
msgstr "编辑身份验证" msgstr "编辑身份验证"
@ -198,11 +239,19 @@ msgstr "编辑 DNS 服务器查询策略"
msgid "Edit Nameservers" msgid "Edit Nameservers"
msgstr "编辑 DNS 服务器" msgstr "编辑 DNS 服务器"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:340
msgid "Edit Rule Providers"
msgstr "编辑规则提供者"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:409
msgid "Edit Rules"
msgstr "编辑规则"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:32 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:32
msgid "Edit Subscription" msgid "Edit Subscription"
msgstr "编辑订阅" msgstr "编辑订阅"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:23 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:27
#: applications/luci-app-nikki/root/usr/share/luci/menu.d/luci-app-nikki.json:45 #: applications/luci-app-nikki/root/usr/share/luci/menu.d/luci-app-nikki.json:45
msgid "Editor" msgid "Editor"
msgstr "编辑器" msgstr "编辑器"
@ -215,8 +264,10 @@ msgstr "编辑器"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:253 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:253
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:276 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:276
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:286 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:286
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:318 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:320
#: 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:348
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:417
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:484
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:31 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:31
msgid "Enable" msgid "Enable"
msgstr "启用" msgstr "启用"
@ -249,20 +300,32 @@ msgstr "Fake-IP 范围"
msgid "Fast Reload" msgid "Fast Reload"
msgstr "快速重载" msgstr "快速重载"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:36 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:387
msgid "File Format"
msgstr "文件格式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:381
msgid "File Path"
msgstr "文件路径"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:375
msgid "File Size Limit"
msgstr "文件大小限制"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:48
msgid "File for Mixin" msgid "File for Mixin"
msgstr "用于混入的文件" msgstr "用于混入的文件"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:38 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:50
msgid "File for Reserved IP" msgid "File for Reserved IP"
msgstr "IPv4 保留地址" msgstr "IPv4 保留地址"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:39 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:51
msgid "File for Reserved IP6" msgid "File for Reserved IP6"
msgstr "IPv6 保留地址" msgstr "IPv6 保留地址"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:103 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:103
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:29 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:33
msgid "File:" msgid "File:"
msgstr "文件:" msgstr "文件:"
@ -282,39 +345,39 @@ msgstr "分段最大长度"
msgid "General Config" msgid "General Config"
msgstr "全局配置" msgstr "全局配置"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:339 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:457
msgid "GeoData Loader" msgid "GeoData Loader"
msgstr "GeoData 加载器" msgstr "GeoData 加载器"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:335 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:453
msgid "GeoIP Format" msgid "GeoIP Format"
msgstr "GeoIP 格式" msgstr "GeoIP 格式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:352 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:470
msgid "GeoIP(ASN) Url" msgid "GeoIP(ASN) Url"
msgstr "GeoIP(ASN) 下载地址" msgstr "GeoIP(ASN) 下载地址"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:349 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:467
msgid "GeoIP(DAT) Url" msgid "GeoIP(DAT) Url"
msgstr "GeoIP(DAT) 下载地址" msgstr "GeoIP(DAT) 下载地址"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:346 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:464
msgid "GeoIP(MMDB) Url" msgid "GeoIP(MMDB) Url"
msgstr "GeoIP(MMDB) 下载地址" msgstr "GeoIP(MMDB) 下载地址"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:343 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:461
msgid "GeoSite Url" msgid "GeoSite Url"
msgstr "GeoSite 下载地址" msgstr "GeoSite 下载地址"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:355 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:473
msgid "GeoX Auto Update" msgid "GeoX Auto Update"
msgstr "定时更新GeoX文件" msgstr "定时更新GeoX文件"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:333 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:451
msgid "GeoX Config" msgid "GeoX Config"
msgstr "GeoX 配置" msgstr "GeoX 配置"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:358 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:476
msgid "GeoX Update Interval" msgid "GeoX Update Interval"
msgstr "GeoX 文件更新间隔" msgstr "GeoX 文件更新间隔"
@ -397,10 +460,11 @@ msgid "Match Process"
msgstr "匹配进程" msgstr "匹配进程"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:279 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:279
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:435
msgid "Matcher" msgid "Matcher"
msgstr "匹配" msgstr "匹配"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:341 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:459
msgid "Memory Conservative Loader" msgid "Memory Conservative Loader"
msgstr "为内存受限设备优化的加载器" msgstr "为内存受限设备优化的加载器"
@ -413,7 +477,7 @@ msgstr "混合端口"
msgid "Mixin Config" msgid "Mixin Config"
msgstr "混入配置" msgstr "混入配置"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:364 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:482
msgid "Mixin File Content" msgid "Mixin File Content"
msgstr "混入文件内容" msgstr "混入文件内容"
@ -426,6 +490,10 @@ msgstr "混入选项"
msgid "Mode" msgid "Mode"
msgstr "模式" msgstr "模式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:354
msgid "Name"
msgstr "名称"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:263 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:263
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:282 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:282
msgid "Nameserver" msgid "Nameserver"
@ -436,6 +504,15 @@ msgstr "DNS 服务器"
msgid "Nikki" msgid "Nikki"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:445
msgid "No Resolve"
msgstr "不解析"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:368
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:438
msgid "Node"
msgstr "节点"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:15 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:15
msgid "Not Running" msgid "Not Running"
msgstr "未在运行" msgstr "未在运行"
@ -457,7 +534,7 @@ msgid "Overwrite DNS Hijack"
msgstr "覆盖 DNS 劫持" msgstr "覆盖 DNS 劫持"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:295 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:295
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:330 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:332
msgid "Overwrite Destination" msgid "Overwrite Destination"
msgstr "将嗅探结果作为连接目标" msgstr "将嗅探结果作为连接目标"
@ -493,11 +570,11 @@ msgstr "覆盖按协议嗅探"
msgid "Password" msgid "Password"
msgstr "密码" msgstr "密码"
#: 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:484
msgid "Please go to the editor tab to edit the file for mixin" msgid "Please go to the editor tab to edit the file for mixin"
msgstr "请前往编辑器标签编辑用于混入的文件" msgstr "请前往编辑器标签编辑用于混入的文件"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:327 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:329
msgid "Port" msgid "Port"
msgstr "端口" msgstr "端口"
@ -505,16 +582,20 @@ msgstr "端口"
msgid "Prefer" msgid "Prefer"
msgstr "优先" msgstr "优先"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:431
msgid "Process Name"
msgstr "进程名"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:18 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:18
#: applications/luci-app-nikki/root/usr/share/luci/menu.d/luci-app-nikki.json:21 #: applications/luci-app-nikki/root/usr/share/luci/menu.d/luci-app-nikki.json:21
msgid "Profile" msgid "Profile"
msgstr "配置文件" msgstr "配置文件"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:37 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:49
msgid "Profile for Startup" msgid "Profile for Startup"
msgstr "用于启动的配置文件" msgstr "用于启动的配置文件"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:321 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:323
msgid "Protocol" msgid "Protocol"
msgstr "协议" msgstr "协议"
@ -523,6 +604,10 @@ msgstr "协议"
msgid "Proxy Config" msgid "Proxy Config"
msgstr "代理配置" msgstr "代理配置"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:45
msgid "Proxy Provider:"
msgstr "代理提供者:"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:35 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:35
msgid "Redirect Mode" msgid "Redirect Mode"
msgstr "Redirect 模式" msgstr "Redirect 模式"
@ -551,10 +636,22 @@ msgstr "重启服务"
msgid "Router Proxy" msgid "Router Proxy"
msgstr "路由器代理" msgstr "路由器代理"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:335
msgid "Rule Config"
msgstr "规则配置"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:39 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:39
msgid "Rule Mode" msgid "Rule Mode"
msgstr "规则模式" msgstr "规则模式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:41
msgid "Rule Provider:"
msgstr "规则提供者:"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:424
msgid "Rule Set"
msgstr "规则集"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:15 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:15
msgid "Running" msgid "Running"
msgstr "运行中" msgstr "运行中"
@ -576,8 +673,8 @@ msgstr "定时重启"
msgid "Scroll To Bottom" msgid "Scroll To Bottom"
msgstr "滚动到底部" msgstr "滚动到底部"
#: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:100 #: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:113
#: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:118 #: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:131
msgid "Service is not running." msgid "Service is not running."
msgstr "服务未在运行。" msgstr "服务未在运行。"
@ -601,7 +698,7 @@ msgstr "嗅探器配置"
msgid "Stack" msgid "Stack"
msgstr "栈" msgstr "栈"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:340 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:458
msgid "Standard Loader" msgid "Standard Loader"
msgstr "标准加载器" msgstr "标准加载器"
@ -626,7 +723,7 @@ msgid "Subscription Url"
msgstr "订阅链接" msgstr "订阅链接"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:107 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:107
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:33 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:37
msgid "Subscription:" msgid "Subscription:"
msgstr "订阅:" msgstr "订阅:"
@ -681,6 +778,8 @@ msgid "Transparent Proxy with Mihomo on OpenWrt."
msgstr "在 OpenWrt 上使用 Mihomo 进行透明代理。" msgstr "在 OpenWrt 上使用 Mihomo 进行透明代理。"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:256 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:256
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:357
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:421
msgid "Type" msgid "Type"
msgstr "类型" msgstr "类型"
@ -700,8 +799,8 @@ msgstr "UI 下载地址"
msgid "Unify Delay" msgid "Unify Delay"
msgstr "统一延迟" msgstr "统一延迟"
#: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:80 #: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:93
#: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:84 #: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:97
msgid "Unknown" msgid "Unknown"
msgstr "未知" msgstr "未知"
@ -717,10 +816,18 @@ msgstr "更新时间"
msgid "Update Dashboard" msgid "Update Dashboard"
msgstr "更新面板" msgstr "更新面板"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:400
msgid "Update Interval"
msgstr "更新间隔"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:20 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:20
msgid "Upload Profile" msgid "Upload Profile"
msgstr "上传配置文件" msgstr "上传配置文件"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:363
msgid "Url"
msgstr "下载地址"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:220 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:220
msgid "Use Hosts" msgid "Use Hosts"
msgstr "使用 Hosts" msgstr "使用 Hosts"
@ -740,3 +847,18 @@ msgstr "用户代理UA"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:128 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:128
msgid "Username" msgid "Username"
msgstr "用户名" msgstr "用户名"
#~ msgid "File"
#~ msgstr "文件"
#~ msgid "Proxy Provider"
#~ msgstr "代理提供者"
#~ msgid "Rule Provider"
#~ msgstr "规则提供者"
#~ msgid ": "
#~ msgstr ""
#~ msgid "Custom"
#~ msgstr "自定义"

View File

@ -15,6 +15,8 @@
"/etc/nikki/subscriptions/*.yml": ["read"], "/etc/nikki/subscriptions/*.yml": ["read"],
"/etc/nikki/mixin.yaml": ["read"], "/etc/nikki/mixin.yaml": ["read"],
"/etc/nikki/run/config.yaml": ["read"], "/etc/nikki/run/config.yaml": ["read"],
"/etc/nikki/run/providers/rule/*": ["read"],
"/etc/nikki/run/providers/proxy/*": ["read"],
"/etc/nikki/nftables/reserved_ip.nft": ["read"], "/etc/nikki/nftables/reserved_ip.nft": ["read"],
"/etc/nikki/nftables/reserved_ip6.nft": ["read"], "/etc/nikki/nftables/reserved_ip6.nft": ["read"],
"/var/log/nikki/*.log": ["read"], "/var/log/nikki/*.log": ["read"],
@ -30,6 +32,8 @@
"/etc/nikki/subscriptions/*.yml": ["write"], "/etc/nikki/subscriptions/*.yml": ["write"],
"/etc/nikki/mixin.yaml": ["write"], "/etc/nikki/mixin.yaml": ["write"],
"/etc/nikki/run/config.yaml": ["write"], "/etc/nikki/run/config.yaml": ["write"],
"/etc/nikki/run/providers/rule/*": ["write"],
"/etc/nikki/run/providers/proxy/*": ["write"],
"/etc/nikki/nftables/reserved_ip.nft": ["write"], "/etc/nikki/nftables/reserved_ip.nft": ["write"],
"/etc/nikki/nftables/reserved_ip6.nft": ["write"] "/etc/nikki/nftables/reserved_ip6.nft": ["write"]
} }