diff --git a/docs/knowledge-base/13_REST_API_AND_MCP_SPECIFICATION.md b/docs/knowledge-base/13_REST_API_AND_MCP_SPECIFICATION.md index b3c43ae1..8f6afa56 100644 --- a/docs/knowledge-base/13_REST_API_AND_MCP_SPECIFICATION.md +++ b/docs/knowledge-base/13_REST_API_AND_MCP_SPECIFICATION.md @@ -29,7 +29,7 @@ Returns lightweight status of all core daemons. ```json { "status": "healthy", - "version": "1.2.85", + "version": "1.2.86", "uptime_seconds": 18450, "singbox_running": true, "watchdog_running": true, diff --git a/fe-app-tachyon/extract-calls.js b/fe-app-tachyon/extract-calls.js index 5ebffb97..4c701884 100644 --- a/fe-app-tachyon/extract-calls.js +++ b/fe-app-tachyon/extract-calls.js @@ -20,12 +20,12 @@ function stripIllegalReturn(code) { const files = await glob([ 'src/**/*.ts', 'src/**/*.tsx', - '../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js', - '../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js', + '../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/**/*.js', ], { cwd: __dirname, ignore: [ '**/*.test.ts', + '**/main.js', ], absolute: true, }); diff --git a/fe-app-tachyon/locales/calls.json b/fe-app-tachyon/locales/calls.json index 1b7ff6c5..d5ff2fb7 100644 --- a/fe-app-tachyon/locales/calls.json +++ b/fe-app-tachyon/locales/calls.json @@ -95,6 +95,8 @@ "call": "✔ Running", "key": "✔ Running", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7917", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7924", "src/tachyon/tabs/dashboard/initController.ts:1882", "src/tachyon/tabs/dashboard/initController.ts:1891", "src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:456" @@ -104,6 +106,8 @@ "call": "✘ Stopped", "key": "✘ Stopped", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7917", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7924", "src/tachyon/tabs/dashboard/initController.ts:1882", "src/tachyon/tabs/dashboard/initController.ts:1891", "src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:456" @@ -116,6 +120,20 @@ "src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:721" ] }, + { + "call": "Accept external proxy connections and route them with sing-box.", + "key": "Accept external proxy connections and route them with sing-box.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:447" + ] + }, + { + "call": "Accept routes", + "key": "Accept routes", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3276" + ] + }, { "call": "Action", "key": "Action", @@ -124,19 +142,44 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7275" ] }, + { + "call": "Action Mode", + "key": "Action Mode", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:266" + ] + }, { "call": "Active", "key": "Active", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7320", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13869", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14445", "src/tachyon/tabs/dashboard/initController.ts:1123", "src/tachyon/tabs/monitoring/initController.ts:713", "src/tachyon/tabs/monitoring/render.ts:20" ] }, + { + "call": "Active (Allowed)", + "key": "Active (Allowed)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:203" + ] + }, + { + "call": "Active (Blocking)", + "key": "Active (Blocking)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:203" + ] + }, { "call": "Active Bootstrap DNS", "key": "Active Bootstrap DNS", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8913", "src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:56" ] }, @@ -144,6 +187,8 @@ "call": "Active Clients", "key": "Active Clients", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2732", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2802", "src/tachyon/tabs/dashboard/partials/renderConnections.ts:50", "src/tachyon/tabs/dashboard/partials/renderConnections.ts:126" ] @@ -152,6 +197,7 @@ "call": "Active Connections", "key": "Active Connections", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7903", "src/tachyon/tabs/dashboard/initController.ts:1867" ] }, @@ -159,16 +205,38 @@ "call": "Active Main DNS", "key": "Active Main DNS", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8920", "src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:67" ] }, + { + "call": "Add a schedule rule", + "key": "Add a schedule rule", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:471" + ] + }, + { + "call": "Add a section", + "key": "Add a section", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:436" + ] + }, + { + "call": "Add a server inbound", + "key": "Add a server inbound", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:453" + ] + }, { "call": "Add at least one DNS server", "key": "Add at least one DNS server", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1852", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:122", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:166", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1852" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:166" ] }, { @@ -217,6 +285,7 @@ "call": "Additional marking rules found", "key": "Additional marking rules found", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9255", "src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:106" ] }, @@ -250,6 +319,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3345" ] }, + { + "call": "Address", + "key": "Address", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1711" + ] + }, { "call": "Administrator Chat IDs", "key": "Administrator Chat IDs", @@ -271,6 +347,20 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:822" ] }, + { + "call": "Advertise exit node", + "key": "Advertise exit node", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3259" + ] + }, + { + "call": "Advertise routes", + "key": "Advertise routes", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3269" + ] + }, { "call": "AEAD Method", "key": "AEAD Method", @@ -311,6 +401,7 @@ "call": "AI Chat & Tachyon Assistant", "key": "AI Chat & Tachyon Assistant", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11334", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:220" ] }, @@ -318,6 +409,7 @@ "call": "AI Chat Assistant", "key": "AI Chat Assistant", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10205", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:150" ] }, @@ -332,6 +424,7 @@ "call": "AI Doctor Diagnosis", "key": "AI Doctor Diagnosis", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13047", "src/tachyon/tabs/diagnostic/initController.ts:1553" ] }, @@ -339,6 +432,9 @@ "call": "AI Doctor failed", "key": "AI Doctor failed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12508", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13050", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13058", "src/tachyon/tabs/diagnostic/initController.ts:846", "src/tachyon/tabs/diagnostic/initController.ts:1559", "src/tachyon/tabs/diagnostic/initController.ts:1567" @@ -372,6 +468,7 @@ "call": "AI service error", "key": "AI service error", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11264", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:138" ] }, @@ -393,10 +490,19 @@ "call": "All", "key": "All", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13888", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14410", "src/tachyon/tabs/monitoring/initController.ts:672", "src/tachyon/tabs/monitoring/render.ts:40" ] }, + { + "call": "All devices", + "key": "All devices", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:139" + ] + }, { "call": "All except selected", "key": "All except selected", @@ -404,6 +510,20 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1968" ] }, + { + "call": "All Internet", + "key": "All Internet", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:150" + ] + }, + { + "call": "All Internet (Complete internet cutoff)", + "key": "All Internet (Complete internet cutoff)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:238" + ] + }, { "call": "All remaining except selected", "key": "All remaining except selected", @@ -429,6 +549,8 @@ "call": "All Routes", "key": "All Routes", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13896", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14383", "src/tachyon/tabs/monitoring/initController.ts:635", "src/tachyon/tabs/monitoring/render.ts:49" ] @@ -447,6 +569,20 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9496" ] }, + { + "call": "Allow / Enable ONLY in scheduled hours (White period)", + "key": "Allow / Enable ONLY in scheduled hours (White period)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:272" + ] + }, + { + "call": "Allow in interval", + "key": "Allow in interval", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:174" + ] + }, { "call": "Allow Insecure TLS", "key": "Allow Insecure TLS", @@ -482,6 +618,20 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1631" ] }, + { + "call": "ALPN", + "key": "ALPN", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2788" + ] + }, + { + "call": "Alter ID", + "key": "Alter ID", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3022" + ] + }, { "call": "AmneziaWG config loaded successfully!", "key": "AmneziaWG config loaded successfully!", @@ -500,6 +650,7 @@ "call": "Anonymized support report copied to clipboard", "key": "Anonymized support report copied to clipboard", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12583", "src/tachyon/tabs/diagnostic/initController.ts:960" ] }, @@ -507,6 +658,7 @@ "call": "Another component action is already running", "key": "Another component action is already running", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16885", "src/tachyon/tabs/updates/initController.ts:861" ] }, @@ -535,6 +687,7 @@ "call": "Applying fix", "key": "Applying fix", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12713", "src/tachyon/tabs/diagnostic/initController.ts:1171" ] }, @@ -542,6 +695,7 @@ "call": "Applying...", "key": "Applying...", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12711", "src/tachyon/tabs/diagnostic/initController.ts:1169" ] }, @@ -549,6 +703,7 @@ "call": "Ask Tachyon AI Assistant a question...", "key": "Ask Tachyon AI Assistant a question...", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11200", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:60" ] }, @@ -584,6 +739,9 @@ "call": "Auto", "key": "Auto", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2256", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7160", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7500", "src/tachyon/tabs/dashboard/initController.ts:919", "src/tachyon/tabs/dashboard/initController.ts:1351", "src/tachyon/tabs/dashboard/partials/renderSections.ts:450" @@ -593,9 +751,17 @@ "call": "Auto refresh", "key": "Auto refresh", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10035", "src/partials/modal/renderModal.ts:286" ] }, + { + "call": "Auto update", + "key": "Auto update", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3179" + ] + }, { "call": "Auto-detected domains", "key": "Auto-detected domains", @@ -629,6 +795,7 @@ "call": "Auto-Heal Network Stack", "key": "Auto-Heal Network Stack", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12641", "src/tachyon/tabs/diagnostic/initController.ts:1084" ] }, @@ -685,6 +852,7 @@ "call": "Automatically select the fastest node in the current level", "key": "Automatically select the fastest node in the current level", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7580", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3157", "src/tachyon/tabs/dashboard/initController.ts:1454" ] @@ -700,6 +868,7 @@ "call": "Available actions", "key": "Available actions", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10111", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:56" ] }, @@ -719,6 +888,13 @@ "src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:693" ] }, + { + "call": "Beginning of the schedule interval (e.g. 22:00)", + "key": "Beginning of the schedule interval (e.g. 22:00)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:279" + ] + }, { "call": "Belarus (by)", "key": "Belarus (by)", @@ -734,10 +910,32 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9554" ] }, + { + "call": "Block / Disable in scheduled hours (Standard)", + "key": "Block / Disable in scheduled hours (Standard)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:271" + ] + }, + { + "call": "Block in interval", + "key": "Block in interval", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:176" + ] + }, + { + "call": "Block internet access or specific proxy sections for individual devices based on time and days.", + "key": "Block internet access or specific proxy sections for individual devices based on time and days.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:465" + ] + }, { "call": "Bootstrap DNS", "key": "Bootstrap DNS", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8913", "src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:57" ] }, @@ -759,6 +957,8 @@ "call": "Browser FakeIP check could not be completed", "key": "Browser FakeIP check could not be completed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9293", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9312", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:51", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:79" ] @@ -767,6 +967,7 @@ "call": "Browser is not using FakeIP", "key": "Browser is not using FakeIP", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9312", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:82" ] }, @@ -774,6 +975,7 @@ "call": "Browser is using FakeIP correctly", "key": "Browser is using FakeIP correctly", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9312", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:81" ] }, @@ -781,6 +983,7 @@ "call": "Bug report downloaded", "key": "Bug report downloaded", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13185", "src/tachyon/tabs/diagnostic/initController.ts:1717" ] }, @@ -833,6 +1036,7 @@ "call": "ByeDPI package is installed", "key": "ByeDPI package is installed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9565", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:71" ] }, @@ -840,6 +1044,7 @@ "call": "ByeDPI package is not installed", "key": "ByeDPI package is not installed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9565", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:72" ] }, @@ -847,6 +1052,7 @@ "call": "ByeDPI provider binary is available", "key": "ByeDPI provider binary is available", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9560", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:64" ] }, @@ -854,6 +1060,7 @@ "call": "ByeDPI provider binary is not available", "key": "ByeDPI provider binary is not available", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9560", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:65" ] }, @@ -861,6 +1068,7 @@ "call": "ByeDPI sing-box outbound is configured", "key": "ByeDPI sing-box outbound is configured", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9580", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:107" ] }, @@ -868,6 +1076,7 @@ "call": "ByeDPI sing-box outbound is not configured", "key": "ByeDPI sing-box outbound is not configured", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9580", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:108" ] }, @@ -924,11 +1133,12 @@ "call": "Cancel", "key": "Cancel", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13086", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7721", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:434", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:575", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:607", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:655", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7721", "src/tachyon/tabs/diagnostic/initController.ts:1598" ] }, @@ -936,6 +1146,14 @@ "call": "Cannot receive checks result", "key": "Cannot receive checks result", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8893", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8957", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9138", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9201", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9363", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9447", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9535", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11456", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:26", "src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:27", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:172", @@ -946,6 +1164,13 @@ "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:26" ] }, + { + "call": "Cannot save server", + "key": "Cannot save server", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2337" + ] + }, { "call": "Cannot save settings", "key": "Cannot save settings", @@ -960,10 +1185,26 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8993" ] }, + { + "call": "Certificate path", + "key": "Certificate path", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2798" + ] + }, + { + "call": "Certificate pin is unavailable. Apply or restart the server to generate the default certificate, then open this dialog again.", + "key": "Certificate pin is unavailable. Apply or restart the server to generate the default certificate, then open this dialog again.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1656" + ] + }, { "call": "Check completed!", "key": "Check completed!", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16151", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16612", "src/tachyon/tabs/updates/initController.ts:498", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:320" ] @@ -972,6 +1213,8 @@ "call": "Check Connection", "key": "Check Connection", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2247", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2609", "src/tachyon/tabs/dashboard/partials/renderSections.ts:432", "src/tachyon/tabs/dashboard/partials/renderSections.ts:894" ] @@ -980,6 +1223,7 @@ "call": "Check interval", "key": "Check interval", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7567", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2645", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3108", "src/tachyon/tabs/dashboard/initController.ts:1441" @@ -989,6 +1233,7 @@ "call": "Check Services", "key": "Check Services", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10215", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:160" ] }, @@ -1003,6 +1248,7 @@ "call": "Check update", "key": "Check update", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16943", "src/tachyon/tabs/updates/initController.ts:930" ] }, @@ -1010,6 +1256,7 @@ "call": "Check URL", "key": "Check URL", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7565", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2671", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3095", "src/tachyon/tabs/dashboard/initController.ts:1439" @@ -1019,6 +1266,7 @@ "call": "Check YouTube", "key": "Check YouTube", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11277", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:155" ] }, @@ -1026,6 +1274,7 @@ "call": "Checking Connection...", "key": "Checking Connection...", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7696", "src/tachyon/tabs/dashboard/initController.ts:1620" ] }, @@ -1033,6 +1282,7 @@ "call": "Checking for updates...", "key": "Checking for updates...", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15981", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:112" ] }, @@ -1040,6 +1290,16 @@ "call": "Checking, please wait", "key": "Checking, please wait", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8883", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8947", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9128", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9189", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9272", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9353", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9437", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9525", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11444", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13436", "src/tachyon/tabs/diagnostic/initController.ts:2017", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:14", "src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:15", @@ -1056,6 +1316,10 @@ "call": "Checking...", "key": "Checking...", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2171", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2242", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2547", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2602", "src/tachyon/tabs/dashboard/partials/renderSections.ts:328", "src/tachyon/tabs/dashboard/partials/renderSections.ts:426", "src/tachyon/tabs/dashboard/partials/renderSections.ts:810", @@ -1074,6 +1338,7 @@ "call": "checks", "key": "checks", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5099", "src/tachyon/tabs/diagnostic/helpers/getCheckTitle.ts:2" ] }, @@ -1081,23 +1346,29 @@ "call": "Checks failed", "key": "Checks failed", "places": [ - "src/tachyon/tabs/diagnostic/helpers/getMeta.ts:26", - "src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:10" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8853", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9331", + "src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:10", + "src/tachyon/tabs/diagnostic/helpers/getMeta.ts:26" ] }, { "call": "Checks passed", "key": "Checks passed", "places": [ - "src/tachyon/tabs/diagnostic/helpers/getMeta.ts:13", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8842", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9288", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9342", "src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:23", - "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:43" + "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:43", + "src/tachyon/tabs/diagnostic/helpers/getMeta.ts:13" ] }, { "call": "Checks passed with manual DHCP", "key": "Checks passed with manual DHCP", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8865", "src/tachyon/tabs/diagnostic/checks/getDnsCheckPresentation.ts:27" ] }, @@ -1115,6 +1386,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7540" ] }, + { + "call": "Choose whether to restrict the entire internet or only specific Tachyon routing sections.", + "key": "Choose whether to restrict the entire internet or only specific Tachyon routing sections.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:234" + ] + }, { "call": "Choose whether to route traffic to all destinations except selected countries (Exclude) or only to selected countries (Include).", "key": "Choose whether to route traffic to all destinations except selected countries (Exclude) or only to selected countries (Include).", @@ -1122,10 +1400,18 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9224" ] }, + { + "call": "Choose which routing sections to apply this schedule to.", + "key": "Choose which routing sections to apply this schedule to.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:246" + ] + }, { "call": "CIDR must be between 0 and 32 for IPv4 or 0 and 128 for IPv6", "key": "CIDR must be between 0 and 32 for IPv4 or 0 and 128 for IPv6", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:227", "src/validators/validateSubnet.ts:35" ] }, @@ -1154,9 +1440,17 @@ "call": "Clear DNS cache", "key": "Clear DNS cache", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12634", "src/tachyon/tabs/diagnostic/initController.ts:1077" ] }, + { + "call": "Client Address", + "key": "Client Address", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3298" + ] + }, { "call": "Client Certificate", "key": "Client Certificate", @@ -1164,6 +1458,20 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8718" ] }, + { + "call": "Client DNS", + "key": "Client DNS", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3310" + ] + }, + { + "call": "Client fingerprint", + "key": "Client fingerprint", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2896" + ] + }, { "call": "Client Key", "key": "Client Key", @@ -1171,17 +1479,68 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8730" ] }, + { + "call": "Client link", + "key": "Client link", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1728" + ] + }, + { + "call": "Client link is not available yet", + "key": "Client link is not available yet", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1636" + ] + }, + { + "call": "Client link QR code", + "key": "Client link QR code", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1669" + ] + }, + { + "call": "Client Private Key", + "key": "Client Private Key", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3358" + ] + }, + { + "call": "Client Public Key", + "key": "Client Public Key", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3368" + ] + }, + { + "call": "Client VPN IP address (e.g. 10.0.0.2/32)", + "key": "Client VPN IP address (e.g. 10.0.0.2/32)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3299" + ] + }, { "call": "Close", "key": "Close", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7438", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10014", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11327", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13038", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14584", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14624", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16226", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16261", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3660", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10239", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1803", "src/partials/modal/renderModal.ts:263", - "src/tachyon/tabs/diagnostic/initController.ts:1543", "src/tachyon/tabs/dashboard/initController.ts:1263", "src/tachyon/tabs/monitoring/initController.ts:884", "src/tachyon/tabs/monitoring/initController.ts:934", + "src/tachyon/tabs/diagnostic/initController.ts:1543", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:212", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:414", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:460" @@ -1191,6 +1550,8 @@ "call": "Close all connections", "key": "Close all connections", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13915", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13916", "src/tachyon/tabs/monitoring/render.ts:68", "src/tachyon/tabs/monitoring/render.ts:69" ] @@ -1199,6 +1560,8 @@ "call": "Close connection", "key": "Close connection", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14553", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14554", "src/tachyon/tabs/monitoring/initController.ts:851", "src/tachyon/tabs/monitoring/initController.ts:852" ] @@ -1207,6 +1570,8 @@ "call": "Closed", "key": "Closed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13878", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14451", "src/tachyon/tabs/monitoring/initController.ts:720", "src/tachyon/tabs/monitoring/render.ts:29" ] @@ -1257,6 +1622,7 @@ "call": "Component update available", "key": "Component update available", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6026", "src/tachyon/services/core.service.ts:43" ] }, @@ -1267,13 +1633,28 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1382" ] }, + { + "call": "Components", + "key": "Components", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:537" + ] + }, { "call": "compressed", "key": "compressed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5674", "src/tachyon/helpers/singBoxVariant.ts:60" ] }, + { + "call": "Concurrency", + "key": "Concurrency", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3131" + ] + }, { "call": "Conditions", "key": "Conditions", @@ -1295,6 +1676,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1592" ] }, + { + "call": "Configuration for Tachyon service", + "key": "Configuration for Tachyon service", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:370" + ] + }, { "call": "Configure User-Agent in the item settings", "key": "Configure User-Agent in the item settings", @@ -1306,9 +1694,12 @@ "call": "Conflict", "key": "Conflict", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2388", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4927", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11522", "src/tachyon/methods/custom/getDashboardSections.ts:1639", - "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:141", - "src/tachyon/tabs/dashboard/partials/renderSections.ts:618" + "src/tachyon/tabs/dashboard/partials/renderSections.ts:618", + "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:141" ] }, { @@ -1329,6 +1720,7 @@ "call": "Connected", "key": "Connected", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2547", "src/tachyon/tabs/dashboard/partials/renderSections.ts:817" ] }, @@ -1336,6 +1728,7 @@ "call": "Connected Devices", "key": "Connected Devices", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12794", "src/tachyon/tabs/diagnostic/initController.ts:1266" ] }, @@ -1350,6 +1743,7 @@ "call": "Connections are unavailable", "key": "Connections are unavailable", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14676", "src/tachyon/tabs/monitoring/initController.ts:998" ] }, @@ -1357,13 +1751,23 @@ "call": "Connectivity probe failed", "key": "Connectivity probe failed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11551", "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:174" ] }, + { + "call": "Cookie packet junk size (S3)", + "key": "Cookie packet junk size (S3)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3417" + ] + }, { "call": "Copied", "key": "Copied", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2947", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1623", "src/helpers/copyToClipboard.ts:10" ] }, @@ -1371,6 +1775,8 @@ "call": "Copy", "key": "Copy", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10007", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1753", "src/partials/modal/renderModal.ts:258" ] }, @@ -1378,6 +1784,7 @@ "call": "Copy log", "key": "Copy log", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16023", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:160" ] }, @@ -1385,6 +1792,9 @@ "call": "Copy proxy link", "key": "Copy proxy link", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2293", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2294", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7370", "src/tachyon/tabs/dashboard/initController.ts:1188", "src/tachyon/tabs/dashboard/partials/renderSections.ts:496", "src/tachyon/tabs/dashboard/partials/renderSections.ts:497" @@ -1394,6 +1804,7 @@ "call": "Copy Support Report", "key": "Copy Support Report", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13000", "src/tachyon/tabs/diagnostic/initController.ts:1501" ] }, @@ -1401,6 +1812,7 @@ "call": "Could not compare FakeIP and control public IPs", "key": "Could not compare FakeIP and control public IPs", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9318", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:89" ] }, @@ -1415,6 +1827,7 @@ "call": "Current Diagnosis", "key": "Current Diagnosis", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12951", "src/tachyon/tabs/diagnostic/initController.ts:1442" ] }, @@ -1436,6 +1849,7 @@ "call": "Currently unavailable", "key": "Currently unavailable", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2641", "src/tachyon/tabs/dashboard/partials/renderWidget.ts:22" ] }, @@ -1461,6 +1875,34 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7729" ] }, + { + "call": "Custom header for cookie packet", + "key": "Custom header for cookie packet", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3442" + ] + }, + { + "call": "Custom header for data packet", + "key": "Custom header for data packet", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3448" + ] + }, + { + "call": "Custom header for handshake initiation", + "key": "Custom header for handshake initiation", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3430" + ] + }, + { + "call": "Custom header for handshake response", + "key": "Custom header for handshake response", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3436" + ] + }, { "call": "Custom OpenAI-Compatible API", "key": "Custom OpenAI-Compatible API", @@ -1482,13 +1924,28 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8869" ] }, + { + "call": "Dashboard", + "key": "Dashboard", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:513" + ] + }, { "call": "Dashboard currently unavailable", "key": "Dashboard currently unavailable", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:1957", "src/tachyon/tabs/dashboard/partials/renderSections.ts:50" ] }, + { + "call": "Days of Week", + "key": "Days of Week", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:302" + ] + }, { "call": "Default (auto)", "key": "Default (auto)", @@ -1521,6 +1978,7 @@ "call": "Delete", "key": "Delete", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1830", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:615", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:621" ] @@ -1559,9 +2017,17 @@ "call": "detour must be a non-empty string", "key": "detour must be a non-empty string", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:321", "src/validators/validateOutboundJson.ts:115" ] }, + { + "call": "Device / IP", + "key": "Device / IP", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:133" + ] + }, { "call": "Device filter", "key": "Device filter", @@ -1594,6 +2060,7 @@ "call": "Device updated", "key": "Device updated", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12869", "src/tachyon/tabs/diagnostic/initController.ts:1349" ] }, @@ -1608,6 +2075,7 @@ "call": "DHCP has DNS server", "key": "DHCP has DNS server", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8867", "src/tachyon/tabs/diagnostic/checks/getDnsCheckPresentation.ts:37" ] }, @@ -1615,9 +2083,24 @@ "call": "DHCP is managed manually", "key": "DHCP is managed manually", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8867", "src/tachyon/tabs/diagnostic/checks/getDnsCheckPresentation.ts:36" ] }, + { + "call": "Diagnostics", + "key": "Diagnostics", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:501" + ] + }, + { + "call": "Direct", + "key": "Direct", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2706" + ] + }, { "call": "Direct (Default)", "key": "Direct (Default)", @@ -1629,6 +2112,7 @@ "call": "Direct Bypass", "key": "Direct Bypass", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12857", "src/tachyon/tabs/diagnostic/initController.ts:1336" ] }, @@ -1643,6 +2127,7 @@ "call": "Direct WAN", "key": "Direct WAN", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12851", "src/tachyon/tabs/diagnostic/initController.ts:1327" ] }, @@ -1650,6 +2135,7 @@ "call": "Disable autostart", "key": "Disable autostart", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10147", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:92" ] }, @@ -1667,6 +2153,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1222" ] }, + { + "call": "Disabled", + "key": "Disabled", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:197" + ] + }, { "call": "Disabling interception is incompatible with action=zapret2 because Tachyon sends matched traffic through NFQUEUE.", "key": "Disabling interception is incompatible with action=zapret2 because Tachyon sends matched traffic through NFQUEUE.", @@ -1715,6 +2208,7 @@ "call": "DNS on router", "key": "DNS on router", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8925", "src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:75" ] }, @@ -1722,24 +2216,24 @@ "call": "DNS over HTTPS (DoH)", "key": "DNS over HTTPS (DoH)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:833", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1823" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1823", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:833" ] }, { "call": "DNS over QUIC (DoQ)", "key": "DNS over QUIC (DoQ)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:835", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1825" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1825", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:835" ] }, { "call": "DNS over TLS (DoT)", "key": "DNS over TLS (DoT)", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:834", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1824" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1824", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:834" ] }, { @@ -1769,8 +2263,8 @@ "call": "DNS requests through section", "key": "DNS requests through section", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1025", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7366" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7366", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1025" ] }, { @@ -1792,9 +2286,17 @@ "call": "DNS server address cannot be empty", "key": "DNS server address cannot be empty", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:131", "src/validators/validateDns.ts:8" ] }, + { + "call": "DNS server pushed to the client configuration", + "key": "DNS server pushed to the client configuration", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3311" + ] + }, { "call": "DNS server used by the resolver", "key": "DNS server used by the resolver", @@ -1878,6 +2380,7 @@ "call": "Do not panic, everything can be fixed, just...", "key": "Do not panic, everything can be fixed, just...", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11411", "src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:26" ] }, @@ -1927,6 +2430,9 @@ "call": "Doctor failed", "key": "Doctor failed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12422", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12442", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12450", "src/tachyon/tabs/diagnostic/initController.ts:720", "src/tachyon/tabs/diagnostic/initController.ts:762", "src/tachyon/tabs/diagnostic/initController.ts:770" @@ -1936,6 +2442,9 @@ "call": "Doctor repair", "key": "Doctor repair", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12431", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12433", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12433", "src/tachyon/tabs/diagnostic/initController.ts:736", "src/tachyon/tabs/diagnostic/initController.ts:748", "src/tachyon/tabs/diagnostic/initController.ts:749" @@ -1945,6 +2454,7 @@ "call": "Does not resolve", "key": "Does not resolve", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9046", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:54" ] }, @@ -2009,6 +2519,8 @@ "call": "Downlink", "key": "Downlink", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7880", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7892", "src/tachyon/tabs/dashboard/initController.ts:1842", "src/tachyon/tabs/dashboard/initController.ts:1855" ] @@ -2017,9 +2529,17 @@ "call": "Download", "key": "Download", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10002", "src/partials/modal/renderModal.ts:253" ] }, + { + "call": "Download .conf", + "key": "Download .conf", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1777" + ] + }, { "call": "Download component packages via the selected section", "key": "Download component packages via the selected section", @@ -2087,10 +2607,19 @@ "call": "Downloaded", "key": "Downloaded", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14577", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14621", "src/tachyon/tabs/monitoring/initController.ts:877", "src/tachyon/tabs/monitoring/initController.ts:931" ] }, + { + "call": "Drag rows to change priority. The rule at the top is checked first.", + "key": "Drag rows to change priority. The rule at the top is checked first.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:430" + ] + }, { "call": "DSCP marks (QoS)", "key": "DSCP marks (QoS)", @@ -2103,6 +2632,7 @@ "call": "Duplicate JSON outbound tag", "key": "Duplicate JSON outbound tag", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:293", "src/validators/validateOutboundJson.ts:75" ] }, @@ -2127,6 +2657,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10029" ] }, + { + "call": "e.g. Kids Phone (Night YouTube)", + "key": "e.g. Kids Phone (Night YouTube)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:130" + ] + }, { "call": "e.g. SHA256 — leave empty for default", "key": "e.g. SHA256 — leave empty for default", @@ -2141,11 +2678,21 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1260" ] }, + { + "call": "Edit rule action", + "key": "Edit rule action", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1823", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:71" + ] + }, { "call": "Enable", "key": "Enable", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7235" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:117", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7235", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2620" ] }, { @@ -2176,6 +2723,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1815" ] }, + { + "call": "Enable authentication", + "key": "Enable authentication", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2983" + ] + }, { "call": "Enable automatic updates for remote lists and rule sets", "key": "Enable automatic updates for remote lists and rule sets", @@ -2187,6 +2741,7 @@ "call": "Enable autostart", "key": "Enable autostart", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10157", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:102" ] }, @@ -2208,6 +2763,7 @@ "call": "Enable Direct WAN Bypass", "key": "Enable Direct WAN Bypass", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12642", "src/tachyon/tabs/diagnostic/initController.ts:1085" ] }, @@ -2352,6 +2908,27 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1605" ] }, + { + "call": "End of the schedule interval (e.g. 08:00). Supports spans crossing midnight.", + "key": "End of the schedule interval (e.g. 08:00). Supports spans crossing midnight.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:291" + ] + }, + { + "call": "End Time (HH:MM)", + "key": "End Time (HH:MM)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:290" + ] + }, + { + "call": "Enter a complete sing-box inbound object", + "key": "Enter a complete sing-box inbound object", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2729" + ] + }, { "call": "Enter a complete sing-box outbound object", "key": "Enter a complete sing-box outbound object", @@ -2436,6 +3013,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10142" ] }, + { + "call": "Every day", + "key": "Every day", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:98" + ] + }, { "call": "Exclude by proxy parameters", "key": "Exclude by proxy parameters", @@ -2521,10 +3105,18 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9506" ] }, + { + "call": "Expecting: %s", + "key": "Expecting: %s", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:57" + ] + }, { "call": "Expires", "key": "Expires", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2022", "src/tachyon/tabs/dashboard/partials/renderSections.ts:137" ] }, @@ -2553,6 +3145,7 @@ "call": "Failed to apply fix", "key": "Failed to apply fix", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12729", "src/tachyon/tabs/diagnostic/initController.ts:1192" ] }, @@ -2560,6 +3153,8 @@ "call": "Failed to close connection", "key": "Failed to close connection", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14862", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14876", "src/tachyon/tabs/monitoring/initController.ts:1265", "src/tachyon/tabs/monitoring/initController.ts:1280" ] @@ -2568,6 +3163,8 @@ "call": "Failed to close connections", "key": "Failed to close connections", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14891", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14903", "src/tachyon/tabs/monitoring/initController.ts:1299", "src/tachyon/tabs/monitoring/initController.ts:1312" ] @@ -2576,6 +3173,7 @@ "call": "Failed to copy report to clipboard", "key": "Failed to copy report to clipboard", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12587", "src/tachyon/tabs/diagnostic/initController.ts:964" ] }, @@ -2583,6 +3181,8 @@ "call": "Failed to copy!", "key": "Failed to copy!", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2949", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1625", "src/helpers/copyToClipboard.ts:12" ] }, @@ -2597,6 +3197,12 @@ "call": "Failed to execute", "key": "Failed to execute", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3233", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3236", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16697", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16697", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16755", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16926", "src/tachyon/methods/shell/index.ts:172", "src/tachyon/methods/shell/index.ts:179", "src/tachyon/tabs/updates/initController.ts:619", @@ -2609,6 +3215,7 @@ "call": "Failed to generate bug report", "key": "Failed to generate bug report", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13188", "src/tachyon/tabs/diagnostic/initController.ts:1720" ] }, @@ -2645,6 +3252,7 @@ "call": "Failed to read operation log", "key": "Failed to read operation log", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3592", "src/tachyon/methods/shell/index.ts:646" ] }, @@ -2652,6 +3260,7 @@ "call": "Failed to receive response from AI service.", "key": "Failed to receive response from AI service.", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11238", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:106" ] }, @@ -2666,6 +3275,8 @@ "call": "Failed to restore native internet", "key": "Failed to restore native internet", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13028", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13111", "src/tachyon/tabs/diagnostic/initController.ts:1533", "src/tachyon/tabs/diagnostic/initController.ts:1627" ] @@ -2744,6 +3355,8 @@ "call": "Failed to switch proxy", "key": "Failed to switch proxy", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6982", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6988", "src/tachyon/tabs/dashboard/initController.ts:696", "src/tachyon/tabs/dashboard/initController.ts:702" ] @@ -2752,6 +3365,7 @@ "call": "Failed to update device", "key": "Failed to update device", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12874", "src/tachyon/tabs/diagnostic/initController.ts:1354" ] }, @@ -2759,6 +3373,13 @@ "call": "Failed to update subscriptions", "key": "Failed to update subscriptions", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6691", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6691", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6705", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6737", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6740", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7638", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7641", "src/tachyon/tabs/dashboard/initController.ts:308", "src/tachyon/tabs/dashboard/initController.ts:309", "src/tachyon/tabs/dashboard/initController.ts:328", @@ -2772,6 +3393,7 @@ "call": "FakeIP and control checks use different public IPs", "key": "FakeIP and control checks use different public IPs", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9318", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:91" ] }, @@ -2779,6 +3401,7 @@ "call": "FakeIP and control checks use the same public IP", "key": "FakeIP and control checks use the same public IP", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9318", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:92" ] }, @@ -2786,9 +3409,24 @@ "call": "FakeIP works; public IP comparison is inconclusive", "key": "FakeIP works; public IP comparison is inconclusive", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9290", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:46" ] }, + { + "call": "FakeTLS host", + "key": "FakeTLS host", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3106" + ] + }, + { + "call": "Fallback on unknown DC", + "key": "Fallback on unknown DC", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3188" + ] + }, { "call": "Faster DNS health monitoring than the default cycle. Switches bootstrap DNS on failure.", "key": "Faster DNS health monitoring than the default cycle. Switches bootstrap DNS on failure.", @@ -2800,6 +3438,7 @@ "call": "Faster server search interval", "key": "Faster server search interval", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7585", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3168", "src/tachyon/tabs/dashboard/initController.ts:1460" ] @@ -2808,6 +3447,7 @@ "call": "Fastest", "key": "Fastest", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4249", "src/tachyon/methods/custom/getDashboardSections.ts:654" ] }, @@ -2829,6 +3469,7 @@ "call": "Firewall WAN port", "key": "Firewall WAN port", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9110", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:136" ] }, @@ -2836,6 +3477,7 @@ "call": "Fix applied", "key": "Fix applied", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12723", "src/tachyon/tabs/diagnostic/initController.ts:1186" ] }, @@ -2843,6 +3485,7 @@ "call": "Fix resolv.conf", "key": "Fix resolv.conf", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12628", "src/tachyon/tabs/diagnostic/initController.ts:1071" ] }, @@ -2850,13 +3493,16 @@ "call": "Fix the highlighted fields and save again.", "key": "Fix the highlighted fields and save again.", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3594" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3594", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2338" ] }, { "call": "Fixed", "key": "Fixed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12431", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12719", "src/tachyon/tabs/diagnostic/initController.ts:742", "src/tachyon/tabs/diagnostic/initController.ts:1182" ] @@ -2865,6 +3511,7 @@ "call": "Flush Conntrack Table", "key": "Flush Conntrack Table", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12645", "src/tachyon/tabs/diagnostic/initController.ts:1088" ] }, @@ -2889,10 +3536,46 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9251" ] }, + { + "call": "Fri", + "key": "Fri", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:26" + ] + }, + { + "call": "Friday", + "key": "Friday", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:16" + ] + }, + { + "call": "Fronting IP", + "key": "Fronting IP", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3151" + ] + }, + { + "call": "Fronting port", + "key": "Fronting port", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3140" + ] + }, + { + "call": "Fronting proxy protocol", + "key": "Fronting proxy protocol", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3161" + ] + }, { "call": "Full System Diagnostic", "key": "Full System Diagnostic", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11280", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:158" ] }, @@ -2928,6 +3611,7 @@ "call": "Generate bug report", "key": "Generate bug report", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10242", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:187" ] }, @@ -2959,6 +3643,7 @@ "call": "Generated inbound", "key": "Generated inbound", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9074", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:89" ] }, @@ -3015,6 +3700,7 @@ "call": "Get global check", "key": "Get global check", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10166", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:111" ] }, @@ -3029,9 +3715,24 @@ "call": "Global check", "key": "Global check", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12401", "src/tachyon/tabs/diagnostic/initController.ts:696" ] }, + { + "call": "gRPC service", + "key": "gRPC service", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2963" + ] + }, + { + "call": "Handshake timeout", + "key": "Handshake timeout", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3216" + ] + }, { "call": "Health Checks", "key": "Health Checks", @@ -3043,9 +3744,42 @@ "call": "Hello! I am Tachyon AI Assistant. How can I help you today? Ask me about domain blocks, diagnostics, or router settings.", "key": "Hello! I am Tachyon AI Assistant. How can I help you today? Ask me about domain blocks, diagnostics, or router settings.", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11160", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:14" ] }, + { + "call": "Hex or binary junk payload", + "key": "Hex or binary junk payload", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3484", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3490", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3496" + ] + }, + { + "call": "Hex or binary payload", + "key": "Hex or binary payload", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3466", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3472", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3478" + ] + }, + { + "call": "Hex or binary payload for init", + "key": "Hex or binary payload for init", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3454" + ] + }, + { + "call": "Hex or binary payload for response", + "key": "Hex or binary payload for response", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3460" + ] + }, { "call": "Hide cascade connection nodes", "key": "Hide cascade connection nodes", @@ -3127,6 +3861,7 @@ "call": "Hide values", "key": "Hide values", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10054", "src/partials/modal/renderModal.ts:310" ] }, @@ -3134,6 +3869,7 @@ "call": "Higher-level check interval", "key": "Higher-level check interval", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7572", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3132", "src/tachyon/tabs/dashboard/initController.ts:1446" ] @@ -3149,6 +3885,7 @@ "call": "History", "key": "History", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12975", "src/tachyon/tabs/diagnostic/initController.ts:1470" ] }, @@ -3156,6 +3893,8 @@ "call": "Host", "key": "Host", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14567", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14617", "src/tachyon/tabs/monitoring/initController.ts:867", "src/tachyon/tabs/monitoring/initController.ts:927" ] @@ -3242,9 +3981,17 @@ "call": "HTTP error", "key": "HTTP error", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4990", "src/tachyon/api.ts:27" ] }, + { + "call": "HTTP hosts", + "key": "HTTP hosts", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2956" + ] + }, { "call": "HTTP REST API for external AI agents (Claude, GPT, Open-WebUI) served at /cgi-bin/tachyon-agent/", "key": "HTTP REST API for external AI agents (Claude, GPT, Open-WebUI) served at /cgi-bin/tachyon-agent/", @@ -3263,7 +4010,9 @@ "call": "Idle timeout", "key": "Idle timeout", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7456", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2684", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3206", "src/tachyon/tabs/dashboard/initController.ts:1291" ] }, @@ -3319,6 +4068,27 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2554" ] }, + { + "call": "Inbound JSON", + "key": "Inbound JSON", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2728" + ] + }, + { + "call": "Inbound JSON cannot be empty", + "key": "Inbound JSON cannot be empty", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2067" + ] + }, + { + "call": "Inbound JSON must be an object with a type field", + "key": "Inbound JSON must be an object with a type field", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2078" + ] + }, { "call": "Include by proxy parameters", "key": "Include by proxy parameters", @@ -3369,6 +4139,34 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3392" ] }, + { + "call": "Information", + "key": "Information", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1831" + ] + }, + { + "call": "Init handshake timeout", + "key": "Init handshake timeout", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3502" + ] + }, + { + "call": "Init packet header (H1)", + "key": "Init packet header (H1)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3429" + ] + }, + { + "call": "Init packet junk size (S1)", + "key": "Init packet junk size (S1)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3405" + ] + }, { "call": "Init Packet Magic Header (S1)", "key": "Init Packet Magic Header (S1)", @@ -3418,10 +4216,26 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8422" ] }, + { + "call": "Init payload (I1)", + "key": "Init payload (I1)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3453" + ] + }, + { + "call": "Init timeout (Itime)", + "key": "Init timeout (Itime)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3501" + ] + }, { "call": "Install", "key": "Install", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16216", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16952", "src/tachyon/tabs/updates/initController.ts:944", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:403" ] @@ -3430,6 +4244,7 @@ "call": "Install another build:", "key": "Install another build:", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17354", "src/tachyon/tabs/updates/initController.ts:1438" ] }, @@ -3437,6 +4252,7 @@ "call": "Installed build → Available build", "key": "Installed build → Available build", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17234", "src/tachyon/tabs/updates/initController.ts:1296" ] }, @@ -3444,6 +4260,8 @@ "call": "Installed version is newer than release", "key": "Installed version is newer than release", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16494", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17242", "src/tachyon/tabs/updates/initController.ts:341", "src/tachyon/tabs/updates/initController.ts:1304" ] @@ -3473,6 +4291,8 @@ "call": "Interrupt connections", "key": "Interrupt connections", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7458", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7590", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2698", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3184", "src/tachyon/tabs/dashboard/initController.ts:1293", @@ -3497,6 +4317,7 @@ "call": "Interval", "key": "Interval", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7454", "src/tachyon/tabs/dashboard/initController.ts:1289" ] }, @@ -3511,6 +4332,7 @@ "call": "Invalid CIDR prefix", "key": "Invalid CIDR prefix", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:219", "src/validators/validateSubnet.ts:25" ] }, @@ -3518,6 +4340,7 @@ "call": "Invalid DNS server format. Examples: 8.8.8.8 or dns.example.com or dns.example.com/nicedns for DoH", "key": "Invalid DNS server format. Examples: 8.8.8.8 or dns.example.com or dns.example.com/nicedns for DoH", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:148", "src/validators/validateDns.ts:34" ] }, @@ -3525,6 +4348,7 @@ "call": "Invalid DNS server port", "key": "Invalid DNS server port", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:138", "src/validators/validateDns.ts:21" ] }, @@ -3532,6 +4356,8 @@ "call": "Invalid domain address", "key": "Invalid domain address", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:76", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:80", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:5312", "src/validators/validateDomain.ts:67", "src/validators/validateDomain.ts:73" @@ -3541,6 +4367,7 @@ "call": "Invalid format. Use an IP address or CIDR subnet", "key": "Invalid format. Use an IP address or CIDR subnet", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:206", "src/validators/validateSubnet.ts:10" ] }, @@ -3548,6 +4375,7 @@ "call": "Invalid HY2 URL: insecure must be 0 or 1", "key": "Invalid HY2 URL: insecure must be 0 or 1", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:776", "src/validators/validateHysteriaUrl.ts:104" ] }, @@ -3555,6 +4383,7 @@ "call": "Invalid HY2 URL: invalid host & port", "key": "Invalid HY2 URL: invalid host & port", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:738", "src/validators/validateHysteriaUrl.ts:51" ] }, @@ -3562,6 +4391,8 @@ "call": "Invalid HY2 URL: invalid port number", "key": "Invalid HY2 URL: invalid port number", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:767", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:803", "src/validators/validateHysteriaUrl.ts:90", "src/validators/validateHysteriaUrl.ts:146" ] @@ -3570,6 +4401,7 @@ "call": "Invalid HY2 URL: missing credentials/server", "key": "Invalid HY2 URL: missing credentials/server", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:724", "src/validators/validateHysteriaUrl.ts:33" ] }, @@ -3577,6 +4409,7 @@ "call": "Invalid HY2 URL: missing host", "key": "Invalid HY2 URL: missing host", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:743", "src/validators/validateHysteriaUrl.ts:57" ] }, @@ -3584,6 +4417,7 @@ "call": "Invalid HY2 URL: missing host & port", "key": "Invalid HY2 URL: missing host & port", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:732", "src/validators/validateHysteriaUrl.ts:44" ] }, @@ -3591,6 +4425,7 @@ "call": "Invalid HY2 URL: missing password", "key": "Invalid HY2 URL: missing password", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:728", "src/validators/validateHysteriaUrl.ts:39" ] }, @@ -3598,6 +4433,7 @@ "call": "Invalid HY2 URL: missing port", "key": "Invalid HY2 URL: missing port", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:746", "src/validators/validateHysteriaUrl.ts:61" ] }, @@ -3605,6 +4441,7 @@ "call": "Invalid HY2 URL: must not contain spaces", "key": "Invalid HY2 URL: must not contain spaces", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:714", "src/validators/validateHysteriaUrl.ts:20" ] }, @@ -3612,6 +4449,7 @@ "call": "Invalid HY2 URL: must start with hysteria2:// or hy2://", "key": "Invalid HY2 URL: must start with hysteria2:// or hy2://", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:708", "src/validators/validateHysteriaUrl.ts:13" ] }, @@ -3619,6 +4457,7 @@ "call": "Invalid HY2 URL: obfs-password required when obfs is set", "key": "Invalid HY2 URL: obfs-password required when obfs is set", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:789", "src/validators/validateHysteriaUrl.ts:127" ] }, @@ -3626,6 +4465,7 @@ "call": "Invalid HY2 URL: parsing failed", "key": "Invalid HY2 URL: parsing failed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:809", "src/validators/validateHysteriaUrl.ts:153" ] }, @@ -3633,6 +4473,7 @@ "call": "Invalid HY2 URL: sni cannot be empty", "key": "Invalid HY2 URL: sni cannot be empty", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:797", "src/validators/validateHysteriaUrl.ts:136" ] }, @@ -3640,6 +4481,7 @@ "call": "Invalid HY2 URL: unsupported obfs type", "key": "Invalid HY2 URL: unsupported obfs type", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:783", "src/validators/validateHysteriaUrl.ts:116" ] }, @@ -3647,6 +4489,7 @@ "call": "Invalid IP address", "key": "Invalid IP address", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:29", "src/validators/validateIp.ts:28" ] }, @@ -3654,6 +4497,8 @@ "call": "Invalid JSON format", "key": "Invalid JSON format", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:280", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2080", "src/validators/validateOutboundJson.ts:58" ] }, @@ -3668,6 +4513,7 @@ "call": "Invalid path format. Path must start with \"/\" and contain valid characters", "key": "Invalid path format. Path must start with \"/\" and contain valid characters", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:194", "src/validators/validatePath.ts:22" ] }, @@ -3675,6 +4521,7 @@ "call": "Invalid port number. Must be between 1 and 65535", "key": "Invalid port number. Must be between 1 and 65535", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:400", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9103", "src/validators/validateShadowsocksUrl.ts:91" ] @@ -3697,6 +4544,7 @@ "call": "Invalid Shadowsocks URL: decoded credentials must contain method:password", "key": "Invalid Shadowsocks URL: decoded credentials must contain method:password", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:354", "src/validators/validateShadowsocksUrl.ts:38" ] }, @@ -3704,6 +4552,7 @@ "call": "Invalid Shadowsocks URL: invalid server and port", "key": "Invalid Shadowsocks URL: invalid server and port", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:380", "src/validators/validateShadowsocksUrl.ts:67" ] }, @@ -3711,6 +4560,7 @@ "call": "Invalid Shadowsocks URL: missing credentials", "key": "Invalid Shadowsocks URL: missing credentials", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:346", "src/validators/validateShadowsocksUrl.ts:28" ] }, @@ -3718,6 +4568,7 @@ "call": "Invalid Shadowsocks URL: missing method and password separator \":\"", "key": "Invalid Shadowsocks URL: missing method and password separator \":\"", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:363", "src/validators/validateShadowsocksUrl.ts:47" ] }, @@ -3725,6 +4576,7 @@ "call": "Invalid Shadowsocks URL: missing port", "key": "Invalid Shadowsocks URL: missing port", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:394", "src/validators/validateShadowsocksUrl.ts:84" ] }, @@ -3732,6 +4584,7 @@ "call": "Invalid Shadowsocks URL: missing server", "key": "Invalid Shadowsocks URL: missing server", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:387", "src/validators/validateShadowsocksUrl.ts:75" ] }, @@ -3739,6 +4592,7 @@ "call": "Invalid Shadowsocks URL: missing server address", "key": "Invalid Shadowsocks URL: missing server address", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:373", "src/validators/validateShadowsocksUrl.ts:59" ] }, @@ -3746,6 +4600,7 @@ "call": "Invalid Shadowsocks URL: must not contain spaces", "key": "Invalid Shadowsocks URL: must not contain spaces", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:338", "src/validators/validateShadowsocksUrl.ts:17" ] }, @@ -3753,6 +4608,7 @@ "call": "Invalid Shadowsocks URL: must start with ss://", "key": "Invalid Shadowsocks URL: must start with ss://", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:331", "src/validators/validateShadowsocksUrl.ts:9" ] }, @@ -3760,6 +4616,7 @@ "call": "Invalid Shadowsocks URL: parsing failed", "key": "Invalid Shadowsocks URL: parsing failed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:406", "src/validators/validateShadowsocksUrl.ts:97" ] }, @@ -3767,6 +4624,7 @@ "call": "Invalid SOCKS URL: invalid host and port", "key": "Invalid SOCKS URL: invalid host and port", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:675", "src/validators/validateSocksUrl.ts:49" ] }, @@ -3774,6 +4632,7 @@ "call": "Invalid SOCKS URL: invalid port number", "key": "Invalid SOCKS URL: invalid port number", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:691", "src/validators/validateSocksUrl.ts:68" ] }, @@ -3781,6 +4640,7 @@ "call": "Invalid SOCKS URL: missing host and port", "key": "Invalid SOCKS URL: missing host and port", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:668", "src/validators/validateSocksUrl.ts:41" ] }, @@ -3788,6 +4648,7 @@ "call": "Invalid SOCKS URL: missing hostname or IP", "key": "Invalid SOCKS URL: missing hostname or IP", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:682", "src/validators/validateSocksUrl.ts:57" ] }, @@ -3795,6 +4656,7 @@ "call": "Invalid SOCKS URL: missing port", "key": "Invalid SOCKS URL: missing port", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:686", "src/validators/validateSocksUrl.ts:62" ] }, @@ -3802,6 +4664,7 @@ "call": "Invalid SOCKS URL: missing username", "key": "Invalid SOCKS URL: missing username", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:661", "src/validators/validateSocksUrl.ts:33" ] }, @@ -3809,6 +4672,7 @@ "call": "Invalid SOCKS URL: must not contain spaces", "key": "Invalid SOCKS URL: must not contain spaces", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:650", "src/validators/validateSocksUrl.ts:18" ] }, @@ -3816,6 +4680,7 @@ "call": "Invalid SOCKS URL: must start with socks4://, socks4a://, or socks5://", "key": "Invalid SOCKS URL: must start with socks4://, socks4a://, or socks5://", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:642", "src/validators/validateSocksUrl.ts:9" ] }, @@ -3823,13 +4688,22 @@ "call": "Invalid SOCKS URL: parsing failed", "key": "Invalid SOCKS URL: parsing failed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:695", "src/validators/validateSocksUrl.ts:72" ] }, + { + "call": "Invalid time format. Expected HH:MM (e.g. 22:00)", + "key": "Invalid time format. Expected HH:MM (e.g. 22:00)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:47" + ] + }, { "call": "Invalid Trojan URL: must not contain spaces", "key": "Invalid Trojan URL: must not contain spaces", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:595", "src/validators/validateTrojanUrl.ts:16" ] }, @@ -3837,6 +4711,7 @@ "call": "Invalid Trojan URL: must start with trojan://", "key": "Invalid Trojan URL: must start with trojan://", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:589", "src/validators/validateTrojanUrl.ts:9" ] }, @@ -3844,6 +4719,7 @@ "call": "Invalid Trojan URL: parsing failed", "key": "Invalid Trojan URL: parsing failed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:631", "src/validators/validateTrojanUrl.ts:61" ] }, @@ -3851,6 +4727,7 @@ "call": "Invalid TUIC URL: congestion_control must be bbr, cubic, or new_reno", "key": "Invalid TUIC URL: congestion_control must be bbr, cubic, or new_reno", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:892", "src/validators/validateTuicUrl.ts:103" ] }, @@ -3858,6 +4735,7 @@ "call": "Invalid TUIC URL: insecure must be 0 or 1", "key": "Invalid TUIC URL: insecure must be 0 or 1", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:909", "src/validators/validateTuicUrl.ts:128" ] }, @@ -3865,6 +4743,7 @@ "call": "Invalid TUIC URL: invalid host & port", "key": "Invalid TUIC URL: invalid host & port", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:868", "src/validators/validateTuicUrl.ts:71" ] }, @@ -3872,6 +4751,7 @@ "call": "Invalid TUIC URL: invalid port number", "key": "Invalid TUIC URL: invalid port number", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:882", "src/validators/validateTuicUrl.ts:88" ] }, @@ -3879,6 +4759,7 @@ "call": "Invalid TUIC URL: missing credentials/server", "key": "Invalid TUIC URL: missing credentials/server", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:839", "src/validators/validateTuicUrl.ts:35" ] }, @@ -3886,6 +4767,7 @@ "call": "Invalid TUIC URL: missing host", "key": "Invalid TUIC URL: missing host", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:873", "src/validators/validateTuicUrl.ts:77" ] }, @@ -3893,6 +4775,7 @@ "call": "Invalid TUIC URL: missing host & port", "key": "Invalid TUIC URL: missing host & port", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:850", "src/validators/validateTuicUrl.ts:49" ] }, @@ -3900,6 +4783,7 @@ "call": "Invalid TUIC URL: missing port", "key": "Invalid TUIC URL: missing port", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:876", "src/validators/validateTuicUrl.ts:81" ] }, @@ -3907,6 +4791,8 @@ "call": "Invalid TUIC URL: missing UUID", "key": "Invalid TUIC URL: missing UUID", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:845", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:856", "src/validators/validateTuicUrl.ts:43", "src/validators/validateTuicUrl.ts:57" ] @@ -3915,6 +4801,7 @@ "call": "Invalid TUIC URL: must not contain spaces", "key": "Invalid TUIC URL: must not contain spaces", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:830", "src/validators/validateTuicUrl.ts:23" ] }, @@ -3922,6 +4809,7 @@ "call": "Invalid TUIC URL: must start with tuic://", "key": "Invalid TUIC URL: must start with tuic://", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:824", "src/validators/validateTuicUrl.ts:16" ] }, @@ -3929,6 +4817,7 @@ "call": "Invalid TUIC URL: parsing failed", "key": "Invalid TUIC URL: parsing failed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:929", "src/validators/validateTuicUrl.ts:154" ] }, @@ -3936,6 +4825,7 @@ "call": "Invalid TUIC URL: sni cannot be empty", "key": "Invalid TUIC URL: sni cannot be empty", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:923", "src/validators/validateTuicUrl.ts:147" ] }, @@ -3943,6 +4833,7 @@ "call": "Invalid TUIC URL: udp_relay_mode must be native, quic, or qux", "key": "Invalid TUIC URL: udp_relay_mode must be native, quic, or qux", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:901", "src/validators/validateTuicUrl.ts:116" ] }, @@ -3950,6 +4841,7 @@ "call": "Invalid TUIC URL: UUID must be a valid UUID v4 format", "key": "Invalid TUIC URL: UUID must be a valid UUID v4 format", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:861", "src/validators/validateTuicUrl.ts:63" ] }, @@ -3957,6 +4849,7 @@ "call": "Invalid TUIC URL: zero_rtt_handshake must be 0, 1, true, or false", "key": "Invalid TUIC URL: zero_rtt_handshake must be 0, 1, true, or false", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:915", "src/validators/validateTuicUrl.ts:138" ] }, @@ -3964,6 +4857,9 @@ "call": "Invalid URL format", "key": "Invalid URL format", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:157", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:172", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:174", "src/validators/validateUrl.ts:9", "src/validators/validateUrl.ts:35", "src/validators/validateUrl.ts:38" @@ -3973,6 +4869,7 @@ "call": "Invalid VLESS URL: parsing failed", "key": "Invalid VLESS URL: parsing failed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:521", "src/validators/validateVlessUrl.ts:117" ] }, @@ -3980,6 +4877,7 @@ "call": "Invalid VMess URL: parsing failed", "key": "Invalid VMess URL: parsing failed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:579", "src/validators/validateVmessUrl.ts:68" ] }, @@ -4022,6 +4920,7 @@ "call": "Issues", "key": "Issues", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12431", "src/tachyon/tabs/diagnostic/initController.ts:738" ] }, @@ -4029,14 +4928,17 @@ "call": "Issues detected", "key": "Issues detected", "places": [ - "src/tachyon/tabs/diagnostic/helpers/getMeta.ts:20", - "src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:17" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8848", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9337", + "src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:17", + "src/tachyon/tabs/diagnostic/helpers/getMeta.ts:20" ] }, { "call": "Issues detected. Review the diagnosis above.", "key": "Issues detected. Review the diagnosis above.", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12745", "src/tachyon/tabs/diagnostic/initController.ts:1211" ] }, @@ -4061,6 +4963,7 @@ "call": "JSON outbound cannot be empty", "key": "JSON outbound cannot be empty", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:274", "src/validators/validateOutboundJson.ts:50" ] }, @@ -4068,6 +4971,7 @@ "call": "JSON outbound must be a JSON object", "key": "JSON outbound must be a JSON object", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:283", "src/validators/validateOutboundJson.ts:62" ] }, @@ -4075,6 +4979,7 @@ "call": "JSON outbound must contain a non-empty tag field", "key": "JSON outbound must contain a non-empty tag field", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:289", "src/validators/validateOutboundJson.ts:70" ] }, @@ -4082,6 +4987,7 @@ "call": "JSON outbound must contain a non-empty type field", "key": "JSON outbound must contain a non-empty type field", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:286", "src/validators/validateOutboundJson.ts:66" ] }, @@ -4106,6 +5012,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8408" ] }, + { + "call": "Junk packet count (Jc)", + "key": "Junk packet count (Jc)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3387" + ] + }, { "call": "Junk Packet Count (Jc)", "key": "Junk Packet Count (Jc)", @@ -4113,6 +5026,69 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8407" ] }, + { + "call": "Junk packet max size (Jmax)", + "key": "Junk packet max size (Jmax)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3399" + ] + }, + { + "call": "Junk packet min size (Jmin)", + "key": "Junk packet min size (Jmin)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3393" + ] + }, + { + "call": "Junk payload (J1)", + "key": "Junk payload (J1)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3483" + ] + }, + { + "call": "Junk payload (J2)", + "key": "Junk payload (J2)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3489" + ] + }, + { + "call": "Junk payload (J3)", + "key": "Junk payload (J3)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3495" + ] + }, + { + "call": "Junk size for cookie packet", + "key": "Junk size for cookie packet", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3418" + ] + }, + { + "call": "Junk size for initiation packet", + "key": "Junk size for initiation packet", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3406" + ] + }, + { + "call": "Junk size for response packet", + "key": "Junk size for response packet", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3412" + ] + }, + { + "call": "Junk size for transport packet", + "key": "Junk size for transport packet", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3424" + ] + }, { "call": "Kazakhstan (kz)", "key": "Kazakhstan (kz)", @@ -4149,6 +5125,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8601" ] }, + { + "call": "Key path", + "key": "Key path", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2813" + ] + }, { "call": "Keyword must not contain spaces or commas", "key": "Keyword must not contain spaces or commas", @@ -4160,6 +5143,7 @@ "call": "LAN Devices", "key": "LAN Devices", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12961", "src/tachyon/tabs/diagnostic/initController.ts:1454" ] }, @@ -4174,6 +5158,8 @@ "call": "Latency test failed", "key": "Latency test failed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3478", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3497", "src/tachyon/methods/shell/index.ts:501", "src/tachyon/methods/shell/index.ts:522" ] @@ -4189,6 +5175,8 @@ "call": "Latest version is installed", "key": "Latest version is installed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16496", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17240", "src/tachyon/tabs/updates/initController.ts:344", "src/tachyon/tabs/updates/initController.ts:1302" ] @@ -4197,6 +5185,7 @@ "call": "Latest version:", "key": "Latest version:", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17242", "src/tachyon/tabs/updates/initController.ts:1304" ] }, @@ -4235,10 +5224,25 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1322" ] }, + { + "call": "Listen address", + "key": "Listen address", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2678" + ] + }, + { + "call": "Listen port", + "key": "Listen port", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2685" + ] + }, { "call": "Listening port", "key": "Listening port", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9104", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:125" ] }, @@ -4286,10 +5290,18 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8299" ] }, + { + "call": "Loading client link...", + "key": "Loading client link...", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1788" + ] + }, { "call": "Loading connected LAN devices...", "key": "Loading connected LAN devices...", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12764", "src/tachyon/tabs/diagnostic/initController.ts:1233" ] }, @@ -4297,6 +5309,8 @@ "call": "Loading connections", "key": "Loading connections", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13947", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14667", "src/tachyon/tabs/monitoring/initController.ts:988", "src/tachyon/tabs/monitoring/render.ts:101" ] @@ -4305,6 +5319,11 @@ "call": "Loading...", "key": "Loading...", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17116", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17129", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17139", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17149", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17159", "src/tachyon/tabs/updates/initController.ts:1146", "src/tachyon/tabs/updates/initController.ts:1161", "src/tachyon/tabs/updates/initController.ts:1179", @@ -4337,6 +5356,7 @@ "call": "lx", "key": "lx", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5676", "src/tachyon/helpers/singBoxVariant.ts:62" ] }, @@ -4344,6 +5364,7 @@ "call": "Main DNS", "key": "Main DNS", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8920", "src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:67" ] }, @@ -4358,6 +5379,9 @@ "call": "Manual", "key": "Manual", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2256", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7153", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7493", "src/tachyon/tabs/dashboard/initController.ts:910", "src/tachyon/tabs/dashboard/initController.ts:1342", "src/tachyon/tabs/dashboard/partials/renderSections.ts:448" @@ -4419,6 +5443,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1822" ] }, + { + "call": "Maximum size of junk packets", + "key": "Maximum size of junk packets", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3400" + ] + }, { "call": "Maximum time to wait for example.com to resolve during a DNS health check.", "key": "Maximum time to wait for example.com to resolve during a DNS health check.", @@ -4430,9 +5461,17 @@ "call": "Memory Usage", "key": "Memory Usage", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7904", "src/tachyon/tabs/dashboard/initController.ts:1868" ] }, + { + "call": "Method", + "key": "Method", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2970" + ] + }, { "call": "Metrics Retention (hours)", "key": "Metrics Retention (hours)", @@ -4447,6 +5486,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2658" ] }, + { + "call": "Minimum size of junk packets", + "key": "Minimum size of junk packets", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3394" + ] + }, { "call": "Mixed Proxy Password", "key": "Mixed Proxy Password", @@ -4468,6 +5514,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9125" ] }, + { + "call": "Mode", + "key": "Mode", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:168" + ] + }, { "call": "Model name to use. Leave empty to use default (gpt-4o-mini / claude-3-5-haiku / deepseek-chat / llama3:latest).", "key": "Model name to use. Leave empty to use default (gpt-4o-mini / claude-3-5-haiku / deepseek-chat / llama3:latest).", @@ -4475,6 +5528,20 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1660" ] }, + { + "call": "Mon", + "key": "Mon", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:22" + ] + }, + { + "call": "Monday", + "key": "Monday", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:12" + ] + }, { "call": "Monitored Interfaces", "key": "Monitored Interfaces", @@ -4482,6 +5549,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1145" ] }, + { + "call": "Monitoring", + "key": "Monitoring", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:525" + ] + }, { "call": "Monitoring & Analytics", "key": "Monitoring & Analytics", @@ -4514,7 +5588,8 @@ "call": "MTU", "key": "MTU", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8384" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8384", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3318" ] }, { @@ -4551,6 +5626,8 @@ "call": "Native internet restored. Tachyon stopped.", "key": "Native internet restored. Tachyon stopped.", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13018", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13103", "src/tachyon/tabs/diagnostic/initController.ts:1523", "src/tachyon/tabs/diagnostic/initController.ts:1619" ] @@ -4595,6 +5672,7 @@ "call": "New version %s is available for %s", "key": "New version %s is available for %s", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6024", "src/tachyon/services/core.service.ts:38" ] }, @@ -4602,6 +5680,8 @@ "call": "NFQUEUE range is available", "key": "NFQUEUE range is available", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9405", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9491", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:100", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:97" ] @@ -4610,6 +5690,8 @@ "call": "NFQUEUE range overlaps with another rule", "key": "NFQUEUE range overlaps with another rule", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9405", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9491", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:99", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:96" ] @@ -4646,6 +5728,10 @@ "call": "No", "key": "No", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7081", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7084", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7144", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7484", "src/tachyon/tabs/dashboard/initController.ts:818", "src/tachyon/tabs/dashboard/initController.ts:822", "src/tachyon/tabs/dashboard/initController.ts:898", @@ -4656,6 +5742,7 @@ "call": "No active clients", "key": "No active clients", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2743", "src/tachyon/tabs/dashboard/partials/renderConnections.ts:63" ] }, @@ -4663,6 +5750,7 @@ "call": "No active connections", "key": "No active connections", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14686", "src/tachyon/tabs/monitoring/initController.ts:1012" ] }, @@ -4670,6 +5758,7 @@ "call": "No active DHCP clients found on local network.", "key": "No active DHCP clients found on local network.", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12775", "src/tachyon/tabs/diagnostic/initController.ts:1245" ] }, @@ -4685,6 +5774,7 @@ "call": "No closed connections", "key": "No closed connections", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14686", "src/tachyon/tabs/monitoring/initController.ts:1013" ] }, @@ -4692,6 +5782,7 @@ "call": "No conflict detected", "key": "No conflict detected", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9030", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:32" ] }, @@ -4706,6 +5797,7 @@ "call": "No DHCP clients detected", "key": "No DHCP clients detected", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12558", "src/tachyon/tabs/diagnostic/initController.ts:933" ] }, @@ -4713,6 +5805,7 @@ "call": "No diagnostic history available yet.", "key": "No diagnostic history available yet.", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12891", "src/tachyon/tabs/diagnostic/initController.ts:1372" ] }, @@ -4727,6 +5820,7 @@ "call": "No enabled server inbounds configured", "key": "No enabled server inbounds configured", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9150", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:187" ] }, @@ -4741,6 +5835,7 @@ "call": "No issues detected. System is running normally.", "key": "No issues detected. System is running normally.", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12752", "src/tachyon/tabs/diagnostic/initController.ts:1220" ] }, @@ -4748,6 +5843,7 @@ "call": "No issues found", "key": "No issues found", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12433", "src/tachyon/tabs/diagnostic/initController.ts:749" ] }, @@ -4755,6 +5851,7 @@ "call": "No other marking rules found", "key": "No other marking rules found", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9255", "src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:105" ] }, @@ -4762,6 +5859,7 @@ "call": "No public firewall port required", "key": "No public firewall port required", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9083", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:99" ] }, @@ -4769,6 +5867,7 @@ "call": "No rules use ByeDPI", "key": "No rules use ByeDPI", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9570", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:79" ] }, @@ -4776,6 +5875,7 @@ "call": "No rules use Zapret", "key": "No rules use Zapret", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9395", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:79" ] }, @@ -4783,9 +5883,17 @@ "call": "No rules use Zapret2", "key": "No rules use Zapret2", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9481", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:82" ] }, + { + "call": "No sections selected", + "key": "No sections selected", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:158" + ] + }, { "call": "No snapshots yet", "key": "No snapshots yet", @@ -4797,6 +5905,7 @@ "call": "Node list is empty", "key": "Node list is empty", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7386", "src/tachyon/tabs/dashboard/initController.ts:1207" ] }, @@ -4804,6 +5913,7 @@ "call": "Nodes", "key": "Nodes", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7225", "src/tachyon/tabs/dashboard/initController.ts:1006" ] }, @@ -4811,6 +5921,11 @@ "call": "None", "key": "None", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12555", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:449", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2743", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3035", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3044", "src/tachyon/tabs/diagnostic/initController.ts:924" ] }, @@ -4818,16 +5933,21 @@ "call": "Not configured", "key": "Not configured", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2388", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4927", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9039", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11533", "src/tachyon/methods/custom/getDashboardSections.ts:1642", + "src/tachyon/tabs/dashboard/partials/renderSections.ts:621", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:46", - "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:152", - "src/tachyon/tabs/dashboard/partials/renderSections.ts:621" + "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:152" ] }, { "call": "Not connected", "key": "Not connected", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2547", "src/tachyon/tabs/dashboard/partials/renderSections.ts:813" ] }, @@ -4835,6 +5955,8 @@ "call": "Not detected", "key": "Not detected", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9060", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9160", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:70", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:199" ] @@ -4843,6 +5965,7 @@ "call": "Not implement yet", "key": "Not implement yet", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10406", "src/tachyon/tabs/diagnostic/partials/renderCheckSection.ts:193" ] }, @@ -4850,6 +5973,11 @@ "call": "Not installed", "key": "Not installed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5661", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5666", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17139", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17149", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17159", "src/tachyon/helpers/singBoxVariant.ts:38", "src/tachyon/helpers/singBoxVariant.ts:46", "src/tachyon/tabs/updates/initController.ts:1182", @@ -4861,6 +5989,7 @@ "call": "Not public", "key": "Not public", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9053", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:62" ] }, @@ -4868,6 +5997,7 @@ "call": "Not required for this listen address", "key": "Not required for this listen address", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9111", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:139" ] }, @@ -4875,6 +6005,10 @@ "call": "Not responding", "key": "Not responding", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11484", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11503", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11508", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11556", "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:91", "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:118", "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:124", @@ -4885,6 +6019,11 @@ "call": "Not running", "key": "Not running", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5263", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11962", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12131", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12177", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12239", "src/tachyon/tabs/diagnostic/diagnostic.store.ts:140", "src/tachyon/tabs/diagnostic/initController.ts:123", "src/tachyon/tabs/diagnostic/initController.ts:353", @@ -4962,6 +6101,27 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:959" ] }, + { + "call": "Number of junk packets before handshake (1-10)", + "key": "Number of junk packets before handshake (1-10)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3388" + ] + }, + { + "call": "Obfuscation", + "key": "Obfuscation", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3043" + ] + }, + { + "call": "Obfuscation password", + "key": "Obfuscation password", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3066" + ] + }, { "call": "Ollama (Local PC / Server)", "key": "Ollama (Local PC / Server)", @@ -5039,6 +6199,8 @@ "call": "Open", "key": "Open", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17217", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17254", "src/tachyon/tabs/updates/initController.ts:1278", "src/tachyon/tabs/updates/initController.ts:1317" ] @@ -5054,6 +6216,7 @@ "call": "Open Project Page", "key": "Open Project Page", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11416", "src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:31" ] }, @@ -5061,6 +6224,7 @@ "call": "Operation completed successfully!", "key": "Operation completed successfully!", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16151", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:323" ] }, @@ -5068,6 +6232,7 @@ "call": "Operation failed", "key": "Operation failed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16257", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:455" ] }, @@ -5075,6 +6240,8 @@ "call": "Operation in progress...", "key": "Operation in progress...", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15979", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16034", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:110", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:172" ] @@ -5083,6 +6250,7 @@ "call": "Operation log", "key": "Operation log", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16020", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:157" ] }, @@ -5090,6 +6258,7 @@ "call": "Operation log is not available", "key": "Operation log is not available", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3592", "src/tachyon/methods/shell/index.ts:645" ] }, @@ -5097,6 +6266,7 @@ "call": "Operation started. Waiting for log output...", "key": "Operation started. Waiting for log output...", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16016", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:152" ] }, @@ -5104,6 +6274,9 @@ "call": "Operation timed out", "key": "Operation timed out", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:1066", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3458", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3526", "src/helpers/withTimeout.ts:7", "src/tachyon/methods/shell/index.ts:471", "src/tachyon/methods/shell/index.ts:559" @@ -5120,6 +6293,7 @@ "call": "Optimize AWG MTU", "key": "Optimize AWG MTU", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12647", "src/tachyon/tabs/diagnostic/initController.ts:1090" ] }, @@ -5127,6 +6301,7 @@ "call": "Optimize RAM memory", "key": "Optimize RAM memory", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12639", "src/tachyon/tabs/diagnostic/initController.ts:1082" ] }, @@ -5184,6 +6359,7 @@ "call": "outbounds must be a non-empty array of strings", "key": "outbounds must be a non-empty array of strings", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:318", "src/validators/validateOutboundJson.ts:111" ] }, @@ -5222,6 +6398,20 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1233" ] }, + { + "call": "Padding", + "key": "Padding", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3125" + ] + }, + { + "call": "Parental Control", + "key": "Parental Control", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:464" + ] + }, { "call": "Parsed records:", "key": "Parsed records:", @@ -5234,7 +6424,8 @@ "key": "Password", "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8492", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8580" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8580", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3006" ] }, { @@ -5256,6 +6447,7 @@ "call": "Path cannot be empty", "key": "Path cannot be empty", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:182", "src/validators/validatePath.ts:7" ] }, @@ -5284,11 +6476,35 @@ "call": "Pause updates", "key": "Pause updates", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13927", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13928", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14462", "src/tachyon/tabs/monitoring/initController.ts:737", "src/tachyon/tabs/monitoring/render.ts:80", "src/tachyon/tabs/monitoring/render.ts:81" ] }, + { + "call": "Payload (I3)", + "key": "Payload (I3)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3465" + ] + }, + { + "call": "Payload (I4)", + "key": "Payload (I4)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3471" + ] + }, + { + "call": "Payload (I5)", + "key": "Payload (I5)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3477" + ] + }, { "call": "Peer Public Key", "key": "Peer Public Key", @@ -5321,6 +6537,8 @@ "call": "Pending", "key": "Pending", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5195", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:206", "src/tachyon/tabs/diagnostic/diagnostic.store.ts:63" ] }, @@ -5350,7 +6568,8 @@ "call": "Persistent Keepalive", "key": "Persistent Keepalive", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8391" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8391", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3328" ] }, { @@ -5400,6 +6619,7 @@ "call": "Port conflict", "key": "Port conflict", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9019", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:19" ] }, @@ -5414,7 +6634,8 @@ "call": "Port must be between 1 and 65535", "key": "Port must be between 1 and 65535", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:5468" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:5468", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1899" ] }, { @@ -5460,6 +6681,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8535" ] }, + { + "call": "Pre-shared Key (PSK)", + "key": "Pre-shared Key (PSK)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3378" + ] + }, { "call": "Prefer IPv4", "key": "Prefer IPv4", @@ -5474,6 +6702,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1007" ] }, + { + "call": "Preferred IP", + "key": "Preferred IP", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3168" + ] + }, { "call": "Prefix text", "key": "Prefix text", @@ -5507,6 +6742,9 @@ "call": "Priority details", "key": "Priority details", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2325", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2326", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7608", "src/tachyon/tabs/dashboard/initController.ts:1490", "src/tachyon/tabs/dashboard/partials/renderSections.ts:534", "src/tachyon/tabs/dashboard/partials/renderSections.ts:535" @@ -5516,6 +6754,7 @@ "call": "Priority details are unavailable", "key": "Priority details are unavailable", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7558", "src/tachyon/tabs/dashboard/initController.ts:1427" ] }, @@ -5562,13 +6801,16 @@ "key": "Protocol", "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2039", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8672" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8672", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2626", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2660" ] }, { "call": "Proxy / DPI", "key": "Proxy / DPI", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12851", "src/tachyon/tabs/diagnostic/initController.ts:1328" ] }, @@ -5597,6 +6839,7 @@ "call": "Proxy link is unavailable", "key": "Proxy link is unavailable", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7077", "src/tachyon/tabs/dashboard/initController.ts:813" ] }, @@ -5625,9 +6868,18 @@ "call": "Public host", "key": "Public host", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9034", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2692", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:40" ] }, + { + "call": "QR code is too large", + "key": "QR code is too large", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1671" + ] + }, { "call": "QUIC (HTTP/3)", "key": "QUIC (HTTP/3)", @@ -5651,10 +6903,60 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8305" ] }, + { + "call": "Reality fake site", + "key": "Reality fake site", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2831" + ] + }, + { + "call": "Reality fake site port", + "key": "Reality fake site port", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2842" + ] + }, + { + "call": "Reality max time difference", + "key": "Reality max time difference", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2885" + ] + }, + { + "call": "Reality private key", + "key": "Reality private key", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2853" + ] + }, + { + "call": "Reality public key", + "key": "Reality public key", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2860" + ] + }, + { + "call": "Reality short ID", + "key": "Reality short ID", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2866" + ] + }, + { + "call": "Reality short ID must contain 1-8 hex digits", + "key": "Reality short ID must contain 1-8 hex digits", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2191" + ] + }, { "call": "Rebuild firewall rules", "key": "Rebuild firewall rules", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12626", "src/tachyon/tabs/diagnostic/initController.ts:1069" ] }, @@ -5662,6 +6964,7 @@ "call": "Rebuilt release", "key": "Rebuilt release", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17236", "src/tachyon/tabs/updates/initController.ts:1298" ] }, @@ -5669,6 +6972,7 @@ "call": "Recommended Quick Fixes:", "key": "Recommended Quick Fixes:", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12696", "src/tachyon/tabs/diagnostic/initController.ts:1153" ] }, @@ -5683,6 +6987,7 @@ "call": "Reconnect WAN", "key": "Reconnect WAN", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12632", "src/tachyon/tabs/diagnostic/initController.ts:1075" ] }, @@ -5704,6 +7009,7 @@ "call": "Refill", "key": "Refill", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2023", "src/tachyon/tabs/dashboard/partials/renderSections.ts:138" ] }, @@ -5711,6 +7017,7 @@ "call": "Refresh", "key": "Refresh", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12798", "src/tachyon/tabs/diagnostic/initController.ts:1270" ] }, @@ -5718,6 +7025,7 @@ "call": "Refresh Device List", "key": "Refresh Device List", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12779", "src/tachyon/tabs/diagnostic/initController.ts:1249" ] }, @@ -5739,6 +7047,7 @@ "call": "Reinstall", "key": "Reinstall", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17033", "src/tachyon/tabs/updates/initController.ts:1058" ] }, @@ -5746,6 +7055,7 @@ "call": "Reload now", "key": "Reload now", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16171", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:348" ] }, @@ -5753,6 +7063,7 @@ "call": "Reloading...", "key": "Reloading...", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16195", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:377" ] }, @@ -5767,6 +7078,7 @@ "call": "Removal completed successfully!", "key": "Removal completed successfully!", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16151", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:322" ] }, @@ -5774,6 +7086,7 @@ "call": "Remove", "key": "Remove", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17001", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7927", "src/tachyon/tabs/updates/initController.ts:1014" ] @@ -5803,6 +7116,7 @@ "call": "Removing", "key": "Removing", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15983", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:114" ] }, @@ -5824,6 +7138,7 @@ "call": "Reset Bootstrap DNS", "key": "Reset Bootstrap DNS", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12646", "src/tachyon/tabs/diagnostic/initController.ts:1089" ] }, @@ -5854,6 +7169,7 @@ "call": "Resolve gateway", "key": "Resolve gateway", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12633", "src/tachyon/tabs/diagnostic/initController.ts:1076" ] }, @@ -5892,6 +7208,20 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:6090" ] }, + { + "call": "Response packet header (H2)", + "key": "Response packet header (H2)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3435" + ] + }, + { + "call": "Response packet junk size (S2)", + "key": "Response packet junk size (S2)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3411" + ] + }, { "call": "Response Packet Magic Header (S2)", "key": "Response Packet Magic Header (S2)", @@ -5906,10 +7236,18 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8413" ] }, + { + "call": "Response payload (I2)", + "key": "Response payload (I2)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3459" + ] + }, { "call": "Restart dnsmasq", "key": "Restart dnsmasq", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12627", "src/tachyon/tabs/diagnostic/initController.ts:1070" ] }, @@ -5917,6 +7255,7 @@ "call": "Restart firewall", "key": "Restart firewall", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12636", "src/tachyon/tabs/diagnostic/initController.ts:1079" ] }, @@ -5924,6 +7263,7 @@ "call": "Restart network", "key": "Restart network", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12637", "src/tachyon/tabs/diagnostic/initController.ts:1080" ] }, @@ -5931,6 +7271,7 @@ "call": "Restart sing-box DNS", "key": "Restart sing-box DNS", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12630", "src/tachyon/tabs/diagnostic/initController.ts:1073" ] }, @@ -5938,6 +7279,7 @@ "call": "Restart Tachyon", "key": "Restart Tachyon", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10117", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:62" ] }, @@ -5945,6 +7287,7 @@ "call": "Restart Zapret/ByeDPI", "key": "Restart Zapret/ByeDPI", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12638", "src/tachyon/tabs/diagnostic/initController.ts:1081" ] }, @@ -5952,6 +7295,7 @@ "call": "Restarts", "key": "Restarts", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2444", "src/tachyon/tabs/dashboard/partials/renderSections.ts:686" ] }, @@ -5967,6 +7311,7 @@ "call": "Restore config backup", "key": "Restore config backup", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12631", "src/tachyon/tabs/diagnostic/initController.ts:1074" ] }, @@ -5974,6 +7319,9 @@ "call": "Restore Native Internet", "key": "Restore Native Internet", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10195", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13068", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13091", "src/tachyon/tabs/diagnostic/initController.ts:1579", "src/tachyon/tabs/diagnostic/initController.ts:1603", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:140" @@ -5983,6 +7331,8 @@ "call": "Restore Native Internet (Stop Tachyon)", "key": "Restore Native Internet (Stop Tachyon)", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12643", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13005", "src/tachyon/tabs/diagnostic/initController.ts:1086", "src/tachyon/tabs/diagnostic/initController.ts:1506" ] @@ -6005,6 +7355,8 @@ "call": "Restoring native direct internet (stopping Tachyon)...", "key": "Restoring native direct internet (stopping Tachyon)...", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13008", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13095", "src/tachyon/tabs/diagnostic/initController.ts:1509", "src/tachyon/tabs/diagnostic/initController.ts:1607" ] @@ -6013,6 +7365,7 @@ "call": "Resume updates", "key": "Resume updates", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14462", "src/tachyon/tabs/monitoring/initController.ts:737" ] }, @@ -6020,6 +7373,8 @@ "call": "Route", "key": "Route", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14571", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14619", "src/tachyon/tabs/monitoring/initController.ts:871", "src/tachyon/tabs/monitoring/initController.ts:929" ] @@ -6049,9 +7404,17 @@ "call": "Route via Proxy", "key": "Route via Proxy", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12857", "src/tachyon/tabs/diagnostic/initController.ts:1335" ] }, + { + "call": "Routing mode", + "key": "Routing mode", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2704" + ] + }, { "call": "Routing Rule Tracer", "key": "Routing Rule Tracer", @@ -6063,11 +7426,21 @@ "call": "Routing rules", "key": "Routing rules", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9087", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9096", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9115", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:103", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:114", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:144" ] }, + { + "call": "Routing section", + "key": "Routing section", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2713" + ] + }, { "call": "Rule", "key": "Rule", @@ -6075,6 +7448,20 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10092" ] }, + { + "call": "Rule Name", + "key": "Rule Name", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:124" + ] + }, + { + "call": "Rule name is required", + "key": "Rule name is required", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:128" + ] + }, { "call": "Rule set must be an HTTP(S) URL or a local .srs / .json path", "key": "Rule set must be an HTTP(S) URL or a local .srs / .json path", @@ -6104,10 +7491,20 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10222" ] }, + { + "call": "Rules", + "key": "Rules", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2705", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:104", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:110" + ] + }, { "call": "Rules mangle counters", "key": "Rules mangle counters", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9230", "src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:79" ] }, @@ -6115,6 +7512,7 @@ "call": "Rules mangle exist", "key": "Rules mangle exist", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9225", "src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:74" ] }, @@ -6122,6 +7520,7 @@ "call": "Rules mangle output counters", "key": "Rules mangle output counters", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9240", "src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:89" ] }, @@ -6129,6 +7528,7 @@ "call": "Rules mangle output exist", "key": "Rules mangle output exist", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9235", "src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:84" ] }, @@ -6136,6 +7536,7 @@ "call": "Rules proxy counters", "key": "Rules proxy counters", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9250", "src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:99" ] }, @@ -6143,6 +7544,7 @@ "call": "Rules proxy exist", "key": "Rules proxy exist", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9245", "src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:94" ] }, @@ -6150,6 +7552,7 @@ "call": "Run AI Doctor", "key": "Run AI Doctor", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10185", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:130" ] }, @@ -6157,6 +7560,7 @@ "call": "Run Diagnostic", "key": "Run Diagnostic", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10417", "src/tachyon/tabs/diagnostic/partials/renderRunAction.ts:17" ] }, @@ -6164,6 +7568,7 @@ "call": "Run doctor repair", "key": "Run doctor repair", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10175", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:120" ] }, @@ -6171,12 +7576,15 @@ "call": "Running", "key": "Running", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2388", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4927", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11516", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:301", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1954", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1955", "src/tachyon/methods/custom/getDashboardSections.ts:1637", - "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:135", - "src/tachyon/tabs/dashboard/partials/renderSections.ts:616" + "src/tachyon/tabs/dashboard/partials/renderSections.ts:616", + "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:135" ] }, { @@ -6186,12 +7594,26 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9246" ] }, + { + "call": "Sat", + "key": "Sat", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:27" + ] + }, + { + "call": "Saturday", + "key": "Saturday", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:17" + ] + }, { "call": "Save", "key": "Save", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:672", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3669", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:672", "src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:1159" ] }, @@ -6234,13 +7656,35 @@ "src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:1159" ] }, + { + "call": "Schedule", + "key": "Schedule", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:180" + ] + }, + { + "call": "Schedule Rule", + "key": "Schedule Rule", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:470" + ] + }, { "call": "Search", "key": "Search", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13904", "src/tachyon/tabs/monitoring/render.ts:57" ] }, + { + "call": "Secret", + "key": "Secret", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3082" + ] + }, { "call": "Secret key for authenticating remote access to YACD when WAN access is enabled.", "key": "Secret key for authenticating remote access to YACD when WAN access is enabled.", @@ -6262,6 +7706,13 @@ "src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:699" ] }, + { + "call": "Section", + "key": "Section", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:435" + ] + }, { "call": "Section action", "key": "Section action", @@ -6290,17 +7741,26 @@ "src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:1086" ] }, + { + "call": "Sections", + "key": "Sections", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:429" + ] + }, { "call": "Security", "key": "Security", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2051" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2051", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2740" ] }, { "call": "Select", "key": "Select", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7366", "src/tachyon/tabs/dashboard/initController.ts:1181" ] }, @@ -6336,8 +7796,8 @@ "call": "Select a section", "key": "Select a section", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:87", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7376" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7376", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:87" ] }, { @@ -6354,6 +7814,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9032" ] }, + { + "call": "Select active days. If none selected, the rule applies every day.", + "key": "Select active days. If none selected, the rule applies every day.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:303" + ] + }, { "call": "Select AI LLM provider for diagnostics", "key": "Select AI LLM provider for diagnostics", @@ -6396,6 +7863,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:831" ] }, + { + "call": "Select LAN devices to apply this schedule to, or enter IP addresses manually.", + "key": "Select LAN devices to apply this schedule to, or enter IP addresses manually.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:216" + ] + }, { "call": "Select network interface for VPN connection", "key": "Select network interface for VPN connection", @@ -6438,10 +7912,18 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1490" ] }, + { + "call": "Select Sections", + "key": "Select Sections", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:245" + ] + }, { "call": "Select the fastest node", "key": "Select the fastest node", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7576", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3146", "src/tachyon/tabs/dashboard/initController.ts:1450" ] @@ -6474,18 +7956,35 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1146" ] }, + { + "call": "Select whether to disable the target during the schedule or enable it ONLY during the schedule.", + "key": "Select whether to disable the target during the schedule or enable it ONLY during the schedule.", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:267" + ] + }, { "call": "Selected", "key": "Selected", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7450", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7562", "src/tachyon/tabs/dashboard/initController.ts:1285", "src/tachyon/tabs/dashboard/initController.ts:1436" ] }, + { + "call": "Selected section", + "key": "Selected section", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2707" + ] + }, { "call": "Selector and URLTest outbounds must contain a non-empty outbounds array", "key": "Selector and URLTest outbounds must contain a non-empty outbounds array", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:298", "src/validators/validateOutboundJson.ts:85" ] }, @@ -6493,6 +7992,7 @@ "call": "Send", "key": "Send", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11205", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:67" ] }, @@ -6538,6 +8038,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2156" ] }, + { + "call": "Server", + "key": "Server", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:452" + ] + }, { "call": "Server Address", "key": "Server Address", @@ -6547,7 +8054,8 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8523", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8554", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8589", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8659" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8659", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3286" ] }, { @@ -6572,6 +8080,28 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8955" ] }, + { + "call": "Server information", + "key": "Server information", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1792" + ] + }, + { + "call": "Server name", + "key": "Server name", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1681", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2637" + ] + }, + { + "call": "Server name / SNI", + "key": "Server name / SNI", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2769" + ] + }, { "call": "Server Name Indication — leave empty to use server address", "key": "Server Name Indication — leave empty to use server address", @@ -6583,6 +8113,7 @@ "call": "Server outbound must contain a non-empty server field", "key": "Server outbound must contain a non-empty server field", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:306", "src/validators/validateOutboundJson.ts:94" ] }, @@ -6590,6 +8121,7 @@ "call": "Server outbound must contain a numeric server_port from 1 to 65535", "key": "Server outbound must contain a numeric server_port from 1 to 65535", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:311", "src/validators/validateOutboundJson.ts:100" ] }, @@ -6605,20 +8137,50 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8665" ] }, + { + "call": "Server Private Key", + "key": "Server Private Key", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3339" + ] + }, + { + "call": "Server Public Key", + "key": "Server Public Key", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3349" + ] + }, { "call": "Server unavailable", "key": "Server unavailable", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11261", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:135" ] }, + { + "call": "Server VPN IP address and subnet (e.g. 10.0.0.1/24)", + "key": "Server VPN IP address and subnet (e.g. 10.0.0.1/24)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3287" + ] + }, { "call": "server_port must be a number from 1 to 65535", "key": "server_port must be a number from 1 to 65535", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:315", "src/validators/validateOutboundJson.ts:107" ] }, + { + "call": "Servers", + "key": "Servers", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:446" + ] + }, { "call": "Servers on dashboard", "key": "Servers on dashboard", @@ -6630,6 +8192,9 @@ "call": "Service action failed", "key": "Service action failed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3417", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3436", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12323", "src/tachyon/methods/shell/index.ts:422", "src/tachyon/methods/shell/index.ts:443", "src/tachyon/tabs/diagnostic/initController.ts:604" @@ -6653,6 +8218,7 @@ "call": "Services are online and ready! Reloading page...", "key": "Services are online and ready! Reloading page...", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16192", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:374" ] }, @@ -6660,6 +8226,7 @@ "call": "Services info", "key": "Services info", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7913", "src/tachyon/tabs/dashboard/initController.ts:1878" ] }, @@ -6667,6 +8234,7 @@ "call": "Services restarted. Click to reload page.", "key": "Services restarted. Click to reload page.", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16205", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:390" ] }, @@ -6675,7 +8243,8 @@ "key": "Settings", "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1152", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7232" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7232", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:478" ] }, { @@ -6745,6 +8314,8 @@ "call": "Show sing-box config", "key": "Show sing-box config", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10233", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13132", "src/tachyon/tabs/diagnostic/initController.ts:1653", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:178" ] @@ -6760,6 +8331,7 @@ "call": "Sing-box autostart disabled", "key": "Sing-box autostart disabled", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8991", "src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:77" ] }, @@ -6767,6 +8339,7 @@ "call": "Sing-box FakeIP DNS does not work", "key": "Sing-box FakeIP DNS does not work", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9307", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:69" ] }, @@ -6774,6 +8347,7 @@ "call": "Sing-box FakeIP DNS works", "key": "Sing-box FakeIP DNS works", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9307", "src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:68" ] }, @@ -6781,6 +8355,7 @@ "call": "Sing-box installed", "key": "Sing-box installed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8976", "src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:62" ] }, @@ -6788,6 +8363,7 @@ "call": "Sing-box listening ports", "key": "Sing-box listening ports", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9001", "src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:87" ] }, @@ -6795,6 +8371,7 @@ "call": "Sing-box process running", "key": "Sing-box process running", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8996", "src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:82" ] }, @@ -6802,6 +8379,7 @@ "call": "Sing-box service exist", "key": "Sing-box service exist", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8986", "src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:72" ] }, @@ -6809,6 +8387,7 @@ "call": "Sing-box version is compatible (newer than 1.12.4)", "key": "Sing-box version is compatible (newer than 1.12.4)", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8981", "src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:67" ] }, @@ -6907,6 +8486,8 @@ "call": "Source", "key": "Source", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14583", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14623", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10099", "src/tachyon/tabs/monitoring/initController.ts:883", "src/tachyon/tabs/monitoring/initController.ts:933" @@ -6926,6 +8507,28 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1034" ] }, + { + "call": "Specific Sections (Select sections below)", + "key": "Specific Sections (Select sections below)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:239" + ] + }, + { + "call": "Specify a file path", + "key": "Specify a file path", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2026" + ] + }, + { + "call": "Specify different files", + "key": "Specify different files", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2037", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2049" + ] + }, { "call": "SSH", "key": "SSH", @@ -6938,6 +8541,7 @@ "call": "Standalone ByeDPI autostart is enabled", "key": "Standalone ByeDPI autostart is enabled", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9585", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:122" ] }, @@ -6945,6 +8549,7 @@ "call": "Standalone ByeDPI is active together with Tachyon ByeDPI rules", "key": "Standalone ByeDPI is active together with Tachyon ByeDPI rules", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9585", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:119" ] }, @@ -6952,6 +8557,7 @@ "call": "Standalone ByeDPI service is active", "key": "Standalone ByeDPI service is active", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9585", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:120" ] }, @@ -6959,6 +8565,7 @@ "call": "Standalone ByeDPI service is inactive", "key": "Standalone ByeDPI service is inactive", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9585", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:123" ] }, @@ -6966,6 +8573,7 @@ "call": "Standalone Zapret is active together with Tachyon Zapret rules", "key": "Standalone Zapret is active together with Tachyon Zapret rules", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9415", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:111" ] }, @@ -6973,6 +8581,7 @@ "call": "Standalone Zapret service is active", "key": "Standalone Zapret service is active", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9415", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:112" ] }, @@ -6980,6 +8589,7 @@ "call": "Standalone Zapret service is inactive", "key": "Standalone Zapret service is inactive", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9415", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:113" ] }, @@ -6987,6 +8597,7 @@ "call": "Standalone Zapret2 autostart is enabled", "key": "Standalone Zapret2 autostart is enabled", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9503", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:123" ] }, @@ -6994,6 +8605,7 @@ "call": "Standalone Zapret2 is active together with Tachyon Zapret2 rules", "key": "Standalone Zapret2 is active together with Tachyon Zapret2 rules", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9501", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:118" ] }, @@ -7001,6 +8613,7 @@ "call": "Standalone Zapret2 service is active", "key": "Standalone Zapret2 service is active", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9503", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:121" ] }, @@ -7008,6 +8621,7 @@ "call": "Standalone Zapret2 service is inactive", "key": "Standalone Zapret2 service is inactive", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9503", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:124" ] }, @@ -7029,6 +8643,7 @@ "call": "Start sing-box", "key": "Start sing-box", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12625", "src/tachyon/tabs/diagnostic/initController.ts:1068" ] }, @@ -7036,13 +8651,22 @@ "call": "Start Tachyon", "key": "Start Tachyon", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10137", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:82" ] }, + { + "call": "Start Time (HH:MM)", + "key": "Start Time (HH:MM)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:278" + ] + }, { "call": "Start watchdog", "key": "Start watchdog", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12629", "src/tachyon/tabs/diagnostic/initController.ts:1072" ] }, @@ -7065,6 +8689,8 @@ "call": "Status", "key": "Status", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2427", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:191", "src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:448", "src/tachyon/tabs/dashboard/partials/renderSections.ts:668" ] @@ -7094,6 +8720,7 @@ "call": "Stop Tachyon", "key": "Stop Tachyon", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10127", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:72" ] }, @@ -7101,11 +8728,14 @@ "call": "Stopped", "key": "Stopped", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2388", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4927", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11528", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:307", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1960", "src/tachyon/methods/custom/getDashboardSections.ts:1641", - "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:147", - "src/tachyon/tabs/dashboard/partials/renderSections.ts:620" + "src/tachyon/tabs/dashboard/partials/renderSections.ts:620", + "src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:147" ] }, { @@ -7156,6 +8786,7 @@ "call": "Subscription info:", "key": "Subscription info:", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2035", "src/tachyon/tabs/dashboard/partials/renderSections.ts:152" ] }, @@ -7163,6 +8794,8 @@ "call": "Subscription update failed", "key": "Subscription update failed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3783", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3801", "src/tachyon/methods/shell/index.ts:930", "src/tachyon/methods/shell/index.ts:950" ] @@ -7192,6 +8825,7 @@ "call": "Subscriptions updated", "key": "Subscriptions updated", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6710", "src/tachyon/tabs/dashboard/initController.ts:334" ] }, @@ -7209,6 +8843,20 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7697" ] }, + { + "call": "Sun", + "key": "Sun", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:28" + ] + }, + { + "call": "Sunday", + "key": "Sunday", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:18" + ] + }, { "call": "Sweden (se)", "key": "Sweden (se)", @@ -7220,6 +8868,7 @@ "call": "Switch DNS to DoH", "key": "Switch DNS to DoH", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12640", "src/tachyon/tabs/diagnostic/initController.ts:1083" ] }, @@ -7227,6 +8876,7 @@ "call": "Switch to auto-selection", "key": "Switch to auto-selection", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7426", "src/tachyon/tabs/dashboard/initController.ts:1250" ] }, @@ -7234,6 +8884,7 @@ "call": "Sync System Time (NTP)", "key": "Sync System Time (NTP)", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12644", "src/tachyon/tabs/diagnostic/initController.ts:1087" ] }, @@ -7241,6 +8892,7 @@ "call": "System info", "key": "System info", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7901", "src/tachyon/tabs/dashboard/initController.ts:1865" ] }, @@ -7248,6 +8900,7 @@ "call": "System information", "key": "System information", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11346", "src/tachyon/tabs/diagnostic/partials/renderSystemInfo.ts:24" ] }, @@ -7255,6 +8908,7 @@ "call": "Table exist", "key": "Table exist", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9220", "src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:69" ] }, @@ -7262,6 +8916,7 @@ "call": "Tachyon Error", "key": "Tachyon Error", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6034", "src/tachyon/services/core.service.ts:52" ] }, @@ -7297,6 +8952,7 @@ "call": "Tachyon service is stopped. Start the service to display connections.", "key": "Tachyon service is stopped. Start the service to display connections.", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14657", "src/tachyon/tabs/monitoring/initController.ts:977" ] }, @@ -7304,13 +8960,22 @@ "call": "Tachyon service is stopped. Start the service to display the dashboard.", "key": "Tachyon service is stopped. Start the service to display the dashboard.", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2833", "src/tachyon/tabs/dashboard/render.ts:17" ] }, + { + "call": "Tachyon Settings", + "key": "Tachyon Settings", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:369" + ] + }, { "call": "Tachyon update did not complete within the timeout", "key": "Tachyon update did not complete within the timeout", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3691", "src/tachyon/methods/shell/index.ts:800" ] }, @@ -7325,6 +8990,7 @@ "call": "Tachyon-managed ciadpi runtime has restarted", "key": "Tachyon-managed ciadpi runtime has restarted", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9575", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:91" ] }, @@ -7332,6 +8998,7 @@ "call": "Tachyon-managed ciadpi runtime is not ready", "key": "Tachyon-managed ciadpi runtime is not ready", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9575", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:94" ] }, @@ -7339,6 +9006,7 @@ "call": "Tachyon-managed ciadpi runtime is not running", "key": "Tachyon-managed ciadpi runtime is not running", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9575", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:97" ] }, @@ -7346,6 +9014,7 @@ "call": "Tachyon-managed ciadpi runtime is ready", "key": "Tachyon-managed ciadpi runtime is ready", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9575", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:93" ] }, @@ -7353,6 +9022,7 @@ "call": "Tachyon-managed nfqws runtime is not ready", "key": "Tachyon-managed nfqws runtime is not ready", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9400", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:87" ] }, @@ -7360,6 +9030,7 @@ "call": "Tachyon-managed nfqws runtime is not running", "key": "Tachyon-managed nfqws runtime is not running", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9400", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:90" ] }, @@ -7367,6 +9038,7 @@ "call": "Tachyon-managed nfqws runtime is ready", "key": "Tachyon-managed nfqws runtime is ready", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9400", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:86" ] }, @@ -7374,6 +9046,7 @@ "call": "Tachyon-managed nfqws2 runtime is not ready", "key": "Tachyon-managed nfqws2 runtime is not ready", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9486", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:90" ] }, @@ -7381,6 +9054,7 @@ "call": "Tachyon-managed nfqws2 runtime is not running", "key": "Tachyon-managed nfqws2 runtime is not running", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9486", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:93" ] }, @@ -7388,16 +9062,67 @@ "call": "Tachyon-managed nfqws2 runtime is ready", "key": "Tachyon-managed nfqws2 runtime is ready", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9486", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:89" ] }, + { + "call": "Tailscale auth key", + "key": "Tailscale auth key", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3224" + ] + }, + { + "call": "Tailscale control URL", + "key": "Tailscale control URL", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3233" + ] + }, { "call": "Tailscale endpoint", "key": "Tailscale endpoint", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9082", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:98" ] }, + { + "call": "Tailscale hostname", + "key": "Tailscale hostname", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3241" + ] + }, + { + "call": "Target", + "key": "Target", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:144" + ] + }, + { + "call": "Target Devices (IP / Hostname)", + "key": "Target Devices (IP / Hostname)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:215" + ] + }, + { + "call": "Target Scope", + "key": "Target Scope", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:233" + ] + }, + { + "call": "Telegram Bot", + "key": "Telegram Bot", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:490" + ] + }, { "call": "Telegram Bot Token", "key": "Telegram Bot Token", @@ -7409,6 +9134,9 @@ "call": "Test latency", "key": "Test latency", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2107", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2111", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2609", "src/tachyon/tabs/dashboard/partials/renderSections.ts:247", "src/tachyon/tabs/dashboard/partials/renderSections.ts:255", "src/tachyon/tabs/dashboard/partials/renderSections.ts:895" @@ -7460,6 +9188,7 @@ "call": "Testing URL", "key": "Testing URL", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7453", "src/tachyon/tabs/dashboard/initController.ts:1288" ] }, @@ -7490,6 +9219,7 @@ "call": "There are rules using ByeDPI", "key": "There are rules using ByeDPI", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9570", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:78" ] }, @@ -7497,6 +9227,7 @@ "call": "There are rules using Zapret", "key": "There are rules using Zapret", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9395", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:78" ] }, @@ -7504,6 +9235,7 @@ "call": "There are rules using Zapret2", "key": "There are rules using Zapret2", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9481", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:81" ] }, @@ -7511,6 +9243,7 @@ "call": "Thinking...", "key": "Thinking...", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11225", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:91" ] }, @@ -7518,6 +9251,7 @@ "call": "This action will stop Tachyon, restore standard dnsmasq/DNS, remove all proxy/anti-censorship firewall rules and restore direct Internet connection through your ISP.", "key": "This action will stop Tachyon, restore standard dnsmasq/DNS, remove all proxy/anti-censorship firewall rules and restore direct Internet connection through your ISP.", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13073", "src/tachyon/tabs/diagnostic/initController.ts:1584" ] }, @@ -7525,7 +9259,13 @@ "call": "This field is required", "key": "This field is required", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10283" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10283", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1906", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1925", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1930", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2020", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2182", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3029" ] }, { @@ -7593,10 +9333,26 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:567" ] }, + { + "call": "Thu", + "key": "Thu", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:25" + ] + }, + { + "call": "Thursday", + "key": "Thursday", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:15" + ] + }, { "call": "Time", "key": "Time", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14574", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14620", "src/tachyon/tabs/monitoring/initController.ts:874", "src/tachyon/tabs/monitoring/initController.ts:930" ] @@ -7608,10 +9364,25 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:973" ] }, + { + "call": "Time is required (e.g. 22:00)", + "key": "Time is required (e.g. 22:00)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:43" + ] + }, + { + "call": "Time skew tolerance", + "key": "Time skew tolerance", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3198" + ] + }, { "call": "tiny", "key": "tiny", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5678", "src/tachyon/helpers/singBoxVariant.ts:64" ] }, @@ -7648,6 +9419,7 @@ "call": "Tolerance", "key": "Tolerance", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7455", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2657", "src/tachyon/tabs/dashboard/initController.ts:1290" ] @@ -7684,6 +9456,8 @@ "call": "Traffic", "key": "Traffic", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2019", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7877", "src/tachyon/tabs/dashboard/initController.ts:1839", "src/tachyon/tabs/dashboard/partials/renderSections.ts:133" ] @@ -7713,6 +9487,7 @@ "call": "Traffic Total", "key": "Traffic Total", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7889", "src/tachyon/tabs/dashboard/initController.ts:1852" ] }, @@ -7734,6 +9509,7 @@ "call": "Transient connection error", "key": "Transient connection error", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16900", "src/tachyon/tabs/updates/initController.ts:877" ] }, @@ -7749,13 +9525,50 @@ "key": "Transport", "places": [ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2045", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8566" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8566", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2907" + ] + }, + { + "call": "Transport host", + "key": "Transport host", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2931" + ] + }, + { + "call": "Transport packet header (H4)", + "key": "Transport packet header (H4)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3447" + ] + }, + { + "call": "Transport packet junk size (S4)", + "key": "Transport packet junk size (S4)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3423" + ] + }, + { + "call": "Transport path", + "key": "Transport path", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2915" + ] + }, + { + "call": "Transport path must start with /", + "key": "Transport path must start with /", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2103" ] }, { "call": "Troubleshooting", "key": "Troubleshooting", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11410", "src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:25" ] }, @@ -7780,6 +9593,20 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:979" ] }, + { + "call": "Tue", + "key": "Tue", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:23" + ] + }, + { + "call": "Tuesday", + "key": "Tuesday", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:13" + ] + }, { "call": "Turkey (tr)", "key": "Turkey (tr)", @@ -7791,6 +9618,9 @@ "call": "Type", "key": "Type", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14568", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14618", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1696", "src/tachyon/tabs/monitoring/initController.ts:868", "src/tachyon/tabs/monitoring/initController.ts:928" ] @@ -7836,10 +9666,18 @@ "call": "Unavailability timeout", "key": "Unavailability timeout", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7570", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3120", "src/tachyon/tabs/dashboard/initController.ts:1444" ] }, + { + "call": "Underload packet header (H3)", + "key": "Underload packet header (H3)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3441" + ] + }, { "call": "Underload Packet Magic Header (H1)", "key": "Underload Packet Magic Header (H1)", @@ -7888,6 +9726,7 @@ "call": "Unexpected Tachyon-managed ciadpi runtime is running", "key": "Unexpected Tachyon-managed ciadpi runtime is running", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9575", "src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:96" ] }, @@ -7895,6 +9734,7 @@ "call": "Unexpected Tachyon-managed nfqws runtime is running", "key": "Unexpected Tachyon-managed nfqws runtime is running", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9400", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:89" ] }, @@ -7902,9 +9742,17 @@ "call": "Unexpected Tachyon-managed nfqws2 runtime is running", "key": "Unexpected Tachyon-managed nfqws2 runtime is running", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9486", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:92" ] }, + { + "call": "unique UCI identifier", + "key": "unique UCI identifier", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:57" + ] + }, { "call": "United Kingdom (gb)", "key": "United Kingdom (gb)", @@ -7923,6 +9771,18 @@ "call": "unknown", "key": "unknown", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5661", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9024", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9605", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9607", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9608", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9609", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9616", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9618", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9620", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9623", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9624", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16523", "src/tachyon/helpers/singBoxVariant.ts:37", "src/tachyon/services/systemInfo.service.ts:10", "src/tachyon/services/systemInfo.service.ts:12", @@ -7941,6 +9801,7 @@ "call": "Unknown", "key": "Unknown", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4927", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:328", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1977", "src/tachyon/methods/custom/getDashboardSections.ts:1643" @@ -7966,6 +9827,11 @@ "call": "Unknown error", "key": "Unknown error", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5001", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12422", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12441", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12508", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13049", "src/tachyon/api.ts:40", "src/tachyon/tabs/diagnostic/initController.ts:720", "src/tachyon/tabs/diagnostic/initController.ts:761", @@ -7991,6 +9857,7 @@ "call": "Unspecified IP address is not allowed", "key": "Unspecified IP address is not allowed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:212", "src/validators/validateSubnet.ts:17" ] }, @@ -7998,9 +9865,17 @@ "call": "Unstable", "key": "Unstable", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2464", "src/tachyon/tabs/dashboard/partials/renderSections.ts:710" ] }, + { + "call": "Unsupported security mode for this protocol", + "key": "Unsupported security mode for this protocol", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2216" + ] + }, { "call": "Up to 10 snapshots are kept; the oldest ones are removed automatically.", "key": "Up to 10 snapshots are kept; the oldest ones are removed automatically.", @@ -8012,6 +9887,7 @@ "call": "Update", "key": "Update", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16952", "src/tachyon/tabs/updates/initController.ts:944" ] }, @@ -8019,6 +9895,7 @@ "call": "Update is available", "key": "Update is available", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16491", "src/tachyon/tabs/updates/initController.ts:337" ] }, @@ -8026,6 +9903,7 @@ "call": "Update is available for current release", "key": "Update is available for current release", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17224", "src/tachyon/tabs/updates/initController.ts:1285" ] }, @@ -8033,6 +9911,7 @@ "call": "Update is available:", "key": "Update is available:", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17205", "src/tachyon/tabs/updates/initController.ts:1264" ] }, @@ -8040,6 +9919,10 @@ "call": "Update subscriptions", "key": "Update subscriptions", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2090", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2101", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2101", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12635", "src/tachyon/tabs/diagnostic/initController.ts:1078", "src/tachyon/tabs/dashboard/partials/renderSections.ts:224", "src/tachyon/tabs/dashboard/partials/renderSections.ts:237", @@ -8071,6 +9954,7 @@ "call": "Updating", "key": "Updating", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15985", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:116" ] }, @@ -8078,6 +9962,7 @@ "call": "Updating device routing mode...", "key": "Updating device routing mode...", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12860", "src/tachyon/tabs/diagnostic/initController.ts:1339" ] }, @@ -8085,6 +9970,8 @@ "call": "Uplink", "key": "Uplink", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7879", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7891", "src/tachyon/tabs/dashboard/initController.ts:1841", "src/tachyon/tabs/dashboard/initController.ts:1854" ] @@ -8093,6 +9980,8 @@ "call": "Uploaded", "key": "Uploaded", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14580", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14622", "src/tachyon/tabs/monitoring/initController.ts:880", "src/tachyon/tabs/monitoring/initController.ts:932" ] @@ -8101,6 +9990,7 @@ "call": "URL must start with vless://, vmess://, ss://, trojan://, socks4://, socks4a://, socks5://, hysteria2://, hy2://, or tuic://", "key": "URL must start with vless://, vmess://, ss://, trojan://, socks4://, socks4a://, socks5://, hysteria2://, hy2://, or tuic://", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:959", "src/validators/validateProxyUrl.ts:47" ] }, @@ -8108,6 +9998,7 @@ "call": "URL must use one of the following protocols:", "key": "URL must use one of the following protocols:", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:163", "src/validators/validateUrl.ts:18" ] }, @@ -8150,6 +10041,9 @@ "call": "URLTest details", "key": "URLTest details", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2309", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2310", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7476", "src/tachyon/tabs/dashboard/initController.ts:1317", "src/tachyon/tabs/dashboard/partials/renderSections.ts:515", "src/tachyon/tabs/dashboard/partials/renderSections.ts:516" @@ -8159,6 +10053,7 @@ "call": "URLTest details are unavailable", "key": "URLTest details are unavailable", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7446", "src/tachyon/tabs/dashboard/initController.ts:1276" ] }, @@ -8177,6 +10072,66 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1781" ] }, + { + "call": "Use 32 hex characters", + "key": "Use 32 hex characters", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2200" + ] + }, + { + "call": "Use a domain name or IP address", + "key": "Use a domain name or IP address", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1990", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1996", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2112" + ] + }, + { + "call": "Use a duration like 30s, 5m, or 1h30m", + "key": "Use a duration like 30s, 5m, or 1h30m", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2091" + ] + }, + { + "call": "Use a non-negative integer", + "key": "Use a non-negative integer", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2097", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3031" + ] + }, + { + "call": "Use a non-zero secret", + "key": "Use a non-zero secret", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2203" + ] + }, + { + "call": "Use an HTTP or HTTPS URL", + "key": "Use an HTTP or HTTPS URL", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2059", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2061" + ] + }, + { + "call": "Use an IP address", + "key": "Use an IP address", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2013" + ] + }, + { + "call": "Use an IP listen address", + "key": "Use an IP listen address", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2006" + ] + }, { "call": "Use another section as an intermediate hop to connect to servers in this section. Does not apply to network interfaces or JSON outbounds.", "key": "Use another section as an intermediate hop to connect to servers in this section. Does not apply to network interfaces or JSON outbounds.", @@ -8184,6 +10139,27 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8994" ] }, + { + "call": "Use CIDR prefixes like 192.168.1.0/24 or 2001:db8::/32", + "key": "Use CIDR prefixes like 192.168.1.0/24 or 2001:db8::/32", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2160" + ] + }, + { + "call": "Use CIDR prefixes or IP addresses like 192.168.1.0/24, 192.168.1.10, or 2001:db8::1", + "key": "Use CIDR prefixes or IP addresses like 192.168.1.0/24, 192.168.1.10, or 2001:db8::1", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2174" + ] + }, + { + "call": "Use letters, digits, dots, underscores, or hyphens", + "key": "Use letters, digits, dots, underscores, or hyphens", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2118" + ] + }, { "call": "Use sing-box duration format like 10s, 1m or 2m30s", "key": "Use sing-box duration format like 10s, 1m or 2m30s", @@ -8195,17 +10171,17 @@ "call": "Use sing-box duration format like 1d, 12h or 30m", "key": "Use sing-box duration format like 1d, 12h or 30m", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1323", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1345", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1352", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1383", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1411", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2386", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2646", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3169", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:4731", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:4738", - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:4745" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:4745", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1323", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1345", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1352", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1383", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1411" ] }, { @@ -8220,6 +10196,7 @@ "call": "Used by", "key": "Used by", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9024", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:25" ] }, @@ -8234,7 +10211,8 @@ "call": "Username", "key": "Username", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8574" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8574", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2990" ] }, { @@ -8248,6 +10226,22 @@ "call": "Valid", "key": "Valid", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:27", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:69", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:82", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:141", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:144", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:169", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:189", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:233", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:323", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:409", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:519", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:577", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:633", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:697", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:807", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:927", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:5347", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:5360", "src/validators/validateDns.ts:25", @@ -8289,17 +10283,26 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:5337" ] }, + { + "call": "Value must be a positive integer", + "key": "Value must be a positive integer", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1910" + ] + }, { "call": "Value must not contain control characters", "key": "Value must not contain control characters", "places": [ - "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10286" + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10286", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1934" ] }, { "call": "Verifying router and service readiness...", "key": "Verifying router and service readiness...", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16188", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:369" ] }, @@ -8314,6 +10317,8 @@ "call": "View logs", "key": "View logs", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10224", + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12485", "src/tachyon/tabs/diagnostic/initController.ts:820", "src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:169" ] @@ -8325,6 +10330,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7263" ] }, + { + "call": "VLESS flow", + "key": "VLESS flow", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3034" + ] + }, { "call": "vless://, vmess://, ss://, trojan://, socks4/5://, hy2/hysteria2:// links", "key": "vless://, vmess://, ss://, trojan://, socks4/5://, hy2/hysteria2:// links", @@ -8336,6 +10348,7 @@ "call": "Waiting for router services to restart...", "key": "Waiting for router services to restart...", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16167", "src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:343" ] }, @@ -8343,6 +10356,7 @@ "call": "WAN", "key": "WAN", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9060", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:70" ] }, @@ -8350,6 +10364,7 @@ "call": "WAN public IP", "key": "WAN public IP", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9159", "src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:198" ] }, @@ -8402,6 +10417,34 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1558" ] }, + { + "call": "Wed", + "key": "Wed", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:24" + ] + }, + { + "call": "Wednesday", + "key": "Wednesday", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:14" + ] + }, + { + "call": "Weekdays (Mon-Fri)", + "key": "Weekdays (Mon-Fri)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:106" + ] + }, + { + "call": "Weekends (Sat-Sun)", + "key": "Weekends (Sat-Sun)", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:110" + ] + }, { "call": "What Tachyon should do when this section matches", "key": "What Tachyon should do when this section matches", @@ -8420,6 +10463,7 @@ "call": "Why Discord fails?", "key": "Why Discord fails?", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11278", "src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:156" ] }, @@ -8437,6 +10481,13 @@ "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8431" ] }, + { + "call": "XHTTP mode", + "key": "XHTTP mode", + "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2944" + ] + }, { "call": "YACD Secret Key", "key": "YACD Secret Key", @@ -8448,6 +10499,7 @@ "call": "Yes", "key": "Yes", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7081", "src/tachyon/tabs/dashboard/initController.ts:818" ] }, @@ -8469,6 +10521,7 @@ "call": "Zapret package is installed", "key": "Zapret package is installed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9390", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:71" ] }, @@ -8476,6 +10529,7 @@ "call": "Zapret package is not installed", "key": "Zapret package is not installed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9390", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:72" ] }, @@ -8483,6 +10537,7 @@ "call": "Zapret provider binary is available", "key": "Zapret provider binary is available", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9385", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:60" ] }, @@ -8490,6 +10545,7 @@ "call": "Zapret provider binary is not available", "key": "Zapret provider binary is not available", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9385", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:61" ] }, @@ -8497,6 +10553,7 @@ "call": "Zapret sing-box outbound is configured", "key": "Zapret sing-box outbound is configured", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9410", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:103" ] }, @@ -8504,6 +10561,7 @@ "call": "Zapret sing-box outbound is not configured", "key": "Zapret sing-box outbound is not configured", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9410", "src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:104" ] }, @@ -8518,6 +10576,7 @@ "call": "Zapret2 package is installed", "key": "Zapret2 package is installed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9476", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:74" ] }, @@ -8525,6 +10584,7 @@ "call": "Zapret2 package is not installed", "key": "Zapret2 package is not installed", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9476", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:75" ] }, @@ -8532,6 +10592,7 @@ "call": "Zapret2 provider binary is available", "key": "Zapret2 provider binary is available", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9471", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:63" ] }, @@ -8539,6 +10600,7 @@ "call": "Zapret2 provider binary is not available", "key": "Zapret2 provider binary is not available", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9471", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:64" ] }, @@ -8546,6 +10608,7 @@ "call": "Zapret2 sing-box outbound is configured", "key": "Zapret2 sing-box outbound is configured", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9496", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:106" ] }, @@ -8553,6 +10616,7 @@ "call": "Zapret2 sing-box outbound is not configured", "key": "Zapret2 sing-box outbound is not configured", "places": [ + "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9496", "src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:107" ] } diff --git a/fe-app-tachyon/locales/tachyon.pot b/fe-app-tachyon/locales/tachyon.pot index b56b7f2e..cfc00c33 100644 --- a/fe-app-tachyon/locales/tachyon.pot +++ b/fe-app-tachyon/locales/tachyon.pot @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: TACHYON\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-17 08:15+0300\n" -"PO-Revision-Date: 2026-08-17 08:15+0300\n" +"POT-Creation-Date: 2026-08-17 17:24+0300\n" +"PO-Revision-Date: 2026-08-17 17:24+0300\n" "Last-Translator: Dushnilin \n" "Language-Team: LANGUAGE \n" "Language: \n" @@ -72,12 +72,16 @@ msgstr "" msgid "⚠️ If all Main DNS fail 3 times, queries will be sent to your ISP's DNS in plaintext. Only use as a last resort to prevent complete internet loss." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7917 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7924 #: src/tachyon/tabs/dashboard/initController.ts:1882 #: src/tachyon/tabs/dashboard/initController.ts:1891 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:456 msgid "✔ Running" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7917 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7924 #: src/tachyon/tabs/dashboard/initController.ts:1882 #: src/tachyon/tabs/dashboard/initController.ts:1891 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:456 @@ -88,37 +92,77 @@ msgstr "" msgid "🔑 Generate" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:447 +msgid "Accept external proxy connections and route them with sing-box." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3276 +msgid "Accept routes" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7245 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7275 msgid "Action" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:266 +msgid "Action Mode" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7320 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13869 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14445 #: src/tachyon/tabs/dashboard/initController.ts:1123 #: src/tachyon/tabs/monitoring/initController.ts:713 #: src/tachyon/tabs/monitoring/render.ts:20 msgid "Active" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:203 +msgid "Active (Allowed)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:203 +msgid "Active (Blocking)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8913 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:56 msgid "Active Bootstrap DNS" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2732 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2802 #: src/tachyon/tabs/dashboard/partials/renderConnections.ts:50 #: src/tachyon/tabs/dashboard/partials/renderConnections.ts:126 msgid "Active Clients" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7903 #: src/tachyon/tabs/dashboard/initController.ts:1867 msgid "Active Connections" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8920 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:67 msgid "Active Main DNS" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:471 +msgid "Add a schedule rule" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:436 +msgid "Add a section" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:453 +msgid "Add a server inbound" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1852 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:122 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:166 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1852 msgid "Add at least one DNS server" msgstr "" @@ -146,6 +190,7 @@ msgstr "" msgid "Add URLTest / Priority group" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9255 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:106 msgid "Additional marking rules found" msgstr "" @@ -168,6 +213,10 @@ msgstr "" msgid "Additionally show servers by protocol, transport, and security. Add only servers matching the specified parameters." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1711 +msgid "Address" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2072 msgid "Administrator Chat IDs" msgstr "" @@ -180,6 +229,14 @@ msgstr "" msgid "Advanced System" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3259 +msgid "Advertise exit node" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3269 +msgid "Advertise routes" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8612 msgid "AEAD Method" msgstr "" @@ -201,10 +258,12 @@ msgstr "" msgid "AI API Key" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11334 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:220 msgid "AI Chat & Tachyon Assistant" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10205 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:150 msgid "AI Chat Assistant" msgstr "" @@ -213,10 +272,14 @@ msgstr "" msgid "AI Doctor (ChatGPT / DeepSeek API)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13047 #: src/tachyon/tabs/diagnostic/initController.ts:1553 msgid "AI Doctor Diagnosis" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12508 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13050 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13058 #: src/tachyon/tabs/diagnostic/initController.ts:846 #: src/tachyon/tabs/diagnostic/initController.ts:1559 #: src/tachyon/tabs/diagnostic/initController.ts:1567 @@ -238,6 +301,7 @@ msgstr "" msgid "AI Provider" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11264 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:138 msgid "AI service error" msgstr "" @@ -250,15 +314,29 @@ msgstr "" msgid "AI Watchdog settings saved. Restart watchdog to apply." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13888 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14410 #: src/tachyon/tabs/monitoring/initController.ts:672 #: src/tachyon/tabs/monitoring/render.ts:40 msgid "All" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:139 +msgid "All devices" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1968 msgid "All except selected" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:150 +msgid "All Internet" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:238 +msgid "All Internet (Complete internet cutoff)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1978 msgid "All remaining except selected" msgstr "" @@ -271,6 +349,8 @@ msgstr "" msgid "All remaining servers means every server not already assigned to a higher-priority level." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13896 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14383 #: src/tachyon/tabs/monitoring/initController.ts:635 #: src/tachyon/tabs/monitoring/render.ts:49 msgid "All Routes" @@ -284,6 +364,14 @@ msgstr "" msgid "All traffic from these IP addresses will be routed through the section unconditionally, ignoring all other conditions." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:272 +msgid "Allow / Enable ONLY in scheduled hours (White period)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:174 +msgid "Allow in interval" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8514 msgid "Allow Insecure TLS" msgstr "" @@ -304,6 +392,14 @@ msgstr "" msgid "Allows Tachyon to send diagnostic snapshots to ChatGPT or DeepSeek API for intelligent root-cause analysis and auto-repair recommendations." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2788 +msgid "ALPN" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3022 +msgid "Alter ID" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8301 msgid "AmneziaWG config loaded successfully!" msgstr "" @@ -312,10 +408,12 @@ msgstr "" msgid "AmneziaWG Generator" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12583 #: src/tachyon/tabs/diagnostic/initController.ts:960 msgid "Anonymized support report copied to clipboard" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16885 #: src/tachyon/tabs/updates/initController.ts:861 msgid "Another component action is already running" msgstr "" @@ -332,14 +430,17 @@ msgstr "" msgid "Apply section rules only to the specified local IP addresses" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12713 #: src/tachyon/tabs/diagnostic/initController.ts:1171 msgid "Applying fix" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12711 #: src/tachyon/tabs/diagnostic/initController.ts:1169 msgid "Applying..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11200 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:60 msgid "Ask Tachyon AI Assistant a question..." msgstr "" @@ -360,16 +461,24 @@ msgstr "" msgid "Auth Digest" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2256 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7160 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7500 #: src/tachyon/tabs/dashboard/initController.ts:919 #: src/tachyon/tabs/dashboard/initController.ts:1351 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:450 msgid "Auto" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10035 #: src/partials/modal/renderModal.ts:286 msgid "Auto refresh" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3179 +msgid "Auto update" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1875 msgid "Auto-detected domains" msgstr "" @@ -387,6 +496,7 @@ msgstr "" msgid "Auto-generate HWID" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12641 #: src/tachyon/tabs/diagnostic/initController.ts:1084 msgid "Auto-Heal Network Stack" msgstr "" @@ -419,6 +529,7 @@ msgstr "" msgid "Automatically increase check intervals when healthy (to 5 min) and decrease on problems (to 120s)." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7580 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3157 #: src/tachyon/tabs/dashboard/initController.ts:1454 msgid "Automatically select the fastest node in the current level" @@ -428,6 +539,7 @@ msgstr "" msgid "Automatically update remote hosts lists on schedule" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10111 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:56 msgid "Available actions" msgstr "" @@ -442,6 +554,10 @@ msgstr "" msgid "Bearer Auth Token" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:279 +msgid "Beginning of the schedule interval (e.g. 22:00)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9258 msgid "Belarus (by)" msgstr "" @@ -451,6 +567,19 @@ msgstr "" msgid "BitTorrent / P2P" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:271 +msgid "Block / Disable in scheduled hours (Standard)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:176 +msgid "Block in interval" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:465 +msgid "Block internet access or specific proxy sections for individual devices based on time and days." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8913 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:57 msgid "Bootstrap DNS" msgstr "" @@ -463,19 +592,24 @@ msgstr "" msgid "Bot Status" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9293 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9312 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:51 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:79 msgid "Browser FakeIP check could not be completed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9312 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:82 msgid "Browser is not using FakeIP" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9312 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:81 msgid "Browser is using FakeIP correctly" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13185 #: src/tachyon/tabs/diagnostic/initController.ts:1717 msgid "Bug report downloaded" msgstr "" @@ -507,26 +641,32 @@ msgstr "" msgid "ByeDPI option requires a value: %s" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9565 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:71 msgid "ByeDPI package is installed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9565 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:72 msgid "ByeDPI package is not installed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9560 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:64 msgid "ByeDPI provider binary is available" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9560 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:65 msgid "ByeDPI provider binary is not available" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9580 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:107 msgid "ByeDPI sing-box outbound is configured" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9580 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:108 msgid "ByeDPI sing-box outbound is not configured" msgstr "" @@ -559,15 +699,24 @@ msgstr "" msgid "Cache file path cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13086 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7721 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:434 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:575 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:607 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:655 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7721 #: src/tachyon/tabs/diagnostic/initController.ts:1598 msgid "Cancel" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8893 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8957 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9138 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9201 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9363 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9447 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9535 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11456 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:26 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:27 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:172 @@ -579,6 +728,10 @@ msgstr "" msgid "Cannot receive checks result" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2337 +msgid "Cannot save server" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3593 msgid "Cannot save settings" msgstr "" @@ -587,22 +740,36 @@ msgstr "" msgid "Cascade connection" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2798 +msgid "Certificate path" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1656 +msgid "Certificate pin is unavailable. Apply or restart the server to generate the default certificate, then open this dialog again." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16151 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16612 #: src/tachyon/tabs/updates/initController.ts:498 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:320 msgid "Check completed!" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2247 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2609 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:432 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:894 msgid "Check Connection" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7567 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2645 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3108 #: src/tachyon/tabs/dashboard/initController.ts:1441 msgid "Check interval" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10215 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:160 msgid "Check Services" msgstr "" @@ -611,28 +778,43 @@ msgstr "" msgid "Check timeout after which the server is considered dead" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16943 #: src/tachyon/tabs/updates/initController.ts:930 msgid "Check update" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7565 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2671 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3095 #: src/tachyon/tabs/dashboard/initController.ts:1439 msgid "Check URL" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11277 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:155 msgid "Check YouTube" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7696 #: src/tachyon/tabs/dashboard/initController.ts:1620 msgid "Checking Connection..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15981 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:112 msgid "Checking for updates..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8883 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8947 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9128 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9189 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9272 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9353 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9437 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9525 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11444 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13436 #: src/tachyon/tabs/diagnostic/initController.ts:2017 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:14 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:15 @@ -646,6 +828,10 @@ msgstr "" msgid "Checking, please wait" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2171 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2242 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2547 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2602 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:328 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:426 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:810 @@ -658,21 +844,28 @@ msgstr "" msgid "Checking…" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5099 #: src/tachyon/tabs/diagnostic/helpers/getCheckTitle.ts:2 msgid "checks" msgstr "" -#: src/tachyon/tabs/diagnostic/helpers/getMeta.ts:26 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8853 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9331 #: src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:10 +#: src/tachyon/tabs/diagnostic/helpers/getMeta.ts:26 msgid "Checks failed" msgstr "" -#: src/tachyon/tabs/diagnostic/helpers/getMeta.ts:13 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8842 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9288 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9342 #: src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:23 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:43 +#: src/tachyon/tabs/diagnostic/helpers/getMeta.ts:13 msgid "Checks passed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8865 #: src/tachyon/tabs/diagnostic/checks/getDnsCheckPresentation.ts:27 msgid "Checks passed with manual DHCP" msgstr "" @@ -685,10 +878,19 @@ msgstr "" msgid "Choose Hosts File..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:234 +msgid "Choose whether to restrict the entire internet or only specific Tachyon routing sections." +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9224 msgid "Choose whether to route traffic to all destinations except selected countries (Exclude) or only to selected countries (Include)." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:246 +msgid "Choose which routing sections to apply this schedule to." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:227 #: src/validators/validateSubnet.ts:35 msgid "CIDR must be between 0 and 32 for IPv4 or 0 and 128 for IPv6" msgstr "" @@ -705,41 +907,93 @@ msgstr "" msgid "Clear" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12634 #: src/tachyon/tabs/diagnostic/initController.ts:1077 msgid "Clear DNS cache" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3298 +msgid "Client Address" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8718 msgid "Client Certificate" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3310 +msgid "Client DNS" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2896 +msgid "Client fingerprint" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8730 msgid "Client Key" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1728 +msgid "Client link" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1636 +msgid "Client link is not available yet" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1669 +msgid "Client link QR code" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3358 +msgid "Client Private Key" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3368 +msgid "Client Public Key" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3299 +msgid "Client VPN IP address (e.g. 10.0.0.2/32)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7438 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10014 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11327 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13038 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14584 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14624 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16226 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16261 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3660 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10239 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1803 #: src/partials/modal/renderModal.ts:263 -#: src/tachyon/tabs/diagnostic/initController.ts:1543 #: src/tachyon/tabs/dashboard/initController.ts:1263 #: src/tachyon/tabs/monitoring/initController.ts:884 #: src/tachyon/tabs/monitoring/initController.ts:934 +#: src/tachyon/tabs/diagnostic/initController.ts:1543 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:212 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:414 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:460 msgid "Close" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13915 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13916 #: src/tachyon/tabs/monitoring/render.ts:68 #: src/tachyon/tabs/monitoring/render.ts:69 msgid "Close all connections" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14553 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14554 #: src/tachyon/tabs/monitoring/initController.ts:851 #: src/tachyon/tabs/monitoring/initController.ts:852 msgid "Close connection" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13878 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14451 #: src/tachyon/tabs/monitoring/initController.ts:720 #: src/tachyon/tabs/monitoring/render.ts:29 msgid "Closed" @@ -769,6 +1023,7 @@ msgstr "" msgid "Community Lists" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6026 #: src/tachyon/services/core.service.ts:43 msgid "Component update available" msgstr "" @@ -777,10 +1032,19 @@ msgstr "" msgid "Component update check interval" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:537 +msgid "Components" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5674 #: src/tachyon/helpers/singBoxVariant.ts:60 msgid "compressed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3131 +msgid "Concurrency" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7233 msgid "Conditions" msgstr "" @@ -793,13 +1057,20 @@ msgstr "" msgid "Config Snapshots" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:370 +msgid "Configuration for Tachyon service" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:4758 msgid "Configure User-Agent in the item settings" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2388 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4927 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11522 #: src/tachyon/methods/custom/getDashboardSections.ts:1639 -#: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:141 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:618 +#: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:141 msgid "Conflict" msgstr "" @@ -811,10 +1082,12 @@ msgstr "" msgid "Connect through" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2547 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:817 msgid "Connected" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12794 #: src/tachyon/tabs/diagnostic/initController.ts:1266 msgid "Connected Devices" msgstr "" @@ -823,36 +1096,52 @@ msgstr "" msgid "Connection URL" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14676 #: src/tachyon/tabs/monitoring/initController.ts:998 msgid "Connections are unavailable" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11551 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:174 msgid "Connectivity probe failed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3417 +msgid "Cookie packet junk size (S3)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2947 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1623 #: src/helpers/copyToClipboard.ts:10 msgid "Copied" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10007 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1753 #: src/partials/modal/renderModal.ts:258 msgid "Copy" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16023 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:160 msgid "Copy log" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2293 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2294 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7370 #: src/tachyon/tabs/dashboard/initController.ts:1188 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:496 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:497 msgid "Copy proxy link" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13000 #: src/tachyon/tabs/diagnostic/initController.ts:1501 msgid "Copy Support Report" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9318 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:89 msgid "Could not compare FakeIP and control public IPs" msgstr "" @@ -861,6 +1150,7 @@ msgstr "" msgid "Country code (e.g. ru, us, de)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12951 #: src/tachyon/tabs/diagnostic/initController.ts:1442 msgid "Current Diagnosis" msgstr "" @@ -873,6 +1163,7 @@ msgstr "" msgid "Current section cannot download its own subscription" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2641 #: src/tachyon/tabs/dashboard/partials/renderWidget.ts:22 msgid "Currently unavailable" msgstr "" @@ -890,6 +1181,22 @@ msgstr "" msgid "Custom DNS Records (Hosts)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3442 +msgid "Custom header for cookie packet" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3448 +msgid "Custom header for data packet" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3430 +msgid "Custom header for handshake initiation" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3436 +msgid "Custom header for handshake response" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1652 msgid "Custom OpenAI-Compatible API" msgstr "" @@ -902,10 +1209,19 @@ msgstr "" msgid "Custom outbound configurations in JSON format" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:513 +msgid "Dashboard" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:1957 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:50 msgid "Dashboard currently unavailable" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:302 +msgid "Days of Week" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2199 msgid "Default (auto)" msgstr "" @@ -922,6 +1238,7 @@ msgstr "" msgid "Delay value cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1830 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:615 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:621 msgid "Delete" @@ -945,10 +1262,15 @@ msgstr "" msgid "Detects and drops STUN/TURN packets in nftables to prevent real IP leaks via WebRTC." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:321 #: src/validators/validateOutboundJson.ts:115 msgid "detour must be a non-empty string" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:133 +msgid "Device / IP" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9486 msgid "Device filter" msgstr "" @@ -965,6 +1287,7 @@ msgstr "" msgid "Device or IP" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12869 #: src/tachyon/tabs/diagnostic/initController.ts:1349 msgid "Device updated" msgstr "" @@ -973,18 +1296,29 @@ msgstr "" msgid "Devices listed here are always routed through the assigned section, regardless of global rules." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8867 #: src/tachyon/tabs/diagnostic/checks/getDnsCheckPresentation.ts:37 msgid "DHCP has DNS server" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8867 #: src/tachyon/tabs/diagnostic/checks/getDnsCheckPresentation.ts:36 msgid "DHCP is managed manually" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:501 +msgid "Diagnostics" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2706 +msgid "Direct" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8473 msgid "Direct (Default)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12857 #: src/tachyon/tabs/diagnostic/initController.ts:1336 msgid "Direct Bypass" msgstr "" @@ -993,10 +1327,12 @@ msgstr "" msgid "Direct connection" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12851 #: src/tachyon/tabs/diagnostic/initController.ts:1327 msgid "Direct WAN" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10147 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:92 msgid "Disable autostart" msgstr "" @@ -1009,6 +1345,10 @@ msgstr "" msgid "Disable the QUIC protocol to improve compatibility or fix issues with video streaming" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:197 +msgid "Disabled" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:6105 msgid "Disabling interception is incompatible with action=zapret2 because Tachyon sends matched traffic through NFQUEUE." msgstr "" @@ -1035,22 +1375,23 @@ msgstr "" msgid "DNS Failures Before Switching" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8925 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:75 msgid "DNS on router" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:833 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1823 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:833 msgid "DNS over HTTPS (DoH)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:835 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1825 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:835 msgid "DNS over QUIC (DoQ)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:834 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1824 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:834 msgid "DNS over TLS (DoT)" msgstr "" @@ -1068,8 +1409,8 @@ msgstr "" msgid "DNS protocol used by the resolver" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1025 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7366 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1025 msgid "DNS requests through section" msgstr "" @@ -1082,10 +1423,15 @@ msgstr "" msgid "DNS server" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:131 #: src/validators/validateDns.ts:8 msgid "DNS server address cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3311 +msgid "DNS server pushed to the client configuration" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2605 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7318 msgid "DNS server used by the resolver" @@ -1132,6 +1478,7 @@ msgstr "" msgid "DNS Unavailability Timeout" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11411 #: src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:26 msgid "Do not panic, everything can be fixed, just..." msgstr "" @@ -1160,18 +1507,25 @@ msgstr "" msgid "Do not test specified servers." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12422 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12442 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12450 #: src/tachyon/tabs/diagnostic/initController.ts:720 #: src/tachyon/tabs/diagnostic/initController.ts:762 #: src/tachyon/tabs/diagnostic/initController.ts:770 msgid "Doctor failed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12431 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12433 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12433 #: src/tachyon/tabs/diagnostic/initController.ts:736 #: src/tachyon/tabs/diagnostic/initController.ts:748 #: src/tachyon/tabs/diagnostic/initController.ts:749 msgid "Doctor repair" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9046 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:54 msgid "Does not resolve" msgstr "" @@ -1209,15 +1563,22 @@ msgstr "" msgid "Dont Touch My DHCP!" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7880 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7892 #: src/tachyon/tabs/dashboard/initController.ts:1842 #: src/tachyon/tabs/dashboard/initController.ts:1855 msgid "Downlink" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10002 #: src/partials/modal/renderModal.ts:253 msgid "Download" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1777 +msgid "Download .conf" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1458 msgid "Download component packages via the selected section" msgstr "" @@ -1254,16 +1615,23 @@ msgstr "" msgid "Download through" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14577 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14621 #: src/tachyon/tabs/monitoring/initController.ts:877 #: src/tachyon/tabs/monitoring/initController.ts:931 msgid "Downloaded" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:430 +msgid "Drag rows to change priority. The rule at the top is checked first." +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9523 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10227 msgid "DSCP marks (QoS)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:293 #: src/validators/validateOutboundJson.ts:75 msgid "Duplicate JSON outbound tag" msgstr "" @@ -1280,6 +1648,10 @@ msgstr "" msgid "e.g. google.com, 1.1.1.1, 443" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:130 +msgid "e.g. Kids Phone (Night YouTube)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8696 msgid "e.g. SHA256 — leave empty for default" msgstr "" @@ -1288,7 +1660,14 @@ msgstr "" msgid "Each entry must be \"proto\", \"proto:port\" or \"proto:port-port\" (tcp/udp), e.g. tcp:6881,udp:6881-6889" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1823 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:71 +msgid "Edit rule action" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:117 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7235 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2620 msgid "Enable" msgstr "" @@ -1308,10 +1687,15 @@ msgstr "" msgid "Enable Anomaly Detection" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2983 +msgid "Enable authentication" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1313 msgid "Enable automatic updates for remote lists and rule sets" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10157 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:102 msgid "Enable autostart" msgstr "" @@ -1324,6 +1708,7 @@ msgstr "" msgid "Enable Config Validation" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12642 #: src/tachyon/tabs/diagnostic/initController.ts:1085 msgid "Enable Direct WAN Bypass" msgstr "" @@ -1409,6 +1794,18 @@ msgstr "" msgid "Enables the background watchdog process to monitor services and auto-recover on failures." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:291 +msgid "End of the schedule interval (e.g. 08:00). Supports spans crossing midnight." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:290 +msgid "End Time (HH:MM)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2729 +msgid "Enter a complete sing-box inbound object" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:4010 msgid "Enter a complete sing-box outbound object" msgstr "" @@ -1463,6 +1860,10 @@ msgstr "" msgid "Error running trace:" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:98 +msgid "Every day" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2756 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2966 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3364 @@ -1515,6 +1916,11 @@ msgstr "" msgid "Excluded devices" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:57 +msgid "Expecting: %s" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2022 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:137 msgid "Expires" msgstr "" @@ -1531,24 +1937,32 @@ msgstr "" msgid "External nfqws2 config files bypass Tachyon queue management and explicit validation." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12729 #: src/tachyon/tabs/diagnostic/initController.ts:1192 msgid "Failed to apply fix" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14862 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14876 #: src/tachyon/tabs/monitoring/initController.ts:1265 #: src/tachyon/tabs/monitoring/initController.ts:1280 msgid "Failed to close connection" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14891 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14903 #: src/tachyon/tabs/monitoring/initController.ts:1299 #: src/tachyon/tabs/monitoring/initController.ts:1312 msgid "Failed to close connections" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12587 #: src/tachyon/tabs/diagnostic/initController.ts:964 msgid "Failed to copy report to clipboard" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2949 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1625 #: src/helpers/copyToClipboard.ts:12 msgid "Failed to copy!" msgstr "" @@ -1557,6 +1971,12 @@ msgstr "" msgid "Failed to delete snapshot" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3233 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3236 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16697 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16697 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16755 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16926 #: src/tachyon/methods/shell/index.ts:172 #: src/tachyon/methods/shell/index.ts:179 #: src/tachyon/tabs/updates/initController.ts:619 @@ -1566,6 +1986,7 @@ msgstr "" msgid "Failed to execute" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13188 #: src/tachyon/tabs/diagnostic/initController.ts:1720 msgid "Failed to generate bug report" msgstr "" @@ -1587,10 +2008,12 @@ msgstr "" msgid "Failed to parse WARP config:" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3592 #: src/tachyon/methods/shell/index.ts:646 msgid "Failed to read operation log" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11238 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:106 msgid "Failed to receive response from AI service." msgstr "" @@ -1599,6 +2022,8 @@ msgstr "" msgid "Failed to reset settings" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13028 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13111 #: src/tachyon/tabs/diagnostic/initController.ts:1533 #: src/tachyon/tabs/diagnostic/initController.ts:1627 msgid "Failed to restore native internet" @@ -1644,15 +2069,25 @@ msgstr "" msgid "Failed to stop watchdog" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6982 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6988 #: src/tachyon/tabs/dashboard/initController.ts:696 #: src/tachyon/tabs/dashboard/initController.ts:702 msgid "Failed to switch proxy" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12874 #: src/tachyon/tabs/diagnostic/initController.ts:1354 msgid "Failed to update device" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6691 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6691 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6705 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6737 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6740 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7638 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7641 #: src/tachyon/tabs/dashboard/initController.ts:308 #: src/tachyon/tabs/dashboard/initController.ts:309 #: src/tachyon/tabs/dashboard/initController.ts:328 @@ -1663,27 +2098,40 @@ msgstr "" msgid "Failed to update subscriptions" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9318 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:91 msgid "FakeIP and control checks use different public IPs" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9318 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:92 msgid "FakeIP and control checks use the same public IP" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9290 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:46 msgid "FakeIP works; public IP comparison is inconclusive" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3106 +msgid "FakeTLS host" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3188 +msgid "Fallback on unknown DC" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1748 msgid "Faster DNS health monitoring than the default cycle. Switches bootstrap DNS on failure." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7585 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3168 #: src/tachyon/tabs/dashboard/initController.ts:1460 msgid "Faster server search interval" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4249 #: src/tachyon/methods/custom/getDashboardSections.ts:654 msgid "Fastest" msgstr "" @@ -1696,27 +2144,34 @@ msgstr "" msgid "Finland (fi)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9110 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:136 msgid "Firewall WAN port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12723 #: src/tachyon/tabs/diagnostic/initController.ts:1186 msgid "Fix applied" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12628 #: src/tachyon/tabs/diagnostic/initController.ts:1071 msgid "Fix resolv.conf" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3594 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2338 msgid "Fix the highlighted fields and save again." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12431 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12719 #: src/tachyon/tabs/diagnostic/initController.ts:742 #: src/tachyon/tabs/diagnostic/initController.ts:1182 msgid "Fixed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12645 #: src/tachyon/tabs/diagnostic/initController.ts:1088 msgid "Flush Conntrack Table" msgstr "" @@ -1733,6 +2188,27 @@ msgstr "" msgid "France (fr)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:26 +msgid "Fri" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:16 +msgid "Friday" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3151 +msgid "Fronting IP" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3140 +msgid "Fronting port" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3161 +msgid "Fronting proxy protocol" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11280 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:158 msgid "Full System Diagnostic" msgstr "" @@ -1753,6 +2229,7 @@ msgstr "" msgid "Generate a random 16-character hexadecimal HWID" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10242 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:187 msgid "Generate bug report" msgstr "" @@ -1772,6 +2249,7 @@ msgstr "" msgid "Generate WARP Config" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9074 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:89 msgid "Generated inbound" msgstr "" @@ -1804,6 +2282,7 @@ msgstr "" msgid "GET endpoints are open on LAN. POST endpoints require Authorization: Bearer ." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10166 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:111 msgid "Get global check" msgstr "" @@ -1812,18 +2291,48 @@ msgstr "" msgid "Give the snapshot a name. It is saved with the current date and can be restored from this list later." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12401 #: src/tachyon/tabs/diagnostic/initController.ts:696 msgid "Global check" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2963 +msgid "gRPC service" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3216 +msgid "Handshake timeout" +msgstr "" + #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:583 msgid "Health Checks" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11160 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:14 msgid "Hello! I am Tachyon AI Assistant. How can I help you today? Ask me about domain blocks, diagnostics, or router settings." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3484 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3490 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3496 +msgid "Hex or binary junk payload" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3466 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3472 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3478 +msgid "Hex or binary payload" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3454 +msgid "Hex or binary payload for init" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3460 +msgid "Hex or binary payload for response" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2574 msgid "Hide cascade connection nodes" msgstr "" @@ -1868,10 +2377,12 @@ msgstr "" msgid "Hide URLTest group nodes" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10054 #: src/partials/modal/renderModal.ts:310 msgid "Hide values" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7572 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3132 #: src/tachyon/tabs/dashboard/initController.ts:1446 msgid "Higher-level check interval" @@ -1881,10 +2392,13 @@ msgstr "" msgid "Higher-priority DNS Check" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12975 #: src/tachyon/tabs/diagnostic/initController.ts:1470 msgid "History" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14567 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14617 #: src/tachyon/tabs/monitoring/initController.ts:867 #: src/tachyon/tabs/monitoring/initController.ts:927 msgid "Host" @@ -1935,10 +2449,15 @@ msgstr "" msgid "HTTP" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4990 #: src/tachyon/api.ts:27 msgid "HTTP error" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2956 +msgid "HTTP hosts" +msgstr "" + #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:688 msgid "HTTP REST API for external AI agents (Claude, GPT, Open-WebUI) served at /cgi-bin/tachyon-agent/" msgstr "" @@ -1947,7 +2466,9 @@ msgstr "" msgid "HWID" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7456 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2684 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3206 #: src/tachyon/tabs/dashboard/initController.ts:1291 msgid "Idle timeout" msgstr "" @@ -1983,6 +2504,18 @@ msgstr "" msgid "Import URLTest groups returned by this subscription provider" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2728 +msgid "Inbound JSON" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2067 +msgid "Inbound JSON cannot be empty" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2078 +msgid "Inbound JSON must be an object with a type field" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2739 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2948 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3344 @@ -2015,6 +2548,22 @@ msgstr "" msgid "Include servers" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1831 +msgid "Information" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3502 +msgid "Init handshake timeout" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3429 +msgid "Init packet header (H1)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3405 +msgid "Init packet junk size (S1)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8410 msgid "Init Packet Magic Header (S1)" msgstr "" @@ -2043,19 +2592,33 @@ msgstr "" msgid "Init Packet Payload (I5)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3453 +msgid "Init payload (I1)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3501 +msgid "Init timeout (Itime)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16216 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16952 #: src/tachyon/tabs/updates/initController.ts:944 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:403 msgid "Install" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17354 #: src/tachyon/tabs/updates/initController.ts:1438 msgid "Install another build:" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17234 #: src/tachyon/tabs/updates/initController.ts:1296 msgid "Installed build → Available build" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16494 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17242 #: src/tachyon/tabs/updates/initController.ts:341 #: src/tachyon/tabs/updates/initController.ts:1304 msgid "Installed version is newer than release" @@ -2073,6 +2636,8 @@ msgstr "" msgid "Interface monitoring for Bad WAN" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7458 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7590 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2698 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3184 #: src/tachyon/tabs/dashboard/initController.ts:1293 @@ -2088,6 +2653,7 @@ msgstr "" msgid "Interrupt connections when URLTest switches the selected server" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7454 #: src/tachyon/tabs/dashboard/initController.ts:1289 msgid "Interval" msgstr "" @@ -2096,89 +2662,113 @@ msgstr "" msgid "Invalid ByeDPI strategy" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:219 #: src/validators/validateSubnet.ts:25 msgid "Invalid CIDR prefix" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:148 #: src/validators/validateDns.ts:34 msgid "Invalid DNS server format. Examples: 8.8.8.8 or dns.example.com or dns.example.com/nicedns for DoH" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:138 #: src/validators/validateDns.ts:21 msgid "Invalid DNS server port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:76 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:80 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:5312 #: src/validators/validateDomain.ts:67 #: src/validators/validateDomain.ts:73 msgid "Invalid domain address" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:206 #: src/validators/validateSubnet.ts:10 msgid "Invalid format. Use an IP address or CIDR subnet" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:776 #: src/validators/validateHysteriaUrl.ts:104 msgid "Invalid HY2 URL: insecure must be 0 or 1" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:738 #: src/validators/validateHysteriaUrl.ts:51 msgid "Invalid HY2 URL: invalid host & port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:767 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:803 #: src/validators/validateHysteriaUrl.ts:90 #: src/validators/validateHysteriaUrl.ts:146 msgid "Invalid HY2 URL: invalid port number" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:724 #: src/validators/validateHysteriaUrl.ts:33 msgid "Invalid HY2 URL: missing credentials/server" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:743 #: src/validators/validateHysteriaUrl.ts:57 msgid "Invalid HY2 URL: missing host" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:732 #: src/validators/validateHysteriaUrl.ts:44 msgid "Invalid HY2 URL: missing host & port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:728 #: src/validators/validateHysteriaUrl.ts:39 msgid "Invalid HY2 URL: missing password" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:746 #: src/validators/validateHysteriaUrl.ts:61 msgid "Invalid HY2 URL: missing port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:714 #: src/validators/validateHysteriaUrl.ts:20 msgid "Invalid HY2 URL: must not contain spaces" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:708 #: src/validators/validateHysteriaUrl.ts:13 msgid "Invalid HY2 URL: must start with hysteria2:// or hy2://" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:789 #: src/validators/validateHysteriaUrl.ts:127 msgid "Invalid HY2 URL: obfs-password required when obfs is set" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:809 #: src/validators/validateHysteriaUrl.ts:153 msgid "Invalid HY2 URL: parsing failed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:797 #: src/validators/validateHysteriaUrl.ts:136 msgid "Invalid HY2 URL: sni cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:783 #: src/validators/validateHysteriaUrl.ts:116 msgid "Invalid HY2 URL: unsupported obfs type" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:29 #: src/validators/validateIp.ts:28 msgid "Invalid IP address" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:280 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2080 #: src/validators/validateOutboundJson.ts:58 msgid "Invalid JSON format" msgstr "" @@ -2187,10 +2777,12 @@ msgstr "" msgid "Invalid line: \"%s\". Use: domain ip or ip domain" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:194 #: src/validators/validatePath.ts:22 msgid "Invalid path format. Path must start with \"/\" and contain valid characters" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:400 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9103 #: src/validators/validateShadowsocksUrl.ts:91 msgid "Invalid port number. Must be between 1 and 65535" @@ -2204,169 +2796,217 @@ msgstr "" msgid "Invalid regular expression" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:354 #: src/validators/validateShadowsocksUrl.ts:38 msgid "Invalid Shadowsocks URL: decoded credentials must contain method:password" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:380 #: src/validators/validateShadowsocksUrl.ts:67 msgid "Invalid Shadowsocks URL: invalid server and port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:346 #: src/validators/validateShadowsocksUrl.ts:28 msgid "Invalid Shadowsocks URL: missing credentials" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:363 #: src/validators/validateShadowsocksUrl.ts:47 msgid "Invalid Shadowsocks URL: missing method and password separator \":\"" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:394 #: src/validators/validateShadowsocksUrl.ts:84 msgid "Invalid Shadowsocks URL: missing port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:387 #: src/validators/validateShadowsocksUrl.ts:75 msgid "Invalid Shadowsocks URL: missing server" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:373 #: src/validators/validateShadowsocksUrl.ts:59 msgid "Invalid Shadowsocks URL: missing server address" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:338 #: src/validators/validateShadowsocksUrl.ts:17 msgid "Invalid Shadowsocks URL: must not contain spaces" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:331 #: src/validators/validateShadowsocksUrl.ts:9 msgid "Invalid Shadowsocks URL: must start with ss://" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:406 #: src/validators/validateShadowsocksUrl.ts:97 msgid "Invalid Shadowsocks URL: parsing failed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:675 #: src/validators/validateSocksUrl.ts:49 msgid "Invalid SOCKS URL: invalid host and port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:691 #: src/validators/validateSocksUrl.ts:68 msgid "Invalid SOCKS URL: invalid port number" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:668 #: src/validators/validateSocksUrl.ts:41 msgid "Invalid SOCKS URL: missing host and port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:682 #: src/validators/validateSocksUrl.ts:57 msgid "Invalid SOCKS URL: missing hostname or IP" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:686 #: src/validators/validateSocksUrl.ts:62 msgid "Invalid SOCKS URL: missing port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:661 #: src/validators/validateSocksUrl.ts:33 msgid "Invalid SOCKS URL: missing username" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:650 #: src/validators/validateSocksUrl.ts:18 msgid "Invalid SOCKS URL: must not contain spaces" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:642 #: src/validators/validateSocksUrl.ts:9 msgid "Invalid SOCKS URL: must start with socks4://, socks4a://, or socks5://" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:695 #: src/validators/validateSocksUrl.ts:72 msgid "Invalid SOCKS URL: parsing failed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:47 +msgid "Invalid time format. Expected HH:MM (e.g. 22:00)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:595 #: src/validators/validateTrojanUrl.ts:16 msgid "Invalid Trojan URL: must not contain spaces" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:589 #: src/validators/validateTrojanUrl.ts:9 msgid "Invalid Trojan URL: must start with trojan://" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:631 #: src/validators/validateTrojanUrl.ts:61 msgid "Invalid Trojan URL: parsing failed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:892 #: src/validators/validateTuicUrl.ts:103 msgid "Invalid TUIC URL: congestion_control must be bbr, cubic, or new_reno" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:909 #: src/validators/validateTuicUrl.ts:128 msgid "Invalid TUIC URL: insecure must be 0 or 1" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:868 #: src/validators/validateTuicUrl.ts:71 msgid "Invalid TUIC URL: invalid host & port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:882 #: src/validators/validateTuicUrl.ts:88 msgid "Invalid TUIC URL: invalid port number" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:839 #: src/validators/validateTuicUrl.ts:35 msgid "Invalid TUIC URL: missing credentials/server" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:873 #: src/validators/validateTuicUrl.ts:77 msgid "Invalid TUIC URL: missing host" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:850 #: src/validators/validateTuicUrl.ts:49 msgid "Invalid TUIC URL: missing host & port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:876 #: src/validators/validateTuicUrl.ts:81 msgid "Invalid TUIC URL: missing port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:845 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:856 #: src/validators/validateTuicUrl.ts:43 #: src/validators/validateTuicUrl.ts:57 msgid "Invalid TUIC URL: missing UUID" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:830 #: src/validators/validateTuicUrl.ts:23 msgid "Invalid TUIC URL: must not contain spaces" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:824 #: src/validators/validateTuicUrl.ts:16 msgid "Invalid TUIC URL: must start with tuic://" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:929 #: src/validators/validateTuicUrl.ts:154 msgid "Invalid TUIC URL: parsing failed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:923 #: src/validators/validateTuicUrl.ts:147 msgid "Invalid TUIC URL: sni cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:901 #: src/validators/validateTuicUrl.ts:116 msgid "Invalid TUIC URL: udp_relay_mode must be native, quic, or qux" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:861 #: src/validators/validateTuicUrl.ts:63 msgid "Invalid TUIC URL: UUID must be a valid UUID v4 format" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:915 #: src/validators/validateTuicUrl.ts:138 msgid "Invalid TUIC URL: zero_rtt_handshake must be 0, 1, true, or false" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:157 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:172 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:174 #: src/validators/validateUrl.ts:9 #: src/validators/validateUrl.ts:35 #: src/validators/validateUrl.ts:38 msgid "Invalid URL format" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:521 #: src/validators/validateVlessUrl.ts:117 msgid "Invalid VLESS URL: parsing failed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:579 #: src/validators/validateVmessUrl.ts:68 msgid "Invalid VMess URL: parsing failed" msgstr "" @@ -2391,15 +3031,19 @@ msgstr "" msgid "Isolate BitTorrent traffic and force it direct to prevent VPN bans" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12431 #: src/tachyon/tabs/diagnostic/initController.ts:738 msgid "Issues" msgstr "" -#: src/tachyon/tabs/diagnostic/helpers/getMeta.ts:20 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8848 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9337 #: src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:17 +#: src/tachyon/tabs/diagnostic/helpers/getMeta.ts:20 msgid "Issues detected" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12745 #: src/tachyon/tabs/diagnostic/initController.ts:1211 msgid "Issues detected. Review the diagnosis above." msgstr "" @@ -2415,18 +3059,22 @@ msgstr "" msgid "JSON outbound" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:274 #: src/validators/validateOutboundJson.ts:50 msgid "JSON outbound cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:283 #: src/validators/validateOutboundJson.ts:62 msgid "JSON outbound must be a JSON object" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:289 #: src/validators/validateOutboundJson.ts:70 msgid "JSON outbound must contain a non-empty tag field" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:286 #: src/validators/validateOutboundJson.ts:66 msgid "JSON outbound must contain a non-empty type field" msgstr "" @@ -2443,10 +3091,50 @@ msgstr "" msgid "Junk Min Size (Jmin)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3387 +msgid "Junk packet count (Jc)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8407 msgid "Junk Packet Count (Jc)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3399 +msgid "Junk packet max size (Jmax)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3393 +msgid "Junk packet min size (Jmin)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3483 +msgid "Junk payload (J1)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3489 +msgid "Junk payload (J2)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3495 +msgid "Junk payload (J3)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3418 +msgid "Junk size for cookie packet" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3406 +msgid "Junk size for initiation packet" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3412 +msgid "Junk size for response packet" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3424 +msgid "Junk size for transport packet" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9259 msgid "Kazakhstan (kz)" msgstr "" @@ -2468,10 +3156,15 @@ msgstr "" msgid "Key" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2813 +msgid "Key path" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:4697 msgid "Keyword must not contain spaces or commas" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12961 #: src/tachyon/tabs/diagnostic/initController.ts:1454 msgid "LAN Devices" msgstr "" @@ -2480,6 +3173,8 @@ msgstr "" msgid "Language for AI Doctor diagnosis responses" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3478 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3497 #: src/tachyon/methods/shell/index.ts:501 #: src/tachyon/methods/shell/index.ts:522 msgid "Latency test failed" @@ -2489,11 +3184,14 @@ msgstr "" msgid "Latency test URL" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16496 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17240 #: src/tachyon/tabs/updates/initController.ts:344 #: src/tachyon/tabs/updates/initController.ts:1302 msgid "Latest version is installed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17242 #: src/tachyon/tabs/updates/initController.ts:1304 msgid "Latest version:" msgstr "" @@ -2518,6 +3216,15 @@ msgstr "" msgid "List Update Frequency" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2678 +msgid "Listen address" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2685 +msgid "Listen port" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9104 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:125 msgid "Listening port" msgstr "" @@ -2548,15 +3255,27 @@ msgstr "" msgid "Loaded!" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1788 +msgid "Loading client link..." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12764 #: src/tachyon/tabs/diagnostic/initController.ts:1233 msgid "Loading connected LAN devices..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13947 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14667 #: src/tachyon/tabs/monitoring/initController.ts:988 #: src/tachyon/tabs/monitoring/render.ts:101 msgid "Loading connections" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17116 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17129 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17139 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17149 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17159 #: src/tachyon/tabs/updates/initController.ts:1146 #: src/tachyon/tabs/updates/initController.ts:1161 #: src/tachyon/tabs/updates/initController.ts:1179 @@ -2577,10 +3296,12 @@ msgstr "" msgid "Log Level" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5676 #: src/tachyon/helpers/singBoxVariant.ts:62 msgid "lx" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8920 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:67 msgid "Main DNS" msgstr "" @@ -2589,6 +3310,9 @@ msgstr "" msgid "Main DNS server. If multiple servers are selected, a timeout switches to a backup." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2256 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7153 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7493 #: src/tachyon/tabs/dashboard/initController.ts:910 #: src/tachyon/tabs/dashboard/initController.ts:1342 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:448 @@ -2627,14 +3351,23 @@ msgstr "" msgid "Max reconnects per hour before alert (default 10)." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3400 +msgid "Maximum size of junk packets" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:934 msgid "Maximum time to wait for example.com to resolve during a DNS health check." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7904 #: src/tachyon/tabs/dashboard/initController.ts:1868 msgid "Memory Usage" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2970 +msgid "Method" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1773 msgid "Metrics Retention (hours)" msgstr "" @@ -2643,6 +3376,10 @@ msgstr "" msgid "Minimum latency difference in milliseconds that triggers switching to a faster server." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3394 +msgid "Minimum size of junk packets" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9161 msgid "Mixed Proxy Password" msgstr "" @@ -2655,14 +3392,30 @@ msgstr "" msgid "Mixed Proxy Username" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:168 +msgid "Mode" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1660 msgid "Model name to use. Leave empty to use default (gpt-4o-mini / claude-3-5-haiku / deepseek-chat / llama3:latest)." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:22 +msgid "Mon" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:12 +msgid "Monday" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1145 msgid "Monitored Interfaces" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:525 +msgid "Monitoring" +msgstr "" + #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:632 msgid "Monitoring & Analytics" msgstr "" @@ -2680,6 +3433,7 @@ msgid "Move up" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8384 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3318 msgid "MTU" msgstr "" @@ -2701,6 +3455,8 @@ msgstr "" msgid "Name shown in the priority level list" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13018 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13103 #: src/tachyon/tabs/diagnostic/initController.ts:1523 #: src/tachyon/tabs/diagnostic/initController.ts:1619 msgid "Native internet restored. Tachyon stopped." @@ -2727,15 +3483,20 @@ msgstr "" msgid "New domains:" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6024 #: src/tachyon/services/core.service.ts:38 msgid "New version %s is available for %s" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9405 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9491 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:100 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:97 msgid "NFQUEUE range is available" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9405 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9491 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:99 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:96 msgid "NFQUEUE range overlaps with another rule" @@ -2757,6 +3518,10 @@ msgstr "" msgid "NFQWS2 strategy cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7081 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7084 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7144 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7484 #: src/tachyon/tabs/dashboard/initController.ts:818 #: src/tachyon/tabs/dashboard/initController.ts:822 #: src/tachyon/tabs/dashboard/initController.ts:898 @@ -2764,14 +3529,17 @@ msgstr "" msgid "No" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2743 #: src/tachyon/tabs/dashboard/partials/renderConnections.ts:63 msgid "No active clients" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14686 #: src/tachyon/tabs/monitoring/initController.ts:1012 msgid "No active connections" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12775 #: src/tachyon/tabs/diagnostic/initController.ts:1245 msgid "No active DHCP clients found on local network." msgstr "" @@ -2781,10 +3549,12 @@ msgstr "" msgid "No active routing sections found." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14686 #: src/tachyon/tabs/monitoring/initController.ts:1013 msgid "No closed connections" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9030 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:32 msgid "No conflict detected" msgstr "" @@ -2793,10 +3563,12 @@ msgstr "" msgid "No Custom Rules Matched" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12558 #: src/tachyon/tabs/diagnostic/initController.ts:933 msgid "No DHCP clients detected" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12891 #: src/tachyon/tabs/diagnostic/initController.ts:1372 msgid "No diagnostic history available yet." msgstr "" @@ -2805,6 +3577,7 @@ msgstr "" msgid "No domains detected yet" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9150 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:187 msgid "No enabled server inbounds configured" msgstr "" @@ -2813,70 +3586,101 @@ msgstr "" msgid "No file selected" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12752 #: src/tachyon/tabs/diagnostic/initController.ts:1220 msgid "No issues detected. System is running normally." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12433 #: src/tachyon/tabs/diagnostic/initController.ts:749 msgid "No issues found" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9255 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:105 msgid "No other marking rules found" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9083 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:99 msgid "No public firewall port required" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9570 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:79 msgid "No rules use ByeDPI" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9395 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:79 msgid "No rules use Zapret" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9481 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:82 msgid "No rules use Zapret2" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:158 +msgid "No sections selected" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:545 msgid "No snapshots yet" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7386 #: src/tachyon/tabs/dashboard/initController.ts:1207 msgid "Node list is empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7225 #: src/tachyon/tabs/dashboard/initController.ts:1006 msgid "Nodes" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12555 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:449 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2743 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3035 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3044 #: src/tachyon/tabs/diagnostic/initController.ts:924 msgid "None" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2388 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4927 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9039 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11533 #: src/tachyon/methods/custom/getDashboardSections.ts:1642 +#: src/tachyon/tabs/dashboard/partials/renderSections.ts:621 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:46 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:152 -#: src/tachyon/tabs/dashboard/partials/renderSections.ts:621 msgid "Not configured" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2547 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:813 msgid "Not connected" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9060 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9160 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:70 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:199 msgid "Not detected" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10406 #: src/tachyon/tabs/diagnostic/partials/renderCheckSection.ts:193 msgid "Not implement yet" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5661 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5666 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17139 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17149 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17159 #: src/tachyon/helpers/singBoxVariant.ts:38 #: src/tachyon/helpers/singBoxVariant.ts:46 #: src/tachyon/tabs/updates/initController.ts:1182 @@ -2885,14 +3689,20 @@ msgstr "" msgid "Not installed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9053 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:62 msgid "Not public" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9111 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:139 msgid "Not required for this listen address" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11484 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11503 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11508 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11556 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:91 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:118 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:124 @@ -2900,6 +3710,11 @@ msgstr "" msgid "Not responding" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5263 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11962 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12131 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12177 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12239 #: src/tachyon/tabs/diagnostic/diagnostic.store.ts:140 #: src/tachyon/tabs/diagnostic/initController.ts:123 #: src/tachyon/tabs/diagnostic/initController.ts:353 @@ -2948,6 +3763,18 @@ msgstr "" msgid "Number of consecutive successful checks required before returning to a higher-priority DNS server." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3388 +msgid "Number of junk packets before handshake (1-10)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3043 +msgid "Obfuscation" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3066 +msgid "Obfuscation password" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1650 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:820 msgid "Ollama (Local PC / Server)" @@ -2991,6 +3818,8 @@ msgstr "" msgid "Only the specified servers." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17217 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17254 #: src/tachyon/tabs/updates/initController.ts:1278 #: src/tachyon/tabs/updates/initController.ts:1317 msgid "Open" @@ -3000,35 +3829,46 @@ msgstr "" msgid "Open priority settings and enter a display name" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11416 #: src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:31 msgid "Open Project Page" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16151 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:323 msgid "Operation completed successfully!" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16257 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:455 msgid "Operation failed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15979 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16034 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:110 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:172 msgid "Operation in progress..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16020 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:157 msgid "Operation log" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3592 #: src/tachyon/methods/shell/index.ts:645 msgid "Operation log is not available" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16016 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:152 msgid "Operation started. Waiting for log output..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:1066 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3458 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3526 #: src/helpers/withTimeout.ts:7 #: src/tachyon/methods/shell/index.ts:471 #: src/tachyon/methods/shell/index.ts:559 @@ -3039,10 +3879,12 @@ msgstr "" msgid "Optimization" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12647 #: src/tachyon/tabs/diagnostic/initController.ts:1090 msgid "Optimize AWG MTU" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12639 #: src/tachyon/tabs/diagnostic/initController.ts:1082 msgid "Optimize RAM memory" msgstr "" @@ -3076,6 +3918,7 @@ msgstr "" msgid "Or paste hosts file content:" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:318 #: src/validators/validateOutboundJson.ts:111 msgid "outbounds must be a non-empty array of strings" msgstr "" @@ -3100,12 +3943,21 @@ msgstr "" msgid "P2P Leak Protection" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3125 +msgid "Padding" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:464 +msgid "Parental Control" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7637 msgid "Parsed records:" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8492 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8580 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3006 msgid "Password" msgstr "" @@ -3118,6 +3970,7 @@ msgstr "" msgid "Paste content or upload a file to preview imported DNS records." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:182 #: src/validators/validatePath.ts:7 msgid "Path cannot be empty" msgstr "" @@ -3134,12 +3987,27 @@ msgstr "" msgid "Path must end with cache.db" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13927 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13928 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14462 #: src/tachyon/tabs/monitoring/initController.ts:737 #: src/tachyon/tabs/monitoring/render.ts:80 #: src/tachyon/tabs/monitoring/render.ts:81 msgid "Pause updates" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3465 +msgid "Payload (I3)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3471 +msgid "Payload (I4)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3477 +msgid "Payload (I5)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8344 msgid "Peer Public Key" msgstr "" @@ -3156,6 +4024,8 @@ msgstr "" msgid "PEM-encoded client private key" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5195 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:206 #: src/tachyon/tabs/diagnostic/diagnostic.store.ts:63 msgid "Pending" msgstr "" @@ -3174,6 +4044,7 @@ msgid "Periodically checks if the proxy is responding. Restarts Tachyon after co msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8391 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3328 msgid "Persistent Keepalive" msgstr "" @@ -3202,6 +4073,7 @@ msgstr "" msgid "Port cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9019 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:19 msgid "Port conflict" msgstr "" @@ -3211,6 +4083,7 @@ msgid "Port for the local mixed proxy of this section" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:5468 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1899 msgid "Port must be between 1 and 65535" msgstr "" @@ -3239,6 +4112,10 @@ msgstr "" msgid "Pre-shared key" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3378 +msgid "Pre-shared Key (PSK)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1005 msgid "Prefer IPv4" msgstr "" @@ -3247,6 +4124,10 @@ msgstr "" msgid "Prefer IPv6" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3168 +msgid "Preferred IP" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2546 msgid "Prefix text" msgstr "" @@ -3264,12 +4145,16 @@ msgstr "" msgid "Priority" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2325 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2326 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7608 #: src/tachyon/tabs/dashboard/initController.ts:1490 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:534 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:535 msgid "Priority details" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7558 #: src/tachyon/tabs/dashboard/initController.ts:1427 msgid "Priority details are unavailable" msgstr "" @@ -3299,9 +4184,12 @@ msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2039 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8672 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2626 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2660 msgid "Protocol" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12851 #: src/tachyon/tabs/diagnostic/initController.ts:1328 msgid "Proxy / DPI" msgstr "" @@ -3318,6 +4206,7 @@ msgstr "" msgid "Proxy Health Check URL" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7077 #: src/tachyon/tabs/dashboard/initController.ts:813 msgid "Proxy link is unavailable" msgstr "" @@ -3334,10 +4223,16 @@ msgstr "" msgid "PSK" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9034 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2692 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:40 msgid "Public host" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1671 +msgid "QR code is too large" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9536 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9555 msgid "QUIC (HTTP/3)" @@ -3352,14 +4247,45 @@ msgstr "" msgid "Read error" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2831 +msgid "Reality fake site" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2842 +msgid "Reality fake site port" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2885 +msgid "Reality max time difference" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2853 +msgid "Reality private key" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2860 +msgid "Reality public key" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2866 +msgid "Reality short ID" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2191 +msgid "Reality short ID must contain 1-8 hex digits" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12626 #: src/tachyon/tabs/diagnostic/initController.ts:1069 msgid "Rebuild firewall rules" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17236 #: src/tachyon/tabs/updates/initController.ts:1298 msgid "Rebuilt release" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12696 #: src/tachyon/tabs/diagnostic/initController.ts:1153 msgid "Recommended Quick Fixes:" msgstr "" @@ -3368,6 +4294,7 @@ msgstr "" msgid "Reconnect Threshold" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12632 #: src/tachyon/tabs/diagnostic/initController.ts:1075 msgid "Reconnect WAN" msgstr "" @@ -3380,14 +4307,17 @@ msgstr "" msgid "Records: %d" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2023 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:138 msgid "Refill" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12798 #: src/tachyon/tabs/diagnostic/initController.ts:1270 msgid "Refresh" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12779 #: src/tachyon/tabs/diagnostic/initController.ts:1249 msgid "Refresh Device List" msgstr "" @@ -3400,14 +4330,17 @@ msgstr "" msgid "Regular expression must not contain spaces or commas" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17033 #: src/tachyon/tabs/updates/initController.ts:1058 msgid "Reinstall" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16171 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:348 msgid "Reload now" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16195 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:377 msgid "Reloading..." msgstr "" @@ -3416,10 +4349,12 @@ msgstr "" msgid "Remote Hosts Lists" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16151 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:322 msgid "Removal completed successfully!" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17001 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7927 #: src/tachyon/tabs/updates/initController.ts:1014 msgid "Remove" @@ -3437,6 +4372,7 @@ msgstr "" msgid "Remove the specified servers from this level." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15983 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:114 msgid "Removing" msgstr "" @@ -3449,6 +4385,7 @@ msgstr "" msgid "Reset" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12646 #: src/tachyon/tabs/diagnostic/initController.ts:1089 msgid "Reset Bootstrap DNS" msgstr "" @@ -3467,6 +4404,7 @@ msgstr "" msgid "Resolve domain names before routing so sing-box can use real destination IPs." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12633 #: src/tachyon/tabs/diagnostic/initController.ts:1076 msgid "Resolve gateway" msgstr "" @@ -3491,6 +4429,14 @@ msgstr "" msgid "Resource selection by IP or CIDR inside nfqws2 is not supported here; sing-box selects resources before NFQUEUE." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3435 +msgid "Response packet header (H2)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3411 +msgid "Response packet junk size (S2)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8411 msgid "Response Packet Magic Header (S2)" msgstr "" @@ -3499,30 +4445,41 @@ msgstr "" msgid "Response Packet Magic Header (S4)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3459 +msgid "Response payload (I2)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12627 #: src/tachyon/tabs/diagnostic/initController.ts:1070 msgid "Restart dnsmasq" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12636 #: src/tachyon/tabs/diagnostic/initController.ts:1079 msgid "Restart firewall" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12637 #: src/tachyon/tabs/diagnostic/initController.ts:1080 msgid "Restart network" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12630 #: src/tachyon/tabs/diagnostic/initController.ts:1073 msgid "Restart sing-box DNS" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10117 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:62 msgid "Restart Tachyon" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12638 #: src/tachyon/tabs/diagnostic/initController.ts:1081 msgid "Restart Zapret/ByeDPI" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2444 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:686 msgid "Restarts" msgstr "" @@ -3532,16 +4489,22 @@ msgstr "" msgid "Restore" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12631 #: src/tachyon/tabs/diagnostic/initController.ts:1074 msgid "Restore config backup" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10195 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13068 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13091 #: src/tachyon/tabs/diagnostic/initController.ts:1579 #: src/tachyon/tabs/diagnostic/initController.ts:1603 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:140 msgid "Restore Native Internet" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12643 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13005 #: src/tachyon/tabs/diagnostic/initController.ts:1086 #: src/tachyon/tabs/diagnostic/initController.ts:1506 msgid "Restore Native Internet (Stop Tachyon)" @@ -3555,15 +4518,20 @@ msgstr "" msgid "Restores the Tachyon factory defaults: all rules, subscriptions, custom DNS servers and other options will be lost." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13008 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13095 #: src/tachyon/tabs/diagnostic/initController.ts:1509 #: src/tachyon/tabs/diagnostic/initController.ts:1607 msgid "Restoring native direct internet (stopping Tachyon)..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14462 #: src/tachyon/tabs/monitoring/initController.ts:737 msgid "Resume updates" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14571 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14619 #: src/tachyon/tabs/monitoring/initController.ts:871 #: src/tachyon/tabs/monitoring/initController.ts:929 msgid "Route" @@ -3581,24 +4549,44 @@ msgstr "" msgid "Route requests to this DNS server through another section." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12857 #: src/tachyon/tabs/diagnostic/initController.ts:1335 msgid "Route via Proxy" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2704 +msgid "Routing mode" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10026 msgid "Routing Rule Tracer" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9087 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9096 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9115 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:103 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:114 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:144 msgid "Routing rules" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2713 +msgid "Routing section" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10092 msgid "Rule" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:124 +msgid "Rule Name" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:128 +msgid "Rule name is required" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7157 msgid "Rule set must be an HTTP(S) URL or a local .srs / .json path" msgstr "" @@ -3616,48 +4604,66 @@ msgstr "" msgid "Rule Sets (.srs / .json)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2705 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:104 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:110 +msgid "Rules" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9230 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:79 msgid "Rules mangle counters" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9225 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:74 msgid "Rules mangle exist" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9240 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:89 msgid "Rules mangle output counters" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9235 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:84 msgid "Rules mangle output exist" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9250 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:99 msgid "Rules proxy counters" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9245 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:94 msgid "Rules proxy exist" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10185 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:130 msgid "Run AI Doctor" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10417 #: src/tachyon/tabs/diagnostic/partials/renderRunAction.ts:17 msgid "Run Diagnostic" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10175 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:120 msgid "Run doctor repair" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2388 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4927 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11516 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:301 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1954 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1955 #: src/tachyon/methods/custom/getDashboardSections.ts:1637 -#: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:135 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:616 +#: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:135 msgid "Running" msgstr "" @@ -3665,8 +4671,16 @@ msgstr "" msgid "Russia (ru)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:672 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:27 +msgid "Sat" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:17 +msgid "Saturday" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3669 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:672 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:1159 msgid "Save" msgstr "" @@ -3695,10 +4709,23 @@ msgstr "" msgid "Saving…" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:180 +msgid "Schedule" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:470 +msgid "Schedule Rule" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13904 #: src/tachyon/tabs/monitoring/render.ts:57 msgid "Search" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3082 +msgid "Secret" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1210 msgid "Secret key for authenticating remote access to YACD when WAN access is enabled." msgstr "" @@ -3711,6 +4738,10 @@ msgstr "" msgid "Secret token for WRITE requests" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:435 +msgid "Section" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10216 msgid "Section action" msgstr "" @@ -3727,10 +4758,16 @@ msgstr "" msgid "Section test order (checked = active, drag rows with △▽):" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:429 +msgid "Sections" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2051 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2740 msgid "Security" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7366 #: src/tachyon/tabs/dashboard/initController.ts:1181 msgid "Select" msgstr "" @@ -3751,8 +4788,8 @@ msgstr "" msgid "Select a predefined domain list" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:87 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7376 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:87 msgid "Select a section" msgstr "" @@ -3764,6 +4801,10 @@ msgstr "" msgid "Select a transit section" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:303 +msgid "Select active days. If none selected, the rule applies every day." +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1643 msgid "Select AI LLM provider for diagnostics" msgstr "" @@ -3788,6 +4829,10 @@ msgstr "" msgid "Select DNS protocol to use" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:216 +msgid "Select LAN devices to apply this schedule to, or enter IP addresses manually." +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8828 msgid "Select network interface for VPN connection" msgstr "" @@ -3812,6 +4857,11 @@ msgstr "" msgid "Select path for sing-box config file. Change this ONLY if you know what you are doing" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:245 +msgid "Select Sections" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7576 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3146 #: src/tachyon/tabs/dashboard/initController.ts:1450 msgid "Select the fastest node" @@ -3833,15 +4883,27 @@ msgstr "" msgid "Select the WAN interfaces to be monitored" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:267 +msgid "Select whether to disable the target during the schedule or enable it ONLY during the schedule." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7450 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7562 #: src/tachyon/tabs/dashboard/initController.ts:1285 #: src/tachyon/tabs/dashboard/initController.ts:1436 msgid "Selected" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2707 +msgid "Selected section" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:298 #: src/validators/validateOutboundJson.ts:85 msgid "Selector and URLTest outbounds must contain a non-empty outbounds array" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11205 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:67 msgid "Send" msgstr "" @@ -3870,12 +4932,17 @@ msgstr "" msgid "Send a Telegram notification when proxy subscriptions are successfully updated." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:452 +msgid "Server" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8355 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8480 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8523 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8554 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8589 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8659 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3286 msgid "Server Address" msgstr "" @@ -3892,14 +4959,29 @@ msgstr "" msgid "Server group for priority failover" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1792 +msgid "Server information" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1681 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2637 +msgid "Server name" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2769 +msgid "Server name / SNI" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8504 msgid "Server Name Indication — leave empty to use server address" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:306 #: src/validators/validateOutboundJson.ts:94 msgid "Server outbound must contain a non-empty server field" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:311 #: src/validators/validateOutboundJson.ts:100 msgid "Server outbound must contain a numeric server_port from 1 to 65535" msgstr "" @@ -3913,18 +4995,39 @@ msgstr "" msgid "Server Port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3339 +msgid "Server Private Key" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3349 +msgid "Server Public Key" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11261 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:135 msgid "Server unavailable" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3287 +msgid "Server VPN IP address and subnet (e.g. 10.0.0.1/24)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:315 #: src/validators/validateOutboundJson.ts:107 msgid "server_port must be a number from 1 to 65535" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:446 +msgid "Servers" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3320 msgid "Servers on dashboard" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3417 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3436 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12323 #: src/tachyon/methods/shell/index.ts:422 #: src/tachyon/methods/shell/index.ts:443 #: src/tachyon/tabs/diagnostic/initController.ts:604 @@ -3939,20 +5042,24 @@ msgstr "" msgid "Services & Access" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16192 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:374 msgid "Services are online and ready! Reloading page..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7913 #: src/tachyon/tabs/dashboard/initController.ts:1878 msgid "Services info" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16205 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:390 msgid "Services restarted. Click to reload page." msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1152 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7232 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:478 msgid "Settings" msgstr "" @@ -3992,6 +5099,8 @@ msgstr "" msgid "Show servers whose names match the expression." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10233 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13132 #: src/tachyon/tabs/diagnostic/initController.ts:1653 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:178 msgid "Show sing-box config" @@ -4001,34 +5110,42 @@ msgstr "" msgid "Show subscription metadata for this source on the dashboard" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8991 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:77 msgid "Sing-box autostart disabled" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9307 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:69 msgid "Sing-box FakeIP DNS does not work" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9307 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:68 msgid "Sing-box FakeIP DNS works" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8976 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:62 msgid "Sing-box installed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9001 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:87 msgid "Sing-box listening ports" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8996 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:82 msgid "Sing-box process running" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8986 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:72 msgid "Sing-box service exist" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8981 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:67 msgid "Sing-box version is compatible (newer than 1.12.4)" msgstr "" @@ -4085,6 +5202,8 @@ msgstr "" msgid "Sorts servers in this section by lowest latency in the dashboard." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14583 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14623 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10099 #: src/tachyon/tabs/monitoring/initController.ts:883 #: src/tachyon/tabs/monitoring/initController.ts:933 @@ -4099,51 +5218,75 @@ msgstr "" msgid "Source Network Interface" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:239 +msgid "Specific Sections (Select sections below)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2026 +msgid "Specify a file path" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2037 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2049 +msgid "Specify different files" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9541 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9560 msgid "SSH" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9585 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:122 msgid "Standalone ByeDPI autostart is enabled" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9585 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:119 msgid "Standalone ByeDPI is active together with Tachyon ByeDPI rules" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9585 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:120 msgid "Standalone ByeDPI service is active" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9585 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:123 msgid "Standalone ByeDPI service is inactive" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9415 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:111 msgid "Standalone Zapret is active together with Tachyon Zapret rules" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9415 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:112 msgid "Standalone Zapret service is active" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9415 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:113 msgid "Standalone Zapret service is inactive" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9503 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:123 msgid "Standalone Zapret2 autostart is enabled" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9501 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:118 msgid "Standalone Zapret2 is active together with Tachyon Zapret2 rules" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9503 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:121 msgid "Standalone Zapret2 service is active" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9503 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:124 msgid "Standalone Zapret2 service is inactive" msgstr "" @@ -4156,14 +5299,21 @@ msgstr "" msgid "Start bot" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12625 #: src/tachyon/tabs/diagnostic/initController.ts:1068 msgid "Start sing-box" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10137 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:82 msgid "Start Tachyon" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:278 +msgid "Start Time (HH:MM)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12629 #: src/tachyon/tabs/diagnostic/initController.ts:1072 msgid "Start watchdog" msgstr "" @@ -4177,6 +5327,8 @@ msgstr "" msgid "Starting…" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2427 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:191 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:448 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:668 msgid "Status" @@ -4194,15 +5346,19 @@ msgstr "" msgid "Stop checking when URLTest group is not used. Use sing-box duration format like 1d, 12h or 30m." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10127 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:72 msgid "Stop Tachyon" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2388 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4927 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11528 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:307 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1960 #: src/tachyon/methods/custom/getDashboardSections.ts:1641 -#: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:147 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:620 +#: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:147 msgid "Stopped" msgstr "" @@ -4232,10 +5388,13 @@ msgstr "" msgid "Subscription auto update" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2035 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:152 msgid "Subscription info:" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3783 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3801 #: src/tachyon/methods/shell/index.ts:930 #: src/tachyon/methods/shell/index.ts:950 msgid "Subscription update failed" @@ -4253,6 +5412,7 @@ msgstr "" msgid "Subscription URL settings" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6710 #: src/tachyon/tabs/dashboard/initController.ts:334 msgid "Subscriptions updated" msgstr "" @@ -4265,34 +5425,49 @@ msgstr "" msgid "Successfully imported %d DNS record(s)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:28 +msgid "Sun" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:18 +msgid "Sunday" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9253 msgid "Sweden (se)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12640 #: src/tachyon/tabs/diagnostic/initController.ts:1083 msgid "Switch DNS to DoH" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7426 #: src/tachyon/tabs/dashboard/initController.ts:1250 msgid "Switch to auto-selection" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12644 #: src/tachyon/tabs/diagnostic/initController.ts:1087 msgid "Sync System Time (NTP)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7901 #: src/tachyon/tabs/dashboard/initController.ts:1865 msgid "System info" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11346 #: src/tachyon/tabs/diagnostic/partials/renderSystemInfo.ts:24 msgid "System information" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9220 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:69 msgid "Table exist" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6034 #: src/tachyon/services/core.service.ts:52 msgid "Tachyon Error" msgstr "" @@ -4313,14 +5488,21 @@ msgstr "" msgid "Tachyon manages the nfqws2 process lifecycle itself, so daemon mode is not allowed here." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14657 #: src/tachyon/tabs/monitoring/initController.ts:977 msgid "Tachyon service is stopped. Start the service to display connections." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2833 #: src/tachyon/tabs/dashboard/render.ts:17 msgid "Tachyon service is stopped. Start the service to display the dashboard." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:369 +msgid "Tachyon Settings" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3691 #: src/tachyon/methods/shell/index.ts:800 msgid "Tachyon update did not complete within the timeout" msgstr "" @@ -4329,54 +5511,96 @@ msgstr "" msgid "Tachyon will not modify your DHCP configuration" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9575 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:91 msgid "Tachyon-managed ciadpi runtime has restarted" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9575 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:94 msgid "Tachyon-managed ciadpi runtime is not ready" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9575 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:97 msgid "Tachyon-managed ciadpi runtime is not running" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9575 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:93 msgid "Tachyon-managed ciadpi runtime is ready" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9400 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:87 msgid "Tachyon-managed nfqws runtime is not ready" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9400 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:90 msgid "Tachyon-managed nfqws runtime is not running" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9400 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:86 msgid "Tachyon-managed nfqws runtime is ready" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9486 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:90 msgid "Tachyon-managed nfqws2 runtime is not ready" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9486 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:93 msgid "Tachyon-managed nfqws2 runtime is not running" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9486 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:89 msgid "Tachyon-managed nfqws2 runtime is ready" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3224 +msgid "Tailscale auth key" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3233 +msgid "Tailscale control URL" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9082 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:98 msgid "Tailscale endpoint" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3241 +msgid "Tailscale hostname" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:144 +msgid "Target" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:215 +msgid "Target Devices (IP / Hostname)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:233 +msgid "Target Scope" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:490 +msgid "Telegram Bot" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2055 msgid "Telegram Bot Token" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2107 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2111 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2609 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:247 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:255 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:895 @@ -4407,6 +5631,7 @@ msgstr "" msgid "Test servers whose names match the expression." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7453 #: src/tachyon/tabs/dashboard/initController.ts:1288 msgid "Testing URL" msgstr "" @@ -4425,27 +5650,38 @@ msgstr "" msgid "The rule applies to the domain and all its subdomains. Use full:, keyword:, or regex: prefixes for exact match, keyword match, or regular expression." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9570 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:78 msgid "There are rules using ByeDPI" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9395 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:78 msgid "There are rules using Zapret" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9481 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:81 msgid "There are rules using Zapret2" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11225 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:91 msgid "Thinking..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13073 #: src/tachyon/tabs/diagnostic/initController.ts:1584 msgid "This action will stop Tachyon, restore standard dnsmasq/DNS, remove all proxy/anti-censorship firewall rules and restore direct Internet connection through your ISP." msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10283 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1906 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1925 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1930 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2020 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2182 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3029 msgid "This field is required" msgstr "" @@ -4487,6 +5723,16 @@ msgstr "" msgid "This will replace the current Tachyon settings with the snapshot" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:25 +msgid "Thu" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:15 +msgid "Thursday" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14574 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14620 #: src/tachyon/tabs/monitoring/initController.ts:874 #: src/tachyon/tabs/monitoring/initController.ts:930 msgid "Time" @@ -4496,6 +5742,15 @@ msgstr "" msgid "Time in seconds for DNS record caching (default: 60)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:43 +msgid "Time is required (e.g. 22:00)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3198 +msgid "Time skew tolerance" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5678 #: src/tachyon/helpers/singBoxVariant.ts:64 msgid "tiny" msgstr "" @@ -4517,6 +5772,7 @@ msgstr "" msgid "Token is required when the bot is enabled" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7455 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2657 #: src/tachyon/tabs/dashboard/initController.ts:1290 msgid "Tolerance" @@ -4538,6 +5794,8 @@ msgstr "" msgid "Tracing routing rules..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2019 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7877 #: src/tachyon/tabs/dashboard/initController.ts:1839 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:133 msgid "Traffic" @@ -4555,6 +5813,7 @@ msgstr "" msgid "Traffic of specified protocols (e.g. BitTorrent, QUIC, STUN) will bypass this section." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7889 #: src/tachyon/tabs/dashboard/initController.ts:1852 msgid "Traffic Total" msgstr "" @@ -4567,6 +5826,7 @@ msgstr "" msgid "Traffic will go through the default route (Direct/Default)." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16900 #: src/tachyon/tabs/updates/initController.ts:877 msgid "Transient connection error" msgstr "" @@ -4577,9 +5837,31 @@ msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2045 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8566 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2907 msgid "Transport" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2931 +msgid "Transport host" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3447 +msgid "Transport packet header (H4)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3423 +msgid "Transport packet junk size (S4)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2915 +msgid "Transport path" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2103 +msgid "Transport path must start with /" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11410 #: src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:25 msgid "Troubleshooting" msgstr "" @@ -4596,10 +5878,21 @@ msgstr "" msgid "TTL value cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:23 +msgid "Tue" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:13 +msgid "Tuesday" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9254 msgid "Turkey (tr)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14568 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14618 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1696 #: src/tachyon/tabs/monitoring/initController.ts:868 #: src/tachyon/tabs/monitoring/initController.ts:928 msgid "Type" @@ -4627,11 +5920,16 @@ msgstr "" msgid "Unable to validate the NFQWS2 strategy through the backend parser." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7570 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3120 #: src/tachyon/tabs/dashboard/initController.ts:1444 msgid "Unavailability timeout" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3441 +msgid "Underload packet header (H3)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8414 msgid "Underload Packet Magic Header (H1)" msgstr "" @@ -4658,18 +5956,25 @@ msgstr "" msgid "Unexpected standalone token. Use explicit flags such as --name or --name=value." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9575 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:96 msgid "Unexpected Tachyon-managed ciadpi runtime is running" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9400 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:89 msgid "Unexpected Tachyon-managed nfqws runtime is running" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9486 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:92 msgid "Unexpected Tachyon-managed nfqws2 runtime is running" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:57 +msgid "unique UCI identifier" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9250 msgid "United Kingdom (gb)" msgstr "" @@ -4678,6 +5983,18 @@ msgstr "" msgid "United States (us)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5661 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9024 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9605 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9607 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9608 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9609 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9616 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9618 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9620 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9623 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9624 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16523 #: src/tachyon/helpers/singBoxVariant.ts:37 #: src/tachyon/services/systemInfo.service.ts:10 #: src/tachyon/services/systemInfo.service.ts:12 @@ -4693,6 +6010,7 @@ msgstr "" msgid "unknown" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4927 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:328 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1977 #: src/tachyon/methods/custom/getDashboardSections.ts:1643 @@ -4709,6 +6027,11 @@ msgstr "" msgid "Unknown country" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5001 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12422 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12441 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12508 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13049 #: src/tachyon/api.ts:40 #: src/tachyon/tabs/diagnostic/initController.ts:720 #: src/tachyon/tabs/diagnostic/initController.ts:761 @@ -4725,34 +6048,48 @@ msgstr "" msgid "Unknown NFQWS2 flag." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:212 #: src/validators/validateSubnet.ts:17 msgid "Unspecified IP address is not allowed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2464 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:710 msgid "Unstable" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2216 +msgid "Unsupported security mode for this protocol" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:684 msgid "Up to 10 snapshots are kept; the oldest ones are removed automatically." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16952 #: src/tachyon/tabs/updates/initController.ts:944 msgid "Update" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16491 #: src/tachyon/tabs/updates/initController.ts:337 msgid "Update is available" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17224 #: src/tachyon/tabs/updates/initController.ts:1285 msgid "Update is available for current release" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17205 #: src/tachyon/tabs/updates/initController.ts:1264 msgid "Update is available:" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2090 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2101 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2101 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12635 #: src/tachyon/tabs/diagnostic/initController.ts:1078 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:224 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:237 @@ -4772,28 +6109,36 @@ msgstr "" msgid "Updates & Downloads" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15985 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:116 msgid "Updating" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12860 #: src/tachyon/tabs/diagnostic/initController.ts:1339 msgid "Updating device routing mode..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7879 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7891 #: src/tachyon/tabs/dashboard/initController.ts:1841 #: src/tachyon/tabs/dashboard/initController.ts:1854 msgid "Uplink" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14580 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14622 #: src/tachyon/tabs/monitoring/initController.ts:880 #: src/tachyon/tabs/monitoring/initController.ts:932 msgid "Uploaded" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:959 #: src/validators/validateProxyUrl.ts:47 msgid "URL must start with vless://, vmess://, ss://, trojan://, socks4://, socks4a://, socks5://, hysteria2://, hy2://, or tuic://" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:163 #: src/validators/validateUrl.ts:18 msgid "URL must use one of the following protocols:" msgstr "" @@ -4818,12 +6163,16 @@ msgstr "" msgid "URLTest" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2309 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2310 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7476 #: src/tachyon/tabs/dashboard/initController.ts:1317 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:515 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:516 msgid "URLTest details" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7446 #: src/tachyon/tabs/dashboard/initController.ts:1276 msgid "URLTest details are unavailable" msgstr "" @@ -4837,25 +6186,73 @@ msgstr "" msgid "Use 3-tier check intervals: fast (15s), normal (120s), slow (300s) instead of a single interval." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2200 +msgid "Use 32 hex characters" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1990 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1996 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2112 +msgid "Use a domain name or IP address" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2091 +msgid "Use a duration like 30s, 5m, or 1h30m" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2097 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3031 +msgid "Use a non-negative integer" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2203 +msgid "Use a non-zero secret" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2059 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2061 +msgid "Use an HTTP or HTTPS URL" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2013 +msgid "Use an IP address" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2006 +msgid "Use an IP listen address" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8994 msgid "Use another section as an intermediate hop to connect to servers in this section. Does not apply to network interfaces or JSON outbounds." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2160 +msgid "Use CIDR prefixes like 192.168.1.0/24 or 2001:db8::/32" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2174 +msgid "Use CIDR prefixes or IP addresses like 192.168.1.0/24, 192.168.1.10, or 2001:db8::1" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2118 +msgid "Use letters, digits, dots, underscores, or hyphens" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:252 msgid "Use sing-box duration format like 10s, 1m or 2m30s" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1323 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1345 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1352 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1383 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1411 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2386 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2646 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3169 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:4731 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:4738 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:4745 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1323 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1345 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1352 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1383 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1411 msgid "Use sing-box duration format like 1d, 12h or 30m" msgstr "" @@ -4864,6 +6261,7 @@ msgstr "" msgid "Use sing-box duration format like 1d, 12h or 6h" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9024 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:25 msgid "Used by" msgstr "" @@ -4873,6 +6271,7 @@ msgid "User-Agent" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8574 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2990 msgid "Username" msgstr "" @@ -4880,6 +6279,22 @@ msgstr "" msgid "Username cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:27 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:69 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:82 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:141 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:144 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:169 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:189 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:233 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:323 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:409 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:519 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:577 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:633 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:697 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:807 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:927 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:5347 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:5360 #: src/validators/validateDns.ts:25 @@ -4913,10 +6328,16 @@ msgstr "" msgid "Value cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1910 +msgid "Value must be a positive integer" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10286 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1934 msgid "Value must not contain control characters" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16188 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:369 msgid "Verifying router and service readiness..." msgstr "" @@ -4925,6 +6346,8 @@ msgstr "" msgid "Via country.is" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10224 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12485 #: src/tachyon/tabs/diagnostic/initController.ts:820 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:169 msgid "View logs" @@ -4934,18 +6357,25 @@ msgstr "" msgid "Visible name of this section" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3034 +msgid "VLESS flow" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8755 msgid "vless://, vmess://, ss://, trojan://, socks4/5://, hy2/hysteria2:// links" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16167 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:343 msgid "Waiting for router services to restart..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9060 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:70 msgid "WAN" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9159 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:198 msgid "WAN public IP" msgstr "" @@ -4978,6 +6408,22 @@ msgstr "" msgid "WebRTC Leak Protection" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:24 +msgid "Wed" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:14 +msgid "Wednesday" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:106 +msgid "Weekdays (Mon-Fri)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:110 +msgid "Weekends (Sat-Sun)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7276 msgid "What Tachyon should do when this section matches" msgstr "" @@ -4986,6 +6432,7 @@ msgstr "" msgid "When switching to another level, test every server and select the fastest instead of the first working one." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11278 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:156 msgid "Why Discord fails?" msgstr "" @@ -4998,10 +6445,15 @@ msgstr "" msgid "WireGuard private key from your Cloudflare WARP account" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2944 +msgid "XHTTP mode" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1209 msgid "YACD Secret Key" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7081 #: src/tachyon/tabs/dashboard/initController.ts:818 msgid "Yes" msgstr "" @@ -5014,26 +6466,32 @@ msgstr "" msgid "Zapret hostlist templates are not supported here because Tachyon does not expand them for per-rule NFQWS strategies." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9390 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:71 msgid "Zapret package is installed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9390 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:72 msgid "Zapret package is not installed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9385 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:60 msgid "Zapret provider binary is available" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9385 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:61 msgid "Zapret provider binary is not available" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9410 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:103 msgid "Zapret sing-box outbound is configured" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9410 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:104 msgid "Zapret sing-box outbound is not configured" msgstr "" @@ -5042,26 +6500,32 @@ msgstr "" msgid "Zapret2 hostlist templates are not supported here because Tachyon does not expand them for per-rule NFQWS2 strategies." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9476 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:74 msgid "Zapret2 package is installed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9476 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:75 msgid "Zapret2 package is not installed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9471 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:63 msgid "Zapret2 provider binary is available" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9471 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:64 msgid "Zapret2 provider binary is not available" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9496 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:106 msgid "Zapret2 sing-box outbound is configured" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9496 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:107 msgid "Zapret2 sing-box outbound is not configured" msgstr "" diff --git a/fe-app-tachyon/locales/tachyon.ru.po b/fe-app-tachyon/locales/tachyon.ru.po index 0713785d..881f08ed 100644 --- a/fe-app-tachyon/locales/tachyon.ru.po +++ b/fe-app-tachyon/locales/tachyon.ru.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: TACHYON\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-17 11:15+0300\n" -"PO-Revision-Date: 2026-08-17 11:15+0300\n" +"POT-Creation-Date: 2026-08-17 20:24+0300\n" +"PO-Revision-Date: 2026-08-17 20:24+0300\n" "Last-Translator: Dushnilin\n" "Language-Team: none\n" "Language: ru\n" @@ -62,12 +62,27 @@ msgstr "✘ Остановлено" msgid "🔑 Generate" msgstr "🔑 Сгенерировать" +msgid "Accept external proxy connections and route them with sing-box." +msgstr "Принимать внешние прокси-подключения и маршрутизировать их через sing-box." + +msgid "Accept routes" +msgstr "Принимать маршруты" + msgid "Action" msgstr "Действие" +msgid "Action Mode" +msgstr "Режим действия" + msgid "Active" msgstr "Активные" +msgid "Active (Allowed)" +msgstr "Активно (Разрешено)" + +msgid "Active (Blocking)" +msgstr "Активно (Блокирует)" + msgid "Active Bootstrap DNS" msgstr "Активный Bootstrap DNS" @@ -80,6 +95,15 @@ msgstr "Активные соединения" msgid "Active Main DNS" msgstr "Активный основной DNS" +msgid "Add a schedule rule" +msgstr "Добавить правило расписания" + +msgid "Add a section" +msgstr "Добавить секцию" + +msgid "Add a server inbound" +msgstr "Добавить серверный инбаунд" + msgid "Add at least one DNS server" msgstr "Добавьте как минимум один DNS-сервер" @@ -116,6 +140,9 @@ msgstr "Дополнительно скрывать серверы по прот msgid "Additionally show servers by protocol, transport, and security. Add only servers matching the specified parameters." msgstr "Дополнительно показывать серверы по протоколу, транспорту и безопасности. Показывать только серверы, соответствующие указанным параметрам." +msgid "Address" +msgstr "Адрес" + msgid "Administrator Chat IDs" msgstr "Chat ID администраторов" @@ -125,6 +152,12 @@ msgstr "Расширенные функции самовосстановлени msgid "Advanced System" msgstr "Расширенные настройки" +msgid "Advertise exit node" +msgstr "Объявлять как выходной узел (Exit Node)" + +msgid "Advertise routes" +msgstr "Объявлять маршруты" + msgid "AEAD Method" msgstr "Метод AEAD" @@ -176,9 +209,18 @@ msgstr "Настройки AI Watchdog сохранены. Перезапуст msgid "All" msgstr "Все" +msgid "All devices" +msgstr "Все устройства" + msgid "All except selected" msgstr "Все кроме выбранных" +msgid "All Internet" +msgstr "Весь интернет" + +msgid "All Internet (Complete internet cutoff)" +msgstr "Весь интернет (Полное отключение)" + msgid "All remaining except selected" msgstr "Все остальные кроме выбранных" @@ -197,6 +239,12 @@ msgstr "Все серверы" msgid "All traffic from these IP addresses will be routed through the section unconditionally, ignoring all other conditions." msgstr "Весь трафик от этих IP-адресов будет маршрутизирован через секцию безусловно, игнорируя все остальные условия." +msgid "Allow / Enable ONLY in scheduled hours (White period)" +msgstr "Разрешать / Включать ТОЛЬКО в указанные часы (Белый список)" + +msgid "Allow in interval" +msgstr "Разрешено в интервале" + msgid "Allow Insecure TLS" msgstr "Разрешить небезопасный TLS" @@ -212,6 +260,12 @@ msgstr "Позволяет ограничить список серверов д msgid "Allows Tachyon to send diagnostic snapshots to ChatGPT or DeepSeek API for intelligent root-cause analysis and auto-repair recommendations." msgstr "Позволяет Tachyon отправлять диагностические снимки в ChatGPT или DeepSeek API для умного анализа причин проблем и рекомендаций по исправлению." +msgid "ALPN" +msgstr "ALPN" + +msgid "Alter ID" +msgstr "Alter ID" + msgid "AmneziaWG config loaded successfully!" msgstr "Конфигурация AmneziaWG успешно загружена!" @@ -260,6 +314,9 @@ msgstr "Авто" msgid "Auto refresh" msgstr "Автообновление" +msgid "Auto update" +msgstr "Автообновление" + msgid "Auto-detected domains" msgstr "Автоопределённые домены" @@ -311,12 +368,24 @@ msgstr "Ошибка проверки бэкенда: %s" msgid "Bearer Auth Token" msgstr "Токен авторизации (Bearer)" +msgid "Beginning of the schedule interval (e.g. 22:00)" +msgstr "Начало интервала расписания (например, 22:00)" + msgid "Belarus (by)" msgstr "Беларусь (by)" msgid "BitTorrent / P2P" msgstr "BitTorrent / P2P" +msgid "Block / Disable in scheduled hours (Standard)" +msgstr "Блокировать / Отключать в указанные часы (Стандарт)" + +msgid "Block in interval" +msgstr "Блокируется в интервале" + +msgid "Block internet access or specific proxy sections for individual devices based on time and days." +msgstr "Блокировка доступа в интернет или определенных секций маршрутизации для отдельных устройств по времени и дням недели." + msgid "Bootstrap DNS" msgstr "Bootstrap DNS" @@ -401,12 +470,21 @@ msgstr "Отмена" msgid "Cannot receive checks result" msgstr "Не удалось получить результаты проверки" +msgid "Cannot save server" +msgstr "Не удалось сохранить сервер" + msgid "Cannot save settings" msgstr "Не удалось сохранить настройки" msgid "Cascade connection" msgstr "Каскадное подключение" +msgid "Certificate path" +msgstr "Путь к сертификату" + +msgid "Certificate pin is unavailable. Apply or restart the server to generate the default certificate, then open this dialog again." +msgstr "Пин сертификата недоступен. Примените настройки или перезапустите сервер для генерации сертификата, затем откройте это окно снова." + msgid "Check completed!" msgstr "Проверка завершена!" @@ -464,9 +542,15 @@ msgstr "Китай (cn)" msgid "Choose Hosts File..." msgstr "Выбрать файл Hosts..." +msgid "Choose whether to restrict the entire internet or only specific Tachyon routing sections." +msgstr "Выберите, блокировать ли весь доступ в интернет или только определенные секции Tachyon." + msgid "Choose whether to route traffic to all destinations except selected countries (Exclude) or only to selected countries (Include)." msgstr "Выберите, маршрутизировать ли трафик ко всем назначениям кроме выбранных стран (Исключить) или только в выбранные страны (Включить)." +msgid "Choose which routing sections to apply this schedule to." +msgstr "Выберите секции маршрутизации, к которым применяется данное расписание." + msgid "CIDR must be between 0 and 32 for IPv4 or 0 and 128 for IPv6" msgstr "CIDR должен быть от 0 до 32 для IPv4 или от 0 до 128 для IPv6" @@ -482,12 +566,39 @@ msgstr "Очистить" msgid "Clear DNS cache" msgstr "Очистить кэш DNS" +msgid "Client Address" +msgstr "Адрес клиента" + msgid "Client Certificate" msgstr "Клиентский сертификат" +msgid "Client DNS" +msgstr "DNS клиента" + +msgid "Client fingerprint" +msgstr "Fingerprint клиента" + msgid "Client Key" msgstr "Клиентский ключ" +msgid "Client link" +msgstr "Клиентская ссылка" + +msgid "Client link is not available yet" +msgstr "Клиентская ссылка пока недоступна" + +msgid "Client link QR code" +msgstr "QR-код клиентской ссылки" + +msgid "Client Private Key" +msgstr "Приватный ключ клиента" + +msgid "Client Public Key" +msgstr "Публичный ключ клиента" + +msgid "Client VPN IP address (e.g. 10.0.0.2/32)" +msgstr "VPN IP-адрес клиента (например, 10.0.0.2/32)" + msgid "Close" msgstr "Закрыть" @@ -524,9 +635,15 @@ msgstr "Доступно обновление компонента" msgid "Component update check interval" msgstr "Интервал проверки обновлений компонентов" +msgid "Components" +msgstr "Компоненты" + msgid "compressed" msgstr "compressed" +msgid "Concurrency" +msgstr "Параллелизм" + msgid "Conditions" msgstr "Условия" @@ -536,6 +653,9 @@ msgstr "Путь к файлу конфигурации" msgid "Config Snapshots" msgstr "Снапшоты конфигурации" +msgid "Configuration for Tachyon service" +msgstr "Конфигурация сервиса Tachyon" + msgid "Configure User-Agent in the item settings" msgstr "Настройте User-Agent в параметрах элемента" @@ -563,6 +683,9 @@ msgstr "Подключения недоступны" msgid "Connectivity probe failed" msgstr "Проверка соединения не прошла" +msgid "Cookie packet junk size (S3)" +msgstr "Размер мусора в пакете cookie (S3)" + msgid "Copied" msgstr "Скопировано" @@ -605,8 +728,20 @@ msgstr "Пользовательские заголовки устройства msgid "Custom DNS Records (Hosts)" msgstr "Пользовательские DNS-записи (Hosts)" +msgid "Custom header for cookie packet" +msgstr "Пользовательский заголовок для пакета cookie" + +msgid "Custom header for data packet" +msgstr "Пользовательский заголовок для пакета данных" + +msgid "Custom header for handshake initiation" +msgstr "Пользовательский заголовок для инициации рукопожатия" + +msgid "Custom header for handshake response" +msgstr "Пользовательский заголовок для ответа рукопожатия" + msgid "Custom OpenAI-Compatible API" -msgstr "" +msgstr "Пользовательский OpenAI-совместимый API" msgid "Custom OpenAI-compatible API endpoint URL (e.g. http://192.168.1.100:11434/v1/chat/completions)" msgstr "Пользовательский URL эндпоинта OpenAI-совместимого API (напр. http://192.168.1.100:11434/v1/chat/completions)" @@ -614,9 +749,15 @@ msgstr "Пользовательский URL эндпоинта OpenAI-совм msgid "Custom outbound configurations in JSON format" msgstr "Пользовательские конфигурации outbound в формате JSON" +msgid "Dashboard" +msgstr "Панель управления" + msgid "Dashboard currently unavailable" msgstr "Дашборд сейчас недоступен" +msgid "Days of Week" +msgstr "Дни недели" + msgid "Default (auto)" msgstr "По умолчанию (авто)" @@ -647,6 +788,9 @@ msgstr "Обнаруживает и отбрасывает пакеты STUN/TUR msgid "detour must be a non-empty string" msgstr "detour должен быть непустой строкой" +msgid "Device / IP" +msgstr "Устройство / IP" + msgid "Device filter" msgstr "Фильтр устройств" @@ -671,6 +815,12 @@ msgstr "DHCP содержит DNS сервер" msgid "DHCP is managed manually" msgstr "DHCP управляется вручную" +msgid "Diagnostics" +msgstr "Диагностика" + +msgid "Direct" +msgstr "Напрямую" + msgid "Direct (Default)" msgstr "Прямое (по умолчанию)" @@ -692,6 +842,9 @@ msgstr "Отключить QUIC" msgid "Disable the QUIC protocol to improve compatibility or fix issues with video streaming" msgstr "Отключить протокол QUIC для улучшения совместимости или исправления проблем с видео-стримингом" +msgid "Disabled" +msgstr "Отключено" + msgid "Disabling interception is incompatible with action=zapret2 because Tachyon sends matched traffic through NFQUEUE." msgstr "Отключение перехвата несовместимо с action=zapret2, потому что Tachyon направляет совпавший трафик через NFQUEUE." @@ -743,6 +896,9 @@ msgstr "DNS-сервер" msgid "DNS server address cannot be empty" msgstr "Адрес DNS-сервера не может быть пустым" +msgid "DNS server pushed to the client configuration" +msgstr "DNS-сервер, передаваемый клиенту в конфигурации" + msgid "DNS server used by the resolver" msgstr "DNS-сервер, используемый резолвером" @@ -836,6 +992,9 @@ msgstr "Входящий" msgid "Download" msgstr "Скачать" +msgid "Download .conf" +msgstr "Скачать .conf" + msgid "Download component packages via the selected section" msgstr "Загружать пакеты компонентов через выбранную секцию" @@ -866,6 +1025,9 @@ msgstr "Загружать через" msgid "Downloaded" msgstr "Загружено" +msgid "Drag rows to change priority. The rule at the top is checked first." +msgstr "Перетащите строки для изменения приоритета. Правило вверху проверяется первым." + msgid "DSCP marks (QoS)" msgstr "DSCP-метки (QoS)" @@ -881,12 +1043,18 @@ msgstr "напр. AES-256-GCM — оставьте пустым для знач msgid "e.g. google.com, 1.1.1.1, 443" msgstr "напр. google.com, 1.1.1.1, 443" +msgid "e.g. Kids Phone (Night YouTube)" +msgstr "например, Телефон ребенка (YouTube на ночь)" + msgid "e.g. SHA256 — leave empty for default" msgstr "напр. SHA256 — оставьте пустым для значения по умолчанию" msgid "Each entry must be \"proto\", \"proto:port\" or \"proto:port-port\" (tcp/udp), e.g. tcp:6881,udp:6881-6889" msgstr "Каждая запись — \"proto\", \"proto:port\" или \"proto:port-port\" (tcp/udp), напр. tcp:6881,udp:6881-6889" +msgid "Edit rule action" +msgstr "Редактировать действие правила" + msgid "Enable" msgstr "Включить" @@ -902,6 +1070,9 @@ msgstr "Включить AI Doctor (интеграция с LLM)" msgid "Enable Anomaly Detection" msgstr "Включить обнаружение аномалий" +msgid "Enable authentication" +msgstr "Включить аутентификацию" + msgid "Enable automatic updates for remote lists and rule sets" msgstr "Включить автообновление удалённых списков и наборов правил" @@ -977,6 +1148,15 @@ msgstr "Включает фоновый демон, который опраши msgid "Enables the background watchdog process to monitor services and auto-recover on failures." msgstr "Включает фоновый процесс watchdog для мониторинга сервисов и автоматического восстановления при сбоях." +msgid "End of the schedule interval (e.g. 08:00). Supports spans crossing midnight." +msgstr "Конец интервала расписания (например, 08:00). Поддерживает переход через полночь." + +msgid "End Time (HH:MM)" +msgstr "Время окончания (ЧЧ:ММ)" + +msgid "Enter a complete sing-box inbound object" +msgstr "Введите полный JSON объект inbound для sing-box" + msgid "Enter a complete sing-box outbound object" msgstr "Введите полный объект outbound sing-box" @@ -1007,6 +1187,9 @@ msgstr "Ошибка запуска генератора:" msgid "Error running trace:" msgstr "Ошибка выполнения трассировки:" +msgid "Every day" +msgstr "Каждый день" + msgid "Exclude by proxy parameters" msgstr "Исключить по параметрам прокси" @@ -1040,6 +1223,9 @@ msgstr "Исключить группу URLTest / Приоритет" msgid "Excluded devices" msgstr "Исключённые устройства" +msgid "Expecting: %s" +msgstr "Ожидалось: %s" + msgid "Expires" msgstr "Истекает" @@ -1131,7 +1317,7 @@ msgid "Failed to stop watchdog" msgstr "Не удалось остановить watchdog" msgid "Failed to switch proxy" -msgstr "" +msgstr "Не удалось переключить прокси" msgid "Failed to update device" msgstr "Не удалось обновить устройство" @@ -1148,6 +1334,12 @@ msgstr "FakeIP и контрольная проверка используют msgid "FakeIP works; public IP comparison is inconclusive" msgstr "FakeIP работает; сравнение публичных IP не дает однозначного результата" +msgid "FakeTLS host" +msgstr "FakeTLS host" + +msgid "Fallback on unknown DC" +msgstr "Fallback при неизвестном DC" + msgid "Faster DNS health monitoring than the default cycle. Switches bootstrap DNS on failure." msgstr "Более быстрый мониторинг состояния DNS, чем стандартный цикл. Переключает bootstrap DNS при сбое." @@ -1190,6 +1382,21 @@ msgstr "Принудительно направлять DNS-запросы че msgid "France (fr)" msgstr "Франция (fr)" +msgid "Fri" +msgstr "Пт" + +msgid "Friday" +msgstr "Пятница" + +msgid "Fronting IP" +msgstr "Fronting IP" + +msgid "Fronting port" +msgstr "Fronting порт" + +msgid "Fronting proxy protocol" +msgstr "Протокол Fronting прокси" + msgid "Full System Diagnostic" msgstr "Полная диагностика системы" @@ -1250,12 +1457,30 @@ msgstr "Дайте снапшоту имя. Он сохраняется с те msgid "Global check" msgstr "Глобальная проверка" +msgid "gRPC service" +msgstr "Сервис gRPC" + +msgid "Handshake timeout" +msgstr "Таймаут рукопожатия" + msgid "Health Checks" msgstr "Проверки здоровья" msgid "Hello! I am Tachyon AI Assistant. How can I help you today? Ask me about domain blocks, diagnostics, or router settings." msgstr "Привет! Я ИИ-ассистент Tachyon. Чем могу помочь? Задайте вопрос о блокировках, диагностике или настройках роутера." +msgid "Hex or binary junk payload" +msgstr "Hex или бинарный мусор" + +msgid "Hex or binary payload" +msgstr "Hex или бинарный полезный груз" + +msgid "Hex or binary payload for init" +msgstr "Hex или бинарный полезный груз для init" + +msgid "Hex or binary payload for response" +msgstr "Hex или бинарный полезный груз для response" + msgid "Hide cascade connection nodes" msgstr "Скрыть узлы каскадных подключений" @@ -1340,6 +1565,9 @@ msgstr "HTTP" msgid "HTTP error" msgstr "Ошибка HTTP" +msgid "HTTP hosts" +msgstr "HTTP хосты" + msgid "HTTP REST API for external AI agents (Claude, GPT, Open-WebUI) served at /cgi-bin/tachyon-agent/" msgstr "HTTP REST API для внешних ИИ-агентов (Claude, GPT, Open-WebUI), доступен по адресу /cgi-bin/tachyon-agent/" @@ -1370,6 +1598,15 @@ msgstr "Импортировать группы URLTest подписки" msgid "Import URLTest groups returned by this subscription provider" msgstr "Импортировать группы URLTest, возвращённые этим провайдером подписки" +msgid "Inbound JSON" +msgstr "Inbound JSON" + +msgid "Inbound JSON cannot be empty" +msgstr "Inbound JSON не может быть пустым" + +msgid "Inbound JSON must be an object with a type field" +msgstr "Inbound JSON должен быть объектом с полем type" + msgid "Include by proxy parameters" msgstr "Включить по параметрам прокси" @@ -1388,6 +1625,18 @@ msgstr "Включить выбранные страны" msgid "Include servers" msgstr "Включить серверы" +msgid "Information" +msgstr "Информация" + +msgid "Init handshake timeout" +msgstr "Таймаут начального рукопожатия" + +msgid "Init packet header (H1)" +msgstr "Заголовок init-пакета (H1)" + +msgid "Init packet junk size (S1)" +msgstr "Размер мусора init-пакета (S1)" + msgid "Init Packet Magic Header (S1)" msgstr "Magic-заголовок пакета инициализации (S1)" @@ -1409,6 +1658,12 @@ msgstr "Полезная нагрузка пакета инициализаци msgid "Init Packet Payload (I5)" msgstr "Полезная нагрузка пакета инициализации (I5)" +msgid "Init payload (I1)" +msgstr "Полезный груз init (I1)" + +msgid "Init timeout (Itime)" +msgstr "Таймаут init (Itime)" + msgid "Install" msgstr "Установить" @@ -1580,6 +1835,9 @@ msgstr "Неверный URL-адрес SOCKS: должен начинаться msgid "Invalid SOCKS URL: parsing failed" msgstr "Неверный URL SOCKS: парсинг не удался" +msgid "Invalid time format. Expected HH:MM (e.g. 22:00)" +msgstr "Неверный формат времени. Ожидается ЧЧ:ММ (например, 22:00)" + msgid "Invalid Trojan URL: must not contain spaces" msgstr "Неверный URL Trojan: не должен содержать пробелов" @@ -1697,9 +1955,39 @@ msgstr "Макс. размер мусора (Jmax)" msgid "Junk Min Size (Jmin)" msgstr "Мин. размер мусора (Jmin)" +msgid "Junk packet count (Jc)" +msgstr "Количество мусорных пакетов (Jc)" + msgid "Junk Packet Count (Jc)" msgstr "Количество мусорных пакетов (Jc)" +msgid "Junk packet max size (Jmax)" +msgstr "Максимальный размер мусорного пакета (Jmax)" + +msgid "Junk packet min size (Jmin)" +msgstr "Минимальный размер мусорного пакета (Jmin)" + +msgid "Junk payload (J1)" +msgstr "Мусорный полезный груз (J1)" + +msgid "Junk payload (J2)" +msgstr "Мусорный полезный груз (J2)" + +msgid "Junk payload (J3)" +msgstr "Мусорный полезный груз (J3)" + +msgid "Junk size for cookie packet" +msgstr "Размер мусора для пакета cookie" + +msgid "Junk size for initiation packet" +msgstr "Размер мусора для пакета инициации" + +msgid "Junk size for response packet" +msgstr "Размер мусора для пакета ответа" + +msgid "Junk size for transport packet" +msgstr "Размер мусора для транспортного пакета" + msgid "Kazakhstan (kz)" msgstr "Казахстан (kz)" @@ -1715,6 +2003,9 @@ msgstr "Сохраняет FakeIP-кэш между перезагрузками msgid "Key" msgstr "Ключ" +msgid "Key path" +msgstr "Путь к ключу" + msgid "Keyword must not contain spaces or commas" msgstr "Ключевое слово не должно содержать пробелов или запятых" @@ -1751,6 +2042,12 @@ msgstr "Список автоматически определённых дом msgid "List Update Frequency" msgstr "Частота обновления списков" +msgid "Listen address" +msgstr "Адрес прослушивания" + +msgid "Listen port" +msgstr "Порт прослушивания" + msgid "Listening port" msgstr "Слушающий порт" @@ -1772,6 +2069,9 @@ msgstr "Загружено %d текущих записей" msgid "Loaded!" msgstr "Загружено!" +msgid "Loading client link..." +msgstr "Загрузка клиентской ссылки..." + msgid "Loading connected LAN devices..." msgstr "Загрузка списка устройств LAN..." @@ -1826,18 +2126,27 @@ msgstr "Сопоставлять трафик по DSCP-метке пакета msgid "Max reconnects per hour before alert (default 10)." msgstr "Макс. переподключений в час до оповещения (по умолчанию 10)." +msgid "Maximum size of junk packets" +msgstr "Максимальный размер мусорных пакетов" + msgid "Maximum time to wait for example.com to resolve during a DNS health check." msgstr "Максимальное время ожидания разрешения example.com при проверке DNS." msgid "Memory Usage" msgstr "Использование памяти" +msgid "Method" +msgstr "Метод" + msgid "Metrics Retention (hours)" msgstr "Хранение метрик (часы)" msgid "Minimum latency difference in milliseconds that triggers switching to a faster server." msgstr "Минимальная разница задержки в миллисекундах, при которой происходит переключение на более быстрый сервер." +msgid "Minimum size of junk packets" +msgstr "Минимальный размер мусорных пакетов" + msgid "Mixed Proxy Password" msgstr "Пароль смешанного прокси" @@ -1847,12 +2156,24 @@ msgstr "Порт смешанного прокси" msgid "Mixed Proxy Username" msgstr "Имя пользователя смешанного прокси" +msgid "Mode" +msgstr "Режим" + msgid "Model name to use. Leave empty to use default (gpt-4o-mini / claude-3-5-haiku / deepseek-chat / llama3:latest)." msgstr "Имя модели. Оставьте пустым для использования по умолчанию (gpt-4o-mini / claude-3-5-haiku / deepseek-chat / llama3:latest)." +msgid "Mon" +msgstr "Пн" + +msgid "Monday" +msgstr "Понедельник" + msgid "Monitored Interfaces" msgstr "Отслеживаемые интерфейсы" +msgid "Monitoring" +msgstr "Мониторинг" + msgid "Monitoring & Analytics" msgstr "Мониторинг и аналитика" @@ -1944,7 +2265,7 @@ msgid "No Custom Rules Matched" msgstr "Нет совпадений с пользовательскими правилами" msgid "No DHCP clients detected" -msgstr "" +msgstr "DHCP-клиенты не обнаружены" msgid "No diagnostic history available yet." msgstr "История проверок пока пуста." @@ -1979,6 +2300,9 @@ msgstr "Нет правил, использующих Zapret" msgid "No rules use Zapret2" msgstr "Нет правил, использующих Zapret2" +msgid "No sections selected" +msgstr "Секции не выбраны" + msgid "No snapshots yet" msgstr "Снапшотов пока нет" @@ -2048,6 +2372,15 @@ msgstr "Количество последовательных ошибок до msgid "Number of consecutive successful checks required before returning to a higher-priority DNS server." msgstr "Количество последовательных успешных проверок до возврата на DNS-сервер с более высоким приоритетом." +msgid "Number of junk packets before handshake (1-10)" +msgstr "Количество мусорных пакетов перед рукопожатием (1-10)" + +msgid "Obfuscation" +msgstr "Обфускация" + +msgid "Obfuscation password" +msgstr "Пароль обфускации" + msgid "Ollama (Local PC / Server)" msgstr "Ollama (локальный ПК / сервер)" @@ -2088,7 +2421,7 @@ msgid "Open Project Page" msgstr "Открыть страницу проекта" msgid "Operation completed successfully!" -msgstr "" +msgstr "Операция успешно завершена!" msgid "Operation failed" msgstr "Операция не выполнена" @@ -2103,7 +2436,7 @@ msgid "Operation log is not available" msgstr "Лог операции недоступен" msgid "Operation started. Waiting for log output..." -msgstr "" +msgstr "Операция запущена. Ожидание вывода логов..." msgid "Operation timed out" msgstr "Время ожидания истекло" @@ -2156,6 +2489,12 @@ msgstr "Порты P2P-клиента" msgid "P2P Leak Protection" msgstr "Защита от утечек P2P" +msgid "Padding" +msgstr "Padding" + +msgid "Parental Control" +msgstr "Родительский контроль" + msgid "Parsed records:" msgstr "Обработанные записи:" @@ -2183,6 +2522,15 @@ msgstr "Путь должен заканчиваться на cache.db" msgid "Pause updates" msgstr "Приостановить обновление" +msgid "Payload (I3)" +msgstr "Полезный груз (I3)" + +msgid "Payload (I4)" +msgstr "Полезный груз (I4)" + +msgid "Payload (I5)" +msgstr "Полезный груз (I5)" + msgid "Peer Public Key" msgstr "Публичный ключ пира" @@ -2255,12 +2603,18 @@ msgstr "Предзагрузить все предустановленные с msgid "Pre-shared key" msgstr "Предварительный общий ключ" +msgid "Pre-shared Key (PSK)" +msgstr "Pre-shared Key (PSK)" + msgid "Prefer IPv4" msgstr "Предпочитать IPv4" msgid "Prefer IPv6" msgstr "Предпочитать IPv6" +msgid "Preferred IP" +msgstr "Предпочитаемый IP" + msgid "Prefix text" msgstr "Текст префикса" @@ -2324,6 +2678,9 @@ msgstr "PSK" msgid "Public host" msgstr "Публичный хост" +msgid "QR code is too large" +msgstr "QR-код слишком большой" + msgid "QUIC (HTTP/3)" msgstr "QUIC (HTTP/3)" @@ -2333,6 +2690,27 @@ msgstr "RDP" msgid "Read error" msgstr "Ошибка чтения" +msgid "Reality fake site" +msgstr "Фейковый сайт Reality" + +msgid "Reality fake site port" +msgstr "Порт фейкового сайта Reality" + +msgid "Reality max time difference" +msgstr "Макс. разница времени Reality" + +msgid "Reality private key" +msgstr "Приватный ключ Reality" + +msgid "Reality public key" +msgstr "Публичный ключ Reality" + +msgid "Reality short ID" +msgstr "Короткий ID Reality" + +msgid "Reality short ID must contain 1-8 hex digits" +msgstr "Короткий ID Reality должен содержать 1-8 шестнадцатеричных цифр" + msgid "Rebuild firewall rules" msgstr "Пересобрать правила firewall" @@ -2373,10 +2751,10 @@ msgid "Reinstall" msgstr "Переустановить" msgid "Reload now" -msgstr "" +msgstr "Перезагрузить сейчас" msgid "Reloading..." -msgstr "" +msgstr "Перезагрузка..." msgid "Remote Hosts Lists" msgstr "Удалённые списки Hosts" @@ -2435,12 +2813,21 @@ msgstr "Выбор ресурсов по IP или CIDR внутри nfqws не msgid "Resource selection by IP or CIDR inside nfqws2 is not supported here; sing-box selects resources before NFQUEUE." msgstr "Выбор ресурсов по IP или CIDR внутри nfqws2 не поддерживается здесь; sing-box выбирает ресурсы до NFQUEUE." +msgid "Response packet header (H2)" +msgstr "Заголовок пакета ответа (H2)" + +msgid "Response packet junk size (S2)" +msgstr "Размер мусора пакета ответа (S2)" + msgid "Response Packet Magic Header (S2)" msgstr "Magic-заголовок ответного пакета (S2)" msgid "Response Packet Magic Header (S4)" msgstr "Magic-заголовок ответного пакета (S4)" +msgid "Response payload (I2)" +msgstr "Полезный груз ответа (I2)" + msgid "Restart dnsmasq" msgstr "Перезапустить dnsmasq" @@ -2501,15 +2888,27 @@ msgstr "Маршрутизировать запросы к этому DNS-сер msgid "Route via Proxy" msgstr "Через прокси" +msgid "Routing mode" +msgstr "Режим маршрутизации" + msgid "Routing Rule Tracer" msgstr "Трассировщик правил маршрутизации" msgid "Routing rules" msgstr "Правила маршрутизации" +msgid "Routing section" +msgstr "Секция маршрутизации" + msgid "Rule" msgstr "Правило" +msgid "Rule Name" +msgstr "Название правила" + +msgid "Rule name is required" +msgstr "Необходимо указать название правила" + msgid "Rule set must be an HTTP(S) URL or a local .srs / .json path" msgstr "Набор правил должен быть HTTP(S) URL или локальным путём .srs / .json" @@ -2522,6 +2921,9 @@ msgstr "Наборы правил" msgid "Rule Sets (.srs / .json)" msgstr "Наборы правил (.srs / .json)" +msgid "Rules" +msgstr "Правила" + msgid "Rules mangle counters" msgstr "Счётчики правил mangle" @@ -2555,6 +2957,12 @@ msgstr "Запущен" msgid "Russia (ru)" msgstr "Россия (ru)" +msgid "Sat" +msgstr "Сб" + +msgid "Saturday" +msgstr "Суббота" + msgid "Save" msgstr "Сохранить" @@ -2573,9 +2981,18 @@ msgstr "Сохранить снапшот" msgid "Saving…" msgstr "Сохранение…" +msgid "Schedule" +msgstr "Расписание" + +msgid "Schedule Rule" +msgstr "Правило расписания" + msgid "Search" msgstr "Поиск" +msgid "Secret" +msgstr "Секрет" + msgid "Secret key for authenticating remote access to YACD when WAN access is enabled." msgstr "Секретный ключ для аутентификации удалённого доступа к YACD при включённом WAN-доступе." @@ -2585,6 +3002,9 @@ msgstr "Секретный токен для авторизации операц msgid "Secret token for WRITE requests" msgstr "Секретный токен для POST/PUT запросов" +msgid "Section" +msgstr "Секция" + msgid "Section action" msgstr "Действие секции" @@ -2597,6 +3017,9 @@ msgstr "Содержимое правил секции" msgid "Section test order (checked = active, drag rows with △▽):" msgstr "Порядок проверки секций (галочка = активна, перетаскивайте △▽):" +msgid "Sections" +msgstr "Секции" + msgid "Security" msgstr "Безопасность" @@ -2624,6 +3047,9 @@ msgstr "Выберите секцию для загрузки этой подп msgid "Select a transit section" msgstr "Выберите транзитную секцию" +msgid "Select active days. If none selected, the rule applies every day." +msgstr "Выберите активные дни. Если ни один день не выбран, правило действует каждый день." + msgid "Select AI LLM provider for diagnostics" msgstr "Выберите провайдер ИИ LLM для диагностики" @@ -2642,6 +3068,9 @@ msgstr "Выберите и упорядочите секции, через ко msgid "Select DNS protocol to use" msgstr "Выберите протокол DNS" +msgid "Select LAN devices to apply this schedule to, or enter IP addresses manually." +msgstr "Выберите LAN-устройства для применения расписания или введите IP-адреса вручную." + msgid "Select network interface for VPN connection" msgstr "Выберите интерфейс для VPN-подключения" @@ -2660,6 +3089,9 @@ msgstr "Выберите или введите IP-адреса ваших игр msgid "Select path for sing-box config file. Change this ONLY if you know what you are doing" msgstr "Выберите путь к файлу конфигурации sing-box. Изменяйте ТОЛЬКО если точно знаете, что делаете" +msgid "Select Sections" +msgstr "Выбор секций" + msgid "Select the fastest node" msgstr "Выбирать самый быстрый узел" @@ -2675,9 +3107,15 @@ msgstr "Выберите интерфейс, на который будет ид msgid "Select the WAN interfaces to be monitored" msgstr "Выберите WAN-интерфейсы для отслеживания" +msgid "Select whether to disable the target during the schedule or enable it ONLY during the schedule." +msgstr "Выберите, отключать ли цель в период расписания или включать ТОЛЬКО в период расписания." + msgid "Selected" msgstr "Выбран" +msgid "Selected section" +msgstr "Выбранная секция" + msgid "Selector and URLTest outbounds must contain a non-empty outbounds array" msgstr "Selector и URLTest outbound должны содержать непустой массив outbounds" @@ -2702,6 +3140,9 @@ msgstr "Отправлять уведомление в Telegram при пере msgid "Send a Telegram notification when proxy subscriptions are successfully updated." msgstr "Отправлять уведомление в Telegram при успешном обновлении подписок прокси." +msgid "Server" +msgstr "Сервер" + msgid "Server Address" msgstr "Адрес сервера" @@ -2714,6 +3155,15 @@ msgstr "Группа серверов для автоматического вы msgid "Server group for priority failover" msgstr "Группа серверов для приоритетного переключения" +msgid "Server information" +msgstr "Информация о сервере" + +msgid "Server name" +msgstr "Имя сервера" + +msgid "Server name / SNI" +msgstr "Имя сервера / SNI" + msgid "Server Name Indication — leave empty to use server address" msgstr "Server Name Indication — оставьте пустым для использования адреса сервера" @@ -2726,12 +3176,24 @@ msgstr "Серверный outbound должен содержать числов msgid "Server Port" msgstr "Порт сервера" +msgid "Server Private Key" +msgstr "Приватный ключ сервера" + +msgid "Server Public Key" +msgstr "Публичный ключ сервера" + msgid "Server unavailable" msgstr "Сервер недоступен" +msgid "Server VPN IP address and subnet (e.g. 10.0.0.1/24)" +msgstr "VPN IP-адрес и подсеть сервера (например, 10.0.0.1/24)" + msgid "server_port must be a number from 1 to 65535" msgstr "server_port должен быть числом от 1 до 65535" +msgid "Servers" +msgstr "Серверы" + msgid "Servers on dashboard" msgstr "Серверы на дашборде" @@ -2745,13 +3207,13 @@ msgid "Services & Access" msgstr "Сервисы и доступ" msgid "Services are online and ready! Reloading page..." -msgstr "" +msgstr "Службы запущены и готовы к работе! Перезагрузка страницы..." msgid "Services info" msgstr "Информация о сервисах" msgid "Services restarted. Click to reload page." -msgstr "" +msgstr "Службы перезапущены. Нажмите для перезагрузки страницы." msgid "Settings" msgstr "Настройки" @@ -2861,6 +3323,15 @@ msgstr "Устройства-источники" msgid "Source Network Interface" msgstr "Исходный сетевой интерфейс" +msgid "Specific Sections (Select sections below)" +msgstr "Выборочные секции (Выберите секции ниже)" + +msgid "Specify a file path" +msgstr "Укажите путь к файлу" + +msgid "Specify different files" +msgstr "Укажите разные файлы" + msgid "SSH" msgstr "SSH" @@ -2909,6 +3380,9 @@ msgstr "Запустить sing-box" msgid "Start Tachyon" msgstr "Запустить Tachyon" +msgid "Start Time (HH:MM)" +msgstr "Время начала (ЧЧ:ММ)" + msgid "Start watchdog" msgstr "Запустить watchdog" @@ -2978,6 +3452,12 @@ msgstr "Успех" msgid "Successfully imported %d DNS record(s)" msgstr "Успешно импортировано %d DNS-записей" +msgid "Sun" +msgstr "Вс" + +msgid "Sunday" +msgstr "Воскресенье" + msgid "Sweden (se)" msgstr "Швеция (se)" @@ -3020,6 +3500,9 @@ msgstr "Служба Tachyon остановлена. Запустите серв msgid "Tachyon service is stopped. Start the service to display the dashboard." msgstr "Служба Tachyon остановлена. Запустите сервис для отображения дашборда." +msgid "Tachyon Settings" +msgstr "Настройки Tachyon" + msgid "Tachyon update did not complete within the timeout" msgstr "Обновление Tachyon не завершилось в течение таймаута" @@ -3056,9 +3539,30 @@ msgstr "NFQWS2 Tachyon не запущен" msgid "Tachyon-managed nfqws2 runtime is ready" msgstr "NFQWS2 Tachyon готов" +msgid "Tailscale auth key" +msgstr "Ключ аутентификации Tailscale" + +msgid "Tailscale control URL" +msgstr "Control URL Tailscale" + msgid "Tailscale endpoint" msgstr "Tailscale endpoint" +msgid "Tailscale hostname" +msgstr "Имя хоста Tailscale" + +msgid "Target" +msgstr "Цель" + +msgid "Target Devices (IP / Hostname)" +msgstr "Целевые устройства (IP / Имя)" + +msgid "Target Scope" +msgstr "Область действия" + +msgid "Telegram Bot" +msgstr "Telegram Бот" + msgid "Telegram Bot Token" msgstr "Токен Telegram-бота" @@ -3140,12 +3644,24 @@ msgstr "Все настройки Tachyon будут удалены и восс msgid "This will replace the current Tachyon settings with the snapshot" msgstr "Это заменит текущие настройки Tachyon на снапшот" +msgid "Thu" +msgstr "Чт" + +msgid "Thursday" +msgstr "Четверг" + msgid "Time" msgstr "Время" msgid "Time in seconds for DNS record caching (default: 60)" msgstr "Время кэширования DNS-записей в секундах (по умолчанию: 60)" +msgid "Time is required (e.g. 22:00)" +msgstr "Укажите время (например, 22:00)" + +msgid "Time skew tolerance" +msgstr "Допуск отклонения времени" + msgid "tiny" msgstr "tiny" @@ -3206,6 +3722,21 @@ msgstr "Режим прозрачного прокси несовместим с msgid "Transport" msgstr "Транспорт" +msgid "Transport host" +msgstr "Хост транспорта" + +msgid "Transport packet header (H4)" +msgstr "Заголовок транспортного пакета (H4)" + +msgid "Transport packet junk size (S4)" +msgstr "Размер мусора транспортного пакета (S4)" + +msgid "Transport path" +msgstr "Путь транспорта" + +msgid "Transport path must start with /" +msgstr "Путь транспорта должен начинаться с /" + msgid "Troubleshooting" msgstr "Устранение неполадок" @@ -3218,6 +3749,12 @@ msgstr "TTL должен быть положительным числом" msgid "TTL value cannot be empty" msgstr "Значение TTL не может быть пустым" +msgid "Tue" +msgstr "Вт" + +msgid "Tuesday" +msgstr "Вторник" + msgid "Turkey (tr)" msgstr "Турция (tr)" @@ -3242,6 +3779,9 @@ msgstr "Не удалось проверить стратегию NFQWS2 чер msgid "Unavailability timeout" msgstr "Таймаут недоступности" +msgid "Underload packet header (H3)" +msgstr "Заголовок пакета под нагрузкой (H3)" + msgid "Underload Packet Magic Header (H1)" msgstr "Magic-заголовок пакета недогрузки (H1)" @@ -3269,6 +3809,9 @@ msgstr "Обнаружен лишний NFQWS Tachyon" msgid "Unexpected Tachyon-managed nfqws2 runtime is running" msgstr "Обнаружен лишний NFQWS2 Tachyon" +msgid "unique UCI identifier" +msgstr "уникальный идентификатор UCI" + msgid "United Kingdom (gb)" msgstr "Великобритания (gb)" @@ -3302,6 +3845,9 @@ msgstr "Неуказанный IP-адрес не разрешён" msgid "Unstable" msgstr "Нестабильно" +msgid "Unsupported security mode for this protocol" +msgstr "Неподдерживаемый режим безопасности для этого протокола" + msgid "Up to 10 snapshots are kept; the oldest ones are removed automatically." msgstr "Хранится до 10 снапшотов; самые старые удаляются автоматически." @@ -3374,9 +3920,42 @@ msgstr "Настройки URLTest" msgid "Use 3-tier check intervals: fast (15s), normal (120s), slow (300s) instead of a single interval." msgstr "Использовать 3-уровневые интервалы проверки: быстрый (15с), нормальный (120с), медленный (300с)." +msgid "Use 32 hex characters" +msgstr "Используйте 32 шестнадцатеричных символа" + +msgid "Use a domain name or IP address" +msgstr "Используйте имя домена или IP-адрес" + +msgid "Use a duration like 30s, 5m, or 1h30m" +msgstr "Используйте длительность, например 30s, 5m или 1h30m" + +msgid "Use a non-negative integer" +msgstr "Используйте неотрицательное целое число" + +msgid "Use a non-zero secret" +msgstr "Используйте ненулевой секрет" + +msgid "Use an HTTP or HTTPS URL" +msgstr "Используйте HTTP или HTTPS URL" + +msgid "Use an IP address" +msgstr "Используйте IP-адрес" + +msgid "Use an IP listen address" +msgstr "Используйте IP-адрес прослушивания" + msgid "Use another section as an intermediate hop to connect to servers in this section. Does not apply to network interfaces or JSON outbounds." msgstr "Использовать другую секцию в качестве промежуточного узла для подключения к серверам в этой секции. Не применяется к сетевым интерфейсам и JSON-выходам." +msgid "Use CIDR prefixes like 192.168.1.0/24 or 2001:db8::/32" +msgstr "Используйте CIDR-префиксы, например 192.168.1.0/24 или 2001:db8::/32" + +msgid "Use CIDR prefixes or IP addresses like 192.168.1.0/24, 192.168.1.10, or 2001:db8::1" +msgstr "Используйте префиксы CIDR или IP-адреса, например 192.168.1.0/24, 192.168.1.10 или 2001:db8::1" + +msgid "Use letters, digits, dots, underscores, or hyphens" +msgstr "Используйте буквы, цифры, точки, подчёркивания или дефисы" + msgid "Use sing-box duration format like 10s, 1m or 2m30s" msgstr "Используйте формат длительности sing-box, например 10s, 1m или 2m30s" @@ -3410,11 +3989,14 @@ msgstr "Ошибки валидации:" msgid "Value cannot be empty" msgstr "Значение не может быть пустым" +msgid "Value must be a positive integer" +msgstr "Значение должно быть положительным целым числом" + msgid "Value must not contain control characters" msgstr "Значение не должно содержать символы управления" msgid "Verifying router and service readiness..." -msgstr "" +msgstr "Проверка готовности роутера и служб..." msgid "Via country.is" msgstr "Через country.is" @@ -3425,11 +4007,14 @@ msgstr "Посмотреть логи" msgid "Visible name of this section" msgstr "Видимое имя этой секции" +msgid "VLESS flow" +msgstr "VLESS flow" + msgid "vless://, vmess://, ss://, trojan://, socks4/5://, hy2/hysteria2:// links" msgstr "Ссылки vless://, vmess://, ss://, trojan://, socks4/5://, hy2/hysteria2://" msgid "Waiting for router services to restart..." -msgstr "" +msgstr "Ожидание перезапуска служб роутера..." msgid "WAN" msgstr "WAN" @@ -3458,6 +4043,18 @@ msgstr "Статус Watchdog" msgid "WebRTC Leak Protection" msgstr "Защита от утечек WebRTC" +msgid "Wed" +msgstr "Ср" + +msgid "Wednesday" +msgstr "Среда" + +msgid "Weekdays (Mon-Fri)" +msgstr "Будни (Пн-Пт)" + +msgid "Weekends (Sat-Sun)" +msgstr "Выходные (Сб-Вс)" + msgid "What Tachyon should do when this section matches" msgstr "Что должен делать Tachyon при совпадении этой секции" @@ -3473,6 +4070,9 @@ msgstr "Приватный ключ WireGuard из вашего аккаунта msgid "WireGuard private key from your Cloudflare WARP account" msgstr "Приватный ключ WireGuard из вашего аккаунта Cloudflare WARP" +msgid "XHTTP mode" +msgstr "Режим XHTTP" + msgid "YACD Secret Key" msgstr "Секретный ключ YACD" @@ -3647,45 +4247,12 @@ msgstr "Активные секции" msgid "All Profiles" msgstr "Все сервисы и профили" -msgid "Sections" -msgstr "Секции" - -msgid "Servers" -msgstr "Серверы" - -msgid "Monitoring" -msgstr "Мониторинг" - -msgid "Components" -msgstr "Компоненты" - -msgid "Drag rows to change priority. The rule at the top is checked first." -msgstr "Перетащите строки для изменения приоритета. Правило вверху проверяется первым." - -msgid "Rules" -msgstr "Правила" - msgid "Edit" -msgstr "Редактировать" +msgstr "Изменить" msgid "Connection" msgstr "Соединение" -msgid "Add a section" -msgstr "Добавить секцию" - -msgid "Add a server inbound" -msgstr "Добавить серверный инбаунд" - -msgid "Accept external proxy connections and route them with sing-box." -msgstr "Принимать внешние прокси-подключения и маршрутизировать их через sing-box." - -msgid "Section" -msgstr "Секция" - -msgid "Server" -msgstr "Сервер" - msgid "Installing" msgstr "Установка" @@ -3698,12 +4265,6 @@ msgstr "Установка пакета и обновление настроек msgid "Installation completed successfully!" msgstr "Установка успешно завершена!" -msgid "Direct" -msgstr "Напрямую" - -msgid "Tachyon Settings" -msgstr "Настройки Tachyon" - msgid "All Services" msgstr "Все сервисы" @@ -3743,24 +4304,6 @@ msgstr "TCP" msgid "TLS" msgstr "TLS" -msgid "Method" -msgstr "Метод" - -msgid "ALPN" -msgstr "ALPN" - -msgid "VLESS flow" -msgstr "VLESS flow" - -msgid "FakeTLS host" -msgstr "FakeTLS host" - -msgid "Concurrency" -msgstr "Параллелизм" - -msgid "Information" -msgstr "Информация" - msgid "Saving..." msgstr "Сохранение..." @@ -3776,141 +4319,21 @@ msgstr "Остановка..." msgid "Enabled" msgstr "Включено" -msgid "Disabled" -msgstr "Отключено" - -msgid "Configuration for Tachyon service" -msgstr "Конфигурация сервиса Tachyon" - msgid "Only the specified servers" msgstr "Только указанные серверы" msgid "Select all" msgstr "Выбрать все" -msgid "Routing mode" -msgstr "Режим маршрутизации" - -msgid "Routing section" -msgstr "Секция маршрутизации" - msgid "Keeps FakeIP cache persistent across reboots and pre-resolves popular blocked domains on startup so first-visit latency is 0 ms." msgstr "Сохраняет кэш FakeIP между перезагрузками и предварительно разрешает популярные заблокированные домены при запуске, чтобы задержка первого обращения была 0 мс." msgid "Configure User-Agent в the item settings" msgstr "Настройте User-Agent в параметрах элемента" -msgid "Client link" -msgstr "Клиентская ссылка" - -msgid "Client link QR code" -msgstr "QR-код клиентской ссылки" - -msgid "Client link is not available yet" -msgstr "Клиентская ссылка пока недоступна" - -msgid "Loading client link..." -msgstr "Загрузка клиентской ссылки..." - -msgid "Secret" -msgstr "Секрет" - msgid "Public Key" msgstr "Публичный ключ" -msgid "Certificate path" -msgstr "Путь к сертификату" - -msgid "Key path" -msgstr "Путь к ключу" - -msgid "Specify a file path" -msgstr "Укажите путь к файлу" - -msgid "Specify different files" -msgstr "Укажите разные файлы" - -msgid "Selected section" -msgstr "Выбранная секция" - -msgid "Inbound JSON" -msgstr "Inbound JSON" - -msgid "Inbound JSON cannot be empty" -msgstr "Inbound JSON не может быть пустым" - -msgid "Inbound JSON must be an object with a type field" -msgstr "Inbound JSON должен быть объектом с полем type" - -msgid "Server information" -msgstr "Информация о сервере" - -msgid "Server name" -msgstr "Имя сервера" - -msgid "Server name / SNI" -msgstr "Имя сервера / SNI" - -msgid "Reality fake site" -msgstr "Фейковый сайт Reality" - -msgid "Reality fake site port" -msgstr "Порт фейкового сайта Reality" - -msgid "Reality max time difference" -msgstr "Макс. разница времени Reality" - -msgid "Reality private key" -msgstr "Приватный ключ Reality" - -msgid "Reality public key" -msgstr "Публичный ключ Reality" - -msgid "Reality short ID" -msgstr "Короткий ID Reality" - -msgid "Reality short ID must contain 1-8 hex digits" -msgstr "Короткий ID Reality должен содержать 1-8 шестнадцатеричных цифр" - -msgid "Fronting IP" -msgstr "Fronting IP" - -msgid "Fronting port" -msgstr "Fronting порт" - -msgid "Fronting proxy protocol" -msgstr "Протокол Fronting прокси" - -msgid "gRPC service" -msgstr "Сервис gRPC" - -msgid "Transport host" -msgstr "Хост транспорта" - -msgid "Transport path" -msgstr "Путь транспорта" - -msgid "Transport path must start with /" -msgstr "Путь транспорта должен начинаться с /" - -msgid "HTTP hosts" -msgstr "HTTP хосты" - -msgid "XHTTP mode" -msgstr "Режим XHTTP" - -msgid "Fallback on unknown DC" -msgstr "Fallback при неизвестном DC" - -msgid "Padding" -msgstr "Padding" - -msgid "Handshake timeout" -msgstr "Таймаут рукопожатия" - -msgid "Time skew tolerance" -msgstr "Допуск отклонения времени" - msgid "Invalid NFQWS strategy" msgstr "Неверная стратегия NFQWS" @@ -3923,53 +4346,5 @@ msgstr "Установленная сборка \\u2192 Доступная сб msgid "Prevent multiple reload_firewall calls within 120 seconds to avoid connection drops." msgstr "Предотвращать множественные вызовы reload_firewall в течение 120 секунд для избежания разрыва соединений." -msgid "Obfuscation" -msgstr "Обфускация" - -msgid "Obfuscation password" -msgstr "Пароль обфускации" - -msgid "Auto update" -msgstr "Автообновление" - -msgid "Use CIDR prefixes like 192.168.1.0/24 or 2001:db8::/32" -msgstr "Используйте CIDR-префиксы, например 192.168.1.0/24 или 2001:db8::/32" - -msgid "Use an IP address" -msgstr "Используйте IP-адрес" - -msgid "Use an IP listen address" -msgstr "Используйте IP-адрес прослушивания" - -msgid "Use a domain name or IP address" -msgstr "Используйте имя домена или IP-адрес" - -msgid "Use an HTTP or HTTPS URL" -msgstr "Используйте HTTP или HTTPS URL" - -msgid "Use letters, digits, dots, underscores, or hyphens" -msgstr "Используйте буквы, цифры, точки, подчёркивания или дефисы" - -msgid "Use a non-negative integer" -msgstr "Используйте неотрицательное целое число" - -msgid "Use a non-zero secret" -msgstr "Используйте ненулевой секрет" - -msgid "Use 32 hex characters" -msgstr "Используйте 32 шестнадцатеричных символа" - -msgid "Use a duration like 30s, 5m, or 1h30m" -msgstr "Используйте длительность, например 30s, 5m или 1h30m" - -msgid "Expecting: %s" -msgstr "Ожидалось: %s" - -msgid "Cannot save server" -msgstr "Не удалось сохранить сервер" - -msgid "QR code is too large" -msgstr "QR-код слишком большой" - msgid "Restoring native direct internet..." msgstr "Восстановление прямого интернета..." diff --git a/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/local_devices.js b/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/local_devices.js index a33639df..e1e73d35 100644 --- a/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/local_devices.js +++ b/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/local_devices.js @@ -43,22 +43,25 @@ function normalizeOptionValues(value) { } function normalizeLocalDeviceName(name) { - return `${name || ""}`.trim().replace(/\.lan$/i, ""); + const clean = `${name || ""}`.trim().replace(/\.lan$/i, ""); + return clean === "*" ? "" : clean; } -function addLocalDeviceChoice(choices, ip, name) { +function addLocalDeviceChoice(choices, ip, name, mac) { const normalizedIp = `${ip || ""}`.trim(); const normalizedName = normalizeLocalDeviceName(name); - if (!normalizedIp || !normalizedName) { + if (!normalizedIp || !main.validateIP(normalizedIp).valid) { return; } - if (!main.validateIP(normalizedIp).valid) { - return; + if (normalizedName) { + choices[normalizedIp] = `${normalizedName} (${normalizedIp})`; + } else if (mac) { + choices[normalizedIp] = `${normalizedIp} [${mac.toLowerCase()}]`; + } else if (!choices[normalizedIp]) { + choices[normalizedIp] = `${normalizedIp}`; } - - choices[normalizedIp] = normalizedName; } function addRouterIp(routerIps, ip) { @@ -110,7 +113,7 @@ function buildLocalDeviceChoices(hostHints, dhcpLeases, networkInterfaces, dhcpH const routerIps = buildRouterIpMap(networkInterfaces); if (hostHints && typeof hostHints === "object") { - Object.values(hostHints).forEach((hint) => { + Object.entries(hostHints).forEach(([mac, hint]) => { if (!hint || typeof hint !== "object") { return; } @@ -120,7 +123,7 @@ function buildLocalDeviceChoices(hostHints, dhcpLeases, networkInterfaces, dhcpH ...normalizeOptionValues(hint.ipv4), ...normalizeOptionValues(hint.ipv6), ].forEach((ip) => { - addLocalDeviceChoice(choices, ip, hint.name); + addLocalDeviceChoice(choices, ip, hint.name, mac); }); }); } @@ -131,14 +134,14 @@ function buildLocalDeviceChoices(hostHints, dhcpLeases, networkInterfaces, dhcpH return; } - addLocalDeviceChoice(choices, lease.ipaddr, lease.hostname); + addLocalDeviceChoice(choices, lease.ipaddr, lease.hostname, lease.mac); }); } if (Array.isArray(dhcpHosts)) { dhcpHosts.forEach((host) => { if (host && host.ip && main.validateIP(host.ip).valid) { - addLocalDeviceChoice(choices, host.ip, host.name || host.mac); + addLocalDeviceChoice(choices, host.ip, host.name, host.mac); } }); } diff --git a/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js b/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js new file mode 100644 index 00000000..9792b4b7 --- /dev/null +++ b/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js @@ -0,0 +1,316 @@ +"use strict"; +"require baseclass"; +"require form"; +"require ui"; +"require uci"; +"require view.tachyon.main as main"; +"require view.tachyon.local_devices as local_devices"; + +const UCI_PACKAGE = "tachyon"; + +const DAY_LABELS = { + monday: _("Monday"), + tuesday: _("Tuesday"), + wednesday: _("Wednesday"), + thursday: _("Thursday"), + friday: _("Friday"), + saturday: _("Saturday"), + sunday: _("Sunday"), +}; + +const DAY_SHORT_LABELS = { + monday: _("Mon"), + tuesday: _("Tue"), + wednesday: _("Wed"), + thursday: _("Thu"), + friday: _("Fri"), + saturday: _("Sat"), + sunday: _("Sun"), +}; + +const DAY_INDEX_MAP = { + 0: "sunday", + 1: "monday", + 2: "tuesday", + 3: "wednesday", + 4: "thursday", + 5: "friday", + 6: "saturday", +}; + +function validateTime(sectionId, value) { + if (!value) { + return _("Time is required (e.g. 22:00)"); + } + const str = `${value}`.trim(); + if (!/^([01][0-9]|2[0-3]):[0-5][0-9]$/.test(str)) { + return _("Invalid time format. Expected HH:MM (e.g. 22:00)"); + } + return true; +} + +function normalizeDays(raw) { + if (!raw) return []; + if (Array.isArray(raw)) return raw.map((d) => `${d}`.toLowerCase().trim()).filter(Boolean); + return `${raw}`.split(/\s+/).map((d) => d.toLowerCase().trim()).filter(Boolean); +} + +function normalizeListValues(raw) { + if (!raw) return []; + if (Array.isArray(raw)) return raw.map((item) => `${item}`.trim()).filter(Boolean); + return `${raw}`.split(/\s+/).map((item) => item.trim()).filter(Boolean); +} + +function isScheduleCurrentlyActive(sectionId) { + const enabled = uci.get(UCI_PACKAGE, sectionId, "enabled") !== "0"; + if (!enabled) return false; + + const startTime = uci.get(UCI_PACKAGE, sectionId, "start_time") || "00:00"; + const endTime = uci.get(UCI_PACKAGE, sectionId, "end_time") || "23:59"; + const rawDays = uci.get(UCI_PACKAGE, sectionId, "days"); + const days = normalizeDays(rawDays); + + const now = new Date(); + const currentDay = DAY_INDEX_MAP[now.getDay()]; + + if (days.length > 0 && days.length < 7 && !days.includes(currentDay)) { + return false; + } + + const currentMinutes = now.getHours() * 60 + now.getMinutes(); + + const [sH, sM] = startTime.split(":").map(Number); + const [eH, eM] = endTime.split(":").map(Number); + const startMinutes = (sH || 0) * 60 + (sM || 0); + const endMinutes = (eH || 0) * 60 + (eM || 0); + + if (startMinutes > endMinutes) { + // Crosses midnight, e.g. 22:00 -> 08:00 + return currentMinutes >= startMinutes || currentMinutes <= endMinutes; + } + + return currentMinutes >= startMinutes && currentMinutes <= endMinutes; +} + +function formatDaysDisplay(rawDays) { + const days = normalizeDays(rawDays); + if (!days || days.length === 0 || days.length === 7) { + return _("Every day"); + } + + const weekdays = ["monday", "tuesday", "wednesday", "thursday", "friday"]; + const weekends = ["saturday", "sunday"]; + + const isWeekdays = + days.length === 5 && weekdays.every((d) => days.includes(d)); + if (isWeekdays) return _("Weekdays (Mon-Fri)"); + + const isWeekends = + days.length === 2 && weekends.every((d) => days.includes(d)); + if (isWeekends) return _("Weekends (Sat-Sun)"); + + return days.map((d) => DAY_SHORT_LABELS[d] || d).join(", "); +} + +function createParentalContent(section) { + // Enabled switch + let o = section.option(form.Flag, "enabled", _("Enable")); + o.default = "1"; + o.rmempty = false; + o.editable = true; + o.width = "5rem"; + + // Label / Rule name (Grid column + modal) + o = section.option(form.Value, "label", _("Rule Name")); + o.modalonly = false; + o.rmempty = false; + o.validate = function (sectionId, value) { + return value && `${value}`.trim().length > 0 ? true : _("Rule name is required"); + }; + o.placeholder = _("e.g. Kids Phone (Night YouTube)"); + + // Device column in table + o = section.option(form.DummyValue, "_device_display", _("Device / IP")); + o.modalonly = false; + o.rawhtml = true; + o.cfgvalue = function (sectionId) { + const rawIp = uci.get(UCI_PACKAGE, sectionId, "device_ip"); + const ips = Array.isArray(rawIp) ? rawIp : [rawIp].filter(Boolean); + if (ips.length === 0) return `${_("All devices")}`; + return ips.map((ip) => `${ip}`).join(" "); + }; + + // Target column in table + o = section.option(form.DummyValue, "_target_display", _("Target")); + o.modalonly = false; + o.rawhtml = true; + o.cfgvalue = function (sectionId) { + const target = uci.get(UCI_PACKAGE, sectionId, "target") || "all"; + if (target === "all") { + return `🚫 ${_("All Internet")}`; + } + const rawSecs = uci.get(UCI_PACKAGE, sectionId, "sections"); + const secNames = normalizeListValues(rawSecs); + if (secNames.length === 0 && target !== "sections") { + secNames.push(target); + } + if (secNames.length === 0) { + return `${_("No sections selected")}`; + } + return secNames.map((name) => { + const sec = uci.get(UCI_PACKAGE, name); + const label = (sec && (sec.label || sec[".name"])) || name; + return `🔒 ${label}`; + }).join(" "); + }; + + // Action column in table + o = section.option(form.DummyValue, "_action_display", _("Mode")); + o.modalonly = false; + o.rawhtml = true; + o.cfgvalue = function (sectionId) { + const action = uci.get(UCI_PACKAGE, sectionId, "action") || "block"; + if (action === "allow") { + return `✅ ${_("Allow in interval")}`; + } + return `🚫 ${_("Block in interval")}`; + }; + + // Schedule column in table + o = section.option(form.DummyValue, "_schedule_display", _("Schedule")); + o.modalonly = false; + o.rawhtml = true; + o.cfgvalue = function (sectionId) { + const s = uci.get(UCI_PACKAGE, sectionId, "start_time") || "00:00"; + const e = uci.get(UCI_PACKAGE, sectionId, "end_time") || "23:59"; + const days = formatDaysDisplay(uci.get(UCI_PACKAGE, sectionId, "days")); + return `
${s} — ${e}
${days}
`; + }; + + // Live status badge in table + o = section.option(form.DummyValue, "_live_status", _("Status")); + o.modalonly = false; + o.rawhtml = true; + o.cfgvalue = function (sectionId) { + const enabled = uci.get(UCI_PACKAGE, sectionId, "enabled") !== "0"; + if (!enabled) { + return `⏸ ${_("Disabled")}`; + } + const active = isScheduleCurrentlyActive(sectionId); + const action = uci.get(UCI_PACKAGE, sectionId, "action") || "block"; + if (active) { + const color = action === "allow" ? "#48bb78" : "#e53e3e"; + const text = action === "allow" ? _("Active (Allowed)") : _("Active (Blocking)"); + return `${text}`; + } + return `${_("Pending")}`; + }; + + // ─── Modal only configuration options ────────────────────────────────────── + + // Device selector with LAN hostnames integration + o = section.option( + form.DynamicList, + "device_ip", + _("Target Devices (IP / Hostname)"), + _("Select LAN devices to apply this schedule to, or enter IP addresses manually."), + ); + o.modalonly = true; + o.rmempty = false; + o.placeholder = "192.168.1.150"; + o.renderWidget = function (sectionId, optionIndex, cfgvalue) { + return local_devices.createLocalDeviceDynamicListWidget( + this, + sectionId, + cfgvalue, + ); + }; + + // Target Type selector + o = section.option( + form.ListValue, + "target", + _("Target Scope"), + _("Choose whether to restrict the entire internet or only specific Tachyon routing sections."), + ); + o.modalonly = true; + o.default = "all"; + o.value("all", _("All Internet (Complete internet cutoff)")); + o.value("sections", _("Specific Sections (Select sections below)")); + + // Multi-select for sections + o = section.option( + form.MultiValue, + "sections", + _("Select Sections"), + _("Choose which routing sections to apply this schedule to."), + ); + o.modalonly = true; + o.depends("target", "sections"); + o.load = function (sectionId) { + this.keylist = []; + this.vallist = []; + const secList = uci.sections(UCI_PACKAGE, "section") || []; + secList.forEach((s) => { + const sName = s[".name"]; + const sLabel = s.label ? `${s.label} (${s.action || "rule"})` : sName; + this.value(sName, sLabel); + }); + return form.MultiValue.prototype.load.apply(this, [sectionId]); + }; + + // Action Mode (Block vs Allow) + o = section.option( + form.ListValue, + "action", + _("Action Mode"), + _("Select whether to disable the target during the schedule or enable it ONLY during the schedule."), + ); + o.modalonly = true; + o.default = "block"; + o.value("block", _("Block / Disable in scheduled hours (Standard)")); + o.value("allow", _("Allow / Enable ONLY in scheduled hours (White period)")); + + // Start Time + o = section.option( + form.Value, + "start_time", + _("Start Time (HH:MM)"), + _("Beginning of the schedule interval (e.g. 22:00)"), + ); + o.modalonly = true; + o.default = "22:00"; + o.placeholder = "22:00"; + o.validate = validateTime; + + // End Time + o = section.option( + form.Value, + "end_time", + _("End Time (HH:MM)"), + _("End of the schedule interval (e.g. 08:00). Supports spans crossing midnight."), + ); + o.modalonly = true; + o.default = "08:00"; + o.placeholder = "08:00"; + o.validate = validateTime; + + // Days of week + o = section.option( + form.MultiValue, + "days", + _("Days of Week"), + _("Select active days. If none selected, the rule applies every day."), + ); + o.modalonly = true; + o.rmempty = true; + Object.entries(DAY_LABELS).forEach(([key, label]) => { + o.value(key, label); + }); +} + +const EntryPoint = { + createParentalContent, +}; + +return baseclass.extend(EntryPoint); diff --git a/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js b/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js index ca078f21..56cf73bb 100644 --- a/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js +++ b/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js @@ -1820,9 +1820,7 @@ function showServerInfoModal(sectionId) { } function getServerEditButtonText() { - const label = _("Edit rule action"); - - return label === "Edit rule action" ? "Edit" : label; + return _("Edit"); } function renderServerRowActions(sectionRef, sectionId) { diff --git a/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js b/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js index 0ade79d6..bd11dfad 100644 --- a/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js +++ b/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js @@ -15,6 +15,9 @@ // Server "require view.tachyon.server as server"; +// Parental Control +"require view.tachyon.parental as parental"; + // Dashboard "require view.tachyon.dashboard as dashboard"; @@ -65,9 +68,7 @@ function renderSectionAdd(sectionRef, extra_class) { } function getRuleEditButtonText() { - const label = _("Edit rule action"); - - return label === "Edit rule action" ? "Edit" : label; + return _("Edit"); } function configureGridSection(sectionRef, type, title, addTitle) { @@ -455,6 +456,20 @@ const EntryPoint = { }); server.createServerContent(serverSection, uiCapabilities); + const parentalSection = tachyonMap.section( + form.GridSection, + "schedule", + _("Parental Control"), + _("Block internet access or specific proxy sections for individual devices based on time and days."), + ); + configureGridSection( + parentalSection, + "schedule", + _("Schedule Rule"), + _("Add a schedule rule"), + ); + parental.createParentalContent(parentalSection); + const settingsSection = tachyonMap.section( form.TypedSection, "settings", diff --git a/luci-app-tachyon/po/ru/tachyon.po b/luci-app-tachyon/po/ru/tachyon.po index 0713785d..881f08ed 100644 --- a/luci-app-tachyon/po/ru/tachyon.po +++ b/luci-app-tachyon/po/ru/tachyon.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: TACHYON\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-17 11:15+0300\n" -"PO-Revision-Date: 2026-08-17 11:15+0300\n" +"POT-Creation-Date: 2026-08-17 20:24+0300\n" +"PO-Revision-Date: 2026-08-17 20:24+0300\n" "Last-Translator: Dushnilin\n" "Language-Team: none\n" "Language: ru\n" @@ -62,12 +62,27 @@ msgstr "✘ Остановлено" msgid "🔑 Generate" msgstr "🔑 Сгенерировать" +msgid "Accept external proxy connections and route them with sing-box." +msgstr "Принимать внешние прокси-подключения и маршрутизировать их через sing-box." + +msgid "Accept routes" +msgstr "Принимать маршруты" + msgid "Action" msgstr "Действие" +msgid "Action Mode" +msgstr "Режим действия" + msgid "Active" msgstr "Активные" +msgid "Active (Allowed)" +msgstr "Активно (Разрешено)" + +msgid "Active (Blocking)" +msgstr "Активно (Блокирует)" + msgid "Active Bootstrap DNS" msgstr "Активный Bootstrap DNS" @@ -80,6 +95,15 @@ msgstr "Активные соединения" msgid "Active Main DNS" msgstr "Активный основной DNS" +msgid "Add a schedule rule" +msgstr "Добавить правило расписания" + +msgid "Add a section" +msgstr "Добавить секцию" + +msgid "Add a server inbound" +msgstr "Добавить серверный инбаунд" + msgid "Add at least one DNS server" msgstr "Добавьте как минимум один DNS-сервер" @@ -116,6 +140,9 @@ msgstr "Дополнительно скрывать серверы по прот msgid "Additionally show servers by protocol, transport, and security. Add only servers matching the specified parameters." msgstr "Дополнительно показывать серверы по протоколу, транспорту и безопасности. Показывать только серверы, соответствующие указанным параметрам." +msgid "Address" +msgstr "Адрес" + msgid "Administrator Chat IDs" msgstr "Chat ID администраторов" @@ -125,6 +152,12 @@ msgstr "Расширенные функции самовосстановлени msgid "Advanced System" msgstr "Расширенные настройки" +msgid "Advertise exit node" +msgstr "Объявлять как выходной узел (Exit Node)" + +msgid "Advertise routes" +msgstr "Объявлять маршруты" + msgid "AEAD Method" msgstr "Метод AEAD" @@ -176,9 +209,18 @@ msgstr "Настройки AI Watchdog сохранены. Перезапуст msgid "All" msgstr "Все" +msgid "All devices" +msgstr "Все устройства" + msgid "All except selected" msgstr "Все кроме выбранных" +msgid "All Internet" +msgstr "Весь интернет" + +msgid "All Internet (Complete internet cutoff)" +msgstr "Весь интернет (Полное отключение)" + msgid "All remaining except selected" msgstr "Все остальные кроме выбранных" @@ -197,6 +239,12 @@ msgstr "Все серверы" msgid "All traffic from these IP addresses will be routed through the section unconditionally, ignoring all other conditions." msgstr "Весь трафик от этих IP-адресов будет маршрутизирован через секцию безусловно, игнорируя все остальные условия." +msgid "Allow / Enable ONLY in scheduled hours (White period)" +msgstr "Разрешать / Включать ТОЛЬКО в указанные часы (Белый список)" + +msgid "Allow in interval" +msgstr "Разрешено в интервале" + msgid "Allow Insecure TLS" msgstr "Разрешить небезопасный TLS" @@ -212,6 +260,12 @@ msgstr "Позволяет ограничить список серверов д msgid "Allows Tachyon to send diagnostic snapshots to ChatGPT or DeepSeek API for intelligent root-cause analysis and auto-repair recommendations." msgstr "Позволяет Tachyon отправлять диагностические снимки в ChatGPT или DeepSeek API для умного анализа причин проблем и рекомендаций по исправлению." +msgid "ALPN" +msgstr "ALPN" + +msgid "Alter ID" +msgstr "Alter ID" + msgid "AmneziaWG config loaded successfully!" msgstr "Конфигурация AmneziaWG успешно загружена!" @@ -260,6 +314,9 @@ msgstr "Авто" msgid "Auto refresh" msgstr "Автообновление" +msgid "Auto update" +msgstr "Автообновление" + msgid "Auto-detected domains" msgstr "Автоопределённые домены" @@ -311,12 +368,24 @@ msgstr "Ошибка проверки бэкенда: %s" msgid "Bearer Auth Token" msgstr "Токен авторизации (Bearer)" +msgid "Beginning of the schedule interval (e.g. 22:00)" +msgstr "Начало интервала расписания (например, 22:00)" + msgid "Belarus (by)" msgstr "Беларусь (by)" msgid "BitTorrent / P2P" msgstr "BitTorrent / P2P" +msgid "Block / Disable in scheduled hours (Standard)" +msgstr "Блокировать / Отключать в указанные часы (Стандарт)" + +msgid "Block in interval" +msgstr "Блокируется в интервале" + +msgid "Block internet access or specific proxy sections for individual devices based on time and days." +msgstr "Блокировка доступа в интернет или определенных секций маршрутизации для отдельных устройств по времени и дням недели." + msgid "Bootstrap DNS" msgstr "Bootstrap DNS" @@ -401,12 +470,21 @@ msgstr "Отмена" msgid "Cannot receive checks result" msgstr "Не удалось получить результаты проверки" +msgid "Cannot save server" +msgstr "Не удалось сохранить сервер" + msgid "Cannot save settings" msgstr "Не удалось сохранить настройки" msgid "Cascade connection" msgstr "Каскадное подключение" +msgid "Certificate path" +msgstr "Путь к сертификату" + +msgid "Certificate pin is unavailable. Apply or restart the server to generate the default certificate, then open this dialog again." +msgstr "Пин сертификата недоступен. Примените настройки или перезапустите сервер для генерации сертификата, затем откройте это окно снова." + msgid "Check completed!" msgstr "Проверка завершена!" @@ -464,9 +542,15 @@ msgstr "Китай (cn)" msgid "Choose Hosts File..." msgstr "Выбрать файл Hosts..." +msgid "Choose whether to restrict the entire internet or only specific Tachyon routing sections." +msgstr "Выберите, блокировать ли весь доступ в интернет или только определенные секции Tachyon." + msgid "Choose whether to route traffic to all destinations except selected countries (Exclude) or only to selected countries (Include)." msgstr "Выберите, маршрутизировать ли трафик ко всем назначениям кроме выбранных стран (Исключить) или только в выбранные страны (Включить)." +msgid "Choose which routing sections to apply this schedule to." +msgstr "Выберите секции маршрутизации, к которым применяется данное расписание." + msgid "CIDR must be between 0 and 32 for IPv4 or 0 and 128 for IPv6" msgstr "CIDR должен быть от 0 до 32 для IPv4 или от 0 до 128 для IPv6" @@ -482,12 +566,39 @@ msgstr "Очистить" msgid "Clear DNS cache" msgstr "Очистить кэш DNS" +msgid "Client Address" +msgstr "Адрес клиента" + msgid "Client Certificate" msgstr "Клиентский сертификат" +msgid "Client DNS" +msgstr "DNS клиента" + +msgid "Client fingerprint" +msgstr "Fingerprint клиента" + msgid "Client Key" msgstr "Клиентский ключ" +msgid "Client link" +msgstr "Клиентская ссылка" + +msgid "Client link is not available yet" +msgstr "Клиентская ссылка пока недоступна" + +msgid "Client link QR code" +msgstr "QR-код клиентской ссылки" + +msgid "Client Private Key" +msgstr "Приватный ключ клиента" + +msgid "Client Public Key" +msgstr "Публичный ключ клиента" + +msgid "Client VPN IP address (e.g. 10.0.0.2/32)" +msgstr "VPN IP-адрес клиента (например, 10.0.0.2/32)" + msgid "Close" msgstr "Закрыть" @@ -524,9 +635,15 @@ msgstr "Доступно обновление компонента" msgid "Component update check interval" msgstr "Интервал проверки обновлений компонентов" +msgid "Components" +msgstr "Компоненты" + msgid "compressed" msgstr "compressed" +msgid "Concurrency" +msgstr "Параллелизм" + msgid "Conditions" msgstr "Условия" @@ -536,6 +653,9 @@ msgstr "Путь к файлу конфигурации" msgid "Config Snapshots" msgstr "Снапшоты конфигурации" +msgid "Configuration for Tachyon service" +msgstr "Конфигурация сервиса Tachyon" + msgid "Configure User-Agent in the item settings" msgstr "Настройте User-Agent в параметрах элемента" @@ -563,6 +683,9 @@ msgstr "Подключения недоступны" msgid "Connectivity probe failed" msgstr "Проверка соединения не прошла" +msgid "Cookie packet junk size (S3)" +msgstr "Размер мусора в пакете cookie (S3)" + msgid "Copied" msgstr "Скопировано" @@ -605,8 +728,20 @@ msgstr "Пользовательские заголовки устройства msgid "Custom DNS Records (Hosts)" msgstr "Пользовательские DNS-записи (Hosts)" +msgid "Custom header for cookie packet" +msgstr "Пользовательский заголовок для пакета cookie" + +msgid "Custom header for data packet" +msgstr "Пользовательский заголовок для пакета данных" + +msgid "Custom header for handshake initiation" +msgstr "Пользовательский заголовок для инициации рукопожатия" + +msgid "Custom header for handshake response" +msgstr "Пользовательский заголовок для ответа рукопожатия" + msgid "Custom OpenAI-Compatible API" -msgstr "" +msgstr "Пользовательский OpenAI-совместимый API" msgid "Custom OpenAI-compatible API endpoint URL (e.g. http://192.168.1.100:11434/v1/chat/completions)" msgstr "Пользовательский URL эндпоинта OpenAI-совместимого API (напр. http://192.168.1.100:11434/v1/chat/completions)" @@ -614,9 +749,15 @@ msgstr "Пользовательский URL эндпоинта OpenAI-совм msgid "Custom outbound configurations in JSON format" msgstr "Пользовательские конфигурации outbound в формате JSON" +msgid "Dashboard" +msgstr "Панель управления" + msgid "Dashboard currently unavailable" msgstr "Дашборд сейчас недоступен" +msgid "Days of Week" +msgstr "Дни недели" + msgid "Default (auto)" msgstr "По умолчанию (авто)" @@ -647,6 +788,9 @@ msgstr "Обнаруживает и отбрасывает пакеты STUN/TUR msgid "detour must be a non-empty string" msgstr "detour должен быть непустой строкой" +msgid "Device / IP" +msgstr "Устройство / IP" + msgid "Device filter" msgstr "Фильтр устройств" @@ -671,6 +815,12 @@ msgstr "DHCP содержит DNS сервер" msgid "DHCP is managed manually" msgstr "DHCP управляется вручную" +msgid "Diagnostics" +msgstr "Диагностика" + +msgid "Direct" +msgstr "Напрямую" + msgid "Direct (Default)" msgstr "Прямое (по умолчанию)" @@ -692,6 +842,9 @@ msgstr "Отключить QUIC" msgid "Disable the QUIC protocol to improve compatibility or fix issues with video streaming" msgstr "Отключить протокол QUIC для улучшения совместимости или исправления проблем с видео-стримингом" +msgid "Disabled" +msgstr "Отключено" + msgid "Disabling interception is incompatible with action=zapret2 because Tachyon sends matched traffic through NFQUEUE." msgstr "Отключение перехвата несовместимо с action=zapret2, потому что Tachyon направляет совпавший трафик через NFQUEUE." @@ -743,6 +896,9 @@ msgstr "DNS-сервер" msgid "DNS server address cannot be empty" msgstr "Адрес DNS-сервера не может быть пустым" +msgid "DNS server pushed to the client configuration" +msgstr "DNS-сервер, передаваемый клиенту в конфигурации" + msgid "DNS server used by the resolver" msgstr "DNS-сервер, используемый резолвером" @@ -836,6 +992,9 @@ msgstr "Входящий" msgid "Download" msgstr "Скачать" +msgid "Download .conf" +msgstr "Скачать .conf" + msgid "Download component packages via the selected section" msgstr "Загружать пакеты компонентов через выбранную секцию" @@ -866,6 +1025,9 @@ msgstr "Загружать через" msgid "Downloaded" msgstr "Загружено" +msgid "Drag rows to change priority. The rule at the top is checked first." +msgstr "Перетащите строки для изменения приоритета. Правило вверху проверяется первым." + msgid "DSCP marks (QoS)" msgstr "DSCP-метки (QoS)" @@ -881,12 +1043,18 @@ msgstr "напр. AES-256-GCM — оставьте пустым для знач msgid "e.g. google.com, 1.1.1.1, 443" msgstr "напр. google.com, 1.1.1.1, 443" +msgid "e.g. Kids Phone (Night YouTube)" +msgstr "например, Телефон ребенка (YouTube на ночь)" + msgid "e.g. SHA256 — leave empty for default" msgstr "напр. SHA256 — оставьте пустым для значения по умолчанию" msgid "Each entry must be \"proto\", \"proto:port\" or \"proto:port-port\" (tcp/udp), e.g. tcp:6881,udp:6881-6889" msgstr "Каждая запись — \"proto\", \"proto:port\" или \"proto:port-port\" (tcp/udp), напр. tcp:6881,udp:6881-6889" +msgid "Edit rule action" +msgstr "Редактировать действие правила" + msgid "Enable" msgstr "Включить" @@ -902,6 +1070,9 @@ msgstr "Включить AI Doctor (интеграция с LLM)" msgid "Enable Anomaly Detection" msgstr "Включить обнаружение аномалий" +msgid "Enable authentication" +msgstr "Включить аутентификацию" + msgid "Enable automatic updates for remote lists and rule sets" msgstr "Включить автообновление удалённых списков и наборов правил" @@ -977,6 +1148,15 @@ msgstr "Включает фоновый демон, который опраши msgid "Enables the background watchdog process to monitor services and auto-recover on failures." msgstr "Включает фоновый процесс watchdog для мониторинга сервисов и автоматического восстановления при сбоях." +msgid "End of the schedule interval (e.g. 08:00). Supports spans crossing midnight." +msgstr "Конец интервала расписания (например, 08:00). Поддерживает переход через полночь." + +msgid "End Time (HH:MM)" +msgstr "Время окончания (ЧЧ:ММ)" + +msgid "Enter a complete sing-box inbound object" +msgstr "Введите полный JSON объект inbound для sing-box" + msgid "Enter a complete sing-box outbound object" msgstr "Введите полный объект outbound sing-box" @@ -1007,6 +1187,9 @@ msgstr "Ошибка запуска генератора:" msgid "Error running trace:" msgstr "Ошибка выполнения трассировки:" +msgid "Every day" +msgstr "Каждый день" + msgid "Exclude by proxy parameters" msgstr "Исключить по параметрам прокси" @@ -1040,6 +1223,9 @@ msgstr "Исключить группу URLTest / Приоритет" msgid "Excluded devices" msgstr "Исключённые устройства" +msgid "Expecting: %s" +msgstr "Ожидалось: %s" + msgid "Expires" msgstr "Истекает" @@ -1131,7 +1317,7 @@ msgid "Failed to stop watchdog" msgstr "Не удалось остановить watchdog" msgid "Failed to switch proxy" -msgstr "" +msgstr "Не удалось переключить прокси" msgid "Failed to update device" msgstr "Не удалось обновить устройство" @@ -1148,6 +1334,12 @@ msgstr "FakeIP и контрольная проверка используют msgid "FakeIP works; public IP comparison is inconclusive" msgstr "FakeIP работает; сравнение публичных IP не дает однозначного результата" +msgid "FakeTLS host" +msgstr "FakeTLS host" + +msgid "Fallback on unknown DC" +msgstr "Fallback при неизвестном DC" + msgid "Faster DNS health monitoring than the default cycle. Switches bootstrap DNS on failure." msgstr "Более быстрый мониторинг состояния DNS, чем стандартный цикл. Переключает bootstrap DNS при сбое." @@ -1190,6 +1382,21 @@ msgstr "Принудительно направлять DNS-запросы че msgid "France (fr)" msgstr "Франция (fr)" +msgid "Fri" +msgstr "Пт" + +msgid "Friday" +msgstr "Пятница" + +msgid "Fronting IP" +msgstr "Fronting IP" + +msgid "Fronting port" +msgstr "Fronting порт" + +msgid "Fronting proxy protocol" +msgstr "Протокол Fronting прокси" + msgid "Full System Diagnostic" msgstr "Полная диагностика системы" @@ -1250,12 +1457,30 @@ msgstr "Дайте снапшоту имя. Он сохраняется с те msgid "Global check" msgstr "Глобальная проверка" +msgid "gRPC service" +msgstr "Сервис gRPC" + +msgid "Handshake timeout" +msgstr "Таймаут рукопожатия" + msgid "Health Checks" msgstr "Проверки здоровья" msgid "Hello! I am Tachyon AI Assistant. How can I help you today? Ask me about domain blocks, diagnostics, or router settings." msgstr "Привет! Я ИИ-ассистент Tachyon. Чем могу помочь? Задайте вопрос о блокировках, диагностике или настройках роутера." +msgid "Hex or binary junk payload" +msgstr "Hex или бинарный мусор" + +msgid "Hex or binary payload" +msgstr "Hex или бинарный полезный груз" + +msgid "Hex or binary payload for init" +msgstr "Hex или бинарный полезный груз для init" + +msgid "Hex or binary payload for response" +msgstr "Hex или бинарный полезный груз для response" + msgid "Hide cascade connection nodes" msgstr "Скрыть узлы каскадных подключений" @@ -1340,6 +1565,9 @@ msgstr "HTTP" msgid "HTTP error" msgstr "Ошибка HTTP" +msgid "HTTP hosts" +msgstr "HTTP хосты" + msgid "HTTP REST API for external AI agents (Claude, GPT, Open-WebUI) served at /cgi-bin/tachyon-agent/" msgstr "HTTP REST API для внешних ИИ-агентов (Claude, GPT, Open-WebUI), доступен по адресу /cgi-bin/tachyon-agent/" @@ -1370,6 +1598,15 @@ msgstr "Импортировать группы URLTest подписки" msgid "Import URLTest groups returned by this subscription provider" msgstr "Импортировать группы URLTest, возвращённые этим провайдером подписки" +msgid "Inbound JSON" +msgstr "Inbound JSON" + +msgid "Inbound JSON cannot be empty" +msgstr "Inbound JSON не может быть пустым" + +msgid "Inbound JSON must be an object with a type field" +msgstr "Inbound JSON должен быть объектом с полем type" + msgid "Include by proxy parameters" msgstr "Включить по параметрам прокси" @@ -1388,6 +1625,18 @@ msgstr "Включить выбранные страны" msgid "Include servers" msgstr "Включить серверы" +msgid "Information" +msgstr "Информация" + +msgid "Init handshake timeout" +msgstr "Таймаут начального рукопожатия" + +msgid "Init packet header (H1)" +msgstr "Заголовок init-пакета (H1)" + +msgid "Init packet junk size (S1)" +msgstr "Размер мусора init-пакета (S1)" + msgid "Init Packet Magic Header (S1)" msgstr "Magic-заголовок пакета инициализации (S1)" @@ -1409,6 +1658,12 @@ msgstr "Полезная нагрузка пакета инициализаци msgid "Init Packet Payload (I5)" msgstr "Полезная нагрузка пакета инициализации (I5)" +msgid "Init payload (I1)" +msgstr "Полезный груз init (I1)" + +msgid "Init timeout (Itime)" +msgstr "Таймаут init (Itime)" + msgid "Install" msgstr "Установить" @@ -1580,6 +1835,9 @@ msgstr "Неверный URL-адрес SOCKS: должен начинаться msgid "Invalid SOCKS URL: parsing failed" msgstr "Неверный URL SOCKS: парсинг не удался" +msgid "Invalid time format. Expected HH:MM (e.g. 22:00)" +msgstr "Неверный формат времени. Ожидается ЧЧ:ММ (например, 22:00)" + msgid "Invalid Trojan URL: must not contain spaces" msgstr "Неверный URL Trojan: не должен содержать пробелов" @@ -1697,9 +1955,39 @@ msgstr "Макс. размер мусора (Jmax)" msgid "Junk Min Size (Jmin)" msgstr "Мин. размер мусора (Jmin)" +msgid "Junk packet count (Jc)" +msgstr "Количество мусорных пакетов (Jc)" + msgid "Junk Packet Count (Jc)" msgstr "Количество мусорных пакетов (Jc)" +msgid "Junk packet max size (Jmax)" +msgstr "Максимальный размер мусорного пакета (Jmax)" + +msgid "Junk packet min size (Jmin)" +msgstr "Минимальный размер мусорного пакета (Jmin)" + +msgid "Junk payload (J1)" +msgstr "Мусорный полезный груз (J1)" + +msgid "Junk payload (J2)" +msgstr "Мусорный полезный груз (J2)" + +msgid "Junk payload (J3)" +msgstr "Мусорный полезный груз (J3)" + +msgid "Junk size for cookie packet" +msgstr "Размер мусора для пакета cookie" + +msgid "Junk size for initiation packet" +msgstr "Размер мусора для пакета инициации" + +msgid "Junk size for response packet" +msgstr "Размер мусора для пакета ответа" + +msgid "Junk size for transport packet" +msgstr "Размер мусора для транспортного пакета" + msgid "Kazakhstan (kz)" msgstr "Казахстан (kz)" @@ -1715,6 +2003,9 @@ msgstr "Сохраняет FakeIP-кэш между перезагрузками msgid "Key" msgstr "Ключ" +msgid "Key path" +msgstr "Путь к ключу" + msgid "Keyword must not contain spaces or commas" msgstr "Ключевое слово не должно содержать пробелов или запятых" @@ -1751,6 +2042,12 @@ msgstr "Список автоматически определённых дом msgid "List Update Frequency" msgstr "Частота обновления списков" +msgid "Listen address" +msgstr "Адрес прослушивания" + +msgid "Listen port" +msgstr "Порт прослушивания" + msgid "Listening port" msgstr "Слушающий порт" @@ -1772,6 +2069,9 @@ msgstr "Загружено %d текущих записей" msgid "Loaded!" msgstr "Загружено!" +msgid "Loading client link..." +msgstr "Загрузка клиентской ссылки..." + msgid "Loading connected LAN devices..." msgstr "Загрузка списка устройств LAN..." @@ -1826,18 +2126,27 @@ msgstr "Сопоставлять трафик по DSCP-метке пакета msgid "Max reconnects per hour before alert (default 10)." msgstr "Макс. переподключений в час до оповещения (по умолчанию 10)." +msgid "Maximum size of junk packets" +msgstr "Максимальный размер мусорных пакетов" + msgid "Maximum time to wait for example.com to resolve during a DNS health check." msgstr "Максимальное время ожидания разрешения example.com при проверке DNS." msgid "Memory Usage" msgstr "Использование памяти" +msgid "Method" +msgstr "Метод" + msgid "Metrics Retention (hours)" msgstr "Хранение метрик (часы)" msgid "Minimum latency difference in milliseconds that triggers switching to a faster server." msgstr "Минимальная разница задержки в миллисекундах, при которой происходит переключение на более быстрый сервер." +msgid "Minimum size of junk packets" +msgstr "Минимальный размер мусорных пакетов" + msgid "Mixed Proxy Password" msgstr "Пароль смешанного прокси" @@ -1847,12 +2156,24 @@ msgstr "Порт смешанного прокси" msgid "Mixed Proxy Username" msgstr "Имя пользователя смешанного прокси" +msgid "Mode" +msgstr "Режим" + msgid "Model name to use. Leave empty to use default (gpt-4o-mini / claude-3-5-haiku / deepseek-chat / llama3:latest)." msgstr "Имя модели. Оставьте пустым для использования по умолчанию (gpt-4o-mini / claude-3-5-haiku / deepseek-chat / llama3:latest)." +msgid "Mon" +msgstr "Пн" + +msgid "Monday" +msgstr "Понедельник" + msgid "Monitored Interfaces" msgstr "Отслеживаемые интерфейсы" +msgid "Monitoring" +msgstr "Мониторинг" + msgid "Monitoring & Analytics" msgstr "Мониторинг и аналитика" @@ -1944,7 +2265,7 @@ msgid "No Custom Rules Matched" msgstr "Нет совпадений с пользовательскими правилами" msgid "No DHCP clients detected" -msgstr "" +msgstr "DHCP-клиенты не обнаружены" msgid "No diagnostic history available yet." msgstr "История проверок пока пуста." @@ -1979,6 +2300,9 @@ msgstr "Нет правил, использующих Zapret" msgid "No rules use Zapret2" msgstr "Нет правил, использующих Zapret2" +msgid "No sections selected" +msgstr "Секции не выбраны" + msgid "No snapshots yet" msgstr "Снапшотов пока нет" @@ -2048,6 +2372,15 @@ msgstr "Количество последовательных ошибок до msgid "Number of consecutive successful checks required before returning to a higher-priority DNS server." msgstr "Количество последовательных успешных проверок до возврата на DNS-сервер с более высоким приоритетом." +msgid "Number of junk packets before handshake (1-10)" +msgstr "Количество мусорных пакетов перед рукопожатием (1-10)" + +msgid "Obfuscation" +msgstr "Обфускация" + +msgid "Obfuscation password" +msgstr "Пароль обфускации" + msgid "Ollama (Local PC / Server)" msgstr "Ollama (локальный ПК / сервер)" @@ -2088,7 +2421,7 @@ msgid "Open Project Page" msgstr "Открыть страницу проекта" msgid "Operation completed successfully!" -msgstr "" +msgstr "Операция успешно завершена!" msgid "Operation failed" msgstr "Операция не выполнена" @@ -2103,7 +2436,7 @@ msgid "Operation log is not available" msgstr "Лог операции недоступен" msgid "Operation started. Waiting for log output..." -msgstr "" +msgstr "Операция запущена. Ожидание вывода логов..." msgid "Operation timed out" msgstr "Время ожидания истекло" @@ -2156,6 +2489,12 @@ msgstr "Порты P2P-клиента" msgid "P2P Leak Protection" msgstr "Защита от утечек P2P" +msgid "Padding" +msgstr "Padding" + +msgid "Parental Control" +msgstr "Родительский контроль" + msgid "Parsed records:" msgstr "Обработанные записи:" @@ -2183,6 +2522,15 @@ msgstr "Путь должен заканчиваться на cache.db" msgid "Pause updates" msgstr "Приостановить обновление" +msgid "Payload (I3)" +msgstr "Полезный груз (I3)" + +msgid "Payload (I4)" +msgstr "Полезный груз (I4)" + +msgid "Payload (I5)" +msgstr "Полезный груз (I5)" + msgid "Peer Public Key" msgstr "Публичный ключ пира" @@ -2255,12 +2603,18 @@ msgstr "Предзагрузить все предустановленные с msgid "Pre-shared key" msgstr "Предварительный общий ключ" +msgid "Pre-shared Key (PSK)" +msgstr "Pre-shared Key (PSK)" + msgid "Prefer IPv4" msgstr "Предпочитать IPv4" msgid "Prefer IPv6" msgstr "Предпочитать IPv6" +msgid "Preferred IP" +msgstr "Предпочитаемый IP" + msgid "Prefix text" msgstr "Текст префикса" @@ -2324,6 +2678,9 @@ msgstr "PSK" msgid "Public host" msgstr "Публичный хост" +msgid "QR code is too large" +msgstr "QR-код слишком большой" + msgid "QUIC (HTTP/3)" msgstr "QUIC (HTTP/3)" @@ -2333,6 +2690,27 @@ msgstr "RDP" msgid "Read error" msgstr "Ошибка чтения" +msgid "Reality fake site" +msgstr "Фейковый сайт Reality" + +msgid "Reality fake site port" +msgstr "Порт фейкового сайта Reality" + +msgid "Reality max time difference" +msgstr "Макс. разница времени Reality" + +msgid "Reality private key" +msgstr "Приватный ключ Reality" + +msgid "Reality public key" +msgstr "Публичный ключ Reality" + +msgid "Reality short ID" +msgstr "Короткий ID Reality" + +msgid "Reality short ID must contain 1-8 hex digits" +msgstr "Короткий ID Reality должен содержать 1-8 шестнадцатеричных цифр" + msgid "Rebuild firewall rules" msgstr "Пересобрать правила firewall" @@ -2373,10 +2751,10 @@ msgid "Reinstall" msgstr "Переустановить" msgid "Reload now" -msgstr "" +msgstr "Перезагрузить сейчас" msgid "Reloading..." -msgstr "" +msgstr "Перезагрузка..." msgid "Remote Hosts Lists" msgstr "Удалённые списки Hosts" @@ -2435,12 +2813,21 @@ msgstr "Выбор ресурсов по IP или CIDR внутри nfqws не msgid "Resource selection by IP or CIDR inside nfqws2 is not supported here; sing-box selects resources before NFQUEUE." msgstr "Выбор ресурсов по IP или CIDR внутри nfqws2 не поддерживается здесь; sing-box выбирает ресурсы до NFQUEUE." +msgid "Response packet header (H2)" +msgstr "Заголовок пакета ответа (H2)" + +msgid "Response packet junk size (S2)" +msgstr "Размер мусора пакета ответа (S2)" + msgid "Response Packet Magic Header (S2)" msgstr "Magic-заголовок ответного пакета (S2)" msgid "Response Packet Magic Header (S4)" msgstr "Magic-заголовок ответного пакета (S4)" +msgid "Response payload (I2)" +msgstr "Полезный груз ответа (I2)" + msgid "Restart dnsmasq" msgstr "Перезапустить dnsmasq" @@ -2501,15 +2888,27 @@ msgstr "Маршрутизировать запросы к этому DNS-сер msgid "Route via Proxy" msgstr "Через прокси" +msgid "Routing mode" +msgstr "Режим маршрутизации" + msgid "Routing Rule Tracer" msgstr "Трассировщик правил маршрутизации" msgid "Routing rules" msgstr "Правила маршрутизации" +msgid "Routing section" +msgstr "Секция маршрутизации" + msgid "Rule" msgstr "Правило" +msgid "Rule Name" +msgstr "Название правила" + +msgid "Rule name is required" +msgstr "Необходимо указать название правила" + msgid "Rule set must be an HTTP(S) URL or a local .srs / .json path" msgstr "Набор правил должен быть HTTP(S) URL или локальным путём .srs / .json" @@ -2522,6 +2921,9 @@ msgstr "Наборы правил" msgid "Rule Sets (.srs / .json)" msgstr "Наборы правил (.srs / .json)" +msgid "Rules" +msgstr "Правила" + msgid "Rules mangle counters" msgstr "Счётчики правил mangle" @@ -2555,6 +2957,12 @@ msgstr "Запущен" msgid "Russia (ru)" msgstr "Россия (ru)" +msgid "Sat" +msgstr "Сб" + +msgid "Saturday" +msgstr "Суббота" + msgid "Save" msgstr "Сохранить" @@ -2573,9 +2981,18 @@ msgstr "Сохранить снапшот" msgid "Saving…" msgstr "Сохранение…" +msgid "Schedule" +msgstr "Расписание" + +msgid "Schedule Rule" +msgstr "Правило расписания" + msgid "Search" msgstr "Поиск" +msgid "Secret" +msgstr "Секрет" + msgid "Secret key for authenticating remote access to YACD when WAN access is enabled." msgstr "Секретный ключ для аутентификации удалённого доступа к YACD при включённом WAN-доступе." @@ -2585,6 +3002,9 @@ msgstr "Секретный токен для авторизации операц msgid "Secret token for WRITE requests" msgstr "Секретный токен для POST/PUT запросов" +msgid "Section" +msgstr "Секция" + msgid "Section action" msgstr "Действие секции" @@ -2597,6 +3017,9 @@ msgstr "Содержимое правил секции" msgid "Section test order (checked = active, drag rows with △▽):" msgstr "Порядок проверки секций (галочка = активна, перетаскивайте △▽):" +msgid "Sections" +msgstr "Секции" + msgid "Security" msgstr "Безопасность" @@ -2624,6 +3047,9 @@ msgstr "Выберите секцию для загрузки этой подп msgid "Select a transit section" msgstr "Выберите транзитную секцию" +msgid "Select active days. If none selected, the rule applies every day." +msgstr "Выберите активные дни. Если ни один день не выбран, правило действует каждый день." + msgid "Select AI LLM provider for diagnostics" msgstr "Выберите провайдер ИИ LLM для диагностики" @@ -2642,6 +3068,9 @@ msgstr "Выберите и упорядочите секции, через ко msgid "Select DNS protocol to use" msgstr "Выберите протокол DNS" +msgid "Select LAN devices to apply this schedule to, or enter IP addresses manually." +msgstr "Выберите LAN-устройства для применения расписания или введите IP-адреса вручную." + msgid "Select network interface for VPN connection" msgstr "Выберите интерфейс для VPN-подключения" @@ -2660,6 +3089,9 @@ msgstr "Выберите или введите IP-адреса ваших игр msgid "Select path for sing-box config file. Change this ONLY if you know what you are doing" msgstr "Выберите путь к файлу конфигурации sing-box. Изменяйте ТОЛЬКО если точно знаете, что делаете" +msgid "Select Sections" +msgstr "Выбор секций" + msgid "Select the fastest node" msgstr "Выбирать самый быстрый узел" @@ -2675,9 +3107,15 @@ msgstr "Выберите интерфейс, на который будет ид msgid "Select the WAN interfaces to be monitored" msgstr "Выберите WAN-интерфейсы для отслеживания" +msgid "Select whether to disable the target during the schedule or enable it ONLY during the schedule." +msgstr "Выберите, отключать ли цель в период расписания или включать ТОЛЬКО в период расписания." + msgid "Selected" msgstr "Выбран" +msgid "Selected section" +msgstr "Выбранная секция" + msgid "Selector and URLTest outbounds must contain a non-empty outbounds array" msgstr "Selector и URLTest outbound должны содержать непустой массив outbounds" @@ -2702,6 +3140,9 @@ msgstr "Отправлять уведомление в Telegram при пере msgid "Send a Telegram notification when proxy subscriptions are successfully updated." msgstr "Отправлять уведомление в Telegram при успешном обновлении подписок прокси." +msgid "Server" +msgstr "Сервер" + msgid "Server Address" msgstr "Адрес сервера" @@ -2714,6 +3155,15 @@ msgstr "Группа серверов для автоматического вы msgid "Server group for priority failover" msgstr "Группа серверов для приоритетного переключения" +msgid "Server information" +msgstr "Информация о сервере" + +msgid "Server name" +msgstr "Имя сервера" + +msgid "Server name / SNI" +msgstr "Имя сервера / SNI" + msgid "Server Name Indication — leave empty to use server address" msgstr "Server Name Indication — оставьте пустым для использования адреса сервера" @@ -2726,12 +3176,24 @@ msgstr "Серверный outbound должен содержать числов msgid "Server Port" msgstr "Порт сервера" +msgid "Server Private Key" +msgstr "Приватный ключ сервера" + +msgid "Server Public Key" +msgstr "Публичный ключ сервера" + msgid "Server unavailable" msgstr "Сервер недоступен" +msgid "Server VPN IP address and subnet (e.g. 10.0.0.1/24)" +msgstr "VPN IP-адрес и подсеть сервера (например, 10.0.0.1/24)" + msgid "server_port must be a number from 1 to 65535" msgstr "server_port должен быть числом от 1 до 65535" +msgid "Servers" +msgstr "Серверы" + msgid "Servers on dashboard" msgstr "Серверы на дашборде" @@ -2745,13 +3207,13 @@ msgid "Services & Access" msgstr "Сервисы и доступ" msgid "Services are online and ready! Reloading page..." -msgstr "" +msgstr "Службы запущены и готовы к работе! Перезагрузка страницы..." msgid "Services info" msgstr "Информация о сервисах" msgid "Services restarted. Click to reload page." -msgstr "" +msgstr "Службы перезапущены. Нажмите для перезагрузки страницы." msgid "Settings" msgstr "Настройки" @@ -2861,6 +3323,15 @@ msgstr "Устройства-источники" msgid "Source Network Interface" msgstr "Исходный сетевой интерфейс" +msgid "Specific Sections (Select sections below)" +msgstr "Выборочные секции (Выберите секции ниже)" + +msgid "Specify a file path" +msgstr "Укажите путь к файлу" + +msgid "Specify different files" +msgstr "Укажите разные файлы" + msgid "SSH" msgstr "SSH" @@ -2909,6 +3380,9 @@ msgstr "Запустить sing-box" msgid "Start Tachyon" msgstr "Запустить Tachyon" +msgid "Start Time (HH:MM)" +msgstr "Время начала (ЧЧ:ММ)" + msgid "Start watchdog" msgstr "Запустить watchdog" @@ -2978,6 +3452,12 @@ msgstr "Успех" msgid "Successfully imported %d DNS record(s)" msgstr "Успешно импортировано %d DNS-записей" +msgid "Sun" +msgstr "Вс" + +msgid "Sunday" +msgstr "Воскресенье" + msgid "Sweden (se)" msgstr "Швеция (se)" @@ -3020,6 +3500,9 @@ msgstr "Служба Tachyon остановлена. Запустите серв msgid "Tachyon service is stopped. Start the service to display the dashboard." msgstr "Служба Tachyon остановлена. Запустите сервис для отображения дашборда." +msgid "Tachyon Settings" +msgstr "Настройки Tachyon" + msgid "Tachyon update did not complete within the timeout" msgstr "Обновление Tachyon не завершилось в течение таймаута" @@ -3056,9 +3539,30 @@ msgstr "NFQWS2 Tachyon не запущен" msgid "Tachyon-managed nfqws2 runtime is ready" msgstr "NFQWS2 Tachyon готов" +msgid "Tailscale auth key" +msgstr "Ключ аутентификации Tailscale" + +msgid "Tailscale control URL" +msgstr "Control URL Tailscale" + msgid "Tailscale endpoint" msgstr "Tailscale endpoint" +msgid "Tailscale hostname" +msgstr "Имя хоста Tailscale" + +msgid "Target" +msgstr "Цель" + +msgid "Target Devices (IP / Hostname)" +msgstr "Целевые устройства (IP / Имя)" + +msgid "Target Scope" +msgstr "Область действия" + +msgid "Telegram Bot" +msgstr "Telegram Бот" + msgid "Telegram Bot Token" msgstr "Токен Telegram-бота" @@ -3140,12 +3644,24 @@ msgstr "Все настройки Tachyon будут удалены и восс msgid "This will replace the current Tachyon settings with the snapshot" msgstr "Это заменит текущие настройки Tachyon на снапшот" +msgid "Thu" +msgstr "Чт" + +msgid "Thursday" +msgstr "Четверг" + msgid "Time" msgstr "Время" msgid "Time in seconds for DNS record caching (default: 60)" msgstr "Время кэширования DNS-записей в секундах (по умолчанию: 60)" +msgid "Time is required (e.g. 22:00)" +msgstr "Укажите время (например, 22:00)" + +msgid "Time skew tolerance" +msgstr "Допуск отклонения времени" + msgid "tiny" msgstr "tiny" @@ -3206,6 +3722,21 @@ msgstr "Режим прозрачного прокси несовместим с msgid "Transport" msgstr "Транспорт" +msgid "Transport host" +msgstr "Хост транспорта" + +msgid "Transport packet header (H4)" +msgstr "Заголовок транспортного пакета (H4)" + +msgid "Transport packet junk size (S4)" +msgstr "Размер мусора транспортного пакета (S4)" + +msgid "Transport path" +msgstr "Путь транспорта" + +msgid "Transport path must start with /" +msgstr "Путь транспорта должен начинаться с /" + msgid "Troubleshooting" msgstr "Устранение неполадок" @@ -3218,6 +3749,12 @@ msgstr "TTL должен быть положительным числом" msgid "TTL value cannot be empty" msgstr "Значение TTL не может быть пустым" +msgid "Tue" +msgstr "Вт" + +msgid "Tuesday" +msgstr "Вторник" + msgid "Turkey (tr)" msgstr "Турция (tr)" @@ -3242,6 +3779,9 @@ msgstr "Не удалось проверить стратегию NFQWS2 чер msgid "Unavailability timeout" msgstr "Таймаут недоступности" +msgid "Underload packet header (H3)" +msgstr "Заголовок пакета под нагрузкой (H3)" + msgid "Underload Packet Magic Header (H1)" msgstr "Magic-заголовок пакета недогрузки (H1)" @@ -3269,6 +3809,9 @@ msgstr "Обнаружен лишний NFQWS Tachyon" msgid "Unexpected Tachyon-managed nfqws2 runtime is running" msgstr "Обнаружен лишний NFQWS2 Tachyon" +msgid "unique UCI identifier" +msgstr "уникальный идентификатор UCI" + msgid "United Kingdom (gb)" msgstr "Великобритания (gb)" @@ -3302,6 +3845,9 @@ msgstr "Неуказанный IP-адрес не разрешён" msgid "Unstable" msgstr "Нестабильно" +msgid "Unsupported security mode for this protocol" +msgstr "Неподдерживаемый режим безопасности для этого протокола" + msgid "Up to 10 snapshots are kept; the oldest ones are removed automatically." msgstr "Хранится до 10 снапшотов; самые старые удаляются автоматически." @@ -3374,9 +3920,42 @@ msgstr "Настройки URLTest" msgid "Use 3-tier check intervals: fast (15s), normal (120s), slow (300s) instead of a single interval." msgstr "Использовать 3-уровневые интервалы проверки: быстрый (15с), нормальный (120с), медленный (300с)." +msgid "Use 32 hex characters" +msgstr "Используйте 32 шестнадцатеричных символа" + +msgid "Use a domain name or IP address" +msgstr "Используйте имя домена или IP-адрес" + +msgid "Use a duration like 30s, 5m, or 1h30m" +msgstr "Используйте длительность, например 30s, 5m или 1h30m" + +msgid "Use a non-negative integer" +msgstr "Используйте неотрицательное целое число" + +msgid "Use a non-zero secret" +msgstr "Используйте ненулевой секрет" + +msgid "Use an HTTP or HTTPS URL" +msgstr "Используйте HTTP или HTTPS URL" + +msgid "Use an IP address" +msgstr "Используйте IP-адрес" + +msgid "Use an IP listen address" +msgstr "Используйте IP-адрес прослушивания" + msgid "Use another section as an intermediate hop to connect to servers in this section. Does not apply to network interfaces or JSON outbounds." msgstr "Использовать другую секцию в качестве промежуточного узла для подключения к серверам в этой секции. Не применяется к сетевым интерфейсам и JSON-выходам." +msgid "Use CIDR prefixes like 192.168.1.0/24 or 2001:db8::/32" +msgstr "Используйте CIDR-префиксы, например 192.168.1.0/24 или 2001:db8::/32" + +msgid "Use CIDR prefixes or IP addresses like 192.168.1.0/24, 192.168.1.10, or 2001:db8::1" +msgstr "Используйте префиксы CIDR или IP-адреса, например 192.168.1.0/24, 192.168.1.10 или 2001:db8::1" + +msgid "Use letters, digits, dots, underscores, or hyphens" +msgstr "Используйте буквы, цифры, точки, подчёркивания или дефисы" + msgid "Use sing-box duration format like 10s, 1m or 2m30s" msgstr "Используйте формат длительности sing-box, например 10s, 1m или 2m30s" @@ -3410,11 +3989,14 @@ msgstr "Ошибки валидации:" msgid "Value cannot be empty" msgstr "Значение не может быть пустым" +msgid "Value must be a positive integer" +msgstr "Значение должно быть положительным целым числом" + msgid "Value must not contain control characters" msgstr "Значение не должно содержать символы управления" msgid "Verifying router and service readiness..." -msgstr "" +msgstr "Проверка готовности роутера и служб..." msgid "Via country.is" msgstr "Через country.is" @@ -3425,11 +4007,14 @@ msgstr "Посмотреть логи" msgid "Visible name of this section" msgstr "Видимое имя этой секции" +msgid "VLESS flow" +msgstr "VLESS flow" + msgid "vless://, vmess://, ss://, trojan://, socks4/5://, hy2/hysteria2:// links" msgstr "Ссылки vless://, vmess://, ss://, trojan://, socks4/5://, hy2/hysteria2://" msgid "Waiting for router services to restart..." -msgstr "" +msgstr "Ожидание перезапуска служб роутера..." msgid "WAN" msgstr "WAN" @@ -3458,6 +4043,18 @@ msgstr "Статус Watchdog" msgid "WebRTC Leak Protection" msgstr "Защита от утечек WebRTC" +msgid "Wed" +msgstr "Ср" + +msgid "Wednesday" +msgstr "Среда" + +msgid "Weekdays (Mon-Fri)" +msgstr "Будни (Пн-Пт)" + +msgid "Weekends (Sat-Sun)" +msgstr "Выходные (Сб-Вс)" + msgid "What Tachyon should do when this section matches" msgstr "Что должен делать Tachyon при совпадении этой секции" @@ -3473,6 +4070,9 @@ msgstr "Приватный ключ WireGuard из вашего аккаунта msgid "WireGuard private key from your Cloudflare WARP account" msgstr "Приватный ключ WireGuard из вашего аккаунта Cloudflare WARP" +msgid "XHTTP mode" +msgstr "Режим XHTTP" + msgid "YACD Secret Key" msgstr "Секретный ключ YACD" @@ -3647,45 +4247,12 @@ msgstr "Активные секции" msgid "All Profiles" msgstr "Все сервисы и профили" -msgid "Sections" -msgstr "Секции" - -msgid "Servers" -msgstr "Серверы" - -msgid "Monitoring" -msgstr "Мониторинг" - -msgid "Components" -msgstr "Компоненты" - -msgid "Drag rows to change priority. The rule at the top is checked first." -msgstr "Перетащите строки для изменения приоритета. Правило вверху проверяется первым." - -msgid "Rules" -msgstr "Правила" - msgid "Edit" -msgstr "Редактировать" +msgstr "Изменить" msgid "Connection" msgstr "Соединение" -msgid "Add a section" -msgstr "Добавить секцию" - -msgid "Add a server inbound" -msgstr "Добавить серверный инбаунд" - -msgid "Accept external proxy connections and route them with sing-box." -msgstr "Принимать внешние прокси-подключения и маршрутизировать их через sing-box." - -msgid "Section" -msgstr "Секция" - -msgid "Server" -msgstr "Сервер" - msgid "Installing" msgstr "Установка" @@ -3698,12 +4265,6 @@ msgstr "Установка пакета и обновление настроек msgid "Installation completed successfully!" msgstr "Установка успешно завершена!" -msgid "Direct" -msgstr "Напрямую" - -msgid "Tachyon Settings" -msgstr "Настройки Tachyon" - msgid "All Services" msgstr "Все сервисы" @@ -3743,24 +4304,6 @@ msgstr "TCP" msgid "TLS" msgstr "TLS" -msgid "Method" -msgstr "Метод" - -msgid "ALPN" -msgstr "ALPN" - -msgid "VLESS flow" -msgstr "VLESS flow" - -msgid "FakeTLS host" -msgstr "FakeTLS host" - -msgid "Concurrency" -msgstr "Параллелизм" - -msgid "Information" -msgstr "Информация" - msgid "Saving..." msgstr "Сохранение..." @@ -3776,141 +4319,21 @@ msgstr "Остановка..." msgid "Enabled" msgstr "Включено" -msgid "Disabled" -msgstr "Отключено" - -msgid "Configuration for Tachyon service" -msgstr "Конфигурация сервиса Tachyon" - msgid "Only the specified servers" msgstr "Только указанные серверы" msgid "Select all" msgstr "Выбрать все" -msgid "Routing mode" -msgstr "Режим маршрутизации" - -msgid "Routing section" -msgstr "Секция маршрутизации" - msgid "Keeps FakeIP cache persistent across reboots and pre-resolves popular blocked domains on startup so first-visit latency is 0 ms." msgstr "Сохраняет кэш FakeIP между перезагрузками и предварительно разрешает популярные заблокированные домены при запуске, чтобы задержка первого обращения была 0 мс." msgid "Configure User-Agent в the item settings" msgstr "Настройте User-Agent в параметрах элемента" -msgid "Client link" -msgstr "Клиентская ссылка" - -msgid "Client link QR code" -msgstr "QR-код клиентской ссылки" - -msgid "Client link is not available yet" -msgstr "Клиентская ссылка пока недоступна" - -msgid "Loading client link..." -msgstr "Загрузка клиентской ссылки..." - -msgid "Secret" -msgstr "Секрет" - msgid "Public Key" msgstr "Публичный ключ" -msgid "Certificate path" -msgstr "Путь к сертификату" - -msgid "Key path" -msgstr "Путь к ключу" - -msgid "Specify a file path" -msgstr "Укажите путь к файлу" - -msgid "Specify different files" -msgstr "Укажите разные файлы" - -msgid "Selected section" -msgstr "Выбранная секция" - -msgid "Inbound JSON" -msgstr "Inbound JSON" - -msgid "Inbound JSON cannot be empty" -msgstr "Inbound JSON не может быть пустым" - -msgid "Inbound JSON must be an object with a type field" -msgstr "Inbound JSON должен быть объектом с полем type" - -msgid "Server information" -msgstr "Информация о сервере" - -msgid "Server name" -msgstr "Имя сервера" - -msgid "Server name / SNI" -msgstr "Имя сервера / SNI" - -msgid "Reality fake site" -msgstr "Фейковый сайт Reality" - -msgid "Reality fake site port" -msgstr "Порт фейкового сайта Reality" - -msgid "Reality max time difference" -msgstr "Макс. разница времени Reality" - -msgid "Reality private key" -msgstr "Приватный ключ Reality" - -msgid "Reality public key" -msgstr "Публичный ключ Reality" - -msgid "Reality short ID" -msgstr "Короткий ID Reality" - -msgid "Reality short ID must contain 1-8 hex digits" -msgstr "Короткий ID Reality должен содержать 1-8 шестнадцатеричных цифр" - -msgid "Fronting IP" -msgstr "Fronting IP" - -msgid "Fronting port" -msgstr "Fronting порт" - -msgid "Fronting proxy protocol" -msgstr "Протокол Fronting прокси" - -msgid "gRPC service" -msgstr "Сервис gRPC" - -msgid "Transport host" -msgstr "Хост транспорта" - -msgid "Transport path" -msgstr "Путь транспорта" - -msgid "Transport path must start with /" -msgstr "Путь транспорта должен начинаться с /" - -msgid "HTTP hosts" -msgstr "HTTP хосты" - -msgid "XHTTP mode" -msgstr "Режим XHTTP" - -msgid "Fallback on unknown DC" -msgstr "Fallback при неизвестном DC" - -msgid "Padding" -msgstr "Padding" - -msgid "Handshake timeout" -msgstr "Таймаут рукопожатия" - -msgid "Time skew tolerance" -msgstr "Допуск отклонения времени" - msgid "Invalid NFQWS strategy" msgstr "Неверная стратегия NFQWS" @@ -3923,53 +4346,5 @@ msgstr "Установленная сборка \\u2192 Доступная сб msgid "Prevent multiple reload_firewall calls within 120 seconds to avoid connection drops." msgstr "Предотвращать множественные вызовы reload_firewall в течение 120 секунд для избежания разрыва соединений." -msgid "Obfuscation" -msgstr "Обфускация" - -msgid "Obfuscation password" -msgstr "Пароль обфускации" - -msgid "Auto update" -msgstr "Автообновление" - -msgid "Use CIDR prefixes like 192.168.1.0/24 or 2001:db8::/32" -msgstr "Используйте CIDR-префиксы, например 192.168.1.0/24 или 2001:db8::/32" - -msgid "Use an IP address" -msgstr "Используйте IP-адрес" - -msgid "Use an IP listen address" -msgstr "Используйте IP-адрес прослушивания" - -msgid "Use a domain name or IP address" -msgstr "Используйте имя домена или IP-адрес" - -msgid "Use an HTTP or HTTPS URL" -msgstr "Используйте HTTP или HTTPS URL" - -msgid "Use letters, digits, dots, underscores, or hyphens" -msgstr "Используйте буквы, цифры, точки, подчёркивания или дефисы" - -msgid "Use a non-negative integer" -msgstr "Используйте неотрицательное целое число" - -msgid "Use a non-zero secret" -msgstr "Используйте ненулевой секрет" - -msgid "Use 32 hex characters" -msgstr "Используйте 32 шестнадцатеричных символа" - -msgid "Use a duration like 30s, 5m, or 1h30m" -msgstr "Используйте длительность, например 30s, 5m или 1h30m" - -msgid "Expecting: %s" -msgstr "Ожидалось: %s" - -msgid "Cannot save server" -msgstr "Не удалось сохранить сервер" - -msgid "QR code is too large" -msgstr "QR-код слишком большой" - msgid "Restoring native direct internet..." msgstr "Восстановление прямого интернета..." diff --git a/luci-app-tachyon/po/templates/tachyon.pot b/luci-app-tachyon/po/templates/tachyon.pot index b56b7f2e..cfc00c33 100644 --- a/luci-app-tachyon/po/templates/tachyon.pot +++ b/luci-app-tachyon/po/templates/tachyon.pot @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: TACHYON\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-17 08:15+0300\n" -"PO-Revision-Date: 2026-08-17 08:15+0300\n" +"POT-Creation-Date: 2026-08-17 17:24+0300\n" +"PO-Revision-Date: 2026-08-17 17:24+0300\n" "Last-Translator: Dushnilin \n" "Language-Team: LANGUAGE \n" "Language: \n" @@ -72,12 +72,16 @@ msgstr "" msgid "⚠️ If all Main DNS fail 3 times, queries will be sent to your ISP's DNS in plaintext. Only use as a last resort to prevent complete internet loss." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7917 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7924 #: src/tachyon/tabs/dashboard/initController.ts:1882 #: src/tachyon/tabs/dashboard/initController.ts:1891 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:456 msgid "✔ Running" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7917 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7924 #: src/tachyon/tabs/dashboard/initController.ts:1882 #: src/tachyon/tabs/dashboard/initController.ts:1891 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:456 @@ -88,37 +92,77 @@ msgstr "" msgid "🔑 Generate" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:447 +msgid "Accept external proxy connections and route them with sing-box." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3276 +msgid "Accept routes" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7245 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7275 msgid "Action" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:266 +msgid "Action Mode" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7320 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13869 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14445 #: src/tachyon/tabs/dashboard/initController.ts:1123 #: src/tachyon/tabs/monitoring/initController.ts:713 #: src/tachyon/tabs/monitoring/render.ts:20 msgid "Active" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:203 +msgid "Active (Allowed)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:203 +msgid "Active (Blocking)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8913 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:56 msgid "Active Bootstrap DNS" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2732 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2802 #: src/tachyon/tabs/dashboard/partials/renderConnections.ts:50 #: src/tachyon/tabs/dashboard/partials/renderConnections.ts:126 msgid "Active Clients" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7903 #: src/tachyon/tabs/dashboard/initController.ts:1867 msgid "Active Connections" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8920 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:67 msgid "Active Main DNS" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:471 +msgid "Add a schedule rule" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:436 +msgid "Add a section" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:453 +msgid "Add a server inbound" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1852 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:122 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:166 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1852 msgid "Add at least one DNS server" msgstr "" @@ -146,6 +190,7 @@ msgstr "" msgid "Add URLTest / Priority group" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9255 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:106 msgid "Additional marking rules found" msgstr "" @@ -168,6 +213,10 @@ msgstr "" msgid "Additionally show servers by protocol, transport, and security. Add only servers matching the specified parameters." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1711 +msgid "Address" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2072 msgid "Administrator Chat IDs" msgstr "" @@ -180,6 +229,14 @@ msgstr "" msgid "Advanced System" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3259 +msgid "Advertise exit node" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3269 +msgid "Advertise routes" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8612 msgid "AEAD Method" msgstr "" @@ -201,10 +258,12 @@ msgstr "" msgid "AI API Key" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11334 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:220 msgid "AI Chat & Tachyon Assistant" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10205 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:150 msgid "AI Chat Assistant" msgstr "" @@ -213,10 +272,14 @@ msgstr "" msgid "AI Doctor (ChatGPT / DeepSeek API)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13047 #: src/tachyon/tabs/diagnostic/initController.ts:1553 msgid "AI Doctor Diagnosis" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12508 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13050 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13058 #: src/tachyon/tabs/diagnostic/initController.ts:846 #: src/tachyon/tabs/diagnostic/initController.ts:1559 #: src/tachyon/tabs/diagnostic/initController.ts:1567 @@ -238,6 +301,7 @@ msgstr "" msgid "AI Provider" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11264 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:138 msgid "AI service error" msgstr "" @@ -250,15 +314,29 @@ msgstr "" msgid "AI Watchdog settings saved. Restart watchdog to apply." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13888 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14410 #: src/tachyon/tabs/monitoring/initController.ts:672 #: src/tachyon/tabs/monitoring/render.ts:40 msgid "All" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:139 +msgid "All devices" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1968 msgid "All except selected" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:150 +msgid "All Internet" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:238 +msgid "All Internet (Complete internet cutoff)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1978 msgid "All remaining except selected" msgstr "" @@ -271,6 +349,8 @@ msgstr "" msgid "All remaining servers means every server not already assigned to a higher-priority level." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13896 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14383 #: src/tachyon/tabs/monitoring/initController.ts:635 #: src/tachyon/tabs/monitoring/render.ts:49 msgid "All Routes" @@ -284,6 +364,14 @@ msgstr "" msgid "All traffic from these IP addresses will be routed through the section unconditionally, ignoring all other conditions." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:272 +msgid "Allow / Enable ONLY in scheduled hours (White period)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:174 +msgid "Allow in interval" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8514 msgid "Allow Insecure TLS" msgstr "" @@ -304,6 +392,14 @@ msgstr "" msgid "Allows Tachyon to send diagnostic snapshots to ChatGPT or DeepSeek API for intelligent root-cause analysis and auto-repair recommendations." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2788 +msgid "ALPN" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3022 +msgid "Alter ID" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8301 msgid "AmneziaWG config loaded successfully!" msgstr "" @@ -312,10 +408,12 @@ msgstr "" msgid "AmneziaWG Generator" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12583 #: src/tachyon/tabs/diagnostic/initController.ts:960 msgid "Anonymized support report copied to clipboard" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16885 #: src/tachyon/tabs/updates/initController.ts:861 msgid "Another component action is already running" msgstr "" @@ -332,14 +430,17 @@ msgstr "" msgid "Apply section rules only to the specified local IP addresses" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12713 #: src/tachyon/tabs/diagnostic/initController.ts:1171 msgid "Applying fix" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12711 #: src/tachyon/tabs/diagnostic/initController.ts:1169 msgid "Applying..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11200 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:60 msgid "Ask Tachyon AI Assistant a question..." msgstr "" @@ -360,16 +461,24 @@ msgstr "" msgid "Auth Digest" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2256 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7160 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7500 #: src/tachyon/tabs/dashboard/initController.ts:919 #: src/tachyon/tabs/dashboard/initController.ts:1351 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:450 msgid "Auto" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10035 #: src/partials/modal/renderModal.ts:286 msgid "Auto refresh" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3179 +msgid "Auto update" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1875 msgid "Auto-detected domains" msgstr "" @@ -387,6 +496,7 @@ msgstr "" msgid "Auto-generate HWID" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12641 #: src/tachyon/tabs/diagnostic/initController.ts:1084 msgid "Auto-Heal Network Stack" msgstr "" @@ -419,6 +529,7 @@ msgstr "" msgid "Automatically increase check intervals when healthy (to 5 min) and decrease on problems (to 120s)." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7580 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3157 #: src/tachyon/tabs/dashboard/initController.ts:1454 msgid "Automatically select the fastest node in the current level" @@ -428,6 +539,7 @@ msgstr "" msgid "Automatically update remote hosts lists on schedule" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10111 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:56 msgid "Available actions" msgstr "" @@ -442,6 +554,10 @@ msgstr "" msgid "Bearer Auth Token" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:279 +msgid "Beginning of the schedule interval (e.g. 22:00)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9258 msgid "Belarus (by)" msgstr "" @@ -451,6 +567,19 @@ msgstr "" msgid "BitTorrent / P2P" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:271 +msgid "Block / Disable in scheduled hours (Standard)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:176 +msgid "Block in interval" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:465 +msgid "Block internet access or specific proxy sections for individual devices based on time and days." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8913 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:57 msgid "Bootstrap DNS" msgstr "" @@ -463,19 +592,24 @@ msgstr "" msgid "Bot Status" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9293 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9312 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:51 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:79 msgid "Browser FakeIP check could not be completed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9312 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:82 msgid "Browser is not using FakeIP" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9312 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:81 msgid "Browser is using FakeIP correctly" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13185 #: src/tachyon/tabs/diagnostic/initController.ts:1717 msgid "Bug report downloaded" msgstr "" @@ -507,26 +641,32 @@ msgstr "" msgid "ByeDPI option requires a value: %s" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9565 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:71 msgid "ByeDPI package is installed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9565 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:72 msgid "ByeDPI package is not installed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9560 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:64 msgid "ByeDPI provider binary is available" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9560 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:65 msgid "ByeDPI provider binary is not available" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9580 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:107 msgid "ByeDPI sing-box outbound is configured" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9580 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:108 msgid "ByeDPI sing-box outbound is not configured" msgstr "" @@ -559,15 +699,24 @@ msgstr "" msgid "Cache file path cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13086 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7721 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:434 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:575 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:607 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:655 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7721 #: src/tachyon/tabs/diagnostic/initController.ts:1598 msgid "Cancel" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8893 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8957 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9138 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9201 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9363 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9447 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9535 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11456 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:26 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:27 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:172 @@ -579,6 +728,10 @@ msgstr "" msgid "Cannot receive checks result" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2337 +msgid "Cannot save server" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3593 msgid "Cannot save settings" msgstr "" @@ -587,22 +740,36 @@ msgstr "" msgid "Cascade connection" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2798 +msgid "Certificate path" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1656 +msgid "Certificate pin is unavailable. Apply or restart the server to generate the default certificate, then open this dialog again." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16151 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16612 #: src/tachyon/tabs/updates/initController.ts:498 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:320 msgid "Check completed!" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2247 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2609 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:432 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:894 msgid "Check Connection" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7567 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2645 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3108 #: src/tachyon/tabs/dashboard/initController.ts:1441 msgid "Check interval" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10215 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:160 msgid "Check Services" msgstr "" @@ -611,28 +778,43 @@ msgstr "" msgid "Check timeout after which the server is considered dead" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16943 #: src/tachyon/tabs/updates/initController.ts:930 msgid "Check update" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7565 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2671 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3095 #: src/tachyon/tabs/dashboard/initController.ts:1439 msgid "Check URL" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11277 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:155 msgid "Check YouTube" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7696 #: src/tachyon/tabs/dashboard/initController.ts:1620 msgid "Checking Connection..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15981 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:112 msgid "Checking for updates..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8883 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8947 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9128 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9189 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9272 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9353 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9437 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9525 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11444 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13436 #: src/tachyon/tabs/diagnostic/initController.ts:2017 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:14 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:15 @@ -646,6 +828,10 @@ msgstr "" msgid "Checking, please wait" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2171 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2242 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2547 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2602 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:328 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:426 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:810 @@ -658,21 +844,28 @@ msgstr "" msgid "Checking…" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5099 #: src/tachyon/tabs/diagnostic/helpers/getCheckTitle.ts:2 msgid "checks" msgstr "" -#: src/tachyon/tabs/diagnostic/helpers/getMeta.ts:26 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8853 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9331 #: src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:10 +#: src/tachyon/tabs/diagnostic/helpers/getMeta.ts:26 msgid "Checks failed" msgstr "" -#: src/tachyon/tabs/diagnostic/helpers/getMeta.ts:13 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8842 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9288 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9342 #: src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:23 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:43 +#: src/tachyon/tabs/diagnostic/helpers/getMeta.ts:13 msgid "Checks passed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8865 #: src/tachyon/tabs/diagnostic/checks/getDnsCheckPresentation.ts:27 msgid "Checks passed with manual DHCP" msgstr "" @@ -685,10 +878,19 @@ msgstr "" msgid "Choose Hosts File..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:234 +msgid "Choose whether to restrict the entire internet or only specific Tachyon routing sections." +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9224 msgid "Choose whether to route traffic to all destinations except selected countries (Exclude) or only to selected countries (Include)." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:246 +msgid "Choose which routing sections to apply this schedule to." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:227 #: src/validators/validateSubnet.ts:35 msgid "CIDR must be between 0 and 32 for IPv4 or 0 and 128 for IPv6" msgstr "" @@ -705,41 +907,93 @@ msgstr "" msgid "Clear" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12634 #: src/tachyon/tabs/diagnostic/initController.ts:1077 msgid "Clear DNS cache" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3298 +msgid "Client Address" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8718 msgid "Client Certificate" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3310 +msgid "Client DNS" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2896 +msgid "Client fingerprint" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8730 msgid "Client Key" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1728 +msgid "Client link" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1636 +msgid "Client link is not available yet" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1669 +msgid "Client link QR code" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3358 +msgid "Client Private Key" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3368 +msgid "Client Public Key" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3299 +msgid "Client VPN IP address (e.g. 10.0.0.2/32)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7438 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10014 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11327 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13038 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14584 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14624 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16226 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16261 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3660 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10239 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1803 #: src/partials/modal/renderModal.ts:263 -#: src/tachyon/tabs/diagnostic/initController.ts:1543 #: src/tachyon/tabs/dashboard/initController.ts:1263 #: src/tachyon/tabs/monitoring/initController.ts:884 #: src/tachyon/tabs/monitoring/initController.ts:934 +#: src/tachyon/tabs/diagnostic/initController.ts:1543 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:212 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:414 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:460 msgid "Close" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13915 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13916 #: src/tachyon/tabs/monitoring/render.ts:68 #: src/tachyon/tabs/monitoring/render.ts:69 msgid "Close all connections" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14553 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14554 #: src/tachyon/tabs/monitoring/initController.ts:851 #: src/tachyon/tabs/monitoring/initController.ts:852 msgid "Close connection" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13878 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14451 #: src/tachyon/tabs/monitoring/initController.ts:720 #: src/tachyon/tabs/monitoring/render.ts:29 msgid "Closed" @@ -769,6 +1023,7 @@ msgstr "" msgid "Community Lists" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6026 #: src/tachyon/services/core.service.ts:43 msgid "Component update available" msgstr "" @@ -777,10 +1032,19 @@ msgstr "" msgid "Component update check interval" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:537 +msgid "Components" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5674 #: src/tachyon/helpers/singBoxVariant.ts:60 msgid "compressed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3131 +msgid "Concurrency" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7233 msgid "Conditions" msgstr "" @@ -793,13 +1057,20 @@ msgstr "" msgid "Config Snapshots" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:370 +msgid "Configuration for Tachyon service" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:4758 msgid "Configure User-Agent in the item settings" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2388 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4927 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11522 #: src/tachyon/methods/custom/getDashboardSections.ts:1639 -#: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:141 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:618 +#: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:141 msgid "Conflict" msgstr "" @@ -811,10 +1082,12 @@ msgstr "" msgid "Connect through" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2547 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:817 msgid "Connected" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12794 #: src/tachyon/tabs/diagnostic/initController.ts:1266 msgid "Connected Devices" msgstr "" @@ -823,36 +1096,52 @@ msgstr "" msgid "Connection URL" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14676 #: src/tachyon/tabs/monitoring/initController.ts:998 msgid "Connections are unavailable" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11551 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:174 msgid "Connectivity probe failed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3417 +msgid "Cookie packet junk size (S3)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2947 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1623 #: src/helpers/copyToClipboard.ts:10 msgid "Copied" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10007 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1753 #: src/partials/modal/renderModal.ts:258 msgid "Copy" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16023 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:160 msgid "Copy log" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2293 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2294 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7370 #: src/tachyon/tabs/dashboard/initController.ts:1188 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:496 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:497 msgid "Copy proxy link" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13000 #: src/tachyon/tabs/diagnostic/initController.ts:1501 msgid "Copy Support Report" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9318 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:89 msgid "Could not compare FakeIP and control public IPs" msgstr "" @@ -861,6 +1150,7 @@ msgstr "" msgid "Country code (e.g. ru, us, de)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12951 #: src/tachyon/tabs/diagnostic/initController.ts:1442 msgid "Current Diagnosis" msgstr "" @@ -873,6 +1163,7 @@ msgstr "" msgid "Current section cannot download its own subscription" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2641 #: src/tachyon/tabs/dashboard/partials/renderWidget.ts:22 msgid "Currently unavailable" msgstr "" @@ -890,6 +1181,22 @@ msgstr "" msgid "Custom DNS Records (Hosts)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3442 +msgid "Custom header for cookie packet" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3448 +msgid "Custom header for data packet" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3430 +msgid "Custom header for handshake initiation" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3436 +msgid "Custom header for handshake response" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1652 msgid "Custom OpenAI-Compatible API" msgstr "" @@ -902,10 +1209,19 @@ msgstr "" msgid "Custom outbound configurations in JSON format" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:513 +msgid "Dashboard" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:1957 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:50 msgid "Dashboard currently unavailable" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:302 +msgid "Days of Week" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2199 msgid "Default (auto)" msgstr "" @@ -922,6 +1238,7 @@ msgstr "" msgid "Delay value cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1830 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:615 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:621 msgid "Delete" @@ -945,10 +1262,15 @@ msgstr "" msgid "Detects and drops STUN/TURN packets in nftables to prevent real IP leaks via WebRTC." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:321 #: src/validators/validateOutboundJson.ts:115 msgid "detour must be a non-empty string" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:133 +msgid "Device / IP" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9486 msgid "Device filter" msgstr "" @@ -965,6 +1287,7 @@ msgstr "" msgid "Device or IP" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12869 #: src/tachyon/tabs/diagnostic/initController.ts:1349 msgid "Device updated" msgstr "" @@ -973,18 +1296,29 @@ msgstr "" msgid "Devices listed here are always routed through the assigned section, regardless of global rules." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8867 #: src/tachyon/tabs/diagnostic/checks/getDnsCheckPresentation.ts:37 msgid "DHCP has DNS server" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8867 #: src/tachyon/tabs/diagnostic/checks/getDnsCheckPresentation.ts:36 msgid "DHCP is managed manually" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:501 +msgid "Diagnostics" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2706 +msgid "Direct" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8473 msgid "Direct (Default)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12857 #: src/tachyon/tabs/diagnostic/initController.ts:1336 msgid "Direct Bypass" msgstr "" @@ -993,10 +1327,12 @@ msgstr "" msgid "Direct connection" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12851 #: src/tachyon/tabs/diagnostic/initController.ts:1327 msgid "Direct WAN" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10147 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:92 msgid "Disable autostart" msgstr "" @@ -1009,6 +1345,10 @@ msgstr "" msgid "Disable the QUIC protocol to improve compatibility or fix issues with video streaming" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:197 +msgid "Disabled" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:6105 msgid "Disabling interception is incompatible with action=zapret2 because Tachyon sends matched traffic through NFQUEUE." msgstr "" @@ -1035,22 +1375,23 @@ msgstr "" msgid "DNS Failures Before Switching" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8925 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:75 msgid "DNS on router" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:833 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1823 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:833 msgid "DNS over HTTPS (DoH)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:835 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1825 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:835 msgid "DNS over QUIC (DoQ)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:834 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1824 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:834 msgid "DNS over TLS (DoT)" msgstr "" @@ -1068,8 +1409,8 @@ msgstr "" msgid "DNS protocol used by the resolver" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1025 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7366 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1025 msgid "DNS requests through section" msgstr "" @@ -1082,10 +1423,15 @@ msgstr "" msgid "DNS server" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:131 #: src/validators/validateDns.ts:8 msgid "DNS server address cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3311 +msgid "DNS server pushed to the client configuration" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2605 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7318 msgid "DNS server used by the resolver" @@ -1132,6 +1478,7 @@ msgstr "" msgid "DNS Unavailability Timeout" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11411 #: src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:26 msgid "Do not panic, everything can be fixed, just..." msgstr "" @@ -1160,18 +1507,25 @@ msgstr "" msgid "Do not test specified servers." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12422 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12442 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12450 #: src/tachyon/tabs/diagnostic/initController.ts:720 #: src/tachyon/tabs/diagnostic/initController.ts:762 #: src/tachyon/tabs/diagnostic/initController.ts:770 msgid "Doctor failed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12431 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12433 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12433 #: src/tachyon/tabs/diagnostic/initController.ts:736 #: src/tachyon/tabs/diagnostic/initController.ts:748 #: src/tachyon/tabs/diagnostic/initController.ts:749 msgid "Doctor repair" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9046 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:54 msgid "Does not resolve" msgstr "" @@ -1209,15 +1563,22 @@ msgstr "" msgid "Dont Touch My DHCP!" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7880 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7892 #: src/tachyon/tabs/dashboard/initController.ts:1842 #: src/tachyon/tabs/dashboard/initController.ts:1855 msgid "Downlink" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10002 #: src/partials/modal/renderModal.ts:253 msgid "Download" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1777 +msgid "Download .conf" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1458 msgid "Download component packages via the selected section" msgstr "" @@ -1254,16 +1615,23 @@ msgstr "" msgid "Download through" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14577 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14621 #: src/tachyon/tabs/monitoring/initController.ts:877 #: src/tachyon/tabs/monitoring/initController.ts:931 msgid "Downloaded" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:430 +msgid "Drag rows to change priority. The rule at the top is checked first." +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9523 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10227 msgid "DSCP marks (QoS)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:293 #: src/validators/validateOutboundJson.ts:75 msgid "Duplicate JSON outbound tag" msgstr "" @@ -1280,6 +1648,10 @@ msgstr "" msgid "e.g. google.com, 1.1.1.1, 443" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:130 +msgid "e.g. Kids Phone (Night YouTube)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8696 msgid "e.g. SHA256 — leave empty for default" msgstr "" @@ -1288,7 +1660,14 @@ msgstr "" msgid "Each entry must be \"proto\", \"proto:port\" or \"proto:port-port\" (tcp/udp), e.g. tcp:6881,udp:6881-6889" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1823 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:71 +msgid "Edit rule action" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:117 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7235 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2620 msgid "Enable" msgstr "" @@ -1308,10 +1687,15 @@ msgstr "" msgid "Enable Anomaly Detection" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2983 +msgid "Enable authentication" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1313 msgid "Enable automatic updates for remote lists and rule sets" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10157 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:102 msgid "Enable autostart" msgstr "" @@ -1324,6 +1708,7 @@ msgstr "" msgid "Enable Config Validation" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12642 #: src/tachyon/tabs/diagnostic/initController.ts:1085 msgid "Enable Direct WAN Bypass" msgstr "" @@ -1409,6 +1794,18 @@ msgstr "" msgid "Enables the background watchdog process to monitor services and auto-recover on failures." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:291 +msgid "End of the schedule interval (e.g. 08:00). Supports spans crossing midnight." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:290 +msgid "End Time (HH:MM)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2729 +msgid "Enter a complete sing-box inbound object" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:4010 msgid "Enter a complete sing-box outbound object" msgstr "" @@ -1463,6 +1860,10 @@ msgstr "" msgid "Error running trace:" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:98 +msgid "Every day" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2756 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2966 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3364 @@ -1515,6 +1916,11 @@ msgstr "" msgid "Excluded devices" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:57 +msgid "Expecting: %s" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2022 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:137 msgid "Expires" msgstr "" @@ -1531,24 +1937,32 @@ msgstr "" msgid "External nfqws2 config files bypass Tachyon queue management and explicit validation." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12729 #: src/tachyon/tabs/diagnostic/initController.ts:1192 msgid "Failed to apply fix" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14862 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14876 #: src/tachyon/tabs/monitoring/initController.ts:1265 #: src/tachyon/tabs/monitoring/initController.ts:1280 msgid "Failed to close connection" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14891 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14903 #: src/tachyon/tabs/monitoring/initController.ts:1299 #: src/tachyon/tabs/monitoring/initController.ts:1312 msgid "Failed to close connections" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12587 #: src/tachyon/tabs/diagnostic/initController.ts:964 msgid "Failed to copy report to clipboard" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2949 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1625 #: src/helpers/copyToClipboard.ts:12 msgid "Failed to copy!" msgstr "" @@ -1557,6 +1971,12 @@ msgstr "" msgid "Failed to delete snapshot" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3233 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3236 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16697 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16697 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16755 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16926 #: src/tachyon/methods/shell/index.ts:172 #: src/tachyon/methods/shell/index.ts:179 #: src/tachyon/tabs/updates/initController.ts:619 @@ -1566,6 +1986,7 @@ msgstr "" msgid "Failed to execute" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13188 #: src/tachyon/tabs/diagnostic/initController.ts:1720 msgid "Failed to generate bug report" msgstr "" @@ -1587,10 +2008,12 @@ msgstr "" msgid "Failed to parse WARP config:" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3592 #: src/tachyon/methods/shell/index.ts:646 msgid "Failed to read operation log" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11238 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:106 msgid "Failed to receive response from AI service." msgstr "" @@ -1599,6 +2022,8 @@ msgstr "" msgid "Failed to reset settings" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13028 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13111 #: src/tachyon/tabs/diagnostic/initController.ts:1533 #: src/tachyon/tabs/diagnostic/initController.ts:1627 msgid "Failed to restore native internet" @@ -1644,15 +2069,25 @@ msgstr "" msgid "Failed to stop watchdog" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6982 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6988 #: src/tachyon/tabs/dashboard/initController.ts:696 #: src/tachyon/tabs/dashboard/initController.ts:702 msgid "Failed to switch proxy" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12874 #: src/tachyon/tabs/diagnostic/initController.ts:1354 msgid "Failed to update device" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6691 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6691 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6705 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6737 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6740 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7638 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7641 #: src/tachyon/tabs/dashboard/initController.ts:308 #: src/tachyon/tabs/dashboard/initController.ts:309 #: src/tachyon/tabs/dashboard/initController.ts:328 @@ -1663,27 +2098,40 @@ msgstr "" msgid "Failed to update subscriptions" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9318 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:91 msgid "FakeIP and control checks use different public IPs" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9318 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:92 msgid "FakeIP and control checks use the same public IP" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9290 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:46 msgid "FakeIP works; public IP comparison is inconclusive" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3106 +msgid "FakeTLS host" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3188 +msgid "Fallback on unknown DC" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1748 msgid "Faster DNS health monitoring than the default cycle. Switches bootstrap DNS on failure." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7585 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3168 #: src/tachyon/tabs/dashboard/initController.ts:1460 msgid "Faster server search interval" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4249 #: src/tachyon/methods/custom/getDashboardSections.ts:654 msgid "Fastest" msgstr "" @@ -1696,27 +2144,34 @@ msgstr "" msgid "Finland (fi)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9110 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:136 msgid "Firewall WAN port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12723 #: src/tachyon/tabs/diagnostic/initController.ts:1186 msgid "Fix applied" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12628 #: src/tachyon/tabs/diagnostic/initController.ts:1071 msgid "Fix resolv.conf" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3594 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2338 msgid "Fix the highlighted fields and save again." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12431 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12719 #: src/tachyon/tabs/diagnostic/initController.ts:742 #: src/tachyon/tabs/diagnostic/initController.ts:1182 msgid "Fixed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12645 #: src/tachyon/tabs/diagnostic/initController.ts:1088 msgid "Flush Conntrack Table" msgstr "" @@ -1733,6 +2188,27 @@ msgstr "" msgid "France (fr)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:26 +msgid "Fri" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:16 +msgid "Friday" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3151 +msgid "Fronting IP" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3140 +msgid "Fronting port" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3161 +msgid "Fronting proxy protocol" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11280 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:158 msgid "Full System Diagnostic" msgstr "" @@ -1753,6 +2229,7 @@ msgstr "" msgid "Generate a random 16-character hexadecimal HWID" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10242 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:187 msgid "Generate bug report" msgstr "" @@ -1772,6 +2249,7 @@ msgstr "" msgid "Generate WARP Config" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9074 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:89 msgid "Generated inbound" msgstr "" @@ -1804,6 +2282,7 @@ msgstr "" msgid "GET endpoints are open on LAN. POST endpoints require Authorization: Bearer ." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10166 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:111 msgid "Get global check" msgstr "" @@ -1812,18 +2291,48 @@ msgstr "" msgid "Give the snapshot a name. It is saved with the current date and can be restored from this list later." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12401 #: src/tachyon/tabs/diagnostic/initController.ts:696 msgid "Global check" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2963 +msgid "gRPC service" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3216 +msgid "Handshake timeout" +msgstr "" + #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:583 msgid "Health Checks" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11160 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:14 msgid "Hello! I am Tachyon AI Assistant. How can I help you today? Ask me about domain blocks, diagnostics, or router settings." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3484 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3490 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3496 +msgid "Hex or binary junk payload" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3466 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3472 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3478 +msgid "Hex or binary payload" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3454 +msgid "Hex or binary payload for init" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3460 +msgid "Hex or binary payload for response" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2574 msgid "Hide cascade connection nodes" msgstr "" @@ -1868,10 +2377,12 @@ msgstr "" msgid "Hide URLTest group nodes" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10054 #: src/partials/modal/renderModal.ts:310 msgid "Hide values" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7572 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3132 #: src/tachyon/tabs/dashboard/initController.ts:1446 msgid "Higher-level check interval" @@ -1881,10 +2392,13 @@ msgstr "" msgid "Higher-priority DNS Check" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12975 #: src/tachyon/tabs/diagnostic/initController.ts:1470 msgid "History" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14567 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14617 #: src/tachyon/tabs/monitoring/initController.ts:867 #: src/tachyon/tabs/monitoring/initController.ts:927 msgid "Host" @@ -1935,10 +2449,15 @@ msgstr "" msgid "HTTP" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4990 #: src/tachyon/api.ts:27 msgid "HTTP error" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2956 +msgid "HTTP hosts" +msgstr "" + #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:688 msgid "HTTP REST API for external AI agents (Claude, GPT, Open-WebUI) served at /cgi-bin/tachyon-agent/" msgstr "" @@ -1947,7 +2466,9 @@ msgstr "" msgid "HWID" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7456 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2684 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3206 #: src/tachyon/tabs/dashboard/initController.ts:1291 msgid "Idle timeout" msgstr "" @@ -1983,6 +2504,18 @@ msgstr "" msgid "Import URLTest groups returned by this subscription provider" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2728 +msgid "Inbound JSON" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2067 +msgid "Inbound JSON cannot be empty" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2078 +msgid "Inbound JSON must be an object with a type field" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2739 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2948 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3344 @@ -2015,6 +2548,22 @@ msgstr "" msgid "Include servers" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1831 +msgid "Information" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3502 +msgid "Init handshake timeout" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3429 +msgid "Init packet header (H1)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3405 +msgid "Init packet junk size (S1)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8410 msgid "Init Packet Magic Header (S1)" msgstr "" @@ -2043,19 +2592,33 @@ msgstr "" msgid "Init Packet Payload (I5)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3453 +msgid "Init payload (I1)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3501 +msgid "Init timeout (Itime)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16216 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16952 #: src/tachyon/tabs/updates/initController.ts:944 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:403 msgid "Install" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17354 #: src/tachyon/tabs/updates/initController.ts:1438 msgid "Install another build:" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17234 #: src/tachyon/tabs/updates/initController.ts:1296 msgid "Installed build → Available build" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16494 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17242 #: src/tachyon/tabs/updates/initController.ts:341 #: src/tachyon/tabs/updates/initController.ts:1304 msgid "Installed version is newer than release" @@ -2073,6 +2636,8 @@ msgstr "" msgid "Interface monitoring for Bad WAN" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7458 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7590 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2698 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3184 #: src/tachyon/tabs/dashboard/initController.ts:1293 @@ -2088,6 +2653,7 @@ msgstr "" msgid "Interrupt connections when URLTest switches the selected server" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7454 #: src/tachyon/tabs/dashboard/initController.ts:1289 msgid "Interval" msgstr "" @@ -2096,89 +2662,113 @@ msgstr "" msgid "Invalid ByeDPI strategy" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:219 #: src/validators/validateSubnet.ts:25 msgid "Invalid CIDR prefix" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:148 #: src/validators/validateDns.ts:34 msgid "Invalid DNS server format. Examples: 8.8.8.8 or dns.example.com or dns.example.com/nicedns for DoH" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:138 #: src/validators/validateDns.ts:21 msgid "Invalid DNS server port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:76 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:80 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:5312 #: src/validators/validateDomain.ts:67 #: src/validators/validateDomain.ts:73 msgid "Invalid domain address" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:206 #: src/validators/validateSubnet.ts:10 msgid "Invalid format. Use an IP address or CIDR subnet" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:776 #: src/validators/validateHysteriaUrl.ts:104 msgid "Invalid HY2 URL: insecure must be 0 or 1" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:738 #: src/validators/validateHysteriaUrl.ts:51 msgid "Invalid HY2 URL: invalid host & port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:767 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:803 #: src/validators/validateHysteriaUrl.ts:90 #: src/validators/validateHysteriaUrl.ts:146 msgid "Invalid HY2 URL: invalid port number" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:724 #: src/validators/validateHysteriaUrl.ts:33 msgid "Invalid HY2 URL: missing credentials/server" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:743 #: src/validators/validateHysteriaUrl.ts:57 msgid "Invalid HY2 URL: missing host" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:732 #: src/validators/validateHysteriaUrl.ts:44 msgid "Invalid HY2 URL: missing host & port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:728 #: src/validators/validateHysteriaUrl.ts:39 msgid "Invalid HY2 URL: missing password" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:746 #: src/validators/validateHysteriaUrl.ts:61 msgid "Invalid HY2 URL: missing port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:714 #: src/validators/validateHysteriaUrl.ts:20 msgid "Invalid HY2 URL: must not contain spaces" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:708 #: src/validators/validateHysteriaUrl.ts:13 msgid "Invalid HY2 URL: must start with hysteria2:// or hy2://" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:789 #: src/validators/validateHysteriaUrl.ts:127 msgid "Invalid HY2 URL: obfs-password required when obfs is set" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:809 #: src/validators/validateHysteriaUrl.ts:153 msgid "Invalid HY2 URL: parsing failed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:797 #: src/validators/validateHysteriaUrl.ts:136 msgid "Invalid HY2 URL: sni cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:783 #: src/validators/validateHysteriaUrl.ts:116 msgid "Invalid HY2 URL: unsupported obfs type" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:29 #: src/validators/validateIp.ts:28 msgid "Invalid IP address" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:280 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2080 #: src/validators/validateOutboundJson.ts:58 msgid "Invalid JSON format" msgstr "" @@ -2187,10 +2777,12 @@ msgstr "" msgid "Invalid line: \"%s\". Use: domain ip or ip domain" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:194 #: src/validators/validatePath.ts:22 msgid "Invalid path format. Path must start with \"/\" and contain valid characters" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:400 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9103 #: src/validators/validateShadowsocksUrl.ts:91 msgid "Invalid port number. Must be between 1 and 65535" @@ -2204,169 +2796,217 @@ msgstr "" msgid "Invalid regular expression" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:354 #: src/validators/validateShadowsocksUrl.ts:38 msgid "Invalid Shadowsocks URL: decoded credentials must contain method:password" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:380 #: src/validators/validateShadowsocksUrl.ts:67 msgid "Invalid Shadowsocks URL: invalid server and port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:346 #: src/validators/validateShadowsocksUrl.ts:28 msgid "Invalid Shadowsocks URL: missing credentials" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:363 #: src/validators/validateShadowsocksUrl.ts:47 msgid "Invalid Shadowsocks URL: missing method and password separator \":\"" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:394 #: src/validators/validateShadowsocksUrl.ts:84 msgid "Invalid Shadowsocks URL: missing port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:387 #: src/validators/validateShadowsocksUrl.ts:75 msgid "Invalid Shadowsocks URL: missing server" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:373 #: src/validators/validateShadowsocksUrl.ts:59 msgid "Invalid Shadowsocks URL: missing server address" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:338 #: src/validators/validateShadowsocksUrl.ts:17 msgid "Invalid Shadowsocks URL: must not contain spaces" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:331 #: src/validators/validateShadowsocksUrl.ts:9 msgid "Invalid Shadowsocks URL: must start with ss://" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:406 #: src/validators/validateShadowsocksUrl.ts:97 msgid "Invalid Shadowsocks URL: parsing failed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:675 #: src/validators/validateSocksUrl.ts:49 msgid "Invalid SOCKS URL: invalid host and port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:691 #: src/validators/validateSocksUrl.ts:68 msgid "Invalid SOCKS URL: invalid port number" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:668 #: src/validators/validateSocksUrl.ts:41 msgid "Invalid SOCKS URL: missing host and port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:682 #: src/validators/validateSocksUrl.ts:57 msgid "Invalid SOCKS URL: missing hostname or IP" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:686 #: src/validators/validateSocksUrl.ts:62 msgid "Invalid SOCKS URL: missing port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:661 #: src/validators/validateSocksUrl.ts:33 msgid "Invalid SOCKS URL: missing username" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:650 #: src/validators/validateSocksUrl.ts:18 msgid "Invalid SOCKS URL: must not contain spaces" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:642 #: src/validators/validateSocksUrl.ts:9 msgid "Invalid SOCKS URL: must start with socks4://, socks4a://, or socks5://" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:695 #: src/validators/validateSocksUrl.ts:72 msgid "Invalid SOCKS URL: parsing failed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:47 +msgid "Invalid time format. Expected HH:MM (e.g. 22:00)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:595 #: src/validators/validateTrojanUrl.ts:16 msgid "Invalid Trojan URL: must not contain spaces" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:589 #: src/validators/validateTrojanUrl.ts:9 msgid "Invalid Trojan URL: must start with trojan://" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:631 #: src/validators/validateTrojanUrl.ts:61 msgid "Invalid Trojan URL: parsing failed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:892 #: src/validators/validateTuicUrl.ts:103 msgid "Invalid TUIC URL: congestion_control must be bbr, cubic, or new_reno" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:909 #: src/validators/validateTuicUrl.ts:128 msgid "Invalid TUIC URL: insecure must be 0 or 1" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:868 #: src/validators/validateTuicUrl.ts:71 msgid "Invalid TUIC URL: invalid host & port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:882 #: src/validators/validateTuicUrl.ts:88 msgid "Invalid TUIC URL: invalid port number" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:839 #: src/validators/validateTuicUrl.ts:35 msgid "Invalid TUIC URL: missing credentials/server" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:873 #: src/validators/validateTuicUrl.ts:77 msgid "Invalid TUIC URL: missing host" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:850 #: src/validators/validateTuicUrl.ts:49 msgid "Invalid TUIC URL: missing host & port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:876 #: src/validators/validateTuicUrl.ts:81 msgid "Invalid TUIC URL: missing port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:845 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:856 #: src/validators/validateTuicUrl.ts:43 #: src/validators/validateTuicUrl.ts:57 msgid "Invalid TUIC URL: missing UUID" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:830 #: src/validators/validateTuicUrl.ts:23 msgid "Invalid TUIC URL: must not contain spaces" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:824 #: src/validators/validateTuicUrl.ts:16 msgid "Invalid TUIC URL: must start with tuic://" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:929 #: src/validators/validateTuicUrl.ts:154 msgid "Invalid TUIC URL: parsing failed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:923 #: src/validators/validateTuicUrl.ts:147 msgid "Invalid TUIC URL: sni cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:901 #: src/validators/validateTuicUrl.ts:116 msgid "Invalid TUIC URL: udp_relay_mode must be native, quic, or qux" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:861 #: src/validators/validateTuicUrl.ts:63 msgid "Invalid TUIC URL: UUID must be a valid UUID v4 format" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:915 #: src/validators/validateTuicUrl.ts:138 msgid "Invalid TUIC URL: zero_rtt_handshake must be 0, 1, true, or false" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:157 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:172 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:174 #: src/validators/validateUrl.ts:9 #: src/validators/validateUrl.ts:35 #: src/validators/validateUrl.ts:38 msgid "Invalid URL format" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:521 #: src/validators/validateVlessUrl.ts:117 msgid "Invalid VLESS URL: parsing failed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:579 #: src/validators/validateVmessUrl.ts:68 msgid "Invalid VMess URL: parsing failed" msgstr "" @@ -2391,15 +3031,19 @@ msgstr "" msgid "Isolate BitTorrent traffic and force it direct to prevent VPN bans" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12431 #: src/tachyon/tabs/diagnostic/initController.ts:738 msgid "Issues" msgstr "" -#: src/tachyon/tabs/diagnostic/helpers/getMeta.ts:20 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8848 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9337 #: src/tachyon/tabs/diagnostic/checks/getCheckItemsMeta.ts:17 +#: src/tachyon/tabs/diagnostic/helpers/getMeta.ts:20 msgid "Issues detected" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12745 #: src/tachyon/tabs/diagnostic/initController.ts:1211 msgid "Issues detected. Review the diagnosis above." msgstr "" @@ -2415,18 +3059,22 @@ msgstr "" msgid "JSON outbound" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:274 #: src/validators/validateOutboundJson.ts:50 msgid "JSON outbound cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:283 #: src/validators/validateOutboundJson.ts:62 msgid "JSON outbound must be a JSON object" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:289 #: src/validators/validateOutboundJson.ts:70 msgid "JSON outbound must contain a non-empty tag field" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:286 #: src/validators/validateOutboundJson.ts:66 msgid "JSON outbound must contain a non-empty type field" msgstr "" @@ -2443,10 +3091,50 @@ msgstr "" msgid "Junk Min Size (Jmin)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3387 +msgid "Junk packet count (Jc)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8407 msgid "Junk Packet Count (Jc)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3399 +msgid "Junk packet max size (Jmax)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3393 +msgid "Junk packet min size (Jmin)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3483 +msgid "Junk payload (J1)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3489 +msgid "Junk payload (J2)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3495 +msgid "Junk payload (J3)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3418 +msgid "Junk size for cookie packet" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3406 +msgid "Junk size for initiation packet" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3412 +msgid "Junk size for response packet" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3424 +msgid "Junk size for transport packet" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9259 msgid "Kazakhstan (kz)" msgstr "" @@ -2468,10 +3156,15 @@ msgstr "" msgid "Key" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2813 +msgid "Key path" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:4697 msgid "Keyword must not contain spaces or commas" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12961 #: src/tachyon/tabs/diagnostic/initController.ts:1454 msgid "LAN Devices" msgstr "" @@ -2480,6 +3173,8 @@ msgstr "" msgid "Language for AI Doctor diagnosis responses" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3478 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3497 #: src/tachyon/methods/shell/index.ts:501 #: src/tachyon/methods/shell/index.ts:522 msgid "Latency test failed" @@ -2489,11 +3184,14 @@ msgstr "" msgid "Latency test URL" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16496 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17240 #: src/tachyon/tabs/updates/initController.ts:344 #: src/tachyon/tabs/updates/initController.ts:1302 msgid "Latest version is installed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17242 #: src/tachyon/tabs/updates/initController.ts:1304 msgid "Latest version:" msgstr "" @@ -2518,6 +3216,15 @@ msgstr "" msgid "List Update Frequency" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2678 +msgid "Listen address" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2685 +msgid "Listen port" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9104 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:125 msgid "Listening port" msgstr "" @@ -2548,15 +3255,27 @@ msgstr "" msgid "Loaded!" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1788 +msgid "Loading client link..." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12764 #: src/tachyon/tabs/diagnostic/initController.ts:1233 msgid "Loading connected LAN devices..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13947 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14667 #: src/tachyon/tabs/monitoring/initController.ts:988 #: src/tachyon/tabs/monitoring/render.ts:101 msgid "Loading connections" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17116 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17129 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17139 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17149 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17159 #: src/tachyon/tabs/updates/initController.ts:1146 #: src/tachyon/tabs/updates/initController.ts:1161 #: src/tachyon/tabs/updates/initController.ts:1179 @@ -2577,10 +3296,12 @@ msgstr "" msgid "Log Level" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5676 #: src/tachyon/helpers/singBoxVariant.ts:62 msgid "lx" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8920 #: src/tachyon/tabs/diagnostic/checks/runDnsCheck.ts:67 msgid "Main DNS" msgstr "" @@ -2589,6 +3310,9 @@ msgstr "" msgid "Main DNS server. If multiple servers are selected, a timeout switches to a backup." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2256 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7153 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7493 #: src/tachyon/tabs/dashboard/initController.ts:910 #: src/tachyon/tabs/dashboard/initController.ts:1342 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:448 @@ -2627,14 +3351,23 @@ msgstr "" msgid "Max reconnects per hour before alert (default 10)." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3400 +msgid "Maximum size of junk packets" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:934 msgid "Maximum time to wait for example.com to resolve during a DNS health check." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7904 #: src/tachyon/tabs/dashboard/initController.ts:1868 msgid "Memory Usage" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2970 +msgid "Method" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1773 msgid "Metrics Retention (hours)" msgstr "" @@ -2643,6 +3376,10 @@ msgstr "" msgid "Minimum latency difference in milliseconds that triggers switching to a faster server." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3394 +msgid "Minimum size of junk packets" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9161 msgid "Mixed Proxy Password" msgstr "" @@ -2655,14 +3392,30 @@ msgstr "" msgid "Mixed Proxy Username" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:168 +msgid "Mode" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1660 msgid "Model name to use. Leave empty to use default (gpt-4o-mini / claude-3-5-haiku / deepseek-chat / llama3:latest)." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:22 +msgid "Mon" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:12 +msgid "Monday" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1145 msgid "Monitored Interfaces" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:525 +msgid "Monitoring" +msgstr "" + #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:632 msgid "Monitoring & Analytics" msgstr "" @@ -2680,6 +3433,7 @@ msgid "Move up" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8384 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3318 msgid "MTU" msgstr "" @@ -2701,6 +3455,8 @@ msgstr "" msgid "Name shown in the priority level list" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13018 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13103 #: src/tachyon/tabs/diagnostic/initController.ts:1523 #: src/tachyon/tabs/diagnostic/initController.ts:1619 msgid "Native internet restored. Tachyon stopped." @@ -2727,15 +3483,20 @@ msgstr "" msgid "New domains:" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6024 #: src/tachyon/services/core.service.ts:38 msgid "New version %s is available for %s" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9405 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9491 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:100 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:97 msgid "NFQUEUE range is available" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9405 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9491 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:99 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:96 msgid "NFQUEUE range overlaps with another rule" @@ -2757,6 +3518,10 @@ msgstr "" msgid "NFQWS2 strategy cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7081 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7084 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7144 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7484 #: src/tachyon/tabs/dashboard/initController.ts:818 #: src/tachyon/tabs/dashboard/initController.ts:822 #: src/tachyon/tabs/dashboard/initController.ts:898 @@ -2764,14 +3529,17 @@ msgstr "" msgid "No" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2743 #: src/tachyon/tabs/dashboard/partials/renderConnections.ts:63 msgid "No active clients" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14686 #: src/tachyon/tabs/monitoring/initController.ts:1012 msgid "No active connections" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12775 #: src/tachyon/tabs/diagnostic/initController.ts:1245 msgid "No active DHCP clients found on local network." msgstr "" @@ -2781,10 +3549,12 @@ msgstr "" msgid "No active routing sections found." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14686 #: src/tachyon/tabs/monitoring/initController.ts:1013 msgid "No closed connections" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9030 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:32 msgid "No conflict detected" msgstr "" @@ -2793,10 +3563,12 @@ msgstr "" msgid "No Custom Rules Matched" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12558 #: src/tachyon/tabs/diagnostic/initController.ts:933 msgid "No DHCP clients detected" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12891 #: src/tachyon/tabs/diagnostic/initController.ts:1372 msgid "No diagnostic history available yet." msgstr "" @@ -2805,6 +3577,7 @@ msgstr "" msgid "No domains detected yet" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9150 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:187 msgid "No enabled server inbounds configured" msgstr "" @@ -2813,70 +3586,101 @@ msgstr "" msgid "No file selected" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12752 #: src/tachyon/tabs/diagnostic/initController.ts:1220 msgid "No issues detected. System is running normally." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12433 #: src/tachyon/tabs/diagnostic/initController.ts:749 msgid "No issues found" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9255 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:105 msgid "No other marking rules found" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9083 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:99 msgid "No public firewall port required" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9570 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:79 msgid "No rules use ByeDPI" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9395 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:79 msgid "No rules use Zapret" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9481 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:82 msgid "No rules use Zapret2" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:158 +msgid "No sections selected" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:545 msgid "No snapshots yet" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7386 #: src/tachyon/tabs/dashboard/initController.ts:1207 msgid "Node list is empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7225 #: src/tachyon/tabs/dashboard/initController.ts:1006 msgid "Nodes" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12555 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:449 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2743 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3035 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3044 #: src/tachyon/tabs/diagnostic/initController.ts:924 msgid "None" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2388 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4927 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9039 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11533 #: src/tachyon/methods/custom/getDashboardSections.ts:1642 +#: src/tachyon/tabs/dashboard/partials/renderSections.ts:621 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:46 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:152 -#: src/tachyon/tabs/dashboard/partials/renderSections.ts:621 msgid "Not configured" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2547 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:813 msgid "Not connected" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9060 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9160 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:70 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:199 msgid "Not detected" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10406 #: src/tachyon/tabs/diagnostic/partials/renderCheckSection.ts:193 msgid "Not implement yet" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5661 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5666 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17139 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17149 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17159 #: src/tachyon/helpers/singBoxVariant.ts:38 #: src/tachyon/helpers/singBoxVariant.ts:46 #: src/tachyon/tabs/updates/initController.ts:1182 @@ -2885,14 +3689,20 @@ msgstr "" msgid "Not installed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9053 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:62 msgid "Not public" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9111 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:139 msgid "Not required for this listen address" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11484 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11503 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11508 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11556 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:91 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:118 #: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:124 @@ -2900,6 +3710,11 @@ msgstr "" msgid "Not responding" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5263 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11962 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12131 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12177 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12239 #: src/tachyon/tabs/diagnostic/diagnostic.store.ts:140 #: src/tachyon/tabs/diagnostic/initController.ts:123 #: src/tachyon/tabs/diagnostic/initController.ts:353 @@ -2948,6 +3763,18 @@ msgstr "" msgid "Number of consecutive successful checks required before returning to a higher-priority DNS server." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3388 +msgid "Number of junk packets before handshake (1-10)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3043 +msgid "Obfuscation" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3066 +msgid "Obfuscation password" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1650 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:820 msgid "Ollama (Local PC / Server)" @@ -2991,6 +3818,8 @@ msgstr "" msgid "Only the specified servers." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17217 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17254 #: src/tachyon/tabs/updates/initController.ts:1278 #: src/tachyon/tabs/updates/initController.ts:1317 msgid "Open" @@ -3000,35 +3829,46 @@ msgstr "" msgid "Open priority settings and enter a display name" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11416 #: src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:31 msgid "Open Project Page" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16151 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:323 msgid "Operation completed successfully!" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16257 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:455 msgid "Operation failed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15979 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16034 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:110 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:172 msgid "Operation in progress..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16020 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:157 msgid "Operation log" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3592 #: src/tachyon/methods/shell/index.ts:645 msgid "Operation log is not available" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16016 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:152 msgid "Operation started. Waiting for log output..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:1066 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3458 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3526 #: src/helpers/withTimeout.ts:7 #: src/tachyon/methods/shell/index.ts:471 #: src/tachyon/methods/shell/index.ts:559 @@ -3039,10 +3879,12 @@ msgstr "" msgid "Optimization" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12647 #: src/tachyon/tabs/diagnostic/initController.ts:1090 msgid "Optimize AWG MTU" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12639 #: src/tachyon/tabs/diagnostic/initController.ts:1082 msgid "Optimize RAM memory" msgstr "" @@ -3076,6 +3918,7 @@ msgstr "" msgid "Or paste hosts file content:" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:318 #: src/validators/validateOutboundJson.ts:111 msgid "outbounds must be a non-empty array of strings" msgstr "" @@ -3100,12 +3943,21 @@ msgstr "" msgid "P2P Leak Protection" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3125 +msgid "Padding" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:464 +msgid "Parental Control" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7637 msgid "Parsed records:" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8492 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8580 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3006 msgid "Password" msgstr "" @@ -3118,6 +3970,7 @@ msgstr "" msgid "Paste content or upload a file to preview imported DNS records." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:182 #: src/validators/validatePath.ts:7 msgid "Path cannot be empty" msgstr "" @@ -3134,12 +3987,27 @@ msgstr "" msgid "Path must end with cache.db" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13927 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13928 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14462 #: src/tachyon/tabs/monitoring/initController.ts:737 #: src/tachyon/tabs/monitoring/render.ts:80 #: src/tachyon/tabs/monitoring/render.ts:81 msgid "Pause updates" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3465 +msgid "Payload (I3)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3471 +msgid "Payload (I4)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3477 +msgid "Payload (I5)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8344 msgid "Peer Public Key" msgstr "" @@ -3156,6 +4024,8 @@ msgstr "" msgid "PEM-encoded client private key" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5195 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:206 #: src/tachyon/tabs/diagnostic/diagnostic.store.ts:63 msgid "Pending" msgstr "" @@ -3174,6 +4044,7 @@ msgid "Periodically checks if the proxy is responding. Restarts Tachyon after co msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8391 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3328 msgid "Persistent Keepalive" msgstr "" @@ -3202,6 +4073,7 @@ msgstr "" msgid "Port cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9019 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:19 msgid "Port conflict" msgstr "" @@ -3211,6 +4083,7 @@ msgid "Port for the local mixed proxy of this section" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:5468 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1899 msgid "Port must be between 1 and 65535" msgstr "" @@ -3239,6 +4112,10 @@ msgstr "" msgid "Pre-shared key" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3378 +msgid "Pre-shared Key (PSK)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1005 msgid "Prefer IPv4" msgstr "" @@ -3247,6 +4124,10 @@ msgstr "" msgid "Prefer IPv6" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3168 +msgid "Preferred IP" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2546 msgid "Prefix text" msgstr "" @@ -3264,12 +4145,16 @@ msgstr "" msgid "Priority" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2325 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2326 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7608 #: src/tachyon/tabs/dashboard/initController.ts:1490 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:534 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:535 msgid "Priority details" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7558 #: src/tachyon/tabs/dashboard/initController.ts:1427 msgid "Priority details are unavailable" msgstr "" @@ -3299,9 +4184,12 @@ msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2039 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8672 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2626 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2660 msgid "Protocol" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12851 #: src/tachyon/tabs/diagnostic/initController.ts:1328 msgid "Proxy / DPI" msgstr "" @@ -3318,6 +4206,7 @@ msgstr "" msgid "Proxy Health Check URL" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7077 #: src/tachyon/tabs/dashboard/initController.ts:813 msgid "Proxy link is unavailable" msgstr "" @@ -3334,10 +4223,16 @@ msgstr "" msgid "PSK" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9034 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2692 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:40 msgid "Public host" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1671 +msgid "QR code is too large" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9536 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9555 msgid "QUIC (HTTP/3)" @@ -3352,14 +4247,45 @@ msgstr "" msgid "Read error" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2831 +msgid "Reality fake site" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2842 +msgid "Reality fake site port" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2885 +msgid "Reality max time difference" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2853 +msgid "Reality private key" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2860 +msgid "Reality public key" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2866 +msgid "Reality short ID" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2191 +msgid "Reality short ID must contain 1-8 hex digits" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12626 #: src/tachyon/tabs/diagnostic/initController.ts:1069 msgid "Rebuild firewall rules" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17236 #: src/tachyon/tabs/updates/initController.ts:1298 msgid "Rebuilt release" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12696 #: src/tachyon/tabs/diagnostic/initController.ts:1153 msgid "Recommended Quick Fixes:" msgstr "" @@ -3368,6 +4294,7 @@ msgstr "" msgid "Reconnect Threshold" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12632 #: src/tachyon/tabs/diagnostic/initController.ts:1075 msgid "Reconnect WAN" msgstr "" @@ -3380,14 +4307,17 @@ msgstr "" msgid "Records: %d" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2023 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:138 msgid "Refill" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12798 #: src/tachyon/tabs/diagnostic/initController.ts:1270 msgid "Refresh" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12779 #: src/tachyon/tabs/diagnostic/initController.ts:1249 msgid "Refresh Device List" msgstr "" @@ -3400,14 +4330,17 @@ msgstr "" msgid "Regular expression must not contain spaces or commas" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17033 #: src/tachyon/tabs/updates/initController.ts:1058 msgid "Reinstall" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16171 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:348 msgid "Reload now" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16195 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:377 msgid "Reloading..." msgstr "" @@ -3416,10 +4349,12 @@ msgstr "" msgid "Remote Hosts Lists" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16151 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:322 msgid "Removal completed successfully!" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17001 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7927 #: src/tachyon/tabs/updates/initController.ts:1014 msgid "Remove" @@ -3437,6 +4372,7 @@ msgstr "" msgid "Remove the specified servers from this level." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15983 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:114 msgid "Removing" msgstr "" @@ -3449,6 +4385,7 @@ msgstr "" msgid "Reset" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12646 #: src/tachyon/tabs/diagnostic/initController.ts:1089 msgid "Reset Bootstrap DNS" msgstr "" @@ -3467,6 +4404,7 @@ msgstr "" msgid "Resolve domain names before routing so sing-box can use real destination IPs." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12633 #: src/tachyon/tabs/diagnostic/initController.ts:1076 msgid "Resolve gateway" msgstr "" @@ -3491,6 +4429,14 @@ msgstr "" msgid "Resource selection by IP or CIDR inside nfqws2 is not supported here; sing-box selects resources before NFQUEUE." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3435 +msgid "Response packet header (H2)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3411 +msgid "Response packet junk size (S2)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8411 msgid "Response Packet Magic Header (S2)" msgstr "" @@ -3499,30 +4445,41 @@ msgstr "" msgid "Response Packet Magic Header (S4)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3459 +msgid "Response payload (I2)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12627 #: src/tachyon/tabs/diagnostic/initController.ts:1070 msgid "Restart dnsmasq" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12636 #: src/tachyon/tabs/diagnostic/initController.ts:1079 msgid "Restart firewall" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12637 #: src/tachyon/tabs/diagnostic/initController.ts:1080 msgid "Restart network" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12630 #: src/tachyon/tabs/diagnostic/initController.ts:1073 msgid "Restart sing-box DNS" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10117 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:62 msgid "Restart Tachyon" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12638 #: src/tachyon/tabs/diagnostic/initController.ts:1081 msgid "Restart Zapret/ByeDPI" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2444 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:686 msgid "Restarts" msgstr "" @@ -3532,16 +4489,22 @@ msgstr "" msgid "Restore" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12631 #: src/tachyon/tabs/diagnostic/initController.ts:1074 msgid "Restore config backup" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10195 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13068 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13091 #: src/tachyon/tabs/diagnostic/initController.ts:1579 #: src/tachyon/tabs/diagnostic/initController.ts:1603 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:140 msgid "Restore Native Internet" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12643 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13005 #: src/tachyon/tabs/diagnostic/initController.ts:1086 #: src/tachyon/tabs/diagnostic/initController.ts:1506 msgid "Restore Native Internet (Stop Tachyon)" @@ -3555,15 +4518,20 @@ msgstr "" msgid "Restores the Tachyon factory defaults: all rules, subscriptions, custom DNS servers and other options will be lost." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13008 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13095 #: src/tachyon/tabs/diagnostic/initController.ts:1509 #: src/tachyon/tabs/diagnostic/initController.ts:1607 msgid "Restoring native direct internet (stopping Tachyon)..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14462 #: src/tachyon/tabs/monitoring/initController.ts:737 msgid "Resume updates" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14571 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14619 #: src/tachyon/tabs/monitoring/initController.ts:871 #: src/tachyon/tabs/monitoring/initController.ts:929 msgid "Route" @@ -3581,24 +4549,44 @@ msgstr "" msgid "Route requests to this DNS server through another section." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12857 #: src/tachyon/tabs/diagnostic/initController.ts:1335 msgid "Route via Proxy" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2704 +msgid "Routing mode" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10026 msgid "Routing Rule Tracer" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9087 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9096 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9115 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:103 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:114 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:144 msgid "Routing rules" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2713 +msgid "Routing section" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10092 msgid "Rule" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:124 +msgid "Rule Name" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:128 +msgid "Rule name is required" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7157 msgid "Rule set must be an HTTP(S) URL or a local .srs / .json path" msgstr "" @@ -3616,48 +4604,66 @@ msgstr "" msgid "Rule Sets (.srs / .json)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2705 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:104 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:110 +msgid "Rules" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9230 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:79 msgid "Rules mangle counters" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9225 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:74 msgid "Rules mangle exist" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9240 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:89 msgid "Rules mangle output counters" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9235 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:84 msgid "Rules mangle output exist" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9250 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:99 msgid "Rules proxy counters" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9245 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:94 msgid "Rules proxy exist" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10185 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:130 msgid "Run AI Doctor" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10417 #: src/tachyon/tabs/diagnostic/partials/renderRunAction.ts:17 msgid "Run Diagnostic" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10175 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:120 msgid "Run doctor repair" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2388 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4927 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11516 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:301 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1954 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1955 #: src/tachyon/methods/custom/getDashboardSections.ts:1637 -#: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:135 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:616 +#: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:135 msgid "Running" msgstr "" @@ -3665,8 +4671,16 @@ msgstr "" msgid "Russia (ru)" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:672 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:27 +msgid "Sat" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:17 +msgid "Saturday" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3669 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:672 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:1159 msgid "Save" msgstr "" @@ -3695,10 +4709,23 @@ msgstr "" msgid "Saving…" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:180 +msgid "Schedule" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:470 +msgid "Schedule Rule" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13904 #: src/tachyon/tabs/monitoring/render.ts:57 msgid "Search" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3082 +msgid "Secret" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1210 msgid "Secret key for authenticating remote access to YACD when WAN access is enabled." msgstr "" @@ -3711,6 +4738,10 @@ msgstr "" msgid "Secret token for WRITE requests" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:435 +msgid "Section" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10216 msgid "Section action" msgstr "" @@ -3727,10 +4758,16 @@ msgstr "" msgid "Section test order (checked = active, drag rows with △▽):" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:429 +msgid "Sections" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2051 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2740 msgid "Security" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7366 #: src/tachyon/tabs/dashboard/initController.ts:1181 msgid "Select" msgstr "" @@ -3751,8 +4788,8 @@ msgstr "" msgid "Select a predefined domain list" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:87 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7376 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:87 msgid "Select a section" msgstr "" @@ -3764,6 +4801,10 @@ msgstr "" msgid "Select a transit section" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:303 +msgid "Select active days. If none selected, the rule applies every day." +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1643 msgid "Select AI LLM provider for diagnostics" msgstr "" @@ -3788,6 +4829,10 @@ msgstr "" msgid "Select DNS protocol to use" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:216 +msgid "Select LAN devices to apply this schedule to, or enter IP addresses manually." +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8828 msgid "Select network interface for VPN connection" msgstr "" @@ -3812,6 +4857,11 @@ msgstr "" msgid "Select path for sing-box config file. Change this ONLY if you know what you are doing" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:245 +msgid "Select Sections" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7576 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3146 #: src/tachyon/tabs/dashboard/initController.ts:1450 msgid "Select the fastest node" @@ -3833,15 +4883,27 @@ msgstr "" msgid "Select the WAN interfaces to be monitored" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:267 +msgid "Select whether to disable the target during the schedule or enable it ONLY during the schedule." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7450 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7562 #: src/tachyon/tabs/dashboard/initController.ts:1285 #: src/tachyon/tabs/dashboard/initController.ts:1436 msgid "Selected" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2707 +msgid "Selected section" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:298 #: src/validators/validateOutboundJson.ts:85 msgid "Selector and URLTest outbounds must contain a non-empty outbounds array" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11205 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:67 msgid "Send" msgstr "" @@ -3870,12 +4932,17 @@ msgstr "" msgid "Send a Telegram notification when proxy subscriptions are successfully updated." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:452 +msgid "Server" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8355 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8480 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8523 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8554 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8589 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8659 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3286 msgid "Server Address" msgstr "" @@ -3892,14 +4959,29 @@ msgstr "" msgid "Server group for priority failover" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1792 +msgid "Server information" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1681 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2637 +msgid "Server name" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2769 +msgid "Server name / SNI" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8504 msgid "Server Name Indication — leave empty to use server address" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:306 #: src/validators/validateOutboundJson.ts:94 msgid "Server outbound must contain a non-empty server field" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:311 #: src/validators/validateOutboundJson.ts:100 msgid "Server outbound must contain a numeric server_port from 1 to 65535" msgstr "" @@ -3913,18 +4995,39 @@ msgstr "" msgid "Server Port" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3339 +msgid "Server Private Key" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3349 +msgid "Server Public Key" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11261 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:135 msgid "Server unavailable" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3287 +msgid "Server VPN IP address and subnet (e.g. 10.0.0.1/24)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:315 #: src/validators/validateOutboundJson.ts:107 msgid "server_port must be a number from 1 to 65535" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:446 +msgid "Servers" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3320 msgid "Servers on dashboard" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3417 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3436 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12323 #: src/tachyon/methods/shell/index.ts:422 #: src/tachyon/methods/shell/index.ts:443 #: src/tachyon/tabs/diagnostic/initController.ts:604 @@ -3939,20 +5042,24 @@ msgstr "" msgid "Services & Access" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16192 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:374 msgid "Services are online and ready! Reloading page..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7913 #: src/tachyon/tabs/dashboard/initController.ts:1878 msgid "Services info" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16205 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:390 msgid "Services restarted. Click to reload page." msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:1152 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7232 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:478 msgid "Settings" msgstr "" @@ -3992,6 +5099,8 @@ msgstr "" msgid "Show servers whose names match the expression." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10233 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13132 #: src/tachyon/tabs/diagnostic/initController.ts:1653 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:178 msgid "Show sing-box config" @@ -4001,34 +5110,42 @@ msgstr "" msgid "Show subscription metadata for this source on the dashboard" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8991 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:77 msgid "Sing-box autostart disabled" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9307 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:69 msgid "Sing-box FakeIP DNS does not work" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9307 #: src/tachyon/tabs/diagnostic/checks/runFakeIPCheck.ts:68 msgid "Sing-box FakeIP DNS works" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8976 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:62 msgid "Sing-box installed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9001 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:87 msgid "Sing-box listening ports" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8996 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:82 msgid "Sing-box process running" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8986 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:72 msgid "Sing-box service exist" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:8981 #: src/tachyon/tabs/diagnostic/checks/runSingBoxCheck.ts:67 msgid "Sing-box version is compatible (newer than 1.12.4)" msgstr "" @@ -4085,6 +5202,8 @@ msgstr "" msgid "Sorts servers in this section by lowest latency in the dashboard." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14583 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14623 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10099 #: src/tachyon/tabs/monitoring/initController.ts:883 #: src/tachyon/tabs/monitoring/initController.ts:933 @@ -4099,51 +5218,75 @@ msgstr "" msgid "Source Network Interface" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:239 +msgid "Specific Sections (Select sections below)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2026 +msgid "Specify a file path" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2037 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2049 +msgid "Specify different files" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9541 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9560 msgid "SSH" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9585 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:122 msgid "Standalone ByeDPI autostart is enabled" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9585 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:119 msgid "Standalone ByeDPI is active together with Tachyon ByeDPI rules" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9585 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:120 msgid "Standalone ByeDPI service is active" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9585 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:123 msgid "Standalone ByeDPI service is inactive" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9415 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:111 msgid "Standalone Zapret is active together with Tachyon Zapret rules" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9415 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:112 msgid "Standalone Zapret service is active" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9415 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:113 msgid "Standalone Zapret service is inactive" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9503 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:123 msgid "Standalone Zapret2 autostart is enabled" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9501 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:118 msgid "Standalone Zapret2 is active together with Tachyon Zapret2 rules" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9503 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:121 msgid "Standalone Zapret2 service is active" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9503 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:124 msgid "Standalone Zapret2 service is inactive" msgstr "" @@ -4156,14 +5299,21 @@ msgstr "" msgid "Start bot" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12625 #: src/tachyon/tabs/diagnostic/initController.ts:1068 msgid "Start sing-box" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10137 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:82 msgid "Start Tachyon" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:278 +msgid "Start Time (HH:MM)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12629 #: src/tachyon/tabs/diagnostic/initController.ts:1072 msgid "Start watchdog" msgstr "" @@ -4177,6 +5327,8 @@ msgstr "" msgid "Starting…" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2427 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:191 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:448 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:668 msgid "Status" @@ -4194,15 +5346,19 @@ msgstr "" msgid "Stop checking when URLTest group is not used. Use sing-box duration format like 1d, 12h or 30m." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10127 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:72 msgid "Stop Tachyon" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2388 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4927 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11528 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:307 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1960 #: src/tachyon/methods/custom/getDashboardSections.ts:1641 -#: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:147 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:620 +#: src/tachyon/tabs/diagnostic/checks/runSectionsCheck.ts:147 msgid "Stopped" msgstr "" @@ -4232,10 +5388,13 @@ msgstr "" msgid "Subscription auto update" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2035 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:152 msgid "Subscription info:" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3783 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3801 #: src/tachyon/methods/shell/index.ts:930 #: src/tachyon/methods/shell/index.ts:950 msgid "Subscription update failed" @@ -4253,6 +5412,7 @@ msgstr "" msgid "Subscription URL settings" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6710 #: src/tachyon/tabs/dashboard/initController.ts:334 msgid "Subscriptions updated" msgstr "" @@ -4265,34 +5425,49 @@ msgstr "" msgid "Successfully imported %d DNS record(s)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:28 +msgid "Sun" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:18 +msgid "Sunday" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9253 msgid "Sweden (se)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12640 #: src/tachyon/tabs/diagnostic/initController.ts:1083 msgid "Switch DNS to DoH" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7426 #: src/tachyon/tabs/dashboard/initController.ts:1250 msgid "Switch to auto-selection" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12644 #: src/tachyon/tabs/diagnostic/initController.ts:1087 msgid "Sync System Time (NTP)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7901 #: src/tachyon/tabs/dashboard/initController.ts:1865 msgid "System info" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11346 #: src/tachyon/tabs/diagnostic/partials/renderSystemInfo.ts:24 msgid "System information" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9220 #: src/tachyon/tabs/diagnostic/checks/runNftCheck.ts:69 msgid "Table exist" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:6034 #: src/tachyon/services/core.service.ts:52 msgid "Tachyon Error" msgstr "" @@ -4313,14 +5488,21 @@ msgstr "" msgid "Tachyon manages the nfqws2 process lifecycle itself, so daemon mode is not allowed here." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14657 #: src/tachyon/tabs/monitoring/initController.ts:977 msgid "Tachyon service is stopped. Start the service to display connections." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2833 #: src/tachyon/tabs/dashboard/render.ts:17 msgid "Tachyon service is stopped. Start the service to display the dashboard." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:369 +msgid "Tachyon Settings" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:3691 #: src/tachyon/methods/shell/index.ts:800 msgid "Tachyon update did not complete within the timeout" msgstr "" @@ -4329,54 +5511,96 @@ msgstr "" msgid "Tachyon will not modify your DHCP configuration" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9575 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:91 msgid "Tachyon-managed ciadpi runtime has restarted" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9575 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:94 msgid "Tachyon-managed ciadpi runtime is not ready" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9575 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:97 msgid "Tachyon-managed ciadpi runtime is not running" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9575 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:93 msgid "Tachyon-managed ciadpi runtime is ready" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9400 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:87 msgid "Tachyon-managed nfqws runtime is not ready" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9400 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:90 msgid "Tachyon-managed nfqws runtime is not running" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9400 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:86 msgid "Tachyon-managed nfqws runtime is ready" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9486 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:90 msgid "Tachyon-managed nfqws2 runtime is not ready" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9486 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:93 msgid "Tachyon-managed nfqws2 runtime is not running" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9486 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:89 msgid "Tachyon-managed nfqws2 runtime is ready" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3224 +msgid "Tailscale auth key" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3233 +msgid "Tailscale control URL" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9082 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:98 msgid "Tailscale endpoint" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3241 +msgid "Tailscale hostname" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:144 +msgid "Target" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:215 +msgid "Target Devices (IP / Hostname)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:233 +msgid "Target Scope" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:490 +msgid "Telegram Bot" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:2055 msgid "Telegram Bot Token" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2107 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2111 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2609 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:247 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:255 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:895 @@ -4407,6 +5631,7 @@ msgstr "" msgid "Test servers whose names match the expression." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7453 #: src/tachyon/tabs/dashboard/initController.ts:1288 msgid "Testing URL" msgstr "" @@ -4425,27 +5650,38 @@ msgstr "" msgid "The rule applies to the domain and all its subdomains. Use full:, keyword:, or regex: prefixes for exact match, keyword match, or regular expression." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9570 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:78 msgid "There are rules using ByeDPI" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9395 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:78 msgid "There are rules using Zapret" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9481 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:81 msgid "There are rules using Zapret2" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11225 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:91 msgid "Thinking..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13073 #: src/tachyon/tabs/diagnostic/initController.ts:1584 msgid "This action will stop Tachyon, restore standard dnsmasq/DNS, remove all proxy/anti-censorship firewall rules and restore direct Internet connection through your ISP." msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10283 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1906 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1925 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1930 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2020 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2182 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3029 msgid "This field is required" msgstr "" @@ -4487,6 +5723,16 @@ msgstr "" msgid "This will replace the current Tachyon settings with the snapshot" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:25 +msgid "Thu" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:15 +msgid "Thursday" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14574 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14620 #: src/tachyon/tabs/monitoring/initController.ts:874 #: src/tachyon/tabs/monitoring/initController.ts:930 msgid "Time" @@ -4496,6 +5742,15 @@ msgstr "" msgid "Time in seconds for DNS record caching (default: 60)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:43 +msgid "Time is required (e.g. 22:00)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3198 +msgid "Time skew tolerance" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5678 #: src/tachyon/helpers/singBoxVariant.ts:64 msgid "tiny" msgstr "" @@ -4517,6 +5772,7 @@ msgstr "" msgid "Token is required when the bot is enabled" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7455 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2657 #: src/tachyon/tabs/dashboard/initController.ts:1290 msgid "Tolerance" @@ -4538,6 +5794,8 @@ msgstr "" msgid "Tracing routing rules..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2019 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7877 #: src/tachyon/tabs/dashboard/initController.ts:1839 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:133 msgid "Traffic" @@ -4555,6 +5813,7 @@ msgstr "" msgid "Traffic of specified protocols (e.g. BitTorrent, QUIC, STUN) will bypass this section." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7889 #: src/tachyon/tabs/dashboard/initController.ts:1852 msgid "Traffic Total" msgstr "" @@ -4567,6 +5826,7 @@ msgstr "" msgid "Traffic will go through the default route (Direct/Default)." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16900 #: src/tachyon/tabs/updates/initController.ts:877 msgid "Transient connection error" msgstr "" @@ -4577,9 +5837,31 @@ msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2045 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8566 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2907 msgid "Transport" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2931 +msgid "Transport host" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3447 +msgid "Transport packet header (H4)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3423 +msgid "Transport packet junk size (S4)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2915 +msgid "Transport path" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2103 +msgid "Transport path must start with /" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11410 #: src/tachyon/tabs/diagnostic/partials/renderWikiDisclaimer.ts:25 msgid "Troubleshooting" msgstr "" @@ -4596,10 +5878,21 @@ msgstr "" msgid "TTL value cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:23 +msgid "Tue" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:13 +msgid "Tuesday" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9254 msgid "Turkey (tr)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14568 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14618 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1696 #: src/tachyon/tabs/monitoring/initController.ts:868 #: src/tachyon/tabs/monitoring/initController.ts:928 msgid "Type" @@ -4627,11 +5920,16 @@ msgstr "" msgid "Unable to validate the NFQWS2 strategy through the backend parser." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7570 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3120 #: src/tachyon/tabs/dashboard/initController.ts:1444 msgid "Unavailability timeout" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3441 +msgid "Underload packet header (H3)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8414 msgid "Underload Packet Magic Header (H1)" msgstr "" @@ -4658,18 +5956,25 @@ msgstr "" msgid "Unexpected standalone token. Use explicit flags such as --name or --name=value." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9575 #: src/tachyon/tabs/diagnostic/checks/runByedpiCheck.ts:96 msgid "Unexpected Tachyon-managed ciadpi runtime is running" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9400 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:89 msgid "Unexpected Tachyon-managed nfqws runtime is running" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9486 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:92 msgid "Unexpected Tachyon-managed nfqws2 runtime is running" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/tachyon.js:57 +msgid "unique UCI identifier" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:9250 msgid "United Kingdom (gb)" msgstr "" @@ -4678,6 +5983,18 @@ msgstr "" msgid "United States (us)" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5661 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9024 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9605 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9607 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9608 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9609 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9616 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9618 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9620 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9623 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9624 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16523 #: src/tachyon/helpers/singBoxVariant.ts:37 #: src/tachyon/services/systemInfo.service.ts:10 #: src/tachyon/services/systemInfo.service.ts:12 @@ -4693,6 +6010,7 @@ msgstr "" msgid "unknown" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:4927 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:328 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1977 #: src/tachyon/methods/custom/getDashboardSections.ts:1643 @@ -4709,6 +6027,11 @@ msgstr "" msgid "Unknown country" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:5001 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12422 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12441 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12508 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:13049 #: src/tachyon/api.ts:40 #: src/tachyon/tabs/diagnostic/initController.ts:720 #: src/tachyon/tabs/diagnostic/initController.ts:761 @@ -4725,34 +6048,48 @@ msgstr "" msgid "Unknown NFQWS2 flag." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:212 #: src/validators/validateSubnet.ts:17 msgid "Unspecified IP address is not allowed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2464 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:710 msgid "Unstable" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2216 +msgid "Unsupported security mode for this protocol" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:684 msgid "Up to 10 snapshots are kept; the oldest ones are removed automatically." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16952 #: src/tachyon/tabs/updates/initController.ts:944 msgid "Update" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16491 #: src/tachyon/tabs/updates/initController.ts:337 msgid "Update is available" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17224 #: src/tachyon/tabs/updates/initController.ts:1285 msgid "Update is available for current release" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:17205 #: src/tachyon/tabs/updates/initController.ts:1264 msgid "Update is available:" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2090 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2101 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2101 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12635 #: src/tachyon/tabs/diagnostic/initController.ts:1078 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:224 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:237 @@ -4772,28 +6109,36 @@ msgstr "" msgid "Updates & Downloads" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:15985 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:116 msgid "Updating" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12860 #: src/tachyon/tabs/diagnostic/initController.ts:1339 msgid "Updating device routing mode..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7879 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7891 #: src/tachyon/tabs/dashboard/initController.ts:1841 #: src/tachyon/tabs/dashboard/initController.ts:1854 msgid "Uplink" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14580 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:14622 #: src/tachyon/tabs/monitoring/initController.ts:880 #: src/tachyon/tabs/monitoring/initController.ts:932 msgid "Uploaded" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:959 #: src/validators/validateProxyUrl.ts:47 msgid "URL must start with vless://, vmess://, ss://, trojan://, socks4://, socks4a://, socks5://, hysteria2://, hy2://, or tuic://" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:163 #: src/validators/validateUrl.ts:18 msgid "URL must use one of the following protocols:" msgstr "" @@ -4818,12 +6163,16 @@ msgstr "" msgid "URLTest" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2309 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:2310 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7476 #: src/tachyon/tabs/dashboard/initController.ts:1317 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:515 #: src/tachyon/tabs/dashboard/partials/renderSections.ts:516 msgid "URLTest details" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7446 #: src/tachyon/tabs/dashboard/initController.ts:1276 msgid "URLTest details are unavailable" msgstr "" @@ -4837,25 +6186,73 @@ msgstr "" msgid "Use 3-tier check intervals: fast (15s), normal (120s), slow (300s) instead of a single interval." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2200 +msgid "Use 32 hex characters" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1990 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1996 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2112 +msgid "Use a domain name or IP address" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2091 +msgid "Use a duration like 30s, 5m, or 1h30m" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2097 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3031 +msgid "Use a non-negative integer" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2203 +msgid "Use a non-zero secret" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2059 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2061 +msgid "Use an HTTP or HTTPS URL" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2013 +msgid "Use an IP address" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2006 +msgid "Use an IP listen address" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8994 msgid "Use another section as an intermediate hop to connect to servers in this section. Does not apply to network interfaces or JSON outbounds." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2160 +msgid "Use CIDR prefixes like 192.168.1.0/24 or 2001:db8::/32" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2174 +msgid "Use CIDR prefixes or IP addresses like 192.168.1.0/24, 192.168.1.10, or 2001:db8::1" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2118 +msgid "Use letters, digits, dots, underscores, or hyphens" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:252 msgid "Use sing-box duration format like 10s, 1m or 2m30s" msgstr "" -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1323 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1345 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1352 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1383 -#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1411 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2386 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:2646 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3169 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:4731 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:4738 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:4745 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1323 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1345 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1352 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1383 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1411 msgid "Use sing-box duration format like 1d, 12h or 30m" msgstr "" @@ -4864,6 +6261,7 @@ msgstr "" msgid "Use sing-box duration format like 1d, 12h or 6h" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9024 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:25 msgid "Used by" msgstr "" @@ -4873,6 +6271,7 @@ msgid "User-Agent" msgstr "" #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8574 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2990 msgid "Username" msgstr "" @@ -4880,6 +6279,22 @@ msgstr "" msgid "Username cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:27 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:69 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:82 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:141 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:144 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:169 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:189 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:233 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:323 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:409 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:519 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:577 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:633 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:697 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:807 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:927 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:5347 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:5360 #: src/validators/validateDns.ts:25 @@ -4913,10 +6328,16 @@ msgstr "" msgid "Value cannot be empty" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1910 +msgid "Value must be a positive integer" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:10286 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:1934 msgid "Value must not contain control characters" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16188 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:369 msgid "Verifying router and service readiness..." msgstr "" @@ -4925,6 +6346,8 @@ msgstr "" msgid "Via country.is" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:10224 +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:12485 #: src/tachyon/tabs/diagnostic/initController.ts:820 #: src/tachyon/tabs/diagnostic/partials/renderAvailableActions.ts:169 msgid "View logs" @@ -4934,18 +6357,25 @@ msgstr "" msgid "Visible name of this section" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:3034 +msgid "VLESS flow" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8755 msgid "vless://, vmess://, ss://, trojan://, socks4/5://, hy2/hysteria2:// links" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:16167 #: src/tachyon/tabs/updates/partials/renderUpdateProgressModal.ts:343 msgid "Waiting for router services to restart..." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9060 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:70 msgid "WAN" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9159 #: src/tachyon/tabs/diagnostic/checks/runInboundsCheck.ts:198 msgid "WAN public IP" msgstr "" @@ -4978,6 +6408,22 @@ msgstr "" msgid "WebRTC Leak Protection" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:24 +msgid "Wed" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:14 +msgid "Wednesday" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:106 +msgid "Weekdays (Mon-Fri)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/parental.js:110 +msgid "Weekends (Sat-Sun)" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7276 msgid "What Tachyon should do when this section matches" msgstr "" @@ -4986,6 +6432,7 @@ msgstr "" msgid "When switching to another level, test every server and select the fastest instead of the first working one." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:11278 #: src/tachyon/tabs/diagnostic/partials/renderAiChatModal.ts:156 msgid "Why Discord fails?" msgstr "" @@ -4998,10 +6445,15 @@ msgstr "" msgid "WireGuard private key from your Cloudflare WARP account" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js:2944 +msgid "XHTTP mode" +msgstr "" + #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1209 msgid "YACD Secret Key" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:7081 #: src/tachyon/tabs/dashboard/initController.ts:818 msgid "Yes" msgstr "" @@ -5014,26 +6466,32 @@ msgstr "" msgid "Zapret hostlist templates are not supported here because Tachyon does not expand them for per-rule NFQWS strategies." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9390 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:71 msgid "Zapret package is installed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9390 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:72 msgid "Zapret package is not installed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9385 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:60 msgid "Zapret provider binary is available" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9385 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:61 msgid "Zapret provider binary is not available" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9410 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:103 msgid "Zapret sing-box outbound is configured" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9410 #: src/tachyon/tabs/diagnostic/checks/runZapretCheck.ts:104 msgid "Zapret sing-box outbound is not configured" msgstr "" @@ -5042,26 +6500,32 @@ msgstr "" msgid "Zapret2 hostlist templates are not supported here because Tachyon does not expand them for per-rule NFQWS2 strategies." msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9476 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:74 msgid "Zapret2 package is installed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9476 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:75 msgid "Zapret2 package is not installed" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9471 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:63 msgid "Zapret2 provider binary is available" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9471 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:64 msgid "Zapret2 provider binary is not available" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9496 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:106 msgid "Zapret2 sing-box outbound is configured" msgstr "" +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/main.js:9496 #: src/tachyon/tabs/diagnostic/checks/runZapret2Check.ts:107 msgid "Zapret2 sing-box outbound is not configured" msgstr "" diff --git a/tachyon/files/usr/lib/config/validator.uc b/tachyon/files/usr/lib/config/validator.uc index 547d15b7..2a390756 100644 --- a/tachyon/files/usr/lib/config/validator.uc +++ b/tachyon/files/usr/lib/config/validator.uc @@ -1731,9 +1731,57 @@ function validate_runtime_mark_ranges_context(context) { } } +function validate_time_format(val, label) { + val = trim(as_string(val)); + if (val == "") return; + if (!match(val, /^([01][0-9]|2[0-3]):[0-5][0-9]$/)) + fail_validation("Schedule option '" + label + "' has invalid time format '" + val + "'. Expected HH:MM. Aborted."); +} + +function validate_schedule(schedule, sections) { + if (!section_enabled(schedule)) + return; + let name = section_name(schedule); + let start_time = option(schedule, "start_time", ""); + let end_time = option(schedule, "end_time", ""); + validate_time_format(start_time, "schedule." + name + ".start_time"); + validate_time_format(end_time, "schedule." + name + ".end_time"); + + let raw_ips = list_option(schedule, "device_ip"); + if (length(raw_ips) == 0) { + let single_ip = option(schedule, "device_ip", ""); + if (single_ip != "") raw_ips = [ single_ip ]; + } + for (let ip in raw_ips) { + let clean_ip = trim(as_string(ip)); + if (clean_ip != "" && !core_ip.is_ip_or_cidr(clean_ip)) + fail_validation("Schedule '" + name + "' has invalid device IP '" + clean_ip + "'. Aborted."); + } + + let target = option(schedule, "target", "all"); + let sec_names = list_option(schedule, "sections"); + if (length(sec_names) == 0) { + let single_sec = option(schedule, "sections", ""); + if (single_sec != "") sec_names = [ single_sec ]; + else if (target != "all" && target != "sections" && target != "") sec_names = [ target ]; + } + for (let sec_name in sec_names) { + let found = false; + for (let sec in sections) { + if (section_name(sec) == sec_name) { + found = true; + break; + } + } + if (!found) + fail_validation("Schedule '" + name + "' references unknown section '" + sec_name + "'. Aborted."); + } +} + function validate_runtime_config(context) { let settings = settings_section(); let sections = sections_by_type("section"); + let schedules = sections_by_type("schedule"); validate_runtime_mark_ranges_context(context); validate_dns_settings(settings, sections, context); @@ -1765,6 +1813,9 @@ function validate_runtime_config(context) { for (let section in sections) validate_rule(section, sections, context); + + for (let schedule in schedules) + validate_schedule(schedule, sections); } function context_from_runtime() { diff --git a/tachyon/files/usr/lib/nft/apply.uc b/tachyon/files/usr/lib/nft/apply.uc index dc0e8425..5f7b4eeb 100644 --- a/tachyon/files/usr/lib/nft/apply.uc +++ b/tachyon/files/usr/lib/nft/apply.uc @@ -52,6 +52,14 @@ function uci_settings() { return uci_section("settings"); } +function section_by_name(sections, section_name) { + section_name = as_string(section_name); + for (let section in sections) + if (as_string(section[".name"]) == section_name) + return section; + return null; +} + function write_compact_string_array(values) { print("["); for (let i = 0; i < length(values); i++) { @@ -855,6 +863,176 @@ function nft_add_section_priority_rules_from_sections(sections, table, interface return true; } +function normalize_schedule_day_name(day) { + let d = lc(trim(as_string(day))); + let map = { + "mon": "Monday", "monday": "Monday", "1": "Monday", + "tue": "Tuesday", "tuesday": "Tuesday", "2": "Tuesday", + "wed": "Wednesday", "wednesday": "Wednesday", "3": "Wednesday", + "thu": "Thursday", "thursday": "Thursday", "4": "Thursday", + "fri": "Friday", "friday": "Friday", "5": "Friday", + "sat": "Saturday", "saturday": "Saturday", "6": "Saturday", + "sun": "Sunday", "sunday": "Sunday", "7": "Sunday", "0": "Sunday" + }; + return map[d] || null; +} + +function nft_schedule_days_match_args(schedule) { + let raw_days = list_option(schedule, "days"); + if (length(raw_days) == 0) + return []; + + let days_set = {}; + for (let day in raw_days) { + let norm = normalize_schedule_day_name(day); + if (norm) days_set[norm] = true; + } + let day_names = sort(keys(days_set)); + if (length(day_names) == 0 || length(day_names) == 7) + return []; + + if (length(day_names) == 1) + return [ "meta", "day", day_names[0] ]; + + return [ "meta", "day", "{ " + join(", ", day_names) + " }" ]; +} + +function nft_schedule_time_intervals(start_time, end_time) { + start_time = trim(as_string(start_time)); + end_time = trim(as_string(end_time)); + + if (start_time == "" || end_time == "") + return [ [ "00:00:00", "23:59:59" ] ]; + + if (length(start_time) == 5) start_time += ":00"; + if (length(end_time) == 5) end_time += ":00"; + + if (start_time > end_time) { + // Crosses midnight, e.g. 22:00:00 to 08:00:00 + return [ + [ start_time, "23:59:59" ], + [ "00:00:00", end_time ] + ]; + } + + return [ [ start_time, end_time ] ]; +} + +function nft_add_schedule_rules_from_schedules(schedules, sections, table) { + for (let schedule in schedules) { + schedule = object_or_empty(schedule); + if (!bool_option(schedule, "enabled", true)) + continue; + + let raw_ips = list_option(schedule, "device_ip"); + if (length(raw_ips) == 0) { + let single_ip = option(schedule, "device_ip", ""); + if (single_ip != "") raw_ips = [ single_ip ]; + } + if (length(raw_ips) == 0) + continue; + + let start_time = option(schedule, "start_time", ""); + let end_time = option(schedule, "end_time", ""); + let intervals = nft_schedule_time_intervals(start_time, end_time); + let days_args = nft_schedule_days_match_args(schedule); + let target = option(schedule, "target", "all"); + let action = option(schedule, "action", "block"); + let verdict = action == "allow" ? "accept" : "drop"; + + let target_sec_names = []; + if (target == "sections" || (target != "all" && target != "")) { + let raw_secs = list_option(schedule, "sections"); + if (length(raw_secs) == 0) { + let single_sec = option(schedule, "sections", ""); + if (single_sec != "") raw_secs = [ single_sec ]; + else if (target != "sections") raw_secs = [ target ]; + } + target_sec_names = raw_secs; + } + + for (let raw_ip in raw_ips) { + let ip_str = trim(as_string(raw_ip)); + if (ip_str == "") continue; + let family = core_ip.ip_family(ip_str); + let saddr_key = family == 6 ? "ip6" : "ip"; + + for (let interval in intervals) { + let time_args = [ "meta", "hour", sprintf("\"%s\"-\"%s\"", interval[0], interval[1]) ]; + let base_match = [ saddr_key, "saddr", ip_str ]; + append_array(base_match, days_args); + append_array(base_match, time_args); + + if (target == "all" || (length(target_sec_names) == 0 && target != "sections")) { + let fwd_rule = []; + append_array(fwd_rule, base_match); + append_array(fwd_rule, [ "counter", verdict ]); + nft_add_rule(table, "parental_forward", fwd_rule); + + let ctrl_rule = []; + append_array(ctrl_rule, base_match); + append_array(ctrl_rule, [ "counter", verdict ]); + nft_add_rule(table, "parental_control", ctrl_rule); + } else { + for (let sec_name in target_sec_names) { + let target_section = section_by_name(sections, sec_name); + if (!target_section) continue; + + let sets = section_priority_sets(target_section); + if (!sets) continue; + + if (sets.subnets) { + let sub_rule = []; + append_array(sub_rule, base_match); + append_array(sub_rule, [ "ip", "daddr", "@" + as_string(sets.subnets), "counter", verdict ]); + nft_add_rule(table, "parental_control", sub_rule); + nft_add_rule(table, "parental_forward", sub_rule); + } + if (sets.subnets6 && family == 6) { + let sub6_rule = []; + append_array(sub6_rule, base_match); + append_array(sub6_rule, [ "ip6", "daddr", "@" + as_string(sets.subnets6), "counter", verdict ]); + nft_add_rule(table, "parental_control", sub6_rule); + nft_add_rule(table, "parental_forward", sub6_rule); + } + if (sets.ip_ports) { + let ipport_tcp = []; + append_array(ipport_tcp, base_match); + append_array(ipport_tcp, [ "ip", "daddr", ".", "tcp", "dport", "@" + as_string(sets.ip_ports), "counter", verdict ]); + nft_add_rule(table, "parental_control", ipport_tcp); + nft_add_rule(table, "parental_forward", ipport_tcp); + + let ipport_udp = []; + append_array(ipport_udp, base_match); + append_array(ipport_udp, [ "ip", "daddr", ".", "udp", "dport", "@" + as_string(sets.ip_ports), "counter", verdict ]); + nft_add_rule(table, "parental_control", ipport_udp); + nft_add_rule(table, "parental_forward", ipport_udp); + } + if (sets.ports) { + let port_tcp = []; + append_array(port_tcp, base_match); + append_array(port_tcp, [ "tcp", "dport", "@" + as_string(sets.ports), "counter", verdict ]); + nft_add_rule(table, "parental_control", port_tcp); + nft_add_rule(table, "parental_forward", port_tcp); + + let port_udp = []; + append_array(port_udp, base_match); + append_array(port_udp, [ "udp", "dport", "@" + as_string(sets.ports), "counter", verdict ]); + nft_add_rule(table, "parental_control", port_udp); + nft_add_rule(table, "parental_forward", port_udp); + } + } + } + } + } + } + return true; +} + +function nft_add_schedule_rules_from_uci(table, sections) { + return nft_add_schedule_rules_from_schedules(uci_sections("schedule"), sections, table); +} + function nft_create_runtime_base(table, localv4_set, common_set, port_set, ip_port_set, interface_set, source_interfaces, fakeip_mark, outbound_mark, fakeip_range, tproxy_port, exclude_ntp, localv6_set, common6_set, ip_port6_set, fakeip6_range, tproxy6_address) { localv6_set = default_arg(localv6_set, "localv6"); common6_set = default_arg(common6_set, "tachyon_subnets6"); @@ -880,12 +1058,22 @@ function nft_create_runtime_base(table, localv4_set, common_set, port_set, ip_po return false; if (!nft_create_chain(table, "mangle", "{ type filter hook prerouting priority -149; policy accept; }") || + !nft_create_chain(table, "dstnat", "{ type nat hook prerouting priority dstnat; policy accept; }") || !nft_create_chain(table, "mangle_output", "{ type route hook output priority -150; policy accept; }") || !nft_create_priority_chains(table) || + !nft_create_chain(table, "parental_control", "{ }") || + !nft_create_chain(table, "parental_forward", "{ }") || !nft_create_chain(table, "proxy", "{ type filter hook prerouting priority -100; policy accept; }")) return false; + if (!nft_add_rule(table, "dstnat", [ "iifname", "@" + as_string(interface_set), "ip", "daddr", "!=", "@" + as_string(localv4_set), "udp", "dport", "53", "redirect", "to", ":53" ]) || + !nft_add_rule(table, "dstnat", [ "iifname", "@" + as_string(interface_set), "ip", "daddr", "!=", "@" + as_string(localv4_set), "tcp", "dport", "53", "redirect", "to", ":53" ]) || + !nft_add_rule(table, "dstnat", [ "iifname", "@" + as_string(interface_set), "ip6", "daddr", "!=", "@" + as_string(localv6_set), "udp", "dport", "53", "redirect", "to", ":53" ]) || + !nft_add_rule(table, "dstnat", [ "iifname", "@" + as_string(interface_set), "ip6", "daddr", "!=", "@" + as_string(localv6_set), "tcp", "dport", "53", "redirect", "to", ":53" ])) + return false; + if (!nft_add_rule(table, "mangle", [ "ct", "status", "dnat", "return" ]) || + !nft_add_rule(table, "mangle", [ "jump", "parental_control" ]) || !nft_add_rule(table, "mangle", [ "iifname", "@" + as_string(interface_set), "ip", "daddr", "@" + as_string(localv4_set), "return" ]) || !nft_add_rule(table, "mangle", [ "iifname", "@" + as_string(interface_set), "ip6", "daddr", "@" + as_string(localv6_set), "return" ])) return false; @@ -946,7 +1134,8 @@ function nft_create_runtime_base(table, localv4_set, common_set, port_set, ip_po !nft_add_rule(table, "mangle_output", [ "jump", "priority_output_rules" ])) return false; - if (!nft_create_chain(table, "mangle_forward", "{ type filter hook forward priority -150; policy accept; }")) + if (!nft_create_chain(table, "mangle_forward", "{ type filter hook forward priority -150; policy accept; }") || + !nft_add_rule(table, "mangle_forward", [ "jump", "parental_forward" ])) return false; let rtmtu_ok = nft_add_rule(table, "mangle_forward", [ "tcp", "flags", "syn", "tcp", "option", "maxseg", "size", "set", "rt", "mtu" ]); @@ -1633,7 +1822,20 @@ function nft_rule_signature_body(body, section) { return body; } -function nft_runtime_signature_from_settings_and_sections(settings, sections) { +function nft_schedule_signature_body(body, schedule) { + let name = as_string(schedule[".name"]); + body = signature_add_value(body, "schedule." + name + ".enabled", bool_option(schedule, "enabled", true) ? "1" : "0"); + body = signature_add_value(body, "schedule." + name + ".device_ip", option(schedule, "device_ip", "")); + body = signature_add_value(body, "schedule." + name + ".target", option(schedule, "target", "all")); + body = signature_add_value(body, "schedule." + name + ".sections", join(",", list_option(schedule, "sections"))); + body = signature_add_value(body, "schedule." + name + ".action", option(schedule, "action", "block")); + body = signature_add_value(body, "schedule." + name + ".start_time", option(schedule, "start_time", "")); + body = signature_add_value(body, "schedule." + name + ".end_time", option(schedule, "end_time", "")); + body = signature_add_value(body, "schedule." + name + ".days", join(",", list_option(schedule, "days"))); + return body; +} + +function nft_runtime_signature_from_settings_and_sections(settings, sections, schedules) { let body = ""; body = signature_add_value(body, "settings.source_network_interfaces", option(settings, "source_network_interfaces", "br-lan")); @@ -1644,11 +1846,14 @@ function nft_runtime_signature_from_settings_and_sections(settings, sections) { for (let section in sections) body = nft_rule_signature_body(body, object_or_empty(section)); + for (let schedule in schedules) + body = nft_schedule_signature_body(body, object_or_empty(schedule)); + return signature_hash(body); } -function print_nft_runtime_signature_from_settings_and_sections(settings, sections) { - let hash = nft_runtime_signature_from_settings_and_sections(settings, sections); +function print_nft_runtime_signature_from_settings_and_sections(settings, sections, schedules) { + let hash = nft_runtime_signature_from_settings_and_sections(settings, sections, schedules); if (hash == "") return false; @@ -1674,14 +1879,6 @@ function fixture_section_list(data, type_name) { return type(plural) == "array" ? plural : []; } -function section_by_name(sections, section_name) { - section_name = as_string(section_name); - for (let section in sections) - if (as_string(section[".name"]) == section_name) - return section; - return null; -} - function nft_create_provider_output_rules_from_uci(table, action, provider_bin, route_mark_base, queue_base, desync_mark, desync_mark_postnat) { return nft_create_provider_output_rules_from_sections( uci_sections("section"), @@ -1698,9 +1895,11 @@ function nft_create_provider_output_rules_from_uci(table, action, provider_bin, function nft_create_full_runtime_from_uci(rt_table, table, localv4_set, common_set, port_set, ip_port_set, interface_set, fakeip_mark, outbound_mark, fakeip_range, tproxy_port, zapret_bin, zapret_route_mark_base, zapret_queue_base, zapret_desync_mark, zapret_desync_mark_postnat, zapret2_bin, zapret2_route_mark_base, zapret2_queue_base, zapret2_desync_mark, zapret2_desync_mark_postnat, localv6_set, common6_set, ip_port6_set, fakeip6_range, tproxy6_address) { log_debug("Building nftables runtime model"); - return ensure_tproxy_route_rule(rt_table, fakeip_mark) && + return ensure_bridge_netfilter_disabled() && + ensure_tproxy_route_rule(rt_table, fakeip_mark) && nft_create_runtime_base_from_uci(table, localv4_set, common_set, port_set, ip_port_set, interface_set, fakeip_mark, outbound_mark, fakeip_range, tproxy_port, localv6_set, common6_set, ip_port6_set, fakeip6_range, tproxy6_address) && nft_add_section_priority_rules_from_sections(uci_sections("section"), table, interface_set, localv4_set, localv6_set, fakeip_mark) && + nft_add_schedule_rules_from_uci(table, uci_sections("section")) && nft_create_provider_output_rules_from_uci(table, "zapret", zapret_bin, zapret_route_mark_base, zapret_queue_base, zapret_desync_mark, zapret_desync_mark_postnat) && nft_create_provider_output_rules_from_uci(table, "zapret2", zapret2_bin, zapret2_route_mark_base, zapret2_queue_base, zapret2_desync_mark, zapret2_desync_mark_postnat) && nft_create_runtime_output_rules(table, localv4_set, common_set, port_set, ip_port_set, fakeip_mark, fakeip_range, localv6_set, common6_set, ip_port6_set, fakeip6_range); @@ -1726,7 +1925,8 @@ function nft_rebuild_runtime_from_uci(rt_table, table, localv4_set, common_set, function nft_runtime_signature_from_uci() { return print_nft_runtime_signature_from_settings_and_sections( uci_settings(), - uci_sections("section") + uci_sections("section"), + uci_sections("schedule") ); } @@ -1743,7 +1943,11 @@ function fixture_settings(data) { function nft_runtime_signature_from_fixture(path) { let data = object_or_empty(common_read_json_file(path)); connections.set_item_sections_from_data(data); - return print_nft_runtime_signature_from_settings_and_sections(fixture_settings(data), fixture_section_list(data, "section")); + return print_nft_runtime_signature_from_settings_and_sections( + fixture_settings(data), + fixture_section_list(data, "section"), + fixture_section_list(data, "schedule") + ); } function nft_mangle_chain_text(context, table) { @@ -1980,6 +2184,8 @@ else if (mode == "nft-create-provider-output-rules-fixture") exit(nft_create_provider_output_rules_from_sections(fixture_section_list(object_or_empty(common_read_json_file(ARGV[1])), "section"), ARGV[2], ARGV[3], ARGV[4], ARGV[5], ARGV[6], ARGV[7], ARGV[8]) ? 0 : 1); else if (mode == "nft-add-section-priority-rules-fixture") exit(nft_add_section_priority_rules_from_sections(fixture_section_list(object_or_empty(common_read_json_file(ARGV[1])), "section"), ARGV[2], ARGV[3], ARGV[4], ARGV[5], ARGV[6]) ? 0 : 1); +else if (mode == "nft-add-schedule-rules-fixture") + exit(nft_add_schedule_rules_from_schedules(fixture_section_list(object_or_empty(common_read_json_file(ARGV[1])), "schedule"), fixture_section_list(object_or_empty(common_read_json_file(ARGV[1])), "section"), ARGV[2]) ? 0 : 1); else if (mode == "nft-create-full-runtime-from-uci") exit(nft_create_full_runtime_from_uci(ARGV[1], ARGV[2], ARGV[3], ARGV[4], ARGV[5], ARGV[6], ARGV[7], ARGV[8], ARGV[9], ARGV[10], ARGV[11], ARGV[12], ARGV[13], ARGV[14], ARGV[15], ARGV[16], ARGV[17], ARGV[18], ARGV[19], ARGV[20], ARGV[21], ARGV[22], ARGV[23], ARGV[24], ARGV[25], ARGV[26]) ? 0 : 1); else if (mode == "nft-rebuild-runtime-from-uci") diff --git a/tests/parental_control.sh b/tests/parental_control.sh new file mode 100644 index 00000000..1b25ae71 --- /dev/null +++ b/tests/parental_control.sh @@ -0,0 +1,189 @@ +#!/usr/bin/env bash +set -eo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +TACHYON_LIB="$ROOT_DIR/tachyon/files/usr/lib" +NFT_RUNTIME="$ROOT_DIR/tachyon/files/usr/lib/nft/apply.uc" +VALIDATOR_RUNTIME="$ROOT_DIR/tachyon/files/usr/lib/config/validator.uc" +WORK_DIR="$(mktemp -d)" +NFT_LOG="$WORK_DIR/nft.log" + +nft_ucode() { + ucode -L "$TACHYON_LIB" "$NFT_RUNTIME" "$@" +} + +cleanup() { + rm -rf "$WORK_DIR" +} +trap cleanup EXIT + +fail() { + printf 'FAIL: %s\n' "$1" >&2 + cat "$NFT_LOG" >&2 2>/dev/null || true + exit 1 +} + +assert_contains() { + local file="$1" + local expected="$2" + local label="$3" + + grep -Fq "$expected" "$file" || fail "$label: expected '$expected'" +} + +mkdir -p "$WORK_DIR/bin" +cat >"$WORK_DIR/bin/nft" <>"$NFT_LOG" +exit 0 +NFT +chmod +x "$WORK_DIR/bin/nft" +export PATH="$WORK_DIR/bin:$PATH" + +cat >"$WORK_DIR/schedule_fixture.json" <<'JSON' +{ + "section": [ + { + ".name": "sec_youtube", + "enabled": "1", + "action": "connection", + "ip_cidr": [ "142.250.0.0/15" ] + }, + { + ".name": "sec_discord", + "enabled": "1", + "action": "connection", + "ip_cidr": [ "162.158.0.0/16" ] + } + ], + "schedule": [ + { + ".name": "phone_night", + "enabled": "1", + "device_ip": "192.168.1.150", + "target": "all", + "action": "block", + "start_time": "22:00", + "end_time": "08:00", + "days": [ "mon", "tue", "wed", "thu", "fri" ] + }, + { + ".name": "tv_multi", + "enabled": "1", + "device_ip": "192.168.1.160", + "target": "sections", + "sections": [ "sec_youtube", "sec_discord" ], + "action": "block", + "start_time": "21:00", + "end_time": "07:00", + "days": [ "sat", "sun" ] + } + ] +} +JSON + +# Run nft-add-schedule-rules-fixture +nft_ucode nft-add-schedule-rules-fixture "$WORK_DIR/schedule_fixture.json" "tachyon" + +# Verify rules in NFT_LOG +assert_contains "$NFT_LOG" "parental_forward ip saddr 192.168.1.150 meta day { Friday, Monday, Thursday, Tuesday, Wednesday } meta hour \"22:00:00\"-\"23:59:59\" counter drop" "midnight wrap part 1" +assert_contains "$NFT_LOG" "parental_forward ip saddr 192.168.1.150 meta day { Friday, Monday, Thursday, Tuesday, Wednesday } meta hour \"00:00:00\"-\"08:00:00\" counter drop" "midnight wrap part 2" +assert_contains "$NFT_LOG" "parental_control ip saddr 192.168.1.150 meta day { Friday, Monday, Thursday, Tuesday, Wednesday } meta hour \"22:00:00\"-\"23:59:59\" counter drop" "parental_control drop" + +# Verify per-section blocking +assert_contains "$NFT_LOG" "ip saddr 192.168.1.160 meta day { Saturday, Sunday } meta hour \"21:00:00\"-\"23:59:59\" ip daddr @tachyon_rule_sec_youtube_subnets counter drop" "section youtube subnet drop" +assert_contains "$NFT_LOG" "ip saddr 192.168.1.160 meta day { Saturday, Sunday } meta hour \"21:00:00\"-\"23:59:59\" ip daddr @tachyon_rule_sec_discord_subnets counter drop" "section discord subnet drop" + +# Verify signature changes when schedule is modified +SIG1="$(nft_ucode nft-runtime-signature-fixture "$WORK_DIR/schedule_fixture.json")" + +cat >"$WORK_DIR/schedule_fixture2.json" <<'JSON' +{ + "section": [ + { + ".name": "sec_youtube", + "enabled": "1", + "action": "connection" + } + ], + "schedule": [ + { + ".name": "phone_night", + "enabled": "0", + "device_ip": "192.168.1.150", + "target": "all" + } + ] +} +JSON + +SIG2="$(nft_ucode nft-runtime-signature-fixture "$WORK_DIR/schedule_fixture2.json")" + +[ "$SIG1" != "$SIG2" ] || fail "Signature must change when schedule is updated" + +# Verify validator rejects invalid schedule time +cat >"$WORK_DIR/invalid_time.json" <<'JSON' +{ + "settings": { ".name": "settings", ".type": "settings", "dns_server": ["77.88.8.8"], "bootstrap_dns_server": ["77.88.8.8"] }, + "schedule": [ + { + ".name": "bad_time", + "enabled": "1", + "device_ip": "192.168.1.100", + "start_time": "25:00" + } + ] +} +JSON + +if ucode -L "$TACHYON_LIB" "$VALIDATOR_RUNTIME" validate-runtime-fixture "$WORK_DIR/invalid_time.json" "{}" >/dev/null 2>&1; then + fail "Validator must reject invalid start_time 25:00" +fi + +# Verify validator rejects invalid schedule device IP +cat >"$WORK_DIR/invalid_ip.json" <<'JSON' +{ + "settings": { ".name": "settings", ".type": "settings", "dns_server": ["77.88.8.8"], "bootstrap_dns_server": ["77.88.8.8"] }, + "schedule": [ + { + ".name": "bad_ip", + "enabled": "1", + "device_ip": "999.999.999.999", + "start_time": "22:00", + "end_time": "08:00" + } + ] +} +JSON + +if ucode -L "$TACHYON_LIB" "$VALIDATOR_RUNTIME" validate-runtime-fixture "$WORK_DIR/invalid_ip.json" "{}" >/dev/null 2>&1; then + fail "Validator must reject invalid device_ip 999.999.999.999" +fi + +# Verify validator rejects unknown target section +cat >"$WORK_DIR/invalid_target.json" <<'JSON' +{ + "settings": { ".name": "settings", ".type": "settings", "dns_server": ["77.88.8.8"], "bootstrap_dns_server": ["77.88.8.8"] }, + "schedule": [ + { + ".name": "bad_target", + "enabled": "1", + "device_ip": "192.168.1.100", + "target": "non_existent_section" + } + ] +} +JSON + +if ucode -L "$TACHYON_LIB" "$VALIDATOR_RUNTIME" validate-runtime-fixture "$WORK_DIR/invalid_target.json" "{}" >/dev/null 2>&1; then + fail "Validator must reject non-existent target section" +fi + +printf 'Parental control and schedule tests passed\n' diff --git a/uninstall.sh b/uninstall.sh index d117302f..42a3a797 100644 --- a/uninstall.sh +++ b/uninstall.sh @@ -7,7 +7,7 @@ set -u -UNINSTALLER_VERSION="1.2.85" +UNINSTALLER_VERSION="1.2.86" # ─── TUI helpers & Color detection ─────────────────────────────────────────── ESC="$(printf '\033')"