From 9e2dfa1b4303adf92d8579dad87c2a62026c7025 Mon Sep 17 00:00:00 2001 From: tokisaki galaxy Date: Fri, 1 May 2026 11:05:23 +0800 Subject: [PATCH] luci-app-tailscale-community: update and fix dep sync linguistic files, fix upstream ip deps rename to ip-full, add temporary disable func, fix exit node firewall config Signed-off-by: tokisaki galaxy --- .../luci-app-tailscale-community/Makefile | 2 +- .../luci-static/resources/view/tailscale.js | 2 + .../po/es/community.po | 258 +++++---- .../po/templates/community.pot | 258 +++++---- .../po/zh_Hans/community.po | 290 +++++----- .../po/zh_Hant/community.po | 546 ++++++++++++++++++ .../root/etc/init.d/tailscale-settings | 20 +- .../root/usr/share/rpcd/ucode/tailscale.uc | 26 + 8 files changed, 1012 insertions(+), 390 deletions(-) create mode 100644 applications/luci-app-tailscale-community/po/zh_Hant/community.po diff --git a/applications/luci-app-tailscale-community/Makefile b/applications/luci-app-tailscale-community/Makefile index d448315a1a..9a8ab86a23 100644 --- a/applications/luci-app-tailscale-community/Makefile +++ b/applications/luci-app-tailscale-community/Makefile @@ -4,7 +4,7 @@ LUCI_TITLE:=LuCI support for Tailscale LUCI_URL:=https://github.com/tokisaki-galaxy/luci-app-tailscale-community PKG_DESCRIPTION:=Provides a LuCI Web management interface for Tailscale, allowing viewing status, configuring nodes and daemons. PKG_MAINTAINER:=Tokisaki-Galaxy -LUCI_DEPENDS:=+tailscale +ip +luci-base +LUCI_DEPENDS:=+tailscale +ip-full +luci-base LUCI_PKGARCH:=all include ../../luci.mk diff --git a/applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js b/applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js index f0d1f2c9a1..5de9932eb8 100644 --- a/applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js +++ b/applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js @@ -15,6 +15,7 @@ const callSetupFirewall = rpc.declare({ object: 'tailscale', method: 'setup_fire let map; const tailscaleSettingsConf = [ + [form.Flag, 'service_enabled', _('Enable Tailscale Service'), _('Enable or disable the Tailscale service. When disabled, the service will be stopped and the process will be killed.'), { rmempty: false }], [form.ListValue, 'fw_mode', _('Firewall Mode'), _('Select the firewall backend for Tailscale to use. Requires service restart to take effect.'), {values: ['nftables','iptables'],rmempty: false}], [form.Flag, 'accept_routes', _('Accept Routes'), _('Allow accepting routes announced by other nodes.'), { rmempty: false }], [form.Flag, 'advertise_exit_node', _('Advertise Exit Node'), _('Declare this device as an Exit Node.'), { rmempty: false }], @@ -310,6 +311,7 @@ return view.extend({ if (uci.get('tailscale', 'settings') === null) { // No existing settings found; initialize UCI with RPC settings uci.add('tailscale', 'settings', 'settings'); + uci.set('tailscale', 'settings', 'service_enabled', '1'); uci.set('tailscale', 'settings', 'fw_mode', 'nftables'); uci.set('tailscale', 'settings', 'accept_routes', (settings_from_rpc.accept_routes ? '1' : '0')); uci.set('tailscale', 'settings', 'advertise_exit_node', ((settings_from_rpc.advertise_exit_node || false) ? '1' : '0')); diff --git a/applications/luci-app-tailscale-community/po/es/community.po b/applications/luci-app-tailscale-community/po/es/community.po index 45cc00c5e6..20597eecd9 100644 --- a/applications/luci-app-tailscale-community/po/es/community.po +++ b/applications/luci-app-tailscale-community/po/es/community.po @@ -11,55 +11,55 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.8\n" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:34 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:35 msgid "(Experimental) Reduce Memory Usage" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:442 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:444 msgid "1. Select \"Accept Routes\" (to access remote devices)." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:443 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:445 msgid "" "2. In \"Advertise Routes\", select your local subnet (to allow remote " "devices to access this LAN)." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:444 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:446 msgid "3. Click \"Auto Configure Firewall\" (to allow traffic forwarding)." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:19 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:20 msgid "Accept Routes" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:451 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:453 msgid "Account Settings" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:20 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:21 msgid "Advertise Exit Node" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:410 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:412 msgid "Advertise Routes" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:410 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:412 msgid "" "Advertise subnet routes behind this device. Select from the detected subnets " "below or enter custom routes (comma-separated)." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:21 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:22 msgid "Allow LAN Access" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:19 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:20 msgid "Allow accepting routes announced by other nodes." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:25 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:26 msgid "Allow connecting to this device through the SSH function of Tailscale." msgstr "" @@ -67,444 +67,454 @@ msgstr "" msgid "Allow user access to tailscale" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:525 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:527 msgid "Are you sure you want to log out?" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:418 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:420 msgid "Auto Configure Firewall" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:532 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:534 msgid "Cancel" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:476 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:478 msgid "Click to Log out account on this device." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:455 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:457 msgid "Click to get a login URL for this device." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:166 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:243 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:365 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:167 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:244 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:367 msgid "Collecting data ..." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:551 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:553 msgid "Confirm Logout" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:264 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:265 msgid "Connection Info" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:488 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:490 msgid "" "Could not open a new tab. Please check if your browser or an extension " "blocked the pop-up." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:460 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:462 msgid "Custom Login Server" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:468 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:470 msgid "Custom Login Server Auth Key" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:20 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:21 msgid "Declare this device as an Exit Node." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:554 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:556 msgid "Devices List" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:26 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:27 msgid "Disable MagicDNS" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:23 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:24 msgid "Disable SNAT" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:23 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:24 msgid "" "Disable Source NAT (SNAT) for traffic to advertised routes. Most users " "should leave this unchecked." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:226 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:227 msgid "Disabled" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:477 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:479 msgid "Disconnect from Tailscale and expire current node key." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:27 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:28 msgid "Enable Peer Relay" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:25 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:26 msgid "Enable Tailscale SSH" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:22 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:18 +msgid "Enable Tailscale Service" +msgstr "" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:23 msgid "Enable Web Interface" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:27 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:18 +msgid "" +"Enable or disable the Tailscale service. When disabled, the service will be " +"stopped and the process will be killed." +msgstr "" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:28 msgid "" "Enable this device as a Peer Relay server. Requires a public IP and an UDP " "port open on the router." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:226 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:227 msgid "Enabled" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:34 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:35 msgid "" "Enabling this option can reduce memory usage, but it may sacrifice some " "performance (set GOGC=10)." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:513 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:515 msgid "Error" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:147 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:148 msgid "Error caching DERP region map: %s" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:150 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:151 msgid "Error fetching DERP region map: %s" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:120 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:121 msgid "Error reading cached DERP region map: %s" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:419 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:421 msgid "" "Essential configuration for Subnet Routing (Site-to-Site) and Exit Node " "features." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:286 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:386 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:287 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:388 msgid "Exit Node" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:22 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:23 msgid "" "Expose a web interface on port 5252 for managing this node over Tailscale." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:430 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:432 msgid "Failed to configure firewall: %s" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:514 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:516 msgid "Failed to get login URL. You may close this tab." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:519 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:521 msgid "Failed to get login URL: %s" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:515 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:517 msgid "Failed to get login URL: Invalid response from server." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:18 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:19 msgid "Firewall Mode" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:427 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:429 msgid "Firewall configuration applied." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:374 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:376 msgid "General Settings" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:261 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:262 msgid "Hostname" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:437 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:439 msgid "How to enable Site-to-Site?" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:456 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:458 msgid "" "If the timeout is displayed, you can refresh the page and click Login again." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:470 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:472 msgid "" "If you are using custom login server but not providing an Auth Key, will " "redirect to the login page without pre-filling the key." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:90 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:91 msgid "Invalid Date" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:420 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:422 msgid "" "It automatically creates the tailscale interface, sets up firewall zones for " "LAN <-> Tailscale forwarding," msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:93 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:94 msgid "Just now" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:205 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:206 msgid "LOGGED OUT" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:267 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:268 msgid "Last Seen" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:462 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:464 msgid "Leave blank for default Tailscale control plane." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:538 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:540 msgid "Logging out..." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:454 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:456 msgid "Login" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:475 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:548 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:477 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:550 msgid "Logout" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:545 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:547 msgid "Logout failed: %s" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:87 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:88 msgid "N/A" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:216 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:217 msgid "NOT RUNNING" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:256 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:257 msgid "No peer devices found." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:387 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:389 msgid "None" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:88 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:89 msgid "Now" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:263 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:264 msgid "OS" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:286 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:287 msgid "Offline" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:286 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:287 msgid "Online" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:461 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:463 msgid "" "Optional: Specify a custom control server URL (e.g., a Headscale instance, " "%s)." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:469 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:471 msgid "" "Optional: Specify an authentication key for the custom control server. Leave " "blank if not required." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:378 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:380 msgid "Peer Relay Port" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:207 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:208 msgid "Please use the login button in the settings below to authenticate." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:498 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:504 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:538 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:500 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:506 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:540 msgid "Please wait." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:224 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:225 msgid "RUNNING" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:265 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:266 msgid "RX" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:498 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:504 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:500 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:506 msgid "Requesting Login URL..." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:495 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:497 msgid "Requesting Tailscale login URL... Please wait." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:386 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:388 msgid "" "Select an exit node from the list. If enabled, Allow LAN Access is enabled " "implicitly." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:18 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:19 msgid "" "Select the firewall backend for Tailscale to use. Requires service restart " "to take effect." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:195 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:203 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:215 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:224 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:196 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:204 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:216 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:225 msgid "Service Status" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:24 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:25 msgid "Shields Up" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:260 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:261 msgid "Status" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:542 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:544 msgid "Successfully logged out." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:196 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:197 msgid "TAILSCALE NOT FOUND" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:226 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:227 msgid "TUN Mode" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:266 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:267 msgid "TX" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:229 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:230 msgid "Tailnet Name" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:339 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:341 #: applications/luci-app-tailscale-community/root/usr/share/luci/menu.d/luci-app-tailscale-community.json:3 msgid "Tailscale" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:172 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:173 msgid "Tailscale Health Check: %s" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:262 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:263 msgid "Tailscale IP" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:227 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:228 msgid "Tailscale IPv4" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:228 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:229 msgid "Tailscale IPv6" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:494 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:496 msgid "Tailscale Login" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:339 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:341 msgid "" "Tailscale is a mesh VPN solution that makes it easy to connect your devices " "securely. This configuration page allows you to manage Tailscale settings on " "your OpenWrt device." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:247 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:248 msgid "Tailscale status error" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:496 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:498 msgid "This can take up to 30 seconds." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:526 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:528 msgid "" "This will disconnect this device from your Tailnet and require you to re-" "authenticate." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:379 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:381 msgid "" "UDP port for the Peer Relay service. Open this port on your router firewall/" "NAT." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:120 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:147 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:150 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:519 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:545 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:121 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:148 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:151 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:521 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:547 msgid "Unknown error" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:26 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:27 msgid "Use system DNS instead of MagicDNS." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:225 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:226 msgid "Version" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:24 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:25 msgid "" "When enabled, blocks all inbound connections from the Tailscale network." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:21 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:22 msgid "When using the exit node, access to the local LAN is allowed." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:445 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:447 msgid "" "[Important] Log in to the Tailscale admin console and manually enable " "\"Subnet Routes\" for this device." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:96 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:97 msgid "ago" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:421 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:423 msgid "" "and enables Masquerading and MSS Clamping (MTU fix) to ensure stable " "connections." diff --git a/applications/luci-app-tailscale-community/po/templates/community.pot b/applications/luci-app-tailscale-community/po/templates/community.pot index d7fe8cec25..1289c7dde3 100644 --- a/applications/luci-app-tailscale-community/po/templates/community.pot +++ b/applications/luci-app-tailscale-community/po/templates/community.pot @@ -1,55 +1,55 @@ msgid "" msgstr "Content-Type: text/plain; charset=UTF-8" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:34 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:35 msgid "(Experimental) Reduce Memory Usage" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:442 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:444 msgid "1. Select \"Accept Routes\" (to access remote devices)." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:443 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:445 msgid "" "2. In \"Advertise Routes\", select your local subnet (to allow remote " "devices to access this LAN)." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:444 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:446 msgid "3. Click \"Auto Configure Firewall\" (to allow traffic forwarding)." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:19 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:20 msgid "Accept Routes" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:451 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:453 msgid "Account Settings" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:20 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:21 msgid "Advertise Exit Node" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:410 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:412 msgid "Advertise Routes" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:410 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:412 msgid "" "Advertise subnet routes behind this device. Select from the detected subnets " "below or enter custom routes (comma-separated)." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:21 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:22 msgid "Allow LAN Access" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:19 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:20 msgid "Allow accepting routes announced by other nodes." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:25 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:26 msgid "Allow connecting to this device through the SSH function of Tailscale." msgstr "" @@ -57,444 +57,454 @@ msgstr "" msgid "Allow user access to tailscale" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:525 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:527 msgid "Are you sure you want to log out?" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:418 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:420 msgid "Auto Configure Firewall" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:532 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:534 msgid "Cancel" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:476 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:478 msgid "Click to Log out account on this device." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:455 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:457 msgid "Click to get a login URL for this device." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:166 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:243 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:365 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:167 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:244 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:367 msgid "Collecting data ..." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:551 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:553 msgid "Confirm Logout" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:264 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:265 msgid "Connection Info" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:488 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:490 msgid "" "Could not open a new tab. Please check if your browser or an extension " "blocked the pop-up." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:460 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:462 msgid "Custom Login Server" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:468 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:470 msgid "Custom Login Server Auth Key" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:20 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:21 msgid "Declare this device as an Exit Node." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:554 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:556 msgid "Devices List" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:26 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:27 msgid "Disable MagicDNS" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:23 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:24 msgid "Disable SNAT" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:23 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:24 msgid "" "Disable Source NAT (SNAT) for traffic to advertised routes. Most users " "should leave this unchecked." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:226 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:227 msgid "Disabled" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:477 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:479 msgid "Disconnect from Tailscale and expire current node key." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:27 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:28 msgid "Enable Peer Relay" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:25 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:26 msgid "Enable Tailscale SSH" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:22 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:18 +msgid "Enable Tailscale Service" +msgstr "" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:23 msgid "Enable Web Interface" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:27 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:18 +msgid "" +"Enable or disable the Tailscale service. When disabled, the service will be " +"stopped and the process will be killed." +msgstr "" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:28 msgid "" "Enable this device as a Peer Relay server. Requires a public IP and an UDP " "port open on the router." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:226 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:227 msgid "Enabled" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:34 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:35 msgid "" "Enabling this option can reduce memory usage, but it may sacrifice some " "performance (set GOGC=10)." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:513 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:515 msgid "Error" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:147 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:148 msgid "Error caching DERP region map: %s" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:150 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:151 msgid "Error fetching DERP region map: %s" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:120 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:121 msgid "Error reading cached DERP region map: %s" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:419 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:421 msgid "" "Essential configuration for Subnet Routing (Site-to-Site) and Exit Node " "features." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:286 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:386 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:287 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:388 msgid "Exit Node" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:22 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:23 msgid "" "Expose a web interface on port 5252 for managing this node over Tailscale." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:430 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:432 msgid "Failed to configure firewall: %s" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:514 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:516 msgid "Failed to get login URL. You may close this tab." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:519 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:521 msgid "Failed to get login URL: %s" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:515 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:517 msgid "Failed to get login URL: Invalid response from server." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:18 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:19 msgid "Firewall Mode" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:427 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:429 msgid "Firewall configuration applied." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:374 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:376 msgid "General Settings" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:261 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:262 msgid "Hostname" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:437 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:439 msgid "How to enable Site-to-Site?" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:456 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:458 msgid "" "If the timeout is displayed, you can refresh the page and click Login again." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:470 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:472 msgid "" "If you are using custom login server but not providing an Auth Key, will " "redirect to the login page without pre-filling the key." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:90 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:91 msgid "Invalid Date" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:420 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:422 msgid "" "It automatically creates the tailscale interface, sets up firewall zones for " "LAN <-> Tailscale forwarding," msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:93 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:94 msgid "Just now" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:205 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:206 msgid "LOGGED OUT" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:267 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:268 msgid "Last Seen" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:462 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:464 msgid "Leave blank for default Tailscale control plane." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:538 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:540 msgid "Logging out..." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:454 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:456 msgid "Login" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:475 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:548 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:477 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:550 msgid "Logout" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:545 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:547 msgid "Logout failed: %s" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:87 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:88 msgid "N/A" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:216 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:217 msgid "NOT RUNNING" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:256 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:257 msgid "No peer devices found." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:387 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:389 msgid "None" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:88 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:89 msgid "Now" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:263 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:264 msgid "OS" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:286 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:287 msgid "Offline" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:286 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:287 msgid "Online" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:461 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:463 msgid "" "Optional: Specify a custom control server URL (e.g., a Headscale instance, " "%s)." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:469 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:471 msgid "" "Optional: Specify an authentication key for the custom control server. Leave " "blank if not required." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:378 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:380 msgid "Peer Relay Port" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:207 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:208 msgid "Please use the login button in the settings below to authenticate." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:498 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:504 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:538 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:500 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:506 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:540 msgid "Please wait." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:224 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:225 msgid "RUNNING" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:265 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:266 msgid "RX" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:498 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:504 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:500 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:506 msgid "Requesting Login URL..." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:495 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:497 msgid "Requesting Tailscale login URL... Please wait." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:386 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:388 msgid "" "Select an exit node from the list. If enabled, Allow LAN Access is enabled " "implicitly." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:18 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:19 msgid "" "Select the firewall backend for Tailscale to use. Requires service restart " "to take effect." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:195 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:203 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:215 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:224 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:196 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:204 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:216 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:225 msgid "Service Status" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:24 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:25 msgid "Shields Up" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:260 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:261 msgid "Status" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:542 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:544 msgid "Successfully logged out." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:196 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:197 msgid "TAILSCALE NOT FOUND" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:226 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:227 msgid "TUN Mode" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:266 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:267 msgid "TX" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:229 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:230 msgid "Tailnet Name" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:339 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:341 #: applications/luci-app-tailscale-community/root/usr/share/luci/menu.d/luci-app-tailscale-community.json:3 msgid "Tailscale" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:172 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:173 msgid "Tailscale Health Check: %s" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:262 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:263 msgid "Tailscale IP" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:227 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:228 msgid "Tailscale IPv4" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:228 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:229 msgid "Tailscale IPv6" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:494 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:496 msgid "Tailscale Login" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:339 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:341 msgid "" "Tailscale is a mesh VPN solution that makes it easy to connect your devices " "securely. This configuration page allows you to manage Tailscale settings on " "your OpenWrt device." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:247 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:248 msgid "Tailscale status error" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:496 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:498 msgid "This can take up to 30 seconds." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:526 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:528 msgid "" "This will disconnect this device from your Tailnet and require you to re-" "authenticate." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:379 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:381 msgid "" "UDP port for the Peer Relay service. Open this port on your router firewall/" "NAT." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:120 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:147 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:150 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:519 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:545 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:121 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:148 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:151 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:521 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:547 msgid "Unknown error" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:26 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:27 msgid "Use system DNS instead of MagicDNS." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:225 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:226 msgid "Version" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:24 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:25 msgid "" "When enabled, blocks all inbound connections from the Tailscale network." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:21 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:22 msgid "When using the exit node, access to the local LAN is allowed." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:445 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:447 msgid "" "[Important] Log in to the Tailscale admin console and manually enable " "\"Subnet Routes\" for this device." msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:96 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:97 msgid "ago" msgstr "" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:421 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:423 msgid "" "and enables Masquerading and MSS Clamping (MTU fix) to ensure stable " "connections." diff --git a/applications/luci-app-tailscale-community/po/zh_Hans/community.po b/applications/luci-app-tailscale-community/po/zh_Hans/community.po index 73e1beddb9..8863c90f64 100644 --- a/applications/luci-app-tailscale-community/po/zh_Hans/community.po +++ b/applications/luci-app-tailscale-community/po/zh_Hans/community.po @@ -1,56 +1,56 @@ msgid "" msgstr "Content-Type: text/plain; charset=UTF-8\n" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:34 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:35 msgid "(Experimental) Reduce Memory Usage" msgstr "(实验性) 减少内存使用" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:442 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:444 msgid "1. Select \"Accept Routes\" (to access remote devices)." msgstr "1. 勾选 接受路由 (接受远程设备访问)。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:443 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:445 msgid "" "2. In \"Advertise Routes\", select your local subnet (to allow remote " "devices to access this LAN)." msgstr "2. 在 通告路由 选择本设备的局域网段 (让远程设备能访问你)。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:444 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:446 msgid "3. Click \"Auto Configure Firewall\" (to allow traffic forwarding)." msgstr "3. 点击 自动配置防火墙 (打通防火墙转发)。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:19 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:20 msgid "Accept Routes" msgstr "接受路由" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:451 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:453 msgid "Account Settings" msgstr "账户设置" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:20 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:21 msgid "Advertise Exit Node" msgstr "通告出口节点" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:410 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:412 msgid "Advertise Routes" msgstr "通告路由" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:410 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:412 msgid "" "Advertise subnet routes behind this device. Select from the detected subnets " "below or enter custom routes (comma-separated)." msgstr "" "通告此设备后的子网路由。从下面的子网中选择,或输入自定义路由 (逗号分隔)。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:21 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:22 msgid "Allow LAN Access" msgstr "允许局域网访问" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:19 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:20 msgid "Allow accepting routes announced by other nodes." msgstr "允许接受由其他节点通告的路由。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:25 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:26 msgid "Allow connecting to this device through the SSH function of Tailscale." msgstr "允许通过 Tailscale 的 SSH 功能连接到此设备。" @@ -58,186 +58,198 @@ msgstr "允许通过 Tailscale 的 SSH 功能连接到此设备。" msgid "Allow user access to tailscale" msgstr "允许用户访问 Tailscale" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:525 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:527 msgid "Are you sure you want to log out?" msgstr "您确定要登出吗?" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:418 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:420 msgid "Auto Configure Firewall" msgstr "自动配置防火墙" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:532 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:534 msgid "Cancel" msgstr "取消" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:476 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:478 msgid "Click to Log out account on this device." msgstr "点击以登出此设备上的账户。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:455 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:457 msgid "Click to get a login URL for this device." msgstr "点击获取此设备的登录 URL。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:166 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:243 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:365 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:167 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:244 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:367 msgid "Collecting data ..." msgstr "正在收集数据..." -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:551 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:553 msgid "Confirm Logout" msgstr "确认登出" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:264 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:265 msgid "Connection Info" msgstr "连接信息" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:488 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:490 msgid "" "Could not open a new tab. Please check if your browser or an extension " "blocked the pop-up." msgstr "无法打开新标签页。请检查您的浏览器或扩展程序是否阻止了弹出窗口。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:460 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:462 msgid "Custom Login Server" msgstr "自定义登录服务器" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:468 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:470 msgid "Custom Login Server Auth Key" msgstr "自定义登录服务器认证密钥" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:20 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:21 msgid "Declare this device as an Exit Node." msgstr "将此设备声明为出口节点。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:554 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:556 msgid "Devices List" -msgstr "" +msgstr "设备列表" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:26 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:27 msgid "Disable MagicDNS" msgstr "禁用 MagicDNS" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:23 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:24 msgid "Disable SNAT" msgstr "禁用 SNAT" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:23 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:24 msgid "" "Disable Source NAT (SNAT) for traffic to advertised routes. Most users " "should leave this unchecked." msgstr "为通告路由的流量禁用源地址转换 (SNAT)。大多数用户应保持此项不勾选。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:226 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:227 msgid "Disabled" msgstr "已禁用" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:477 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:479 msgid "Disconnect from Tailscale and expire current node key." msgstr "从 Tailscale 断开连接并使当前节点密钥过期。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:27 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:28 msgid "Enable Peer Relay" -msgstr "" +msgstr "启用节点中继" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:25 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:26 msgid "Enable Tailscale SSH" msgstr "启用 Tailscale SSH" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:22 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:18 +msgid "Enable Tailscale Service" +msgstr "Tailscale服务开关" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:23 msgid "Enable Web Interface" msgstr "启用 Web 界面" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:27 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:18 +msgid "" +"Enable or disable the Tailscale service. When disabled, the service will be " +"stopped and the process will be killed." +msgstr "启用或禁用Tailscale服务。禁用后,服务将被停止,当前进程将被终止。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:28 msgid "" "Enable this device as a Peer Relay server. Requires a public IP and an UDP " "port open on the router." msgstr "" +"将此设备设定为节点中继服务器(DERP)。需要此路由器具备公网IP以及开放一个UDP端" +"口" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:226 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:227 msgid "Enabled" msgstr "已启用" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:34 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:35 msgid "" "Enabling this option can reduce memory usage, but it may sacrifice some " "performance (set GOGC=10)." msgstr "启用此选项可以减少内存使用,但可能会牺牲一些性能 (设置 GOGC=10)。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:513 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:515 msgid "Error" msgstr "错误" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:147 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:148 msgid "Error caching DERP region map: %s" msgstr "缓存 DERP 区域地图时出错: %s" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:150 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:151 msgid "Error fetching DERP region map: %s" msgstr "获取 DERP 区域地图时出错: %s" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:120 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:121 msgid "Error reading cached DERP region map: %s" msgstr "读取缓存的 DERP 区域地图时出错: %s" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:419 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:421 msgid "" "Essential configuration for Subnet Routing (Site-to-Site) and Exit Node " "features." -msgstr "子网路由和出口节点的基本配置。" +msgstr "子网路由(局域网间互通)和出口节点的基本配置。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:286 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:386 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:287 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:388 msgid "Exit Node" msgstr "出口节点" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:22 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:23 msgid "" "Expose a web interface on port 5252 for managing this node over Tailscale." msgstr "在端口 5252 上暴露一个 Web 界面,用于通过 Tailscale 管理此节点。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:430 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:432 msgid "Failed to configure firewall: %s" msgstr "获取防火墙设置失败: %s" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:514 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:516 msgid "Failed to get login URL. You may close this tab." msgstr "获取登录 URL 失败。您可以关闭此标签页。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:519 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:521 msgid "Failed to get login URL: %s" msgstr "获取登录 URL 失败: %s" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:515 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:517 msgid "Failed to get login URL: Invalid response from server." msgstr "获取登录 URL 失败: 服务器响应无效。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:18 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:19 msgid "Firewall Mode" msgstr "防火墙模式" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:427 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:429 msgid "Firewall configuration applied." msgstr "已应用防火墙配置" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:374 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:376 msgid "General Settings" msgstr "常规设置" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:261 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:262 msgid "Hostname" msgstr "主机名" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:437 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:439 msgid "How to enable Site-to-Site?" -msgstr "" +msgstr "如何实现站点到站点(即多局域网互通)?" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:456 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:458 msgid "" "If the timeout is displayed, you can refresh the page and click Login again." msgstr "如果显示超时,您可以刷新页面并再次点击登录。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:470 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:472 msgid "" "If you are using custom login server but not providing an Auth Key, will " "redirect to the login page without pre-filling the key." @@ -245,199 +257,197 @@ msgstr "" "如果您使用自定义登录服务器但未提供认证密钥,将重定向到登录页面而不会预先填充" "密钥。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:90 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:91 msgid "Invalid Date" msgstr "无效日期" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:420 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:422 msgid "" "It automatically creates the tailscale interface, sets up firewall zones for " "LAN <-> Tailscale forwarding," -msgstr "" -"子网路由和出口节点的基本配置。会自动tailscale接口,设置防火墙区域LAN <-> " -"Tailscale转发" +msgstr "将自动创建Tailscale接口并设置防火墙区域用于LAN <-> Tailscale转发" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:93 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:94 msgid "Just now" msgstr "刚才" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:205 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:206 msgid "LOGGED OUT" msgstr "已登出" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:267 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:268 msgid "Last Seen" msgstr "上次在线" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:462 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:464 msgid "Leave blank for default Tailscale control plane." msgstr "留空以使用默认的 Tailscale 控制平面。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:538 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:540 msgid "Logging out..." msgstr "正在登出..." -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:454 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:456 msgid "Login" msgstr "登录" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:475 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:548 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:477 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:550 msgid "Logout" msgstr "登出" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:545 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:547 msgid "Logout failed: %s" msgstr "登出失败: %s" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:87 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:88 msgid "N/A" -msgstr "N/A" +msgstr "不可用" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:216 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:217 msgid "NOT RUNNING" msgstr "未运行" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:256 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:257 msgid "No peer devices found." -msgstr "未找到对等设备。" +msgstr "未找到节点设备。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:387 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:389 msgid "None" -msgstr "" +msgstr "无" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:88 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:89 msgid "Now" msgstr "现在" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:263 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:264 msgid "OS" msgstr "操作系统" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:286 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:287 msgid "Offline" msgstr "离线" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:286 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:287 msgid "Online" msgstr "在线" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:461 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:463 msgid "" "Optional: Specify a custom control server URL (e.g., a Headscale instance, " "%s)." -msgstr "" +msgstr "可选:指定一个自定义控制服务器 URL (例如,一个 Headscale 实例, %s)。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:469 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:471 msgid "" "Optional: Specify an authentication key for the custom control server. Leave " "blank if not required." msgstr "可选:为自定义控制服务器指定一个认证密钥。如果不需要,请留空。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:378 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:380 msgid "Peer Relay Port" -msgstr "" +msgstr "DERP端口" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:207 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:208 msgid "Please use the login button in the settings below to authenticate." msgstr "请使用下方设置中的登录按钮进行认证。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:498 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:504 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:538 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:500 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:506 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:540 msgid "Please wait." msgstr "请稍候。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:224 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:225 msgid "RUNNING" msgstr "正在运行" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:265 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:266 msgid "RX" msgstr "接收" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:498 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:504 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:500 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:506 msgid "Requesting Login URL..." msgstr "正在请求登录 URL..." -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:495 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:497 msgid "Requesting Tailscale login URL... Please wait." msgstr "正在请求 Tailscale 登录 URL... 请稍候。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:386 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:388 msgid "" "Select an exit node from the list. If enabled, Allow LAN Access is enabled " "implicitly." -msgstr "" +msgstr "列表中选择出口节点。一旦开启,默认局域网之间可以互访" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:18 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:19 msgid "" "Select the firewall backend for Tailscale to use. Requires service restart " "to take effect." msgstr "选择 Tailscale 使用的防火墙后端。需要重启服务才能生效。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:195 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:203 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:215 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:224 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:196 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:204 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:216 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:225 msgid "Service Status" msgstr "服务状态" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:24 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:25 msgid "Shields Up" msgstr "开启防护 (Shields Up)" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:260 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:261 msgid "Status" msgstr "状态" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:542 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:544 msgid "Successfully logged out." msgstr "登出成功。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:196 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:197 msgid "TAILSCALE NOT FOUND" msgstr "未找到 TAILSCALE" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:226 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:227 msgid "TUN Mode" msgstr "TUN 模式" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:266 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:267 msgid "TX" msgstr "发送" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:229 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:230 msgid "Tailnet Name" msgstr "Tailnet 名称" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:339 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:341 #: applications/luci-app-tailscale-community/root/usr/share/luci/menu.d/luci-app-tailscale-community.json:3 msgid "Tailscale" msgstr "Tailscale" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:172 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:173 msgid "Tailscale Health Check: %s" msgstr "Tailscale 健康检查: %s" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:262 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:263 msgid "Tailscale IP" msgstr "Tailscale IP" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:227 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:228 msgid "Tailscale IPv4" msgstr "Tailscale IPv4" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:228 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:229 msgid "Tailscale IPv6" msgstr "Tailscale IPv6" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:494 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:496 msgid "Tailscale Login" msgstr "Tailscale 登录" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:339 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:341 msgid "" "Tailscale is a mesh VPN solution that makes it easy to connect your devices " "securely. This configuration page allows you to manage Tailscale settings on " @@ -446,66 +456,66 @@ msgstr "" "Tailscale 是一个网状 VPN 解决方案,可以轻松地安全连接您的设备。此配置页面允许" "您在 OpenWrt 设备上管理 Tailscale 设置。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:247 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:248 msgid "Tailscale status error" -msgstr "" +msgstr "Tailscale 状态异常" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:496 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:498 msgid "This can take up to 30 seconds." msgstr "此过程最多可能需要 30 秒。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:526 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:528 msgid "" "This will disconnect this device from your Tailnet and require you to re-" "authenticate." msgstr "这将使此设备从您的 Tailnet 断开连接,并需要您重新进行身份验证。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:379 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:381 msgid "" "UDP port for the Peer Relay service. Open this port on your router firewall/" "NAT." -msgstr "" +msgstr "DERP的UDP端口号。需要在防火墙/NAT规则中开放该端口。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:120 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:147 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:150 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:519 -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:545 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:121 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:148 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:151 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:521 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:547 msgid "Unknown error" msgstr "未知错误" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:26 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:27 msgid "Use system DNS instead of MagicDNS." msgstr "使用系统 DNS 而不是 MagicDNS。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:225 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:226 msgid "Version" msgstr "版本" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:24 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:25 msgid "" "When enabled, blocks all inbound connections from the Tailscale network." msgstr "启用后,将阻止来自 Tailscale 网络的所有入站连接。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:21 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:22 msgid "When using the exit node, access to the local LAN is allowed." msgstr "使用出口节点时,允许访问本地局域网。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:445 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:447 msgid "" "[Important] Log in to the Tailscale admin console and manually enable " "\"Subnet Routes\" for this device." msgstr "【重要】 登录 Tailscale 控制平面,在设备设置中手动授权子网路由。" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:96 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:97 msgid "ago" msgstr "前" -#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:421 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:423 msgid "" "and enables Masquerading and MSS Clamping (MTU fix) to ensure stable " "connections." -msgstr "并启用地址伪装和 MSS钳制确保连接稳定。" +msgstr "并启用伪装和MSS钳制(MTU修复)功能,以确保连接稳定。" #~ msgid "" #~ "Optional: Specify a custom control server URL (e.g., a Headscale " diff --git a/applications/luci-app-tailscale-community/po/zh_Hant/community.po b/applications/luci-app-tailscale-community/po/zh_Hant/community.po new file mode 100644 index 0000000000..0bb011fca4 --- /dev/null +++ b/applications/luci-app-tailscale-community/po/zh_Hant/community.po @@ -0,0 +1,546 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8\n" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:35 +msgid "(Experimental) Reduce Memory Usage" +msgstr "(實驗性) 減少記憶體使用" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:444 +msgid "1. Select \"Accept Routes\" (to access remote devices)." +msgstr "1. 勾選 接受路由 (接受遠端裝置訪問)。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:445 +msgid "" +"2. In \"Advertise Routes\", select your local subnet (to allow remote " +"devices to access this LAN)." +msgstr "2. 在 通告路由 選擇本裝置的區域網段 (讓遠端裝置能訪問你)。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:446 +msgid "3. Click \"Auto Configure Firewall\" (to allow traffic forwarding)." +msgstr "3. 點選 自動配置防火牆 (打通防火牆轉發)。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:20 +msgid "Accept Routes" +msgstr "接受路由" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:453 +msgid "Account Settings" +msgstr "賬戶設定" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:21 +msgid "Advertise Exit Node" +msgstr "通告出口節點" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:412 +msgid "Advertise Routes" +msgstr "通告路由" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:412 +msgid "" +"Advertise subnet routes behind this device. Select from the detected subnets " +"below or enter custom routes (comma-separated)." +msgstr "" +"通告此裝置後的子網路由。從下面的子網中選擇,或輸入自定義路由 (逗號分隔)。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:22 +msgid "Allow LAN Access" +msgstr "允許區域網訪問" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:20 +msgid "Allow accepting routes announced by other nodes." +msgstr "允許接受由其他節點通告的路由。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:26 +msgid "Allow connecting to this device through the SSH function of Tailscale." +msgstr "允許透過 Tailscale 的 SSH 功能連線到此裝置。" + +#: applications/luci-app-tailscale-community/root/usr/share/rpcd/acl.d/luci-app-tailscale-community.json:3 +msgid "Allow user access to tailscale" +msgstr "允許使用者訪問 Tailscale" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:527 +msgid "Are you sure you want to log out?" +msgstr "您確定要登出嗎?" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:420 +msgid "Auto Configure Firewall" +msgstr "自動配置防火牆" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:534 +msgid "Cancel" +msgstr "取消" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:478 +msgid "Click to Log out account on this device." +msgstr "點選以登出此裝置上的賬戶。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:457 +msgid "Click to get a login URL for this device." +msgstr "點選獲取此裝置的登入 URL。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:167 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:244 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:367 +msgid "Collecting data ..." +msgstr "正在收集資料..." + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:553 +msgid "Confirm Logout" +msgstr "確認登出" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:265 +msgid "Connection Info" +msgstr "連線資訊" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:490 +msgid "" +"Could not open a new tab. Please check if your browser or an extension " +"blocked the pop-up." +msgstr "無法開啟新標籤頁。請檢查您的瀏覽器或擴充套件程式是否阻止了彈出視窗。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:462 +msgid "Custom Login Server" +msgstr "自定義登入伺服器" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:470 +msgid "Custom Login Server Auth Key" +msgstr "自定義登入伺服器認證金鑰" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:21 +msgid "Declare this device as an Exit Node." +msgstr "將此裝置宣告為出口節點。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:556 +msgid "Devices List" +msgstr "" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:27 +msgid "Disable MagicDNS" +msgstr "停用 MagicDNS" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:24 +msgid "Disable SNAT" +msgstr "停用 SNAT" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:24 +msgid "" +"Disable Source NAT (SNAT) for traffic to advertised routes. Most users " +"should leave this unchecked." +msgstr "為通告路由的流量停用源地址轉換 (SNAT)。大多數使用者應保持此項不勾選。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:227 +msgid "Disabled" +msgstr "已停用" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:479 +msgid "Disconnect from Tailscale and expire current node key." +msgstr "從 Tailscale 斷開連線並使當前節點金鑰過期。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:28 +msgid "Enable Peer Relay" +msgstr "" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:26 +msgid "Enable Tailscale SSH" +msgstr "啟用 Tailscale SSH" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:18 +msgid "Enable Tailscale Service" +msgstr "" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:23 +msgid "Enable Web Interface" +msgstr "啟用 Web 介面" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:18 +msgid "" +"Enable or disable the Tailscale service. When disabled, the service will be " +"stopped and the process will be killed." +msgstr "" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:28 +msgid "" +"Enable this device as a Peer Relay server. Requires a public IP and an UDP " +"port open on the router." +msgstr "" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:227 +msgid "Enabled" +msgstr "已啟用" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:35 +msgid "" +"Enabling this option can reduce memory usage, but it may sacrifice some " +"performance (set GOGC=10)." +msgstr "啟用此選項可以減少記憶體使用,但可能會犧牲一些效能 (設定 GOGC=10)。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:515 +msgid "Error" +msgstr "錯誤" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:148 +msgid "Error caching DERP region map: %s" +msgstr "快取 DERP 區域地圖時出錯: %s" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:151 +msgid "Error fetching DERP region map: %s" +msgstr "獲取 DERP 區域地圖時出錯: %s" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:121 +msgid "Error reading cached DERP region map: %s" +msgstr "讀取快取的 DERP 區域地圖時出錯: %s" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:421 +msgid "" +"Essential configuration for Subnet Routing (Site-to-Site) and Exit Node " +"features." +msgstr "子網路由和出口節點的基本配置。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:287 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:388 +msgid "Exit Node" +msgstr "出口節點" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:23 +msgid "" +"Expose a web interface on port 5252 for managing this node over Tailscale." +msgstr "在埠 5252 上暴露一個 Web 介面,用於透過 Tailscale 管理此節點。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:432 +msgid "Failed to configure firewall: %s" +msgstr "獲取防火牆設定失敗: %s" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:516 +msgid "Failed to get login URL. You may close this tab." +msgstr "獲取登入 URL 失敗。您可以關閉此標籤頁。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:521 +msgid "Failed to get login URL: %s" +msgstr "獲取登入 URL 失敗: %s" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:517 +msgid "Failed to get login URL: Invalid response from server." +msgstr "獲取登入 URL 失敗: 伺服器響應無效。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:19 +msgid "Firewall Mode" +msgstr "防火牆模式" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:429 +msgid "Firewall configuration applied." +msgstr "已應用防火牆配置" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:376 +msgid "General Settings" +msgstr "常規設定" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:262 +msgid "Hostname" +msgstr "主機名" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:439 +msgid "How to enable Site-to-Site?" +msgstr "" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:458 +msgid "" +"If the timeout is displayed, you can refresh the page and click Login again." +msgstr "如果顯示超時,您可以重新整理頁面並再次點選登入。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:472 +msgid "" +"If you are using custom login server but not providing an Auth Key, will " +"redirect to the login page without pre-filling the key." +msgstr "" +"如果您使用自定義登入伺服器但未提供認證金鑰,將重定向到登入頁面而不會預先填充" +"金鑰。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:91 +msgid "Invalid Date" +msgstr "無效日期" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:422 +msgid "" +"It automatically creates the tailscale interface, sets up firewall zones for " +"LAN <-> Tailscale forwarding," +msgstr "" +"子網路由和出口節點的基本配置。會自動tailscale介面,設定防火牆區域LAN <-> " +"Tailscale轉發" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:94 +msgid "Just now" +msgstr "剛才" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:206 +msgid "LOGGED OUT" +msgstr "已登出" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:268 +msgid "Last Seen" +msgstr "上次線上" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:464 +msgid "Leave blank for default Tailscale control plane." +msgstr "留空以使用預設的 Tailscale 控制平面。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:540 +msgid "Logging out..." +msgstr "正在登出..." + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:456 +msgid "Login" +msgstr "登入" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:477 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:550 +msgid "Logout" +msgstr "登出" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:547 +msgid "Logout failed: %s" +msgstr "登出失敗: %s" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:88 +msgid "N/A" +msgstr "N/A" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:217 +msgid "NOT RUNNING" +msgstr "未執行" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:257 +msgid "No peer devices found." +msgstr "未找到對等裝置。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:389 +msgid "None" +msgstr "" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:89 +msgid "Now" +msgstr "現在" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:264 +msgid "OS" +msgstr "作業系統" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:287 +msgid "Offline" +msgstr "離線" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:287 +msgid "Online" +msgstr "線上" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:463 +msgid "" +"Optional: Specify a custom control server URL (e.g., a Headscale instance, " +"%s)." +msgstr "" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:471 +msgid "" +"Optional: Specify an authentication key for the custom control server. Leave " +"blank if not required." +msgstr "可選:為自定義控制伺服器指定一個認證金鑰。如果不需要,請留空。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:380 +msgid "Peer Relay Port" +msgstr "" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:208 +msgid "Please use the login button in the settings below to authenticate." +msgstr "請使用下方設定中的登入按鈕進行認證。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:500 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:506 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:540 +msgid "Please wait." +msgstr "請稍候。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:225 +msgid "RUNNING" +msgstr "正在執行" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:266 +msgid "RX" +msgstr "接收" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:500 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:506 +msgid "Requesting Login URL..." +msgstr "正在請求登入 URL..." + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:497 +msgid "Requesting Tailscale login URL... Please wait." +msgstr "正在請求 Tailscale 登入 URL... 請稍候。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:388 +msgid "" +"Select an exit node from the list. If enabled, Allow LAN Access is enabled " +"implicitly." +msgstr "" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:19 +msgid "" +"Select the firewall backend for Tailscale to use. Requires service restart " +"to take effect." +msgstr "選擇 Tailscale 使用的防火牆後端。需要重啟服務才能生效。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:196 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:204 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:216 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:225 +msgid "Service Status" +msgstr "服務狀態" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:25 +msgid "Shields Up" +msgstr "開啟防護 (Shields Up)" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:261 +msgid "Status" +msgstr "狀態" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:544 +msgid "Successfully logged out." +msgstr "登出成功。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:197 +msgid "TAILSCALE NOT FOUND" +msgstr "未找到 TAILSCALE" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:227 +msgid "TUN Mode" +msgstr "TUN 模式" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:267 +msgid "TX" +msgstr "傳送" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:230 +msgid "Tailnet Name" +msgstr "Tailnet 名稱" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:341 +#: applications/luci-app-tailscale-community/root/usr/share/luci/menu.d/luci-app-tailscale-community.json:3 +msgid "Tailscale" +msgstr "Tailscale" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:173 +msgid "Tailscale Health Check: %s" +msgstr "Tailscale 健康檢查: %s" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:263 +msgid "Tailscale IP" +msgstr "Tailscale IP" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:228 +msgid "Tailscale IPv4" +msgstr "Tailscale IPv4" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:229 +msgid "Tailscale IPv6" +msgstr "Tailscale IPv6" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:496 +msgid "Tailscale Login" +msgstr "Tailscale 登入" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:341 +msgid "" +"Tailscale is a mesh VPN solution that makes it easy to connect your devices " +"securely. This configuration page allows you to manage Tailscale settings on " +"your OpenWrt device." +msgstr "" +"Tailscale 是一個網狀 VPN 解決方案,可以輕鬆地安全連線您的裝置。此配置頁面允許" +"您在 OpenWrt 裝置上管理 Tailscale 設定。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:248 +msgid "Tailscale status error" +msgstr "" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:498 +msgid "This can take up to 30 seconds." +msgstr "此過程最多可能需要 30 秒。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:528 +msgid "" +"This will disconnect this device from your Tailnet and require you to re-" +"authenticate." +msgstr "這將使此裝置從您的 Tailnet 斷開連線,並需要您重新進行身份驗證。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:381 +msgid "" +"UDP port for the Peer Relay service. Open this port on your router firewall/" +"NAT." +msgstr "" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:121 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:148 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:151 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:521 +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:547 +msgid "Unknown error" +msgstr "未知錯誤" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:27 +msgid "Use system DNS instead of MagicDNS." +msgstr "使用系統 DNS 而不是 MagicDNS。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:226 +msgid "Version" +msgstr "版本" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:25 +msgid "" +"When enabled, blocks all inbound connections from the Tailscale network." +msgstr "啟用後,將阻止來自 Tailscale 網路的所有入站連線。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:22 +msgid "When using the exit node, access to the local LAN is allowed." +msgstr "使用出口節點時,允許訪問本地區域網。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:447 +msgid "" +"[Important] Log in to the Tailscale admin console and manually enable " +"\"Subnet Routes\" for this device." +msgstr "【重要】 登入 Tailscale 控制平面,在裝置設定中手動授權子網路由。" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:97 +msgid "ago" +msgstr "前" + +#: applications/luci-app-tailscale-community/htdocs/luci-static/resources/view/tailscale.js:423 +msgid "" +"and enables Masquerading and MSS Clamping (MTU fix) to ensure stable " +"connections." +msgstr "並啟用地址偽裝和 MSS鉗制確保連線穩定。" + +#~ msgid "" +#~ "Optional: Specify a custom control server URL (e.g., a Headscale " +#~ "instance, https://example.com)." +#~ msgstr "" +#~ "可選:指定一個自定義控制伺服器 URL (例如,一個 Headscale 例項,https://" +#~ "example.com)。" + +#~ msgid "Applying changes..." +#~ msgstr "正在應用更改..." + +#~ msgid "Error applying settings: %s" +#~ msgstr "應用設定時出錯: %s" + +#~ msgid "Error saving settings: %s" +#~ msgstr "儲存設定時出錯: %s" + +#~ msgid "Failed to save settings: %s" +#~ msgstr "儲存設定失敗: %s" + +#~ msgid "Network Devices" +#~ msgstr "網路裝置" + +#~ msgid "Settings" +#~ msgstr "設定" + +#~ msgid "Tailscale settings applied successfully." +#~ msgstr "Tailscale 設定已成功應用。" diff --git a/applications/luci-app-tailscale-community/root/etc/init.d/tailscale-settings b/applications/luci-app-tailscale-community/root/etc/init.d/tailscale-settings index abfbb05182..e1ed75a26f 100755 --- a/applications/luci-app-tailscale-community/root/etc/init.d/tailscale-settings +++ b/applications/luci-app-tailscale-community/root/etc/init.d/tailscale-settings @@ -141,6 +141,24 @@ apply_settings() { return $ret } +handle_service_state() { + config_load tailscale + local service_enabled + config_get service_enabled settings service_enabled '1' + + if [ "$service_enabled" = "0" ]; then + logger -t "$NAME" "Service is disabled, stopping tailscale" + /etc/init.d/tailscale stop 2>/dev/null + /etc/init.d/tailscale disable 2>/dev/null + killall tailscaled 2>/dev/null + else + logger -t "$NAME" "Service is enabled, ensuring tailscale is running" + /etc/init.d/tailscale enable 2>/dev/null + /etc/init.d/tailscale start 2>/dev/null + apply_settings + fi +} + start_service() { apply_settings } @@ -150,5 +168,5 @@ service_triggers() { } reload_service() { - apply_settings + handle_service_state } diff --git a/applications/luci-app-tailscale-community/root/usr/share/rpcd/ucode/tailscale.uc b/applications/luci-app-tailscale-community/root/usr/share/rpcd/ucode/tailscale.uc index e9e7e6dc4c..3bb4aff7ef 100755 --- a/applications/luci-app-tailscale-community/root/usr/share/rpcd/ucode/tailscale.uc +++ b/applications/luci-app-tailscale-community/root/usr/share/rpcd/ucode/tailscale.uc @@ -321,6 +321,32 @@ methods.setup_firewall = { changed_firewall = true; } + // Exit node requires WAN <-> tailscale forwarding + let fwd_wan_to_ts = false; + let fwd_ts_to_wan = false; + + for (let sec_key in fw_all) { + let s = fw_all[sec_key]; + if (s['.type'] == 'forwarding') { + if (s.src == 'wan' && s.dest == 'tailscale') fwd_wan_to_ts = true; + if (s.src == 'tailscale' && s.dest == 'wan') fwd_ts_to_wan = true; + } + } + + if (!fwd_ts_to_wan) { + let fid = uci.add('firewall', 'forwarding'); + uci.set('firewall', fid, 'src', 'tailscale'); + uci.set('firewall', fid, 'dest', 'wan'); + changed_firewall = true; + } + + if (!fwd_wan_to_ts) { + let fid = uci.add('firewall', 'forwarding'); + uci.set('firewall', fid, 'src', 'wan'); + uci.set('firewall', fid, 'dest', 'tailscale'); + changed_firewall = true; + } + // 4. save if (changed_network) { uci.save('network');