diff --git a/front/php/templates/language/cs_cz.json b/front/php/templates/language/cs_cz.json index f512d208..97afb880 100644 --- a/front/php/templates/language/cs_cz.json +++ b/front/php/templates/language/cs_cz.json @@ -1,7 +1,7 @@ { - "API_CUSTOM_SQL_description": "", - "API_CUSTOM_SQL_name": "", - "API_TOKEN_description": "", + "API_CUSTOM_SQL_description": "Můžete specifikovat vlastní SQL dotaz, který vygeneruje JSON soubor a následně ho vystaví přes table_custom_endpoint.json souborový endpoint.", + "API_CUSTOM_SQL_name": "Vlastní endpoint", + "API_TOKEN_description": "API token pro zabezpečenou komunikaci. Vygenerujte ho, nebo zadejte jakoukoliv hodnotu. Je odesílán v hlavičce requestu a použit v SYNC pluginu, GraphQL serveru a dalších API endpointech. Můžete použít API endpointy pro vytvoření vlastních integrací, jak je popsáno v API dokumentaci.", "API_TOKEN_name": "API token", "API_display_name": "API", "API_icon": "", @@ -9,9 +9,9 @@ "About_Exit": "Odhlásit", "About_Title": "Scanner síťové bezpečnosti a framework pro upozornění", "AppEvents_AppEventProcessed": "Zpracováno", - "AppEvents_DateTimeCreated": "Zaznamenáno", + "AppEvents_DateTimeCreated": "Zalogováno", "AppEvents_Extra": "Extra", - "AppEvents_GUID": "", + "AppEvents_GUID": "GUID aplikační události", "AppEvents_Helper1": "Pomocník 1", "AppEvents_Helper2": "Pomocník 2", "AppEvents_Helper3": "Pomocník 3", @@ -24,190 +24,190 @@ "AppEvents_ObjectSecondaryID": "Sekundární ID", "AppEvents_ObjectStatus": "Logovaný stav", "AppEvents_ObjectStatusColumn": "Stavový sloupec", - "AppEvents_ObjectType": "Typ objektu", + "AppEvents_ObjectType": "Typ Objektu", "AppEvents_Plugin": "Plugin", "AppEvents_Type": "Typ", - "BACKEND_API_URL_description": "", - "BACKEND_API_URL_name": "AP URL backendu", + "BACKEND_API_URL_description": "Použito pro umožnění komunikace frontendu s backendem. Výchozí hodnota je /server , která by neměla být měněna.", + "BACKEND_API_URL_name": "URL API backendu", "BackDevDetail_Actions_Ask_Run": "Chcete akci spustit?", - "BackDevDetail_Actions_Not_Registered": "Akce není zaregistrována. ", + "BackDevDetail_Actions_Not_Registered": "Akce není zaregistrována: ", "BackDevDetail_Actions_Title_Run": "Spustit akci", - "BackDevDetail_Copy_Ask": "", - "BackDevDetail_Copy_Title": "", - "BackDevDetail_Tools_WOL_error": "", - "BackDevDetail_Tools_WOL_okay": "", - "BackDevices_Arpscan_disabled": "", - "BackDevices_Arpscan_enabled": "", - "BackDevices_Backup_CopError": "", - "BackDevices_Backup_Failed": "", - "BackDevices_Backup_okay": "", - "BackDevices_DBTools_DelDevError_a": "", - "BackDevices_DBTools_DelDevError_b": "", - "BackDevices_DBTools_DelDev_a": "", - "BackDevices_DBTools_DelDev_b": "", - "BackDevices_DBTools_DelEvents": "", - "BackDevices_DBTools_DelEventsError": "", - "BackDevices_DBTools_ImportCSV": "", - "BackDevices_DBTools_ImportCSVError": "", - "BackDevices_DBTools_ImportCSVMissing": "", - "BackDevices_DBTools_Purge": "", - "BackDevices_DBTools_UpdDev": "", - "BackDevices_DBTools_UpdDevError": "", - "BackDevices_DBTools_Upgrade": "", - "BackDevices_DBTools_UpgradeError": "", - "BackDevices_Device_UpdDevError": "", - "BackDevices_Restore_CopError": "", - "BackDevices_Restore_Failed": "", - "BackDevices_Restore_okay": "", - "BackDevices_darkmode_disabled": "", - "BackDevices_darkmode_enabled": "", - "CLEAR_NEW_FLAG_description": "", - "CLEAR_NEW_FLAG_name": "", - "CustProps_cant_remove": "", - "DAYS_TO_KEEP_EVENTS_description": "", - "DAYS_TO_KEEP_EVENTS_name": "", + "BackDevDetail_Copy_Ask": "Zkopírovat detaily zařízení z výběru (vše na této stránce bude přepsáno)?", + "BackDevDetail_Copy_Title": "Zkopírovat detaily", + "BackDevDetail_Tools_WOL_error": "Příkaz NEBYL proveden.", + "BackDevDetail_Tools_WOL_okay": "Příkaz byl proveden.", + "BackDevices_Arpscan_disabled": "ARP-Scan zakázán", + "BackDevices_Arpscan_enabled": "ARP-Scan povolen", + "BackDevices_Backup_CopError": "Původní databázi se nepodařilo uložit.", + "BackDevices_Backup_Failed": "Záloha byla privedena částečně úspěšně. Archiv nemohl být vytvořen nebo je prázdný.", + "BackDevices_Backup_okay": "Záloha byla provedena úspěšně s novým archivem", + "BackDevices_DBTools_DelDevError_a": "Chyba při odstranění zařízení", + "BackDevices_DBTools_DelDevError_b": "Chyba při odstranění zařízení", + "BackDevices_DBTools_DelDev_a": "Zařízení odstraněno", + "BackDevices_DBTools_DelDev_b": "Zařízení odstraněna", + "BackDevices_DBTools_DelEvents": "Události odstraněny", + "BackDevices_DBTools_DelEventsError": "Chyba při odstraňování událostí", + "BackDevices_DBTools_ImportCSV": "Zařízení z CSV souboru byla úspěšně importována.", + "BackDevices_DBTools_ImportCSVError": "CSV soubor nemohl být importován. Ujistěte se, že je formát správný.", + "BackDevices_DBTools_ImportCSVMissing": "CSV soubor /config/devices.csv nebyl nalezen.", + "BackDevices_DBTools_Purge": "Nejstarší zálohy byly odstraněny", + "BackDevices_DBTools_UpdDev": "Zařízení úspěšně aktualizováno. Hlavní seznam zařízení vyžaduje nějaký čas k obnovení, pokud probíhá scan.", + "BackDevices_DBTools_UpdDevError": "Chyba aktualizace zařízení", + "BackDevices_DBTools_Upgrade": "Databáze byla úspěšně upgradována", + "BackDevices_DBTools_UpgradeError": "Chyba při upgradu databáze", + "BackDevices_Device_UpdDevError": "Chyba při aktualizaci zařízení, zkuste to později. Databáze je pravděpodobně uzamčena z důvodu jiné probíhající úlohy.", + "BackDevices_Restore_CopError": "Původní databázi se nepodařilo uložit.", + "BackDevices_Restore_Failed": "Obnova selhala. Prosím, obnovte zálohu ručně.", + "BackDevices_Restore_okay": "Obnova úspěšně provedena.", + "BackDevices_darkmode_disabled": "Tmavý režim zakázán", + "BackDevices_darkmode_enabled": "Tmavý režim povolen", + "CLEAR_NEW_FLAG_description": "Pokud je povoleno (0 je zakázáno), zařízením označeným jako Nové Zařízení bude tento příznak odebrán, pokud časový limit (udaný v hodinách) překročí jejich čas První Session.", + "CLEAR_NEW_FLAG_name": "Odebrat příznak nového", + "CustProps_cant_remove": "Nelze odebrat, je vyžadována alespoň jedna položka.", + "DAYS_TO_KEEP_EVENTS_description": "Toto je nastavení údržby. Určuje počet dní, po které budou záznamy události uchovávány. Všechny starší události budou periodicky odstraněny. Platí také pro Historii Událostí Pluginů.", + "DAYS_TO_KEEP_EVENTS_name": "Odstranit události starší než", "DEEP_SLEEP_description": "", "DEEP_SLEEP_name": "", - "DISCOVER_PLUGINS_description": "", - "DISCOVER_PLUGINS_name": "", - "DevDetail_Children_Title": "", - "DevDetail_Copy_Device_Title": "", - "DevDetail_Copy_Device_Tooltip": "", - "DevDetail_CustomProperties_Title": "", - "DevDetail_CustomProps_reset_info": "", - "DevDetail_DisplayFields_Title": "", - "DevDetail_EveandAl_AlertAllEvents": "", - "DevDetail_EveandAl_AlertDown": "", + "DISCOVER_PLUGINS_description": "Zakažte tuto volbu pro urychlení inicializace a ukládání nastavení. Když je volba zakázána, pluginy nejsou vyhledávány a nemůžete tak přidávat nové pluginy do nastavení LOADED_PLUGINS.", + "DISCOVER_PLUGINS_name": "Vyhledat pluginy", + "DevDetail_Children_Title": "Podřízené vazby", + "DevDetail_Copy_Device_Title": "Zkopírovat detaily ze zařízení", + "DevDetail_Copy_Device_Tooltip": "Zkopírovat detaily z vybraného zařízení. Všechno na této stránce bude přepsáno", + "DevDetail_CustomProperties_Title": "Vlastní položky", + "DevDetail_CustomProps_reset_info": "Tímto budou odebrány vlastní položky na tomto zařízení a dojde k resetu na výchozí hodnotu.", + "DevDetail_DisplayFields_Title": "Zobrazit", + "DevDetail_EveandAl_AlertAllEvents": "Hlásit události", + "DevDetail_EveandAl_AlertDown": "Hlásit down", "DevDetail_EveandAl_Archived": "Archivováno", - "DevDetail_EveandAl_NewDevice": "", - "DevDetail_EveandAl_NewDevice_Tooltip": "", - "DevDetail_EveandAl_RandomMAC": "", - "DevDetail_EveandAl_ScanCycle": "", - "DevDetail_EveandAl_ScanCycle_a": "", - "DevDetail_EveandAl_ScanCycle_z": "", - "DevDetail_EveandAl_Skip": "", - "DevDetail_EveandAl_Title": "", - "DevDetail_Events_CheckBox": "", - "DevDetail_GoToNetworkNode": "", + "DevDetail_EveandAl_NewDevice": "Nové zařízení", + "DevDetail_EveandAl_NewDevice_Tooltip": "Zobrazí status Nový pro nové zařízení a zahrne je do seznamu s filtrem Nová zařízení. Nemá vliv na notifikace.", + "DevDetail_EveandAl_RandomMAC": "Náhodná MAC", + "DevDetail_EveandAl_ScanCycle": "Skenovat zařízení", + "DevDetail_EveandAl_ScanCycle_a": "Skenovat zařízení", + "DevDetail_EveandAl_ScanCycle_z": "Neskenovat zařízení", + "DevDetail_EveandAl_Skip": "Vynechat opakování notifikací během", + "DevDetail_EveandAl_Title": "Konfigurace notifikací", + "DevDetail_Events_CheckBox": "Skrýt události připojení", + "DevDetail_GoToNetworkNode": "Navigovat na Síťovou stránku uvedeného node.", "DevDetail_Icon": "Ikona", - "DevDetail_Icon_Descr": "", + "DevDetail_Icon_Descr": "Zadejte název ikony z Font Awesome bez prefixu \"fa-\", nebo s celou class, např. \"fa-brands\", \"fa-apple\", ...", "DevDetail_Loading": "Načítání…", "DevDetail_MainInfo_Comments": "Komentáře", - "DevDetail_MainInfo_Favorite": "", - "DevDetail_MainInfo_Group": "", - "DevDetail_MainInfo_Location": "", - "DevDetail_MainInfo_Name": "", - "DevDetail_MainInfo_Network": "", - "DevDetail_MainInfo_Network_Port": "", - "DevDetail_MainInfo_Network_Site": "", - "DevDetail_MainInfo_Network_Title": "", - "DevDetail_MainInfo_Owner": "", - "DevDetail_MainInfo_SSID": "", - "DevDetail_MainInfo_Title": "", - "DevDetail_MainInfo_Type": "", - "DevDetail_MainInfo_Vendor": "", - "DevDetail_MainInfo_mac": "", - "DevDetail_NavToChildNode": "", - "DevDetail_Network_Node_hover": "", - "DevDetail_Network_Port_hover": "", - "DevDetail_Nmap_Scans": "", - "DevDetail_Nmap_Scans_desc": "", - "DevDetail_Nmap_buttonDefault": "", - "DevDetail_Nmap_buttonDefault_text": "", - "DevDetail_Nmap_buttonDetail": "", - "DevDetail_Nmap_buttonDetail_text": "", - "DevDetail_Nmap_buttonFast": "", - "DevDetail_Nmap_buttonFast_text": "", - "DevDetail_Nmap_buttonSkipDiscovery": "", - "DevDetail_Nmap_buttonSkipDiscovery_text": "", - "DevDetail_Nmap_resultsLink": "", - "DevDetail_Owner_hover": "", - "DevDetail_Periodselect_All": "", - "DevDetail_Periodselect_LastMonth": "", - "DevDetail_Periodselect_LastWeek": "", - "DevDetail_Periodselect_LastYear": "", - "DevDetail_Periodselect_today": "", - "DevDetail_Run_Actions_Title": "", - "DevDetail_Run_Actions_Tooltip": "", - "DevDetail_SessionInfo_FirstSession": "", - "DevDetail_SessionInfo_LastIP": "", - "DevDetail_SessionInfo_LastSession": "", - "DevDetail_SessionInfo_StaticIP": "", - "DevDetail_SessionInfo_Status": "", - "DevDetail_SessionInfo_Title": "", - "DevDetail_SessionTable_Additionalinfo": "", - "DevDetail_SessionTable_Connection": "", - "DevDetail_SessionTable_Disconnection": "", - "DevDetail_SessionTable_Duration": "", - "DevDetail_SessionTable_IP": "", - "DevDetail_SessionTable_Order": "", - "DevDetail_Shortcut_CurrentStatus": "", - "DevDetail_Shortcut_DownAlerts": "", - "DevDetail_Shortcut_Presence": "", - "DevDetail_Shortcut_Sessions": "", - "DevDetail_Tab_Details": "", - "DevDetail_Tab_Events": "", - "DevDetail_Tab_EventsTableDate": "", - "DevDetail_Tab_EventsTableEvent": "", - "DevDetail_Tab_EventsTableIP": "", - "DevDetail_Tab_EventsTableInfo": "", - "DevDetail_Tab_Nmap": "", - "DevDetail_Tab_NmapEmpty": "", - "DevDetail_Tab_NmapTableExtra": "", - "DevDetail_Tab_NmapTableHeader": "", - "DevDetail_Tab_NmapTableIndex": "", - "DevDetail_Tab_NmapTablePort": "", - "DevDetail_Tab_NmapTableService": "", - "DevDetail_Tab_NmapTableState": "", - "DevDetail_Tab_NmapTableText": "", - "DevDetail_Tab_NmapTableTime": "", - "DevDetail_Tab_Plugins": "", - "DevDetail_Tab_Presence": "", - "DevDetail_Tab_Sessions": "", - "DevDetail_Tab_Tools": "", - "DevDetail_Tab_Tools_Internet_Info_Description": "", - "DevDetail_Tab_Tools_Internet_Info_Error": "", - "DevDetail_Tab_Tools_Internet_Info_Start": "", - "DevDetail_Tab_Tools_Internet_Info_Title": "", - "DevDetail_Tab_Tools_Nslookup_Description": "", - "DevDetail_Tab_Tools_Nslookup_Error": "", - "DevDetail_Tab_Tools_Nslookup_Start": "", - "DevDetail_Tab_Tools_Nslookup_Title": "", - "DevDetail_Tab_Tools_Speedtest_Description": "", - "DevDetail_Tab_Tools_Speedtest_Start": "", - "DevDetail_Tab_Tools_Speedtest_Title": "", - "DevDetail_Tab_Tools_Traceroute_Description": "", - "DevDetail_Tab_Tools_Traceroute_Error": "", - "DevDetail_Tab_Tools_Traceroute_Start": "", - "DevDetail_Tab_Tools_Traceroute_Title": "", - "DevDetail_Tools_WOL": "", - "DevDetail_Tools_WOL_noti": "", - "DevDetail_Tools_WOL_noti_text": "", - "DevDetail_Type_hover": "", - "DevDetail_Vendor_hover": "", - "DevDetail_WOL_Title": "", - "DevDetail_button_AddIcon": "", - "DevDetail_button_AddIcon_Help": "", - "DevDetail_button_AddIcon_Tooltip": "", - "DevDetail_button_Delete": "", - "DevDetail_button_DeleteEvents": "", - "DevDetail_button_DeleteEvents_Warning": "", - "DevDetail_button_Delete_ask": "", - "DevDetail_button_OverwriteIcons": "", - "DevDetail_button_OverwriteIcons_Tooltip": "", - "DevDetail_button_OverwriteIcons_Warning": "", - "DevDetail_button_Reset": "", - "DevDetail_button_Save": "", - "DeviceEdit_ValidMacIp": "", - "Device_MultiEdit": "", - "Device_MultiEdit_Backup": "", - "Device_MultiEdit_Fields": "", - "Device_MultiEdit_MassActions": "", - "Device_MultiEdit_No_Devices": "", - "Device_MultiEdit_Tooltip": "", - "Device_NextScan_Imminent": "", - "Device_NextScan_In": "", - "Device_NoData_Help": "", + "DevDetail_MainInfo_Favorite": "Oblíbené", + "DevDetail_MainInfo_Group": "Skupina", + "DevDetail_MainInfo_Location": "Umístění", + "DevDetail_MainInfo_Name": "Název", + "DevDetail_MainInfo_Network": " Node (MAC)", + "DevDetail_MainInfo_Network_Port": " Port", + "DevDetail_MainInfo_Network_Site": "Site", + "DevDetail_MainInfo_Network_Title": "Síťové detaily", + "DevDetail_MainInfo_Owner": "Vlastník", + "DevDetail_MainInfo_SSID": "SSID", + "DevDetail_MainInfo_Title": "Informace o zařízení", + "DevDetail_MainInfo_Type": "Typ", + "DevDetail_MainInfo_Vendor": "Výrobce", + "DevDetail_MainInfo_mac": "MAC", + "DevDetail_NavToChildNode": "Otevřít podřízený node", + "DevDetail_Network_Node_hover": "Vyberte nadřazené síťové zařízení, ke kterému je toto zařízení připojeno, pro sestavení Síťového stromu.", + "DevDetail_Network_Port_hover": "Port nadřazeného síťového zařízení, ke kterému je toto zařízení připojeno. Pokud je ponechán prázdný, zobrazí se u zařízení WiFi ikona v Síťovém stromu.", + "DevDetail_Nmap_Scans": "Manuální NMAP scany", + "DevDetail_Nmap_Scans_desc": "Tady můžete spustit manuální NMAP scany. Můžete také naplánovat pravidelné automatické NMAP scany přes plugin Služby & Porty (NMAP). Podívejte se do Dokumentace pro více informací", + "DevDetail_Nmap_buttonDefault": "Výchozí scan", + "DevDetail_Nmap_buttonDefault_text": "Výchozí scan: NAMP scanuje prvních 1000 portů pro každý požadovaný protokol. Toto zahrnuje 93 % TCP portů a 49 % UDP portů. (přibližně 5 sekund)", + "DevDetail_Nmap_buttonDetail": "Podrobný scan", + "DevDetail_Nmap_buttonDetail_text": "Podrobný scan: Výchozí scan s povolenou detekcí OS, detekcí verze, scanování skriptů a traceroute (až 30 sekund nebo déle)", + "DevDetail_Nmap_buttonFast": "Rychlý scan", + "DevDetail_Nmap_buttonFast_text": "Rychlý scan: Scanovat pár portů (100) oproti výchozímu scanu (pár sekund)", + "DevDetail_Nmap_buttonSkipDiscovery": "Přeskočit prohledání hostitele", + "DevDetail_Nmap_buttonSkipDiscovery_text": "Přeskočit vyhledávání hostitelů (parametr \"-Pn\"): Výchozí scan bez prohledání hostitele", + "DevDetail_Nmap_resultsLink": "Tuto stránku můžete opustit po spuštění scanu. Výsledky budou k dispozici také v souboru app_front.log .", + "DevDetail_Owner_hover": "Kdo vlastní toto zařízení. Nepovinná textová položka.", + "DevDetail_Periodselect_All": "Všechny informace", + "DevDetail_Periodselect_LastMonth": "Minulý měsíc", + "DevDetail_Periodselect_LastWeek": "Minulý týden", + "DevDetail_Periodselect_LastYear": "Minulý rok", + "DevDetail_Periodselect_today": "Dnes", + "DevDetail_Run_Actions_Title": " Spustit akci na zařízení", + "DevDetail_Run_Actions_Tooltip": "Spustit akci na vybraném zařízení.", + "DevDetail_SessionInfo_FirstSession": "Prví sezení", + "DevDetail_SessionInfo_LastIP": "Poslední IP", + "DevDetail_SessionInfo_LastSession": "Naposledy offline", + "DevDetail_SessionInfo_StaticIP": "Statická IP", + "DevDetail_SessionInfo_Status": "Stav", + "DevDetail_SessionInfo_Title": "Informace o sezení", + "DevDetail_SessionTable_Additionalinfo": "Další informace", + "DevDetail_SessionTable_Connection": "Připojení", + "DevDetail_SessionTable_Disconnection": "Odpojení", + "DevDetail_SessionTable_Duration": "Trvání", + "DevDetail_SessionTable_IP": "IP", + "DevDetail_SessionTable_Order": "Pořadí", + "DevDetail_Shortcut_CurrentStatus": "Stav", + "DevDetail_Shortcut_DownAlerts": "Down alerty", + "DevDetail_Shortcut_Presence": "Výskyt", + "DevDetail_Shortcut_Sessions": "Sezení", + "DevDetail_Tab_Details": "Detaily", + "DevDetail_Tab_Events": "Události", + "DevDetail_Tab_EventsTableDate": "Datum", + "DevDetail_Tab_EventsTableEvent": "Druh události", + "DevDetail_Tab_EventsTableIP": "IP", + "DevDetail_Tab_EventsTableInfo": "Další informace", + "DevDetail_Tab_Nmap": " NMAP", + "DevDetail_Tab_NmapEmpty": "Pomocí NMAP nebyly na tomto zařízení nalezeny žádné porty.", + "DevDetail_Tab_NmapTableExtra": "Extra", + "DevDetail_Tab_NmapTableHeader": "Výsledky naplánovaných scanů", + "DevDetail_Tab_NmapTableIndex": "Index", + "DevDetail_Tab_NmapTablePort": "Port", + "DevDetail_Tab_NmapTableService": "Služba", + "DevDetail_Tab_NmapTableState": "Stav", + "DevDetail_Tab_NmapTableText": "Nastavte plán v Nastavení", + "DevDetail_Tab_NmapTableTime": "Čas", + "DevDetail_Tab_Plugins": "Pluginy", + "DevDetail_Tab_Presence": "Výskyt", + "DevDetail_Tab_Sessions": "Sezení", + "DevDetail_Tab_Tools": "Nástroje", + "DevDetail_Tab_Tools_Internet_Info_Description": "Nástroj Internetové informace zobrazuje informace o internetovém připojení jako je IP adresa, město, stát, kód oblasti a časovou zónu.", + "DevDetail_Tab_Tools_Internet_Info_Error": "Vyskytla se chyba", + "DevDetail_Tab_Tools_Internet_Info_Start": "Spustit Internetové informace", + "DevDetail_Tab_Tools_Internet_Info_Title": "Internetové informace", + "DevDetail_Tab_Tools_Nslookup_Description": "Nslookup je nástroj příkazové řádky používaný pro dotazování doménového jmenného systému (DNS). DNS je systém, který překládá doménové názvy, třeba www.google.com, na IP adresy, třeba na 172.217.0.142.", + "DevDetail_Tab_Tools_Nslookup_Error": "Chyba: IP adresa není platná", + "DevDetail_Tab_Tools_Nslookup_Start": "Spustit Nslookup", + "DevDetail_Tab_Tools_Nslookup_Title": "Nslookup", + "DevDetail_Tab_Tools_Speedtest_Description": "Nástroj Sppedtest měří rychlost stahování, rychlost nahrávání a latenci internetového připojení.", + "DevDetail_Tab_Tools_Speedtest_Start": "Spustit Speedtest", + "DevDetail_Tab_Tools_Speedtest_Title": "Online Speedtest", + "DevDetail_Tab_Tools_Traceroute_Description": "Traceroute je sířový diagnostický příklad používaný pro trasování cesty, kterou datové packety putují od jednoho hostitele k druhému.

Příkaz používá Internet Control Message Protocol (ICMP) pro posílání packetů procházejícím nodů na cestě, kde každý takový node odpovídá pomocí ICMP time-out (TTL timed out) packetu.

Výstup traceroute příkazu může být použit pro diagnostiku síťových problémů, jako třeba prodlevy, packetové ztráty a blokované trasy.

Může být také použít k identifikaci umístění procházejícího node v síti.", + "DevDetail_Tab_Tools_Traceroute_Error": "Chyba: IP adresa není platná", + "DevDetail_Tab_Tools_Traceroute_Start": "Spustit Traceroute", + "DevDetail_Tab_Tools_Traceroute_Title": "Traceroute", + "DevDetail_Tools_WOL": "Odeslat WOL příkaz na ", + "DevDetail_Tools_WOL_noti": "Wake-On-LAN", + "DevDetail_Tools_WOL_noti_text": "Příkaz Wake-On-LAN je odelsán na broadcastovou adresu. Pokud není cíl ve stejném subnetu/VLAN jako NetAlertX, cílové zařízení neodpoví.", + "DevDetail_Type_hover": "Typ zařízení. Pokud vyberete jakýkoliv typ předdefinovaných zařízení (např. AP, Firewall, Router, Switch, ...), zobrazí se v Síťovém stromu jako nadřazený síťový nod.", + "DevDetail_Vendor_hover": "Výrobce by měl být auto-detekován. Můžete ho přepsat, nebo přidat vlastní hodnotu.", + "DevDetail_WOL_Title": " Wake-On-LAN", + "DevDetail_button_AddIcon": "Přidat novou ikonu", + "DevDetail_button_AddIcon_Help": "Vložte SVG HTML tag, nebo HTML tag ikony z Font Awesome. Přečtěte si Dokumentaci k ikonám pro více informací.", + "DevDetail_button_AddIcon_Tooltip": "Přidat novou ikonu k tomuto zařízení, která není mezi dostupnými ikonami ve výběru.", + "DevDetail_button_Delete": "Odstranit zařízení", + "DevDetail_button_DeleteEvents": "Odstranit události", + "DevDetail_button_DeleteEvents_Warning": "Opravdu chcete odstranit všechny události tohoto zařízení?

(toto odstraní všechno ze záložky Historie událostí a také ze záložky Sezení a může pomoci se stálými (trvalými) notifikacemi)", + "DevDetail_button_Delete_ask": "Opravdu chcete odstranit toto zařízení? Místo toho ho můžete archivovat.", + "DevDetail_button_OverwriteIcons": "Přepsat ikony", + "DevDetail_button_OverwriteIcons_Tooltip": "Přepsat ikony všech zařízení stejného typu zařízení", + "DevDetail_button_OverwriteIcons_Warning": "Opravdu chcete přepsat všechny ikony zařízení se stejným typem zařízení ikonou tohoto zařízení?", + "DevDetail_button_Reset": "Resetovat změny", + "DevDetail_button_Save": "Uložit", + "DeviceEdit_ValidMacIp": "Zadejte platnou MAC a IP adresu.", + "Device_MultiEdit": "Multi-editace", + "Device_MultiEdit_Backup": "Opatrně, zadání nesprávných hodnot níže poškodí vaše nastavení. Zálohujte si prosím nejdřív vaši databázi nebo Seznam zařízení (kliknutím stáhnout ). Přečtěte si, jak obnovit Zařízení z tohoto souboru v Dokumentaci zálohování. Pro pokračování uložení změn kliknéte na ikonu Uložit u každé položky, kterou chcete aktualizovat.", + "Device_MultiEdit_Fields": "Upravit položky:", + "Device_MultiEdit_MassActions": "Hromadné akce:", + "Device_MultiEdit_No_Devices": "Zařízení nevybráno.", + "Device_MultiEdit_Tooltip": "Opatrně. Kliknutím na toto se použije hodnota vlevo všem zařízení dole.", + "Device_NextScan_Imminent": "Bezprostřední...", + "Device_NextScan_In": "Další scan za ", + "Device_NoData_Help": "Pokud se zařízení po skenování nezobrazí, zkontrolujte nastavení SCAN_SUBNETS a dokumentaci.", "Device_NoData_Scanning": "", "Device_NoData_Title": "", "Device_NoMatch_Title": "", diff --git a/front/php/templates/language/fr_fr.json b/front/php/templates/language/fr_fr.json index 565679f5..2acd0e86 100644 --- a/front/php/templates/language/fr_fr.json +++ b/front/php/templates/language/fr_fr.json @@ -119,7 +119,7 @@ "DevDetail_Nmap_buttonFast": "Scan rapide", "DevDetail_Nmap_buttonFast_text": "Scan rapide : analyse moins de ports (100) que le scan par défaut (plusieurs secondes)", "DevDetail_Nmap_buttonSkipDiscovery": "Passer la découverte d'hôtes", - "DevDetail_Nmap_buttonSkipDiscovery_text": "Passer la découverte d'hôtes (option -PN) : scan par défaut sans découvert d'hôtes", + "DevDetail_Nmap_buttonSkipDiscovery_text": "Ignorer la découverte d'hôtes (option -PN) : scan par défaut sans découverte d'hôtes", "DevDetail_Nmap_resultsLink": "Vous pouvez quitter cette page après lancement du scan. Les resultats seront aussi disponibles dans le fichier app_front.log.", "DevDetail_Owner_hover": "Possesseur de l'appareil. Texte libre.", "DevDetail_Periodselect_All": "Toutes les infos", @@ -234,7 +234,7 @@ "Device_TableHead_FQDN": "Nom de domaine FQDN", "Device_TableHead_Favorite": "Favori", "Device_TableHead_FirstSession": "Première session", - "Device_TableHead_Flapping": "Flapping", + "Device_TableHead_Flapping": "Bagotage", "Device_TableHead_GUID": "GUID", "Device_TableHead_Group": "Groupe", "Device_TableHead_IPv4": "IPv4", @@ -249,8 +249,8 @@ "Device_TableHead_Name": "Nom", "Device_TableHead_NetworkSite": "Site Réseau", "Device_TableHead_Owner": "Propriétaire", - "Device_TableHead_ParentRelType": "Type de relation", - "Device_TableHead_Parent_MAC": "Nœud réseau principal", + "Device_TableHead_ParentRelType": "Relation", + "Device_TableHead_Parent_MAC": "Nœud principal", "Device_TableHead_Port": "Port", "Device_TableHead_PresentLastScan": "Présence", "Device_TableHead_ReqNicsOnline": "Nécessite que l'interface réseau (NIC) soit connectée", @@ -339,7 +339,7 @@ "Gen_Down": "En panne", "Gen_Error": "Erreur", "Gen_Filter": "Filtrer", - "Gen_Flapping": "Flapping", + "Gen_Flapping": "Bagotage", "Gen_Generate": "Générer", "Gen_InvalidMac": "Adresse MAC invalide.", "Gen_Invalid_Value": "Une valeur invalide a été renseignée", @@ -478,7 +478,7 @@ "Maintenance_Tool_del_unknowndev_noti_text": "Êtes-vous sûr de vouloir supprimer tous les appareils inconnus et sans nom trouvé ?", "Maintenance_Tool_del_unknowndev_text": "Avant d'utiliser cette fonction, veuillez effectuer une sauvegarde. La suppression ne peut pas être annulée. Tous les appareils nommés (inconnus) seront supprimés de la base de données.", "Maintenance_Tool_del_unlockFields_selecteddev_text": "Cela va déverrouiller les champs verrouillés par l'utilisateur (LOCKED/USER) des appareils sélectionnés. Cette action ne peut pas être annulée.", - "Maintenance_Tool_displayed_columns_text": "Changer la visibilité et l'ordre des colonnes dans la page appareils page.", + "Maintenance_Tool_displayed_columns_text": "Changer la visibilité et l'ordre des colonnes dans la page Appareils.", "Maintenance_Tool_drag_me": "Déplacez-moi pour réordonner les colonnes.", "Maintenance_Tool_order_columns_text": "Maintenance_Tool_order_columns_text", "Maintenance_Tool_purgebackup": "Supprimer les sauvegardes", @@ -571,7 +571,7 @@ "Network_ManageEdit_Type_text": "-- Sélectionner le type --", "Network_ManageLeaf": "Gérer l'assignation", "Network_ManageUnassign": "Désassigner", - "Network_NoAssignedDevices": "Ce nœud réseau ne contient pas d'appareils assignés. Vous pouvez en assigner un ci-dessous, ou en allant dans l'onglet Détails d'un appareil depuis le menu Appareils, et assigner cet équipement à un Nœud (MAC) réseau et à un Port.", + "Network_NoAssignedDevices": "Ce nœud réseau ne contient pas d'appareils assignés. Vous pouvez en assigner un ci-dessous, ou en allant dans l'onglet Détails d'un appareil depuis le menu Appareils, et assigner cet équipement à un Nœud (MAC) réseau et à un Port.", "Network_NoDevices": "Pas d'appareil à configurer", "Network_Node": "Nœud réseau", "Network_Node_Name": "Nom du nœud", diff --git a/front/plugins/omada_sdn_openapi/script.py b/front/plugins/omada_sdn_openapi/script.py index 11b17b60..9e8bb749 100755 --- a/front/plugins/omada_sdn_openapi/script.py +++ b/front/plugins/omada_sdn_openapi/script.py @@ -19,6 +19,7 @@ __author__ = "xfilo" __version__ = 0.1 # Initial version __version__ = 0.2 # Rephrased error messages, improved logging and code logic __version__ = 0.3 # Refactored data collection into a class, improved code clarity with comments +__version__ = 0.4 # Fix for https://github.com/netalertx/NetAlertX/issues/1595 - Omada Controller versions >= 6.2.0.0 removed the v1 clients endpoint import os import sys @@ -26,9 +27,11 @@ import urllib3 import requests import time import pytz +import operator from datetime import datetime from typing import Literal, Any, Dict +from packaging.version import Version, InvalidVersion # Define the installation path and extend the system path for plugin imports INSTALL_PATH = os.getenv('NETALERTX_APP', '/app') @@ -220,6 +223,40 @@ class OmadaHelper: msg = f"Failed normalizing {input_type}(s) from site '{site_name}' - error: {str(ex)}" OmadaHelper.verbose(msg) return OmadaHelper.response("error", msg) + + @staticmethod + def version_check(version, base: str, op: str = ">=") -> bool: + """ + Compare versions using PEP 440 semantics. + Supports int and str inputs. + """ + ops = { + "==": operator.eq, + "!=": operator.ne, + ">": operator.gt, + ">=": operator.ge, + "<": operator.lt, + "<=": operator.le, + } + + if op not in ops: + raise ValueError("Unsupported operator") + + def to_version(v): + if isinstance(v, int): + return Version(str(v)) + if isinstance(v, str): + try: + return Version(v) + except InvalidVersion: + # fallback: treat invalid versions as 0 + return Version("0") + raise TypeError("version/base must be int or str") + + v = to_version(version) + b = to_version(base) + + return ops[op](v, b) class OmadaAPI: @@ -259,6 +296,7 @@ class OmadaAPI: self.active_sites_dict = {} self.access_token = None self.refresh_token = None + self.controller_version = None OmadaHelper.verbose("OmadaAPI initialized") @@ -328,11 +366,57 @@ class OmadaAPI: OmadaHelper.debug(f"Authentication response: {response}") return OmadaHelper.response("error", f"Authentication failed - error: {response.get('response_message', 'Not provided')}") + def get_controller_status(self) -> Dict[str, Any]: + """Make an endpoint request to get controller status.""" + OmadaHelper.verbose(f"Retrieving controller status for CID: {getattr(self, 'omada_id')}") + endpoint = f"/openapi/v1/{getattr(self, 'omada_id')}/system/setting/controller-status" + response = self._make_request("GET", endpoint) + + if response.get("response_type") == "success": + response_result = response.get("response_result") or {} + result = response_result.get("result") or {} + self.controller_version = result.get("controllerVersion") + if not self.controller_version: + self.controller_version = None + OmadaHelper.debug(f"Controller status: {response}") + return OmadaHelper.response("error", "Controller status response did not include controllerVersion") + else: + return OmadaHelper.response("success", "Successfully retrieved controller status") + + OmadaHelper.debug(f"Controller status: {response}") + return OmadaHelper.response("error", "Failed to call controller status endpoint") + def get_clients(self, site_id: str) -> Dict[str, Any]: """Make an endpoint request to get all online clients on a site.""" OmadaHelper.verbose(f"Retrieving clients for site: {site_id}") - endpoint = f"/openapi/v1/{getattr(self, 'omada_id')}/sites/{site_id}/clients?page=1&pageSize={getattr(self, 'page_size')}" - return self._make_request("GET", endpoint) + + page_size = getattr(self, 'page_size') + omada_id = getattr(self, 'omada_id') + + def call_v2(): + endpoint = f"/openapi/v2/{omada_id}/sites/{site_id}/clients" + payload = { + "page": 1, + "pageSize": page_size, + "scope": 1 + } + return self._make_request("POST", endpoint, json=payload) + + def call_v1(): + endpoint = f"/openapi/v1/{omada_id}/sites/{site_id}/clients?page=1&pageSize={page_size}" + return self._make_request("GET", endpoint) + + if self.controller_version is None: + OmadaHelper.verbose("Controller version unknown, trying v2 then v1") + resp = call_v2() + if resp and resp.get("response_type") == "success": + return resp + return call_v1() + + if OmadaHelper.version_check(self.controller_version, "6.2.0.0", ">="): + return call_v2() + + return call_v1() def get_devices(self, site_id: str) -> Dict[str, Any]: """Make an endpoint request to get all online devices on a site.""" @@ -454,6 +538,13 @@ class OmadaData: OmadaHelper.minimal("Authentication failed, aborting data collection") OmadaHelper.debug(f"{auth_result['response_message']}") return plugin_objects + + # Controller status + status_result = omada_api.get_controller_status() + if status_result["response_type"] == "error": + OmadaHelper.verbose(f"Controller version lookup failed: {status_result['response_message']}") + else: + OmadaHelper.verbose(f"Controller version: {omada_api.controller_version}") # Populate sites sites_result = omada_api.populate_sites()