🐶 Sync 2025-11-21 00:13:07

This commit is contained in:
actions-user
2025-11-21 00:13:07 +08:00
parent 9f875d34af
commit 560276e7e4
18 changed files with 940 additions and 34 deletions

View File

@@ -807,22 +807,22 @@ return view.extend({
return (value * 100).toFixed(2) + '%'; 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' }, [ var totalQueriesCard = E('div', { 'class': 'cbi-section' }, [
E('div', { 'class': 'stats-card-title' }, _('Total Queries')), E('div', { 'class': 'stats-card-title' }, _('Query & Response')),
E('div', { 'class': 'stats-card-main-value' }, (stats.total_queries || 0).toLocaleString()), E('div', { 'class': 'stats-card-main-value' }, (queryCount + responseCount || 0).toLocaleString()),
E('div', { 'class': 'stats-card-details' }, [ E('div', { 'class': 'stats-card-details' }, [
E('div', { 'class': 'stats-detail-row' }, [ E('div', { 'class': 'stats-detail-row' }, [
E('span', { 'class': 'stats-detail-label' }, _('Success Rate') + ':'), E('span', { 'class': 'stats-detail-label' }, _('Queries') + ':'),
E('span', { 'class': 'stats-detail-value' }, formatPercent(stats.success_rate || 0)) E('span', { 'class': 'stats-detail-value' }, queryCount.toLocaleString())
]), ]),
E('div', { 'class': 'stats-detail-row' }, [ E('div', { 'class': 'stats-detail-row' }, [
E('span', { 'class': 'stats-detail-label' }, _('Success') + ':'), E('span', { 'class': 'stats-detail-label' }, _('Responses') + ':'),
E('span', { 'class': 'stats-detail-value' }, (stats.success_count || 0).toLocaleString()) E('span', { 'class': 'stats-detail-value' }, responseCount.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())
]) ])
]) ])
]); ]);
@@ -832,8 +832,12 @@ return view.extend({
// 响应时间卡片 // 响应时间卡片
statsGrid.appendChild(E('div', { 'class': 'cbi-section' }, [ statsGrid.appendChild(E('div', { 'class': 'cbi-section' }, [
E('div', { 'class': 'stats-card-title' }, _('Response Time')), 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-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('div', { 'class': 'stats-detail-row' }, [
E('span', { 'class': 'stats-detail-label' }, _('Min Response Time') + ':'), E('span', { 'class': 'stats-detail-label' }, _('Min Response Time') + ':'),
E('span', { 'class': 'stats-detail-value' }, (stats.min_response_time_ms || 0) + ' ' + _('ms')) 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('div', { 'class': 'stats-detail-row' }, [
E('span', { 'class': 'stats-detail-label' }, _('Max Response Time') + ':'), E('span', { 'class': 'stats-detail-label' }, _('Max Response Time') + ':'),
E('span', { 'class': 'stats-detail-value' }, (stats.max_response_time_ms || 0) + ' ' + _('ms')) 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'))
]) ])
]) ])
])); ]));

View File

@@ -226,6 +226,10 @@ return view.extend({
font-size: 0.875rem; font-size: 0.875rem;
} }
#history-retention {
border: 1px solid rgba(107, 114, 128, 0.4);
}
.bandix-alert { .bandix-alert {
border-radius: 4px; border-radius: 4px;
padding: 10px 12px; padding: 10px 12px;
@@ -414,6 +418,28 @@ return view.extend({
font-size: 0.75rem; 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 { .traffic-info {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@@ -1930,6 +1956,31 @@ function formatLastOnlineTime(lastOnlineTs) {
return yearsDiff + _('years ago'); 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) { function formatRetentionSeconds(seconds) {
if (!seconds || seconds <= 0) return ''; if (!seconds || seconds <= 0) return '';
var value; var value;
@@ -2565,13 +2616,14 @@ function formatRetentionSeconds(seconds) {
} }
// 添加 MAC 和最后上线信息 // 添加 MAC 和最后上线信息
deviceInfoElements.push( deviceInfoElements.push(
E('div', { 'class': 'device-mac' }, device.mac), E('div', { 'class': 'device-mac' }, device.mac),
E('div', { 'class': 'device-last-online' }, [ E('div', { 'class': 'device-last-online' }, [
E('span', { 'style': 'color: #6b7280; font-size: 0.75rem;' }, _('Last Online') + ': '), E('span', {}, _('Last Online') + ': '),
E('span', { 'style': 'color: #9ca3af; font-size: 0.75rem;' }, formatLastOnlineTime(device.last_online_ts)) 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', {}, [ var row = E('tr', {}, [

View File

@@ -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" 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" 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"

View File

@@ -732,4 +732,16 @@ msgid "Persist History Data"
msgstr "Persister les données d'historique" msgstr "Persister les données d'historique"
msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled" msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled"
msgstr "启用数据持久化功能,只有启用此选项后才会持久化到磁盘" 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"

View File

@@ -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" 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" 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"

View File

@@ -733,3 +733,15 @@ msgstr "履歴データを永続化"
msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled" msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled"
msgstr "データ永続化機能を有効にする。このオプションが有効な場合のみデータがディスクに永続化されます" msgstr "データ永続化機能を有効にする。このオプションが有効な場合のみデータがディスクに永続化されます"
msgid "Query & Response"
msgstr "クエリとレスポンス"
msgid "Queries"
msgstr "クエリ"
msgid "Responses"
msgstr "レスポンス"
msgid "Average Response Time"
msgstr "平均応答時間"

View File

@@ -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"

View File

@@ -732,4 +732,16 @@ msgid "Persist History Data"
msgstr "Сохранять историю данных" msgstr "Сохранять историю данных"
msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled" msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled"
msgstr "启用数据持久化功能,只有启用此选项后才会持久化到磁盘" msgstr "Включить функцию постоянного хранения данных, данные будут сохраняться на диск только при включении этой опции"
msgid "Query & Response"
msgstr "Запрос и Ответ"
msgid "Queries"
msgstr "Запросы"
msgid "Responses"
msgstr "Ответы"
msgid "Average Response Time"
msgstr "Среднее Время Ответа"

View File

@@ -733,3 +733,15 @@ msgstr "เก็บข้อมูลประวัติ"
msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled" msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled"
msgstr "เปิดใช้งานฟังก์ชันการเก็บข้อมูล ข้อมูลจะถูกเก็บไว้ในดิสก์เมื่อเปิดใช้งานตัวเลือกนี้เท่านั้น" msgstr "เปิดใช้งานฟังก์ชันการเก็บข้อมูล ข้อมูลจะถูกเก็บไว้ในดิสก์เมื่อเปิดใช้งานตัวเลือกนี้เท่านั้น"
msgid "Query & Response"
msgstr "คำขอและคำตอบ"
msgid "Queries"
msgstr "คำขอ"
msgid "Responses"
msgstr "คำตอบ"
msgid "Average Response Time"
msgstr "เวลาเฉลี่ยในการตอบสนอง"

View File

@@ -733,3 +733,15 @@ msgstr "持久化历史数据"
msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled" msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled"
msgstr "启用数据持久化功能,只有启用此选项后才会持久化到磁盘" msgstr "启用数据持久化功能,只有启用此选项后才会持久化到磁盘"
msgid "Query & Response"
msgstr "查询与响应"
msgid "Queries"
msgstr "查询"
msgid "Responses"
msgstr "响应"
msgid "Average Response Time"
msgstr "平均响应时间"

View File

@@ -733,3 +733,15 @@ msgstr "持久化歷史數据"
msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled" msgid "Enable data persistence functionality, data will only be persisted to disk when this option is enabled"
msgstr "啟用數据持久化功能,只有啟用此选项后才會持久化到磁碟" msgstr "啟用數据持久化功能,只有啟用此选项后才會持久化到磁碟"
msgid "Query & Response"
msgstr "查詢與響應"
msgid "Queries"
msgstr "查詢"
msgid "Responses"
msgstr "響應"
msgid "Average Response Time"
msgstr "平均響應時間"

View File

@@ -386,6 +386,9 @@ o = s:option(Flag, _n("tls_allowInsecure"), translate("allowInsecure"), translat
o.default = "0" o.default = "0"
o:depends({ [_n("tls")] = true, [_n("reality")] = false }) 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 servers chain fingerprint matches."))
o:depends({ [_n("tls")] = true, [_n("reality")] = false })
o = s:option(Flag, _n("ech"), translate("ECH")) o = s:option(Flag, _n("ech"), translate("ECH"))
o.default = "0" o.default = "0"
o:depends({ [_n("tls")] = true, [_n("flow")] = "", [_n("reality")] = false }) o:depends({ [_n("tls")] = true, [_n("flow")] = "", [_n("reality")] = false })

View File

@@ -155,6 +155,7 @@ function gen_outbound(flag, node, tag, proxy_table)
serverName = node.tls_serverName, serverName = node.tls_serverName,
allowInsecure = (node.tls_allowInsecure == "1") and true or false, 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, 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, echConfigList = (node.ech == "1") and node.ech_config or nil,
echForceQuery = (node.ech == "1") and (node.ech_ForceQuery or "none") or nil echForceQuery = (node.ech == "1") and (node.ech_ForceQuery or "none") or nil
} or nil, } or nil,

View File

@@ -1723,6 +1723,12 @@ msgstr "协议参数。如果启用会随机浪费流量。"
msgid "Protocol parameter. Enable length block encryption." msgid "Protocol parameter. Enable length block encryption."
msgstr "协议参数。启用长度块加密。" msgstr "协议参数。启用长度块加密。"
msgid "TLS Chain Fingerprint (SHA256)"
msgstr "TLS 证书链指纹SHA256"
msgid "Once set, connects only when the servers chain fingerprint matches."
msgstr "设置后,仅在服务器证书链指纹匹配时连接。"
msgid "ECH Config" msgid "ECH Config"
msgstr "ECH 配置" msgstr "ECH 配置"

View File

@@ -4,7 +4,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=lucky PKG_NAME:=lucky
PKG_VERSION:=2.19.5 PKG_VERSION:=2.20.2
PKG_RELEASE:=1 PKG_RELEASE:=1
PKGARCH:=all PKGARCH:=all
LUCKY_CONF_DIR := /etc/config/lucky.daji LUCKY_CONF_DIR := /etc/config/lucky.daji

View File

@@ -7,12 +7,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=qbittorrent PKG_NAME:=qbittorrent
PKG_VERSION:=5.1.3 PKG_VERSION:=5.1.4
PKG_RELEASE=1 PKG_RELEASE=1
PKG_SOURCE:=qBittorrent-release-$(PKG_VERSION).tar.gz PKG_SOURCE:=qBittorrent-release-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/qbittorrent/qBittorrent/tar.gz/release-$(PKG_VERSION)? 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) PKG_BUILD_DIR:=$(BUILD_DIR)/qBittorrent-release-$(PKG_VERSION)

View File

@@ -7,12 +7,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=qt6base PKG_NAME:=qt6base
PKG_VERSION:=6.10.0 PKG_VERSION:=6.10.1
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE:=qtbase-$(PKG_VERSION).tar.gz PKG_SOURCE:=qtbase-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/qt/qtbase/tar.gz/v$(PKG_VERSION)? 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) HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/qtbase-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/qtbase-$(PKG_VERSION) PKG_BUILD_DIR:=$(BUILD_DIR)/qtbase-$(PKG_VERSION)

View File

@@ -7,12 +7,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=qt6tools PKG_NAME:=qt6tools
PKG_VERSION:=6.10.0 PKG_VERSION:=6.10.1
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE:=qttools-$(PKG_VERSION).tar.gz PKG_SOURCE:=qttools-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/qt/qttools/tar.gz/v$(PKG_VERSION)? 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) HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/qttools-$(PKG_VERSION)