Merge pull request #350 from cvc90/Pi.Alert-Multiple-fixes-in-translations

Multiple fixes in translations
This commit is contained in:
jokob-sk
2023-08-13 06:11:20 +10:00
committed by GitHub
8 changed files with 283 additions and 47 deletions

View File

@@ -320,7 +320,20 @@
"HelpFAQ_Cat_Network_600_text" : "Diese Seite soll dir die Möglichkeit bieten, die Belegung deiner Netzwerkgeräte abzubilden. Dazu kannst du einen oder mehrere Switches, WLANs, Router, etc. erstellen, sie ggf. mit einer Portanzahl versehen und bereits erkannte Geräte diesen zuordnen. Diese Zuordnung erfolgt in der Detailansicht, des zuzuordnenden Gerätes. So ist es dir möglich, schnell festzustellen an welchem Port ein Host angeschlossen und ob er online ist.",
"REPORT_TITLE" : "Bericht",
"REPORT_ERROR" : "Die gesuchte Seite ist vorübergehend nicht verfügbar. Bitte versuchen Sie es nach ein paar Sekunden erneut",
"SYSTEM_TITLE" : "Systeminformationen"
"SYSTEM_TITLE" : "Systeminformationen",
"Plugins_Out_of" : "von",
"Systeminfo_General" : "Allgemein",
"Systeminfo_This_Client" : "Dieser Mandant",
"Systeminfo_System" : "System",
"Systeminfo_Motherboard" : "Hauptplatine",
"Systeminfo_CPU" : "CPU",
"Systeminfo_Memory" : "Speicher",
"Systeminfo_Storage" : "Lagerung",
"Systeminfo_Storage_usage" : "Speicherverwendung",
"Systeminfo_Network" : "Netzwerk",
"Systeminfo_Network_Hardware" : "Netzwerk Hardware",
"Systeminfo_Services" : "Dienste",
"Systeminfo_USB_Devices" : "USB-Geräte"
}
}

View File

@@ -417,6 +417,7 @@
"Plugins_DeleteAll" : "Delete all (filters are ignored)",
"Plugins_History" : "Events History",
"Plugins_Filters_Mac" : "Mac Filter",
"Plugins_Out_of" : "out of",
"Settings_Metadata_Toggle" : "Show/hide metadata for the given setting.",
"settings_missing" : "Not all settings loaded, refresh the page! This is probably caused by a high load on the database.",
"settings_missing_block" : "You can not save your settings without specifying all setting keys. Refresh the page. This is probably caused by a high load on the database.",
@@ -583,6 +584,18 @@
"API_display_name" : "API",
"API_icon" : "<i class=\"fa fa-arrow-down-up-across-line\"></i>",
"API_CUSTOM_SQL_name" : "Custom endpoint",
"API_CUSTOM_SQL_description" : "You can specify a custom SQL query which will generate a JSON file and then expose it via the <a href=\"/api/table_custom_endpoint.json\" target=\"_blank\"><code>table_custom_endpoint.json</code> file endpoint</a>."
"API_CUSTOM_SQL_description" : "You can specify a custom SQL query which will generate a JSON file and then expose it via the <a href=\"/api/table_custom_endpoint.json\" target=\"_blank\"><code>table_custom_endpoint.json</code> file endpoint</a>.",
"Systeminfo_General" : "General",
"Systeminfo_This_Client" : "This Client",
"Systeminfo_System" : "System",
"Systeminfo_Motherboard" : "Motherboard",
"Systeminfo_CPU" : "CPU",
"Systeminfo_Memory" : "Memory",
"Systeminfo_Storage" : "Storage",
"Systeminfo_Storage_usage" : "Storage usage",
"Systeminfo_Network" : "Network",
"Systeminfo_Network_Hardware" : "Network Hardware",
"Systeminfo_Services" : "Services",
"Systeminfo_USB_Devices" : "USB Devices"
}
}

View File

@@ -416,6 +416,7 @@
"Plugins_DeleteAll" : "Eliminar todo (se ignoran los filtros)",
"Plugins_History" : "Historial de eventos",
"Plugins_Filters_Mac" : "Filtro MAC",
"Plugins_Out_of" : "de",
"Settings_Title" : "<i class=\"fa fa-cog\"> Configuración</i>",
"settings_missing" : "Actualiza la página, no todos los ajustes se han cargado. Probablemente sea por una sobrecarga de la base de datos.",
"settings_missing_block" : "No puedes guardar los ajustes sin establecer todas las claves. Actualiza la página. Problabmente esté causado por una sobrecarga de la base de datos.",
@@ -582,6 +583,18 @@
"API_display_name" : "API",
"API_icon" : "<i class=\"fa fa-arrow-down-up-across-line\"></i>",
"API_CUSTOM_SQL_name" : "Endpoint personalizado",
"API_CUSTOM_SQL_description" : "Puede especificar una consulta SQL personalizada que generará un archivo JSON y luego lo expondrá a través del <a href=\"/api/table_custom_endpoint.json\" target=\"_blank\">archivo <code>table_custom_endpoint.json</code ></a>."
"API_CUSTOM_SQL_description" : "Puede especificar una consulta SQL personalizada que generará un archivo JSON y luego lo expondrá a través del <a href=\"/api/table_custom_endpoint.json\" target=\"_blank\">archivo <code>table_custom_endpoint.json</code ></a>.",
"Systeminfo_General" : "General",
"Systeminfo_This_Client": "Este cliente",
"Systeminfo_System": "Sistema",
"Systeminfo_Motherboard" : "Placa base",
"Systeminfo_CPU" : "CPU",
"Systeminfo_Memory": "Memoria",
"Systeminfo_Storage": "Almacenamiento",
"Systeminfo_Storage_usage": "Uso de almacenamiento",
"Systeminfo_Network": "Red",
"Systeminfo_Network_Hardware": "Hardware de red",
"Systeminfo_Services": "Servicios",
"Systeminfo_USB_Devices": "Dispositivos USB"
}
}

View File

@@ -20,19 +20,31 @@
{
"language_code": "en_us",
"string": "Network scan (Arp-Scan)"
}
},
{
"language_code": "es_es",
"string": "Escaneo de red (Arp-Scan)"
}
],
"icon": [
{
"language_code": "en_us",
"string": "<i class=\"fa-solid fa-search\"></i>"
}
},
{
"language_code": "es_es",
"string": "<i class=\"fa-solid fa-search\"></i>"
}
],
"description": [
{
"language_code": "en_us",
"string": "This plugin is to execute an arp-scan on the local network"
}
},
{
"language_code": "es_es",
"string": "Este plugin es para ejecutar un escaneo arp en la red local."
}
],
"params" : [
{
@@ -48,13 +60,22 @@
"default_value":"schedule",
"options": ["disabled", "once", "schedule", "always_after_scan", "on_new_device"],
"localized": ["name", "description"],
"name" :[{
"name" :[
{
"language_code":"en_us",
"string" : "When to run"
},
{
"language_code":"es_es",
"string" : "Cuando ejecutar"
}],
"description": [{
"language_code":"en_us",
"string" : "Specify when your Network-discovery scan will run. Typical setting would be <code>schedule</code> and then you specify a cron-like schedule in the <a href=\"#ARPSCAN_RUN_SCHD\"><code>ARPSCAN_RUN_SCHD</code>setting</a> "
},
{
"language_code":"es_es",
"string" : "Especifique cuándo se ejecutará su análisis de descubrimiento de red. La configuración típica sería <code>schedule</code> y luego se especifica una programación similar a cron en la configuración <a href=\"#ARPSCAN_RUN_SCHD\"><code>ARPSCAN_RUN_SCHD</code></a> "
}]
},
{
@@ -67,13 +88,21 @@
{
"language_code": "en_us",
"string": "Command"
}
},
{
"language_code": "es_es",
"string": "Comando"
}
],
"description": [
{
"language_code": "en_us",
"string": "Command to run. This should not be changed"
}
},
{
"language_code": "es_es",
"string": "Comando para ejecutar. Esto no debe ser cambiado"
}
]
},
@@ -87,13 +116,21 @@
{
"language_code": "en_us",
"string": "Run timeout"
}
},
{
"language_code": "es_es",
"string": "Tiempo límite de ejecución"
}
],
"description": [
{
"language_code": "en_us",
"string": "Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted."
}
},
{
"language_code": "es_es",
"string": "Tiempo máximo en segundos para esperar a que finalice el script. Si se supera este tiempo, se cancela el script."
}
]
},
{
@@ -105,10 +142,18 @@
"name" : [{
"language_code":"en_us",
"string" : "Schedule"
},
{
"language_code":"es_es",
"string" : "Schedule"
}],
"description": [{
"language_code":"en_us",
"string" : "Only enabled if you select <code>schedule</code> in the <a href=\"#ARPSCAN_RUN\"><code>ARPSCAN_RUN</code> setting</a>. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru</a>). For example entering <code>*/3 * * * *</code> will run the scan every 3 minutes. Will be run NEXT time the time passes. <br/> It's recommended to use the same schedule interval for all plugins scanning your network."
},
{
"language_code":"es_es",
"string" : "Solo está habilitado si selecciona <code>schedule</code> en la configuración <a href=\"#ARPSCAN_RUN\"><code>ARPSCAN_RUN</code></a>. Asegúrese de ingresar la programación en el formato similar a cron correcto (por ejemplo, valide en <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru</a>). Por ejemplo, ingresar <code>*/3 * * * *</code> ejecutará el escaneo cada 3 minutos. Se ejecutará la PRÓXIMA vez que pase el tiempo. <br/> Se recomienda utilizar el mismo intervalo de programación para todos los complementos que analizan su red."
}]
},
{
@@ -120,10 +165,18 @@
"name" :[{
"language_code":"en_us",
"string" : "Watched"
},
{
"language_code":"es_es",
"string" : "Watched"
}] ,
"description":[{
"language_code":"en_us",
"string" : "Send a notification if selected values change. Use <code>CTRL + Click</code> to select/deselect. <ul> <li><code>Watched_Value1</code> is IP</li><li><code>Watched_Value2</code> is Vendor</li><li><code>Watched_Value3</code> is Interface </li><li><code>Watched_Value4</code> is N/A </li></ul>"
},
{
"language_code":"es_es",
"string" : "Envía una notificación si los valores seleccionados cambian. Utilice <code>CTRL + clic</code> para seleccionar/deseleccionar. <ul> <li><code>Valor_observado1</code> es IP</li><li><code>Valor_observado2</code> es Proveedor</li><li><code>Valor_observado3</code> es Interfaz </li><li><code>Valor_observado4</code> es N/A </li></ul>"
}]
},
{
@@ -136,13 +189,21 @@
{
"language_code": "en_us",
"string": "Report on"
}
},
{
"language_code": "es_es",
"string": "Informar sobre"
}
],
"description": [
{
"language_code": "en_us",
"string": "When should notification be sent out."
}
},
{
"language_code": "es_es",
"string": "Cuándo debe enviarse una notificación."
}
]
}
],
@@ -161,6 +222,10 @@
"name":[{
"language_code":"en_us",
"string" : "MAC"
},
{
"language_code":"es_es",
"string" : "MAC"
}]
},
{
@@ -175,6 +240,10 @@
"name":[{
"language_code":"en_us",
"string" : "IP"
},
{
"language_code":"es_es",
"string" : "IP"
}]
},
{
@@ -189,6 +258,10 @@
"name":[{
"language_code":"en_us",
"string" : "Vendor"
},
{
"language_code":"es_es",
"string" : "Proveedor"
}]
} ,
{
@@ -203,6 +276,10 @@
"name":[{
"language_code":"en_us",
"string" : "Scan method"
},
{
"language_code":"es_es",
"string" : "Método de escaneado"
}]
} ,
{
@@ -216,6 +293,10 @@
"name":[{
"language_code":"en_us",
"string" : "Created"
},
{
"language_code":"es_es",
"string" : "Creado"
}]
},
{
@@ -229,7 +310,11 @@
"name":[{
"language_code":"en_us",
"string" : "Changed"
},
{
"language_code":"es_es",
"string" : "Cambiado"
}]
}
]
}
}

View File

@@ -9,16 +9,28 @@
"display_name": [{
"language_code": "en_us",
"string": "Set password"
},
{
"language_code": "es_es",
"string": "Establecer contraseña"
}],
"description": [{
"language_code": "en_us",
"string": "A simple plugin to set the web ui password on app start."
},
{
"language_code": "es_es",
"string": "Un complemento simple para configurar la contraseña de la interfaz de usuario web al iniciar la aplicación."
}],
"icon": [
{
"language_code": "en_us",
"string": "<i class=\"fa fa-lock\"></i>"
}
},
{
"language_code": "es_es",
"string": "<i class=\"fa fa-lock\"></i>"
}
],
"params" : [
{
@@ -37,10 +49,18 @@
"name" :[{
"language_code":"en_us",
"string" : "When to run"
},
{
"language_code":"es_es",
"string" : "Cuándo ejecuta"
}],
"description": [{
"language_code":"en_us",
"string" : "Set to <code>before_config_save</code> and specify password to reset your pasword in <code>SETPWD_password</code>. You can set to <code>disabled</code> once the password is changed."
},
{
"language_code":"es_es",
"string" : "Configure en <code>before_config_save</code> y especifique la contraseña para restablecer su contraseña en <code>SETPWD_password</code>. Puede establecer <code>deshabilitado</code> una vez que se cambia la contraseña."
}]
},
{
@@ -52,10 +72,18 @@
"name" : [{
"language_code":"en_us",
"string" : "Command"
},
{
"language_code":"es_es",
"string" : "Comando"
}],
"description": [{
"language_code":"en_us",
"string" : "Command to run"
},
{
"language_code":"es_es",
"string" : "Comando a ejecutar"
}]
},
{
@@ -69,13 +97,21 @@
{
"language_code": "en_us",
"string": "Password"
}
},
{
"language_code": "es_es",
"string": "Contraseña"
}
],
"description": [
{
"language_code": "en_us",
"string": "The default password is <code>123456</code>. To change the password run <code>/home/pi/pialert/back/pialert-cli set_password {password}</code> in the container"
}
},
{
"language_code": "es_es",
"string": "La contraseña predeterminada es <code>123456</code>. Para cambiar la contraseña, ejecute <code>/home/pi/pialert/back/pialert-cli set_password {password}</code> en el contenedor"
}
]
}
@@ -83,6 +119,3 @@
]
}

View File

@@ -11,19 +11,31 @@
{
"language_code": "en_us",
"string": "Un-Discoverable Devices"
}
},
{
"language_code": "es_es",
"string": "Dispositivos no detectables"
}
],
"icon": [
{
"language_code": "en_us",
"string": "<i class=\"fa-solid fa-binoculars\"></i>"
}
},
{
"language_code": "es_es",
"string": "<i class=\"fa-solid fa-binoculars\"></i>"
}
],
"description": [
{
"language_code": "en_us",
"string": "This plugin is to import undiscoverable devices from a file."
}
},
{
"language_code": "es_es",
"string": "Este complemento es para importar dispositivos no detectables desde un archivo."
}
],
"params" : [
{
@@ -42,10 +54,18 @@
"name" :[{
"language_code":"en_us",
"string" : "When to run"
},
{
"language_code":"es_es",
"string" : "Cuándo ejecuta"
}],
"description": [{
"language_code":"en_us",
"string" : "When enabled, ONCE is the preferred option. It runs at startup and after every save of the config here.<br> Changes will only show in the devices <b> after the next scan!</b>"
},
{
"language_code":"es_es",
"string" : "Cuando está habilitado, ONCE es la opción preferida. Se ejecuta al inicio y después de cada guardado de la configuración aquí.<br> ¡Los cambios solo se mostrarán en los dispositivos <b> después del próximo escaneo!</b>"
}]
},
{
@@ -58,13 +78,21 @@
{
"language_code": "en_us",
"string": "Command"
}
},
{
"language_code": "es_es",
"string": "Comando"
}
],
"description": [
{
"language_code": "en_us",
"string": "Command to run. This can not be changed"
}
},
{
"language_code": "es_es",
"string": "Comando a ejecutar. Esto no se puede cambiar"
}
]
},
@@ -78,13 +106,21 @@
{
"language_code": "en_us",
"string": "Run timeout"
}
},
{
"language_code": "es_es",
"string": "Tiempo límite de ejecución"
}
],
"description": [
{
"language_code": "en_us",
"string": "Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted."
}
},
{
"language_code": "es_es",
"string": "Tiempo máximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela."
}
]
},
{
@@ -97,13 +133,20 @@
{
"language_code": "en_us",
"string": "Watched"
}
],
},
{
"language_code": "es_es",
"string": "Visto"
}],
"description": [
{
"language_code": "en_us",
"string": "Undiscoverable Devices can not change their status, no watch is enabled."
}
},
{
"language_code": "es_es",
"string": "Los dispositivos no detectables no pueden cambiar su estado, ningún reloj está habilitado."
}
]
},
{
@@ -116,13 +159,21 @@
{
"language_code": "en_us",
"string": "Report on"
}
},
{
"language_code": "es_es",
"string": "Informar sobre"
}
],
"description": [
{
"language_code": "en_us",
"string": "No notifications will be sent."
}
},
{
"language_code": "es_es",
"string": "No se enviarán notificaciones."
}
]
},
{
@@ -134,10 +185,18 @@
"name" : [{
"language_code":"en_us",
"string" : "UnDiscoverable Devices"
},
{
"language_code":"es_es",
"string" : "Dispositivo no detectable"
}],
"description": [{
"language_code":"en_us",
"string" : "Devices to be added to the devices list."
},
{
"language_code":"es_es",
"string" : "Dispositivos que se añadirán a la lista de dispositivos."
}]
}
],
@@ -156,6 +215,10 @@
"name":[{
"language_code":"en_us",
"string" : "Device Name"
},
{
"language_code":"es_es",
"string" : "Nombre del dispositivo"
}]
},
{
@@ -170,6 +233,10 @@
"name":[{
"language_code":"en_us",
"string" : "MAC address"
},
{
"language_code":"es_es",
"string" : "Dirección MAC"
}]
},
{
@@ -184,6 +251,10 @@
"name":[{
"language_code":"en_us",
"string" : "IP"
},
{
"language_code":"es_es",
"string" : "IP"
}]
} ,
{
@@ -197,6 +268,10 @@
"name":[{
"language_code":"en_us",
"string" : "Created"
},
{
"language_code":"es_es",
"string" : "Creado"
}]
},
{
@@ -211,7 +286,11 @@
"name":[{
"language_code":"en_us",
"string" : "Changed"
},
{
"language_code":"es_es",
"string" : "Cambiado"
}]
}
]
}
}

View File

@@ -335,7 +335,7 @@ function generateTabs()
<li >
<a href="#historyTarget_${pluginObj.unique_prefix}" data-toggle="tab" >
<i class="fa fa-clock"></i> <?= lang('Plugins_History');?> (${histCountDisplayed} out of ${histCount})
<i class="fa fa-clock"></i> <?= lang('Plugins_History');?> (${histCountDisplayed} <?= lang('Plugins_Out_of');?> ${histCount})
</a>
</li>
@@ -538,4 +538,4 @@ function purgeVisible() {
getData()
updater()
</script>
</script>

View File

@@ -130,7 +130,7 @@ $usb_devices_mount = explode("\n", trim($usb_result));
// General ----------------------------------------------------------
echo '<div class="box box-solid">
<div class="box-header">
<h3 class="box-title sysinfo_headline"><i class="fa fa-info-circle"></i> General</h3>
<h3 class="box-title sysinfo_headline"><i class="fa fa-info-circle"></i> ' . lang('Systeminfo_General') . '</h3>
</div>
<div class="box-body">
<div class="row">
@@ -155,7 +155,7 @@ echo '<div class="box box-solid">
// Client ----------------------------------------------------------
echo '<div class="box box-solid">
<div class="box-header">
<h3 class="box-title sysinfo_headline"><i class="fa fa-globe"></i> This Client</h3>
<h3 class="box-title sysinfo_headline"><i class="fa fa-globe"></i> ' . lang('Systeminfo_This_Client') . '</h3>
</div>
<div class="box-body">
<div class="row">
@@ -183,7 +183,7 @@ echo '<script>
// System ----------------------------------------------------------
echo '<div class="box box-solid">
<div class="box-header">
<h3 class="box-title sysinfo_headline"><i class="fa fa-computer"></i> System</h3>
<h3 class="box-title sysinfo_headline"><i class="fa fa-computer"></i> ' . lang('Systeminfo_System') . '</h3>
</div>
<div class="box-body">
<div class="row">
@@ -220,7 +220,7 @@ echo '<div class="box box-solid">
// Motherboard ----------------------------------------------------------
echo '<div class="box box-solid">
<div class="box-header">
<h3 class="box-title sysinfo_headline"><i class="fa fa-laptop-code"></i> Motherboard</h3>
<h3 class="box-title sysinfo_headline"><i class="fa fa-laptop-code"></i> ' . lang('Systeminfo_Motherboard') . '</h3>
</div>
<div class="box-body">
<div class="row">
@@ -253,7 +253,7 @@ echo '<div class="box box-solid">
// CPU ----------------------------------------------------------
echo '<div class="box box-solid">
<div class="box-header">
<h3 class="box-title sysinfo_headline"><i class="fa fa-microchip"></i> CPU</h3>
<h3 class="box-title sysinfo_headline"><i class="fa fa-microchip"></i> ' . lang('Systeminfo_CPU') . '</h3>
</div>
<div class="box-body">
<div class="row">
@@ -302,7 +302,7 @@ echo '<div class="box box-solid">
// Memory ----------------------------------------------------------
echo '<div class="box box-solid">
<div class="box-header">
<h3 class="box-title sysinfo_headline"><i class="fa fa-memory"></i> Memory</h3>
<h3 class="box-title sysinfo_headline"><i class="fa fa-memory"></i> ' . lang('Systeminfo_Memory') . '</h3>
</div>
<div class="box-body">
<div class="row">
@@ -323,7 +323,7 @@ echo '<div class="box box-solid">
// Storage ----------------------------------------------------------
echo '<div class="box box-solid">
<div class="box-header">
<h3 class="box-title sysinfo_headline"><i class="fa fa-hdd"></i> Storage</h3>
<h3 class="box-title sysinfo_headline"><i class="fa fa-hdd"></i> ' . lang('Systeminfo_Storage') . '</h3>
</div>
<div class="box-body">';
@@ -360,7 +360,7 @@ echo ' </div>
// Storage usage ----------------------------------------------------------
echo '<div class="box box-solid">
<div class="box-header">
<h3 class="box-title sysinfo_headline"><i class="fa fa-hdd"></i> Storage usage</h3>
<h3 class="box-title sysinfo_headline"><i class="fa fa-hdd"></i> ' . lang('Systeminfo_Storage_usage') . '</h3>
</div>
<div class="box-body">';
for ($x = 0; $x < sizeof($hdd_devices); $x++) {
@@ -383,7 +383,7 @@ echo ' </div>
// Network ----------------------------------------------------------
echo '<div class="box box-solid">
<div class="box-header">
<h3 class="box-title sysinfo_headline"><i class="fas fa-ethernet"></i> Network</h3>
<h3 class="box-title sysinfo_headline"><i class="fas fa-ethernet"></i> ' . lang('Systeminfo_Network') . '</h3>
</div>
<div class="box-body">
<div class="row">
@@ -456,7 +456,7 @@ echo '<div class="box box-solid">
// Network Hardware ----------------------------------------------------------
echo '<div class="box box-solid">
<div class="box-header">
<h3 class="box-title sysinfo_headline"><i class="fas fa-network-wired"></i> Network Hardware</h3>
<h3 class="box-title sysinfo_headline"><i class="fas fa-network-wired"></i> ' . lang('Systeminfo_Network_Hardware') . '</h3>
</div>
<div class="box-body">';
@@ -483,7 +483,7 @@ echo ' </div>
// Services ----------------------------------------------------------
echo '<div class="box box-solid">
<div class="box-header">
<h3 class="box-title sysinfo_headline"><i class="fa fa-database"></i> Services (running)</h3>
<h3 class="box-title sysinfo_headline"><i class="fa fa-database"></i> ' . lang('Systeminfo_Services') . '</h3>
</div>
<div class="box-body">';
echo '<div style="height: 300px; overflow: scroll;">';
@@ -515,7 +515,7 @@ echo ' </div>
// USB ----------------------------------------------------------
echo '<div class="box box-solid">
<div class="box-header">
<h3 class="box-title sysinfo_headline"><i class="fab fa-usb"></i> USB Devices</h3>
<h3 class="box-title sysinfo_headline"><i class="fab fa-usb"></i> ' . lang('Systeminfo_USB_Devices') . '</h3>
</div>
<div class="box-body">';
echo ' <table class="table table-bordered table-hover table-striped dataTable no-footer" style="margin-bottom: 10px;">';