diff --git a/luci-app-mihomo/Makefile b/luci-app-mihomo/Makefile deleted file mode 100644 index 9080a62fd..000000000 --- a/luci-app-mihomo/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -include $(TOPDIR)/rules.mk - -PKG_VERSION:=1.17.5 - -LUCI_TITLE:=LuCI Support for mihomo -LUCI_DEPENDS:=+luci-base +mihomo - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature \ No newline at end of file diff --git a/luci-app-mihomo/htdocs/luci-static/resources/tools/mihomo.js b/luci-app-mihomo/htdocs/luci-static/resources/tools/mihomo.js deleted file mode 100644 index b51da428c..000000000 --- a/luci-app-mihomo/htdocs/luci-static/resources/tools/mihomo.js +++ /dev/null @@ -1,133 +0,0 @@ -'use strict'; -'require baseclass'; -'require uci'; -'require fs'; -'require rpc'; - -const homeDir = '/etc/mihomo'; -const profilesDir = `${homeDir}/profiles`; -const subscriptionsDir = `${homeDir}/subscriptions`; -const mixinFilePath = `${homeDir}/mixin.yaml`; -const runDir = `${homeDir}/run`; -const runProfilePath = `${runDir}/config.yaml`; -const logDir = `/var/log/mihomo`; -const appLogPath = `${logDir}/app.log`; -const coreLogPath = `${logDir}/core.log`; -const nftDir = `${homeDir}/nftables`; -const reservedIPNFT = `${nftDir}/reserved_ip.nft`; -const reservedIP6NFT = `${nftDir}/reserved_ip6.nft`; - -return baseclass.extend({ - homeDir: homeDir, - profilesDir: profilesDir, - subscriptionsDir: subscriptionsDir, - mixinFilePath: mixinFilePath, - runDir: runDir, - appLogPath: appLogPath, - coreLogPath: coreLogPath, - runProfilePath: runProfilePath, - reservedIPNFT: reservedIPNFT, - reservedIP6NFT: reservedIP6NFT, - - callServiceList: rpc.declare({ - object: 'service', - method: 'list', - params: ['name'], - expect: { '': {} } - }), - - getAppLog: function () { - return L.resolveDefault(fs.read_direct(this.appLogPath)); - }, - - getCoreLog: function () { - return L.resolveDefault(fs.read_direct(this.coreLogPath)); - }, - - clearAppLog: function () { - return fs.exec_direct('/usr/libexec/mihomo-call', ['clear_log', 'app']); - }, - - clearCoreLog: function () { - return fs.exec_direct('/usr/libexec/mihomo-call', ['clear_log', 'core']); - }, - - listProfiles: function () { - return L.resolveDefault(fs.list(this.profilesDir), []); - }, - - updateSubscription: function (section_id) { - return fs.exec_direct('/usr/libexec/mihomo-call', ['subscription', 'update', section_id]); - }, - - status: async function () { - try { - return (await this.callServiceList('mihomo'))['mihomo']['instances']['mihomo']['running']; - } catch (ignored) { - return false; - } - }, - - reload: function () { - return fs.exec_direct('/usr/libexec/mihomo-call', ['service', 'reload']); - }, - - restart: function () { - return fs.exec_direct('/usr/libexec/mihomo-call', ['service', 'restart']); - }, - - appVersion: function () { - return L.resolveDefault(fs.exec_direct('/usr/libexec/mihomo-call', ['version', 'app']), _('Unknown')); - }, - - coreVersion: function () { - return L.resolveDefault(fs.exec_direct('/usr/libexec/mihomo-call', ['version', 'core']), _('Unknown')); - }, - - callMihomoAPI: async function (method, path, params, body) { - const running = await this.status(); - if (running) { - const apiPort = uci.get('mihomo', 'mixin', 'api_port'); - const apiSecret = uci.get('mihomo', 'mixin', 'api_secret'); - const query = new URLSearchParams(params).toString(); - const url = `http://${window.location.hostname}:${apiPort}${path}?${query}`; - await fetch(url, { - method: method, - headers: { 'Authorization': `Bearer ${apiSecret}` }, - body: JSON.stringify(body) - }) - } else { - alert(_('Service is not running.')); - } - }, - - openDashboard: async function () { - const running = await this.status(); - if (running) { - const uiName = uci.get('mihomo', 'mixin', 'ui_name'); - const apiPort = uci.get('mihomo', 'mixin', 'api_port'); - const apiSecret = encodeURIComponent(uci.get('mihomo', 'mixin', 'api_secret')); - let url; - if (uiName) { - url = `http://${window.location.hostname}:${apiPort}/ui/${uiName}/?host=${window.location.hostname}&hostname=${window.location.hostname}&port=${apiPort}&secret=${apiSecret}`; - } else { - url = `http://${window.location.hostname}:${apiPort}/ui/?host=${window.location.hostname}&hostname=${window.location.hostname}&port=${apiPort}&secret=${apiSecret}`; - } - setTimeout(function () { window.open(url, '_blank') }, 0); - } else { - alert(_('Service is not running.')); - } - }, - - getUsers: function () { - return fs.lines('/etc/passwd').then(function (lines) { - return lines.map(function (line) { return line.split(/:/)[0] }).filter(function (user) { return user !== 'root' && user !== 'mihomo' }); - }); - }, - - getGroups: function () { - return fs.lines('/etc/group').then(function (lines) { - return lines.map(function (line) { return line.split(/:/)[0] }).filter(function (group) { return group !== 'root' && group !== 'mihomo' }); - }); - }, -}) diff --git a/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js b/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js deleted file mode 100644 index 59b2683f3..000000000 --- a/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js +++ /dev/null @@ -1,148 +0,0 @@ -'use strict'; -'require form'; -'require view'; -'require uci'; -'require poll'; -'require tools.mihomo as mihomo'; - -function renderStatus(running) { - return updateStatus(E('input', { id: 'core_status', style: 'border: unset; font-style: italic; font-weight: bold;', readonly: '' }), running); -} - -function updateStatus(element, running) { - if (element) { - element.style.color = running ? 'green' : 'red'; - element.value = running ? _('Running') : _('Not Running'); - } - return element; -} - -return view.extend({ - load: function () { - return Promise.all([ - uci.load('mihomo'), - mihomo.appVersion(), - mihomo.coreVersion(), - mihomo.status(), - mihomo.listProfiles() - ]); - }, - render: function (data) { - const subscriptions = uci.sections('mihomo', 'subscription'); - const appVersion = data[1]; - const coreVersion = data[2]; - const running = data[3]; - const profiles = data[4]; - - let m, s, o; - - m = new form.Map('mihomo', _('MihomoTProxy'), `${_('Transparent Proxy with Mihomo on OpenWrt.')} ${_('How To Use')}`); - - s = m.section(form.NamedSection, 'status', 'status', _('Status')); - - o = s.option(form.Value, '_app_version', _('App Version')); - o.readonly = true; - o.load = function () { - return appVersion.trim(); - }; - o.write = function () { }; - - o = s.option(form.Value, '_core_version', _('Core Version')); - o.readonly = true; - o.load = function () { - return coreVersion.trim(); - }; - o.write = function () { }; - - o = s.option(form.DummyValue, '_core_status', _('Core Status')); - o.cfgvalue = function () { - return renderStatus(running); - }; - poll.add(function () { - return L.resolveDefault(mihomo.status()).then(function (running) { - updateStatus(document.getElementById('core_status'), running); - }); - }); - - o = s.option(form.Button, 'reload', '-'); - o.inputstyle = 'action'; - o.inputtitle = _('Reload Service'); - o.onclick = function () { - return mihomo.reload(); - }; - - o = s.option(form.Button, 'restart', '-'); - o.inputstyle = 'negative'; - o.inputtitle = _('Restart Service'); - o.onclick = function () { - return mihomo.restart(); - }; - - o = s.option(form.Button, 'update_dashboard', '-'); - o.inputstyle = 'positive'; - o.inputtitle = _('Update Dashboard'); - o.onclick = function () { - return mihomo.callMihomoAPI('POST', '/upgrade/ui'); - }; - - o = s.option(form.Button, 'open_dashboard', '-'); - o.inputtitle = _('Open Dashboard'); - o.onclick = function () { - return mihomo.openDashboard(); - }; - - s = m.section(form.NamedSection, 'config', 'config', _('App Config')); - - o = s.option(form.Flag, 'enabled', _('Enable')); - o.rmempty = false; - - o = s.option(form.ListValue, 'profile', _('Choose Profile')); - o.optional = true; - - for (const profile of profiles) { - o.value('file:' + profile.name, _('File:') + profile.name); - }; - - for (const subscription of subscriptions) { - o.value('subscription:' + subscription['.name'], _('Subscription:') + subscription.name); - }; - - o = s.option(form.Value, 'start_delay', _('Start Delay')); - o.datatype = 'uinteger'; - o.placeholder = '0'; - - o = s.option(form.Flag, 'scheduled_restart', _('Scheduled Restart')); - o.rmempty = false; - - o = s.option(form.Value, 'cron_expression', _('Cron Expression')); - o.retain = true; - o.rmempty = false; - o.depends('scheduled_restart', '1'); - - o = s.option(form.Flag, 'test_profile', _('Test Profile')); - o.rmempty = false; - - o = s.option(form.Flag, 'fast_reload', _('Fast Reload')); - o.rmempty = false; - - s = m.section(form.NamedSection, 'config', 'config', _('Core Environment Variable Config')); - - o = s.option(form.Flag, 'disable_safe_path_check', _('Disable Safe Path Check')); - o.ucisection = 'env'; - o.rmempty = false; - - o = s.option(form.Flag, 'disable_loopback_detector', _('Disable Loopback Detector')); - o.ucisection = 'env'; - o.rmempty = false; - - o = s.option(form.Flag, 'disable_quic_go_gso', _('Disable GSO of quic-go')); - o.ucisection = 'env'; - o.rmempty = false; - - o = s.option(form.Flag, 'disable_quic_go_ecn', _('Disable ECN of quic-go')); - o.ucisection = 'env'; - o.rmempty = false; - - return m.render(); - } -}); diff --git a/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/editor.js b/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/editor.js deleted file mode 100644 index a94a9674c..000000000 --- a/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/editor.js +++ /dev/null @@ -1,70 +0,0 @@ -'use strict'; -'require form'; -'require view'; -'require uci'; -'require fs'; -'require tools.mihomo as mihomo' - -return view.extend({ - load: function () { - return Promise.all([ - uci.load('mihomo'), - mihomo.listProfiles() - ]); - }, - render: function (data) { - const subscriptions = uci.sections('mihomo', 'subscription'); - const profiles = data[1]; - - let m, s, o; - - m = new form.Map('mihomo'); - - s = m.section(form.NamedSection, 'editor', 'editor', _('Editor')); - - o = s.option(form.ListValue, '_file', _('Choose File')); - o.optional = true; - - for (const profile of profiles) { - o.value(mihomo.profilesDir + '/' + profile.name, _('File:') + profile.name); - }; - - for (const subscription of subscriptions) { - o.value(mihomo.subscriptionsDir + '/' + subscription['.name'] + '.yaml', _('Subscription:') + subscription.name); - }; - - o.value(mihomo.mixinFilePath, _('File for Mixin')); - o.value(mihomo.runProfilePath, _('Profile for Startup')); - o.value(mihomo.reservedIPNFT, _('File for Reserved IP')); - o.value(mihomo.reservedIP6NFT, _('File for Reserved IP6')); - - o.write = function (section_id, formvalue) { - return true; - }; - o.onchange = function (event, section_id, value) { - return L.resolveDefault(fs.read_direct(value), '').then(function (content) { - m.lookupOption('mihomo.editor._file_content')[0].getUIElement('editor').setValue(content); - }); - }; - - o = s.option(form.TextValue, '_file_content',); - o.rows = 25; - o.wrap = false; - o.write = function (section_id, formvalue) { - const path = m.lookupOption('mihomo.editor._file')[0].formvalue('editor'); - return fs.write(path, formvalue); - }; - o.remove = function (section_id) { - const path = m.lookupOption('mihomo.editor._file')[0].formvalue('editor'); - return fs.write(path); - }; - - return m.render(); - }, - handleSaveApply: function (ev, mode) { - return this.handleSave(ev).finally(function () { - return mode === '0' ? mihomo.reload() : mihomo.restart(); - }); - }, - handleReset: null -}); diff --git a/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/log.js b/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/log.js deleted file mode 100644 index bde0be6fa..000000000 --- a/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/log.js +++ /dev/null @@ -1,97 +0,0 @@ -'use strict'; -'require form'; -'require view'; -'require uci'; -'require poll'; -'require tools.mihomo as mihomo'; - -return view.extend({ - load: function () { - return Promise.all([ - uci.load('mihomo'), - mihomo.getAppLog(), - mihomo.getCoreLog() - ]); - }, - render: function (data) { - const appLog = data[1]; - const coreLog = data[2]; - - let m, s, o; - - m = new form.Map('mihomo'); - - s = m.section(form.NamedSection, 'log', 'log', _('Log')); - - s.tab('app_log', _('App Log')); - - o = s.taboption('app_log', form.Button, 'clear_app_log'); - o.inputstyle = 'negative'; - o.inputtitle = _('Clear Log'); - o.onclick = function () { - m.lookupOption('mihomo.log._app_log')[0].getUIElement('log').setValue(''); - return mihomo.clearAppLog(); - }; - - o = s.taboption('app_log', form.TextValue, '_app_log'); - o.rows = 25; - o.wrap = false; - o.load = function (section_id) { - return appLog; - }; - o.write = function (section_id, formvalue) { - return true; - }; - poll.add(L.bind(function () { - const option = this; - return L.resolveDefault(mihomo.getAppLog()).then(function (log) { - option.getUIElement('log').setValue(log); - }); - }, o)); - - o = s.taboption('app_log', form.Button, 'scroll_app_log_to_bottom'); - o.inputtitle = _('Scroll To Bottom'); - o.onclick = function () { - const element = m.lookupOption('mihomo.log._app_log')[0].getUIElement('log').node.firstChild; - element.scrollTop = element.scrollHeight; - }; - - s.tab('core_log', _('Core Log')); - - o = s.taboption('core_log', form.Button, 'clear_core_log'); - o.inputstyle = 'negative'; - o.inputtitle = _('Clear Log'); - o.onclick = function () { - m.lookupOption('mihomo.log._core_log')[0].getUIElement('log').setValue(''); - return mihomo.clearCoreLog(); - }; - - o = s.taboption('core_log', form.TextValue, '_core_log'); - o.rows = 25; - o.wrap = false; - o.load = function (section_id) { - return coreLog; - }; - o.write = function (section_id, formvalue) { - return true; - }; - poll.add(L.bind(function () { - const option = this; - return L.resolveDefault(mihomo.getCoreLog()).then(function (log) { - option.getUIElement('log').setValue(log); - }); - }, o)); - - o = s.taboption('core_log', form.Button, 'scroll_core_log_to_bottom'); - o.inputtitle = _('Scroll To Bottom'); - o.onclick = function () { - const element = m.lookupOption('mihomo.log._core_log')[0].getUIElement('log').node.firstChild; - element.scrollTop = element.scrollHeight; - }; - - return m.render(); - }, - handleSaveApply: null, - handleSave: null, - handleReset: null -}); \ No newline at end of file diff --git a/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js b/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js deleted file mode 100644 index c4a1bb158..000000000 --- a/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js +++ /dev/null @@ -1,371 +0,0 @@ -'use strict'; -'require form'; -'require view'; -'require uci'; -'require fs'; -'require poll'; -'require tools.widgets as widgets'; -'require tools.mihomo as mihomo'; - -return view.extend({ - load: function () { - return Promise.all([ - uci.load('mihomo') - ]); - }, - render: function (data) { - let m, s, o, so; - - m = new form.Map('mihomo'); - - s = m.section(form.NamedSection, 'config', 'config', _('Mixin Config')); - - o = s.option(form.Flag, 'mixin', _('Enable')); - o.rmempty = false; - - s = m.section(form.NamedSection, 'mixin', 'mixin', _('Mixin Option')); - - s.tab('general', _('General Config')); - - o = s.taboption('general', form.ListValue, 'log_level', '*' + ' ' + _('Log Level')); - o.value('silent'); - o.value('error'); - o.value('warning'); - o.value('info'); - o.value('debug'); - - o = s.taboption('general', form.ListValue, 'mode', '*' + ' ' + _('Mode')); - o.value('global', _('Global Mode')); - o.value('rule', _('Rule Mode')); - o.value('direct', _('Direct Mode')); - - o = s.taboption('general', form.ListValue, 'match_process', '*' + ' ' + _('Match Process')); - o.value('strict', _('Auto')); - o.value('always', _('Enable')); - o.value('off', _('Disable')); - - o = s.taboption('general', widgets.NetworkSelect, 'outbound_interface', '*' + ' ' + _('Outbound Interface')); - o.optional = true; - - o = s.taboption('general', form.Flag, 'ipv6', '*' + ' ' + _('IPv6')); - o.rmempty = false; - - o = s.taboption('general', form.Flag, 'unify_delay', _('Unify Delay')); - o.rmempty = false; - - o = s.taboption('general', form.Flag, 'tcp_concurrent', _('TCP Concurrent')); - o.rmempty = false; - - o = s.taboption('general', form.Value, 'tcp_keep_alive_idle', _('TCP Keep Alive Idle')); - o.datatype = 'uinteger'; - o.placeholder = '600'; - - o = s.taboption('general', form.Value, 'tcp_keep_alive_interval', _('TCP Keep Alive Interval')); - o.datatype = 'uinteger'; - o.placeholder = '15'; - - s.tab('external_control', _('External Control Config')); - - o = s.taboption('external_control', form.Value, 'ui_name', '*' + ' ' + _('UI Name')); - - o = s.taboption('external_control', form.Value, 'ui_url', '*' + ' ' + _('UI Url')); - o.rmempty = false; - o.value('https://github.com/Zephyruso/zashboard/archive/refs/heads/gh-pages.zip', 'Zashboard'); - o.value('https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip', 'MetaCubeXD'); - o.value('https://github.com/MetaCubeX/Yacd-meta/archive/refs/heads/gh-pages.zip', 'YACD'); - o.value('https://github.com/MetaCubeX/Razord-meta/archive/refs/heads/gh-pages.zip', 'Razord'); - - o = s.taboption('external_control', form.Value, 'api_port', '*' + ' ' + _('API Port')); - o.datatype = 'port'; - o.placeholder = '9090'; - - o = s.taboption('external_control', form.Value, 'api_secret', '*' + ' ' + _('API Secret')); - o.password = true; - o.rmempty = false; - - o = s.taboption('external_control', form.Flag, 'selection_cache', _('Save Proxy Selection')); - o.rmempty = false; - - s.tab('inbound', _('Inbound Config')); - - o = s.taboption('inbound', form.Flag, 'allow_lan', '*' + ' ' + _('Allow Lan')); - o.rmempty = false; - - o = s.taboption('inbound', form.Value, 'http_port', '*' + ' ' + _('HTTP Port')); - o.datatype = 'port'; - o.placeholder = '8080'; - - o = s.taboption('inbound', form.Value, 'socks_port', '*' + ' ' + _('SOCKS Port')); - o.datatype = 'port'; - o.placeholder = '1080'; - - o = s.taboption('inbound', form.Value, 'mixed_port', '*' + ' ' + _('Mixed Port')); - o.datatype = 'port'; - o.placeholder = '7890'; - - o = s.taboption('inbound', form.Value, 'redir_port', '*' + ' ' + _('Redirect Port')); - o.datatype = 'port'; - o.placeholder = '7891'; - - o = s.taboption('inbound', form.Value, 'tproxy_port', '*' + ' ' + _('TPROXY Port')); - o.datatype = 'port'; - o.placeholder = '7892'; - - o = s.taboption('inbound', form.Flag, 'authentication', '*' + ' ' + _('Overwrite Authentication')); - o.rmempty = false; - - o = s.taboption('inbound', form.SectionValue, '_authentications', form.TableSection, 'authentication', _('Edit Authentications')); - o.retain = true; - o.depends('authentication', '1'); - - o.subsection.addremove = true; - o.subsection.anonymous = true; - o.subsection.sortable = true; - - so = o.subsection.option(form.Flag, 'enabled', _('Enable')); - so.rmempty = false; - - so = o.subsection.option(form.Value, 'username', _('Username')); - so.rmempty = false; - - so = o.subsection.option(form.Value, 'password', _('Password')); - so.password = true; - so.rmempty = false; - - s.tab('tun', _('TUN Config')); - - o = s.taboption('tun', form.Value, 'tun_device', '*' + ' ' + _('Device')); - o.rmempty = false; - - o = s.taboption('tun', form.ListValue, 'tun_stack', '*' + ' ' + _('Stack')); - o.value('system', 'System'); - o.value('gvisor', 'gVisor'); - o.value('mixed', 'Mixed'); - - o = s.taboption('tun', form.Value, 'tun_mtu', '*' + ' ' + _('MTU')); - o.datatype = 'uinteger'; - o.placeholder = '9000'; - - o = s.taboption('tun', form.Flag, 'tun_gso', '*' + ' ' + _('GSO')); - o.rmempty = false; - - o = s.taboption('tun', form.Value, 'tun_gso_max_size', '*' + ' ' + _('GSO Max Size')); - o.datatype = 'uinteger'; - o.placeholder = '65536'; - o.retain = true; - o.depends('tun_gso', '1'); - - o = s.taboption('tun', form.Flag, 'tun_dns_hijack', '*' + ' ' + _('Overwrite DNS Hijack')); - o.rmempty = false; - - o = s.taboption('tun', form.DynamicList, 'tun_dns_hijacks', '*' + ' ' + _('Edit DNS Hijacks')); - o.retain = true; - o.rmempty = false; - o.depends('tun_dns_hijack', '1'); - o.value('tcp://any:53'); - o.value('udp://any:53'); - - o = s.taboption('tun', form.Flag, 'tun_endpoint_independent_nat', '*' + ' ' + _('Endpoint Independent NAT')); - o.rmempty = false; - - s.tab('dns', _('DNS Config')); - - o = s.taboption('dns', form.Value, 'dns_port', '*' + ' ' + _('DNS Port')); - o.datatype = 'port'; - o.placeholder = '1053'; - - o = s.taboption('dns', form.ListValue, 'dns_mode', '*' + ' ' + _('DNS Mode')); - o.value('normal', 'Normal'); - o.value('fake-ip', 'Fake-IP'); - o.value('redir-host', 'Redir-Host'); - - o = s.taboption('dns', form.Value, 'fake_ip_range', '*' + ' ' + _('Fake-IP Range')); - o.datatype = 'cidr4'; - o.placeholder = '198.18.0.1/16'; - o.retain = true; - o.depends('dns_mode', 'fake-ip'); - - o = s.taboption('dns', form.Flag, 'fake_ip_filter', _('Overwrite Fake-IP Filter')); - o.retain = true; - o.rmempty = false; - o.depends('dns_mode', 'fake-ip'); - - o = s.taboption('dns', form.DynamicList, 'fake_ip_filters', _('Edit Fake-IP Filters')); - o.retain = true; - o.depends({ 'dns_mode': 'fake-ip', 'fake_ip_filter': '1' }); - - o = s.taboption('dns', form.ListValue, 'fake_ip_filter_mode', _('Fake-IP Filter Mode')); - o.retain = true; - o.value('blacklist', _('Block Mode')); - o.value('whitelist', _('Allow Mode')); - o.depends({ 'dns_mode': 'fake-ip', 'fake_ip_filter': '1' }); - - o = s.taboption('dns', form.Flag, 'fake_ip_cache', _('Fake-IP Cache')); - o.retain = true; - o.rmempty = false; - o.depends('dns_mode', 'fake-ip'); - - o = s.taboption('dns', form.Flag, 'dns_respect_rules', _('Respect Rules')); - o.rmempty = false; - - o = s.taboption('dns', form.Flag, 'dns_doh_prefer_http3', _('DoH Prefer HTTP/3')); - o.rmempty = false; - - o = s.taboption('dns', form.Flag, 'dns_ipv6', _('IPv6')); - o.rmempty = false; - - o = s.taboption('dns', form.Flag, 'dns_system_hosts', _('Use System Hosts')); - o.rmempty = false; - - o = s.taboption('dns', form.Flag, 'dns_hosts', _('Use Hosts')); - o.rmempty = false; - - o = s.taboption('dns', form.Flag, 'hosts', _('Overwrite Hosts')); - o.rmempty = false; - - o = s.taboption('dns', form.SectionValue, '_hosts', form.TableSection, 'hosts', _('Edit Hosts')); - o.retain = true; - o.depends('hosts', '1'); - - o.subsection.addremove = true; - o.subsection.anonymous = true; - o.subsection.sortable = true; - - so = o.subsection.option(form.Flag, 'enabled', _('Enable')); - so.rmempty = false; - - so = o.subsection.option(form.Value, 'domain_name', _('Domain Name')); - so.rmempty = false; - - so = o.subsection.option(form.DynamicList, 'ip', _('IP')); - - o = s.taboption('dns', form.Flag, 'dns_nameserver', _('Overwrite Nameserver')); - o.rmempty = false; - - o = s.taboption('dns', form.SectionValue, '_dns_nameservers', form.TableSection, 'nameserver', _('Edit Nameservers')); - o.retain = true; - o.depends('dns_nameserver', '1'); - - o.subsection.addremove = true; - o.subsection.anonymous = true; - o.subsection.sortable = true; - - so = o.subsection.option(form.Flag, 'enabled', _('Enable')); - so.rmempty = false; - - so = o.subsection.option(form.ListValue, 'type', _('Type')); - so.value('default-nameserver'); - so.value('proxy-server-nameserver'); - so.value('direct-nameserver'); - so.value('nameserver'); - so.value('fallback'); - - so = o.subsection.option(form.DynamicList, 'nameserver', _('Nameserver')); - - o = s.taboption('dns', form.Flag, 'dns_nameserver_policy', _('Overwrite Nameserver Policy')); - o.rmempty = false; - - o = s.taboption('dns', form.SectionValue, '_dns_nameserver_policies', form.TableSection, 'nameserver_policy', _('Edit Nameserver Policies')); - o.retain = true; - o.depends('dns_nameserver_policy', '1'); - - o.subsection.addremove = true; - o.subsection.anonymous = true; - o.subsection.sortable = true; - - so = o.subsection.option(form.Flag, 'enabled', _('Enable')); - so.rmempty = false; - - so = o.subsection.option(form.Value, 'matcher', _('Matcher')); - so.rmempty = false; - - so = o.subsection.option(form.DynamicList, 'nameserver', _('Nameserver')); - - s.tab('sniffer', _('Sniffer Config')); - - o = s.taboption('sniffer', form.Flag, 'sniffer', _('Enable')); - o.rmempty = false; - - o = s.taboption('sniffer', form.Flag, 'sniffer_sniff_dns_mapping', _('Sniff Redir-Host')); - o.rmempty = false; - - o = s.taboption('sniffer', form.Flag, 'sniffer_sniff_pure_ip', _('Sniff Pure IP')); - o.rmempty = false; - - o = s.taboption('sniffer', form.Flag, 'sniffer_overwrite_destination', _('Overwrite Destination')); - o.rmempty = false; - - o = s.taboption('sniffer', form.Flag, 'sniffer_force_domain_name', _('Overwrite Force Sniff Domain Name')); - o.rmempty = false; - - o = s.taboption('sniffer', form.DynamicList, 'sniffer_force_domain_names', _('Force Sniff Domain Name')); - o.depends('sniffer_force_domain_name', '1'); - - o = s.taboption('sniffer', form.Flag, 'sniffer_ignore_domain_name', _('Overwrite Ignore Sniff Domain Name')); - o.rmempty = false; - - o = s.taboption('sniffer', form.DynamicList, 'sniffer_ignore_domain_names', _('Ignore Sniff Domain Name')); - o.depends('sniffer_ignore_domain_name', '1'); - - o = s.taboption('sniffer', form.Flag, 'sniffer_sniff', _('Overwrite Sniff By Protocol')); - o.rmempty = false; - - o = s.taboption('sniffer', form.SectionValue, '_sniffer_sniffs', form.TableSection, 'sniff', _('Sniff By Protocol')); - o.subsection.anonymous = true; - o.subsection.addremove = false; - o.depends('sniffer_sniff', '1'); - - so = o.subsection.option(form.Flag, 'enabled', _('Enable')); - so.rmempty = false; - - so = o.subsection.option(form.ListValue, 'protocol', _('Protocol')); - so.value('HTTP'); - so.value('TLS'); - so.value('QUIC'); - so.readonly = true; - - so = o.subsection.option(form.DynamicList, 'port', _('Port')); - so.datatype = 'portrange'; - - so = o.subsection.option(form.Flag, 'overwrite_destination', _('Overwrite Destination')); - so.rmempty = false; - - s.tab('geox', _('GeoX Config')); - - o = s.taboption('geox', form.ListValue, 'geoip_format', _('GeoIP Format')); - o.value('dat', 'DAT'); - o.value('mmdb', 'MMDB'); - - o = s.taboption('geox', form.ListValue, 'geodata_loader', _('GeoData Loader')); - o.value('standard', _('Standard Loader')); - o.value('memconservative', _('Memory Conservative Loader')); - - o = s.taboption('geox', form.Value, 'geosite_url', _('GeoSite Url')); - o.rmempty = false; - - o = s.taboption('geox', form.Value, 'geoip_mmdb_url', _('GeoIP(MMDB) Url')); - o.rmempty = false; - - o = s.taboption('geox', form.Value, 'geoip_dat_url', _('GeoIP(DAT) Url')); - o.rmempty = false; - - o = s.taboption('geox', form.Value, 'geoip_asn_url', _('GeoIP(ASN) Url')); - o.rmempty = false; - - o = s.taboption('geox', form.Flag, 'geox_auto_update', _('GeoX Auto Update')); - o.rmempty = false; - - o = s.taboption('geox', form.Value, 'geox_update_interval', _('GeoX Update Interval')); - o.datatype = 'uinteger'; - o.placeholder = '24'; - o.retain = true; - o.depends('geox_auto_update', '1'); - - s.tab('mixin_file_content', _('Mixin File Content')); - - o = s.taboption('mixin_file_content', form.Flag, 'mixin_file_content', '*' + ' ' + _('Enable'), _('Please go to the editor tab to edit the file for mixin')); - o.rmempty = false; - - return m.render(); - } -}); \ No newline at end of file diff --git a/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js b/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js deleted file mode 100644 index 9a20d3e4c..000000000 --- a/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js +++ /dev/null @@ -1,86 +0,0 @@ -'use strict'; -'require form'; -'require view'; -'require uci'; -'require tools.mihomo as mihomo'; - -return view.extend({ - load: function () { - return Promise.all([ - uci.load('mihomo') - ]); - }, - render: function (data) { - let m, s, o, so; - - m = new form.Map('mihomo'); - - s = m.section(form.NamedSection, 'config', 'config', _('Profile')); - - o = s.option(form.FileUpload, '_upload_profile', _('Upload Profile')); - o.browser = true; - o.enable_download = true; - o.root_directory = mihomo.profilesDir; - o.write = function (section_id, formvalue) { - return true; - }; - - s = m.section(form.GridSection, 'subscription', _('Subscription')); - s.addremove = true; - s.anonymous = true; - s.sortable = true; - s.modaltitle = _('Edit Subscription'); - - o = s.option(form.Value, 'name', _('Subscription Name')); - o.rmempty = false; - - o = s.option(form.Value, 'used', _('Used')); - o.modalonly = false; - o.optional = true; - o.readonly = true; - - o = s.option(form.Value, 'total', _('Total')); - o.modalonly = false; - o.optional = true; - o.readonly = true; - - o = s.option(form.Value, 'expire', _('Expire At')); - o.modalonly = false; - o.optional = true; - o.readonly = true; - - o = s.option(form.Value, 'update', _('Update At')); - o.modalonly = false; - o.optional = true; - o.readonly = true; - - o = s.option(form.Button, 'update_subscription'); - o.editable = true; - o.inputstyle = 'positive'; - o.inputtitle = _('Update'); - o.modalonly = false; - o.onclick = function (_, section_id) { - return mihomo.updateSubscription(section_id); - }; - - o = s.option(form.Value, 'url', _('Subscription Url')); - o.modalonly = true; - o.rmempty = false; - - o = s.option(form.Value, 'user_agent', _('User Agent')); - o.default = 'clash'; - o.modalonly = true; - o.rmempty = false; - o.value('clash'); - o.value('clash.meta'); - o.value('mihomo'); - - o = s.option(form.ListValue, 'prefer', _('Prefer')); - o.default = 'remote'; - o.modalonly = true; - o.value('remote', _('Remote')); - o.value('local', _('Local')); - - return m.render(); - } -}); diff --git a/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js b/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js deleted file mode 100644 index 8c631f881..000000000 --- a/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js +++ /dev/null @@ -1,149 +0,0 @@ -'use strict'; -'require form'; -'require view'; -'require uci'; -'require network'; -'require tools.widgets as widgets'; -'require tools.mihomo as mihomo'; - -return view.extend({ - load: function () { - return Promise.all([ - uci.load('mihomo'), - network.getHostHints(), - mihomo.getUsers(), - mihomo.getGroups() - ]); - }, - render: function (data) { - const hosts = data[1].hosts; - const users = data[2]; - const groups = data[3]; - - let m, s, o; - - m = new form.Map('mihomo'); - - s = m.section(form.NamedSection, 'proxy', 'proxy', _('Proxy Config')); - - s.tab('transparent_proxy', _('Transparent Proxy')); - - o = s.taboption('transparent_proxy', form.Flag, 'transparent_proxy', _('Enable')); - o.rmempty = false; - - o = s.taboption('transparent_proxy', form.ListValue, 'tcp_transparent_proxy_mode', _('TCP Proxy Mode')); - o.value('redirect', _('Redirect Mode')); - o.value('tproxy', _('TPROXY Mode')); - o.value('tun', _('TUN Mode')); - - o = s.taboption('transparent_proxy', form.ListValue, 'udp_transparent_proxy_mode', _('UDP Proxy Mode')); - o.value('tproxy', _('TPROXY Mode')); - o.value('tun', _('TUN Mode')); - - o = s.taboption('transparent_proxy', form.Flag, 'ipv4_dns_hijack', _('IPv4 DNS Hijack')); - o.rmempty = false; - - o = s.taboption('transparent_proxy', form.Flag, 'ipv6_dns_hijack', _('IPv6 DNS Hijack')); - o.rmempty = false; - - o = s.taboption('transparent_proxy', form.Flag, 'ipv4_proxy', _('IPv4 Proxy')); - o.rmempty = false; - - o = s.taboption('transparent_proxy', form.Flag, 'ipv6_proxy', _('IPv6 Proxy')); - o.rmempty = false; - - o = s.taboption('transparent_proxy', form.Flag, 'router_proxy', _('Router Proxy')); - o.rmempty = false; - - o = s.taboption('transparent_proxy', form.Flag, 'lan_proxy', _('Lan Proxy')); - o.rmempty = false; - - s.tab('access_control', _('Access Control')); - - o = s.taboption('access_control', form.ListValue, 'access_control_mode', _('Mode')); - o.value('all', _('All Mode')); - o.value('allow', _('Allow Mode')); - o.value('block', _('Block Mode')); - - o = s.taboption('access_control', form.DynamicList, 'acl_ip', 'IP'); - o.datatype = 'ipmask4'; - o.retain = true; - o.depends('access_control_mode', 'allow'); - o.depends('access_control_mode', 'block'); - - for (const mac in hosts) { - const host = hosts[mac]; - for (const ip of host.ipaddrs) { - const hint = host.name || mac; - o.value(ip, hint ? '%s (%s)'.format(ip, hint) : ip); - }; - }; - - o = s.taboption('access_control', form.DynamicList, 'acl_ip6', 'IP6'); - o.datatype = 'ipmask6'; - o.retain = true; - o.depends('access_control_mode', 'allow'); - o.depends('access_control_mode', 'block'); - - for (const mac in hosts) { - const host = hosts[mac]; - for (const ip of host.ip6addrs) { - const hint = host.name || mac; - o.value(ip, hint ? '%s (%s)'.format(ip, hint) : ip); - }; - }; - - o = s.taboption('access_control', form.DynamicList, 'acl_mac', 'MAC'); - o.datatype = 'macaddr'; - o.retain = true; - o.depends('access_control_mode', 'allow'); - o.depends('access_control_mode', 'block'); - - for (const mac in hosts) { - const host = hosts[mac]; - const hint = host.name || host.ipaddrs[0]; - o.value(mac, hint ? '%s (%s)'.format(mac, hint) : mac); - }; - - o = s.taboption('access_control', widgets.NetworkSelect, 'acl_interface', _('Interface')); - o.multiple = true; - o.optional = true; - o.retain = true; - o.depends('access_control_mode', 'allow'); - o.depends('access_control_mode', 'block'); - - s.tab('bypass', _('Bypass')); - - o = s.taboption('bypass', form.MultiValue, 'bypass_user', _('Bypass User')); - o.create = true; - - for (const user of users) { - o.value(user); - }; - - o = s.taboption('bypass', form.MultiValue, 'bypass_group', _('Bypass Group')); - o.create = true; - - for (const group of groups) { - o.value(group); - }; - - o = s.taboption('bypass', form.Flag, 'bypass_china_mainland_ip', _('Bypass China Mainland IP')); - o.rmempty = false; - - o = s.taboption('bypass', form.Value, 'proxy_tcp_dport', _('Destination TCP Port to Proxy')); - o.rmempty = false; - o.value('0-65535', _('All Port')); - o.value('21 22 80 110 143 194 443 465 853 993 995 8080 8443', _('Commonly Used Port')); - - o = s.taboption('bypass', form.Value, 'proxy_udp_dport', _('Destination UDP Port to Proxy')); - o.rmempty = false; - o.value('0-65535', _('All Port')); - o.value('123 443 8443', _('Commonly Used Port')); - - o = s.taboption('bypass', form.DynamicList, 'bypass_dscp', _('Bypass DSCP')); - o.datatype = 'range(0, 63)'; - - return m.render(); - } -}); diff --git a/luci-app-mihomo/po/templates/mihomo.pot b/luci-app-mihomo/po/templates/mihomo.pot deleted file mode 100644 index 30ddf0739..000000000 --- a/luci-app-mihomo/po/templates/mihomo.pot +++ /dev/null @@ -1,735 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:78 -msgid "API Port" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:82 -msgid "API Secret" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:61 -msgid "Access Control" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:64 -msgid "All Mode" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:136 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:141 -msgid "All Port" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:91 -msgid "Allow Lan" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:198 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:65 -msgid "Allow Mode" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:94 -#: applications/luci-app-mihomo/root/usr/share/luci/menu.d/luci-app-mihomo.json:13 -msgid "App Config" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/log.js:26 -msgid "App Log" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:43 -msgid "App Version" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:43 -msgid "Auto" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:197 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:66 -msgid "Block Mode" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:115 -msgid "Bypass" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:131 -msgid "Bypass China Mainland IP" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:144 -msgid "Bypass DSCP" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:124 -msgid "Bypass Group" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:117 -msgid "Bypass User" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/editor.js:25 -msgid "Choose File" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:99 -msgid "Choose Profile" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/log.js:30 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/log.js:63 -msgid "Clear Log" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:137 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:142 -msgid "Commonly Used Port" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:128 -msgid "Core Environment Variable Config" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/log.js:59 -msgid "Core Log" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:57 -msgid "Core Status" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:50 -msgid "Core Version" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:117 -msgid "Cron Expression" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:169 -msgid "DNS Config" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:175 -msgid "DNS Mode" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:171 -msgid "DNS Port" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:134 -msgid "Destination TCP Port to Proxy" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:139 -msgid "Destination UDP Port to Proxy" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:137 -msgid "Device" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:40 -msgid "Direct Mode" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:45 -msgid "Disable" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:142 -msgid "Disable ECN of quic-go" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:138 -msgid "Disable GSO of quic-go" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:134 -msgid "Disable Loopback Detector" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:130 -msgid "Disable Safe Path Check" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:209 -msgid "DoH Prefer HTTP/3" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:235 -msgid "Domain Name" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:117 -msgid "Edit Authentications" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:161 -msgid "Edit DNS Hijacks" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:191 -msgid "Edit Fake-IP Filters" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:224 -msgid "Edit Hosts" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:266 -msgid "Edit Nameserver Policies" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:243 -msgid "Edit Nameservers" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:32 -msgid "Edit Subscription" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/editor.js:23 -#: applications/luci-app-mihomo/root/usr/share/luci/menu.d/luci-app-mihomo.json:45 -msgid "Editor" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:96 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:23 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:44 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:125 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:232 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:251 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:274 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:284 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:316 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:364 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:31 -msgid "Enable" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:166 -msgid "Endpoint Independent NAT" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:47 -msgid "Expire At" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:67 -msgid "External Control Config" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:201 -msgid "Fake-IP Cache" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:195 -msgid "Fake-IP Filter Mode" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:180 -msgid "Fake-IP Range" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:125 -msgid "Fast Reload" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/editor.js:36 -msgid "File for Mixin" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/editor.js:38 -msgid "File for Reserved IP" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/editor.js:39 -msgid "File for Reserved IP6" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:103 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/editor.js:29 -msgid "File:" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:299 -msgid "Force Sniff Domain Name" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:149 -msgid "GSO" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:152 -msgid "GSO Max Size" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:28 -msgid "General Config" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:337 -msgid "GeoData Loader" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:333 -msgid "GeoIP Format" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:350 -msgid "GeoIP(ASN) Url" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:347 -msgid "GeoIP(DAT) Url" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:344 -msgid "GeoIP(MMDB) Url" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:341 -msgid "GeoSite Url" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:353 -msgid "GeoX Auto Update" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:331 -msgid "GeoX Config" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:356 -msgid "GeoX Update Interval" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:38 -msgid "Global Mode" -msgstr "" - -#: applications/luci-app-mihomo/root/usr/share/rpcd/acl.d/luci-app-mihomo.json:3 -msgid "Grant access to mihomo procedures" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:94 -msgid "HTTP Port" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:39 -msgid "How To Use" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:238 -msgid "IP" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:43 -msgid "IPv4 DNS Hijack" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:49 -msgid "IPv4 Proxy" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:50 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:212 -msgid "IPv6" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:46 -msgid "IPv6 DNS Hijack" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:52 -msgid "IPv6 Proxy" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:305 -msgid "Ignore Sniff Domain Name" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:89 -msgid "Inbound Config" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:108 -msgid "Interface" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:58 -msgid "Lan Proxy" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:82 -msgid "Local" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/log.js:24 -#: applications/luci-app-mihomo/root/usr/share/luci/menu.d/luci-app-mihomo.json:53 -msgid "Log" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:30 -msgid "Log Level" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:145 -msgid "MTU" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:42 -msgid "Match Process" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:277 -msgid "Matcher" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:339 -msgid "Memory Conservative Loader" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:39 -#: applications/luci-app-mihomo/root/usr/share/luci/menu.d/luci-app-mihomo.json:3 -msgid "MihomoTProxy" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:102 -msgid "Mixed Port" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:21 -#: applications/luci-app-mihomo/root/usr/share/luci/menu.d/luci-app-mihomo.json:29 -msgid "Mixin Config" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:362 -msgid "Mixin File Content" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:26 -msgid "Mixin Option" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:37 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:63 -msgid "Mode" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:261 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:280 -msgid "Nameserver" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:15 -msgid "Not Running" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:89 -msgid "Open Dashboard" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:47 -msgid "Outbound Interface" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:114 -msgid "Overwrite Authentication" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:158 -msgid "Overwrite DNS Hijack" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:293 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:328 -msgid "Overwrite Destination" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:186 -msgid "Overwrite Fake-IP Filter" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:296 -msgid "Overwrite Force Sniff Domain Name" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:221 -msgid "Overwrite Hosts" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:302 -msgid "Overwrite Ignore Sniff Domain Name" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:240 -msgid "Overwrite Nameserver" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:263 -msgid "Overwrite Nameserver Policy" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:308 -msgid "Overwrite Sniff By Protocol" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:131 -msgid "Password" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:364 -msgid "Please go to the editor tab to edit the file for mixin" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:325 -msgid "Port" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:78 -msgid "Prefer" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:18 -#: applications/luci-app-mihomo/root/usr/share/luci/menu.d/luci-app-mihomo.json:21 -msgid "Profile" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/editor.js:37 -msgid "Profile for Startup" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:319 -msgid "Protocol" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:27 -#: applications/luci-app-mihomo/root/usr/share/luci/menu.d/luci-app-mihomo.json:37 -msgid "Proxy Config" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:35 -msgid "Redirect Mode" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:106 -msgid "Redirect Port" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:69 -msgid "Reload Service" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:81 -msgid "Remote" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:206 -msgid "Respect Rules" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:76 -msgid "Restart Service" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:55 -msgid "Router Proxy" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:39 -msgid "Rule Mode" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:15 -msgid "Running" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:98 -msgid "SOCKS Port" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:86 -msgid "Save Proxy Selection" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:114 -msgid "Scheduled Restart" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/log.js:53 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/log.js:86 -msgid "Scroll To Bottom" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/tools/mihomo.js:100 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/tools/mihomo.js:118 -msgid "Service is not running." -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:311 -msgid "Sniff By Protocol" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:290 -msgid "Sniff Pure IP" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:287 -msgid "Sniff Redir-Host" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:282 -msgid "Sniffer Config" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:140 -msgid "Stack" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:338 -msgid "Standard Loader" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:110 -msgid "Start Delay" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:41 -msgid "Status" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:28 -msgid "Subscription" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:34 -msgid "Subscription Name" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:66 -msgid "Subscription Url" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:107 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/editor.js:33 -msgid "Subscription:" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:56 -msgid "TCP Concurrent" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:59 -msgid "TCP Keep Alive Idle" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:63 -msgid "TCP Keep Alive Interval" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:34 -msgid "TCP Proxy Mode" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:36 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:40 -msgid "TPROXY Mode" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:110 -msgid "TPROXY Port" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:135 -msgid "TUN Config" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:37 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:41 -msgid "TUN Mode" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:122 -msgid "Test Profile" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:42 -msgid "Total" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:29 -msgid "Transparent Proxy" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:39 -msgid "Transparent Proxy with Mihomo on OpenWrt." -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:254 -msgid "Type" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:39 -msgid "UDP Proxy Mode" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:69 -msgid "UI Name" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:71 -msgid "UI Url" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:53 -msgid "Unify Delay" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/tools/mihomo.js:80 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/tools/mihomo.js:84 -msgid "Unknown" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:60 -msgid "Update" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:52 -msgid "Update At" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:83 -msgid "Update Dashboard" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:20 -msgid "Upload Profile" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:218 -msgid "Use Hosts" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:215 -msgid "Use System Hosts" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:37 -msgid "Used" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:70 -msgid "User Agent" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:128 -msgid "Username" -msgstr "" diff --git a/luci-app-mihomo/po/zh_Hans/mihomo.po b/luci-app-mihomo/po/zh_Hans/mihomo.po deleted file mode 100644 index 6ec1634e3..000000000 --- a/luci-app-mihomo/po/zh_Hans/mihomo.po +++ /dev/null @@ -1,742 +0,0 @@ -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" -"Language: zh_Hans\n" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:78 -msgid "API Port" -msgstr "API 端口" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:82 -msgid "API Secret" -msgstr "API 密钥" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:61 -msgid "Access Control" -msgstr "访问控制" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:64 -msgid "All Mode" -msgstr "全部模式" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:136 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:141 -msgid "All Port" -msgstr "全部端口" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:91 -msgid "Allow Lan" -msgstr "允许局域网访问" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:198 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:65 -msgid "Allow Mode" -msgstr "白名单模式" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:94 -#: applications/luci-app-mihomo/root/usr/share/luci/menu.d/luci-app-mihomo.json:13 -msgid "App Config" -msgstr "插件配置" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/log.js:26 -msgid "App Log" -msgstr "插件日志" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:43 -msgid "App Version" -msgstr "插件版本" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:43 -msgid "Auto" -msgstr "自动" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:197 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:66 -msgid "Block Mode" -msgstr "黑名单模式" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:115 -msgid "Bypass" -msgstr "绕过" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:131 -msgid "Bypass China Mainland IP" -msgstr "绕过中国大陆 IP" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:144 -msgid "Bypass DSCP" -msgstr "绕过 DSCP" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:124 -msgid "Bypass Group" -msgstr "绕过用户组" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:117 -msgid "Bypass User" -msgstr "绕过用户" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/editor.js:25 -msgid "Choose File" -msgstr "选择文件" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:99 -msgid "Choose Profile" -msgstr "选择配置文件" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/log.js:30 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/log.js:63 -msgid "Clear Log" -msgstr "清空日志" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:137 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:142 -msgid "Commonly Used Port" -msgstr "常用端口" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:128 -msgid "Core Environment Variable Config" -msgstr "核心环境变量配置" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/log.js:59 -msgid "Core Log" -msgstr "核心日志" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:57 -msgid "Core Status" -msgstr "核心状态" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:50 -msgid "Core Version" -msgstr "核心版本" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:117 -msgid "Cron Expression" -msgstr "Cron 表达式" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:169 -msgid "DNS Config" -msgstr "DNS 配置" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:175 -msgid "DNS Mode" -msgstr "DNS 模式" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:171 -msgid "DNS Port" -msgstr "DNS 端口" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:134 -msgid "Destination TCP Port to Proxy" -msgstr "要代理的 TCP 目标端口" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:139 -msgid "Destination UDP Port to Proxy" -msgstr "要代理的 UDP 目标端口" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:137 -msgid "Device" -msgstr "设备名称" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:40 -msgid "Direct Mode" -msgstr "直连模式" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:45 -msgid "Disable" -msgstr "禁用" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:142 -msgid "Disable ECN of quic-go" -msgstr "禁用 quic-go 的显式拥塞通知" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:138 -msgid "Disable GSO of quic-go" -msgstr "禁用 quic-go 的通用分段卸载" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:134 -msgid "Disable Loopback Detector" -msgstr "禁用回环检测" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:130 -msgid "Disable Safe Path Check" -msgstr "禁用安全路径检查" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:209 -msgid "DoH Prefer HTTP/3" -msgstr "DoH 优先 HTTP/3" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:235 -msgid "Domain Name" -msgstr "域名" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:117 -msgid "Edit Authentications" -msgstr "编辑身份验证" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:161 -msgid "Edit DNS Hijacks" -msgstr "编辑 DNS 劫持" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:191 -msgid "Edit Fake-IP Filters" -msgstr "编辑 Fake-IP 过滤列表" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:224 -msgid "Edit Hosts" -msgstr "编辑 Hosts" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:266 -msgid "Edit Nameserver Policies" -msgstr "编辑 DNS 服务器查询策略" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:243 -msgid "Edit Nameservers" -msgstr "编辑 DNS 服务器" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:32 -msgid "Edit Subscription" -msgstr "编辑订阅" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/editor.js:23 -#: applications/luci-app-mihomo/root/usr/share/luci/menu.d/luci-app-mihomo.json:45 -msgid "Editor" -msgstr "编辑器" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:96 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:23 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:44 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:125 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:232 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:251 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:274 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:284 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:316 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:364 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:31 -msgid "Enable" -msgstr "启用" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:166 -msgid "Endpoint Independent NAT" -msgstr "独立于端点的 NAT" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:47 -msgid "Expire At" -msgstr "到期时间" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:67 -msgid "External Control Config" -msgstr "外部控制配置" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:201 -msgid "Fake-IP Cache" -msgstr "Fake-IP 缓存" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:195 -msgid "Fake-IP Filter Mode" -msgstr "Fake-IP 过滤模式" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:180 -msgid "Fake-IP Range" -msgstr "Fake-IP 范围" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:125 -msgid "Fast Reload" -msgstr "快速重载" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/editor.js:36 -msgid "File for Mixin" -msgstr "用于混入的文件" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/editor.js:38 -msgid "File for Reserved IP" -msgstr "IPv4 保留地址" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/editor.js:39 -msgid "File for Reserved IP6" -msgstr "IPv6 保留地址" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:103 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/editor.js:29 -msgid "File:" -msgstr "文件:" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:299 -msgid "Force Sniff Domain Name" -msgstr "强制嗅探的域名" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:149 -msgid "GSO" -msgstr "通用分段卸载" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:152 -msgid "GSO Max Size" -msgstr "分段最大长度" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:28 -msgid "General Config" -msgstr "全局配置" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:337 -msgid "GeoData Loader" -msgstr "GeoData 加载器" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:333 -msgid "GeoIP Format" -msgstr "GeoIP 格式" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:350 -msgid "GeoIP(ASN) Url" -msgstr "GeoIP(ASN) 下载地址" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:347 -msgid "GeoIP(DAT) Url" -msgstr "GeoIP(DAT) 下载地址" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:344 -msgid "GeoIP(MMDB) Url" -msgstr "GeoIP(MMDB) 下载地址" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:341 -msgid "GeoSite Url" -msgstr "GeoSite 下载地址" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:353 -msgid "GeoX Auto Update" -msgstr "定时更新GeoX文件" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:331 -msgid "GeoX Config" -msgstr "GeoX 配置" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:356 -msgid "GeoX Update Interval" -msgstr "GeoX 文件更新间隔" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:38 -msgid "Global Mode" -msgstr "全局模式" - -#: applications/luci-app-mihomo/root/usr/share/rpcd/acl.d/luci-app-mihomo.json:3 -msgid "Grant access to mihomo procedures" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:94 -msgid "HTTP Port" -msgstr "HTTP 端口" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:39 -msgid "How To Use" -msgstr "使用说明" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:238 -msgid "IP" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:43 -msgid "IPv4 DNS Hijack" -msgstr "IPv4 DNS 劫持" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:49 -msgid "IPv4 Proxy" -msgstr "IPv4 代理" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:50 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:212 -msgid "IPv6" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:46 -msgid "IPv6 DNS Hijack" -msgstr "IPv6 DNS 劫持" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:52 -msgid "IPv6 Proxy" -msgstr "IPv6 代理" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:305 -msgid "Ignore Sniff Domain Name" -msgstr "忽略嗅探的域名" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:89 -msgid "Inbound Config" -msgstr "入站配置" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:108 -msgid "Interface" -msgstr "接口" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:58 -msgid "Lan Proxy" -msgstr "局域网代理" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:82 -msgid "Local" -msgstr "本地" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/log.js:24 -#: applications/luci-app-mihomo/root/usr/share/luci/menu.d/luci-app-mihomo.json:53 -msgid "Log" -msgstr "日志" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:30 -msgid "Log Level" -msgstr "日志级别" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:145 -msgid "MTU" -msgstr "最大传输单元" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:42 -msgid "Match Process" -msgstr "匹配进程" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:277 -msgid "Matcher" -msgstr "匹配" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:339 -msgid "Memory Conservative Loader" -msgstr "为内存受限设备优化的加载器" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:39 -#: applications/luci-app-mihomo/root/usr/share/luci/menu.d/luci-app-mihomo.json:3 -msgid "MihomoTProxy" -msgstr "" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:102 -msgid "Mixed Port" -msgstr "混合端口" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:21 -#: applications/luci-app-mihomo/root/usr/share/luci/menu.d/luci-app-mihomo.json:29 -msgid "Mixin Config" -msgstr "混入配置" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:362 -msgid "Mixin File Content" -msgstr "混入文件内容" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:26 -msgid "Mixin Option" -msgstr "混入选项" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:37 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:63 -msgid "Mode" -msgstr "模式" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:261 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:280 -msgid "Nameserver" -msgstr "DNS 服务器" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:15 -msgid "Not Running" -msgstr "未在运行" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:89 -msgid "Open Dashboard" -msgstr "打开面板" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:47 -msgid "Outbound Interface" -msgstr "出站接口" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:114 -msgid "Overwrite Authentication" -msgstr "覆盖身份验证" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:158 -msgid "Overwrite DNS Hijack" -msgstr "覆盖 DNS 劫持" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:293 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:328 -msgid "Overwrite Destination" -msgstr "将嗅探结果作为连接目标" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:186 -msgid "Overwrite Fake-IP Filter" -msgstr "覆盖 Fake-IP 过滤列表" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:296 -msgid "Overwrite Force Sniff Domain Name" -msgstr "覆盖强制嗅探的域名" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:221 -msgid "Overwrite Hosts" -msgstr "覆盖 Hosts" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:302 -msgid "Overwrite Ignore Sniff Domain Name" -msgstr "覆盖忽略嗅探的域名" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:240 -msgid "Overwrite Nameserver" -msgstr "覆盖 DNS 服务器" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:263 -msgid "Overwrite Nameserver Policy" -msgstr "覆盖 DNS 服务器查询策略" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:308 -msgid "Overwrite Sniff By Protocol" -msgstr "覆盖按协议嗅探" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:131 -msgid "Password" -msgstr "密码" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:364 -msgid "Please go to the editor tab to edit the file for mixin" -msgstr "请前往编辑器标签编辑用于混入的文件" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:325 -msgid "Port" -msgstr "端口" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:78 -msgid "Prefer" -msgstr "优先" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:18 -#: applications/luci-app-mihomo/root/usr/share/luci/menu.d/luci-app-mihomo.json:21 -msgid "Profile" -msgstr "配置文件" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/editor.js:37 -msgid "Profile for Startup" -msgstr "用于启动的配置文件" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:319 -msgid "Protocol" -msgstr "协议" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:27 -#: applications/luci-app-mihomo/root/usr/share/luci/menu.d/luci-app-mihomo.json:37 -msgid "Proxy Config" -msgstr "代理配置" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:35 -msgid "Redirect Mode" -msgstr "Redirect 模式" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:106 -msgid "Redirect Port" -msgstr "Redirect 端口" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:69 -msgid "Reload Service" -msgstr "重载服务" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:81 -msgid "Remote" -msgstr "远程" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:206 -msgid "Respect Rules" -msgstr "遵循分流规则" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:76 -msgid "Restart Service" -msgstr "重启服务" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:55 -msgid "Router Proxy" -msgstr "路由器代理" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:39 -msgid "Rule Mode" -msgstr "规则模式" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:15 -msgid "Running" -msgstr "运行中" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:98 -msgid "SOCKS Port" -msgstr "SOCKS 端口" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:86 -msgid "Save Proxy Selection" -msgstr "保存节点/策略组选择" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:114 -msgid "Scheduled Restart" -msgstr "定时重启" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/log.js:53 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/log.js:86 -msgid "Scroll To Bottom" -msgstr "滚动到底部" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/tools/mihomo.js:100 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/tools/mihomo.js:118 -msgid "Service is not running." -msgstr "服务未在运行。" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:311 -msgid "Sniff By Protocol" -msgstr "按协议嗅探" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:290 -msgid "Sniff Pure IP" -msgstr "嗅探纯 IP 连接" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:287 -msgid "Sniff Redir-Host" -msgstr "嗅探 Redir-Host 流量" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:282 -msgid "Sniffer Config" -msgstr "嗅探器配置" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:140 -msgid "Stack" -msgstr "栈" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:338 -msgid "Standard Loader" -msgstr "标准加载器" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:110 -msgid "Start Delay" -msgstr "启动延迟" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:41 -msgid "Status" -msgstr "状态" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:28 -msgid "Subscription" -msgstr "订阅" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:34 -msgid "Subscription Name" -msgstr "订阅名称" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:66 -msgid "Subscription Url" -msgstr "订阅链接" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:107 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/editor.js:33 -msgid "Subscription:" -msgstr "订阅:" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:56 -msgid "TCP Concurrent" -msgstr "TCP 并发" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:59 -msgid "TCP Keep Alive Idle" -msgstr "TCP Keep Alive 空闲" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:63 -msgid "TCP Keep Alive Interval" -msgstr "TCP Keep Alive 间隔" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:34 -msgid "TCP Proxy Mode" -msgstr "TCP 代理模式" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:36 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:40 -msgid "TPROXY Mode" -msgstr "TPROXY 模式" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:110 -msgid "TPROXY Port" -msgstr "TPROXY 端口" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:135 -msgid "TUN Config" -msgstr "TUN 配置" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:37 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:41 -msgid "TUN Mode" -msgstr "TUN 模式" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:122 -msgid "Test Profile" -msgstr "检查配置文件" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:42 -msgid "Total" -msgstr "总量" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:29 -msgid "Transparent Proxy" -msgstr "透明代理" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:39 -msgid "Transparent Proxy with Mihomo on OpenWrt." -msgstr "在 OpenWrt 上使用 Mihomo 进行透明代理。" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:254 -msgid "Type" -msgstr "类型" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:39 -msgid "UDP Proxy Mode" -msgstr "UDP 代理模式" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:69 -msgid "UI Name" -msgstr "UI 名称" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:71 -msgid "UI Url" -msgstr "UI 下载地址" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:53 -msgid "Unify Delay" -msgstr "统一延迟" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/tools/mihomo.js:80 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/tools/mihomo.js:84 -msgid "Unknown" -msgstr "未知" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:60 -msgid "Update" -msgstr "更新" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:52 -msgid "Update At" -msgstr "更新时间" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:83 -msgid "Update Dashboard" -msgstr "更新面板" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:20 -msgid "Upload Profile" -msgstr "上传配置文件" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:218 -msgid "Use Hosts" -msgstr "使用 Hosts" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:215 -msgid "Use System Hosts" -msgstr "使用系统的 Hosts" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:37 -msgid "Used" -msgstr "已使用" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:70 -msgid "User Agent" -msgstr "用户代理(UA)" - -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:128 -msgid "Username" -msgstr "用户名" diff --git a/luci-app-mihomo/root/etc/uci-defaults/40_luci-mihomo b/luci-app-mihomo/root/etc/uci-defaults/40_luci-mihomo deleted file mode 100644 index 080086891..000000000 --- a/luci-app-mihomo/root/etc/uci-defaults/40_luci-mihomo +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -rm -rf /var/luci-modulecache/; rm -f /var/luci-indexcache; -[ -x /etc/init.d/rpcd ] && /etc/init.d/rpcd reload; -exit 0 diff --git a/luci-app-mihomo/root/usr/libexec/mihomo-call b/luci-app-mihomo/root/usr/libexec/mihomo-call deleted file mode 100755 index 533ce5343..000000000 --- a/luci-app-mihomo/root/usr/libexec/mihomo-call +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/sh - -. $IPKG_INSTROOT/etc/mihomo/scripts/include.sh - -action=$1 -shift - -case "$action" in - clear_log) - case "$1" in - app) - echo -n > "$APP_LOG_PATH" - ;; - core) - echo -n > "$CORE_LOG_PATH" - ;; - esac - ;; - subscription) - case "$1" in - update) - /etc/init.d/mihomo update_subscription "$2" - ;; - esac - ;; - load) - case "$1" in - profile) - yq -M -o json < "$RUN_PROFILE_PATH" - ;; - esac - ;; - service) - case "$1" in - reload) - /etc/init.d/mihomo reload - ;; - restart) - /etc/init.d/mihomo restart - ;; - esac - ;; - version) - case "$1" in - app) - if [ -x "/bin/opkg" ]; then - opkg list-installed "luci-app-mihomo" | cut -d " " -f 3 - elif [ -x "/usr/bin/apk" ]; then - apk list -I "luci-app-mihomo" | cut -d ' ' -f 1 | cut -d '-' -f 4 - fi - ;; - core) - mihomo -v | grep "Mihomo" | cut -d " " -f 3 - ;; - esac - ;; -esac diff --git a/luci-app-mihomo/root/usr/share/luci/menu.d/luci-app-mihomo.json b/luci-app-mihomo/root/usr/share/luci/menu.d/luci-app-mihomo.json deleted file mode 100644 index b2860282b..000000000 --- a/luci-app-mihomo/root/usr/share/luci/menu.d/luci-app-mihomo.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "admin/services/mihomo": { - "title": "MihomoTProxy", - "action": { - "type": "firstchild" - }, - "depends": { - "acl": [ "luci-app-mihomo" ], - "uci": { "mihomo": true } - } - }, - "admin/services/mihomo/config": { - "title": "App Config", - "order": 10, - "action": { - "type": "view", - "path": "mihomo/app" - } - }, - "admin/services/mihomo/profile": { - "title": "Profile", - "order": 20, - "action": { - "type": "view", - "path": "mihomo/profile" - } - }, - "admin/services/mihomo/mixin": { - "title": "Mixin Config", - "order": 30, - "action": { - "type": "view", - "path": "mihomo/mixin" - } - }, - "admin/services/mihomo/proxy": { - "title": "Proxy Config", - "order": 40, - "action": { - "type": "view", - "path": "mihomo/proxy" - } - }, - "admin/services/mihomo/editor": { - "title": "Editor", - "order": 50, - "action": { - "type": "view", - "path": "mihomo/editor" - } - }, - "admin/services/mihomo/log": { - "title": "Log", - "order": 60, - "action": { - "type": "view", - "path": "mihomo/log" - } - } -} \ No newline at end of file diff --git a/luci-app-mihomo/root/usr/share/rpcd/acl.d/luci-app-mihomo.json b/luci-app-mihomo/root/usr/share/rpcd/acl.d/luci-app-mihomo.json deleted file mode 100644 index ef8492c3e..000000000 --- a/luci-app-mihomo/root/usr/share/rpcd/acl.d/luci-app-mihomo.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "luci-app-mihomo": { - "description": "Grant access to mihomo procedures", - "read": { - "uci": [ "mihomo" ], - "ubus": { - "service": [ "list" ] - }, - "file": { - "/etc/passwd": ["read"], - "/etc/group": ["read"], - "/etc/mihomo/profiles/*.yaml": ["read"], - "/etc/mihomo/profiles/*.yml": ["read"], - "/etc/mihomo/subscriptions/*.yaml": ["read"], - "/etc/mihomo/subscriptions/*.yml": ["read"], - "/etc/mihomo/mixin.yaml": ["read"], - "/etc/mihomo/run/config.yaml": ["read"], - "/etc/mihomo/nftables/reserved_ip.nft": ["read"], - "/etc/mihomo/nftables/reserved_ip6.nft": ["read"], - "/var/log/mihomo/*.log": ["read"], - "/usr/libexec/mihomo-call": ["exec"] - } - }, - "write": { - "uci": [ "mihomo" ], - "file": { - "/etc/mihomo/profiles/*.yaml": ["write"], - "/etc/mihomo/profiles/*.yml": ["write"], - "/etc/mihomo/subscriptions/*.yaml": ["write"], - "/etc/mihomo/subscriptions/*.yml": ["write"], - "/etc/mihomo/mixin.yaml": ["write"], - "/etc/mihomo/run/config.yaml": ["write"], - "/etc/mihomo/nftables/reserved_ip.nft": ["write"], - "/etc/mihomo/nftables/reserved_ip6.nft": ["write"] - } - } - } -} \ No newline at end of file