From 560276e7e40859e02deda4886c10c98d4d276cf5 Mon Sep 17 00:00:00 2001 From: actions-user Date: Fri, 21 Nov 2025 00:13:07 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=B6=20Sync=202025-11-21=2000:13:07?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../luci-static/resources/view/bandix/dns.js | 32 +- .../resources/view/bandix/index.js | 66 +- luci-app-bandix/po/es/bandix.po | 12 + luci-app-bandix/po/fr/bandix.po | 14 +- luci-app-bandix/po/id/bandix.po | 12 + luci-app-bandix/po/ja/bandix.po | 12 + luci-app-bandix/po/pl/bandix.po | 748 ++++++++++++++++++ luci-app-bandix/po/ru/bandix.po | 14 +- luci-app-bandix/po/th/bandix.po | 12 + luci-app-bandix/po/zh_Hans/bandix.po | 14 +- luci-app-bandix/po/zh_Hant/bandix.po | 14 +- .../model/cbi/passwall/client/type/ray.lua | 3 + .../luasrc/passwall/util_xray.lua | 1 + luci-app-passwall/po/zh-cn/passwall.po | 6 + lucky/Makefile | 2 +- qbittorrent/Makefile | 4 +- qt6base/Makefile | 4 +- qt6tools/Makefile | 4 +- 18 files changed, 940 insertions(+), 34 deletions(-) create mode 100644 luci-app-bandix/po/pl/bandix.po diff --git a/luci-app-bandix/htdocs/luci-static/resources/view/bandix/dns.js b/luci-app-bandix/htdocs/luci-static/resources/view/bandix/dns.js index f539dc9..390cdef 100644 --- a/luci-app-bandix/htdocs/luci-static/resources/view/bandix/dns.js +++ b/luci-app-bandix/htdocs/luci-static/resources/view/bandix/dns.js @@ -807,22 +807,22 @@ return view.extend({ return (value * 100).toFixed(2) + '%'; } - // 总查询数卡片(合并成功率) + // 查询和响应数量卡片 + // 使用后端返回的 total_queries 和 total_responses + var queryCount = stats.total_queries || 0; + var responseCount = stats.total_responses || 0; + var totalQueriesCard = E('div', { 'class': 'cbi-section' }, [ - E('div', { 'class': 'stats-card-title' }, _('Total Queries')), - E('div', { 'class': 'stats-card-main-value' }, (stats.total_queries || 0).toLocaleString()), + E('div', { 'class': 'stats-card-title' }, _('Query & Response')), + E('div', { 'class': 'stats-card-main-value' }, (queryCount + responseCount || 0).toLocaleString()), E('div', { 'class': 'stats-card-details' }, [ E('div', { 'class': 'stats-detail-row' }, [ - E('span', { 'class': 'stats-detail-label' }, _('Success Rate') + ':'), - E('span', { 'class': 'stats-detail-value' }, formatPercent(stats.success_rate || 0)) + E('span', { 'class': 'stats-detail-label' }, _('Queries') + ':'), + E('span', { 'class': 'stats-detail-value' }, queryCount.toLocaleString()) ]), E('div', { 'class': 'stats-detail-row' }, [ - E('span', { 'class': 'stats-detail-label' }, _('Success') + ':'), - E('span', { 'class': 'stats-detail-value' }, (stats.success_count || 0).toLocaleString()) - ]), - E('div', { 'class': 'stats-detail-row' }, [ - E('span', { 'class': 'stats-detail-label' }, _('Failure') + ':'), - E('span', { 'class': 'stats-detail-value' }, (stats.failure_count || 0).toLocaleString()) + E('span', { 'class': 'stats-detail-label' }, _('Responses') + ':'), + E('span', { 'class': 'stats-detail-value' }, responseCount.toLocaleString()) ]) ]) ]); @@ -832,8 +832,12 @@ return view.extend({ // 响应时间卡片 statsGrid.appendChild(E('div', { 'class': 'cbi-section' }, [ E('div', { 'class': 'stats-card-title' }, _('Response Time')), - E('div', { 'class': 'stats-card-main-value' }, (stats.avg_response_time_ms || 0).toFixed(2) + ' ' + _('ms')), + E('div', { 'class': 'stats-card-main-value' }, Math.round(stats.latest_response_time_ms || 0) + ' ' + _('ms')), E('div', { 'class': 'stats-card-details' }, [ + E('div', { 'class': 'stats-detail-row' }, [ + E('span', { 'class': 'stats-detail-label' }, _('Average Response Time') + ':'), + E('span', { 'class': 'stats-detail-value' }, (stats.avg_response_time_ms || 0).toFixed(2) + ' ' + _('ms')) + ]), E('div', { 'class': 'stats-detail-row' }, [ E('span', { 'class': 'stats-detail-label' }, _('Min Response Time') + ':'), E('span', { 'class': 'stats-detail-value' }, (stats.min_response_time_ms || 0) + ' ' + _('ms')) @@ -841,10 +845,6 @@ return view.extend({ E('div', { 'class': 'stats-detail-row' }, [ E('span', { 'class': 'stats-detail-label' }, _('Max Response Time') + ':'), E('span', { 'class': 'stats-detail-value' }, (stats.max_response_time_ms || 0) + ' ' + _('ms')) - ]), - E('div', { 'class': 'stats-detail-row' }, [ - E('span', { 'class': 'stats-detail-label' }, _('Latest Response Time') + ':'), - E('span', { 'class': 'stats-detail-value' }, (stats.latest_response_time_ms || 0) + ' ' + _('ms')) ]) ]) ])); diff --git a/luci-app-bandix/htdocs/luci-static/resources/view/bandix/index.js b/luci-app-bandix/htdocs/luci-static/resources/view/bandix/index.js index 3a2f108..ce4d726 100644 --- a/luci-app-bandix/htdocs/luci-static/resources/view/bandix/index.js +++ b/luci-app-bandix/htdocs/luci-static/resources/view/bandix/index.js @@ -225,6 +225,10 @@ return view.extend({ padding: 4px 10px; font-size: 0.875rem; } + + #history-retention { + border: 1px solid rgba(107, 114, 128, 0.4); + } .bandix-alert { border-radius: 4px; @@ -413,6 +417,28 @@ return view.extend({ opacity: 0.6; font-size: 0.75rem; } + + .device-last-online { + font-size: 0.75rem; + color: #6b7280; + } + + .device-last-online-value { + color: #9ca3af; + } + + .device-last-online-exact { + display: none; + color: #9ca3af; + } + + .device-last-online:hover .device-last-online-value { + display: none; + } + + .device-last-online:hover .device-last-online-exact { + display: inline; + } .traffic-info { display: flex; @@ -1930,6 +1956,31 @@ function formatLastOnlineTime(lastOnlineTs) { return yearsDiff + _('years ago'); } +// 精确时间格式 +function formatLastOnlineExactTime(lastOnlineTs) { + if (!lastOnlineTs || lastOnlineTs <= 0) { + return '-'; + } + + var lastOnlineTime = lastOnlineTs < 1000000000000 ? lastOnlineTs * 1000 : lastOnlineTs; + var date = new Date(lastOnlineTime); + + if (isNaN(date.getTime())) { + return '-'; + } + + function pad(value) { + return value < 10 ? '0' + value : value; + } + + return date.getFullYear() + '-' + + pad(date.getMonth() + 1) + '-' + + pad(date.getDate()) + ' ' + + pad(date.getHours()) + ':' + + pad(date.getMinutes()) + ':' + + pad(date.getSeconds()); +} + function formatRetentionSeconds(seconds) { if (!seconds || seconds <= 0) return ''; var value; @@ -2565,13 +2616,14 @@ function formatRetentionSeconds(seconds) { } // 添加 MAC 和最后上线信息 - deviceInfoElements.push( - E('div', { 'class': 'device-mac' }, device.mac), - E('div', { 'class': 'device-last-online' }, [ - E('span', { 'style': 'color: #6b7280; font-size: 0.75rem;' }, _('Last Online') + ': '), - E('span', { 'style': 'color: #9ca3af; font-size: 0.75rem;' }, formatLastOnlineTime(device.last_online_ts)) - ]) - ); + deviceInfoElements.push( + E('div', { 'class': 'device-mac' }, device.mac), + E('div', { 'class': 'device-last-online' }, [ + E('span', {}, _('Last Online') + ': '), + E('span', { 'class': 'device-last-online-value' }, formatLastOnlineTime(device.last_online_ts)), + E('span', { 'class': 'device-last-online-exact' }, formatLastOnlineExactTime(device.last_online_ts)) + ]) + ); } var row = E('tr', {}, [ diff --git a/luci-app-bandix/po/es/bandix.po b/luci-app-bandix/po/es/bandix.po index b9bf0b1..3eb3919 100644 --- a/luci-app-bandix/po/es/bandix.po +++ b/luci-app-bandix/po/es/bandix.po @@ -733,3 +733,15 @@ msgstr "Persistir datos del historial" msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled" msgstr "Habilitar funcionalidad de persistencia de datos, los datos solo se persistirán en el disco cuando esta opción esté habilitada" + +msgid "Query & Response" +msgstr "Consulta y Respuesta" + +msgid "Queries" +msgstr "Consultas" + +msgid "Responses" +msgstr "Respuestas" + +msgid "Average Response Time" +msgstr "Tiempo de Respuesta Promedio" diff --git a/luci-app-bandix/po/fr/bandix.po b/luci-app-bandix/po/fr/bandix.po index 165d2b1..f885c61 100644 --- a/luci-app-bandix/po/fr/bandix.po +++ b/luci-app-bandix/po/fr/bandix.po @@ -732,4 +732,16 @@ msgid "Persist History Data" msgstr "Persister les données d'historique" msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled" -msgstr "启用数据持久化功能,只有启用此选项后才会持久化到磁盘" \ No newline at end of file +msgstr "Activer la fonctionnalité de persistance des données, les données ne seront enregistrées sur le disque que lorsque cette option est activée" + +msgid "Query & Response" +msgstr "Requête et Réponse" + +msgid "Queries" +msgstr "Requêtes" + +msgid "Responses" +msgstr "Réponses" + +msgid "Average Response Time" +msgstr "Temps de Réponse Moyen" \ No newline at end of file diff --git a/luci-app-bandix/po/id/bandix.po b/luci-app-bandix/po/id/bandix.po index 6e3bea9..5c7040e 100644 --- a/luci-app-bandix/po/id/bandix.po +++ b/luci-app-bandix/po/id/bandix.po @@ -733,3 +733,15 @@ msgstr "Simpan data riwayat" msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled" msgstr "Aktifkan fungsi persistensi data, data hanya akan disimpan ke disk ketika opsi ini diaktifkan" + +msgid "Query & Response" +msgstr "Kueri & Respons" + +msgid "Queries" +msgstr "Kueri" + +msgid "Responses" +msgstr "Respons" + +msgid "Average Response Time" +msgstr "Waktu Respons Rata-rata" diff --git a/luci-app-bandix/po/ja/bandix.po b/luci-app-bandix/po/ja/bandix.po index 7d827fe..1745dce 100644 --- a/luci-app-bandix/po/ja/bandix.po +++ b/luci-app-bandix/po/ja/bandix.po @@ -733,3 +733,15 @@ msgstr "履歴データを永続化" msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled" msgstr "データ永続化機能を有効にする。このオプションが有効な場合のみデータがディスクに永続化されます" + +msgid "Query & Response" +msgstr "クエリとレスポンス" + +msgid "Queries" +msgstr "クエリ" + +msgid "Responses" +msgstr "レスポンス" + +msgid "Average Response Time" +msgstr "平均応答時間" diff --git a/luci-app-bandix/po/pl/bandix.po b/luci-app-bandix/po/pl/bandix.po new file mode 100644 index 0000000..b281511 --- /dev/null +++ b/luci-app-bandix/po/pl/bandix.po @@ -0,0 +1,748 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" + +msgid "Bandix Traffic Monitor" +msgstr "Monitor Ruchu Bandix" + +msgid "Loading data..." +msgstr "Ładowanie danych..." + +msgid "Unable to fetch data" +msgstr "Nie można pobrać danych" + +msgid "Unable to fetch history data" +msgstr "Nie można pobrać danych historycznych" + +msgid "Hostname" +msgstr "Nazwa hosta" + +msgid "IP Address" +msgstr "Adres IP" + +msgid "MAC Address" +msgstr "Adres MAC" + +msgid "Download Speed" +msgstr "Prędkość pobierania" + +msgid "Upload Speed" +msgstr "Prędkość wysyłania" + +msgid "Total Download" +msgstr "Całkowite pobranie" + +msgid "Total Upload" +msgstr "Całkowite wysłanie" + +msgid "Download Limit" +msgstr "Limit pobierania" + +msgid "Upload Limit" +msgstr "Limit wysyłania" + +msgid "Interface Language" +msgstr "Język interfejsu" + +msgid "Select the display language for Bandix Traffic Monitor" +msgstr "Wybierz język wyświetlania dla Monitora Ruchu Bandix" + +msgid "Device Info" +msgstr "Informacje o urządzeniu" + +msgid "Device List" +msgstr "Lista urządzeń" + +msgid "LAN Traffic" +msgstr "Ruch LAN" + +msgid "WAN Traffic" +msgstr "Ruch WAN" + +msgid "Rate Limit" +msgstr "Limit prędkości" + +msgid "Actions" +msgstr "Akcje" + +msgid "Online Devices" +msgstr "Urządzenia online" + +msgid "WAN Only" +msgstr "Tylko WAN" + +msgid "Settings" +msgstr "Ustawienia" + +msgid "Device Settings" +msgstr "Ustawienia urządzenia" + +msgid "Rate Limits" +msgstr "Limity prędkości" + +msgid "Remove Rate Limit" +msgstr "Usuń limit prędkości" + +msgid "Save" +msgstr "Zapisz" + +msgid "Cancel" +msgstr "Anuluj" + +msgid "Set Rate Limit" +msgstr "Ustaw limit prędkości" + +msgid "Device" +msgstr "Urządzenie" + +msgid "Set Hostname" +msgstr "Ustaw nazwę hosta" + +msgid "Please enter hostname" +msgstr "Proszę wprowadzić nazwę hosta" + +msgid "Hostname set successfully" +msgstr "Nazwa hosta została ustawiona pomyślnie" + +msgid "Failed to set hostname" +msgstr "Nie udało się ustawić nazwy hosta" + +msgid "Unlimited" +msgstr "Bez limitu" + +msgid "Settings saved successfully" +msgstr "Ustawienia zapisane pomyślnie" + +msgid "Failed to save settings" +msgstr "Nie udało się zapisać ustawień" + +msgid "Please enter a valid speed value" +msgstr "Proszę wprowadzić prawidłową wartość prędkości" + +msgid "Speed value must be greater than 0" +msgstr "Wartość prędkości musi być większa niż 0" + +msgid "Saving..." +msgstr "Zapisywanie..." + +msgid "Rate limiting only applies to WAN traffic." +msgstr "Ograniczenie prędkości dotyczy tylko ruchu WAN." + +msgid "Tip: Enter 0 for unlimited" +msgstr "Wskazówka: Wprowadź 0 dla bez limitu" + +msgid "Traffic History" +msgstr "Historia ruchu" + +msgid "Select Device" +msgstr "Wybierz urządzenie" + +msgid "All Devices" +msgstr "Wszystkie urządzenia" + +msgid "Time Range" +msgstr "Zakres czasu" + +msgid "Last 5 minutes" +msgstr "Ostatnie 5 minut" + +msgid "Last 30 minutes" +msgstr "Ostatnie 30 minut" + +msgid "Last 2 hours" +msgstr "Ostatnie 2 godziny" + +msgid "Type" +msgstr "Typ" + +msgid "Total" +msgstr "Całkowity" + +msgid "LAN" +msgstr "Ruch LAN" + +msgid "WAN" +msgstr "Ruch WAN" + +msgid "Refresh" +msgstr "Odśwież" + +msgid "Upload Rate" +msgstr "Prędkość wysyłania" + +msgid "Download Rate" +msgstr "Prędkość pobierania" + +msgid "Last" +msgstr "Ostatni" + +msgid "second" +msgstr "sekunda" + +msgid "minute" +msgstr "minuta" + +msgid "hour" +msgstr "godzina" + +msgid "day" +msgstr "dzień" + +msgid "week" +msgstr "tydzień" + +msgid "Other Rates" +msgstr "Inne prędkości" + +msgid "Cumulative" +msgstr "Skumulowany" + +msgid "Total Uploaded" +msgstr "Całkowite wysłane" + +msgid "Total Downloaded" +msgstr "Całkowite pobrane" + +msgid "LAN Uploaded" +msgstr "LAN wysłane" + +msgid "LAN Downloaded" +msgstr "LAN pobrane" + +msgid "WAN Uploaded" +msgstr "WAN wysłane" + +msgid "WAN Downloaded" +msgstr "WAN pobrane" + +msgid "Total Upload" +msgstr "Całkowite wysyłanie" + +msgid "Total Download" +msgstr "Całkowite pobieranie" + +msgid "LAN Upload" +msgstr "Wysyłanie LAN" + +msgid "LAN Download" +msgstr "Pobieranie LAN" + +msgid "WAN Upload" +msgstr "Wysyłanie WAN" + +msgid "WAN Download" +msgstr "Pobieranie WAN" + +msgid "Never Online" +msgstr "Nigdy online" + +msgid "Just Now" +msgstr "Właśnie teraz" + +msgid "min ago" +msgstr "min temu" + +msgid "h ago" +msgstr "godz. temu" + +msgid "days ago" +msgstr "dni temu" + +msgid "months ago" +msgstr "miesięcy temu" + +msgid "years ago" +msgstr "lat temu" + +msgid "Last Online" +msgstr "Ostatnio online" + +msgid "Zoom" +msgstr "Powiększ" + +msgid "Sort By" +msgstr "Sortuj według" + +msgid "Online Status" +msgstr "Status online" + +msgid "Total Traffic" +msgstr "Całkowity ruch" + +msgid "Ascending" +msgstr "Rosnąco" + +msgid "Descending" +msgstr "Malejąco" + +msgid "Sort by Speed" +msgstr "Sortuj według prędkości" + +msgid "Sort by Traffic" +msgstr "Sortuj według ruchu" + +msgid "Simple Mode" +msgstr "Tryb prosty" + +msgid "Detailed Mode" +msgstr "Tryb szczegółowy" + +msgid "Bandix DNS Monitor" +msgstr "Monitor DNS Bandix" + +msgid "DNS Monitor" +msgstr "Monitor DNS" + +msgid "DNS Query Records" +msgstr "Rekordy zapytań DNS" + +msgid "DNS Statistics" +msgstr "Statystyki DNS" + +msgid "DNS Monitoring Disabled" +msgstr "Monitorowanie DNS wyłączone" + +msgid "Please enable DNS monitoring in settings" +msgstr "Proszę włączyć monitorowanie DNS w ustawieniach" + +msgid "Go to Settings" +msgstr "Przejdź do ustawień" + +msgid "No Data" +msgstr "Brak danych" + +msgid "Time" +msgstr "Czas" + +msgid "Domain" +msgstr "Domena" + +msgid "Query Type" +msgstr "Typ zapytania" + +msgid "Response Code" +msgstr "Kod odpowiedzi" + +msgid "Response Time" +msgstr "Czas odpowiedzi" + +msgid "Source IP" +msgstr "IP źródłowe" + +msgid "Destination IP" +msgstr "IP docelowe" + +msgid "Response IPs" +msgstr "IP odpowiedzi" + +msgid "Response Result" +msgstr "Wynik odpowiedzi" + +msgid "DNS Server" +msgstr "Serwer DNS" + +msgid "Query" +msgstr "Zapytanie" + +msgid "Response" +msgstr "Odpowiedź" + +msgid "Filter" +msgstr "Filtr" + +msgid "Domain Filter" +msgstr "Filtr domeny" + +msgid "Device Filter" +msgstr "Filtr urządzenia" + +msgid "DNS Server Filter" +msgstr "Filtr serwera DNS" + +msgid "Type Filter" +msgstr "Filtr typu" + +msgid "All" +msgstr "Wszystkie" + +msgid "Queries Only" +msgstr "Tylko zapytania" + +msgid "Responses Only" +msgstr "Tylko odpowiedzi" + +msgid "Search" +msgstr "Szukaj" + +msgid "Search Domain" +msgstr "Szukaj domeny" + +msgid "Search Device" +msgstr "Szukaj urządzenia" + +msgid "Search DNS Server" +msgstr "Szukaj serwera DNS" + +msgid "Clear" +msgstr "Wyczyść" + +msgid "Previous" +msgstr "Poprzednia" + +msgid "Next" +msgstr "Następna" + +msgid "Page" +msgstr "Strona" + +msgid "of" +msgstr "z" + +msgid "Total" +msgstr "Całkowity" + +msgid "records" +msgstr "rekordów" + +msgid "Per Page" +msgstr "Na stronę" + +msgid "" +msgstr "" + +msgid "Total Queries" +msgstr "Całkowite zapytania" + +msgid "Total Responses" +msgstr "Całkowite odpowiedzi" + +msgid "Queries with Response" +msgstr "Zapytania z odpowiedzią" + +msgid "Queries without Response" +msgstr "Zapytania bez odpowiedzi" + +msgid "Avg Response Time" +msgstr "Średni czas odpowiedzi" + +msgid "Min Response Time" +msgstr "Minimalny czas odpowiedzi" + +msgid "Max Response Time" +msgstr "Maksymalny czas odpowiedzi" + +msgid "Success Rate" +msgstr "Wskaźnik sukcesu" + +msgid "Success" +msgstr "Sukces" + +msgid "Failure" +msgstr "Niepowodzenie" + +msgid "Top Domains" +msgstr "Najpopularniejsze domeny" + +msgid "Top Query Types" +msgstr "Najpopularniejsze typy zapytań" + +msgid "Top Devices" +msgstr "Najpopularniejsze urządzenia" + +msgid "Top DNS Servers" +msgstr "Najpopularniejsze serwery DNS" + +msgid "Unique Devices" +msgstr "Unikalne urządzenia" + +msgid "ms" +msgstr "ms" + +msgid "minutes" +msgstr "minut" + +msgid "Unknown Device" +msgstr "Nieznane urządzenie" + +msgid "Domain not found" +msgstr "Domena nie znaleziona" + +msgid "Server error" +msgstr "Błąd serwera" + +msgid "Format error" +msgstr "Błąd formatu" + +msgid "Refused" +msgstr "Odrzucone" + +msgid "Other" +msgstr "Inne" + +msgid "Does not include DoH and DoT" +msgstr "Nie obejmuje DoH i DoT" + +msgid "Latest Response Time" +msgstr "Najnowszy czas odpowiedzi" + +msgid "Response Code Distribution" +msgstr "Rozkład kodów odpowiedzi" + +msgid "Response Time Percentiles" +msgstr "Percentyle czasu odpowiedzi" + +msgid "P50" +msgstr "P50" + +msgid "P90" +msgstr "P90" + +msgid "P95" +msgstr "P95" + +msgid "P99" +msgstr "P99" + +msgid "Bandix Connection Monitor" +msgstr "Monitor Połączeń Bandix" + +msgid "Connection Monitor" +msgstr "Monitor połączeń" + +msgid "Device Connection Statistics" +msgstr "Statystyki połączeń urządzeń" + +msgid "Global Connection Statistics" +msgstr "Globalne statystyki połączeń" + +msgid "Active TCP" +msgstr "Aktywne TCP" + +msgid "Active UDP" +msgstr "Aktywne UDP" + +msgid "Closed TCP" +msgstr "Zamknięte TCP" + +msgid "Total Connections" +msgstr "Całkowite połączenia" + +msgid "Last Updated" +msgstr "Ostatnia aktualizacja" + +msgid "TCP Connections" +msgstr "Połączenia TCP" + +msgid "UDP Connections" +msgstr "Połączenia UDP" + +msgid "Established TCP" +msgstr "Ustanowione TCP" + +msgid "TIME_WAIT TCP" +msgstr "TIME_WAIT TCP" + +msgid "CLOSE_WAIT TCP" +msgstr "CLOSE_WAIT TCP" + +msgid "Total Devices" +msgstr "Całkowite urządzenia" + +msgid "Connection Monitor Disabled" +msgstr "Monitor połączeń wyłączony" + +msgid "Please enable connection monitoring in settings" +msgstr "Proszę włączyć monitorowanie połączeń w ustawieniach" + +msgid "List only shows LAN device connections, data may differ from total connections." +msgstr "Lista pokazuje tylko połączenia urządzeń LAN, dane mogą różnić się od całkowitych połączeń." + +msgid "TCP Status Details" +msgstr "Szczegóły statusu TCP" + +msgid "Basic Settings" +msgstr "Ustawienia podstawowe" + +msgid "Traffic Monitor Settings" +msgstr "Ustawienia monitora ruchu" + +msgid "Connection Monitor Settings" +msgstr "Ustawienia monitora połączeń" + +msgid "DNS Monitor Settings" +msgstr "Ustawienia monitora DNS" + +msgid "Bandix Basic Configuration" +msgstr "Podstawowa konfiguracja Bandix" + +msgid "Configure basic parameters for Bandix service" +msgstr "Skonfiguruj podstawowe parametry dla usługi Bandix" + +msgid "Bandix Traffic Monitor Configuration" +msgstr "Konfiguracja Monitora Ruchu Bandix" + +msgid "Configure traffic monitoring related parameters" +msgstr "Skonfiguruj parametry związane z monitorowaniem ruchu" + +msgid "Bandix Connection Monitor Configuration" +msgstr "Konfiguracja Monitora Połączeń Bandix" + +msgid "Configure connection monitoring related parameters" +msgstr "Skonfiguruj parametry związane z monitorowaniem połączeń" + +msgid "Bandix DNS Monitor Configuration" +msgstr "Konfiguracja Monitora DNS Bandix" + +msgid "Configure DNS monitoring related parameters" +msgstr "Skonfiguruj parametry związane z monitorowaniem DNS" + +msgid "Enable" +msgstr "Włącz" + +msgid "Enable Bandix Traffic Monitor Service" +msgstr "Włącz usługę Monitora Ruchu Bandix" + +msgid "Enable Traffic Monitoring" +msgstr "Włącz monitorowanie ruchu" + +msgid "Enable Connection Monitoring" +msgstr "Włącz monitorowanie połączeń" + +msgid "Enable DNS Monitoring" +msgstr "Włącz monitorowanie DNS" + +msgid "Simplified Chinese" +msgstr "Chiński uproszczony" + +msgid "Traditional Chinese" +msgstr "Chiński tradycyjny" + +msgid "Port" +msgstr "Port" + +msgid "Port for Bandix service to listen on" +msgstr "Port, na którym usługa Bandix nasłuchuje" + +msgid "Monitor Interface" +msgstr "Interfejs monitora" + +msgid "Select the LAN network interface to monitor" +msgstr "Wybierz interfejs sieci LAN do monitorowania" + +msgid "Speed Units" +msgstr "Jednostki prędkości" + +msgid "Select the speed display unit format" +msgstr "Wybierz format jednostki wyświetlania prędkości" + +msgid "Bytes Units (B/s, KB/s, MB/s)" +msgstr "Jednostki bajtów (B/s, KB/s, MB/s)" + +msgid "Bits Units (bps, Kbps, Mbps)" +msgstr "Jednostki bitów (bps, Kbps, Mbps)" + +msgid "Interface Theme" +msgstr "Motyw interfejsu" + +msgid "Select the display theme for Bandix Traffic Monitor" +msgstr "Wybierz motyw wyświetlania dla Monitora Ruchu Bandix" + +msgid "Follow System" +msgstr "Zgodnie z systemem" + +msgid "Light Mode" +msgstr "Tryb jasny" + +msgid "Dark Mode" +msgstr "Tryb ciemny" + +msgid "Feedback" +msgstr "Opinie" + +msgid "Log Level" +msgstr "Poziom logowania" + +msgid "Set the log level for Bandix service" +msgstr "Ustaw poziom logowania dla usługi Bandix" + +msgid "Offline Timeout" +msgstr "Limit czasu offline" + +msgid "Set the timeout for device offline detection (seconds). Devices inactive for longer than this time will be marked as offline" +msgstr "Ustaw limit czasu wykrywania urządzeń offline (sekundy). Urządzenia nieaktywne dłużej niż ten czas zostaną oznaczone jako offline" + +msgid "Traffic History Period" +msgstr "Okres historii ruchu" + +msgid "10 minutes interval uses about 60 KB per device" +msgstr "Interwał 10 minut używa około 60 KB na urządzenie" + +msgid "Data Flush Interval" +msgstr "Interwał zapisu danych" + +msgid "Set the interval for flushing data to disk" +msgstr "Ustaw interwał zapisu danych na dysk" + +msgid "1 minute" +msgstr "1 minuta" + +msgid "5 minutes" +msgstr "5 minut" + +msgid "10 minutes" +msgstr "10 minut" + +msgid "15 minutes" +msgstr "15 minut" + +msgid "20 minutes" +msgstr "20 minut" + +msgid "25 minutes" +msgstr "25 minut" + +msgid "30 minutes" +msgstr "30 minut" + +msgid "1 hour" +msgstr "1 godzina" + +msgid "2 hours" +msgstr "2 godziny" + +msgid "Data Directory" +msgstr "Katalog danych" + +msgid "Bandix data storage directory" +msgstr "Katalog przechowywania danych Bandix" + +msgid "Enable Bandix connection monitoring" +msgstr "Włącz monitorowanie połączeń Bandix" + +msgid "Enable Bandix DNS monitoring" +msgstr "Włącz monitorowanie DNS Bandix" + +msgid "DNS Max Records" +msgstr "Maksymalna liczba rekordów DNS" + +msgid "Set the maximum number of DNS query records to keep. Older records will be deleted when this limit is exceeded" +msgstr "Ustaw maksymalną liczbę rekordów zapytań DNS do przechowania. Starsze rekordy zostaną usunięte po przekroczeniu tego limitu" + +msgid "Persist History Data" +msgstr "Zachowaj dane historyczne" + +msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled" +msgstr "Włącz funkcję trwałości danych, dane będą zapisywane na dysk tylko gdy ta opcja jest włączona" + +msgid "Query & Response" +msgstr "Zapytanie i Odpowiedź" + +msgid "Queries" +msgstr "Zapytania" + +msgid "Responses" +msgstr "Odpowiedzi" + +msgid "Average Response Time" +msgstr "Średni Czas Odpowiedzi" + diff --git a/luci-app-bandix/po/ru/bandix.po b/luci-app-bandix/po/ru/bandix.po index ed3c83c..ab2fa08 100644 --- a/luci-app-bandix/po/ru/bandix.po +++ b/luci-app-bandix/po/ru/bandix.po @@ -732,4 +732,16 @@ msgid "Persist History Data" msgstr "Сохранять историю данных" msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled" -msgstr "启用数据持久化功能,只有启用此选项后才会持久化到磁盘" \ No newline at end of file +msgstr "Включить функцию постоянного хранения данных, данные будут сохраняться на диск только при включении этой опции" + +msgid "Query & Response" +msgstr "Запрос и Ответ" + +msgid "Queries" +msgstr "Запросы" + +msgid "Responses" +msgstr "Ответы" + +msgid "Average Response Time" +msgstr "Среднее Время Ответа" \ No newline at end of file diff --git a/luci-app-bandix/po/th/bandix.po b/luci-app-bandix/po/th/bandix.po index 501dc3d..28360a2 100644 --- a/luci-app-bandix/po/th/bandix.po +++ b/luci-app-bandix/po/th/bandix.po @@ -733,3 +733,15 @@ msgstr "เก็บข้อมูลประวัติ" msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled" msgstr "เปิดใช้งานฟังก์ชันการเก็บข้อมูล ข้อมูลจะถูกเก็บไว้ในดิสก์เมื่อเปิดใช้งานตัวเลือกนี้เท่านั้น" + +msgid "Query & Response" +msgstr "คำขอและคำตอบ" + +msgid "Queries" +msgstr "คำขอ" + +msgid "Responses" +msgstr "คำตอบ" + +msgid "Average Response Time" +msgstr "เวลาเฉลี่ยในการตอบสนอง" diff --git a/luci-app-bandix/po/zh_Hans/bandix.po b/luci-app-bandix/po/zh_Hans/bandix.po index fab0de5..71e6853 100644 --- a/luci-app-bandix/po/zh_Hans/bandix.po +++ b/luci-app-bandix/po/zh_Hans/bandix.po @@ -732,4 +732,16 @@ msgid "Persist History Data" msgstr "持久化历史数据" msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled" -msgstr "启用数据持久化功能,只有启用此选项后才会持久化到磁盘" \ No newline at end of file +msgstr "启用数据持久化功能,只有启用此选项后才会持久化到磁盘" + +msgid "Query & Response" +msgstr "查询与响应" + +msgid "Queries" +msgstr "查询" + +msgid "Responses" +msgstr "响应" + +msgid "Average Response Time" +msgstr "平均响应时间" \ No newline at end of file diff --git a/luci-app-bandix/po/zh_Hant/bandix.po b/luci-app-bandix/po/zh_Hant/bandix.po index 327fd9a..54486a6 100644 --- a/luci-app-bandix/po/zh_Hant/bandix.po +++ b/luci-app-bandix/po/zh_Hant/bandix.po @@ -732,4 +732,16 @@ msgid "Persist History Data" msgstr "持久化歷史數据" msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled" -msgstr "啟用數据持久化功能,只有啟用此选项后才會持久化到磁碟" \ No newline at end of file +msgstr "啟用數据持久化功能,只有啟用此选项后才會持久化到磁碟" + +msgid "Query & Response" +msgstr "查詢與響應" + +msgid "Queries" +msgstr "查詢" + +msgid "Responses" +msgstr "響應" + +msgid "Average Response Time" +msgstr "平均響應時間" \ No newline at end of file diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua index 7b0231a..5de50fc 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua @@ -386,6 +386,9 @@ o = s:option(Flag, _n("tls_allowInsecure"), translate("allowInsecure"), translat o.default = "0" o:depends({ [_n("tls")] = true, [_n("reality")] = false }) +o = s:option(Value, _n("tls_chain_fingerprint"), translate("TLS Chain Fingerprint (SHA256)"), translate("Once set, connects only when the server’s chain fingerprint matches.")) +o:depends({ [_n("tls")] = true, [_n("reality")] = false }) + o = s:option(Flag, _n("ech"), translate("ECH")) o.default = "0" o:depends({ [_n("tls")] = true, [_n("flow")] = "", [_n("reality")] = false }) diff --git a/luci-app-passwall/luasrc/passwall/util_xray.lua b/luci-app-passwall/luasrc/passwall/util_xray.lua index 253784b..61f2df6 100644 --- a/luci-app-passwall/luasrc/passwall/util_xray.lua +++ b/luci-app-passwall/luasrc/passwall/util_xray.lua @@ -155,6 +155,7 @@ function gen_outbound(flag, node, tag, proxy_table) serverName = node.tls_serverName, allowInsecure = (node.tls_allowInsecure == "1") and true or false, fingerprint = (node.type == "Xray" and node.utls == "1" and node.fingerprint and node.fingerprint ~= "") and node.fingerprint or nil, + pinnedPeerCertificateChainSha256 = node.tls_chain_fingerprint and { node.tls_chain_fingerprint } or nil, echConfigList = (node.ech == "1") and node.ech_config or nil, echForceQuery = (node.ech == "1") and (node.ech_ForceQuery or "none") or nil } or nil, diff --git a/luci-app-passwall/po/zh-cn/passwall.po b/luci-app-passwall/po/zh-cn/passwall.po index 6bb3658..5469b5a 100644 --- a/luci-app-passwall/po/zh-cn/passwall.po +++ b/luci-app-passwall/po/zh-cn/passwall.po @@ -1723,6 +1723,12 @@ msgstr "协议参数。如果启用会随机浪费流量。" msgid "Protocol parameter. Enable length block encryption." msgstr "协议参数。启用长度块加密。" +msgid "TLS Chain Fingerprint (SHA256)" +msgstr "TLS 证书链指纹(SHA256)" + +msgid "Once set, connects only when the server’s chain fingerprint matches." +msgstr "设置后,仅在服务器证书链指纹匹配时连接。" + msgid "ECH Config" msgstr "ECH 配置" diff --git a/lucky/Makefile b/lucky/Makefile index 74b6938..4b93929 100644 --- a/lucky/Makefile +++ b/lucky/Makefile @@ -4,7 +4,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=lucky -PKG_VERSION:=2.19.5 +PKG_VERSION:=2.20.2 PKG_RELEASE:=1 PKGARCH:=all LUCKY_CONF_DIR := /etc/config/lucky.daji diff --git a/qbittorrent/Makefile b/qbittorrent/Makefile index d82ab18..013ba3a 100644 --- a/qbittorrent/Makefile +++ b/qbittorrent/Makefile @@ -7,12 +7,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=qbittorrent -PKG_VERSION:=5.1.3 +PKG_VERSION:=5.1.4 PKG_RELEASE=1 PKG_SOURCE:=qBittorrent-release-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/qbittorrent/qBittorrent/tar.gz/release-$(PKG_VERSION)? -PKG_HASH:=9c6c6018239a461ef02b67534db30232027cb8a431827c1f393f59cb8adc01e9 +PKG_HASH:=ab37deeb364049a308127c572f139bd5eb0535fa355db8821e5aa31990b5625e PKG_BUILD_DIR:=$(BUILD_DIR)/qBittorrent-release-$(PKG_VERSION) diff --git a/qt6base/Makefile b/qt6base/Makefile index af23d5d..fcbb3bd 100644 --- a/qt6base/Makefile +++ b/qt6base/Makefile @@ -7,12 +7,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=qt6base -PKG_VERSION:=6.10.0 +PKG_VERSION:=6.10.1 PKG_RELEASE:=1 PKG_SOURCE:=qtbase-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/qt/qtbase/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=6bc0cab63e70ef9634825de47790409079e00da77bad18d036b7ab83c5618346 +PKG_HASH:=088c248d7dfbcba1e60fc4fa7a46406c6c638687cd3dbd412cdd13fc21198df9 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/qtbase-$(PKG_VERSION) PKG_BUILD_DIR:=$(BUILD_DIR)/qtbase-$(PKG_VERSION) diff --git a/qt6tools/Makefile b/qt6tools/Makefile index 1157169..0da9696 100644 --- a/qt6tools/Makefile +++ b/qt6tools/Makefile @@ -7,12 +7,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=qt6tools -PKG_VERSION:=6.10.0 +PKG_VERSION:=6.10.1 PKG_RELEASE:=1 PKG_SOURCE:=qttools-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/qt/qttools/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=b9ac411c5c34f0cefbb348d8bf9b2a4934292411af20e710a335c5c432e3e851 +PKG_HASH:=328c949c8b9faf393cd43eca7cf96c4bb182599e93817ce3a8e093b33b80e16e HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/qttools-$(PKG_VERSION)