diff --git a/glorytun/Makefile b/glorytun/Makefile index 4ed4bbb91..4852ad5ec 100755 --- a/glorytun/Makefile +++ b/glorytun/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=glorytun -PKG_RELEASE:=6 +PKG_RELEASE:=7 PKG_SOURCE_PROTO:=git PKG_SOURCE_VERSION:=95fa5ead2154adb546bcdb454c56c876e9f60bb5 PKG_SOURCE:=glorytun-$(PKG_VERSION).tar.gz diff --git a/glorytun/init b/glorytun/init index 4edbb81fa..ce75e87fd 100755 --- a/glorytun/init +++ b/glorytun/init @@ -56,7 +56,8 @@ start_instance() { } [ "${enable}" = "1" ] || return 1 - [ "${proto}" = "tcp" ] || return 1 + # unset means tcp: instances added from LuCI before it wrote proto have none + [ "${proto:-tcp}" = "tcp" ] || return 1 [ -n "${key}" ] || { _err "Key empty" return 1 diff --git a/luci-app-adguardhome/.official_channel b/luci-app-adguardhome/.official_channel index 49f33a8c6..8ab67f2e7 100644 --- a/luci-app-adguardhome/.official_channel +++ b/luci-app-adguardhome/.official_channel @@ -1 +1 @@ -both +snapshot diff --git a/luci-app-adguardhome/.official_version_snapshot b/luci-app-adguardhome/.official_version_snapshot index b67937765..9053d64bd 100644 --- a/luci-app-adguardhome/.official_version_snapshot +++ b/luci-app-adguardhome/.official_version_snapshot @@ -1 +1 @@ -26.291.65693~03c6023 +26.291.67080~0a601b6 diff --git a/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js b/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js index cdb4c2094..be949f0c8 100644 --- a/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js +++ b/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js @@ -8,6 +8,10 @@ 'require ui'; 'require validation'; +document.querySelector('head').appendChild(E('script', { + src: L.resource('fchomo/md5.js') +})); + function funcSed(originFunc, matrix = [], closure = []) { if (isEmpty(matrix)) return originFunc; @@ -1039,79 +1043,8 @@ const UIDropdown = ui.Dropdown.extend({ // @pr8758_merged }); /* Method */ -/* thanks to homeproxy */ function calcStringMD5(e) { - /* Thanks to https://stackoverflow.com/a/41602636 */ - let h = (a, b) => { - let c, d, e, f, g; - c = a & 2147483648; - d = b & 2147483648; - e = a & 1073741824; - f = b & 1073741824; - g = (a & 1073741823) + (b & 1073741823); - return e & f ? g ^ 2147483648 ^ c ^ d : e | f ? g & 1073741824 ? g ^ 3221225472 ^ c ^ d : g ^ 1073741824 ^ c ^ d : g ^ c ^ d; - }, k = (a, b, c, d, e, f, g) => h((a = h(a, h(h(b & c | ~b & d, e), g))) << f | a >>> 32 - f, b), - l = (a, b, c, d, e, f, g) => h((a = h(a, h(h(b & d | c & ~d, e), g))) << f | a >>> 32 - f, b), - m = (a, b, c, d, e, f, g) => h((a = h(a, h(h(b ^ c ^ d, e), g))) << f | a >>> 32 - f, b), - n = (a, b, c, d, e, f, g) => h((a = h(a, h(h(c ^ (b | ~d), e), g))) << f | a >>> 32 - f, b), - p = a => { let b = '', d = ''; for (let c = 0; c <= 3; c++) d = a >>> 8 * c & 255, d = '0' + d.toString(16), b += d.substr(d.length - 2, 2); return b; }; - - let f = [], q, r, s, t, a, b, c, d; - e = (() => { - e = e.replace(/\r\n/g, '\n'); - let b = ''; - for (let d = 0; d < e.length; d++) { - let c = e.charCodeAt(d); - b += c < 128 ? String.fromCharCode(c) : c < 2048 ? String.fromCharCode(c >> 6 | 192) + String.fromCharCode(c & 63 | 128) : - String.fromCharCode(c >> 12 | 224) + String.fromCharCode(c >> 6 & 63 | 128) + String.fromCharCode(c & 63 | 128); - } - return b; - })(); - f = (() => { - let c = e.length, a = c + 8, d = 16 * ((a - a % 64) / 64 + 1), b = Array(d - 1), f = 0, g = 0; - for (; g < c;) a = (g - g % 4) / 4, f = g % 4 * 8, b[a] |= e.charCodeAt(g) << f, g++; - a = (g - g % 4) / 4, b[a] |= 128 << g % 4 * 8, b[d - 2] = c << 3, b[d - 1] = c >>> 29; - return b; - })(); - - a = 1732584193, b = 4023233417, c = 2562383102, d = 271733878; - for (e = 0; e < f.length; e += 16) { - q = a, r = b, s = c, t = d; - a = k(a, b, c, d, f[e + 0], 7, 3614090360), d = k(d, a, b, c, f[e + 1], 12, 3905402710), - c = k(c, d, a, b, f[e + 2], 17, 606105819), b = k(b, c, d, a, f[e + 3], 22, 3250441966), - a = k(a, b, c, d, f[e + 4], 7, 4118548399), d = k(d, a, b, c, f[e + 5], 12, 1200080426), - c = k(c, d, a, b, f[e + 6], 17, 2821735955), b = k(b, c, d, a, f[e + 7], 22, 4249261313), - a = k(a, b, c, d, f[e + 8], 7, 1770035416), d = k(d, a, b, c, f[e + 9], 12, 2336552879), - c = k(c, d, a, b, f[e + 10], 17, 4294925233), b = k(b, c, d, a, f[e + 11], 22, 2304563134), - a = k(a, b, c, d, f[e + 12], 7, 1804603682), d = k(d, a, b, c, f[e + 13], 12, 4254626195), - c = k(c, d, a, b, f[e + 14], 17, 2792965006), b = k(b, c, d, a, f[e + 15], 22, 1236535329), - a = l(a, b, c, d, f[e + 1], 5, 4129170786), d = l(d, a, b, c, f[e + 6], 9, 3225465664), - c = l(c, d, a, b, f[e + 11], 14, 643717713), b = l(b, c, d, a, f[e + 0], 20, 3921069994), - a = l(a, b, c, d, f[e + 5], 5, 3593408605), d = l(d, a, b, c, f[e + 10], 9, 38016083), - c = l(c, d, a, b, f[e + 15], 14, 3634488961), b = l(b, c, d, a, f[e + 4], 20, 3889429448), - a = l(a, b, c, d, f[e + 9], 5, 568446438), d = l(d, a, b, c, f[e + 14], 9, 3275163606), - c = l(c, d, a, b, f[e + 3], 14, 4107603335), b = l(b, c, d, a, f[e + 8], 20, 1163531501), - a = l(a, b, c, d, f[e + 13], 5, 2850285829), d = l(d, a, b, c, f[e + 2], 9, 4243563512), - c = l(c, d, a, b, f[e + 7], 14, 1735328473), b = l(b, c, d, a, f[e + 12], 20, 2368359562), - a = m(a, b, c, d, f[e + 5], 4, 4294588738), d = m(d, a, b, c, f[e + 8], 11, 2272392833), - c = m(c, d, a, b, f[e + 11], 16, 1839030562), b = m(b, c, d, a, f[e + 14], 23, 4259657740), - a = m(a, b, c, d, f[e + 1], 4, 2763975236), d = m(d, a, b, c, f[e + 4], 11, 1272893353), - c = m(c, d, a, b, f[e + 7], 16, 4139469664), b = m(b, c, d, a, f[e + 10], 23, 3200236656), - a = m(a, b, c, d, f[e + 13], 4, 681279174), d = m(d, a, b, c, f[e + 0], 11, 3936430074), - c = m(c, d, a, b, f[e + 3], 16, 3572445317), b = m(b, c, d, a, f[e + 6], 23, 76029189), - a = m(a, b, c, d, f[e + 9], 4, 3654602809), d = m(d, a, b, c, f[e + 12], 11, 3873151461), - c = m(c, d, a, b, f[e + 15], 16, 530742520), b = m(b, c, d, a, f[e + 2], 23, 3299628645), - a = n(a, b, c, d, f[e + 0], 6, 4096336452), d = n(d, a, b, c, f[e + 7], 10, 1126891415), - c = n(c, d, a, b, f[e + 14], 15, 2878612391), b = n(b, c, d, a, f[e + 5], 21, 4237533241), - a = n(a, b, c, d, f[e + 12], 6, 1700485571), d = n(d, a, b, c, f[e + 3], 10, 2399980690), - c = n(c, d, a, b, f[e + 10], 15, 4293915773), b = n(b, c, d, a, f[e + 1], 21, 2240044497), - a = n(a, b, c, d, f[e + 8], 6, 1873313359), d = n(d, a, b, c, f[e + 15], 10, 4264355552), - c = n(c, d, a, b, f[e + 6], 15, 2734768916), b = n(b, c, d, a, f[e + 13], 21, 1309151649), - a = n(a, b, c, d, f[e + 4], 6, 4149444226), d = n(d, a, b, c, f[e + 11], 10, 3174756917), - c = n(c, d, a, b, f[e + 2], 15, 718787259), b = n(b, c, d, a, f[e + 9], 21, 3951481745), - a = h(a, q), b = h(b, r), c = h(c, s), d = h(d, t); - } - return (p(a) + p(b) + p(c) + p(d)).toLowerCase(); + return md5(e); } /* Thanks to luci-app-ssr-plus */ @@ -1170,7 +1103,7 @@ function encodeBase64(input) { * Unzip Gzip data * @param {string|Array|ArrayBuffer|Uint8Array} input - Input data (Base64 string or binary object) * @param {boolean} asText - Return a string? (true: text, false: arrayBuffer) - * @returns {Promise} + * @returns {Promise} string|Uint8Array */ async function decompressGzip(input, asText = false) { if (isEmpty(input)) diff --git a/luci-app-fchomo/htdocs/luci-static/resources/fchomo/md5.js b/luci-app-fchomo/htdocs/luci-static/resources/fchomo/md5.js new file mode 120000 index 000000000..0dd0592da --- /dev/null +++ b/luci-app-fchomo/htdocs/luci-static/resources/fchomo/md5.js @@ -0,0 +1 @@ +../../../../../js-md5/build/md5-lite.min.js \ No newline at end of file diff --git a/luci-app-fchomo/po/templates/fchomo.pot b/luci-app-fchomo/po/templates/fchomo.pot index 1a1f22b3b..6d4ad4ae6 100644 --- a/luci-app-fchomo/po/templates/fchomo.pot +++ b/luci-app-fchomo/po/templates/fchomo.pot @@ -629,6 +629,10 @@ msgstr "" msgid "Common ports (bypass P2P traffic)" msgstr "" +#: htdocs/luci-static/resources/fchomo.js:1576 +msgid "Complete" +msgstr "" + #: htdocs/luci-static/resources/view/fchomo/node.js:1040 msgid "Configuration Document" msgstr "" @@ -890,11 +894,11 @@ msgstr "" msgid "Download bandwidth in Mbps." msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1507 +#: htdocs/luci-static/resources/fchomo.js:1433 msgid "Download failed: %s" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1503 +#: htdocs/luci-static/resources/fchomo.js:1429 msgid "Download successful." msgstr "" @@ -1132,6 +1136,28 @@ msgstr "" #: htdocs/luci-static/resources/fchomo.js:525 #: htdocs/luci-static/resources/fchomo.js:528 #: htdocs/luci-static/resources/fchomo.js:531 +#: htdocs/luci-static/resources/fchomo.js:1593 +#: htdocs/luci-static/resources/fchomo.js:1601 +#: htdocs/luci-static/resources/fchomo.js:1609 +#: htdocs/luci-static/resources/fchomo.js:1632 +#: htdocs/luci-static/resources/fchomo.js:1635 +#: htdocs/luci-static/resources/fchomo.js:1642 +#: htdocs/luci-static/resources/fchomo.js:1658 +#: htdocs/luci-static/resources/fchomo.js:1667 +#: htdocs/luci-static/resources/fchomo.js:1679 +#: htdocs/luci-static/resources/fchomo.js:1682 +#: htdocs/luci-static/resources/fchomo.js:1692 +#: htdocs/luci-static/resources/fchomo.js:1704 +#: htdocs/luci-static/resources/fchomo.js:1707 +#: htdocs/luci-static/resources/fchomo.js:1720 +#: htdocs/luci-static/resources/fchomo.js:1729 +#: htdocs/luci-static/resources/fchomo.js:1739 +#: htdocs/luci-static/resources/fchomo.js:1774 +#: htdocs/luci-static/resources/fchomo.js:1776 +#: htdocs/luci-static/resources/fchomo.js:1789 +#: htdocs/luci-static/resources/fchomo.js:1795 +#: htdocs/luci-static/resources/fchomo.js:1802 +#: htdocs/luci-static/resources/fchomo.js:1811 #: htdocs/luci-static/resources/fchomo/listeners.js:284 #: htdocs/luci-static/resources/fchomo/listeners.js:339 #: htdocs/luci-static/resources/fchomo/listeners.js:854 @@ -1201,6 +1227,22 @@ msgstr "" msgid "Factor" msgstr "" +#: htdocs/luci-static/resources/fchomo.js:1534 +msgid "Failed to execute \"/etc/init.d/fchomo %s %s\" reason: %s" +msgstr "" + +#: htdocs/luci-static/resources/fchomo.js:1487 +msgid "Failed to generate %s, error: %s." +msgstr "" + +#: htdocs/luci-static/resources/fchomo.js:1911 +msgid "Failed to upload %s, error: %s." +msgstr "" + +#: htdocs/luci-static/resources/fchomo.js:1930 +msgid "Failed to upload, error: %s." +msgstr "" + #: htdocs/luci-static/resources/fchomo.js:280 #: htdocs/luci-static/resources/fchomo/listeners.js:378 msgid "Fallback" @@ -1559,7 +1601,7 @@ msgstr "" msgid "Host/SNI override" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1062 +#: htdocs/luci-static/resources/view/fchomo/node.js:1063 msgid "Hostname" msgstr "" @@ -1653,6 +1695,10 @@ msgstr "" msgid "Idle timeout" msgstr "" +#: htdocs/luci-static/resources/fchomo.js:1635 +msgid "If All ports is selected, uncheck others" +msgstr "" + #: htdocs/luci-static/resources/view/fchomo/client.js:71 msgid "If Block is selected, uncheck others" msgstr "" @@ -1866,6 +1912,13 @@ msgstr "" msgid "L2" msgstr "" +#: htdocs/luci-static/resources/fchomo.js:241 +#: htdocs/luci-static/resources/fchomo.js:242 +#: htdocs/luci-static/resources/fchomo.js:243 +#: htdocs/luci-static/resources/fchomo.js:244 +msgid "L3" +msgstr "" + #: htdocs/luci-static/resources/fchomo/listeners.js:129 #: htdocs/luci-static/resources/view/fchomo/client.js:1055 #: htdocs/luci-static/resources/view/fchomo/client.js:1347 @@ -2253,16 +2306,6 @@ msgstr "" msgid "Network" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1046 -#: htdocs/luci-static/resources/view/fchomo/node.js:1057 -msgid "Room name" -msgstr "" - -#: htdocs/luci-static/resources/view/fchomo/node.js:1051 -#: htdocs/luci-static/resources/view/fchomo/node.js:1057 -msgid "Room secret" -msgstr "" - #: htdocs/luci-static/resources/fchomo/listeners.js:662 msgid "Network type" msgstr "" @@ -2336,7 +2379,7 @@ msgstr "" msgid "Not Installed" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1463 +#: htdocs/luci-static/resources/fchomo.js:1389 msgid "Not Running" msgstr "" @@ -2399,7 +2442,7 @@ msgstr "" msgid "Only applies to the %s." msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1056 +#: htdocs/luci-static/resources/view/fchomo/node.js:1057 msgid "" "Only nodes using the same %s and %s as this network are permitted to perform " "a handshake or relay traffic through this node." @@ -2413,7 +2456,7 @@ msgstr "" msgid "Only the address %s is valid." msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1457 +#: htdocs/luci-static/resources/fchomo.js:1383 msgid "Open Dashboard" msgstr "" @@ -2612,6 +2655,10 @@ msgstr "" msgid "Port" msgstr "" +#: htdocs/luci-static/resources/fchomo.js:1644 +msgid "Port %s alrealy exists!" +msgstr "" + #: htdocs/luci-static/resources/view/fchomo/node.js:711 msgid "Port hop interval" msgstr "" @@ -2681,7 +2728,7 @@ msgstr "" msgid "Private key" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1055 +#: htdocs/luci-static/resources/view/fchomo/node.js:1056 msgid "Private room" msgstr "" @@ -2906,7 +2953,7 @@ msgstr "" msgid "Refresh every %s seconds." msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1450 +#: htdocs/luci-static/resources/fchomo.js:1376 #: htdocs/luci-static/resources/view/fchomo/client.js:966 #: htdocs/luci-static/resources/view/fchomo/global.js:193 #: htdocs/luci-static/resources/view/fchomo/server.js:45 @@ -2942,6 +2989,11 @@ msgstr "" msgid "Remote trace target" msgstr "" +#: htdocs/luci-static/resources/fchomo.js:1565 +msgid "Remove" +msgstr "" + +#: htdocs/luci-static/resources/fchomo.js:1570 #: htdocs/luci-static/resources/view/fchomo/node.js:244 #: htdocs/luci-static/resources/view/fchomo/node.js:246 #: htdocs/luci-static/resources/view/fchomo/node.js:2341 @@ -3035,6 +3087,16 @@ msgstr "" msgid "Reusing a single tunnel to carry multiple target connections within it." msgstr "" +#: htdocs/luci-static/resources/view/fchomo/node.js:1046 +#: htdocs/luci-static/resources/view/fchomo/node.js:1058 +msgid "Room name" +msgstr "" + +#: htdocs/luci-static/resources/view/fchomo/node.js:1051 +#: htdocs/luci-static/resources/view/fchomo/node.js:1058 +msgid "Room secret" +msgstr "" + #: htdocs/luci-static/resources/view/fchomo/global.js:846 msgid "Routing Control" msgstr "" @@ -3111,7 +3173,7 @@ msgstr "" msgid "Ruleset-URI-Scheme" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1463 +#: htdocs/luci-static/resources/fchomo.js:1389 msgid "Running" msgstr "" @@ -3383,6 +3445,10 @@ msgstr "" msgid "Successfully updated." msgstr "" +#: htdocs/luci-static/resources/fchomo.js:1927 +msgid "Successfully uploaded." +msgstr "" + #: htdocs/luci-static/resources/fchomo.js:192 #: htdocs/luci-static/resources/fchomo.js:229 msgid "Sudoku" @@ -3778,7 +3844,7 @@ msgstr "" msgid "UUID" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1510 +#: htdocs/luci-static/resources/fchomo.js:1436 msgid "Unable to download unsupported type: %s" msgstr "" @@ -4121,6 +4187,10 @@ msgstr "" msgid "YouTube" msgstr "" +#: htdocs/luci-static/resources/fchomo.js:1909 +msgid "Your %s was successfully uploaded. Size: %sB." +msgstr "" + #: htdocs/luci-static/resources/fchomo.js:240 msgid "ZeroTier" msgstr "" @@ -4321,6 +4391,13 @@ msgstr "" msgid "no-resolve" msgstr "" +#: htdocs/luci-static/resources/fchomo.js:1632 +#: htdocs/luci-static/resources/fchomo.js:1739 +#: htdocs/luci-static/resources/fchomo.js:1774 +#: htdocs/luci-static/resources/fchomo.js:1802 +msgid "non-empty value" +msgstr "" + #: htdocs/luci-static/resources/fchomo.js:416 #: htdocs/luci-static/resources/fchomo.js:430 #: htdocs/luci-static/resources/fchomo.js:442 @@ -4470,6 +4547,10 @@ msgstr "" msgid "unique identifier" msgstr "" +#: htdocs/luci-static/resources/fchomo.js:1811 +msgid "unique value" +msgstr "" + #: htdocs/luci-static/resources/view/fchomo/node.js:2583 msgid "up" msgstr "" @@ -4508,10 +4589,45 @@ msgstr "" msgid "v5" msgstr "" +#: htdocs/luci-static/resources/fchomo.js:1679 +#: htdocs/luci-static/resources/fchomo.js:1682 +msgid "valid JSON format" +msgstr "" + #: htdocs/luci-static/resources/view/fchomo/node.js:1542 msgid "valid SHA256 string with %d characters" msgstr "" +#: htdocs/luci-static/resources/fchomo.js:1704 +#: htdocs/luci-static/resources/fchomo.js:1707 +msgid "valid URL" +msgstr "" + +#: htdocs/luci-static/resources/fchomo.js:1729 +msgid "valid base64 key with %d characters" +msgstr "" + +#: htdocs/luci-static/resources/fchomo.js:1789 +#: htdocs/luci-static/resources/fchomo.js:1795 +msgid "valid format: 2x, 2p, 4v" +msgstr "" + +#: htdocs/luci-static/resources/fchomo.js:1720 +msgid "valid hex string with %d characters" +msgstr "" + +#: htdocs/luci-static/resources/fchomo.js:1776 +msgid "valid key length with %d characters" +msgstr "" + +#: htdocs/luci-static/resources/fchomo.js:1642 +msgid "valid port value" +msgstr "" + +#: htdocs/luci-static/resources/fchomo.js:1692 +msgid "valid uuid" +msgstr "" + #: htdocs/luci-static/resources/fchomo.js:488 msgid "vless-mlkem768" msgstr "" @@ -4544,6 +4660,10 @@ msgstr "" msgid "zero" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1512 +#: htdocs/luci-static/resources/fchomo.js:1459 +msgid "🔗" +msgstr "" + +#: htdocs/luci-static/resources/fchomo.js:1438 msgid "🡇" msgstr "" diff --git a/luci-app-fchomo/po/zh_Hans/fchomo.po b/luci-app-fchomo/po/zh_Hans/fchomo.po index b16847df9..7c5557b40 100644 --- a/luci-app-fchomo/po/zh_Hans/fchomo.po +++ b/luci-app-fchomo/po/zh_Hans/fchomo.po @@ -643,6 +643,10 @@ msgstr "收集数据中..." msgid "Common ports (bypass P2P traffic)" msgstr "常用端口(绕过 P2P 流量)" +#: htdocs/luci-static/resources/fchomo.js:1576 +msgid "Complete" +msgstr "完成" + #: htdocs/luci-static/resources/view/fchomo/node.js:1040 msgid "Configuration Document" msgstr "配置文档" @@ -906,11 +910,11 @@ msgstr "下载带宽" msgid "Download bandwidth in Mbps." msgstr "下载带宽(单位:Mbps)。" -#: htdocs/luci-static/resources/fchomo.js:1507 +#: htdocs/luci-static/resources/fchomo.js:1433 msgid "Download failed: %s" msgstr "下载失败: %s" -#: htdocs/luci-static/resources/fchomo.js:1503 +#: htdocs/luci-static/resources/fchomo.js:1429 msgid "Download successful." msgstr "下载成功。" @@ -1154,6 +1158,28 @@ msgstr "预期状态" #: htdocs/luci-static/resources/fchomo.js:525 #: htdocs/luci-static/resources/fchomo.js:528 #: htdocs/luci-static/resources/fchomo.js:531 +#: htdocs/luci-static/resources/fchomo.js:1593 +#: htdocs/luci-static/resources/fchomo.js:1601 +#: htdocs/luci-static/resources/fchomo.js:1609 +#: htdocs/luci-static/resources/fchomo.js:1632 +#: htdocs/luci-static/resources/fchomo.js:1635 +#: htdocs/luci-static/resources/fchomo.js:1642 +#: htdocs/luci-static/resources/fchomo.js:1658 +#: htdocs/luci-static/resources/fchomo.js:1667 +#: htdocs/luci-static/resources/fchomo.js:1679 +#: htdocs/luci-static/resources/fchomo.js:1682 +#: htdocs/luci-static/resources/fchomo.js:1692 +#: htdocs/luci-static/resources/fchomo.js:1704 +#: htdocs/luci-static/resources/fchomo.js:1707 +#: htdocs/luci-static/resources/fchomo.js:1720 +#: htdocs/luci-static/resources/fchomo.js:1729 +#: htdocs/luci-static/resources/fchomo.js:1739 +#: htdocs/luci-static/resources/fchomo.js:1774 +#: htdocs/luci-static/resources/fchomo.js:1776 +#: htdocs/luci-static/resources/fchomo.js:1789 +#: htdocs/luci-static/resources/fchomo.js:1795 +#: htdocs/luci-static/resources/fchomo.js:1802 +#: htdocs/luci-static/resources/fchomo.js:1811 #: htdocs/luci-static/resources/fchomo/listeners.js:284 #: htdocs/luci-static/resources/fchomo/listeners.js:339 #: htdocs/luci-static/resources/fchomo/listeners.js:854 @@ -1223,6 +1249,22 @@ msgstr "实验性" msgid "Factor" msgstr "条件" +#: htdocs/luci-static/resources/fchomo.js:1534 +msgid "Failed to execute \"/etc/init.d/fchomo %s %s\" reason: %s" +msgstr "无法执行 \"/etc/init.d/fchomo %s %s\" 原因: %s" + +#: htdocs/luci-static/resources/fchomo.js:1487 +msgid "Failed to generate %s, error: %s." +msgstr "生成 %s 失败,错误:%s。" + +#: htdocs/luci-static/resources/fchomo.js:1911 +msgid "Failed to upload %s, error: %s." +msgstr "上传 %s 失败,错误:%s。" + +#: htdocs/luci-static/resources/fchomo.js:1930 +msgid "Failed to upload, error: %s." +msgstr "上传失败,错误:%s。" + #: htdocs/luci-static/resources/fchomo.js:280 #: htdocs/luci-static/resources/fchomo/listeners.js:378 msgid "Fallback" @@ -1585,7 +1627,7 @@ msgstr "主机密钥算法" msgid "Host/SNI override" msgstr "主机/SNI 覆盖" -#: htdocs/luci-static/resources/view/fchomo/node.js:1062 +#: htdocs/luci-static/resources/view/fchomo/node.js:1063 msgid "Hostname" msgstr "主机名" @@ -1679,6 +1721,10 @@ msgstr "闲置会话超时" msgid "Idle timeout" msgstr "闲置超时" +#: htdocs/luci-static/resources/fchomo.js:1635 +msgid "If All ports is selected, uncheck others" +msgstr "如果选择了“所有端口”,则取消选中“其他”" + #: htdocs/luci-static/resources/view/fchomo/client.js:71 msgid "If Block is selected, uncheck others" msgstr "如果选择了“阻止”,则取消选中“其他”" @@ -1894,6 +1940,13 @@ msgstr "密钥对" msgid "L2" msgstr "L2" +#: htdocs/luci-static/resources/fchomo.js:241 +#: htdocs/luci-static/resources/fchomo.js:242 +#: htdocs/luci-static/resources/fchomo.js:243 +#: htdocs/luci-static/resources/fchomo.js:244 +msgid "L3" +msgstr "" + #: htdocs/luci-static/resources/fchomo/listeners.js:129 #: htdocs/luci-static/resources/view/fchomo/client.js:1055 #: htdocs/luci-static/resources/view/fchomo/client.js:1347 @@ -2285,16 +2338,6 @@ msgstr "原生外观" msgid "Network" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1046 -#: htdocs/luci-static/resources/view/fchomo/node.js:1057 -msgid "Room name" -msgstr "房间名称" - -#: htdocs/luci-static/resources/view/fchomo/node.js:1051 -#: htdocs/luci-static/resources/view/fchomo/node.js:1057 -msgid "Room secret" -msgstr "房间密码" - #: htdocs/luci-static/resources/fchomo/listeners.js:662 msgid "Network type" msgstr "网络类型" @@ -2368,7 +2411,7 @@ msgstr "正常" msgid "Not Installed" msgstr "未安装" -#: htdocs/luci-static/resources/fchomo.js:1463 +#: htdocs/luci-static/resources/fchomo.js:1389 msgid "Not Running" msgstr "未在运行" @@ -2431,7 +2474,7 @@ msgstr "仅当 %s 用作前端时适用。" msgid "Only applies to the %s." msgstr "只对%s生效。" -#: htdocs/luci-static/resources/view/fchomo/node.js:1056 +#: htdocs/luci-static/resources/view/fchomo/node.js:1057 msgid "" "Only nodes using the same %s and %s as this network are permitted to perform " "a handshake or relay traffic through this node." @@ -2445,7 +2488,7 @@ msgstr "只处理来自指定接口的流量。留空表示全部。" msgid "Only the address %s is valid." msgstr "只有地址 %s 是有效的。" -#: htdocs/luci-static/resources/fchomo.js:1457 +#: htdocs/luci-static/resources/fchomo.js:1383 msgid "Open Dashboard" msgstr "打开面板" @@ -2647,6 +2690,10 @@ msgstr "插件类型" msgid "Port" msgstr "端口" +#: htdocs/luci-static/resources/fchomo.js:1644 +msgid "Port %s alrealy exists!" +msgstr "端口 %s 已存在!" + #: htdocs/luci-static/resources/view/fchomo/node.js:711 msgid "Port hop interval" msgstr "端口跳跃间隔" @@ -2716,7 +2763,7 @@ msgstr "密钥密码" msgid "Private key" msgstr "私钥" -#: htdocs/luci-static/resources/view/fchomo/node.js:1055 +#: htdocs/luci-static/resources/view/fchomo/node.js:1056 msgid "Private room" msgstr "私密房间" @@ -2941,7 +2988,7 @@ msgstr "降低后台流量和网络配置刷新频率。" msgid "Refresh every %s seconds." msgstr "每 %s 秒刷新。" -#: htdocs/luci-static/resources/fchomo.js:1450 +#: htdocs/luci-static/resources/fchomo.js:1376 #: htdocs/luci-static/resources/view/fchomo/client.js:966 #: htdocs/luci-static/resources/view/fchomo/global.js:193 #: htdocs/luci-static/resources/view/fchomo/server.js:45 @@ -2977,6 +3024,11 @@ msgstr "远程跟踪级别" msgid "Remote trace target" msgstr "远程跟踪目标" +#: htdocs/luci-static/resources/fchomo.js:1565 +msgid "Remove" +msgstr "移除" + +#: htdocs/luci-static/resources/fchomo.js:1570 #: htdocs/luci-static/resources/view/fchomo/node.js:244 #: htdocs/luci-static/resources/view/fchomo/node.js:246 #: htdocs/luci-static/resources/view/fchomo/node.js:2341 @@ -3070,6 +3122,16 @@ msgstr "重用 HTTP 连接以减少每次建立连接的 RTT。" msgid "Reusing a single tunnel to carry multiple target connections within it." msgstr "复用单条隧道使其内部承载多条目标连线。" +#: htdocs/luci-static/resources/view/fchomo/node.js:1046 +#: htdocs/luci-static/resources/view/fchomo/node.js:1058 +msgid "Room name" +msgstr "房间名称" + +#: htdocs/luci-static/resources/view/fchomo/node.js:1051 +#: htdocs/luci-static/resources/view/fchomo/node.js:1058 +msgid "Room secret" +msgstr "房间密码" + #: htdocs/luci-static/resources/view/fchomo/global.js:846 msgid "Routing Control" msgstr "路由控制" @@ -3146,7 +3208,7 @@ msgstr "规则集" msgid "Ruleset-URI-Scheme" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1463 +#: htdocs/luci-static/resources/fchomo.js:1389 msgid "Running" msgstr "正在运行" @@ -3418,6 +3480,10 @@ msgstr "已成功导入 %s 个%s (共 %s 个)。" msgid "Successfully updated." msgstr "更新成功。" +#: htdocs/luci-static/resources/fchomo.js:1927 +msgid "Successfully uploaded." +msgstr "已成功上传。" + #: htdocs/luci-static/resources/fchomo.js:192 #: htdocs/luci-static/resources/fchomo.js:229 msgid "Sudoku" @@ -3819,7 +3885,7 @@ msgstr "自动选择" msgid "UUID" msgstr "UUID" -#: htdocs/luci-static/resources/fchomo.js:1510 +#: htdocs/luci-static/resources/fchomo.js:1436 msgid "Unable to download unsupported type: %s" msgstr "无法下载不支持的类型: %s" @@ -4162,6 +4228,10 @@ msgstr "您可以将 %s 添加到 %s 中,以解析虚拟网络内的 A/PTR 记 msgid "YouTube" msgstr "油管" +#: htdocs/luci-static/resources/fchomo.js:1909 +msgid "Your %s was successfully uploaded. Size: %sB." +msgstr "您的 %s 已成功上传。大小:%sB。" + #: htdocs/luci-static/resources/fchomo.js:240 msgid "ZeroTier" msgstr "" @@ -4362,6 +4432,13 @@ msgstr "new_reno" msgid "no-resolve" msgstr "no-resolve" +#: htdocs/luci-static/resources/fchomo.js:1632 +#: htdocs/luci-static/resources/fchomo.js:1739 +#: htdocs/luci-static/resources/fchomo.js:1774 +#: htdocs/luci-static/resources/fchomo.js:1802 +msgid "non-empty value" +msgstr "非空值" + #: htdocs/luci-static/resources/fchomo.js:416 #: htdocs/luci-static/resources/fchomo.js:430 #: htdocs/luci-static/resources/fchomo.js:442 @@ -4511,6 +4588,10 @@ msgstr "独立 UCI 标识" msgid "unique identifier" msgstr "独立标识" +#: htdocs/luci-static/resources/fchomo.js:1811 +msgid "unique value" +msgstr "独立值" + #: htdocs/luci-static/resources/view/fchomo/node.js:2583 msgid "up" msgstr "Hysteria 上传速率" @@ -4549,10 +4630,45 @@ msgstr "" msgid "v5" msgstr "" +#: htdocs/luci-static/resources/fchomo.js:1679 +#: htdocs/luci-static/resources/fchomo.js:1682 +msgid "valid JSON format" +msgstr "有效的 JSON 格式" + #: htdocs/luci-static/resources/view/fchomo/node.js:1542 msgid "valid SHA256 string with %d characters" msgstr "包含 %d 个字符的有效 SHA256 字符串" +#: htdocs/luci-static/resources/fchomo.js:1704 +#: htdocs/luci-static/resources/fchomo.js:1707 +msgid "valid URL" +msgstr "有效网址" + +#: htdocs/luci-static/resources/fchomo.js:1729 +msgid "valid base64 key with %d characters" +msgstr "包含 %d 个字符的有效 base64 密钥" + +#: htdocs/luci-static/resources/fchomo.js:1789 +#: htdocs/luci-static/resources/fchomo.js:1795 +msgid "valid format: 2x, 2p, 4v" +msgstr "有效格式: 2x, 2p, 4v" + +#: htdocs/luci-static/resources/fchomo.js:1720 +msgid "valid hex string with %d characters" +msgstr "包含 %d 个字符的有效 Hex 字符串" + +#: htdocs/luci-static/resources/fchomo.js:1776 +msgid "valid key length with %d characters" +msgstr "包含 %d 个字符的有效密钥" + +#: htdocs/luci-static/resources/fchomo.js:1642 +msgid "valid port value" +msgstr "有效端口值" + +#: htdocs/luci-static/resources/fchomo.js:1692 +msgid "valid uuid" +msgstr "有效 uuid" + #: htdocs/luci-static/resources/fchomo.js:488 msgid "vless-mlkem768" msgstr "" @@ -4585,6 +4701,10 @@ msgstr "" msgid "zero" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1512 +#: htdocs/luci-static/resources/fchomo.js:1459 +msgid "🔗" +msgstr "" + +#: htdocs/luci-static/resources/fchomo.js:1438 msgid "🡇" msgstr "" diff --git a/luci-app-fchomo/po/zh_Hant/fchomo.po b/luci-app-fchomo/po/zh_Hant/fchomo.po index e2fc32db8..3e7b0350f 100644 --- a/luci-app-fchomo/po/zh_Hant/fchomo.po +++ b/luci-app-fchomo/po/zh_Hant/fchomo.po @@ -643,6 +643,10 @@ msgstr "收集資料中..." msgid "Common ports (bypass P2P traffic)" msgstr "常用連接埠(繞過 P2P 流量)" +#: htdocs/luci-static/resources/fchomo.js:1576 +msgid "Complete" +msgstr "完成" + #: htdocs/luci-static/resources/view/fchomo/node.js:1040 msgid "Configuration Document" msgstr "配置文檔" @@ -906,11 +910,11 @@ msgstr "下載頻寬" msgid "Download bandwidth in Mbps." msgstr "下載頻寬(單位:Mbps)。" -#: htdocs/luci-static/resources/fchomo.js:1507 +#: htdocs/luci-static/resources/fchomo.js:1433 msgid "Download failed: %s" msgstr "下載失敗: %s" -#: htdocs/luci-static/resources/fchomo.js:1503 +#: htdocs/luci-static/resources/fchomo.js:1429 msgid "Download successful." msgstr "下載成功。" @@ -1154,6 +1158,28 @@ msgstr "預期狀態" #: htdocs/luci-static/resources/fchomo.js:525 #: htdocs/luci-static/resources/fchomo.js:528 #: htdocs/luci-static/resources/fchomo.js:531 +#: htdocs/luci-static/resources/fchomo.js:1593 +#: htdocs/luci-static/resources/fchomo.js:1601 +#: htdocs/luci-static/resources/fchomo.js:1609 +#: htdocs/luci-static/resources/fchomo.js:1632 +#: htdocs/luci-static/resources/fchomo.js:1635 +#: htdocs/luci-static/resources/fchomo.js:1642 +#: htdocs/luci-static/resources/fchomo.js:1658 +#: htdocs/luci-static/resources/fchomo.js:1667 +#: htdocs/luci-static/resources/fchomo.js:1679 +#: htdocs/luci-static/resources/fchomo.js:1682 +#: htdocs/luci-static/resources/fchomo.js:1692 +#: htdocs/luci-static/resources/fchomo.js:1704 +#: htdocs/luci-static/resources/fchomo.js:1707 +#: htdocs/luci-static/resources/fchomo.js:1720 +#: htdocs/luci-static/resources/fchomo.js:1729 +#: htdocs/luci-static/resources/fchomo.js:1739 +#: htdocs/luci-static/resources/fchomo.js:1774 +#: htdocs/luci-static/resources/fchomo.js:1776 +#: htdocs/luci-static/resources/fchomo.js:1789 +#: htdocs/luci-static/resources/fchomo.js:1795 +#: htdocs/luci-static/resources/fchomo.js:1802 +#: htdocs/luci-static/resources/fchomo.js:1811 #: htdocs/luci-static/resources/fchomo/listeners.js:284 #: htdocs/luci-static/resources/fchomo/listeners.js:339 #: htdocs/luci-static/resources/fchomo/listeners.js:854 @@ -1223,6 +1249,22 @@ msgstr "實驗性" msgid "Factor" msgstr "條件" +#: htdocs/luci-static/resources/fchomo.js:1534 +msgid "Failed to execute \"/etc/init.d/fchomo %s %s\" reason: %s" +msgstr "無法執行 \"/etc/init.d/fchomo %s %s\" 原因: %s" + +#: htdocs/luci-static/resources/fchomo.js:1487 +msgid "Failed to generate %s, error: %s." +msgstr "生成 %s 失敗,錯誤:%s。" + +#: htdocs/luci-static/resources/fchomo.js:1911 +msgid "Failed to upload %s, error: %s." +msgstr "上傳 %s 失敗,錯誤:%s。" + +#: htdocs/luci-static/resources/fchomo.js:1930 +msgid "Failed to upload, error: %s." +msgstr "上傳失敗,錯誤:%s。" + #: htdocs/luci-static/resources/fchomo.js:280 #: htdocs/luci-static/resources/fchomo/listeners.js:378 msgid "Fallback" @@ -1585,7 +1627,7 @@ msgstr "主機金鑰演算法" msgid "Host/SNI override" msgstr "主機/SNI 覆蓋" -#: htdocs/luci-static/resources/view/fchomo/node.js:1062 +#: htdocs/luci-static/resources/view/fchomo/node.js:1063 msgid "Hostname" msgstr "主機名稱" @@ -1679,6 +1721,10 @@ msgstr "閒置會話逾時" msgid "Idle timeout" msgstr "閒置逾時" +#: htdocs/luci-static/resources/fchomo.js:1635 +msgid "If All ports is selected, uncheck others" +msgstr "如果選擇了“所有連接埠”,則取消選取“其他”" + #: htdocs/luci-static/resources/view/fchomo/client.js:71 msgid "If Block is selected, uncheck others" msgstr "如果選擇了“封鎖”,則取消選取“其他”" @@ -1894,6 +1940,13 @@ msgstr "密鑰對" msgid "L2" msgstr "L2" +#: htdocs/luci-static/resources/fchomo.js:241 +#: htdocs/luci-static/resources/fchomo.js:242 +#: htdocs/luci-static/resources/fchomo.js:243 +#: htdocs/luci-static/resources/fchomo.js:244 +msgid "L3" +msgstr "" + #: htdocs/luci-static/resources/fchomo/listeners.js:129 #: htdocs/luci-static/resources/view/fchomo/client.js:1055 #: htdocs/luci-static/resources/view/fchomo/client.js:1347 @@ -2285,16 +2338,6 @@ msgstr "原生外觀" msgid "Network" msgstr "" -#: htdocs/luci-static/resources/view/fchomo/node.js:1046 -#: htdocs/luci-static/resources/view/fchomo/node.js:1057 -msgid "Room name" -msgstr "房間名稱" - -#: htdocs/luci-static/resources/view/fchomo/node.js:1051 -#: htdocs/luci-static/resources/view/fchomo/node.js:1057 -msgid "Room secret" -msgstr "房間密碼" - #: htdocs/luci-static/resources/fchomo/listeners.js:662 msgid "Network type" msgstr "網路類型" @@ -2368,7 +2411,7 @@ msgstr "正常" msgid "Not Installed" msgstr "未安裝" -#: htdocs/luci-static/resources/fchomo.js:1463 +#: htdocs/luci-static/resources/fchomo.js:1389 msgid "Not Running" msgstr "未在運作" @@ -2431,7 +2474,7 @@ msgstr "僅當 %s 用作前端時適用。" msgid "Only applies to the %s." msgstr "只對%s生效。" -#: htdocs/luci-static/resources/view/fchomo/node.js:1056 +#: htdocs/luci-static/resources/view/fchomo/node.js:1057 msgid "" "Only nodes using the same %s and %s as this network are permitted to perform " "a handshake or relay traffic through this node." @@ -2445,7 +2488,7 @@ msgstr "只處理來自指定介面的流量。留空表示全部。" msgid "Only the address %s is valid." msgstr "只有位址 %s 是有效的。" -#: htdocs/luci-static/resources/fchomo.js:1457 +#: htdocs/luci-static/resources/fchomo.js:1383 msgid "Open Dashboard" msgstr "打開面板" @@ -2647,6 +2690,10 @@ msgstr "外掛類型" msgid "Port" msgstr "連接埠" +#: htdocs/luci-static/resources/fchomo.js:1644 +msgid "Port %s alrealy exists!" +msgstr "連接埠 %s 已存在!" + #: htdocs/luci-static/resources/view/fchomo/node.js:711 msgid "Port hop interval" msgstr "連接埠跳躍間隔" @@ -2716,7 +2763,7 @@ msgstr "金鑰密碼" msgid "Private key" msgstr "私鑰" -#: htdocs/luci-static/resources/view/fchomo/node.js:1055 +#: htdocs/luci-static/resources/view/fchomo/node.js:1056 msgid "Private room" msgstr "私密房間" @@ -2941,7 +2988,7 @@ msgstr "降低後台流量和網路配置刷新頻率。" msgid "Refresh every %s seconds." msgstr "每 %s 秒刷新。" -#: htdocs/luci-static/resources/fchomo.js:1450 +#: htdocs/luci-static/resources/fchomo.js:1376 #: htdocs/luci-static/resources/view/fchomo/client.js:966 #: htdocs/luci-static/resources/view/fchomo/global.js:193 #: htdocs/luci-static/resources/view/fchomo/server.js:45 @@ -2977,6 +3024,11 @@ msgstr "遠端追蹤等級" msgid "Remote trace target" msgstr "遠端追蹤目標" +#: htdocs/luci-static/resources/fchomo.js:1565 +msgid "Remove" +msgstr "移除" + +#: htdocs/luci-static/resources/fchomo.js:1570 #: htdocs/luci-static/resources/view/fchomo/node.js:244 #: htdocs/luci-static/resources/view/fchomo/node.js:246 #: htdocs/luci-static/resources/view/fchomo/node.js:2341 @@ -3070,6 +3122,16 @@ msgstr "重用 HTTP 連接以減少每次建立連接的 RTT。" msgid "Reusing a single tunnel to carry multiple target connections within it." msgstr "複用單條隧道使其內部承載多條目標連線。" +#: htdocs/luci-static/resources/view/fchomo/node.js:1046 +#: htdocs/luci-static/resources/view/fchomo/node.js:1058 +msgid "Room name" +msgstr "房間名稱" + +#: htdocs/luci-static/resources/view/fchomo/node.js:1051 +#: htdocs/luci-static/resources/view/fchomo/node.js:1058 +msgid "Room secret" +msgstr "房間密碼" + #: htdocs/luci-static/resources/view/fchomo/global.js:846 msgid "Routing Control" msgstr "路由控制" @@ -3146,7 +3208,7 @@ msgstr "規則集" msgid "Ruleset-URI-Scheme" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1463 +#: htdocs/luci-static/resources/fchomo.js:1389 msgid "Running" msgstr "正在運作" @@ -3418,6 +3480,10 @@ msgstr "已成功匯入 %s 個%s (共 %s 個)。" msgid "Successfully updated." msgstr "更新成功。" +#: htdocs/luci-static/resources/fchomo.js:1927 +msgid "Successfully uploaded." +msgstr "已成功上傳。" + #: htdocs/luci-static/resources/fchomo.js:192 #: htdocs/luci-static/resources/fchomo.js:229 msgid "Sudoku" @@ -3819,7 +3885,7 @@ msgstr "自動選擇" msgid "UUID" msgstr "UUID" -#: htdocs/luci-static/resources/fchomo.js:1510 +#: htdocs/luci-static/resources/fchomo.js:1436 msgid "Unable to download unsupported type: %s" msgstr "無法下載不支援的類型: %s" @@ -4162,6 +4228,10 @@ msgstr "您可以將 %s 新增到 %s 中,以解析虛擬網路內的 A/PTR 記 msgid "YouTube" msgstr "YouTube" +#: htdocs/luci-static/resources/fchomo.js:1909 +msgid "Your %s was successfully uploaded. Size: %sB." +msgstr "您的 %s 已成功上傳。大小:%sB。" + #: htdocs/luci-static/resources/fchomo.js:240 msgid "ZeroTier" msgstr "" @@ -4362,6 +4432,13 @@ msgstr "new_reno" msgid "no-resolve" msgstr "no-resolve" +#: htdocs/luci-static/resources/fchomo.js:1632 +#: htdocs/luci-static/resources/fchomo.js:1739 +#: htdocs/luci-static/resources/fchomo.js:1774 +#: htdocs/luci-static/resources/fchomo.js:1802 +msgid "non-empty value" +msgstr "非空值" + #: htdocs/luci-static/resources/fchomo.js:416 #: htdocs/luci-static/resources/fchomo.js:430 #: htdocs/luci-static/resources/fchomo.js:442 @@ -4511,6 +4588,10 @@ msgstr "獨立 UCI 識別" msgid "unique identifier" msgstr "獨立標識" +#: htdocs/luci-static/resources/fchomo.js:1811 +msgid "unique value" +msgstr "獨立值" + #: htdocs/luci-static/resources/view/fchomo/node.js:2583 msgid "up" msgstr "Hysteria 上傳速率" @@ -4549,10 +4630,45 @@ msgstr "" msgid "v5" msgstr "" +#: htdocs/luci-static/resources/fchomo.js:1679 +#: htdocs/luci-static/resources/fchomo.js:1682 +msgid "valid JSON format" +msgstr "有效的 JSON 格式" + #: htdocs/luci-static/resources/view/fchomo/node.js:1542 msgid "valid SHA256 string with %d characters" msgstr "包含 %d 個字元的有效 SHA256 字串" +#: htdocs/luci-static/resources/fchomo.js:1704 +#: htdocs/luci-static/resources/fchomo.js:1707 +msgid "valid URL" +msgstr "有效網址" + +#: htdocs/luci-static/resources/fchomo.js:1729 +msgid "valid base64 key with %d characters" +msgstr "包含 %d 個字元的有效 base64 金鑰" + +#: htdocs/luci-static/resources/fchomo.js:1789 +#: htdocs/luci-static/resources/fchomo.js:1795 +msgid "valid format: 2x, 2p, 4v" +msgstr "有效格式: 2x, 2p, 4v" + +#: htdocs/luci-static/resources/fchomo.js:1720 +msgid "valid hex string with %d characters" +msgstr "包含 %d 个字符的有效 Hex 字串" + +#: htdocs/luci-static/resources/fchomo.js:1776 +msgid "valid key length with %d characters" +msgstr "包含 %d 個字元的有效金鑰" + +#: htdocs/luci-static/resources/fchomo.js:1642 +msgid "valid port value" +msgstr "有效連接埠值" + +#: htdocs/luci-static/resources/fchomo.js:1692 +msgid "valid uuid" +msgstr "有效 uuid" + #: htdocs/luci-static/resources/fchomo.js:488 msgid "vless-mlkem768" msgstr "" @@ -4585,6 +4701,10 @@ msgstr "" msgid "zero" msgstr "" -#: htdocs/luci-static/resources/fchomo.js:1512 +#: htdocs/luci-static/resources/fchomo.js:1459 +msgid "🔗" +msgstr "" + +#: htdocs/luci-static/resources/fchomo.js:1438 msgid "🡇" msgstr "" diff --git a/luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js b/luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js index d5e20158e..586f4da92 100644 --- a/luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js +++ b/luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js @@ -79,6 +79,13 @@ return L.view.extend({ o.rmempty = false; o.modalonly = true; + // /etc/init.d/glorytun starts no instance without proto=tcp: an + // instance added here was never started + o = s.taboption('general', form.HiddenValue, 'proto'); + o.default = 'tcp'; + o.rmempty = false; + o.modalonly = true; + return m.render(); } }); diff --git a/luci-app-iperf/luasrc/view/iperf/test.htm b/luci-app-iperf/luasrc/view/iperf/test.htm index a1d8763da..944ab81c4 100644 --- a/luci-app-iperf/luasrc/view/iperf/test.htm +++ b/luci-app-iperf/luasrc/view/iperf/test.htm @@ -5,8 +5,9 @@ %>