new feature: extra flags

1. you can integrate additional flags within the Extra Settings.
2. refactor UI
3. bump version to v1.1.0.
This commit is contained in:
asvow
2024-06-05 19:56:36 +08:00
parent 35d083156a
commit 03b49ab6e5
7 changed files with 208 additions and 154 deletions

View File

@@ -8,7 +8,7 @@ LUCI_TITLE:=LuCI for Tailscale
LUCI_DEPENDS:=+tailscale +jsonfilter +ucode LUCI_DEPENDS:=+tailscale +jsonfilter +ucode
LUCI_PKGARCH:=all LUCI_PKGARCH:=all
PKG_VERSION:=1.0.7 PKG_VERSION:=1.1.0
include $(TOPDIR)/feeds/luci/luci.mk include $(TOPDIR)/feeds/luci/luci.mk

View File

@@ -23,20 +23,22 @@ return view.extend({
'daemon.err': { status: 'StdErr', startIndex: 9 }, 'daemon.err': { status: 'StdErr', startIndex: 9 },
'daemon.notice': { status: 'Info', startIndex: 10 } 'daemon.notice': { status: 'Info', startIndex: 10 }
}; };
self.logs = res.stdout.split('\n').map(function(log) { if (res.stdout) {
var logParts = log.split(' ').filter(Boolean); self.logs = res.stdout.split('\n').map(function(log) {
if (logParts.length >= 6) { var logParts = log.split(' ').filter(Boolean);
var formattedTime = logParts[1] + ' ' + logParts[2] + ' - ' + logParts[3]; if (logParts.length >= 6) {
var status = logParts[5]; var formattedTime = logParts[1] + ' ' + logParts[2] + ' - ' + logParts[3];
var mapping = statusMappings[status] || { status: status, startIndex: 9 }; var status = logParts[5];
status = mapping.status; var mapping = statusMappings[status] || { status: status, startIndex: 9 };
var startIndex = mapping.startIndex; status = mapping.status;
var message = logParts.slice(startIndex).join(' '); var startIndex = mapping.startIndex;
return formattedTime + ' [ ' + status + ' ] - ' + message; var message = logParts.slice(startIndex).join(' ');
} else { return formattedTime + ' [ ' + status + ' ] - ' + message;
return ''; } else {
} return '';
}).filter(Boolean); }
}).filter(Boolean);
}
self.updateLogView(); self.updateLogView();
} else { } else {
throw new Error(res.stdout + ' ' + res.stderr); throw new Error(res.stdout + ' ' + res.stderr);
@@ -48,7 +50,7 @@ return view.extend({
updateLogView: function() { updateLogView: function() {
var view = document.getElementById('syslog'); var view = document.getElementById('syslog');
var logs = this.logs; var logs = this.logs;
if (logs.length === 0) { if (logs.length <= 100) {
view.textContent = _('No logs available'); view.textContent = _('No logs available');
return; return;
} }

View File

@@ -110,79 +110,81 @@ return view.extend({
} }
s = m.section(form.NamedSection, 'settings', 'config'); s = m.section(form.NamedSection, 'settings', 'config');
s.title = _('Basic Settings'); s.tab('basic',_('Basic Settings'));
o = s.option(form.Flag, 'enabled', _('Enable')); o = s.taboption('basic',form.Flag, 'enabled', _('Enable'));
o.default = o.disabled; o.default = o.disabled;
o.rmempty = false; o.rmempty = false;
o = s.option(form.DummyValue, 'login_status', _('Login Status')); o = s.taboption('basic',form.DummyValue, 'login_status', _('Login Status'));
o.depends('enabled', '1'); o.depends('enabled', '1');
o.renderWidget = function(section_id, option_id) { o.renderWidget = function(section_id, option_id) {
return E('div', { 'id': 'login_status_div' }, _('Collecting data ...')); return E('div', { 'id': 'login_status_div' }, _('Collecting data ...'));
}; };
o = s.option(form.Value, 'port', _('Port'), _('Set the Tailscale port number.')); o = s.taboption('basic',form.Value, 'port', _('Port'), _('Set the Tailscale port number.'));
o.datatype = 'port'; o.datatype = 'port';
o.default = '41641'; o.default = '41641';
o.rmempty = false; o.rmempty = false;
o = s.option(form.Value, 'config_path', _('Workdir'), _('The working directory contains config files, audit logs, and runtime info.')); o = s.taboption('basic',form.Value, 'config_path', _('Workdir'), _('The working directory contains config files, audit logs, and runtime info.'));
o.default = '/etc/tailscale'; o.default = '/etc/tailscale';
o.rmempty = false; o.rmempty = false;
o = s.option(form.ListValue, 'fw_mode', _('Firewall Mode')); o = s.taboption('basic',form.ListValue, 'fw_mode', _('Firewall Mode'));
o.value('nftables', 'nftables'); o.value('nftables', 'nftables');
o.value('iptables', 'iptables'); o.value('iptables', 'iptables');
o.default = 'nftables'; o.default = 'nftables';
o.rmempty = false; o.rmempty = false;
o = s.option(form.Flag, 'log_stdout', _('Output Log'), _('Logging program activities.')); o = s.taboption('basic',form.Flag, 'log_stdout', _('StdOut Log'), _('Logging program activities.'));
o.default = o.enabled; o.default = o.enabled;
o.rmempty = false; o.rmempty = false;
o = s.option(form.Flag, 'log_stderr', _('Error Log'), _('Logging program errors and exceptions.')); o = s.taboption('basic',form.Flag, 'log_stderr', _('StdErr Log'), _('Logging program errors and exceptions.'));
o.default = o.enabled; o.default = o.enabled;
o.rmempty = false; o.rmempty = false;
s = m.section(form.NamedSection, 'settings', 'config'); s.tab('advance',_('Advanced Settings'));
s.title = _('Advanced Settings');
o = s.option(form.Flag, 'acceptRoutes', _('Auto Mesh'), _('Accept subnet routes that other nodes advertise.')); o = s.taboption('advance',form.Flag, 'acceptRoutes', _('Auto Mesh'), _('Accept subnet routes that other nodes advertise.'));
o.default = o.disabled; o.default = o.disabled;
o.rmempty = false; o.rmempty = false;
o = s.option(form.Value, 'hostname', _('Device Name'), _("Leave blank to use the device's hostname.")); o = s.taboption('advance',form.Value, 'hostname', _('Device Name'), _("Leave blank to use the device's hostname."));
o.default = ''; o.default = '';
o.rmempty = true; o.rmempty = true;
o = s.option(form.Flag, 'acceptDNS', _('Accept DNS'), _('Accept DNS configuration from the Tailscale admin console.')); o = s.taboption('advance',form.Flag, 'acceptDNS', _('Accept DNS'), _('Accept DNS configuration from the Tailscale admin console.'));
o.default = o.enabled; o.default = o.enabled;
o.rmempty = false; o.rmempty = false;
o = s.option(form.Flag, 'advertiseExitNode', _('Exit Node'), _('Offer to be an exit node for outbound internet traffic from the Tailscale network.')); o = s.taboption('advance',form.Flag, 'advertiseExitNode', _('Exit Node'), _('Offer to be an exit node for outbound internet traffic from the Tailscale network.'));
o.default = o.disabled; o.default = o.disabled;
o.rmempty = false; o.rmempty = false;
o = s.option(form.Flag, 's2s', _('Site To Site'), _('Use site-to-site layer 3 networking to connect two subnets on your Tailscale network with each other.')); o = s.taboption('advance',form.Value, 'advertiseRoutes', _('Expose Subnets'), _('Expose physical network routes into Tailscale, e.g. <code>10.0.0.0/24</code>.'));
o.default = o.disabled;
o.depends('acceptRoutes', '1');
o.rmempty = false;
o = s.option(form.Value, 'advertiseRoutes', _('Expose Subnets'), _('Expose physical network routes onto Tailscale. e.g. 10.0.0.0/24'));
o.default = ''; o.default = '';
o.depends('acceptRoutes', '1'); o.depends('acceptRoutes', '1');
o.rmempty = true; o.rmempty = true;
o = s.option(form.MultiValue, 'access', _('Access Control')); o = s.taboption('advance',form.Flag, 's2s', _('Site To Site'), _('Use site-to-site layer 3 networking to connect subnets on the Tailscale network.'));
o.default = o.disabled;
o.depends('acceptRoutes', '1');
o.rmempty = false;
o = s.taboption('advance',form.MultiValue, 'access', _('Access Control'));
o.value('tsfwlan', _('Tailscale access LAN')); o.value('tsfwlan', _('Tailscale access LAN'));
o.value('tsfwwan', _('Tailscale access WAN')); o.value('tsfwwan', _('Tailscale access WAN'));
o.value('lanfwts', _('LAN access Tailscale')); o.value('lanfwts', _('LAN access Tailscale'));
o.value('wanfwts', _('WAN access Tailscale')); o.value('wanfwts', _('WAN access Tailscale'));
o.default = "tsfwlan tsfwwan lanfwts"; o.default = "tsfwlan tsfwwan lanfwts";
o.depends('acceptRoutes', '1');
o.rmempty = false; o.rmempty = false;
s.tab('extra',_('Extra Settings'));
o = s.taboption('extra', form.DynamicList, 'flags', _('Additional Flags'), String.format(_('List of extra flags. Format: --flags=value, e.g. <code>--exit-node=10.0.0.1</code>. <br> %s for enabling settings upon the initiation of Tailscale.'), '<a href="https://tailscale.com/kb/1080/cli#up" target="_blank">' + _('Available flags') + '</a>'));
s = m.section(form.NamedSection, 'settings', 'config'); s = m.section(form.NamedSection, 'settings', 'config');
s.title = _('Custom Server Settings'); s.title = _('Custom Server Settings');
s.description = String.format(_('Use %s to deploy a private server.'), '<a href="https://github.com/juanfont/headscale" target="_blank">headscale</a>'); s.description = String.format(_('Use %s to deploy a private server.'), '<a href="https://github.com/juanfont/headscale" target="_blank">headscale</a>');

View File

@@ -1,23 +1,27 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8" msgstr "Content-Type: text/plain; charset=UTF-8"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:159 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:158
msgid "Accept DNS" msgid "Accept DNS"
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:159 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:158
msgid "Accept DNS configuration from the Tailscale admin console." msgid "Accept DNS configuration from the Tailscale admin console."
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:151 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:150
msgid "Accept subnet routes that other nodes advertise." msgid "Accept subnet routes that other nodes advertise."
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:177 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:176
msgid "Access Control" msgid "Access Control"
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:149 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:186
msgid "Additional Flags"
msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:148
msgid "Advanced Settings" msgid "Advanced Settings"
msgstr "" msgstr ""
@@ -25,14 +29,18 @@ msgstr ""
msgid "Are you sure you want to logout and unbind the current device?" msgid "Are you sure you want to logout and unbind the current device?"
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:194 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:196
msgid "Auth Key" msgid "Auth Key"
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:151 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:150
msgid "Auto Mesh" msgid "Auto Mesh"
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:186
msgid "Available flags"
msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:113 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:113
msgid "Basic Settings" msgid "Basic Settings"
msgstr "" msgstr ""
@@ -42,11 +50,11 @@ msgstr ""
msgid "Collecting data ..." msgid "Collecting data ..."
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:187 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:189
msgid "Custom Server Settings" msgid "Custom Server Settings"
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:155 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:154
msgid "Device Name" msgid "Device Name"
msgstr "" msgstr ""
@@ -54,20 +62,20 @@ msgstr ""
msgid "Enable" msgid "Enable"
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:144 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:162
msgid "Error Log"
msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:163
msgid "Exit Node" msgid "Exit Node"
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:172 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:166
msgid "Expose Subnets" msgid "Expose Subnets"
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:172 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:166
msgid "Expose physical network routes onto Tailscale. e.g. 10.0.0.0/24" msgid "Expose physical network routes into Tailscale, e.g. <code>10.0.0.0/24</code>."
msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:184
msgid "Extra Settings"
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:134 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:134
@@ -98,14 +106,18 @@ msgstr ""
msgid "Interface Name" msgid "Interface Name"
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:180 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:179
msgid "LAN access Tailscale" msgid "LAN access Tailscale"
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:155 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:154
msgid "Leave blank to use the device's hostname." msgid "Leave blank to use the device's hostname."
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:186
msgid "List of extra flags. Format: --flags=value, e.g. <code>--exit-node=10.0.0.1</code>. <br> %s for enabling settings upon the initiation of Tailscale."
msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:140 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:140
msgid "Logging program activities." msgid "Logging program activities."
msgstr "" msgstr ""
@@ -151,14 +163,10 @@ msgstr ""
msgid "No logs available" msgid "No logs available"
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:163 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:162
msgid "Offer to be an exit node for outbound internet traffic from the Tailscale network." msgid "Offer to be an exit node for outbound internet traffic from the Tailscale network."
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:140
msgid "Output Log"
msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:125 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:125
msgid "Port" msgid "Port"
msgstr "" msgstr ""
@@ -167,7 +175,7 @@ msgstr ""
msgid "RUNNING" msgid "RUNNING"
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:190 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:192
msgid "Server Address" msgid "Server Address"
msgstr "" msgstr ""
@@ -175,10 +183,18 @@ msgstr ""
msgid "Set the Tailscale port number." msgid "Set the Tailscale port number."
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:167 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:171
msgid "Site To Site" msgid "Site To Site"
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:144
msgid "StdErr Log"
msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:140
msgid "StdOut Log"
msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/interface.js:72 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/interface.js:72
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:51 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:51
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:53 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:53
@@ -187,11 +203,11 @@ msgstr ""
msgid "Tailscale" msgid "Tailscale"
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:178 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:177
msgid "Tailscale access LAN" msgid "Tailscale access LAN"
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:179 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:178
msgid "Tailscale access WAN" msgid "Tailscale access WAN"
msgstr "" msgstr ""
@@ -224,15 +240,15 @@ msgstr ""
msgid "Unable to get interface info: %s." msgid "Unable to get interface info: %s."
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:188 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:190
msgid "Use %s to deploy a private server." msgid "Use %s to deploy a private server."
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:167 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:171
msgid "Use site-to-site layer 3 networking to connect two subnets on your Tailscale network with each other." msgid "Use site-to-site layer 3 networking to connect subnets on the Tailscale network."
msgstr "" msgstr ""
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:181 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:180
msgid "WAN access Tailscale" msgid "WAN access Tailscale"
msgstr "" msgstr ""

View File

@@ -7,52 +7,60 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:159 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:158
msgid "Accept DNS" msgid "Accept DNS"
msgstr "允许DNS" msgstr "允许DNS"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:159 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:158
msgid "Accept DNS configuration from the Tailscale admin console." msgid "Accept DNS configuration from the Tailscale admin console."
msgstr "使用 Tailscale 管理控制台的 DNS 配置。" msgstr "使用 Tailscale 管理控制台的 DNS 配置。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:151 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:150
msgid "Accept subnet routes that other nodes advertise." msgid "Accept subnet routes that other nodes advertise."
msgstr "接受其他节点广播的子网路由。" msgstr "接受其他节点广播的子网路由。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:177 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:176
msgid "Access Control" msgid "Access Control"
msgstr "访问控制" msgstr "访问控制"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:149 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:186
msgid "Additional Flags"
msgstr "参数列表"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:148
msgid "Advanced Settings" msgid "Advanced Settings"
msgstr "高级设置" msgstr "高级选项"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:99 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:99
msgid "Are you sure you want to logout and unbind the current device?" msgid "Are you sure you want to logout and unbind the current device?"
msgstr "是否注销当前登录并且解绑当前设备?" msgstr "是否注销当前登录并且解绑当前设备?"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:194 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:196
msgid "Auth Key" msgid "Auth Key"
msgstr "认证密钥" msgstr "认证密钥"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:151 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:150
msgid "Auto Mesh" msgid "Auto Mesh"
msgstr "自动组网" msgstr "自动组网"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:186
msgid "Available flags"
msgstr "可用参数"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:113 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:113
msgid "Basic Settings" msgid "Basic Settings"
msgstr "基础设置" msgstr "基础选项"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:108 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:108
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:122 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:122
msgid "Collecting data ..." msgid "Collecting data ..."
msgstr "正在收集数据..." msgstr "正在收集数据..."
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:187 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:189
msgid "Custom Server Settings" msgid "Custom Server Settings"
msgstr "自定义服务器" msgstr "自定义服务器"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:155 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:154
msgid "Device Name" msgid "Device Name"
msgstr "设备名称" msgstr "设备名称"
@@ -60,21 +68,21 @@ msgstr "设备名称"
msgid "Enable" msgid "Enable"
msgstr "启用" msgstr "启用"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:144 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:162
msgid "Error Log"
msgstr "错误日志"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:163
msgid "Exit Node" msgid "Exit Node"
msgstr "出口节点" msgstr "出口节点"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:172 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:166
msgid "Expose Subnets" msgid "Expose Subnets"
msgstr "公开网段" msgstr "公开网段"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:172 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:166
msgid "Expose physical network routes onto Tailscale. e.g. 10.0.0.0/24" msgid "Expose physical network routes into Tailscale, e.g. <code>10.0.0.0/24</code>."
msgstr "广播子网路由至 Tailscale例如10.0.0.0/24" msgstr "广播子网路由至 Tailscale例如:<code>10.0.0.0/24</code>。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:184
msgid "Extra Settings"
msgstr "附加选项"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:134 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:134
msgid "Firewall Mode" msgid "Firewall Mode"
@@ -104,21 +112,25 @@ msgstr "接口信息"
msgid "Interface Name" msgid "Interface Name"
msgstr "接口名称" msgstr "接口名称"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:180 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:179
msgid "LAN access Tailscale" msgid "LAN access Tailscale"
msgstr "本地局域网访问虚拟局域网" msgstr "本地局域网访问虚拟局域网"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:155 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:154
msgid "Leave blank to use the device's hostname." msgid "Leave blank to use the device's hostname."
msgstr "留空以使用设备的主机名。" msgstr "留空以使用设备的主机名。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:186
msgid "List of extra flags. Format: --flags=value, e.g. <code>--exit-node=10.0.0.1</code>. <br> %s for enabling settings upon the initiation of Tailscale."
msgstr "额外参数的列表。格式:--flags=value例如 <code>--exit-node=10.0.0.1</code>。<br> 在 Tailscale 启动时的 %s 。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:140 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:140
msgid "Logging program activities." msgid "Logging program activities."
msgstr "记录程序运行信息。" msgstr "记录程序运行信息。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:144 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:144
msgid "Logging program errors and exceptions." msgid "Logging program errors and exceptions."
msgstr "记录程序错误和异常信息。" msgstr "记录程序错误和警告信息。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:119 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:119
msgid "Login Status" msgid "Login Status"
@@ -157,14 +169,10 @@ msgstr "无在线接口。"
msgid "No logs available" msgid "No logs available"
msgstr "日志不存在" msgstr "日志不存在"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:163 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:162
msgid "Offer to be an exit node for outbound internet traffic from the Tailscale network." msgid "Offer to be an exit node for outbound internet traffic from the Tailscale network."
msgstr "作为 Tailscale 广域网出口节点。" msgstr "作为 Tailscale 广域网出口节点。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:140
msgid "Output Log"
msgstr "运行日志"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:125 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:125
msgid "Port" msgid "Port"
msgstr "端口" msgstr "端口"
@@ -173,7 +181,7 @@ msgstr "端口"
msgid "RUNNING" msgid "RUNNING"
msgstr "运行中" msgstr "运行中"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:190 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:192
msgid "Server Address" msgid "Server Address"
msgstr "服务器地址" msgstr "服务器地址"
@@ -181,10 +189,18 @@ msgstr "服务器地址"
msgid "Set the Tailscale port number." msgid "Set the Tailscale port number."
msgstr "设置 Tailscale 端口号。" msgstr "设置 Tailscale 端口号。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:167 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:171
msgid "Site To Site" msgid "Site To Site"
msgstr "子网互通" msgstr "子网互通"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:144
msgid "StdErr Log"
msgstr "错误日志"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:140
msgid "StdOut Log"
msgstr "运行日志"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/interface.js:72 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/interface.js:72
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:51 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:51
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:53 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:53
@@ -193,11 +209,11 @@ msgstr "子网互通"
msgid "Tailscale" msgid "Tailscale"
msgstr "Tailscale" msgstr "Tailscale"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:178 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:177
msgid "Tailscale access LAN" msgid "Tailscale access LAN"
msgstr "虚拟局域网访问本地局域网" msgstr "虚拟局域网访问本地局域网"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:179 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:178
msgid "Tailscale access WAN" msgid "Tailscale access WAN"
msgstr "虚拟局域网访问本地广域网" msgstr "虚拟局域网访问本地广域网"
@@ -230,15 +246,15 @@ msgstr "无法获取接口 %s 的信息:%s。"
msgid "Unable to get interface info: %s." msgid "Unable to get interface info: %s."
msgstr "无法获取接口信息:%s。" msgstr "无法获取接口信息:%s。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:188 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:190
msgid "Use %s to deploy a private server." msgid "Use %s to deploy a private server."
msgstr "使用 %s 部署私有服务器" msgstr "使用 %s 部署私有服务器"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:167 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:171
msgid "Use site-to-site layer 3 networking to connect two subnets on your Tailscale network with each other." msgid "Use site-to-site layer 3 networking to connect subnets on the Tailscale network."
msgstr "使用站点到站点的三层网络连接 Tailscale 中的两个子网。" msgstr "使用站点到站点的三层网络连接 Tailscale 中的子网。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:181 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:180
msgid "WAN access Tailscale" msgid "WAN access Tailscale"
msgstr "本地广域网访问虚拟局域网" msgstr "本地广域网访问虚拟局域网"

View File

@@ -7,52 +7,60 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:159 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:158
msgid "Accept DNS" msgid "Accept DNS"
msgstr "允許DNS" msgstr "允許DNS"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:159 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:158
msgid "Accept DNS configuration from the Tailscale admin console." msgid "Accept DNS configuration from the Tailscale admin console."
msgstr "使用 Tailscale 管理控制台的DNS配置。" msgstr "使用 Tailscale 管理控制台的 DNS 設定。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:151 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:150
msgid "Accept subnet routes that other nodes advertise." msgid "Accept subnet routes that other nodes advertise."
msgstr "接受其他節點廣播的子網路由。" msgstr "接受其他節點廣播的子網路由。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:177 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:176
msgid "Access Control" msgid "Access Control"
msgstr "訪問控制" msgstr "訪問控制"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:149 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:186
msgid "Additional Flags"
msgstr "參數列表"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:148
msgid "Advanced Settings" msgid "Advanced Settings"
msgstr "高級設置" msgstr "高級選項"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:99 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:99
msgid "Are you sure you want to logout and unbind the current device?" msgid "Are you sure you want to logout and unbind the current device?"
msgstr "是否註銷當前登錄並且解綁當前設備?" msgstr "是否註銷當前登錄並且解綁當前設備?"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:194 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:196
msgid "Auth Key" msgid "Auth Key"
msgstr "認證密鑰" msgstr "認證密鑰"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:151 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:150
msgid "Auto Mesh" msgid "Auto Mesh"
msgstr "自動組網" msgstr "自動組網"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:186
msgid "Available flags"
msgstr "可用參數"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:113 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:113
msgid "Basic Settings" msgid "Basic Settings"
msgstr "基礎設置" msgstr "基礎選項"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:108 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:108
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:122 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:122
msgid "Collecting data ..." msgid "Collecting data ..."
msgstr "正在收集數據..." msgstr "正在收集數據..."
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:187 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:189
msgid "Custom Server Settings" msgid "Custom Server Settings"
msgstr "自定義服器" msgstr "自定義服器"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:155 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:154
msgid "Device Name" msgid "Device Name"
msgstr "設備名稱" msgstr "設備名稱"
@@ -60,21 +68,21 @@ msgstr "設備名稱"
msgid "Enable" msgid "Enable"
msgstr "啟用" msgstr "啟用"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:144 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:162
msgid "Error Log"
msgstr "錯誤日誌"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:163
msgid "Exit Node" msgid "Exit Node"
msgstr "出口節點" msgstr "出口節點"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:172 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:166
msgid "Expose Subnets" msgid "Expose Subnets"
msgstr "公開網段" msgstr "公開網段"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:172 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:166
msgid "Expose physical network routes onto Tailscale. e.g. 10.0.0.0/24" msgid "Expose physical network routes into Tailscale, e.g. <code>10.0.0.0/24</code>."
msgstr "廣播子網路由至 Tailscale例如10.0.0.0/24" msgstr "廣播子網路由至 Tailscale例如:<code>10.0.0.0/24</code>。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:184
msgid "Extra Settings"
msgstr "附加選項"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:134 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:134
msgid "Firewall Mode" msgid "Firewall Mode"
@@ -104,21 +112,25 @@ msgstr "接口信息"
msgid "Interface Name" msgid "Interface Name"
msgstr "接口名稱" msgstr "接口名稱"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:180 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:179
msgid "LAN access Tailscale" msgid "LAN access Tailscale"
msgstr "本地局域網訪問虛擬局域網" msgstr "本地局域網訪問虛擬局域網"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:155 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:154
msgid "Leave blank to use the device's hostname." msgid "Leave blank to use the device's hostname."
msgstr "留空以使用設備的主機名。" msgstr "留空以使用設備的主機名。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:186
msgid "List of extra flags. Format: --flags=value, e.g. <code>--exit-node=10.0.0.1</code>. <br> %s for enabling settings upon the initiation of Tailscale."
msgstr "額外參數的列表。格式:--flags=value例如 <code>--exit-node=10.0.0.1</code>。<br> 在 Tailscale 啟動時的 %s 。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:140 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:140
msgid "Logging program activities." msgid "Logging program activities."
msgstr "記錄程運行信息。" msgstr "記錄程運行信息。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:144 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:144
msgid "Logging program errors and exceptions." msgid "Logging program errors and exceptions."
msgstr "記錄程錯誤和異常信息。" msgstr "記錄程錯誤和警告信息。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:119 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:119
msgid "Login Status" msgid "Login Status"
@@ -157,14 +169,10 @@ msgstr "無在線接口。"
msgid "No logs available" msgid "No logs available"
msgstr "日誌不存在" msgstr "日誌不存在"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:163 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:162
msgid "Offer to be an exit node for outbound internet traffic from the Tailscale network." msgid "Offer to be an exit node for outbound internet traffic from the Tailscale network."
msgstr "作為 Tailscale 廣域網出口節點。" msgstr "作為 Tailscale 廣域網出口節點。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:140
msgid "Output Log"
msgstr "運行日誌"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:125 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:125
msgid "Port" msgid "Port"
msgstr "端口" msgstr "端口"
@@ -173,17 +181,25 @@ msgstr "端口"
msgid "RUNNING" msgid "RUNNING"
msgstr "運行中" msgstr "運行中"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:190 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:192
msgid "Server Address" msgid "Server Address"
msgstr "服器地址" msgstr "服器地址"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:125 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:125
msgid "Set the Tailscale port number." msgid "Set the Tailscale port number."
msgstr "設置 Tailscale 端口號。" msgstr "設置 Tailscale 端口號。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:167 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:171
msgid "Site To Site" msgid "Site To Site"
msgstr "子網互" msgstr "子網互"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:144
msgid "StdErr Log"
msgstr "錯誤日誌"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:140
msgid "StdOut Log"
msgstr "運行日誌"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/interface.js:72 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/interface.js:72
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:51 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:51
@@ -193,18 +209,18 @@ msgstr "子網互聯"
msgid "Tailscale" msgid "Tailscale"
msgstr "Tailscale" msgstr "Tailscale"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:178 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:177
msgid "Tailscale access LAN" msgid "Tailscale access LAN"
msgstr "虛擬局域網訪問本地局域網" msgstr "虛擬局域網訪問本地局域網"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:179 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:178
msgid "Tailscale access WAN" msgid "Tailscale access WAN"
msgstr "虛擬局域網訪問本地廣域網" msgstr "虛擬局域網訪問本地廣域網"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/interface.js:73 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/interface.js:73
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:85 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:85
msgid "Tailscale is a cross-platform and easy to use virtual LAN." msgid "Tailscale is a cross-platform and easy to use virtual LAN."
msgstr "Tailscale 是一個跨平且易於使用的虛擬局域網 VPN。" msgstr "Tailscale 是一個跨平且易於使用的虛擬局域網 VPN。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:130 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:130
msgid "The working directory contains config files, audit logs, and runtime info." msgid "The working directory contains config files, audit logs, and runtime info."
@@ -230,15 +246,15 @@ msgstr "無法獲取接口 %s 的信息:%s。"
msgid "Unable to get interface info: %s." msgid "Unable to get interface info: %s."
msgstr "無法獲取接口信息:%s。" msgstr "無法獲取接口信息:%s。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:188 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:190
msgid "Use %s to deploy a private server." msgid "Use %s to deploy a private server."
msgstr "使用 %s 部署私有服器" msgstr "使用 %s 部署私有服器"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:167 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:171
msgid "Use site-to-site layer 3 networking to connect two subnets on your Tailscale network with each other." msgid "Use site-to-site layer 3 networking to connect subnets on the Tailscale network."
msgstr "使用站點到站點的三層網路連線 Tailscale 中的兩個子網。" msgstr "使用站點到站點的三層網路連線 Tailscale 中的子網。"
#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:181 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:180
msgid "WAN access Tailscale" msgid "WAN access Tailscale"
msgstr "本地廣域網訪問虛擬局域網" msgstr "本地廣域網訪問虛擬局域網"

View File

@@ -20,7 +20,7 @@ section_enabled() {
custom_instance() { custom_instance() {
local cfg="$1" local cfg="$1"
local acceptRoutes hostname acceptDNS advertiseExitNode s2s advertiseRoutes loginServer authkey std_out std_err local acceptRoutes hostname acceptDNS advertiseExitNode advertiseRoutes s2s flags loginServer authkey std_out std_err
local ARGS=" up --reset" local ARGS=" up --reset"
if ! section_enabled "$cfg"; then if ! section_enabled "$cfg"; then
@@ -32,8 +32,9 @@ custom_instance() {
config_get hostname $cfg 'hostname' config_get hostname $cfg 'hostname'
config_get_bool acceptDNS $cfg 'acceptDNS' config_get_bool acceptDNS $cfg 'acceptDNS'
config_get_bool advertiseExitNode $cfg 'advertiseExitNode' config_get_bool advertiseExitNode $cfg 'advertiseExitNode'
config_get_bool s2s $cfg 's2s'
config_get advertiseRoutes $cfg 'advertiseRoutes' config_get advertiseRoutes $cfg 'advertiseRoutes'
config_get_bool s2s $cfg 's2s'
config_get flags $cfg 'flags'
config_get loginServer $cfg 'loginServer' config_get loginServer $cfg 'loginServer'
config_get authkey $cfg 'authkey' config_get authkey $cfg 'authkey'
config_get_bool std_out $cfg 'log_stdout' config_get_bool std_out $cfg 'log_stdout'
@@ -43,8 +44,9 @@ custom_instance() {
[ -n "$hostname" ] && ARGS="$ARGS --hostname=$hostname" [ -n "$hostname" ] && ARGS="$ARGS --hostname=$hostname"
[ "$acceptDNS" = "0" ] && ARGS="$ARGS --accept-dns=false" [ "$acceptDNS" = "0" ] && ARGS="$ARGS --accept-dns=false"
[ "$advertiseExitNode" = "1" ] && ARGS="$ARGS --advertise-exit-node" [ "$advertiseExitNode" = "1" ] && ARGS="$ARGS --advertise-exit-node"
[ "$s2s" = "1" ] && ARGS="$ARGS --snat-subnet-routes=false --stateful-filtering=false"
[ -n "$advertiseRoutes" ] && ARGS="$ARGS --advertise-routes=$advertiseRoutes" [ -n "$advertiseRoutes" ] && ARGS="$ARGS --advertise-routes=$advertiseRoutes"
[ "$s2s" = "1" ] && ARGS="$ARGS --snat-subnet-routes=false --stateful-filtering=false"
[ -n "$flags" ] && ARGS="$ARGS $flags"
[ -n "$loginServer" ] && ARGS="$ARGS --login-server=$loginServer" [ -n "$loginServer" ] && ARGS="$ARGS --login-server=$loginServer"
[ -n "$authkey" ] && ARGS="$ARGS --authkey=$authkey" [ -n "$authkey" ] && ARGS="$ARGS --authkey=$authkey"