From 98b5faf08884508514dcc1c75de125592b4aad51 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 8 Apr 2026 22:17:33 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8C=88=20Sync=202026-04-08=2022:17:33?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- luci-app-nikki/Makefile | 2 +- .../luci-static/resources/view/nikki/app.js | 2 +- .../luci-static/resources/view/nikki/log.js | 29 +- luci-app-nikki/po/ru/nikki.po | 442 +++++++++-------- luci-app-nikki/po/templates/nikki.pot | 442 +++++++++-------- luci-app-nikki/po/zh_Hans/nikki.po | 450 ++++++++++-------- luci-app-nikki/po/zh_Hant/nikki.po | 450 ++++++++++-------- .../luasrc/controller/passwall.lua | 21 + .../model/cbi/passwall/client/global.lua | 21 + .../model/cbi/passwall/client/rule_list.lua | 2 +- .../view/passwall/global/adblock_refresh.htm | 34 ++ luci-app-passwall/po/zh-cn/passwall.po | 36 ++ .../root/usr/share/passwall/adblock.sh | 53 ++- .../root/usr/share/passwall/app.sh | 13 +- .../usr/share/passwall/socks_auto_switch.sh | 2 +- .../root/usr/share/passwall/test.sh | 2 +- .../root/usr/share/passwall/utils.sh | 1 + nikki/Makefile | 2 +- nikki/files/nikki.conf | 6 +- nikki/files/nikki.init | 59 ++- nikki/files/scripts/include.sh | 5 - nikki/files/uci-defaults/migrate.sh | 17 +- openlist2/Makefile | 4 +- 23 files changed, 1227 insertions(+), 868 deletions(-) create mode 100644 luci-app-passwall/luasrc/view/passwall/global/adblock_refresh.htm diff --git a/luci-app-nikki/Makefile b/luci-app-nikki/Makefile index 34fc839f..c4faa169 100644 --- a/luci-app-nikki/Makefile +++ b/luci-app-nikki/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_VERSION:=1.25.3 -PKG_RELEASE:=2 +PKG_RELEASE:=3 LUCI_TITLE:=LuCI Support for nikki LUCI_DEPENDS:=+luci-base +nikki diff --git a/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js b/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js index d54b26cd..b2f017b6 100644 --- a/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js +++ b/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js @@ -114,7 +114,7 @@ return view.extend({ o = s.option(form.Flag, 'scheduled_restart', _('Scheduled Restart')); o.rmempty = false; - o = s.option(form.Value, 'cron_expression', _('Cron Expression')); + o = s.option(form.Value, 'scheduled_restart_cron', _('Scheduled Restart Cron')); o.retain = true; o.rmempty = false; o.depends('scheduled_restart', '1'); diff --git a/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js b/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js index 7705a5e6..dd920a67 100644 --- a/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js +++ b/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js @@ -24,6 +24,30 @@ return view.extend({ s = m.section(form.NamedSection, 'log', 'log', _('Log')); + s.tab('log_config', _('Log Config')); + + o = s.taboption('log_config', form.Flag, 'scheduled_clear', _('Scheduled Clear')); + o.rmempty = false; + + o = s.taboption('log_config', form.Value, 'scheduled_clear_cron', _('Scheduled Clear Cron')); + o.retain = true; + o.rmempty = false; + o.depends('scheduled_clear', '1'); + + o = s.taboption('log_config', form.Value, 'scheduled_clear_size_limit', _('Scheduled Clear Size Limit')); + o.retain = true; + o.rmempty = false; + o.datatype = 'uinteger'; + o.depends('scheduled_clear', '1'); + + o = s.taboption('log_config', form.ListValue, 'scheduled_clear_size_limit_unit', _('Scheduled Clear Size Limit Unit')); + o.retain = true; + o.rmempty = false; + o.depends('scheduled_clear', '1'); + o.value('KB', 'KB'); + o.value('MB', 'MB'); + o.value('GB', 'GB'); + s.tab('app_log', _('App Log')); o = s.taboption('app_log', form.Button, 'clear_app_log'); @@ -117,8 +141,5 @@ return view.extend({ }; return m.render(); - }, - handleSaveApply: null, - handleSave: null, - handleReset: null + } }); \ No newline at end of file diff --git a/luci-app-nikki/po/ru/nikki.po b/luci-app-nikki/po/ru/nikki.po index 1db03eab..078cd2d1 100644 --- a/luci-app-nikki/po/ru/nikki.po +++ b/luci-app-nikki/po/ru/nikki.po @@ -12,16 +12,32 @@ msgstr "" msgid "API Listen" msgstr "Прослушивание API" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:116 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:129 msgid "API Secret" msgstr "Секрет API" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:120 +msgid "API TLS Cert" +msgstr "Сертификат TLS API" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:126 +msgid "API TLS ECH Key" +msgstr "Ключ ECH TLS API" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:123 +msgid "API TLS Key" +msgstr "Ключ TLS API" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:116 +msgid "API TLS Listen" +msgstr "Прослушивание TLS API" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:69 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:122 msgid "Access Control" msgstr "Контроль доступа" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:228 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:241 msgid "Adaptive Replacement Cache (ARC)" msgstr "Адаптивный кэш замещения (ARC)" @@ -38,11 +54,11 @@ msgstr "Мягкий лимит адресного пространства" msgid "All Port" 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:141 msgid "Allow Lan" msgstr "Разрешить LAN" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:269 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:282 msgid "Allow Mode" msgstr "Режим разрешения" @@ -51,7 +67,7 @@ msgstr "Режим разрешения" msgid "App Config" msgstr "Настройки приложения" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:27 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:51 msgid "App Log" msgstr "Лог приложения" @@ -59,19 +75,19 @@ msgstr "Лог приложения" msgid "App Version" msgstr "Версия приложения" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:518 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:531 msgid "Append Rule" msgstr "Добавить правило" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:449 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:462 msgid "Append Rule Provider" msgstr "Добавить список правил" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:518 msgid "Behavior" 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:281 msgid "Block Mode" msgstr "Режим блокировки" @@ -107,8 +123,8 @@ msgstr "Выбрать файл" msgid "Choose Profile" msgstr "Выбрать профиль" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:31 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:64 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:55 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:88 msgid "Clear Log" msgstr "Очистить лог" @@ -117,7 +133,7 @@ msgstr "Очистить лог" msgid "Commonly Used Port" msgstr "Часто используемые порты" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:60 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:84 msgid "Core Log" msgstr "Лог ядра" @@ -133,44 +149,40 @@ msgstr "Статус ядра" msgid "Core Version" msgstr "Версия ядра" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:117 -msgid "Cron Expression" -msgstr "Выражение Cron" - #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:99 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:165 msgid "DNS" msgstr "DNS" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:224 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:237 msgid "DNS Cache Algorithm" msgstr "Алгоритм кэша DNS" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:216 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:229 msgid "DNS Config" msgstr "Настройки DNS" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:230 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:243 msgid "DNS Listen" msgstr "Прослушивание DNS" -#: 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:253 msgid "DNS Mode" msgstr "Режим DNS" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:93 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:117 msgid "Debug Log" msgstr "Отладочный лог" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:541 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:554 msgid "Destination IP" msgstr "IP назначения" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:545 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:558 msgid "Destination IP Geo" msgstr "Гео-IP назначения" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:542 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:555 msgid "Destination Port" msgstr "Порт назначения" @@ -182,7 +194,7 @@ msgstr "TCP-порт назначения для прокси" msgid "Destination UDP Port to Proxy" msgstr "UDP-порт назначения для прокси" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:183 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:196 msgid "Device Name" msgstr "Имя устройства" @@ -190,7 +202,7 @@ msgstr "Имя устройства" msgid "Direct Mode" 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:376 msgid "Direct Nameserver Follow Policy" msgstr "Политика прямого DNS-сервера" @@ -198,22 +210,22 @@ msgstr "Политика прямого DNS-сервера" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:73 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:79 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:85 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:123 -#: 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:180 -#: 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:221 -#: 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:275 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:281 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:287 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:293 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:299 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:393 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:399 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:405 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:593 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:136 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:144 +#: 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:213 +#: 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:250 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:288 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:294 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:300 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:306 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:312 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:379 +#: 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:412 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:418 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:606 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:38 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:45 msgid "Disable" @@ -235,68 +247,68 @@ msgstr "Отключить детектор петли" msgid "Disable TCP Keep Alive" msgstr "Отключить TCP Keep-Alive" -#: 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:297 msgid "DoH Prefer HTTP/3" msgstr "Предпочитать HTTP/3 для DoH" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:316 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:536 +#: 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:549 msgid "Domain Name" msgstr "Доменное имя" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:544 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:557 msgid "Domain Name Geo" msgstr "Гео по доменному имени" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:539 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:552 msgid "Domain Name Keyword" msgstr "Ключевое слово домена" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:540 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:553 msgid "Domain Name Regex" msgstr "Регулярное выражение домена" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:537 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:550 msgid "Domain Name Suffix" msgstr "Суффикс домена" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:538 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:551 msgid "Domain Name Wildcard" msgstr "Шаблон домена" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:157 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:170 msgid "Edit Authentications" msgstr "Редактировать учётные данные" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:210 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:223 msgid "Edit DNS Hijacks" msgstr "Редактировать подмену DNS" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:261 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:274 msgid "Edit Fake-IP Filters" msgstr "Редактировать фильтры Fake-IP" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:305 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:318 msgid "Edit Hosts" msgstr "Редактировать hosts" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:385 msgid "Edit Nameserver Policies" msgstr "Редактировать политики DNS-серверов" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:324 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:337 msgid "Edit Nameservers" msgstr "Редактировать DNS-серверы" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:347 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360 msgid "Edit Proxy Server Nameserver Policies" msgstr "Редактировать политики DNS-сервера прокси" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:452 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:465 msgid "Edit Rule Providers" msgstr "Редактировать источники правил" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:521 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:534 msgid "Edit Rules" msgstr "Редактировать правила" @@ -314,34 +326,34 @@ msgstr "Редактор" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:74 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:80 #: 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:124 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:132 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:165 -#: 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:181 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:201 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:218 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:222 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:238 -#: 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:282 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:288 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:294 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:300 +#: 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:145 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:178 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:190 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:194 +#: 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:231 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:235 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:251 +#: 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:295 +#: 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:307 #: 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:332 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:355 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:367 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:326 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:345 +#: 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:380 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:390 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:394 -#: 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:406 -#: 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:460 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:529 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:594 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:602 +#: 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:403 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:407 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:413 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:419 +#: 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:473 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:542 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:607 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:615 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:33 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:77 @@ -362,11 +374,11 @@ msgstr "Истекает" msgid "External Control Config" msgstr "Настройки внешнего управления" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:272 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:285 msgid "Fake-IP Cache" msgstr "Кэш Fake-IP" -#: 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:278 msgid "Fake-IP Filter Mode" msgstr "Режим фильтрации Fake-IP" @@ -374,15 +386,15 @@ msgstr "Режим фильтрации Fake-IP" msgid "Fake-IP Ping Hijack" msgstr "Перехват ping для Fake-IP" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:246 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:259 msgid "Fake-IP Range" msgstr "Диапазон Fake-IP" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:254 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:267 msgid "Fake-IP TTL" msgstr "TTL Fake-IP" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:250 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:263 msgid "Fake-IP6 Range" msgstr "Диапазон Fake-IP6" @@ -390,15 +402,15 @@ msgstr "Диапазон Fake-IP6" msgid "Fast Reload" msgstr "Быстрая перезагрузка" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:499 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:512 msgid "File Format" msgstr "Формат файла" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:493 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:506 msgid "File Path" msgstr "Путь к файлу" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:487 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:500 msgid "File Size Limit" msgstr "Ограничение размера файла" @@ -411,15 +423,15 @@ msgstr "Файл для mixin" msgid "File:" msgstr "Файл:" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:411 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:424 msgid "Force Sniff Domain Name" 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:210 msgid "GSO" msgstr "GSO" -#: 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:216 msgid "GSO Max Size" msgstr "Макс. размер GSO" @@ -428,43 +440,43 @@ msgstr "Макс. размер GSO" msgid "General Config" msgstr "Основные настройки" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:97 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:121 msgid "Generate & Download" msgstr "Сформировать и скачать" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:572 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:585 msgid "GeoData Loader" msgstr "Загрузчик GeoData" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:566 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:579 msgid "GeoIP Format" msgstr "Формат GeoIP" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:587 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:600 msgid "GeoIP(ASN) Url" msgstr "URL GeoIP(ASN)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:584 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:597 msgid "GeoIP(DAT) Url" msgstr "URL GeoIP(DAT)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:581 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:594 msgid "GeoIP(MMDB) Url" msgstr "URL GeoIP(MMDB)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:578 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:591 msgid "GeoSite Url" msgstr "URL GeoSite" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:590 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:603 msgid "GeoX Auto Update" msgstr "Автообновление GeoX" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:564 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:577 msgid "GeoX Config" msgstr "Настройки GeoX" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:596 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:609 msgid "GeoX Update Interval" msgstr "Интервал обновления GeoX" @@ -480,7 +492,7 @@ msgstr "Предоставить доступ к процедурам nikki" msgid "Group" msgstr "Группа" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:134 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:147 msgid "HTTP Port" msgstr "Порт HTTP" @@ -512,11 +524,11 @@ msgstr "Перехват DNS IPv6" msgid "IPv6 Proxy" msgstr "Прокси IPv6" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:418 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:431 msgid "Ignore Sniff Domain Name" msgstr "Игнорировать определение доменов" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:126 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:139 msgid "Inbound Config" msgstr "Настройки входящих" @@ -528,7 +540,7 @@ msgstr "Входящий интерфейс" msgid "LAN Proxy" msgstr "LAN-прокси" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:227 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:240 msgid "Least Recently Used (LRU)" msgstr "Наименее недавно использованный (LRU)" @@ -541,11 +553,15 @@ msgstr "Локально" msgid "Log" msgstr "Журнал" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:27 +msgid "Log Config" +msgstr "Настройки журнала" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:30 msgid "Log Level" 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:206 msgid "MTU" msgstr "MTU" @@ -553,13 +569,13 @@ msgstr "MTU" msgid "Match Process" msgstr "Сопоставление процесса" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:358 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:383 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:547 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:371 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:396 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:560 msgid "Matcher" msgstr "Сопоставитель" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:576 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:589 msgid "Memory Conservative Loader" msgstr "Загрузчик с экономией памяти" @@ -567,7 +583,7 @@ msgstr "Загрузчик с экономией памяти" msgid "Misc" msgstr "Прочее" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:142 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:155 msgid "Mixed Port" msgstr "Смешанный порт" @@ -575,7 +591,7 @@ msgstr "Смешанный порт" msgid "Mixin Config" msgstr "Настройки mixin" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:600 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:613 msgid "Mixin File Content" msgstr "Содержимое файла mixin" @@ -587,13 +603,13 @@ msgstr "Опции mixin" msgid "Mode" msgstr "Режим" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:466 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:479 msgid "Name" msgstr "Имя" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:342 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:361 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:386 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:355 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:374 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:399 msgid "Nameserver" msgstr "DNS-сервер" @@ -602,12 +618,12 @@ msgstr "DNS-сервер" msgid "Nikki" msgstr "Nikki" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:558 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:571 msgid "No Resolve" msgstr "Не выполнять разрешение" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:480 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:551 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:493 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:564 msgid "Node" msgstr "Узел" @@ -631,59 +647,59 @@ msgstr "Открыть панель" msgid "Outbound Interface" msgstr "Исходящий интерфейс" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:154 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:167 msgid "Overwrite Authentication" msgstr "Заменить учётные данные" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:207 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:220 msgid "Overwrite DNS Hijack" msgstr "Переопределить перехват DNS" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:444 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:457 msgid "Overwrite Destination" msgstr "Переопределить назначение" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:258 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:271 msgid "Overwrite Fake-IP Filter" msgstr "Переопределить фильтр Fake-IP" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:408 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:421 msgid "Overwrite Force Sniff Domain Name" msgstr "Переопределить принудительное определение доменов" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:302 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:315 msgid "Overwrite Hosts" msgstr "Переопределить hosts" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:415 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:428 msgid "Overwrite Ignore Sniff Domain Name" msgstr "Переопределить игнорирование определения доменов" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:321 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:334 msgid "Overwrite Nameserver" msgstr "Переопределить DNS-сервер" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:369 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:382 msgid "Overwrite Nameserver Policy" msgstr "Переопределить политику DNS-серверов" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:344 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:357 msgid "Overwrite Proxy Server Nameserver Policy" msgstr "Перезаписать политику DNS-сервера прокси" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:422 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:435 msgid "Overwrite Sniff By Protocol" 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:184 msgid "Password" msgstr "Пароль" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:602 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:615 msgid "Please go to the editor tab to edit the file for mixin" msgstr "Перейдите на вкладку редактора, чтобы изменить файл mixin" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:441 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:454 msgid "Port" msgstr "Порт" @@ -691,7 +707,7 @@ msgstr "Порт" msgid "Prefer" msgstr "Предпочтение" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:543 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:556 msgid "Process Name" msgstr "Имя процесса" @@ -704,7 +720,7 @@ msgstr "Профиль" msgid "Profile for Startup" msgstr "Профиль для автозапуска" -#: 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:448 msgid "Protocol" msgstr "Протокол" @@ -731,7 +747,7 @@ msgstr "Настройки RLIMIT" msgid "Redirect Mode" msgstr "Режим перенаправления" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:146 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:159 msgid "Redirect Port" msgstr "Порт перенаправления" @@ -751,7 +767,7 @@ msgstr "Зарезервированные IP" msgid "Reserved IP6" msgstr "Зарезервированные IPv6" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:278 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:291 msgid "Respect Rules" msgstr "Учитывать правила" @@ -763,12 +779,12 @@ msgstr "Перезапустить сервис" msgid "Router Proxy" msgstr "Прокси роутера" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:447 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:460 msgid "Rule Config" msgstr "Настройки правил" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:43 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:270 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:283 msgid "Rule Mode" msgstr "Режим правил" @@ -776,7 +792,7 @@ msgstr "Режим правил" msgid "Rule Provider:" msgstr "Провайдер правил:" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:535 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:548 msgid "Rule Set" msgstr "Набор правил" @@ -784,7 +800,7 @@ msgstr "Набор правил" msgid "Running" msgstr "Запущен" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:138 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:151 msgid "SOCKS Port" msgstr "Порт SOCKS" @@ -792,16 +808,36 @@ msgstr "Порт SOCKS" msgid "Safe Paths" msgstr "Разрешённые пути" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:120 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:133 msgid "Save Proxy Selection" msgstr "Сохранять выбор прокси" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:29 +msgid "Scheduled Clear" +msgstr "Запланированная очистка" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:32 +msgid "Scheduled Clear Cron" +msgstr "Cron-выражение" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:37 +msgid "Scheduled Clear Size Limit" +msgstr "Ограничение размера журнала" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:43 +msgid "Scheduled Clear Size Limit Unit" +msgstr "Единица ограничения размера журнала" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:114 msgid "Scheduled Restart" msgstr "Запланированный перезапуск" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:54 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:87 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:117 +msgid "Scheduled Restart Cron" +msgstr "Cron-выражение" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:78 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:111 msgid "Scroll To Bottom" msgstr "Прокрутить вниз" @@ -809,23 +845,23 @@ msgstr "Прокрутить вниз" msgid "Skip System IPv6 Check" msgstr "Пропустить проверку системного IPv6" -#: 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:438 msgid "Sniff By Protocol" msgstr "Определять по протоколу" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:402 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:415 msgid "Sniff Pure IP" msgstr "Определять чистые IP" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:396 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:409 msgid "Sniff Redir-Host" msgstr "Определять Redir-Host" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:388 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:401 msgid "Sniffer Config" msgstr "Настройки сниффера" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:186 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:199 msgid "Stack" msgstr "Стек" @@ -837,7 +873,7 @@ msgstr "Жёсткий лимит размера стека" msgid "Stack Size Soft Limit" msgstr "Мягкий лимит размера стека" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:575 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:588 msgid "Standard Loader" msgstr "Стандартный загрузчик" @@ -895,11 +931,11 @@ msgstr "Режим TCP" msgid "TPROXY Mode" msgstr "Режим TPROXY" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:150 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:163 msgid "TPROXY Port" msgstr "Порт TPROXY" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:175 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:188 msgid "TUN Config" msgstr "Настройки TUN" @@ -928,9 +964,9 @@ msgstr "Всего" msgid "Transparent Proxy with Mihomo on OpenWrt." msgstr "Прозрачный прокси Mihomo для OpenWrt." -#: 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:469 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:533 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:348 +#: 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:546 msgid "Type" msgstr "Тип" @@ -978,45 +1014,49 @@ msgstr "Без ограничений" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:105 #: 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:118 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:122 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:130 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:136 -#: 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:144 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:148 -#: 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:179 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:184 -#: 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:195 -#: 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:205 -#: 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:226 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:232 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:236 -#: 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:248 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:252 -#: 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:267 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:274 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:121 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:124 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:127 +#: 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:135 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:143 +#: 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:153 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:157 +#: 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:165 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:192 +#: 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:201 +#: 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:212 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:218 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:233 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:239 +#: 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:249 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:255 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:261 +#: 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:269 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:280 -#: 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:292 -#: 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:365 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:392 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:398 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:404 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:568 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:574 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:579 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:582 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:585 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:588 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:287 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:293 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:299 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:305 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:311 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:378 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:405 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:411 +#: 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:581 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:587 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:592 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:595 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:598 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:601 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:605 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:611 msgid "Unmodified" msgstr "Без изменений" @@ -1032,7 +1072,7 @@ msgstr "Обновлено" msgid "Update Dashboard" msgstr "Обновить панель" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:512 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:525 msgid "Update Interval" msgstr "Интервал обновления" @@ -1040,15 +1080,15 @@ msgstr "Интервал обновления" msgid "Upload Profile" msgstr "Загрузить профиль" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:475 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:488 msgid "Url" msgstr "URL" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:296 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:309 msgid "Use Hosts" msgstr "Использовать hosts" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:290 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:303 msgid "Use System Hosts" msgstr "Использовать системный hosts" @@ -1064,7 +1104,7 @@ msgstr "Пользователь" msgid "User Agent" msgstr "User-Agent" -#: 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:181 msgid "Username" msgstr "Имя пользователя" diff --git a/luci-app-nikki/po/templates/nikki.pot b/luci-app-nikki/po/templates/nikki.pot index b63ec687..734bc7bd 100644 --- a/luci-app-nikki/po/templates/nikki.pot +++ b/luci-app-nikki/po/templates/nikki.pot @@ -5,16 +5,32 @@ msgstr "Content-Type: text/plain; charset=UTF-8" msgid "API Listen" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:116 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:129 msgid "API Secret" msgstr "" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:120 +msgid "API TLS Cert" +msgstr "" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:126 +msgid "API TLS ECH Key" +msgstr "" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:123 +msgid "API TLS Key" +msgstr "" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:116 +msgid "API TLS Listen" +msgstr "" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:69 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:122 msgid "Access Control" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:228 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:241 msgid "Adaptive Replacement Cache (ARC)" msgstr "" @@ -31,11 +47,11 @@ msgstr "" msgid "All Port" 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:141 msgid "Allow Lan" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:269 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:282 msgid "Allow Mode" msgstr "" @@ -44,7 +60,7 @@ msgstr "" msgid "App Config" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:27 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:51 msgid "App Log" msgstr "" @@ -52,19 +68,19 @@ msgstr "" msgid "App Version" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:518 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:531 msgid "Append Rule" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:449 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:462 msgid "Append Rule Provider" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:518 msgid "Behavior" 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:281 msgid "Block Mode" msgstr "" @@ -100,8 +116,8 @@ msgstr "" msgid "Choose Profile" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:31 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:64 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:55 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:88 msgid "Clear Log" msgstr "" @@ -110,7 +126,7 @@ msgstr "" msgid "Commonly Used Port" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:60 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:84 msgid "Core Log" msgstr "" @@ -126,44 +142,40 @@ msgstr "" msgid "Core Version" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:117 -msgid "Cron Expression" -msgstr "" - #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:99 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:165 msgid "DNS" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:224 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:237 msgid "DNS Cache Algorithm" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:216 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:229 msgid "DNS Config" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:230 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:243 msgid "DNS Listen" 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:253 msgid "DNS Mode" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:93 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:117 msgid "Debug Log" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:541 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:554 msgid "Destination IP" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:545 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:558 msgid "Destination IP Geo" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:542 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:555 msgid "Destination Port" msgstr "" @@ -175,7 +187,7 @@ msgstr "" msgid "Destination UDP Port to Proxy" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:183 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:196 msgid "Device Name" msgstr "" @@ -183,7 +195,7 @@ msgstr "" msgid "Direct Mode" 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:376 msgid "Direct Nameserver Follow Policy" msgstr "" @@ -191,22 +203,22 @@ msgstr "" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:73 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:79 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:85 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:123 -#: 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:180 -#: 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:221 -#: 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:275 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:281 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:287 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:293 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:299 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:393 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:399 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:405 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:593 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:136 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:144 +#: 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:213 +#: 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:250 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:288 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:294 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:300 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:306 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:312 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:379 +#: 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:412 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:418 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:606 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:38 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:45 msgid "Disable" @@ -228,68 +240,68 @@ msgstr "" msgid "Disable TCP Keep Alive" 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:297 msgid "DoH Prefer HTTP/3" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:316 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:536 +#: 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:549 msgid "Domain Name" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:544 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:557 msgid "Domain Name Geo" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:539 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:552 msgid "Domain Name Keyword" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:540 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:553 msgid "Domain Name Regex" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:537 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:550 msgid "Domain Name Suffix" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:538 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:551 msgid "Domain Name Wildcard" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:157 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:170 msgid "Edit Authentications" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:210 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:223 msgid "Edit DNS Hijacks" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:261 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:274 msgid "Edit Fake-IP Filters" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:305 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:318 msgid "Edit Hosts" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:385 msgid "Edit Nameserver Policies" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:324 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:337 msgid "Edit Nameservers" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:347 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360 msgid "Edit Proxy Server Nameserver Policies" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:452 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:465 msgid "Edit Rule Providers" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:521 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:534 msgid "Edit Rules" msgstr "" @@ -307,34 +319,34 @@ msgstr "" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:74 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:80 #: 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:124 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:132 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:165 -#: 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:181 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:201 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:218 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:222 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:238 -#: 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:282 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:288 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:294 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:300 +#: 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:145 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:178 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:190 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:194 +#: 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:231 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:235 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:251 +#: 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:295 +#: 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:307 #: 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:332 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:355 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:367 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:326 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:345 +#: 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:380 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:390 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:394 -#: 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:406 -#: 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:460 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:529 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:594 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:602 +#: 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:403 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:407 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:413 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:419 +#: 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:473 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:542 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:607 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:615 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:33 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:77 @@ -355,11 +367,11 @@ msgstr "" msgid "External Control Config" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:272 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:285 msgid "Fake-IP Cache" 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:278 msgid "Fake-IP Filter Mode" msgstr "" @@ -367,15 +379,15 @@ msgstr "" msgid "Fake-IP Ping Hijack" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:246 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:259 msgid "Fake-IP Range" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:254 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:267 msgid "Fake-IP TTL" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:250 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:263 msgid "Fake-IP6 Range" msgstr "" @@ -383,15 +395,15 @@ msgstr "" msgid "Fast Reload" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:499 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:512 msgid "File Format" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:493 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:506 msgid "File Path" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:487 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:500 msgid "File Size Limit" msgstr "" @@ -404,15 +416,15 @@ msgstr "" msgid "File:" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:411 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:424 msgid "Force Sniff Domain Name" 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:210 msgid "GSO" 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:216 msgid "GSO Max Size" msgstr "" @@ -421,43 +433,43 @@ msgstr "" msgid "General Config" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:97 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:121 msgid "Generate & Download" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:572 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:585 msgid "GeoData Loader" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:566 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:579 msgid "GeoIP Format" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:587 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:600 msgid "GeoIP(ASN) Url" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:584 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:597 msgid "GeoIP(DAT) Url" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:581 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:594 msgid "GeoIP(MMDB) Url" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:578 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:591 msgid "GeoSite Url" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:590 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:603 msgid "GeoX Auto Update" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:564 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:577 msgid "GeoX Config" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:596 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:609 msgid "GeoX Update Interval" msgstr "" @@ -473,7 +485,7 @@ msgstr "" msgid "Group" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:134 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:147 msgid "HTTP Port" msgstr "" @@ -505,11 +517,11 @@ msgstr "" msgid "IPv6 Proxy" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:418 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:431 msgid "Ignore Sniff Domain Name" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:126 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:139 msgid "Inbound Config" msgstr "" @@ -521,7 +533,7 @@ msgstr "" msgid "LAN Proxy" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:227 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:240 msgid "Least Recently Used (LRU)" msgstr "" @@ -534,11 +546,15 @@ msgstr "" msgid "Log" msgstr "" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:27 +msgid "Log Config" +msgstr "" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:30 msgid "Log Level" 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:206 msgid "MTU" msgstr "" @@ -546,13 +562,13 @@ msgstr "" msgid "Match Process" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:358 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:383 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:547 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:371 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:396 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:560 msgid "Matcher" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:576 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:589 msgid "Memory Conservative Loader" msgstr "" @@ -560,7 +576,7 @@ msgstr "" msgid "Misc" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:142 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:155 msgid "Mixed Port" msgstr "" @@ -568,7 +584,7 @@ msgstr "" msgid "Mixin Config" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:600 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:613 msgid "Mixin File Content" msgstr "" @@ -580,13 +596,13 @@ msgstr "" msgid "Mode" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:466 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:479 msgid "Name" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:342 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:361 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:386 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:355 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:374 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:399 msgid "Nameserver" msgstr "" @@ -595,12 +611,12 @@ msgstr "" msgid "Nikki" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:558 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:571 msgid "No Resolve" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:480 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:551 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:493 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:564 msgid "Node" msgstr "" @@ -624,59 +640,59 @@ msgstr "" msgid "Outbound Interface" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:154 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:167 msgid "Overwrite Authentication" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:207 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:220 msgid "Overwrite DNS Hijack" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:444 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:457 msgid "Overwrite Destination" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:258 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:271 msgid "Overwrite Fake-IP Filter" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:408 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:421 msgid "Overwrite Force Sniff Domain Name" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:302 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:315 msgid "Overwrite Hosts" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:415 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:428 msgid "Overwrite Ignore Sniff Domain Name" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:321 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:334 msgid "Overwrite Nameserver" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:369 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:382 msgid "Overwrite Nameserver Policy" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:344 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:357 msgid "Overwrite Proxy Server Nameserver Policy" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:422 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:435 msgid "Overwrite Sniff By Protocol" 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:184 msgid "Password" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:602 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:615 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:441 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:454 msgid "Port" msgstr "" @@ -684,7 +700,7 @@ msgstr "" msgid "Prefer" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:543 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:556 msgid "Process Name" msgstr "" @@ -697,7 +713,7 @@ msgstr "" msgid "Profile for Startup" msgstr "" -#: 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:448 msgid "Protocol" msgstr "" @@ -724,7 +740,7 @@ msgstr "" msgid "Redirect Mode" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:146 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:159 msgid "Redirect Port" msgstr "" @@ -744,7 +760,7 @@ msgstr "" msgid "Reserved IP6" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:278 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:291 msgid "Respect Rules" msgstr "" @@ -756,12 +772,12 @@ msgstr "" msgid "Router Proxy" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:447 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:460 msgid "Rule Config" msgstr "" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:43 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:270 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:283 msgid "Rule Mode" msgstr "" @@ -769,7 +785,7 @@ msgstr "" msgid "Rule Provider:" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:535 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:548 msgid "Rule Set" msgstr "" @@ -777,7 +793,7 @@ msgstr "" msgid "Running" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:138 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:151 msgid "SOCKS Port" msgstr "" @@ -785,16 +801,36 @@ msgstr "" msgid "Safe Paths" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:120 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:133 msgid "Save Proxy Selection" msgstr "" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:29 +msgid "Scheduled Clear" +msgstr "" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:32 +msgid "Scheduled Clear Cron" +msgstr "" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:37 +msgid "Scheduled Clear Size Limit" +msgstr "" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:43 +msgid "Scheduled Clear Size Limit Unit" +msgstr "" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:114 msgid "Scheduled Restart" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:54 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:87 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:117 +msgid "Scheduled Restart Cron" +msgstr "" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:78 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:111 msgid "Scroll To Bottom" msgstr "" @@ -802,23 +838,23 @@ msgstr "" msgid "Skip System IPv6 Check" msgstr "" -#: 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:438 msgid "Sniff By Protocol" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:402 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:415 msgid "Sniff Pure IP" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:396 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:409 msgid "Sniff Redir-Host" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:388 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:401 msgid "Sniffer Config" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:186 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:199 msgid "Stack" msgstr "" @@ -830,7 +866,7 @@ msgstr "" msgid "Stack Size Soft Limit" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:575 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:588 msgid "Standard Loader" msgstr "" @@ -888,11 +924,11 @@ msgstr "" msgid "TPROXY Mode" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:150 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:163 msgid "TPROXY Port" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:175 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:188 msgid "TUN Config" msgstr "" @@ -921,9 +957,9 @@ msgstr "" msgid "Transparent Proxy with Mihomo on OpenWrt." 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:469 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:533 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:348 +#: 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:546 msgid "Type" msgstr "" @@ -971,45 +1007,49 @@ msgstr "" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:105 #: 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:118 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:122 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:130 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:136 -#: 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:144 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:148 -#: 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:179 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:184 -#: 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:195 -#: 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:205 -#: 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:226 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:232 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:236 -#: 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:248 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:252 -#: 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:267 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:274 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:121 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:124 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:127 +#: 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:135 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:143 +#: 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:153 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:157 +#: 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:165 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:192 +#: 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:201 +#: 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:212 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:218 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:233 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:239 +#: 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:249 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:255 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:261 +#: 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:269 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:280 -#: 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:292 -#: 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:365 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:392 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:398 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:404 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:568 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:574 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:579 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:582 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:585 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:588 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:287 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:293 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:299 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:305 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:311 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:378 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:405 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:411 +#: 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:581 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:587 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:592 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:595 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:598 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:601 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:605 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:611 msgid "Unmodified" msgstr "" @@ -1025,7 +1065,7 @@ msgstr "" msgid "Update Dashboard" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:512 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:525 msgid "Update Interval" msgstr "" @@ -1033,15 +1073,15 @@ msgstr "" msgid "Upload Profile" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:475 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:488 msgid "Url" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:296 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:309 msgid "Use Hosts" msgstr "" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:290 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:303 msgid "Use System Hosts" msgstr "" @@ -1057,7 +1097,7 @@ msgstr "" msgid "User Agent" 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:181 msgid "Username" msgstr "" diff --git a/luci-app-nikki/po/zh_Hans/nikki.po b/luci-app-nikki/po/zh_Hans/nikki.po index 86311743..9d263433 100644 --- a/luci-app-nikki/po/zh_Hans/nikki.po +++ b/luci-app-nikki/po/zh_Hans/nikki.po @@ -12,16 +12,32 @@ msgstr "" msgid "API Listen" msgstr "API 监听" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:116 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:129 msgid "API Secret" -msgstr "API 密钥" +msgstr "API 密码" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:120 +msgid "API TLS Cert" +msgstr "API TLS 证书" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:126 +msgid "API TLS ECH Key" +msgstr "APL TLS ECH 密钥" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:123 +msgid "API TLS Key" +msgstr "API TLS 密钥" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:116 +msgid "API TLS Listen" +msgstr "API TLS 监听" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:69 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:122 msgid "Access Control" msgstr "访问控制" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:228 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:241 msgid "Adaptive Replacement Cache (ARC)" msgstr "自适应替换缓存(ARC)" @@ -38,11 +54,11 @@ msgstr "地址空间大小软限制" msgid "All Port" 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:141 msgid "Allow Lan" msgstr "允许局域网访问" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:269 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:282 msgid "Allow Mode" msgstr "白名单模式" @@ -51,7 +67,7 @@ msgstr "白名单模式" msgid "App Config" msgstr "插件配置" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:27 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:51 msgid "App Log" msgstr "插件日志" @@ -59,19 +75,19 @@ msgstr "插件日志" msgid "App Version" msgstr "插件版本" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:518 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:531 msgid "Append Rule" msgstr "追加规则" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:449 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:462 msgid "Append Rule Provider" msgstr "追加规则提供者" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:518 msgid "Behavior" 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:281 msgid "Block Mode" msgstr "黑名单模式" @@ -107,8 +123,8 @@ msgstr "选择文件" msgid "Choose Profile" msgstr "选择配置文件" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:31 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:64 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:55 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:88 msgid "Clear Log" msgstr "清空日志" @@ -117,7 +133,7 @@ msgstr "清空日志" msgid "Commonly Used Port" msgstr "常用端口" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:60 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:84 msgid "Core Log" msgstr "核心日志" @@ -133,44 +149,40 @@ msgstr "核心状态" msgid "Core Version" msgstr "核心版本" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:117 -msgid "Cron Expression" -msgstr "Cron 表达式" - #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:99 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:165 msgid "DNS" msgstr "DNS" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:224 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:237 msgid "DNS Cache Algorithm" msgstr "DNS 缓存算法" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:216 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:229 msgid "DNS Config" msgstr "DNS 配置" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:230 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:243 msgid "DNS Listen" msgstr "DNS 监听" -#: 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:253 msgid "DNS Mode" msgstr "DNS 模式" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:93 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:117 msgid "Debug Log" msgstr "调试日志" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:541 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:554 msgid "Destination IP" msgstr "目标 IP" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:545 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:558 msgid "Destination IP Geo" msgstr "目标 IP(Geo)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:542 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:555 msgid "Destination Port" msgstr "目标端口" @@ -182,7 +194,7 @@ msgstr "要代理的 TCP 目标端口" msgid "Destination UDP Port to Proxy" msgstr "要代理的 UDP 目标端口" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:183 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:196 msgid "Device Name" msgstr "设备名称" @@ -190,7 +202,7 @@ msgstr "设备名称" msgid "Direct Mode" 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:376 msgid "Direct Nameserver Follow Policy" msgstr "Direct Nameserver 跟随查询策略" @@ -198,22 +210,22 @@ msgstr "Direct Nameserver 跟随查询策略" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:73 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:79 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:85 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:123 -#: 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:180 -#: 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:221 -#: 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:275 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:281 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:287 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:293 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:299 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:393 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:399 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:405 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:593 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:136 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:144 +#: 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:213 +#: 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:250 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:288 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:294 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:300 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:306 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:312 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:379 +#: 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:412 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:418 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:606 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:38 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:45 msgid "Disable" @@ -235,68 +247,68 @@ msgstr "禁用回环检测" msgid "Disable TCP Keep Alive" msgstr "禁用 TCP Keep Alive" -#: 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:297 msgid "DoH Prefer HTTP/3" msgstr "DoH 优先 HTTP/3" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:316 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:536 +#: 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:549 msgid "Domain Name" msgstr "域名" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:544 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:557 msgid "Domain Name Geo" msgstr "域名(Geo)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:539 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:552 msgid "Domain Name Keyword" msgstr "域名(关键字)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:540 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:553 msgid "Domain Name Regex" msgstr "域名(正则表达式)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:537 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:550 msgid "Domain Name Suffix" msgstr "域名(后缀)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:538 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:551 msgid "Domain Name Wildcard" msgstr "域名(通配符)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:157 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:170 msgid "Edit Authentications" msgstr "编辑身份验证" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:210 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:223 msgid "Edit DNS Hijacks" msgstr "编辑 DNS 劫持" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:261 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:274 msgid "Edit Fake-IP Filters" msgstr "编辑 Fake-IP 过滤列表" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:305 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:318 msgid "Edit Hosts" msgstr "编辑 Hosts" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:385 msgid "Edit Nameserver Policies" msgstr "编辑 DNS 服务器查询策略" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:324 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:337 msgid "Edit Nameservers" msgstr "编辑 DNS 服务器" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:347 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360 msgid "Edit Proxy Server Nameserver Policies" msgstr "编辑 DNS 服务器查询策略(节点用)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:452 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:465 msgid "Edit Rule Providers" msgstr "编辑规则提供者" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:521 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:534 msgid "Edit Rules" msgstr "编辑规则" @@ -314,34 +326,34 @@ msgstr "编辑器" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:74 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:80 #: 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:124 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:132 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:165 -#: 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:181 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:201 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:218 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:222 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:238 -#: 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:282 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:288 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:294 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:300 +#: 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:145 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:178 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:190 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:194 +#: 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:231 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:235 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:251 +#: 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:295 +#: 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:307 #: 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:332 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:355 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:367 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:326 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:345 +#: 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:380 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:390 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:394 -#: 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:406 -#: 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:460 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:529 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:594 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:602 +#: 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:403 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:407 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:413 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:419 +#: 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:473 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:542 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:607 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:615 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:33 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:77 @@ -362,11 +374,11 @@ msgstr "到期时间" msgid "External Control Config" msgstr "外部控制配置" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:272 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:285 msgid "Fake-IP Cache" msgstr "Fake-IP 缓存" -#: 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:278 msgid "Fake-IP Filter Mode" msgstr "Fake-IP 过滤模式" @@ -374,15 +386,15 @@ msgstr "Fake-IP 过滤模式" msgid "Fake-IP Ping Hijack" msgstr "Fake-IP Ping 劫持" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:246 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:259 msgid "Fake-IP Range" msgstr "Fake-IP 范围" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:254 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:267 msgid "Fake-IP TTL" msgstr "Fake-IP TTL" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:250 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:263 msgid "Fake-IP6 Range" msgstr "Fake-IP6 范围" @@ -390,15 +402,15 @@ msgstr "Fake-IP6 范围" msgid "Fast Reload" msgstr "快速重载" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:499 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:512 msgid "File Format" msgstr "文件格式" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:493 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:506 msgid "File Path" msgstr "文件路径" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:487 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:500 msgid "File Size Limit" msgstr "文件大小限制" @@ -411,15 +423,15 @@ msgstr "用于混入的文件" msgid "File:" msgstr "文件:" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:411 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:424 msgid "Force Sniff Domain Name" 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:210 msgid "GSO" 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:216 msgid "GSO Max Size" msgstr "分段最大长度" @@ -428,43 +440,43 @@ msgstr "分段最大长度" msgid "General Config" msgstr "全局配置" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:97 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:121 msgid "Generate & Download" msgstr "生成并下载" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:572 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:585 msgid "GeoData Loader" msgstr "GeoData 加载器" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:566 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:579 msgid "GeoIP Format" msgstr "GeoIP 格式" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:587 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:600 msgid "GeoIP(ASN) Url" msgstr "GeoIP(ASN) 下载地址" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:584 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:597 msgid "GeoIP(DAT) Url" msgstr "GeoIP(DAT) 下载地址" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:581 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:594 msgid "GeoIP(MMDB) Url" msgstr "GeoIP(MMDB) 下载地址" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:578 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:591 msgid "GeoSite Url" msgstr "GeoSite 下载地址" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:590 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:603 msgid "GeoX Auto Update" msgstr "定时更新GeoX文件" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:564 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:577 msgid "GeoX Config" msgstr "GeoX 配置" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:596 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:609 msgid "GeoX Update Interval" msgstr "GeoX 文件更新间隔" @@ -480,7 +492,7 @@ msgstr "授予访问 nikki 程序的权限" msgid "Group" msgstr "用户组" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:134 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:147 msgid "HTTP Port" msgstr "HTTP 端口" @@ -512,11 +524,11 @@ msgstr "IPv6 DNS 劫持" msgid "IPv6 Proxy" msgstr "IPv6 代理" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:418 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:431 msgid "Ignore Sniff Domain Name" msgstr "忽略嗅探的域名" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:126 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:139 msgid "Inbound Config" msgstr "入站配置" @@ -528,7 +540,7 @@ msgstr "入站接口" msgid "LAN Proxy" msgstr "局域网代理" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:227 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:240 msgid "Least Recently Used (LRU)" msgstr "最近最少使用(LRU)" @@ -541,11 +553,15 @@ msgstr "本地" msgid "Log" msgstr "日志" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:27 +msgid "Log Config" +msgstr "日志配置" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:30 msgid "Log Level" 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:206 msgid "MTU" msgstr "最大传输单元" @@ -553,13 +569,13 @@ msgstr "最大传输单元" msgid "Match Process" msgstr "匹配进程" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:358 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:383 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:547 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:371 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:396 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:560 msgid "Matcher" msgstr "匹配" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:576 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:589 msgid "Memory Conservative Loader" msgstr "为内存受限设备优化的加载器" @@ -567,7 +583,7 @@ msgstr "为内存受限设备优化的加载器" msgid "Misc" msgstr "杂项" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:142 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:155 msgid "Mixed Port" msgstr "混合端口" @@ -575,7 +591,7 @@ msgstr "混合端口" msgid "Mixin Config" msgstr "混入配置" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:600 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:613 msgid "Mixin File Content" msgstr "混入文件内容" @@ -587,13 +603,13 @@ msgstr "混入选项" msgid "Mode" msgstr "模式" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:466 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:479 msgid "Name" msgstr "名称" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:342 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:361 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:386 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:355 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:374 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:399 msgid "Nameserver" msgstr "DNS 服务器" @@ -602,12 +618,12 @@ msgstr "DNS 服务器" msgid "Nikki" msgstr "Nikki" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:558 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:571 msgid "No Resolve" msgstr "不解析" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:480 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:551 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:493 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:564 msgid "Node" msgstr "节点" @@ -631,59 +647,59 @@ msgstr "打开面板" msgid "Outbound Interface" msgstr "出站接口" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:154 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:167 msgid "Overwrite Authentication" msgstr "覆盖身份验证" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:207 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:220 msgid "Overwrite DNS Hijack" msgstr "覆盖 DNS 劫持" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:444 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:457 msgid "Overwrite Destination" msgstr "将嗅探结果作为连接目标" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:258 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:271 msgid "Overwrite Fake-IP Filter" msgstr "覆盖 Fake-IP 过滤列表" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:408 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:421 msgid "Overwrite Force Sniff Domain Name" msgstr "覆盖强制嗅探的域名" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:302 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:315 msgid "Overwrite Hosts" msgstr "覆盖 Hosts" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:415 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:428 msgid "Overwrite Ignore Sniff Domain Name" msgstr "覆盖忽略嗅探的域名" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:321 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:334 msgid "Overwrite Nameserver" msgstr "覆盖 DNS 服务器" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:369 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:382 msgid "Overwrite Nameserver Policy" msgstr "覆盖 DNS 服务器查询策略" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:344 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:357 msgid "Overwrite Proxy Server Nameserver Policy" msgstr "覆盖 DNS 服务器查询策略(节点用)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:422 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:435 msgid "Overwrite Sniff By Protocol" 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:184 msgid "Password" msgstr "密码" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:602 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:615 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:441 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:454 msgid "Port" msgstr "端口" @@ -691,7 +707,7 @@ msgstr "端口" msgid "Prefer" msgstr "优先" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:543 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:556 msgid "Process Name" msgstr "进程名" @@ -704,7 +720,7 @@ msgstr "配置文件" msgid "Profile for Startup" msgstr "用于启动的配置文件" -#: 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:448 msgid "Protocol" msgstr "协议" @@ -731,7 +747,7 @@ msgstr "资源限制配置" msgid "Redirect Mode" msgstr "Redirect 模式" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:146 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:159 msgid "Redirect Port" msgstr "Redirect 端口" @@ -751,7 +767,7 @@ msgstr "IPv4 保留地址" msgid "Reserved IP6" msgstr "IPv6 保留地址" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:278 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:291 msgid "Respect Rules" msgstr "遵循分流规则" @@ -763,12 +779,12 @@ msgstr "重启服务" msgid "Router Proxy" msgstr "路由器代理" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:447 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:460 msgid "Rule Config" msgstr "规则配置" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:43 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:270 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:283 msgid "Rule Mode" msgstr "规则模式" @@ -776,7 +792,7 @@ msgstr "规则模式" msgid "Rule Provider:" msgstr "规则提供者:" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:535 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:548 msgid "Rule Set" msgstr "规则集" @@ -784,7 +800,7 @@ msgstr "规则集" msgid "Running" msgstr "运行中" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:138 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:151 msgid "SOCKS Port" msgstr "SOCKS 端口" @@ -792,16 +808,36 @@ msgstr "SOCKS 端口" msgid "Safe Paths" msgstr "安全路径" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:120 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:133 msgid "Save Proxy Selection" msgstr "保存节点/策略组选择" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:29 +msgid "Scheduled Clear" +msgstr "定时清除" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:32 +msgid "Scheduled Clear Cron" +msgstr "Cron 表达式" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:37 +msgid "Scheduled Clear Size Limit" +msgstr "日志大小上限" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:43 +msgid "Scheduled Clear Size Limit Unit" +msgstr "日志大小上限单位" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:114 msgid "Scheduled Restart" msgstr "定时重启" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:54 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:87 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:117 +msgid "Scheduled Restart Cron" +msgstr "Cron 表达式" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:78 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:111 msgid "Scroll To Bottom" msgstr "滚动到底部" @@ -809,23 +845,23 @@ msgstr "滚动到底部" msgid "Skip System IPv6 Check" msgstr "跳过系统 IPv6 检查" -#: 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:438 msgid "Sniff By Protocol" msgstr "按协议嗅探" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:402 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:415 msgid "Sniff Pure IP" msgstr "嗅探纯 IP 连接" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:396 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:409 msgid "Sniff Redir-Host" msgstr "嗅探 Redir-Host 流量" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:388 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:401 msgid "Sniffer Config" msgstr "嗅探器配置" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:186 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:199 msgid "Stack" msgstr "栈" @@ -837,7 +873,7 @@ msgstr "栈大小硬限制" msgid "Stack Size Soft Limit" msgstr "栈大小软限制" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:575 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:588 msgid "Standard Loader" msgstr "标准加载器" @@ -895,11 +931,11 @@ msgstr "TCP 模式" msgid "TPROXY Mode" msgstr "TPROXY 模式" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:150 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:163 msgid "TPROXY Port" msgstr "TPROXY 端口" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:175 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:188 msgid "TUN Config" msgstr "TUN 配置" @@ -928,9 +964,9 @@ msgstr "总量" msgid "Transparent Proxy with Mihomo on OpenWrt." msgstr "在 OpenWrt 上使用 Mihomo 进行透明代理。" -#: 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:469 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:533 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:348 +#: 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:546 msgid "Type" msgstr "类型" @@ -978,45 +1014,49 @@ msgstr "无限制" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:105 #: 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:118 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:122 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:130 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:136 -#: 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:144 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:148 -#: 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:179 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:184 -#: 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:195 -#: 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:205 -#: 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:226 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:232 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:236 -#: 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:248 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:252 -#: 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:267 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:274 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:121 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:124 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:127 +#: 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:135 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:143 +#: 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:153 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:157 +#: 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:165 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:192 +#: 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:201 +#: 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:212 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:218 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:233 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:239 +#: 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:249 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:255 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:261 +#: 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:269 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:280 -#: 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:292 -#: 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:365 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:392 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:398 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:404 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:568 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:574 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:579 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:582 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:585 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:588 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:287 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:293 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:299 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:305 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:311 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:378 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:405 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:411 +#: 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:581 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:587 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:592 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:595 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:598 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:601 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:605 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:611 msgid "Unmodified" msgstr "不修改" @@ -1032,7 +1072,7 @@ msgstr "更新时间" msgid "Update Dashboard" msgstr "更新面板" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:512 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:525 msgid "Update Interval" msgstr "更新间隔" @@ -1040,15 +1080,15 @@ msgstr "更新间隔" msgid "Upload Profile" msgstr "上传配置文件" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:475 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:488 msgid "Url" msgstr "下载地址" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:296 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:309 msgid "Use Hosts" msgstr "使用 Hosts" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:290 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:303 msgid "Use System Hosts" msgstr "使用系统的 Hosts" @@ -1064,16 +1104,10 @@ msgstr "用户" msgid "User Agent" msgstr "用户代理(UA)" -#: 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:181 msgid "Username" msgstr "用户名" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:128 msgid "procd Config" msgstr "procd 配置" - -#~ msgid "Global Client Fingerprint" -#~ msgstr "全局客户端指纹" - -#~ msgid "Random" -#~ msgstr "随机" diff --git a/luci-app-nikki/po/zh_Hant/nikki.po b/luci-app-nikki/po/zh_Hant/nikki.po index 5b9d77ed..1a455334 100644 --- a/luci-app-nikki/po/zh_Hant/nikki.po +++ b/luci-app-nikki/po/zh_Hant/nikki.po @@ -12,16 +12,32 @@ msgstr "" msgid "API Listen" msgstr "API 監聽" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:116 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:129 msgid "API Secret" -msgstr "API 密鑰" +msgstr "API 密碼" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:120 +msgid "API TLS Cert" +msgstr "API TLS 憑證" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:126 +msgid "API TLS ECH Key" +msgstr "API TLS ECH 金鑰" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:123 +msgid "API TLS Key" +msgstr "API TLS 金鑰" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:116 +msgid "API TLS Listen" +msgstr "API TLS 監聽" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:69 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:122 msgid "Access Control" msgstr "存取控制" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:228 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:241 msgid "Adaptive Replacement Cache (ARC)" msgstr "調適型替換快取(ARC)" @@ -38,11 +54,11 @@ msgstr "位址空間大小軟限制" msgid "All Port" 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:141 msgid "Allow Lan" msgstr "允許區域網路存取" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:269 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:282 msgid "Allow Mode" msgstr "白名單模式" @@ -51,7 +67,7 @@ msgstr "白名單模式" msgid "App Config" msgstr "應用程式設定" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:27 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:51 msgid "App Log" msgstr "應用程式日誌" @@ -59,19 +75,19 @@ msgstr "應用程式日誌" msgid "App Version" msgstr "應用程式版本" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:518 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:531 msgid "Append Rule" msgstr "追加規則" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:449 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:462 msgid "Append Rule Provider" msgstr "追加規則提供者" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:518 msgid "Behavior" 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:281 msgid "Block Mode" msgstr "黑名單模式" @@ -107,8 +123,8 @@ msgstr "選擇檔案" msgid "Choose Profile" msgstr "選擇設定檔" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:31 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:64 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:55 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:88 msgid "Clear Log" msgstr "清空日誌" @@ -117,7 +133,7 @@ msgstr "清空日誌" msgid "Commonly Used Port" msgstr "常用埠" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:60 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:84 msgid "Core Log" msgstr "核心日誌" @@ -133,44 +149,40 @@ msgstr "核心狀態" msgid "Core Version" msgstr "核心版本" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:117 -msgid "Cron Expression" -msgstr "Cron 表達式" - #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:99 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:165 msgid "DNS" msgstr "DNS" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:224 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:237 msgid "DNS Cache Algorithm" msgstr "DNS 快取演算法" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:216 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:229 msgid "DNS Config" msgstr "DNS 設定" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:230 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:243 msgid "DNS Listen" msgstr "DNS 監聽" -#: 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:253 msgid "DNS Mode" msgstr "DNS 模式" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:93 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:117 msgid "Debug Log" msgstr "除錯日誌" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:541 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:554 msgid "Destination IP" msgstr "目標 IP" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:545 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:558 msgid "Destination IP Geo" msgstr "目標 IP(地理位置)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:542 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:555 msgid "Destination Port" msgstr "目標埠" @@ -182,7 +194,7 @@ msgstr "要代理的 TCP 目標埠" msgid "Destination UDP Port to Proxy" msgstr "要代理的 UDP 目標埠" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:183 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:196 msgid "Device Name" msgstr "裝置名稱" @@ -190,7 +202,7 @@ msgstr "裝置名稱" msgid "Direct Mode" 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:376 msgid "Direct Nameserver Follow Policy" msgstr "Direct Nameserver 跟隨查詢策略" @@ -198,22 +210,22 @@ msgstr "Direct Nameserver 跟隨查詢策略" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:73 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:79 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:85 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:123 -#: 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:180 -#: 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:221 -#: 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:275 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:281 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:287 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:293 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:299 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:393 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:399 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:405 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:593 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:136 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:144 +#: 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:213 +#: 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:250 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:288 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:294 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:300 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:306 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:312 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:379 +#: 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:412 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:418 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:606 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:38 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:45 msgid "Disable" @@ -235,68 +247,68 @@ msgstr "停用迴路檢測" msgid "Disable TCP Keep Alive" msgstr "停用 TCP Keep Alive" -#: 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:297 msgid "DoH Prefer HTTP/3" msgstr "DoH 優先使用 HTTP/3" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:316 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:536 +#: 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:549 msgid "Domain Name" msgstr "網域名稱" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:544 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:557 msgid "Domain Name Geo" msgstr "網域名稱(地理位置)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:539 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:552 msgid "Domain Name Keyword" msgstr "網域名稱(關鍵字)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:540 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:553 msgid "Domain Name Regex" msgstr "網域名稱(正則表達式)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:537 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:550 msgid "Domain Name Suffix" msgstr "網域名稱(後綴)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:538 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:551 msgid "Domain Name Wildcard" msgstr "網域名稱(通配符)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:157 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:170 msgid "Edit Authentications" msgstr "編輯身分驗證" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:210 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:223 msgid "Edit DNS Hijacks" msgstr "編輯 DNS 劫持" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:261 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:274 msgid "Edit Fake-IP Filters" msgstr "編輯 Fake-IP 過濾清單" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:305 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:318 msgid "Edit Hosts" msgstr "編輯 Hosts" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:385 msgid "Edit Nameserver Policies" msgstr "編輯 DNS 伺服器查詢策略" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:324 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:337 msgid "Edit Nameservers" msgstr "編輯 DNS 伺服器" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:347 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360 msgid "Edit Proxy Server Nameserver Policies" msgstr "編輯 DNS 伺服器查詢策略(節點用)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:452 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:465 msgid "Edit Rule Providers" msgstr "編輯規則提供者" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:521 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:534 msgid "Edit Rules" msgstr "編輯規則" @@ -314,34 +326,34 @@ msgstr "編輯器" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:74 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:80 #: 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:124 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:132 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:165 -#: 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:181 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:201 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:218 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:222 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:238 -#: 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:282 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:288 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:294 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:300 +#: 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:145 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:178 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:190 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:194 +#: 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:231 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:235 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:251 +#: 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:295 +#: 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:307 #: 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:332 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:355 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:367 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:326 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:345 +#: 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:380 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:390 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:394 -#: 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:406 -#: 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:460 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:529 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:594 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:602 +#: 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:403 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:407 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:413 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:419 +#: 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:473 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:542 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:607 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:615 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:33 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:77 @@ -362,11 +374,11 @@ msgstr "到期時間" msgid "External Control Config" msgstr "外部控制設定" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:272 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:285 msgid "Fake-IP Cache" msgstr "Fake-IP 快取" -#: 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:278 msgid "Fake-IP Filter Mode" msgstr "Fake-IP 過濾模式" @@ -374,15 +386,15 @@ msgstr "Fake-IP 過濾模式" msgid "Fake-IP Ping Hijack" msgstr "Fake-IP Ping 劫持" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:246 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:259 msgid "Fake-IP Range" msgstr "Fake-IP 範圍" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:254 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:267 msgid "Fake-IP TTL" msgstr "Fake-IP TTL" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:250 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:263 msgid "Fake-IP6 Range" msgstr "Fake-IP6 範圍" @@ -390,15 +402,15 @@ msgstr "Fake-IP6 範圍" msgid "Fast Reload" msgstr "快速重載" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:499 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:512 msgid "File Format" msgstr "檔案格式" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:493 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:506 msgid "File Path" msgstr "檔案路徑" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:487 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:500 msgid "File Size Limit" msgstr "檔案大小限制" @@ -411,15 +423,15 @@ msgstr "用於混入的檔案" msgid "File:" msgstr "檔案:" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:411 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:424 msgid "Force Sniff Domain Name" 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:210 msgid "GSO" 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:216 msgid "GSO Max Size" msgstr "分段最大長度" @@ -428,43 +440,43 @@ msgstr "分段最大長度" msgid "General Config" msgstr "一般設定" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:97 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:121 msgid "Generate & Download" msgstr "生成並下載" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:572 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:585 msgid "GeoData Loader" msgstr "GeoData 載入器" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:566 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:579 msgid "GeoIP Format" msgstr "GeoIP 格式" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:587 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:600 msgid "GeoIP(ASN) Url" msgstr "GeoIP(ASN) 下載網址" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:584 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:597 msgid "GeoIP(DAT) Url" msgstr "GeoIP(DAT) 下載網址" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:581 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:594 msgid "GeoIP(MMDB) Url" msgstr "GeoIP(MMDB) 下載網址" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:578 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:591 msgid "GeoSite Url" msgstr "GeoSite 下載網址" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:590 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:603 msgid "GeoX Auto Update" msgstr "定時更新 GeoX 檔案" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:564 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:577 msgid "GeoX Config" msgstr "GeoX 設定" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:596 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:609 msgid "GeoX Update Interval" msgstr "GeoX 檔案更新間隔" @@ -480,7 +492,7 @@ msgstr "授予存取 nikki 程序的權限" msgid "Group" msgstr "使用者群組" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:134 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:147 msgid "HTTP Port" msgstr "HTTP 埠" @@ -512,11 +524,11 @@ msgstr "IPv6 DNS 劫持" msgid "IPv6 Proxy" msgstr "IPv6 代理" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:418 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:431 msgid "Ignore Sniff Domain Name" msgstr "忽略嗅探的網域名稱" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:126 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:139 msgid "Inbound Config" msgstr "入站設定" @@ -528,7 +540,7 @@ msgstr "入站介面" msgid "LAN Proxy" msgstr "區域網路代理" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:227 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:240 msgid "Least Recently Used (LRU)" msgstr "最近最少使用(LRU)" @@ -541,11 +553,15 @@ msgstr "本地" msgid "Log" msgstr "日誌" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:27 +msgid "Log Config" +msgstr "日誌設定" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:30 msgid "Log Level" 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:206 msgid "MTU" msgstr "最大傳輸單元" @@ -553,13 +569,13 @@ msgstr "最大傳輸單元" msgid "Match Process" msgstr "匹配程序" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:358 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:383 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:547 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:371 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:396 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:560 msgid "Matcher" msgstr "匹配器" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:576 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:589 msgid "Memory Conservative Loader" msgstr "為記憶體受限裝置最佳化的載入器" @@ -567,7 +583,7 @@ msgstr "為記憶體受限裝置最佳化的載入器" msgid "Misc" msgstr "雜項" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:142 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:155 msgid "Mixed Port" msgstr "混合埠" @@ -575,7 +591,7 @@ msgstr "混合埠" msgid "Mixin Config" msgstr "混入設定" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:600 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:613 msgid "Mixin File Content" msgstr "混入檔案內容" @@ -587,13 +603,13 @@ msgstr "混入選項" msgid "Mode" msgstr "模式" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:466 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:479 msgid "Name" msgstr "名稱" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:342 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:361 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:386 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:355 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:374 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:399 msgid "Nameserver" msgstr "DNS 伺服器" @@ -602,12 +618,12 @@ msgstr "DNS 伺服器" msgid "Nikki" msgstr "Nikki" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:558 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:571 msgid "No Resolve" msgstr "不解析" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:480 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:551 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:493 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:564 msgid "Node" msgstr "節點" @@ -631,59 +647,59 @@ msgstr "開啟儀表板" msgid "Outbound Interface" msgstr "出站介面" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:154 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:167 msgid "Overwrite Authentication" msgstr "覆寫身分驗證" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:207 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:220 msgid "Overwrite DNS Hijack" msgstr "覆寫 DNS 劫持" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:444 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:457 msgid "Overwrite Destination" msgstr "將嗅探結果作為連線目標" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:258 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:271 msgid "Overwrite Fake-IP Filter" msgstr "覆寫 Fake-IP 過濾清單" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:408 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:421 msgid "Overwrite Force Sniff Domain Name" msgstr "覆寫強制嗅探的網域名稱" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:302 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:315 msgid "Overwrite Hosts" msgstr "覆寫 Hosts" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:415 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:428 msgid "Overwrite Ignore Sniff Domain Name" msgstr "覆寫忽略嗅探的網域名稱" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:321 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:334 msgid "Overwrite Nameserver" msgstr "覆寫 DNS 伺服器" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:369 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:382 msgid "Overwrite Nameserver Policy" msgstr "覆寫 DNS 伺服器查詢策略" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:344 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:357 msgid "Overwrite Proxy Server Nameserver Policy" msgstr "覆蓋 DNS 伺服器查詢策略(節點用)" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:422 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:435 msgid "Overwrite Sniff By Protocol" 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:184 msgid "Password" msgstr "密碼" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:602 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:615 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:441 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:454 msgid "Port" msgstr "埠" @@ -691,7 +707,7 @@ msgstr "埠" msgid "Prefer" msgstr "優先" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:543 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:556 msgid "Process Name" msgstr "程序名稱" @@ -704,7 +720,7 @@ msgstr "設定檔" msgid "Profile for Startup" msgstr "用於啟動的設定檔" -#: 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:448 msgid "Protocol" msgstr "協定" @@ -731,7 +747,7 @@ msgstr "RLIMIT 設定" msgid "Redirect Mode" msgstr "Redirect 模式" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:146 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:159 msgid "Redirect Port" msgstr "Redirect 埠" @@ -751,7 +767,7 @@ msgstr "IPv4 保留位址" msgid "Reserved IP6" msgstr "IPv6 保留位址" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:278 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:291 msgid "Respect Rules" msgstr "遵循分流規則" @@ -763,12 +779,12 @@ msgstr "重新啟動服務" msgid "Router Proxy" msgstr "路由器代理" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:447 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:460 msgid "Rule Config" msgstr "規則設定" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:43 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:270 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:283 msgid "Rule Mode" msgstr "規則模式" @@ -776,7 +792,7 @@ msgstr "規則模式" msgid "Rule Provider:" msgstr "規則提供者:" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:535 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:548 msgid "Rule Set" msgstr "規則集" @@ -784,7 +800,7 @@ msgstr "規則集" msgid "Running" msgstr "執行中" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:138 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:151 msgid "SOCKS Port" msgstr "SOCKS 埠" @@ -792,16 +808,36 @@ msgstr "SOCKS 埠" msgid "Safe Paths" msgstr "安全路徑" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:120 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:133 msgid "Save Proxy Selection" msgstr "儲存節點/策略群組選擇" +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:29 +msgid "Scheduled Clear" +msgstr "定時清除" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:32 +msgid "Scheduled Clear Cron" +msgstr "Cron 表達式" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:37 +msgid "Scheduled Clear Size Limit" +msgstr "日誌大小上限" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:43 +msgid "Scheduled Clear Size Limit Unit" +msgstr "日誌大小上限單位" + #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:114 msgid "Scheduled Restart" msgstr "定時重新啟動" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:54 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:87 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:117 +msgid "Scheduled Restart Cron" +msgstr "Cron 表達式" + +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:78 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/log.js:111 msgid "Scroll To Bottom" msgstr "捲動到底部" @@ -809,23 +845,23 @@ msgstr "捲動到底部" msgid "Skip System IPv6 Check" msgstr "跳過系統 IPv6 檢查" -#: 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:438 msgid "Sniff By Protocol" msgstr "按協定嗅探" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:402 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:415 msgid "Sniff Pure IP" msgstr "嗅探純 IP 連線" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:396 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:409 msgid "Sniff Redir-Host" msgstr "嗅探 Redir-Host 流量" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:388 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:401 msgid "Sniffer Config" msgstr "嗅探器設定" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:186 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:199 msgid "Stack" msgstr "堆疊" @@ -837,7 +873,7 @@ msgstr "堆疊大小硬限制" msgid "Stack Size Soft Limit" msgstr "堆疊大小軟限制" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:575 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:588 msgid "Standard Loader" msgstr "標準載入器" @@ -895,11 +931,11 @@ msgstr "TCP 模式" msgid "TPROXY Mode" msgstr "TPROXY 模式" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:150 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:163 msgid "TPROXY Port" msgstr "TPROXY 埠" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:175 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:188 msgid "TUN Config" msgstr "TUN 設定" @@ -928,9 +964,9 @@ msgstr "總計" msgid "Transparent Proxy with Mihomo on OpenWrt." msgstr "在 OpenWrt 上使用 Mihomo 進行透明代理." -#: 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:469 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:533 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:348 +#: 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:546 msgid "Type" msgstr "類型" @@ -978,45 +1014,49 @@ msgstr "無限制" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:105 #: 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:118 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:122 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:130 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:136 -#: 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:144 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:148 -#: 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:179 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:184 -#: 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:195 -#: 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:205 -#: 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:226 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:232 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:236 -#: 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:248 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:252 -#: 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:267 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:274 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:121 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:124 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:127 +#: 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:135 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:143 +#: 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:153 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:157 +#: 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:165 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:192 +#: 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:201 +#: 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:212 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:218 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:233 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:239 +#: 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:249 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:255 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:261 +#: 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:269 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:280 -#: 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:292 -#: 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:365 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:392 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:398 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:404 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:568 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:574 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:579 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:582 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:585 -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:588 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:287 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:293 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:299 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:305 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:311 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:378 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:405 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:411 +#: 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:581 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:587 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:592 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:595 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:598 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:601 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:605 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:611 msgid "Unmodified" msgstr "不修改" @@ -1032,7 +1072,7 @@ msgstr "更新時間" msgid "Update Dashboard" msgstr "更新儀表板" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:512 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:525 msgid "Update Interval" msgstr "更新間隔" @@ -1040,15 +1080,15 @@ msgstr "更新間隔" msgid "Upload Profile" msgstr "上傳設定檔" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:475 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:488 msgid "Url" msgstr "下載網址" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:296 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:309 msgid "Use Hosts" msgstr "使用 Hosts" -#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:290 +#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:303 msgid "Use System Hosts" msgstr "使用系統的 Hosts" @@ -1064,16 +1104,10 @@ msgstr "使用者" msgid "User Agent" msgstr "使用者代理(UA)" -#: 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:181 msgid "Username" msgstr "使用者名稱" #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:128 msgid "procd Config" msgstr "procd 設定" - -#~ msgid "Global Client Fingerprint" -#~ msgstr "全局客戶端指紋" - -#~ msgid "Random" -#~ msgstr "隨機" diff --git a/luci-app-passwall/luasrc/controller/passwall.lua b/luci-app-passwall/luasrc/controller/passwall.lua index 37af41b7..070a7ea2 100644 --- a/luci-app-passwall/luasrc/controller/passwall.lua +++ b/luci-app-passwall/luasrc/controller/passwall.lua @@ -28,6 +28,7 @@ function index() entry({"admin", "services", appname, "show"}, call("show_menu")).leaf = true entry({"admin", "services", appname, "hide"}, call("hide_menu")).leaf = true entry({"admin", "services", appname, "ip"}, call('check_ip')).leaf = true + entry({"admin", "services", appname, "adblock_refresh"}, call('adblock_refresh')).leaf = true local e if uci:get(appname, "@global[0]", "hide_from_luci") ~= "1" then e = entry({"admin", "services", appname}, alias("admin", "services", appname, "settings"), _("Pass Wall"), -1) @@ -296,6 +297,26 @@ function clear_log() luci.sys.call("echo '' > /tmp/log/passwall.log") end +function adblock_refresh() + local icount = 0 + + local status = luci.sys.call("/usr/share/passwall/adblock.sh >/dev/null 2>&1") + if status == 0 then + icount = tonumber(luci.sys.exec("wc -l < /usr/share/passwall/rules/block_host")) + if icount>0 then + retstring = tostring(math.ceil(icount)) + else + retstring = "-1" + end + elseif status == 2 then + retstring = "0" + else + retstring = "-1" + end + luci.http.prepare_content("application/json") + luci.http.write_json({ret=retstring}) +end + function check_site(host, port) local nixio = require "nixio" local socket = nixio.socket("inet", "stream") diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua index 6ede8a4d..0ead2671 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua @@ -547,6 +547,27 @@ function o.cfgvalue(self, section) api.url("flush_set") .. "?redirect=1&reload=1", set_title) end +o = s:taboption("DNS", Flag, "adblock", translate("Enable adblock")) +o.rmempty = false + +local UD="" rule_count="0" +if nixio.fs.access("/usr/share/passwall/rules/block_host") then +UD = os.date("%Y-%m-%d %H:%M", nixio.fs.stat("/usr/share/passwall/rules/block_host").ctime) +rule_count = tonumber(luci.sys.exec("wc -l < /usr/share/passwall/rules/block_host")) +end +o = s:taboption("DNS", DummyValue, "refresh_data", translate("Subscribe Rules Data")) +o.rawhtml = true +o.template = appname .. "/global/adblock_refresh" +o.value = rule_count.." "..translate("Records") +o.description = string.format(translate("Domain / DNSMASQ rules auto-convert").."
"..translate("Last Update Checked")..": %s
",UD) +o:depends("adblock",1) + +o = s:taboption("DNS", DynamicList, "ad_url", translate("Anti-AD Rules Subscribe")) +o:value("https://cdn.jsdelivr.net/gh/privacy-protection-tools/anti-AD/anti-ad-domains.txt", translate("anti-AD")) +o:value("https://cdn.jsdelivr.net/gh/neodevpro/neodevhost/domain", translate("NEO DEV HOST")) +o.default = "https://cdn.jsdelivr.net/gh/privacy-protection-tools/anti-AD/anti-ad-domains.txt" +o:depends("adblock",1) + s:tab("Proxy", translate("Mode")) o = s:taboption("Proxy", Flag, "use_direct_list", translatef("Use %s", translate("Direct List"))) diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua index 6ad3f058..ac2fcdba 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua @@ -152,7 +152,7 @@ o.validate = function(self, value) end ---- Block Hosts -local block_host = path .. "block_host" +local block_host = path .. "my_block_host" o = s:taboption("block_list", TextValue, "block_host", "", "" .. translate("These had been joined websites will be block. Please input the domain names of websites, every line can input only one website domain. For example: twitter.com.") .. "") o.rows = 15 o.wrap = "off" diff --git a/luci-app-passwall/luasrc/view/passwall/global/adblock_refresh.htm b/luci-app-passwall/luasrc/view/passwall/global/adblock_refresh.htm new file mode 100644 index 00000000..321334db --- /dev/null +++ b/luci-app-passwall/luasrc/view/passwall/global/adblock_refresh.htm @@ -0,0 +1,34 @@ +<%+cbi/valueheader%> + + +<%=self.value%> +<%+cbi/valuefooter%> diff --git a/luci-app-passwall/po/zh-cn/passwall.po b/luci-app-passwall/po/zh-cn/passwall.po index 93a40372..754fbbe4 100644 --- a/luci-app-passwall/po/zh-cn/passwall.po +++ b/luci-app-passwall/po/zh-cn/passwall.po @@ -1,6 +1,42 @@ msgid "Pass Wall" msgstr "PassWall" +msgid "Enable adblock" +msgstr "启用广告屏蔽" + +msgid "Records" +msgstr "条记录" + +msgid "Refresh..." +msgstr "正在更新,请稍候.." + +msgid "No new data!" +msgstr "你已经是最新数据,无需更新!" + +msgid "Refresh Error!" +msgstr "更新失败!" + +msgid "Refresh OK!" +msgstr "更新成功!" + +msgid "Total Records:" +msgstr "新的总规则数:" + +msgid "Refresh Data" +msgstr "更新订阅规则" + +msgid "Last Update Checked" +msgstr "上一次规则更新时间" + +msgid "Subscribe Rules Data" +msgstr "去广告规则" + +msgid "AdGuardHome / Host / DNSMASQ / Domain rules auto-convert" +msgstr "Domain / DNSMASQ 规则自动识别, 自动去重" + +msgid "Anti-AD Rules Subscribe" +msgstr "广告过滤规则订阅 URL" + msgid "Auto" msgstr "自动" diff --git a/luci-app-passwall/root/usr/share/passwall/adblock.sh b/luci-app-passwall/root/usr/share/passwall/adblock.sh index 35c21848..1cc97c90 100755 --- a/luci-app-passwall/root/usr/share/passwall/adblock.sh +++ b/luci-app-passwall/root/usr/share/passwall/adblock.sh @@ -5,6 +5,9 @@ LOCK_FILE="/var/lock/ad_download.lock" TMP_DIR="/tmp/ad_download" RULES_PATH="/usr/share/passwall/rules" +# ========== 白名单:合并后需要排除的域名 ========== +WHITELIST="ip-api.com" + # ========== 加锁,防止重复运行 ========== exec 200>"$LOCK_FILE" if ! flock -n 200; then @@ -94,32 +97,42 @@ INDEX=0 for url in $AD_URLS; do [ -z "$url" ] && continue INDEX=$((INDEX + 1)) - process_url "$INDEX" "$url" & + process_url "$INDEX" "$url" done -# 等待所有后台任务完成 -wait - -# ========== 合并、去重、去空行 ========== +# ========== 合并、去重、去空行、排除白名单 ========== +[ -f $RULES_PATH/my_block_host ] || touch $RULES_PATH/my_block_host if ls "$TMP_DIR"/parsed_*.txt >/dev/null 2>&1; then - awk '!seen[$0]++ && NF' "$TMP_DIR"/parsed_*.txt > $RULES_PATH/ads_host - COUNT=$(wc -l < "$RULES_PATH/ads_host") - echo "========================================" - echo "[DONE] 合并完成: $RULES_PATH/ads_host" - echo "[DONE] 总域名数: $COUNT" - echo "========================================" + NEW_FILE="$TMP_DIR/ad_domains_new.txt" + awk -v wl="$WHITELIST" ' + BEGIN { + n = split(wl, a, " ") + for (i = 1; i <= n; i++) white[a[i]] = 1 + } + NF && !seen[$0]++ && !($0 in white) + ' "$TMP_DIR"/parsed_*.txt $RULES_PATH/my_block_host > "$NEW_FILE" + + # ========== 比较新旧文件 hash ========== + if [ -f "$RULES_PATH/block_host" ]; then + OLD_HASH=$(md5sum "$RULES_PATH/block_host" | awk '{print $1}') + else + OLD_HASH="" + fi + NEW_HASH=$(md5sum "$NEW_FILE" | awk '{print $1}') + + if [ "$OLD_HASH" = "$NEW_HASH" ]; then + rm -f "$NEW_FILE" + else + [ -s $NEW_FILE ] && { + rm -f $RULES_PATH/block_host + mv -f "$NEW_FILE" "$RULES_PATH/block_host" + /etc/init.d/passwall reload > /dev/null 2>&1 & + } + fi else echo "[ERROR] 没有成功解析任何文件" exit 1 fi -[ -s $RULES_PATH/ads_host ] && { -[ -s $RULES_PATH/my_block_host ] && { -rm -f $RULES_PATH/block_host -awk '!/^[[:space:]]*(#|$)/ && !seen[$0]++' $RULES_PATH/ads_host $RULES_PATH/my_block_host > $RULES_PATH/block_host -} || ln -sf $RULES_PATH/ads_host $RULES_PATH/block_host -} +[ "$OLD_HASH" != "$NEW_HASH" ] && exit 0 || exit 2 -/etc/init.d/passwall reload > /dev/null 2>&1 & - -exit 0 diff --git a/luci-app-passwall/root/usr/share/passwall/app.sh b/luci-app-passwall/root/usr/share/passwall/app.sh index 2283c386..7a5290c4 100755 --- a/luci-app-passwall/root/usr/share/passwall/app.sh +++ b/luci-app-passwall/root/usr/share/passwall/app.sh @@ -1085,8 +1085,8 @@ socks_node_switch() { done for filename in $(ls ${TMP_SCRIPT_FUNC_PATH}); do - cmd=$(cat ${TMP_SCRIPT_FUNC_PATH}/${filename}) - [ -n "$(echo $cmd | grep "${flag}")" ] && rm -f ${TMP_SCRIPT_FUNC_PATH}/${filename} + grep -q "${flag}" "${TMP_SCRIPT_FUNC_PATH}/${filename}" && \ + rm -f "${TMP_SCRIPT_FUNC_PATH}/${filename}" "${TMP_PATH}/script_rstats/${filename}.count" done local bind_local=$(config_n_get $flag bind_local 0) local bind="0.0.0.0" @@ -1539,6 +1539,14 @@ start_dns() { fi } +start_adblock() { + [ "$(config_t_get global adblock 0)" != "1" ] && { + [ -s $RULES_PATH/my_block_host ] && ln -sf $RULES_PATH/my_block_host $RULES_PATH/block_host + return + } + "$APP_PATH/adblock.sh" > /dev/null 2>&1 & +} + start_haproxy() { [ "$(config_t_get global_haproxy balancing_enable 0)" != "1" ] && return haproxy_path=$TMP_PATH/haproxy @@ -1853,6 +1861,7 @@ start() { export ENABLE_DEPRECATED_GEOIP=true export SS_SYSTEM_DNS_RESOLVER_FORCE_BUILTIN=1 ulimit -n 65535 + start_adblock start_haproxy start_socks nftflag=0 diff --git a/luci-app-passwall/root/usr/share/passwall/socks_auto_switch.sh b/luci-app-passwall/root/usr/share/passwall/socks_auto_switch.sh index 7ff7cf94..9673486b 100755 --- a/luci-app-passwall/root/usr/share/passwall/socks_auto_switch.sh +++ b/luci-app-passwall/root/usr/share/passwall/socks_auto_switch.sh @@ -49,7 +49,7 @@ test_node() { local _type=$(echo $(config_n_get ${node_id} type) | tr 'A-Z' 'a-z') [ -n "${_type}" ] && { local _tmp_port=$(get_new_port 48800 tcp,udp) - $APP_FILE run_socks flag="test_node_${node_id}" node=${node_id} bind=127.0.0.1 socks_port=${_tmp_port} config_file=test_node_${node_id}.json + NO_REC_PROCESS=1 $APP_FILE run_socks flag="test_node_${node_id}" node=${node_id} bind=127.0.0.1 socks_port=${_tmp_port} config_file=test_node_${node_id}.json local curlx="socks5h://127.0.0.1:${_tmp_port}" sleep 1s local _proxy_status=$(test_url "${probe_url}" ${retry_num} ${connect_timeout} "-x $curlx") diff --git a/luci-app-passwall/root/usr/share/passwall/test.sh b/luci-app-passwall/root/usr/share/passwall/test.sh index 525ec70f..42df2d07 100755 --- a/luci-app-passwall/root/usr/share/passwall/test.sh +++ b/luci-app-passwall/root/usr/share/passwall/test.sh @@ -57,7 +57,7 @@ url_test_node() { } else local _tmp_port=$(get_new_port 48900 tcp,udp) - /usr/share/${CONFIG}/app.sh run_socks flag="url_test_${node_id}" node=${node_id} bind=127.0.0.1 socks_port=${_tmp_port} config_file=url_test_${node_id}.json + NO_REC_PROCESS=1 /usr/share/${CONFIG}/app.sh run_socks flag="url_test_${node_id}" node=${node_id} bind=127.0.0.1 socks_port=${_tmp_port} config_file=url_test_${node_id}.json local curlx="socks5h://127.0.0.1:${_tmp_port}" fi sleep 1s diff --git a/luci-app-passwall/root/usr/share/passwall/utils.sh b/luci-app-passwall/root/usr/share/passwall/utils.sh index 7ed57021..749c9db8 100755 --- a/luci-app-passwall/root/usr/share/passwall/utils.sh +++ b/luci-app-passwall/root/usr/share/passwall/utils.sh @@ -455,6 +455,7 @@ ln_run() { ${file_func:-echolog " - ${ln_name}"} "$@" 2>&1 | logger -t PASSWALL_${protocol}_${ln_name} & fi fi + [ -n "$NO_REC_PROCESS" ] && return process_count=$(ls $TMP_SCRIPT_FUNC_PATH | wc -l) process_count=$((process_count + 1)) echo "${file_func:-echolog " - ${ln_name}"} $@ >${output}" > $TMP_SCRIPT_FUNC_PATH/$process_count diff --git a/nikki/Makefile b/nikki/Makefile index f2898f07..26cf2223 100644 --- a/nikki/Makefile +++ b/nikki/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=nikki PKG_VERSION:=2026.04.08 -PKG_RELEASE:=10 +PKG_RELEASE:=11 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) diff --git a/nikki/files/nikki.conf b/nikki/files/nikki.conf index ea5afa68..d5ffee5b 100644 --- a/nikki/files/nikki.conf +++ b/nikki/files/nikki.conf @@ -6,7 +6,7 @@ config config 'config' option 'profile' 'subscription:subscription' option 'start_delay' '0' option 'scheduled_restart' '0' - option 'cron_expression' '0 3 * * *' + option 'scheduled_restart_cron' '0 3 * * *' option 'test_profile' '1' option 'core_only' '0' @@ -234,3 +234,7 @@ config routing 'routing' config editor 'editor' config log 'log' + option 'scheduled_clear' '1' + option 'scheduled_clear_cron' '*/5 * * * *' + option 'scheduled_clear_size_limit' '1' + option 'scheduled_clear_size_limit_unit' 'MB' diff --git a/nikki/files/nikki.init b/nikki/files/nikki.init index 5bc88777..41a3308c 100644 --- a/nikki/files/nikki.init +++ b/nikki/files/nikki.init @@ -9,6 +9,7 @@ PROG="/usr/bin/mihomo" . "$IPKG_INSTROOT/etc/nikki/scripts/include.sh" extra_command 'update_subscription' 'Update subscription by section id' +extra_command 'clear_logs' 'Clear logs if size exceeds the limit' boot_func() { # prepare files @@ -55,9 +56,9 @@ start_service() { fi # get config ## app config - local scheduled_restart cron_expression profile test_profile core_only + local scheduled_restart scheduled_restart_cron profile test_profile core_only config_get_bool scheduled_restart "config" "scheduled_restart" 0 - config_get cron_expression "config" "cron_expression" + config_get scheduled_restart_cron "config" "scheduled_restart_cron" config_get profile "config" "profile" config_get_bool test_profile "config" "test_profile" 0 config_get_bool core_only "config" "core_only" 0 @@ -109,6 +110,10 @@ start_service() { config_get_bool ipv6_dns_hijack "proxy" "ipv6_dns_hijack" 0 config_get tcp_mode "proxy" "tcp_mode" config_get udp_mode "proxy" "udp_mode" + ## log config + local log_scheduled_clear log_scheduled_clear_cron + config_get_bool log_scheduled_clear "log" "scheduled_clear" 0 + config_get log_scheduled_clear_cron "log" "scheduled_clear_cron" # get profile local profile_type; profile_type=$(echo "$profile" | cut -d ':' -f 1) local profile_id; profile_id=$(echo "$profile" | cut -d ':' -f 2) @@ -259,9 +264,18 @@ start_service() { procd_close_instance # cron - if [ "$scheduled_restart" = 1 ] && [ -n "$cron_expression" ]; then + local reload_cron; reload_cron=0 + if [ "$scheduled_restart" = 1 ] && [ -n "$scheduled_restart_cron" ]; then log "App" "Set scheduled restart." - echo "$cron_expression /etc/init.d/nikki restart #nikki" >> "/etc/crontabs/root" + echo "$scheduled_restart_cron /etc/init.d/nikki restart #nikki scheduled restart" >> "/etc/crontabs/root" + reload_cron=1 + fi + if [ "$log_scheduled_clear" = 1 ] && [ -n "$log_scheduled_clear_cron" ]; then + log "App" "Set log scheduled clear." + echo "$log_scheduled_clear_cron /etc/init.d/nikki clear_logs #nikki log scheduled clear" >> "/etc/crontabs/root" + reload_cron=1 + fi + if [ "$reload_cron" = 1 ]; then /etc/init.d/cron restart fi # set started flag @@ -422,8 +436,6 @@ service_triggers() { } cleanup() { - # clear log - clear_log # load config config_load nikki # get config @@ -470,6 +482,41 @@ cleanup() { /etc/init.d/cron restart } +clear_logs() { + # load config + config_load nikki + # get config + ## log config + local log_scheduled_clear_size_limit log_scheduled_clear_size_limit_unit + config_get log_scheduled_clear_size_limit "log" "scheduled_clear_size_limit" 1 + config_get log_scheduled_clear_size_limit_unit "log" "scheduled_clear_size_limit_unit" "MB" + # prepare config + local log_scheduled_clear_size_limit_in_bytes; log_scheduled_clear_size_limit_in_bytes=0 + case "$log_scheduled_clear_size_limit_unit" in + B) + log_scheduled_clear_size_limit_in_bytes=$((log_scheduled_clear_size_limit)) + ;; + KB) + log_scheduled_clear_size_limit_in_bytes=$((log_scheduled_clear_size_limit * 1024)) + ;; + MB) + log_scheduled_clear_size_limit_in_bytes=$((log_scheduled_clear_size_limit * 1024 * 1024)) + ;; + GB) + log_scheduled_clear_size_limit_in_bytes=$((log_scheduled_clear_size_limit * 1024 * 1024 * 1024)) + ;; + esac + # clear logs + if [ -f "$APP_LOG_PATH" ] && [ "$(wc -c < "$APP_LOG_PATH")" -ge "$log_scheduled_clear_size_limit_in_bytes" ]; then + echo -n > "$APP_LOG_PATH" + log "Log" "App log is cleared due to scheduled clear and exceeding size limits." + fi + if [ -f "$CORE_LOG_PATH" ] && [ "$(wc -c < "$CORE_LOG_PATH")" -ge "$log_scheduled_clear_size_limit_in_bytes" ]; then + echo -n > "$CORE_LOG_PATH" + log "Log" "Core log is cleared due to scheduled clear and exceeding size limits." + fi +} + update_subscription() { local subscription_section; subscription_section="$1" if [ -z "$subscription_section" ]; then diff --git a/nikki/files/scripts/include.sh b/nikki/files/scripts/include.sh index bff99a37..4321b0e1 100644 --- a/nikki/files/scripts/include.sh +++ b/nikki/files/scripts/include.sh @@ -80,11 +80,6 @@ prepare_files() { fi } -clear_log() { - echo -n > "$APP_LOG_PATH" - echo -n > "$CORE_LOG_PATH" -} - log() { echo "[$(date "+%Y-%m-%d %H:%M:%S")] [$1] $2" >> "$APP_LOG_PATH" } diff --git a/nikki/files/uci-defaults/migrate.sh b/nikki/files/uci-defaults/migrate.sh index 6e21baf5..2016dbaf 100644 --- a/nikki/files/uci-defaults/migrate.sh +++ b/nikki/files/uci-defaults/migrate.sh @@ -110,7 +110,7 @@ proxy_transparent_proxy=$(uci -q get nikki.proxy.transparent_proxy); [ -n "$prox # since v1.23.0 -routing=$(uci -q get nikki.routing); [ -z "$routing" ] && { +section_routing=$(uci -q get nikki.routing); [ -z "$section_routing" ] && { uci set nikki.routing=routing uci set nikki.routing.tproxy_fw_mark=0x80 uci set nikki.routing.tun_fw_mark=0x81 @@ -191,7 +191,7 @@ proxy_bypass_china_mainland_ip6=$(uci -q get nikki.proxy.bypass_china_mainland_i routing_tproxy_fw_mask=$(uci -q get nikki.routing.tproxy_fw_mask); [ -z "$routing_tproxy_fw_mask" ] && uci set nikki.routing.tproxy_fw_mask=0xFF routing_tun_fw_mask=$(uci -q get nikki.routing.tun_fw_mask); [ -z "$routing_tun_fw_mask" ] && uci set nikki.routing.tun_fw_mask=0xFF -procd=$(uci -q get nikki.procd); [ -z "$procd" ] && { +section_procd=$(uci -q get nikki.procd); [ -z "$section_procd" ] && { uci set nikki.procd=procd uci set nikki.procd.fast_reload=$(uci -q get nikki.config.fast_reload) uci set nikki.procd.env_safe_paths=$(uci -q get nikki.env.safe_paths) @@ -205,17 +205,26 @@ procd=$(uci -q get nikki.procd); [ -z "$procd" ] && { # since v1.25.1 -dummy_device=$(uci -q get nikki.routing.dummy_device); [ -z "$dummy_device" ] && uci set nikki.routing.dummy_device=nikki-dummy +routing_dummy_device=$(uci -q get nikki.routing.dummy_device); [ -z "$routing_dummy_device" ] && uci set nikki.routing.dummy_device=nikki-dummy # since v1.25.2 -core=$(uci -q get nikki.core); [ -z "$core" ] && { +section_core=$(uci -q get nikki.core); [ -z "$section_core" ] && { uci set nikki.core=core uci set nikki.core.redirect_listener_name=redir-in uci set nikki.core.tproxy_listener_name=tproxy-in uci set nikki.core.tun_listener_name=tun-in } +# since v1.25.3 + +config_scheduled_restart_cron=$(uci -q get nikki.config.scheduled_restart_cron); [ -z "$config_scheduled_restart_cron" ] && uci rename nikki.config.cron_expression="scheduled_restart_cron" + +log_scheduled_clear=$(uci -q get nikki.log.scheduled_clear); [ -z "$log_scheduled_clear" ] && uci set nikki.log.scheduled_clear=1 +log_scheduled_clear_cron=$(uci -q get nikki.log.scheduled_clear_cron); [ -z "$log_scheduled_clear_cron" ] && uci set nikki.log.scheduled_clear_cron="*/5 * * * *" +log_scheduled_clear_size_limit=$(uci -q get nikki.log.scheduled_clear_size_limit); [ -z "$log_scheduled_clear_size_limit" ] && uci set nikki.log.scheduled_clear_size_limit=1 +log_scheduled_clear_size_limit_unit=$(uci -q get nikki.log.scheduled_clear_size_limit_unit); [ -z "$log_scheduled_clear_size_limit_unit" ] && uci set nikki.log.scheduled_clear_size_limit_unit=MB + # commit uci commit nikki diff --git a/openlist2/Makefile b/openlist2/Makefile index c2e8cb54..baa9e448 100644 --- a/openlist2/Makefile +++ b/openlist2/Makefile @@ -7,9 +7,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=openlist2 -PKG_VERSION:=4.1.10 +PKG_VERSION:=4.2.0 PKG_WEB_VERSION:=4.1.10 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=openlist-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/OpenListTeam/OpenList/tar.gz/v$(PKG_VERSION)?