luci-app-nikki: sync upstream

last commit: 17234645ba
This commit is contained in:
gitea-action 2025-02-23 17:00:29 +08:00
parent 2923cefab3
commit 0c96443ce3
10 changed files with 492 additions and 455 deletions

View File

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

View File

@ -3,6 +3,40 @@
'require uci';
'require fs';
'require rpc';
'require request';
const callRCList = rpc.declare({
object: 'rc',
method: 'list',
params: ['name'],
expect: { '': {} }
});
const callRCInit = rpc.declare({
object: 'rc',
method: 'init',
params: ['name', 'action'],
expect: { '': {} }
});
const callNikkiVersion = rpc.declare({
object: 'luci.nikki',
method: 'version',
expect: { '': {} }
});
const callNikkiUpdateSubscription = rpc.declare({
object: 'luci.nikki',
method: 'update_subscription',
params: ['section_id'],
expect: { '': {} }
});
const callNikkiDebug = rpc.declare({
object: 'luci.nikki',
method: 'debug',
expect: { '': {} }
});
const homeDir = '/etc/nikki';
const profilesDir = `${homeDir}/profiles`;
@ -34,27 +68,60 @@ return baseclass.extend({
reservedIPNFT: reservedIPNFT,
reservedIP6NFT: reservedIP6NFT,
callServiceList: rpc.declare({
object: 'service',
method: 'list',
params: ['name'],
expect: { '': {} }
}),
getAppLog: function () {
return L.resolveDefault(fs.read_direct(this.appLogPath));
status: async function () {
return (await callRCList('nikki'))?.nikki?.running;
},
getCoreLog: function () {
return L.resolveDefault(fs.read_direct(this.coreLogPath));
reload: function () {
return callRCInit('nikki', 'reload');
},
clearAppLog: function () {
return fs.exec_direct('/usr/libexec/nikki-call', ['clear_log', 'app']);
restart: function () {
return callRCInit('nikki', 'restart');
},
clearCoreLog: function () {
return fs.exec_direct('/usr/libexec/nikki-call', ['clear_log', 'core']);
version: function () {
return callNikkiVersion();
},
updateSubscription: function (section_id) {
return callNikkiUpdateSubscription(section_id);
},
api: async function (method, path, query, body) {
const apiPort = uci.get('nikki', 'mixin', 'api_port');
const apiSecret = uci.get('nikki', 'mixin', 'api_secret');
const url = `http://${window.location.hostname}:${apiPort}${path}`;
return request.request(url, {
method: method,
headers: { 'Authorization': `Bearer ${apiSecret}` },
query: query,
content: body
})
},
openDashboard: function () {
const uiName = uci.get('nikki', 'mixin', 'ui_name');
const apiPort = uci.get('nikki', 'mixin', 'api_port');
const apiSecret = encodeURIComponent(uci.get('nikki', 'mixin', 'api_secret'));
const params = {
host: window.location.hostname,
hostname: window.location.hostname,
port: apiPort,
secret: apiSecret
};
const query = new URLSearchParams(params).toString();
let url;
if (uiName) {
url = `http://${window.location.hostname}:${apiPort}/ui/${uiName}/?${query}`;
} else {
url = `http://${window.location.hostname}:${apiPort}/ui/?${query}`;
}
setTimeout(function () { window.open(url, '_blank') }, 0);
},
updateDashboard: function () {
return this.api('POST', '/upgrade/ui');
},
listProfiles: function () {
@ -69,67 +136,24 @@ return baseclass.extend({
return L.resolveDefault(fs.list(this.proxyProvidersDir), []);
},
updateSubscription: function (section_id) {
return fs.exec_direct('/usr/libexec/nikki-call', ['subscription', 'update', section_id]);
getAppLog: function () {
return L.resolveDefault(fs.read_direct(this.appLogPath));
},
status: async function () {
try {
return (await this.callServiceList('nikki'))['nikki']['instances']['nikki']['running'];
} catch (ignored) {
return false;
}
getCoreLog: function () {
return L.resolveDefault(fs.read_direct(this.coreLogPath));
},
reload: function () {
return fs.exec_direct('/usr/libexec/nikki-call', ['service', 'reload']);
clearAppLog: function () {
return fs.write(this.appLogPath);
},
restart: function () {
return fs.exec_direct('/usr/libexec/nikki-call', ['service', 'restart']);
clearCoreLog: function () {
return fs.write(this.coreLogPath);
},
appVersion: function () {
return L.resolveDefault(fs.exec_direct('/usr/libexec/nikki-call', ['version', 'app']), _('Unknown'));
},
coreVersion: function () {
return L.resolveDefault(fs.exec_direct('/usr/libexec/nikki-call', ['version', 'core']), _('Unknown'));
},
callMihomoAPI: async function (method, path, params, body) {
const running = await this.status();
if (running) {
const apiPort = uci.get('nikki', 'mixin', 'api_port');
const apiSecret = uci.get('nikki', 'mixin', 'api_secret');
const query = new URLSearchParams(params).toString();
const url = `http://${window.location.hostname}:${apiPort}${path}?${query}`;
await fetch(url, {
method: method,
headers: { 'Authorization': `Bearer ${apiSecret}` },
body: JSON.stringify(body)
})
} else {
alert(_('Service is not running.'));
}
},
openDashboard: async function () {
const running = await this.status();
if (running) {
const uiName = uci.get('nikki', 'mixin', 'ui_name');
const apiPort = uci.get('nikki', 'mixin', 'api_port');
const apiSecret = encodeURIComponent(uci.get('nikki', 'mixin', 'api_secret'));
let url;
if (uiName) {
url = `http://${window.location.hostname}:${apiPort}/ui/${uiName}/?host=${window.location.hostname}&hostname=${window.location.hostname}&port=${apiPort}&secret=${apiSecret}`;
} else {
url = `http://${window.location.hostname}:${apiPort}/ui/?host=${window.location.hostname}&hostname=${window.location.hostname}&port=${apiPort}&secret=${apiSecret}`;
}
setTimeout(function () { window.open(url, '_blank') }, 0);
} else {
alert(_('Service is not running.'));
}
debug: function () {
return callNikkiDebug();
},
getUsers: function () {

View File

@ -21,18 +21,17 @@ return view.extend({
load: function () {
return Promise.all([
uci.load('nikki'),
nikki.appVersion(),
nikki.coreVersion(),
nikki.version(),
nikki.status(),
nikki.listProfiles()
]);
},
render: function (data) {
const subscriptions = uci.sections('nikki', 'subscription');
const appVersion = data[1];
const coreVersion = data[2];
const running = data[3];
const profiles = data[4];
const appVersion = data[1]?.app || '';
const coreVersion = data[1]?.core || '';
const running = data[2];
const profiles = data[3];
let m, s, o;
@ -43,14 +42,14 @@ return view.extend({
o = s.option(form.Value, '_app_version', _('App Version'));
o.readonly = true;
o.load = function () {
return appVersion.trim();
return appVersion;
};
o.write = function () { };
o = s.option(form.Value, '_core_version', _('Core Version'));
o.readonly = true;
o.load = function () {
return coreVersion.trim();
return coreVersion;
};
o.write = function () { };
@ -82,7 +81,7 @@ return view.extend({
o.inputstyle = 'positive';
o.inputtitle = _('Update Dashboard');
o.onclick = function () {
return nikki.callMihomoAPI('POST', '/upgrade/ui');
return nikki.updateDashboard();
};
o = s.option(form.Button, 'open_dashboard', '-');

View File

@ -2,6 +2,7 @@
'require form';
'require view';
'require uci';
'require fs';
'require poll';
'require tools.nikki as nikki';
@ -89,6 +90,30 @@ return view.extend({
element.scrollTop = element.scrollHeight;
};
s.tab('debug_log', _('Debug Log'));
o = s.taboption('debug_log', form.Button, '_generate_download_debug_log');
o.inputstyle = 'negative';
o.inputtitle = _('Generate & Download');
o.onclick = function () {
return nikki.debug().then(function () {
fs.read_direct('/var/run/nikki/debug.md', 'blob').then(function (data) {
// create url
const url = window.URL.createObjectURL(data, { type: 'text/markdown' });
// create link
const link = document.createElement('a');
link.href = url;
link.download = 'nikki_debug.md';
document.body.appendChild(link);
// download
link.click();
// clean up
document.body.removeChild(link);
window.URL.revokeObjectURL(url);
});
});
};
return m.render();
},
handleSaveApply: null,

View File

@ -66,6 +66,9 @@ return view.extend({
s.tab('external_control', _('External Control Config'));
o = s.taboption('external_control', form.Value, 'ui_path', '*' + ' ' + _('UI Path'));
o.rmempty = false;
o = s.taboption('external_control', form.Value, 'ui_name', '*' + ' ' + _('UI Name'));
o = s.taboption('external_control', form.Value, 'ui_url', '*' + ' ' + _('UI Url'));
@ -432,7 +435,7 @@ return view.extend({
so.value('GEOSITE', _('Domain Name Geo'));
so.value('GEOIP', _('Destination IP Geo'));
so = o.subsection.option(form.Value, 'match', _('Matcher'));
so = o.subsection.option(form.Value, 'matcher', _('Matcher'));
so.rmempty = false;
so = o.subsection.option(form.Value, 'node', _('Node'));

View File

@ -1,11 +1,11 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:78
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:81
msgid "API Port"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:82
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:85
msgid "API Secret"
msgstr ""
@ -22,16 +22,16 @@ msgstr ""
msgid "All Port"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:91
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:94
msgid "Allow Lan"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:200
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:203
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:65
msgid "Allow Mode"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:94
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:93
#: applications/luci-app-nikki/root/usr/share/luci/menu.d/luci-app-nikki.json:13
msgid "App Config"
msgstr ""
@ -40,15 +40,15 @@ msgstr ""
msgid "App Log"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:43
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:42
msgid "App Version"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:406
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:409
msgid "Append Rule"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:337
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:340
msgid "Append Rule Provider"
msgstr ""
@ -56,11 +56,11 @@ msgstr ""
msgid "Auto"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:393
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:396
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:202
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66
msgid "Block Mode"
msgstr ""
@ -89,7 +89,7 @@ msgstr ""
msgid "Choose File"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:99
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:98
msgid "Choose Profile"
msgstr ""
@ -103,7 +103,7 @@ msgstr ""
msgid "Commonly Used Port"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:128
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:127
msgid "Core Environment Variable Config"
msgstr ""
@ -111,39 +111,43 @@ msgstr ""
msgid "Core Log"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:57
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:56
msgid "Core Status"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:50
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:49
msgid "Core Version"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:117
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:116
msgid "Cron Expression"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:171
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:174
msgid "DNS Config"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:177
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:180
msgid "DNS Mode"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:173
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:176
msgid "DNS Port"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:429
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:92
msgid "Debug Log"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:432
msgid "Destination IP"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:433
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:436
msgid "Destination IP Geo"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:430
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:433
msgid "Destination Port"
msgstr ""
@ -155,7 +159,7 @@ msgstr ""
msgid "Destination UDP Port to Proxy"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:137
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:140
msgid "Device"
msgstr ""
@ -167,76 +171,76 @@ msgstr ""
msgid "Disable"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:142
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:141
msgid "Disable ECN of quic-go"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:138
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:137
msgid "Disable GSO of quic-go"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:134
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:133
msgid "Disable Loopback Detector"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:130
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:129
msgid "Disable Safe Path Check"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:211
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:214
msgid "DoH Prefer HTTP/3"
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:425
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:240
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:428
msgid "Domain Name"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:432
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:435
msgid "Domain Name Geo"
msgstr ""
#: 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:430
msgid "Domain Name Keyword"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:428
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:431
msgid "Domain Name Regex"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:426
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:429
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:120
msgid "Edit Authentications"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:161
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:164
msgid "Edit DNS Hijacks"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:193
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:196
msgid "Edit Fake-IP Filters"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:226
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:229
msgid "Edit Hosts"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:268
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:271
msgid "Edit Nameserver Policies"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:245
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:248
msgid "Edit Nameservers"
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:343
msgid "Edit Rule Providers"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:409
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:412
msgid "Edit Rules"
msgstr ""
@ -249,23 +253,23 @@ msgstr ""
msgid "Editor"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:96
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:95
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:23
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:44
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:125
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:234
#: 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:286
#: 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: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/mixin.js:128
#: 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:256
#: 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:289
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:323
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:351
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:420
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:487
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:31
msgid "Enable"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:168
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:171
msgid "Endpoint Independent NAT"
msgstr ""
@ -277,31 +281,31 @@ msgstr ""
msgid "External Control Config"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:203
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:206
msgid "Fake-IP Cache"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:197
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:200
msgid "Fake-IP Filter Mode"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:182
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:185
msgid "Fake-IP Range"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:125
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:124
msgid "Fast Reload"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:387
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:390
msgid "File Format"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:381
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:384
msgid "File Path"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:375
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:378
msgid "File Size Limit"
msgstr ""
@ -317,20 +321,20 @@ msgstr ""
msgid "File for Reserved IP6"
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:102
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:33
msgid "File:"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:301
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:304
msgid "Force Sniff Domain Name"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:149
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:152
msgid "GSO"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:152
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:155
msgid "GSO Max Size"
msgstr ""
@ -338,39 +342,43 @@ msgstr ""
msgid "General Config"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:457
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:96
msgid "Generate & Download"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:460
msgid "GeoData Loader"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:453
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:456
msgid "GeoIP Format"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:470
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:473
msgid "GeoIP(ASN) Url"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:467
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:470
msgid "GeoIP(DAT) Url"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:464
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:467
msgid "GeoIP(MMDB) Url"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:461
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:464
msgid "GeoSite Url"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:473
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:476
msgid "GeoX Auto Update"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:451
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:454
msgid "GeoX Config"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:476
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:479
msgid "GeoX Update Interval"
msgstr ""
@ -382,15 +390,15 @@ msgstr ""
msgid "Grant access to nikki procedures"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:94
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:97
msgid "HTTP Port"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:39
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:38
msgid "How To Use"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:240
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:243
msgid "IP"
msgstr ""
@ -403,7 +411,7 @@ msgid "IPv4 Proxy"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:50
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:214
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:217
msgid "IPv6"
msgstr ""
@ -415,11 +423,11 @@ msgstr ""
msgid "IPv6 Proxy"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:307
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:310
msgid "Ignore Sniff Domain Name"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:89
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:92
msgid "Inbound Config"
msgstr ""
@ -444,7 +452,7 @@ msgstr ""
msgid "Log Level"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:145
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:148
msgid "MTU"
msgstr ""
@ -452,16 +460,16 @@ msgstr ""
msgid "Match Process"
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:435
#: 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:438
msgid "Matcher"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:459
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:462
msgid "Memory Conservative Loader"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:102
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:105
msgid "Mixed Port"
msgstr ""
@ -470,7 +478,7 @@ msgstr ""
msgid "Mixin Config"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:482
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:485
msgid "Mixin File Content"
msgstr ""
@ -483,26 +491,26 @@ msgstr ""
msgid "Mode"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:354
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:357
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:282
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:266
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:285
msgid "Nameserver"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:39
#: 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 ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:445
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:448
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
#: 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:441
msgid "Node"
msgstr ""
@ -510,7 +518,7 @@ msgstr ""
msgid "Not Running"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:89
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:88
msgid "Open Dashboard"
msgstr ""
@ -518,56 +526,56 @@ msgstr ""
msgid "Outbound Interface"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:114
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:117
msgid "Overwrite Authentication"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:158
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:161
msgid "Overwrite DNS Hijack"
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:332
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:298
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:335
msgid "Overwrite Destination"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:188
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:191
msgid "Overwrite Fake-IP Filter"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:298
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:301
msgid "Overwrite Force Sniff Domain Name"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:223
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:226
msgid "Overwrite Hosts"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:304
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:307
msgid "Overwrite Ignore Sniff Domain Name"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:242
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:245
msgid "Overwrite Nameserver"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:265
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:268
msgid "Overwrite Nameserver Policy"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:310
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:313
msgid "Overwrite Sniff By Protocol"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:131
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:134
msgid "Password"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:484
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:487
msgid "Please go to the editor tab to edit the file for mixin"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:329
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:332
msgid "Port"
msgstr ""
@ -575,7 +583,7 @@ msgstr ""
msgid "Prefer"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:431
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:434
msgid "Process Name"
msgstr ""
@ -588,7 +596,7 @@ msgstr ""
msgid "Profile for Startup"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:323
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:326
msgid "Protocol"
msgstr ""
@ -605,11 +613,11 @@ msgstr ""
msgid "Redirect Mode"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:106
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:109
msgid "Redirect Port"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:69
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:68
msgid "Reload Service"
msgstr ""
@ -617,11 +625,11 @@ msgstr ""
msgid "Remote"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:208
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:211
msgid "Respect Rules"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:76
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:75
msgid "Restart Service"
msgstr ""
@ -629,7 +637,7 @@ msgstr ""
msgid "Router Proxy"
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:338
msgid "Rule Config"
msgstr ""
@ -641,7 +649,7 @@ msgstr ""
msgid "Rule Provider:"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:424
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:427
msgid "Rule Set"
msgstr ""
@ -649,15 +657,15 @@ msgstr ""
msgid "Running"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:98
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:101
msgid "SOCKS Port"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:86
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:89
msgid "Save Proxy Selection"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:114
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:113
msgid "Scheduled Restart"
msgstr ""
@ -666,40 +674,35 @@ msgstr ""
msgid "Scroll To Bottom"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:113
#: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:131
msgid "Service is not running."
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:313
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:316
msgid "Sniff By Protocol"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:292
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:295
msgid "Sniff Pure IP"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:289
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:292
msgid "Sniff Redir-Host"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:284
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:287
msgid "Sniffer Config"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:140
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:143
msgid "Stack"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:458
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:461
msgid "Standard Loader"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:110
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:109
msgid "Start Delay"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:41
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:40
msgid "Status"
msgstr ""
@ -715,7 +718,7 @@ msgstr ""
msgid "Subscription Url"
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:106
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:37
msgid "Subscription:"
msgstr ""
@ -741,11 +744,11 @@ msgstr ""
msgid "TPROXY Mode"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:110
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:113
msgid "TPROXY Port"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:135
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:138
msgid "TUN Config"
msgstr ""
@ -754,7 +757,7 @@ msgstr ""
msgid "TUN Mode"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:122
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:121
msgid "Test Profile"
msgstr ""
@ -766,13 +769,13 @@ msgstr ""
msgid "Transparent Proxy"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:39
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:38
msgid "Transparent Proxy with Mihomo on OpenWrt."
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js: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
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:259
#: 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:424
msgid "Type"
msgstr ""
@ -780,11 +783,15 @@ msgstr ""
msgid "UDP Proxy Mode"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:69
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:72
msgid "UI Name"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:71
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:69
msgid "UI Path"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:74
msgid "UI Url"
msgstr ""
@ -792,11 +799,6 @@ msgstr ""
msgid "Unify Delay"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:93
#: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:97
msgid "Unknown"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:60
msgid "Update"
msgstr ""
@ -805,11 +807,11 @@ msgstr ""
msgid "Update At"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:83
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:82
msgid "Update Dashboard"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:400
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:403
msgid "Update Interval"
msgstr ""
@ -817,15 +819,15 @@ msgstr ""
msgid "Upload Profile"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:363
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366
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:223
msgid "Use Hosts"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:217
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:220
msgid "Use System Hosts"
msgstr ""
@ -837,6 +839,6 @@ msgstr ""
msgid "User Agent"
msgstr ""
#: 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:131
msgid "Username"
msgstr ""

View File

@ -8,11 +8,11 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:78
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:81
msgid "API Port"
msgstr "API 端口"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:82
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:85
msgid "API Secret"
msgstr "API 密钥"
@ -29,16 +29,16 @@ msgstr "全部模式"
msgid "All Port"
msgstr "全部端口"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:91
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:94
msgid "Allow Lan"
msgstr "允许局域网访问"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:200
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:203
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:65
msgid "Allow Mode"
msgstr "白名单模式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:94
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:93
#: applications/luci-app-nikki/root/usr/share/luci/menu.d/luci-app-nikki.json:13
msgid "App Config"
msgstr "插件配置"
@ -47,15 +47,15 @@ msgstr "插件配置"
msgid "App Log"
msgstr "插件日志"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:43
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:42
msgid "App Version"
msgstr "插件版本"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:406
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:409
msgid "Append Rule"
msgstr "追加规则"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:337
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:340
msgid "Append Rule Provider"
msgstr "追加规则提供者"
@ -63,11 +63,11 @@ msgstr "追加规则提供者"
msgid "Auto"
msgstr "自动"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:393
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:396
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:202
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66
msgid "Block Mode"
msgstr "黑名单模式"
@ -96,7 +96,7 @@ msgstr "绕过用户"
msgid "Choose File"
msgstr "选择文件"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:99
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:98
msgid "Choose Profile"
msgstr "选择配置文件"
@ -110,7 +110,7 @@ msgstr "清空日志"
msgid "Commonly Used Port"
msgstr "常用端口"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:128
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:127
msgid "Core Environment Variable Config"
msgstr "核心环境变量配置"
@ -118,39 +118,43 @@ msgstr "核心环境变量配置"
msgid "Core Log"
msgstr "核心日志"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:57
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:56
msgid "Core Status"
msgstr "核心状态"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:50
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:49
msgid "Core Version"
msgstr "核心版本"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:117
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:116
msgid "Cron Expression"
msgstr "Cron 表达式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:171
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:174
msgid "DNS Config"
msgstr "DNS 配置"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:177
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:180
msgid "DNS Mode"
msgstr "DNS 模式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:173
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:176
msgid "DNS Port"
msgstr "DNS 端口"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:429
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:92
msgid "Debug Log"
msgstr "调试日志"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:432
msgid "Destination IP"
msgstr "目标 IP"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:433
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:436
msgid "Destination IP Geo"
msgstr "目标 IPGeo"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:430
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:433
msgid "Destination Port"
msgstr "目标端口"
@ -162,7 +166,7 @@ msgstr "要代理的 TCP 目标端口"
msgid "Destination UDP Port to Proxy"
msgstr "要代理的 UDP 目标端口"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:137
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:140
msgid "Device"
msgstr "设备名称"
@ -174,76 +178,76 @@ msgstr "直连模式"
msgid "Disable"
msgstr "禁用"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:142
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:141
msgid "Disable ECN of quic-go"
msgstr "禁用 quic-go 的显式拥塞通知"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:138
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:137
msgid "Disable GSO of quic-go"
msgstr "禁用 quic-go 的通用分段卸载"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:134
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:133
msgid "Disable Loopback Detector"
msgstr "禁用回环检测"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:130
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:129
msgid "Disable Safe Path Check"
msgstr "禁用安全路径检查"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:211
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:214
msgid "DoH Prefer 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:425
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:240
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:428
msgid "Domain Name"
msgstr "域名"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:432
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:435
msgid "Domain Name Geo"
msgstr "域名Geo"
#: 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:430
msgid "Domain Name Keyword"
msgstr "域名(关键字)"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:428
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:431
msgid "Domain Name Regex"
msgstr "域名(正则表达式)"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:426
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:429
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:120
msgid "Edit Authentications"
msgstr "编辑身份验证"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:161
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:164
msgid "Edit DNS Hijacks"
msgstr "编辑 DNS 劫持"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:193
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:196
msgid "Edit Fake-IP Filters"
msgstr "编辑 Fake-IP 过滤列表"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:226
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:229
msgid "Edit Hosts"
msgstr "编辑 Hosts"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:268
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:271
msgid "Edit Nameserver Policies"
msgstr "编辑 DNS 服务器查询策略"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:245
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:248
msgid "Edit Nameservers"
msgstr "编辑 DNS 服务器"
#: 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:343
msgid "Edit Rule Providers"
msgstr "编辑规则提供者"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:409
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:412
msgid "Edit Rules"
msgstr "编辑规则"
@ -256,23 +260,23 @@ msgstr "编辑订阅"
msgid "Editor"
msgstr "编辑器"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:96
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:95
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:23
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:44
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:125
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:234
#: 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:286
#: 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: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/mixin.js:128
#: 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:256
#: 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:289
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:323
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:351
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:420
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:487
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:31
msgid "Enable"
msgstr "启用"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:168
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:171
msgid "Endpoint Independent NAT"
msgstr "独立于端点的 NAT"
@ -284,31 +288,31 @@ msgstr "到期时间"
msgid "External Control Config"
msgstr "外部控制配置"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:203
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:206
msgid "Fake-IP Cache"
msgstr "Fake-IP 缓存"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:197
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:200
msgid "Fake-IP Filter Mode"
msgstr "Fake-IP 过滤模式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:182
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:185
msgid "Fake-IP Range"
msgstr "Fake-IP 范围"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:125
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:124
msgid "Fast Reload"
msgstr "快速重载"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:387
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:390
msgid "File Format"
msgstr "文件格式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:381
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:384
msgid "File Path"
msgstr "文件路径"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:375
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:378
msgid "File Size Limit"
msgstr "文件大小限制"
@ -324,20 +328,20 @@ msgstr "IPv4 保留地址"
msgid "File for Reserved IP6"
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:102
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:33
msgid "File:"
msgstr "文件:"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:301
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:304
msgid "Force Sniff Domain Name"
msgstr "强制嗅探的域名"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:149
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:152
msgid "GSO"
msgstr "通用分段卸载"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:152
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:155
msgid "GSO Max Size"
msgstr "分段最大长度"
@ -345,39 +349,43 @@ msgstr "分段最大长度"
msgid "General Config"
msgstr "全局配置"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:457
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:96
msgid "Generate & Download"
msgstr "生成并下载"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:460
msgid "GeoData Loader"
msgstr "GeoData 加载器"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:453
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:456
msgid "GeoIP Format"
msgstr "GeoIP 格式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:470
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:473
msgid "GeoIP(ASN) Url"
msgstr "GeoIP(ASN) 下载地址"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:467
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:470
msgid "GeoIP(DAT) Url"
msgstr "GeoIP(DAT) 下载地址"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:464
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:467
msgid "GeoIP(MMDB) Url"
msgstr "GeoIP(MMDB) 下载地址"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:461
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:464
msgid "GeoSite Url"
msgstr "GeoSite 下载地址"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:473
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:476
msgid "GeoX Auto Update"
msgstr "定时更新GeoX文件"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:451
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:454
msgid "GeoX Config"
msgstr "GeoX 配置"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:476
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:479
msgid "GeoX Update Interval"
msgstr "GeoX 文件更新间隔"
@ -389,15 +397,15 @@ msgstr "全局模式"
msgid "Grant access to nikki procedures"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:94
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:97
msgid "HTTP Port"
msgstr "HTTP 端口"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:39
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:38
msgid "How To Use"
msgstr "使用说明"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:240
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:243
msgid "IP"
msgstr ""
@ -410,7 +418,7 @@ msgid "IPv4 Proxy"
msgstr "IPv4 代理"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:50
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:214
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:217
msgid "IPv6"
msgstr ""
@ -422,11 +430,11 @@ msgstr "IPv6 DNS 劫持"
msgid "IPv6 Proxy"
msgstr "IPv6 代理"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:307
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:310
msgid "Ignore Sniff Domain Name"
msgstr "忽略嗅探的域名"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:89
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:92
msgid "Inbound Config"
msgstr "入站配置"
@ -451,7 +459,7 @@ msgstr "日志"
msgid "Log Level"
msgstr "日志级别"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:145
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:148
msgid "MTU"
msgstr "最大传输单元"
@ -459,16 +467,16 @@ msgstr "最大传输单元"
msgid "Match Process"
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:435
#: 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:438
msgid "Matcher"
msgstr "匹配"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:459
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:462
msgid "Memory Conservative Loader"
msgstr "为内存受限设备优化的加载器"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:102
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:105
msgid "Mixed Port"
msgstr "混合端口"
@ -477,7 +485,7 @@ msgstr "混合端口"
msgid "Mixin Config"
msgstr "混入配置"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:482
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:485
msgid "Mixin File Content"
msgstr "混入文件内容"
@ -490,26 +498,26 @@ msgstr "混入选项"
msgid "Mode"
msgstr "模式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:354
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:357
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:282
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:266
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:285
msgid "Nameserver"
msgstr "DNS 服务器"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:39
#: 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 ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:445
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:448
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
#: 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:441
msgid "Node"
msgstr "节点"
@ -517,7 +525,7 @@ msgstr "节点"
msgid "Not Running"
msgstr "未在运行"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:89
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:88
msgid "Open Dashboard"
msgstr "打开面板"
@ -525,56 +533,56 @@ msgstr "打开面板"
msgid "Outbound Interface"
msgstr "出站接口"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:114
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:117
msgid "Overwrite Authentication"
msgstr "覆盖身份验证"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:158
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:161
msgid "Overwrite DNS Hijack"
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:332
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:298
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:335
msgid "Overwrite Destination"
msgstr "将嗅探结果作为连接目标"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:188
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:191
msgid "Overwrite Fake-IP Filter"
msgstr "覆盖 Fake-IP 过滤列表"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:298
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:301
msgid "Overwrite Force Sniff Domain Name"
msgstr "覆盖强制嗅探的域名"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:223
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:226
msgid "Overwrite Hosts"
msgstr "覆盖 Hosts"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:304
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:307
msgid "Overwrite Ignore Sniff Domain Name"
msgstr "覆盖忽略嗅探的域名"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:242
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:245
msgid "Overwrite Nameserver"
msgstr "覆盖 DNS 服务器"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:265
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:268
msgid "Overwrite Nameserver Policy"
msgstr "覆盖 DNS 服务器查询策略"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:310
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:313
msgid "Overwrite Sniff By Protocol"
msgstr "覆盖按协议嗅探"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:131
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:134
msgid "Password"
msgstr "密码"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:484
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:487
msgid "Please go to the editor tab to edit the file for mixin"
msgstr "请前往编辑器标签编辑用于混入的文件"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:329
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:332
msgid "Port"
msgstr "端口"
@ -582,7 +590,7 @@ msgstr "端口"
msgid "Prefer"
msgstr "优先"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:431
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:434
msgid "Process Name"
msgstr "进程名"
@ -595,7 +603,7 @@ msgstr "配置文件"
msgid "Profile for Startup"
msgstr "用于启动的配置文件"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:323
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:326
msgid "Protocol"
msgstr "协议"
@ -612,11 +620,11 @@ msgstr "代理提供者:"
msgid "Redirect Mode"
msgstr "Redirect 模式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:106
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:109
msgid "Redirect Port"
msgstr "Redirect 端口"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:69
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:68
msgid "Reload Service"
msgstr "重载服务"
@ -624,11 +632,11 @@ msgstr "重载服务"
msgid "Remote"
msgstr "远程"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:208
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:211
msgid "Respect Rules"
msgstr "遵循分流规则"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:76
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:75
msgid "Restart Service"
msgstr "重启服务"
@ -636,7 +644,7 @@ msgstr "重启服务"
msgid "Router Proxy"
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:338
msgid "Rule Config"
msgstr "规则配置"
@ -648,7 +656,7 @@ msgstr "规则模式"
msgid "Rule Provider:"
msgstr "规则提供者:"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:424
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:427
msgid "Rule Set"
msgstr "规则集"
@ -656,15 +664,15 @@ msgstr "规则集"
msgid "Running"
msgstr "运行中"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:98
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:101
msgid "SOCKS Port"
msgstr "SOCKS 端口"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:86
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:89
msgid "Save Proxy Selection"
msgstr "保存节点/策略组选择"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:114
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:113
msgid "Scheduled Restart"
msgstr "定时重启"
@ -673,40 +681,35 @@ msgstr "定时重启"
msgid "Scroll To Bottom"
msgstr "滚动到底部"
#: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:113
#: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:131
msgid "Service is not running."
msgstr "服务未在运行。"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:313
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:316
msgid "Sniff By Protocol"
msgstr "按协议嗅探"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:292
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:295
msgid "Sniff Pure IP"
msgstr "嗅探纯 IP 连接"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:289
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:292
msgid "Sniff Redir-Host"
msgstr "嗅探 Redir-Host 流量"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:284
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:287
msgid "Sniffer Config"
msgstr "嗅探器配置"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:140
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:143
msgid "Stack"
msgstr "栈"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:458
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:461
msgid "Standard Loader"
msgstr "标准加载器"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:110
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:109
msgid "Start Delay"
msgstr "启动延迟"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:41
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:40
msgid "Status"
msgstr "状态"
@ -722,7 +725,7 @@ msgstr "订阅名称"
msgid "Subscription Url"
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:106
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/editor.js:37
msgid "Subscription:"
msgstr "订阅:"
@ -748,11 +751,11 @@ msgstr "TCP 代理模式"
msgid "TPROXY Mode"
msgstr "TPROXY 模式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:110
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:113
msgid "TPROXY Port"
msgstr "TPROXY 端口"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:135
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:138
msgid "TUN Config"
msgstr "TUN 配置"
@ -761,7 +764,7 @@ msgstr "TUN 配置"
msgid "TUN Mode"
msgstr "TUN 模式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:122
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:121
msgid "Test Profile"
msgstr "检查配置文件"
@ -773,13 +776,13 @@ msgstr "总量"
msgid "Transparent Proxy"
msgstr "透明代理"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:39
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:38
msgid "Transparent Proxy with Mihomo on OpenWrt."
msgstr "在 OpenWrt 上使用 Mihomo 进行透明代理。"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js: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
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:259
#: 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:424
msgid "Type"
msgstr "类型"
@ -787,11 +790,15 @@ msgstr "类型"
msgid "UDP Proxy Mode"
msgstr "UDP 代理模式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:69
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:72
msgid "UI Name"
msgstr "UI 名称"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:71
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:69
msgid "UI Path"
msgstr "UI 路径"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:74
msgid "UI Url"
msgstr "UI 下载地址"
@ -799,11 +806,6 @@ msgstr "UI 下载地址"
msgid "Unify Delay"
msgstr "统一延迟"
#: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:93
#: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:97
msgid "Unknown"
msgstr "未知"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:60
msgid "Update"
msgstr "更新"
@ -812,11 +814,11 @@ msgstr "更新"
msgid "Update At"
msgstr "更新时间"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:83
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:82
msgid "Update Dashboard"
msgstr "更新面板"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:400
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:403
msgid "Update Interval"
msgstr "更新间隔"
@ -824,15 +826,15 @@ msgstr "更新间隔"
msgid "Upload Profile"
msgstr "上传配置文件"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:363
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366
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:223
msgid "Use Hosts"
msgstr "使用 Hosts"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:217
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:220
msgid "Use System Hosts"
msgstr "使用系统的 Hosts"
@ -844,21 +846,6 @@ msgstr "已使用"
msgid "User Agent"
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:131
msgid "Username"
msgstr "用户名"
#~ msgid "File"
#~ msgstr "文件"
#~ msgid "Proxy Provider"
#~ msgstr "代理提供者"
#~ msgid "Rule Provider"
#~ msgstr "规则提供者"
#~ msgid ": "
#~ msgstr ""
#~ msgid "Custom"
#~ msgstr "自定义"

View File

@ -1,57 +0,0 @@
#!/bin/sh
. $IPKG_INSTROOT/etc/nikki/scripts/include.sh
action=$1
shift
case "$action" in
clear_log)
case "$1" in
app)
echo -n > "$APP_LOG_PATH"
;;
core)
echo -n > "$CORE_LOG_PATH"
;;
esac
;;
subscription)
case "$1" in
update)
/etc/init.d/nikki update_subscription "$2"
;;
esac
;;
load)
case "$1" in
profile)
yq -M -o json < "$RUN_PROFILE_PATH"
;;
esac
;;
service)
case "$1" in
reload)
/etc/init.d/nikki reload
;;
restart)
/etc/init.d/nikki restart
;;
esac
;;
version)
case "$1" in
app)
if [ -x "/bin/opkg" ]; then
opkg list-installed "luci-app-nikki" | cut -d " " -f 3
elif [ -x "/usr/bin/apk" ]; then
apk list -I "luci-app-nikki" | cut -d ' ' -f 1 | cut -d '-' -f 4
fi
;;
core)
mihomo -v | grep "Mihomo" | cut -d " " -f 3
;;
esac
;;
esac

View File

@ -4,7 +4,8 @@
"read": {
"uci": [ "nikki" ],
"ubus": {
"service": [ "list" ]
"rc": [ "*" ],
"luci.nikki": [ "*" ]
},
"file": {
"/etc/passwd": ["read"],
@ -20,7 +21,7 @@
"/etc/nikki/nftables/reserved_ip.nft": ["read"],
"/etc/nikki/nftables/reserved_ip6.nft": ["read"],
"/var/log/nikki/*.log": ["read"],
"/usr/libexec/nikki-call": ["exec"]
"/var/run/nikki/debug.md": ["read"]
}
},
"write": {

View File

@ -0,0 +1,53 @@
#!/usr/bin/ucode
'use strict';
import { popen } from 'fs';
const methods = {
version: {
call: function() {
let process;
let app = '';
if (system('command -v opkg') == 0) {
process = popen('opkg list-installed luci-app-nikki | cut -d " " -f 3');
if (process != null) {
app = trim(process.read('all'));
process.close();
}
} else if (system('command -v apk') == 0) {
process = popen('apk list -I luci-app-nikki | cut -d " " -f 1 | cut -d "-" -f 4');
if (process != null) {
app = trim(process.read('all'));
process.close();
}
}
let core = '';
process = popen('mihomo -v | grep Mihomo | cut -d " " -f 3');
if (process != null) {
core = trim(process.read('all'));
process.close();
}
return { success: true, app: app, core: core };
}
},
update_subscription: {
args: { section_id: 'section_id' },
call: function(req) {
let success = false;
if (req.args?.section_id) {
const section_id = req.args?.section_id;
success = system(['service', 'nikki', 'update_subscription', section_id]) == 0;
}
return { success: success };
}
},
debug: {
call: function() {
const success = system('/etc/nikki/scripts/debug.sh > /var/run/nikki/debug.md') == 0;
return { success: success };
}
}
};
return { 'luci.nikki': methods };