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 include $(TOPDIR)/rules.mk
PKG_VERSION:=1.18.0 PKG_VERSION:=1.19.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

@ -3,6 +3,40 @@
'require uci'; 'require uci';
'require fs'; 'require fs';
'require rpc'; '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 homeDir = '/etc/nikki';
const profilesDir = `${homeDir}/profiles`; const profilesDir = `${homeDir}/profiles`;
@ -34,27 +68,60 @@ return baseclass.extend({
reservedIPNFT: reservedIPNFT, reservedIPNFT: reservedIPNFT,
reservedIP6NFT: reservedIP6NFT, reservedIP6NFT: reservedIP6NFT,
callServiceList: rpc.declare({ status: async function () {
object: 'service', return (await callRCList('nikki'))?.nikki?.running;
method: 'list',
params: ['name'],
expect: { '': {} }
}),
getAppLog: function () {
return L.resolveDefault(fs.read_direct(this.appLogPath));
}, },
getCoreLog: function () { reload: function () {
return L.resolveDefault(fs.read_direct(this.coreLogPath)); return callRCInit('nikki', 'reload');
}, },
clearAppLog: function () { restart: function () {
return fs.exec_direct('/usr/libexec/nikki-call', ['clear_log', 'app']); return callRCInit('nikki', 'restart');
}, },
clearCoreLog: function () { version: function () {
return fs.exec_direct('/usr/libexec/nikki-call', ['clear_log', 'core']); 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 () { listProfiles: function () {
@ -69,67 +136,24 @@ return baseclass.extend({
return L.resolveDefault(fs.list(this.proxyProvidersDir), []); return L.resolveDefault(fs.list(this.proxyProvidersDir), []);
}, },
updateSubscription: function (section_id) { getAppLog: function () {
return fs.exec_direct('/usr/libexec/nikki-call', ['subscription', 'update', section_id]); return L.resolveDefault(fs.read_direct(this.appLogPath));
}, },
status: async function () { getCoreLog: function () {
try { return L.resolveDefault(fs.read_direct(this.coreLogPath));
return (await this.callServiceList('nikki'))['nikki']['instances']['nikki']['running'];
} catch (ignored) {
return false;
}
}, },
reload: function () { clearAppLog: function () {
return fs.exec_direct('/usr/libexec/nikki-call', ['service', 'reload']); return fs.write(this.appLogPath);
}, },
restart: function () { clearCoreLog: function () {
return fs.exec_direct('/usr/libexec/nikki-call', ['service', 'restart']); return fs.write(this.coreLogPath);
}, },
appVersion: function () { debug: function () {
return L.resolveDefault(fs.exec_direct('/usr/libexec/nikki-call', ['version', 'app']), _('Unknown')); return callNikkiDebug();
},
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.'));
}
}, },
getUsers: function () { getUsers: function () {

View File

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

View File

@ -2,6 +2,7 @@
'require form'; 'require form';
'require view'; 'require view';
'require uci'; 'require uci';
'require fs';
'require poll'; 'require poll';
'require tools.nikki as nikki'; 'require tools.nikki as nikki';
@ -89,6 +90,30 @@ return view.extend({
element.scrollTop = element.scrollHeight; 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(); return m.render();
}, },
handleSaveApply: null, handleSaveApply: null,

View File

@ -66,6 +66,9 @@ return view.extend({
s.tab('external_control', _('External Control Config')); 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_name', '*' + ' ' + _('UI Name'));
o = s.taboption('external_control', form.Value, 'ui_url', '*' + ' ' + _('UI Url')); 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('GEOSITE', _('Domain Name Geo'));
so.value('GEOIP', _('Destination IP 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.rmempty = false;
so = o.subsection.option(form.Value, 'node', _('Node')); so = o.subsection.option(form.Value, 'node', _('Node'));

View File

@ -1,11 +1,11 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8" 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" msgid "API Port"
msgstr "" 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" msgid "API Secret"
msgstr "" msgstr ""
@ -22,16 +22,16 @@ msgstr ""
msgid "All Port" msgid "All Port"
msgstr "" 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" msgid "Allow Lan"
msgstr "" 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 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:65
msgid "Allow Mode" msgid "Allow Mode"
msgstr "" 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 #: applications/luci-app-nikki/root/usr/share/luci/menu.d/luci-app-nikki.json:13
msgid "App Config" msgid "App Config"
msgstr "" msgstr ""
@ -40,15 +40,15 @@ msgstr ""
msgid "App Log" msgid "App Log"
msgstr "" 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" msgid "App Version"
msgstr "" 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" msgid "Append Rule"
msgstr "" 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" msgid "Append Rule Provider"
msgstr "" msgstr ""
@ -56,11 +56,11 @@ msgstr ""
msgid "Auto" msgid "Auto"
msgstr "" 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" msgid "Behavior"
msgstr "" 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 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66
msgid "Block Mode" msgid "Block Mode"
msgstr "" msgstr ""
@ -89,7 +89,7 @@ msgstr ""
msgid "Choose File" msgid "Choose File"
msgstr "" 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" msgid "Choose Profile"
msgstr "" msgstr ""
@ -103,7 +103,7 @@ msgstr ""
msgid "Commonly Used Port" msgid "Commonly Used Port"
msgstr "" 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" msgid "Core Environment Variable Config"
msgstr "" msgstr ""
@ -111,39 +111,43 @@ msgstr ""
msgid "Core Log" msgid "Core Log"
msgstr "" 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" msgid "Core Status"
msgstr "" 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" msgid "Core Version"
msgstr "" 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" msgid "Cron Expression"
msgstr "" 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" msgid "DNS Config"
msgstr "" 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" msgid "DNS Mode"
msgstr "" 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" msgid "DNS Port"
msgstr "" 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" msgid "Destination IP"
msgstr "" 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" msgid "Destination IP Geo"
msgstr "" 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" msgid "Destination Port"
msgstr "" msgstr ""
@ -155,7 +159,7 @@ msgstr ""
msgid "Destination UDP Port to Proxy" msgid "Destination UDP Port to Proxy"
msgstr "" 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" msgid "Device"
msgstr "" msgstr ""
@ -167,76 +171,76 @@ msgstr ""
msgid "Disable" msgid "Disable"
msgstr "" 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" msgid "Disable ECN of quic-go"
msgstr "" 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" msgid "Disable GSO of quic-go"
msgstr "" 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" msgid "Disable Loopback Detector"
msgstr "" 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" msgid "Disable Safe Path Check"
msgstr "" 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" 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:240
#: 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:428
msgid "Domain Name" msgid "Domain Name"
msgstr "" 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" msgid "Domain Name Geo"
msgstr "" 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" msgid "Domain Name Keyword"
msgstr "" 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" msgid "Domain Name Regex"
msgstr "" 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" msgid "Domain Name Suffix"
msgstr "" 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" msgid "Edit Authentications"
msgstr "" 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" msgid "Edit DNS Hijacks"
msgstr "" 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" msgid "Edit Fake-IP Filters"
msgstr "" 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" msgid "Edit Hosts"
msgstr "" 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" msgid "Edit Nameserver Policies"
msgstr "" 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" msgid "Edit Nameservers"
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:343
msgid "Edit Rule Providers" msgid "Edit Rule Providers"
msgstr "" 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" msgid "Edit Rules"
msgstr "" msgstr ""
@ -249,23 +253,23 @@ msgstr ""
msgid "Editor" msgid "Editor"
msgstr "" 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: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: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:128
#: 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:237
#: 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:256
#: 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:279
#: 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:289
#: 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:323
#: 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:351
#: 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:420
#: 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
#: 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 ""
#: 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" msgid "Endpoint Independent NAT"
msgstr "" msgstr ""
@ -277,31 +281,31 @@ msgstr ""
msgid "External Control Config" msgid "External Control Config"
msgstr "" 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" msgid "Fake-IP Cache"
msgstr "" 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" msgid "Fake-IP Filter Mode"
msgstr "" 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" msgid "Fake-IP Range"
msgstr "" 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" msgid "Fast Reload"
msgstr "" 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" msgid "File Format"
msgstr "" 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" msgid "File Path"
msgstr "" 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" msgid "File Size Limit"
msgstr "" msgstr ""
@ -317,20 +321,20 @@ msgstr ""
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:102
#: 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:33
msgid "File:" msgid "File:"
msgstr "" 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" msgid "Force Sniff Domain Name"
msgstr "" 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" msgid "GSO"
msgstr "" 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" msgid "GSO Max Size"
msgstr "" msgstr ""
@ -338,39 +342,43 @@ msgstr ""
msgid "General Config" msgid "General Config"
msgstr "" 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" msgid "GeoData Loader"
msgstr "" 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" msgid "GeoIP Format"
msgstr "" 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" msgid "GeoIP(ASN) Url"
msgstr "" 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" msgid "GeoIP(DAT) Url"
msgstr "" 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" msgid "GeoIP(MMDB) Url"
msgstr "" 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" msgid "GeoSite Url"
msgstr "" 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" msgid "GeoX Auto Update"
msgstr "" 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" msgid "GeoX Config"
msgstr "" 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" msgid "GeoX Update Interval"
msgstr "" msgstr ""
@ -382,15 +390,15 @@ msgstr ""
msgid "Grant access to nikki procedures" msgid "Grant access to nikki procedures"
msgstr "" 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" msgid "HTTP Port"
msgstr "" 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" msgid "How To Use"
msgstr "" 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" msgid "IP"
msgstr "" msgstr ""
@ -403,7 +411,7 @@ msgid "IPv4 Proxy"
msgstr "" 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: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" msgid "IPv6"
msgstr "" msgstr ""
@ -415,11 +423,11 @@ msgstr ""
msgid "IPv6 Proxy" msgid "IPv6 Proxy"
msgstr "" 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" msgid "Ignore Sniff Domain Name"
msgstr "" 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" msgid "Inbound Config"
msgstr "" msgstr ""
@ -444,7 +452,7 @@ msgstr ""
msgid "Log Level" msgid "Log Level"
msgstr "" 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" msgid "MTU"
msgstr "" msgstr ""
@ -452,16 +460,16 @@ msgstr ""
msgid "Match Process" 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:282
#: 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:438
msgid "Matcher" msgid "Matcher"
msgstr "" 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" msgid "Memory Conservative Loader"
msgstr "" 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" msgid "Mixed Port"
msgstr "" msgstr ""
@ -470,7 +478,7 @@ msgstr ""
msgid "Mixin Config" msgid "Mixin Config"
msgstr "" 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" msgid "Mixin File Content"
msgstr "" msgstr ""
@ -483,26 +491,26 @@ msgstr ""
msgid "Mode" msgid "Mode"
msgstr "" 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" msgid "Name"
msgstr "" 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:266
#: 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:285
msgid "Nameserver" msgid "Nameserver"
msgstr "" 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 #: applications/luci-app-nikki/root/usr/share/luci/menu.d/luci-app-nikki.json:3
msgid "Nikki" msgid "Nikki"
msgstr "" 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" msgid "No Resolve"
msgstr "" 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:371
#: 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:441
msgid "Node" msgid "Node"
msgstr "" msgstr ""
@ -510,7 +518,7 @@ msgstr ""
msgid "Not Running" msgid "Not Running"
msgstr "" 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" msgid "Open Dashboard"
msgstr "" msgstr ""
@ -518,56 +526,56 @@ msgstr ""
msgid "Outbound Interface" msgid "Outbound Interface"
msgstr "" 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" msgid "Overwrite Authentication"
msgstr "" 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" 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:298
#: 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:335
msgid "Overwrite Destination" msgid "Overwrite Destination"
msgstr "" 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" msgid "Overwrite Fake-IP Filter"
msgstr "" 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" msgid "Overwrite Force Sniff Domain Name"
msgstr "" 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" msgid "Overwrite Hosts"
msgstr "" 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" msgid "Overwrite Ignore Sniff Domain Name"
msgstr "" 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" msgid "Overwrite Nameserver"
msgstr "" 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" msgid "Overwrite Nameserver Policy"
msgstr "" 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" msgid "Overwrite Sniff By Protocol"
msgstr "" 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" msgid "Password"
msgstr "" 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" 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:329 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:332
msgid "Port" msgid "Port"
msgstr "" msgstr ""
@ -575,7 +583,7 @@ msgstr ""
msgid "Prefer" msgid "Prefer"
msgstr "" 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" msgid "Process Name"
msgstr "" msgstr ""
@ -588,7 +596,7 @@ msgstr ""
msgid "Profile for Startup" msgid "Profile for Startup"
msgstr "" 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" msgid "Protocol"
msgstr "" msgstr ""
@ -605,11 +613,11 @@ msgstr ""
msgid "Redirect Mode" msgid "Redirect Mode"
msgstr "" 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" msgid "Redirect Port"
msgstr "" 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" msgid "Reload Service"
msgstr "" msgstr ""
@ -617,11 +625,11 @@ msgstr ""
msgid "Remote" msgid "Remote"
msgstr "" 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" msgid "Respect Rules"
msgstr "" 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" msgid "Restart Service"
msgstr "" msgstr ""
@ -629,7 +637,7 @@ msgstr ""
msgid "Router Proxy" msgid "Router Proxy"
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:338
msgid "Rule Config" msgid "Rule Config"
msgstr "" msgstr ""
@ -641,7 +649,7 @@ msgstr ""
msgid "Rule Provider:" msgid "Rule Provider:"
msgstr "" 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" msgid "Rule Set"
msgstr "" msgstr ""
@ -649,15 +657,15 @@ msgstr ""
msgid "Running" msgid "Running"
msgstr "" 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" msgid "SOCKS Port"
msgstr "" 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" msgid "Save Proxy Selection"
msgstr "" 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" msgid "Scheduled Restart"
msgstr "" msgstr ""
@ -666,40 +674,35 @@ msgstr ""
msgid "Scroll To Bottom" msgid "Scroll To Bottom"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:113 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:316
#: 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
msgid "Sniff By Protocol" msgid "Sniff By Protocol"
msgstr "" 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" msgid "Sniff Pure IP"
msgstr "" 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" msgid "Sniff Redir-Host"
msgstr "" 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" msgid "Sniffer Config"
msgstr "" 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" msgid "Stack"
msgstr "" 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" msgid "Standard Loader"
msgstr "" 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" msgid "Start Delay"
msgstr "" 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" msgid "Status"
msgstr "" msgstr ""
@ -715,7 +718,7 @@ msgstr ""
msgid "Subscription Url" 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:106
#: 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:37
msgid "Subscription:" msgid "Subscription:"
msgstr "" msgstr ""
@ -741,11 +744,11 @@ msgstr ""
msgid "TPROXY Mode" msgid "TPROXY Mode"
msgstr "" 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" msgid "TPROXY Port"
msgstr "" 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" msgid "TUN Config"
msgstr "" msgstr ""
@ -754,7 +757,7 @@ msgstr ""
msgid "TUN Mode" msgid "TUN Mode"
msgstr "" 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" msgid "Test Profile"
msgstr "" msgstr ""
@ -766,13 +769,13 @@ msgstr ""
msgid "Transparent Proxy" msgid "Transparent Proxy"
msgstr "" 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." 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:259
#: 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:360
#: 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:424
msgid "Type" msgid "Type"
msgstr "" msgstr ""
@ -780,11 +783,15 @@ msgstr ""
msgid "UDP Proxy Mode" msgid "UDP Proxy Mode"
msgstr "" 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" msgid "UI Name"
msgstr "" 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" msgid "UI Url"
msgstr "" msgstr ""
@ -792,11 +799,6 @@ msgstr ""
msgid "Unify Delay" msgid "Unify Delay"
msgstr "" 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 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:60
msgid "Update" msgid "Update"
msgstr "" msgstr ""
@ -805,11 +807,11 @@ msgstr ""
msgid "Update At" msgid "Update At"
msgstr "" 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" msgid "Update Dashboard"
msgstr "" 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" msgid "Update Interval"
msgstr "" msgstr ""
@ -817,15 +819,15 @@ msgstr ""
msgid "Upload Profile" msgid "Upload Profile"
msgstr "" 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" msgid "Url"
msgstr "" 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" msgid "Use Hosts"
msgstr "" 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" msgid "Use System Hosts"
msgstr "" msgstr ""
@ -837,6 +839,6 @@ msgstr ""
msgid "User Agent" msgid "User Agent"
msgstr "" 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" msgid "Username"
msgstr "" msgstr ""

View File

@ -8,11 +8,11 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\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" msgid "API Port"
msgstr "API 端口" 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" msgid "API Secret"
msgstr "API 密钥" msgstr "API 密钥"
@ -29,16 +29,16 @@ msgstr "全部模式"
msgid "All Port" msgid "All Port"
msgstr "全部端口" 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" msgid "Allow Lan"
msgstr "允许局域网访问" 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 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:65
msgid "Allow Mode" msgid "Allow Mode"
msgstr "白名单模式" 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 #: applications/luci-app-nikki/root/usr/share/luci/menu.d/luci-app-nikki.json:13
msgid "App Config" msgid "App Config"
msgstr "插件配置" msgstr "插件配置"
@ -47,15 +47,15 @@ msgstr "插件配置"
msgid "App Log" msgid "App Log"
msgstr "插件日志" 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" msgid "App Version"
msgstr "插件版本" 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" msgid "Append Rule"
msgstr "追加规则" 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" msgid "Append Rule Provider"
msgstr "追加规则提供者" msgstr "追加规则提供者"
@ -63,11 +63,11 @@ msgstr "追加规则提供者"
msgid "Auto" msgid "Auto"
msgstr "自动" 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" msgid "Behavior"
msgstr "行为" 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 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66
msgid "Block Mode" msgid "Block Mode"
msgstr "黑名单模式" msgstr "黑名单模式"
@ -96,7 +96,7 @@ msgstr "绕过用户"
msgid "Choose File" msgid "Choose File"
msgstr "选择文件" 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" msgid "Choose Profile"
msgstr "选择配置文件" msgstr "选择配置文件"
@ -110,7 +110,7 @@ msgstr "清空日志"
msgid "Commonly Used Port" msgid "Commonly Used Port"
msgstr "常用端口" 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" msgid "Core Environment Variable Config"
msgstr "核心环境变量配置" msgstr "核心环境变量配置"
@ -118,39 +118,43 @@ msgstr "核心环境变量配置"
msgid "Core Log" msgid "Core Log"
msgstr "核心日志" 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" msgid "Core Status"
msgstr "核心状态" 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" msgid "Core Version"
msgstr "核心版本" 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" msgid "Cron Expression"
msgstr "Cron 表达式" 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" msgid "DNS Config"
msgstr "DNS 配置" 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" msgid "DNS Mode"
msgstr "DNS 模式" 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" msgid "DNS Port"
msgstr "DNS 端口" 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" msgid "Destination IP"
msgstr "目标 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" msgid "Destination IP Geo"
msgstr "目标 IPGeo" 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" msgid "Destination Port"
msgstr "目标端口" msgstr "目标端口"
@ -162,7 +166,7 @@ msgstr "要代理的 TCP 目标端口"
msgid "Destination UDP Port to Proxy" msgid "Destination UDP Port to Proxy"
msgstr "要代理的 UDP 目标端口" 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" msgid "Device"
msgstr "设备名称" msgstr "设备名称"
@ -174,76 +178,76 @@ msgstr "直连模式"
msgid "Disable" msgid "Disable"
msgstr "禁用" 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" msgid "Disable ECN of quic-go"
msgstr "禁用 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" msgid "Disable GSO of quic-go"
msgstr "禁用 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" msgid "Disable Loopback Detector"
msgstr "禁用回环检测" 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" msgid "Disable Safe Path Check"
msgstr "禁用安全路径检查" 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" 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:240
#: 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:428
msgid "Domain Name" msgid "Domain Name"
msgstr "域名" 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" msgid "Domain Name Geo"
msgstr "域名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" msgid "Domain Name Keyword"
msgstr "域名(关键字)" 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" msgid "Domain Name Regex"
msgstr "域名(正则表达式)" 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" msgid "Domain Name Suffix"
msgstr "域名(后缀)" 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" msgid "Edit Authentications"
msgstr "编辑身份验证" 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" msgid "Edit DNS Hijacks"
msgstr "编辑 DNS 劫持" 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" msgid "Edit Fake-IP Filters"
msgstr "编辑 Fake-IP 过滤列表" 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" msgid "Edit Hosts"
msgstr "编辑 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" msgid "Edit Nameserver Policies"
msgstr "编辑 DNS 服务器查询策略" 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" msgid "Edit Nameservers"
msgstr "编辑 DNS 服务器" 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" msgid "Edit Rule Providers"
msgstr "编辑规则提供者" 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" msgid "Edit Rules"
msgstr "编辑规则" msgstr "编辑规则"
@ -256,23 +260,23 @@ msgstr "编辑订阅"
msgid "Editor" msgid "Editor"
msgstr "编辑器" 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: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: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:128
#: 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:237
#: 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:256
#: 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:279
#: 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:289
#: 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:323
#: 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:351
#: 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:420
#: 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
#: 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 "启用"
#: 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" msgid "Endpoint Independent NAT"
msgstr "独立于端点的 NAT" msgstr "独立于端点的 NAT"
@ -284,31 +288,31 @@ msgstr "到期时间"
msgid "External Control Config" msgid "External Control Config"
msgstr "外部控制配置" 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" msgid "Fake-IP Cache"
msgstr "Fake-IP 缓存" 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" msgid "Fake-IP Filter Mode"
msgstr "Fake-IP 过滤模式" 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" msgid "Fake-IP Range"
msgstr "Fake-IP 范围" 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" msgid "Fast Reload"
msgstr "快速重载" 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" msgid "File Format"
msgstr "文件格式" 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" msgid "File Path"
msgstr "文件路径" 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" msgid "File Size Limit"
msgstr "文件大小限制" msgstr "文件大小限制"
@ -324,20 +328,20 @@ msgstr "IPv4 保留地址"
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:102
#: 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:33
msgid "File:" msgid "File:"
msgstr "文件:" 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" msgid "Force Sniff Domain Name"
msgstr "强制嗅探的域名" 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" msgid "GSO"
msgstr "通用分段卸载" 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" msgid "GSO Max Size"
msgstr "分段最大长度" msgstr "分段最大长度"
@ -345,39 +349,43 @@ msgstr "分段最大长度"
msgid "General Config" msgid "General Config"
msgstr "全局配置" 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" msgid "GeoData Loader"
msgstr "GeoData 加载器" 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" msgid "GeoIP Format"
msgstr "GeoIP 格式" 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" msgid "GeoIP(ASN) Url"
msgstr "GeoIP(ASN) 下载地址" 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" msgid "GeoIP(DAT) Url"
msgstr "GeoIP(DAT) 下载地址" 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" msgid "GeoIP(MMDB) Url"
msgstr "GeoIP(MMDB) 下载地址" 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" msgid "GeoSite Url"
msgstr "GeoSite 下载地址" 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" msgid "GeoX Auto Update"
msgstr "定时更新GeoX文件" 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" msgid "GeoX Config"
msgstr "GeoX 配置" 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" msgid "GeoX Update Interval"
msgstr "GeoX 文件更新间隔" msgstr "GeoX 文件更新间隔"
@ -389,15 +397,15 @@ msgstr "全局模式"
msgid "Grant access to nikki procedures" msgid "Grant access to nikki procedures"
msgstr "" 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" msgid "HTTP Port"
msgstr "HTTP 端口" 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" msgid "How To Use"
msgstr "使用说明" 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" msgid "IP"
msgstr "" msgstr ""
@ -410,7 +418,7 @@ msgid "IPv4 Proxy"
msgstr "IPv4 代理" 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: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" msgid "IPv6"
msgstr "" msgstr ""
@ -422,11 +430,11 @@ msgstr "IPv6 DNS 劫持"
msgid "IPv6 Proxy" msgid "IPv6 Proxy"
msgstr "IPv6 代理" 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" msgid "Ignore Sniff Domain Name"
msgstr "忽略嗅探的域名" 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" msgid "Inbound Config"
msgstr "入站配置" msgstr "入站配置"
@ -451,7 +459,7 @@ msgstr "日志"
msgid "Log Level" msgid "Log Level"
msgstr "日志级别" 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" msgid "MTU"
msgstr "最大传输单元" msgstr "最大传输单元"
@ -459,16 +467,16 @@ msgstr "最大传输单元"
msgid "Match Process" 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:282
#: 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:438
msgid "Matcher" msgid "Matcher"
msgstr "匹配" 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" msgid "Memory Conservative Loader"
msgstr "为内存受限设备优化的加载器" 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" msgid "Mixed Port"
msgstr "混合端口" msgstr "混合端口"
@ -477,7 +485,7 @@ msgstr "混合端口"
msgid "Mixin Config" msgid "Mixin Config"
msgstr "混入配置" 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" msgid "Mixin File Content"
msgstr "混入文件内容" msgstr "混入文件内容"
@ -490,26 +498,26 @@ msgstr "混入选项"
msgid "Mode" msgid "Mode"
msgstr "模式" 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" msgid "Name"
msgstr "名称" 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:266
#: 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:285
msgid "Nameserver" msgid "Nameserver"
msgstr "DNS 服务器" 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 #: applications/luci-app-nikki/root/usr/share/luci/menu.d/luci-app-nikki.json:3
msgid "Nikki" msgid "Nikki"
msgstr "" 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" msgid "No Resolve"
msgstr "不解析" 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:371
#: 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:441
msgid "Node" msgid "Node"
msgstr "节点" msgstr "节点"
@ -517,7 +525,7 @@ msgstr "节点"
msgid "Not Running" msgid "Not Running"
msgstr "未在运行" 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" msgid "Open Dashboard"
msgstr "打开面板" msgstr "打开面板"
@ -525,56 +533,56 @@ msgstr "打开面板"
msgid "Outbound Interface" msgid "Outbound Interface"
msgstr "出站接口" 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" msgid "Overwrite Authentication"
msgstr "覆盖身份验证" 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" 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:298
#: 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:335
msgid "Overwrite Destination" msgid "Overwrite Destination"
msgstr "将嗅探结果作为连接目标" 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" msgid "Overwrite Fake-IP Filter"
msgstr "覆盖 Fake-IP 过滤列表" 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" msgid "Overwrite Force Sniff Domain Name"
msgstr "覆盖强制嗅探的域名" 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" msgid "Overwrite Hosts"
msgstr "覆盖 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" msgid "Overwrite Ignore Sniff Domain Name"
msgstr "覆盖忽略嗅探的域名" 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" msgid "Overwrite Nameserver"
msgstr "覆盖 DNS 服务器" 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" msgid "Overwrite Nameserver Policy"
msgstr "覆盖 DNS 服务器查询策略" 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" msgid "Overwrite Sniff By Protocol"
msgstr "覆盖按协议嗅探" 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" msgid "Password"
msgstr "密码" 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" 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:329 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:332
msgid "Port" msgid "Port"
msgstr "端口" msgstr "端口"
@ -582,7 +590,7 @@ msgstr "端口"
msgid "Prefer" msgid "Prefer"
msgstr "优先" 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" msgid "Process Name"
msgstr "进程名" msgstr "进程名"
@ -595,7 +603,7 @@ msgstr "配置文件"
msgid "Profile for Startup" msgid "Profile for Startup"
msgstr "用于启动的配置文件" 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" msgid "Protocol"
msgstr "协议" msgstr "协议"
@ -612,11 +620,11 @@ msgstr "代理提供者:"
msgid "Redirect Mode" msgid "Redirect Mode"
msgstr "Redirect 模式" 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" msgid "Redirect Port"
msgstr "Redirect 端口" 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" msgid "Reload Service"
msgstr "重载服务" msgstr "重载服务"
@ -624,11 +632,11 @@ msgstr "重载服务"
msgid "Remote" msgid "Remote"
msgstr "远程" 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" msgid "Respect Rules"
msgstr "遵循分流规则" 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" msgid "Restart Service"
msgstr "重启服务" msgstr "重启服务"
@ -636,7 +644,7 @@ msgstr "重启服务"
msgid "Router Proxy" msgid "Router Proxy"
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:338
msgid "Rule Config" msgid "Rule Config"
msgstr "规则配置" msgstr "规则配置"
@ -648,7 +656,7 @@ msgstr "规则模式"
msgid "Rule Provider:" msgid "Rule Provider:"
msgstr "规则提供者:" 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" msgid "Rule Set"
msgstr "规则集" msgstr "规则集"
@ -656,15 +664,15 @@ msgstr "规则集"
msgid "Running" msgid "Running"
msgstr "运行中" 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" msgid "SOCKS Port"
msgstr "SOCKS 端口" 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" msgid "Save Proxy Selection"
msgstr "保存节点/策略组选择" 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" msgid "Scheduled Restart"
msgstr "定时重启" msgstr "定时重启"
@ -673,40 +681,35 @@ msgstr "定时重启"
msgid "Scroll To Bottom" msgid "Scroll To Bottom"
msgstr "滚动到底部" msgstr "滚动到底部"
#: applications/luci-app-nikki/htdocs/luci-static/resources/tools/nikki.js:113 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:316
#: 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
msgid "Sniff By Protocol" msgid "Sniff By Protocol"
msgstr "按协议嗅探" 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" msgid "Sniff Pure IP"
msgstr "嗅探纯 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" msgid "Sniff Redir-Host"
msgstr "嗅探 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" msgid "Sniffer Config"
msgstr "嗅探器配置" 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" msgid "Stack"
msgstr "栈" 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" msgid "Standard Loader"
msgstr "标准加载器" 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" msgid "Start Delay"
msgstr "启动延迟" 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" msgid "Status"
msgstr "状态" msgstr "状态"
@ -722,7 +725,7 @@ msgstr "订阅名称"
msgid "Subscription Url" 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:106
#: 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:37
msgid "Subscription:" msgid "Subscription:"
msgstr "订阅:" msgstr "订阅:"
@ -748,11 +751,11 @@ msgstr "TCP 代理模式"
msgid "TPROXY Mode" msgid "TPROXY Mode"
msgstr "TPROXY 模式" 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" msgid "TPROXY Port"
msgstr "TPROXY 端口" 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" msgid "TUN Config"
msgstr "TUN 配置" msgstr "TUN 配置"
@ -761,7 +764,7 @@ msgstr "TUN 配置"
msgid "TUN Mode" msgid "TUN Mode"
msgstr "TUN 模式" 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" msgid "Test Profile"
msgstr "检查配置文件" msgstr "检查配置文件"
@ -773,13 +776,13 @@ msgstr "总量"
msgid "Transparent Proxy" msgid "Transparent Proxy"
msgstr "透明代理" 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." 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:259
#: 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:360
#: 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:424
msgid "Type" msgid "Type"
msgstr "类型" msgstr "类型"
@ -787,11 +790,15 @@ msgstr "类型"
msgid "UDP Proxy Mode" msgid "UDP Proxy Mode"
msgstr "UDP 代理模式" 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" msgid "UI Name"
msgstr "UI 名称" 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" msgid "UI Url"
msgstr "UI 下载地址" msgstr "UI 下载地址"
@ -799,11 +806,6 @@ msgstr "UI 下载地址"
msgid "Unify Delay" msgid "Unify Delay"
msgstr "统一延迟" 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 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/profile.js:60
msgid "Update" msgid "Update"
msgstr "更新" msgstr "更新"
@ -812,11 +814,11 @@ msgstr "更新"
msgid "Update At" msgid "Update At"
msgstr "更新时间" 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" msgid "Update Dashboard"
msgstr "更新面板" 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" msgid "Update Interval"
msgstr "更新间隔" msgstr "更新间隔"
@ -824,15 +826,15 @@ msgstr "更新间隔"
msgid "Upload Profile" msgid "Upload Profile"
msgstr "上传配置文件" 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" msgid "Url"
msgstr "下载地址" 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" msgid "Use Hosts"
msgstr "使用 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" msgid "Use System Hosts"
msgstr "使用系统的 Hosts" msgstr "使用系统的 Hosts"
@ -844,21 +846,6 @@ msgstr "已使用"
msgid "User Agent" msgid "User Agent"
msgstr "用户代理UA" 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" msgid "Username"
msgstr "用户名" 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": { "read": {
"uci": [ "nikki" ], "uci": [ "nikki" ],
"ubus": { "ubus": {
"service": [ "list" ] "rc": [ "*" ],
"luci.nikki": [ "*" ]
}, },
"file": { "file": {
"/etc/passwd": ["read"], "/etc/passwd": ["read"],
@ -20,7 +21,7 @@
"/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"],
"/usr/libexec/nikki-call": ["exec"] "/var/run/nikki/debug.md": ["read"]
} }
}, },
"write": { "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 };