🔒DB lock v0.4 #685 + 🔔userNotifications
This commit is contained in:
@@ -41,6 +41,7 @@ services:
|
|||||||
- ${DEV_LOCATION}/front/api:/app/front/api
|
- ${DEV_LOCATION}/front/api:/app/front/api
|
||||||
- ${DEV_LOCATION}/front/php:/app/front/php
|
- ${DEV_LOCATION}/front/php:/app/front/php
|
||||||
- ${DEV_LOCATION}/front/deviceDetails.php:/app/front/deviceDetails.php
|
- ${DEV_LOCATION}/front/deviceDetails.php:/app/front/deviceDetails.php
|
||||||
|
- ${DEV_LOCATION}/front/userNotifications.php:/app/front/userNotifications.php
|
||||||
- ${DEV_LOCATION}/front/deviceDetailsTools.php:/app/front/deviceDetailsTools.php
|
- ${DEV_LOCATION}/front/deviceDetailsTools.php:/app/front/deviceDetailsTools.php
|
||||||
- ${DEV_LOCATION}/front/devices.php:/app/front/devices.php
|
- ${DEV_LOCATION}/front/devices.php:/app/front/devices.php
|
||||||
- ${DEV_LOCATION}/front/events.php:/app/front/events.php
|
- ${DEV_LOCATION}/front/events.php:/app/front/events.php
|
||||||
|
|||||||
@@ -92,7 +92,8 @@ fi
|
|||||||
|
|
||||||
# Create an empty log files
|
# Create an empty log files
|
||||||
# Create the execution_queue.log and app_front.log files if they don't exist
|
# Create the execution_queue.log and app_front.log files if they don't exist
|
||||||
touch "${INSTALL_DIR}"/front/log/{app.log,execution_queue.log,app_front.log,app.php_errors.log,stderr.log,stdout.log}
|
touch "${INSTALL_DIR}"/front/log/{app.log,execution_queue.log,app_front.log,app.php_errors.log,stderr.log,stdout.log,db_is_locked.log}
|
||||||
|
touch "${INSTALL_DIR}"/api/{user_notifications.json}
|
||||||
|
|
||||||
echo "[INSTALL] Fixing permissions after copied starter config & DB"
|
echo "[INSTALL] Fixing permissions after copied starter config & DB"
|
||||||
chown -R nginx:www-data "${INSTALL_DIR}"/{config,front/log,db}
|
chown -R nginx:www-data "${INSTALL_DIR}"/{config,front/log,db}
|
||||||
|
|||||||
@@ -513,6 +513,13 @@
|
|||||||
border-color: #c3e6cb;
|
border-color: #c3e6cb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.modal_red
|
||||||
|
{
|
||||||
|
color: rgb(245, 245, 245);
|
||||||
|
background-color: #e2acaa;
|
||||||
|
border-color: #d41001;
|
||||||
|
}
|
||||||
|
|
||||||
.modal_grey
|
.modal_grey
|
||||||
{
|
{
|
||||||
color: white;
|
color: white;
|
||||||
|
|||||||
@@ -1437,6 +1437,8 @@ function setDeviceData (direction='', refreshCallback='') {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
showSpinner()
|
||||||
|
|
||||||
// update data to server
|
// update data to server
|
||||||
$.get('php/server/devices.php?action=setDeviceData&mac='+ mac
|
$.get('php/server/devices.php?action=setDeviceData&mac='+ mac
|
||||||
+ '&name=' + encodeURIComponent($('#txtName').val())
|
+ '&name=' + encodeURIComponent($('#txtName').val())
|
||||||
@@ -1459,32 +1461,37 @@ function setDeviceData (direction='', refreshCallback='') {
|
|||||||
+ '&archived=' + ($('#chkArchived')[0].checked * 1)
|
+ '&archived=' + ($('#chkArchived')[0].checked * 1)
|
||||||
, function(msg) {
|
, function(msg) {
|
||||||
|
|
||||||
showMessage (msg);
|
showMessage (msg);
|
||||||
|
|
||||||
|
|
||||||
// clear session storage
|
// clear session storage
|
||||||
setCache("#dropdownOwner","");
|
setCache("#dropdownOwner","");
|
||||||
setCache("#dropdownDeviceType","");
|
setCache("#dropdownDeviceType","");
|
||||||
setCache("#dropdownGroup","");
|
setCache("#dropdownGroup","");
|
||||||
setCache("#dropdownLocation","");
|
setCache("#dropdownLocation","");
|
||||||
setCache("#dropdownNetworkNodeMac","");
|
setCache("#dropdownNetworkNodeMac","");
|
||||||
|
|
||||||
// Remove navigation prompt "Are you sure you want to leave..."
|
// Remove navigation prompt "Are you sure you want to leave..."
|
||||||
window.onbeforeunload = null;
|
window.onbeforeunload = null;
|
||||||
somethingChanged = false;
|
somethingChanged = false;
|
||||||
|
|
||||||
// refresh API
|
// refresh API
|
||||||
updateApi()
|
updateApi()
|
||||||
|
|
||||||
// Callback fuction
|
hideSpinner()
|
||||||
if (typeof refreshCallback == 'function') {
|
|
||||||
refreshCallback(direction);
|
// Callback fuction
|
||||||
}
|
if (typeof refreshCallback == 'function') {
|
||||||
|
refreshCallback(direction);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
function askSkipNotifications () {
|
function askSkipNotifications () {
|
||||||
// Check MAC
|
// Check MAC
|
||||||
|
|||||||
@@ -23,16 +23,19 @@ function readData(sqlQuery, processDataCallback, valuesArray, targetLocation, ta
|
|||||||
// Check if database is locked
|
// Check if database is locked
|
||||||
function checkDbLock() {
|
function checkDbLock() {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: 'php/server/dbHelper.php', // Replace with the actual path to your PHP file
|
url: 'log/db_is_locked.log', // Replace with the actual path to your PHP file
|
||||||
type: 'GET',
|
type: 'GET',
|
||||||
data: { action: 'checkLock' },
|
|
||||||
success: function(response) {
|
success: function(response) {
|
||||||
if (response == 1) {
|
// console.log(response);
|
||||||
console.log('🟥 Database is locked');
|
if (response == 0) {
|
||||||
$(".header-status-locked-db").show()
|
|
||||||
} else {
|
|
||||||
// console.log('Database is not locked');
|
// console.log('Database is not locked');
|
||||||
$(".header-status-locked-db").hide()
|
$(".header-status-locked-db").hide()
|
||||||
|
|
||||||
|
} else {
|
||||||
|
console.log('🟥 Database is locked:');
|
||||||
|
console.log(response);
|
||||||
|
$(".header-status-locked-db").show()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error: function() {
|
error: function() {
|
||||||
@@ -42,7 +45,8 @@ function checkDbLock() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start the loop
|
setInterval(checkDbLock(), 1000);
|
||||||
setInterval(() => {
|
|
||||||
checkDbLock();
|
|
||||||
}, 1000);
|
|
||||||
|
|
||||||
|
|||||||
@@ -192,17 +192,17 @@ function showMessage(textMessage = "", timeout = 3000, colorClass = "modal_green
|
|||||||
alert(textMessage);
|
alert(textMessage);
|
||||||
} else {
|
} else {
|
||||||
// show temporary notification
|
// show temporary notification
|
||||||
$("#notification").removeClass(); // remove all classes
|
$("#notification_modal").removeClass(); // remove all classes
|
||||||
$("#notification").addClass("alert alert-dimissible notification_modal"); // add default ones
|
$("#notification_modal").addClass("alert alert-dimissible notification_modal"); // add default ones
|
||||||
$("#notification").addClass(colorClass); // add color modifiers
|
$("#notification_modal").addClass(colorClass); // add color modifiers
|
||||||
|
|
||||||
// message
|
// message
|
||||||
$("#alert-message").html(textMessage);
|
$("#alert-message").html(textMessage);
|
||||||
|
|
||||||
// timeout
|
// timeout
|
||||||
$("#notification").fadeIn(1, function () {
|
$("#notification_modal").fadeIn(1, function () {
|
||||||
window.setTimeout(function () {
|
window.setTimeout(function () {
|
||||||
$("#notification").fadeOut(500);
|
$("#notification_modal").fadeOut(500);
|
||||||
}, timeout);
|
}, timeout);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -240,3 +240,66 @@ $(document).ready(function () {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------
|
||||||
|
// Backend notification Polling
|
||||||
|
// -----------------------------------------------------------------------------
|
||||||
|
// Function to check for notifications
|
||||||
|
function checkNotification() {
|
||||||
|
const notificationEndpoint = 'php/server/utilNotification.php?action=get_unread_notifications';
|
||||||
|
const phpEndpoint = 'php/server/utilNotification.php';
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: notificationEndpoint,
|
||||||
|
type: 'GET',
|
||||||
|
success: function(response) {
|
||||||
|
// console.log(response);
|
||||||
|
|
||||||
|
if(response != "[]")
|
||||||
|
{
|
||||||
|
|
||||||
|
// Find the oldest unread notification with level "interrupt"
|
||||||
|
const oldestInterruptNotification = response.find(notification => notification.read === 0 && notification.level === "interrupt");
|
||||||
|
|
||||||
|
if (oldestInterruptNotification) {
|
||||||
|
// Show modal dialog with the oldest unread notification
|
||||||
|
|
||||||
|
const decodedContent = JSON.parse(decodeURIComponent(oldestInterruptNotification.content));
|
||||||
|
|
||||||
|
showModalOK("Notification", decodedContent, function() {
|
||||||
|
// Mark the notification as read
|
||||||
|
$.ajax({
|
||||||
|
url: phpEndpoint,
|
||||||
|
type: 'GET',
|
||||||
|
data: {
|
||||||
|
action: 'mark_notification_as_read',
|
||||||
|
guid: oldestInterruptNotification.guid
|
||||||
|
},
|
||||||
|
success: function(response) {
|
||||||
|
console.log(response);
|
||||||
|
// After marking the notification as read, check for the next one
|
||||||
|
checkNotification();
|
||||||
|
},
|
||||||
|
error: function(xhr, status, error) {
|
||||||
|
console.error("Error marking notification as read:", status, error);
|
||||||
|
},
|
||||||
|
complete:function() {
|
||||||
|
hideSpinner();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function() {
|
||||||
|
console.warn(`🟥 Error checking ${notificationEndpoint}`)
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Start checking for notifications periodically
|
||||||
|
setInterval(checkNotification, 3000);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
51
front/js/tests.js
Executable file
51
front/js/tests.js
Executable file
@@ -0,0 +1,51 @@
|
|||||||
|
// --------------------------------------------------
|
||||||
|
// Check if database is locked
|
||||||
|
function lockDatabase(delay=20) {
|
||||||
|
$.ajax({
|
||||||
|
url: 'php/server/dbHelper.php', // Replace with the actual path to your PHP file
|
||||||
|
type: 'GET',
|
||||||
|
data: { action: 'lockDatabase', delay: delay },
|
||||||
|
success: function(response) {
|
||||||
|
console.log('Executed');
|
||||||
|
},
|
||||||
|
error: function() {
|
||||||
|
console.log('Error ocurred');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
let times = delay;
|
||||||
|
let countdownInterval = setInterval(() => {
|
||||||
|
times--;
|
||||||
|
console.log(`Remaining time: ${times} seconds`);
|
||||||
|
|
||||||
|
if (times <= 0) {
|
||||||
|
clearInterval(countdownInterval);
|
||||||
|
console.log('Countdown finished');
|
||||||
|
}
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function writeNotification(content, level) {
|
||||||
|
|
||||||
|
const phpEndpoint = 'php/server/utilNotification.php';
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: phpEndpoint, // Change this to the path of your PHP script
|
||||||
|
type: 'GET',
|
||||||
|
data: {
|
||||||
|
action: 'write_notification',
|
||||||
|
content: content,
|
||||||
|
level: level
|
||||||
|
},
|
||||||
|
success: function(response) {
|
||||||
|
alert('Notification written successfully.');
|
||||||
|
},
|
||||||
|
error: function(xhr, status, error) {
|
||||||
|
console.error('Error writing notification:', error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -11,130 +11,184 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// DB File Path
|
// DB File Path
|
||||||
$DBFILE = dirname(__FILE__).'/../../../db/app.db';
|
$DBFILE = dirname(__FILE__).'/../../../db/app.db';
|
||||||
$DBFILE_LOCKED_FILE = dirname(__FILE__).'/../../../logs/db_is_locked.log';
|
$DBFILE_LOCKED_FILE = dirname(__FILE__).'/../../../front/log/db_is_locked.log';
|
||||||
|
|
||||||
$db_locked = false;
|
$db_locked = false;
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Connect DB
|
// Connect DB
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
function SQLite3_connect ($trytoreconnect, $retryCount = 0) {
|
function SQLite3_connect($trytoreconnect = true, $retryCount = 0) {
|
||||||
global $DBFILE, $DBFILE_LOCKED_FILE;
|
global $DBFILE, $DBFILE_LOCKED_FILE;
|
||||||
$maxRetries = 5; // Maximum number of retries
|
$maxRetries = 5; // Maximum number of retries
|
||||||
$baseDelay = 1; // Base delay in seconds
|
$baseDelay = 1; // Base delay in seconds
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Connect to database
|
||||||
|
global $db_locked;
|
||||||
|
$db_locked = false;
|
||||||
|
|
||||||
try {
|
// Write unlock status to the locked file
|
||||||
// Connect to database
|
file_put_contents($DBFILE_LOCKED_FILE, '0');
|
||||||
global $db_locked;
|
|
||||||
$db_locked = false;
|
|
||||||
|
|
||||||
// Write unlock status to the locked file
|
return new SQLite3($DBFILE, SQLITE3_OPEN_READWRITE);
|
||||||
file_put_contents($DBFILE_LOCKED_FILE, '0');
|
} catch (Exception $exception) {
|
||||||
|
// sqlite3 throws an exception when it is unable to connect
|
||||||
|
global $db_locked;
|
||||||
|
$db_locked = true;
|
||||||
|
|
||||||
return new SQLite3($DBFILE, SQLITE3_OPEN_READWRITE);
|
// Write lock status to the locked file
|
||||||
} catch (Exception $exception) {
|
file_put_contents($DBFILE_LOCKED_FILE, '1');
|
||||||
// sqlite3 throws an exception when it is unable to connect
|
error_log("Failed to connect to database: " . $exception->getMessage());
|
||||||
global $db_locked;
|
|
||||||
$db_locked = true;
|
|
||||||
|
|
||||||
// Write lock status to the locked file
|
// Connection failed, check if we should retry
|
||||||
file_put_contents($DBFILE_LOCKED_FILE, '1');
|
if ($trytoreconnect && $retryCount < $maxRetries) {
|
||||||
|
// Calculate exponential backoff delay
|
||||||
|
$delay = $baseDelay * pow(2, $retryCount);
|
||||||
|
sleep($delay);
|
||||||
|
|
||||||
// Connection failed, check if we should retry
|
// Retry the connection with an increased retry count
|
||||||
if ($trytoreconnect && $retryCount < $maxRetries) {
|
return SQLite3_connect(true, $retryCount + 1);
|
||||||
// Calculate exponential backoff delay
|
} else {
|
||||||
$delay = $baseDelay * pow(2, $retryCount);
|
// Maximum retries reached, hide loading spinner and show failure alert
|
||||||
sleep($delay);
|
$message = 'Failed to connect to database after ' . $retryCount . ' retries.';
|
||||||
|
write_notification($message);
|
||||||
// Retry the connection with an increased retry count
|
return false; // Or handle the failure appropriately
|
||||||
return SQLite3_connect(true, $retryCount + 1);
|
}
|
||||||
} else {
|
|
||||||
// Maximum retries reached, hide loading spinner and show failure alert
|
|
||||||
echo '<script>alert("Failed to connect to database after ' . $retryCount . ' retries.")</script>';
|
|
||||||
return false; // Or handle the failure appropriately
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// ->query override to handle retries
|
// ->query override to handle retries
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
class CustomDatabaseWrapper {
|
class CustomDatabaseWrapper {
|
||||||
private $sqlite;
|
private $sqlite;
|
||||||
private $maxRetries;
|
private $maxRetries;
|
||||||
private $retryDelay;
|
private $retryDelay;
|
||||||
|
|
||||||
|
|
||||||
public function __construct($filename, $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, $maxRetries = 3, $retryDelay = 1000, $encryptionKey = null) {
|
public function __construct($filename, $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, $maxRetries = 10, $retryDelay = 1000, $encryptionKey = null) {
|
||||||
$this->sqlite = new SQLite3($filename, $flags, $encryptionKey);
|
$this->sqlite = new SQLite3($filename, $flags, $encryptionKey);
|
||||||
|
$this->maxRetries = $maxRetries;
|
||||||
|
$this->retryDelay = $retryDelay;
|
||||||
|
}
|
||||||
|
|
||||||
$this->maxRetries = $maxRetries;
|
public function query(string $query): SQLite3Result|bool {
|
||||||
$this->retryDelay = $retryDelay;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function query(string $query): SQLite3Result|bool {
|
|
||||||
global $DBFILE_LOCKED_FILE;
|
global $DBFILE_LOCKED_FILE;
|
||||||
|
|
||||||
|
// Check if the query is an UPDATE, DELETE, or INSERT
|
||||||
|
$queryType = strtoupper(substr(trim($query), 0, strpos(trim($query), ' ')));
|
||||||
|
$isModificationQuery = in_array($queryType, ['UPDATE', 'DELETE', 'INSERT']);
|
||||||
|
|
||||||
$attempts = 0;
|
$attempts = 0;
|
||||||
while ($attempts < $this->maxRetries) {
|
while ($attempts < $this->maxRetries) {
|
||||||
$result = $this->sqlite->query($query);
|
|
||||||
if ($result !== false) {
|
$result = false;
|
||||||
// Write unlock status to the locked file
|
|
||||||
file_put_contents($DBFILE_LOCKED_FILE, '0');
|
try {
|
||||||
return $result;
|
$result = $this->sqlite->query($query);
|
||||||
|
} catch (Exception $exception) {
|
||||||
|
// continue unless maxRetries reached
|
||||||
|
if($attempts > $this->maxRetries)
|
||||||
|
{
|
||||||
|
throw $exception;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($result !== false and $result !== null) {
|
||||||
|
|
||||||
|
$this->query_log_remove($query);
|
||||||
|
|
||||||
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write lock status to the locked file
|
$this->query_log_add($query);
|
||||||
file_put_contents($DBFILE_LOCKED_FILE, '1');
|
|
||||||
|
|
||||||
$attempts++;
|
$attempts++;
|
||||||
usleep($this->retryDelay * 1000); // Retry delay in milliseconds
|
usleep($this->retryDelay * 1000 * $attempts); // Retry delay in milliseconds
|
||||||
}
|
}
|
||||||
|
|
||||||
// If all retries failed, throw an exception or handle the error as needed
|
// If all retries failed, throw an exception or handle the error as needed
|
||||||
echo '<script>alert("Error executing query (attempts: ' . $attempts . '"), query: '.$query.'</script>';
|
// Add '0' to indicate that the database is not locked/execution failed
|
||||||
throw new Exception("Query failed after {$this->maxRetries} attempts: " . $this->sqlite->lastErrorMsg());
|
file_put_contents($DBFILE_LOCKED_FILE, '0');
|
||||||
}
|
|
||||||
|
|
||||||
// Delegate other SQLite3 methods to the $sqlite instance
|
$message = 'Error executing query (attempts: ' . $attempts . '), query: ' . $query;
|
||||||
public function __call($name, $arguments) {
|
write_notification($message);
|
||||||
return call_user_func_array([$this->sqlite, $name], $arguments);
|
error_log("Query failed after {$this->maxRetries} attempts: " . $this->sqlite->lastErrorMsg());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function query_log_add($query)
|
||||||
|
{
|
||||||
|
global $DBFILE_LOCKED_FILE;
|
||||||
|
|
||||||
|
// Remove new lines from the query
|
||||||
|
$query = str_replace(array("\r", "\n"), ' ', $query);
|
||||||
|
|
||||||
|
// Generate a hash of the query
|
||||||
|
$queryHash = md5($query);
|
||||||
|
|
||||||
|
// Log the query being attempted along with timestamp and query hash
|
||||||
|
$executionLog = "1|" . date('Y-m-d H:i:s') . "|$queryHash|$query";
|
||||||
|
error_log("Attempting to write '$executionLog' to execution log file after failed query: $query");
|
||||||
|
file_put_contents($DBFILE_LOCKED_FILE, $executionLog . PHP_EOL, FILE_APPEND);
|
||||||
|
error_log("Execution log file content after failed query attempt: " . file_get_contents($DBFILE_LOCKED_FILE));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function query_log_remove($query)
|
||||||
|
{
|
||||||
|
global $DBFILE_LOCKED_FILE;
|
||||||
|
|
||||||
|
// Remove new lines from the query
|
||||||
|
$query = str_replace(array("\r", "\n"), ' ', $query);
|
||||||
|
|
||||||
|
// Generate a hash of the query
|
||||||
|
$queryHash = md5($query);
|
||||||
|
|
||||||
|
// Remove the entry corresponding to the finished query from the execution log based on query hash
|
||||||
|
$executionLogs = file($DBFILE_LOCKED_FILE, FILE_IGNORE_NEW_LINES);
|
||||||
|
$executionLogs = array_filter($executionLogs, function($log) use ($queryHash) {
|
||||||
|
return strpos($log, $queryHash) === false;
|
||||||
|
});
|
||||||
|
file_put_contents($DBFILE_LOCKED_FILE, implode(PHP_EOL, $executionLogs));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delegate other SQLite3 methods to the $sqlite instance
|
||||||
|
public function __call($name, $arguments) {
|
||||||
|
return call_user_func_array([$this->sqlite, $name], $arguments);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Open DB
|
// Open DB
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
function OpenDB($DBPath = null) {
|
function OpenDB($DBPath = null) {
|
||||||
global $DBFILE;
|
global $DBFILE;
|
||||||
global $db;
|
global $db;
|
||||||
|
|
||||||
// Use custom path if supplied
|
// Use custom path if supplied
|
||||||
if ($DBPath !== null) {
|
if ($DBPath !== null) {
|
||||||
$DBFILE = $DBPath;
|
$DBFILE = $DBPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strlen($DBFILE) == 0) {
|
if (strlen($DBFILE) == 0) {
|
||||||
echo '<script>alert("Database not available")</script>';
|
$message = 'Database not available';
|
||||||
die('<div style="padding-left:150px">Database not available</div>');
|
echo '<script>alert('.$message.')</script>';
|
||||||
}
|
write_notification($message);
|
||||||
|
|
||||||
|
die('<div style="padding-left:150px">'.$message.'</div>');
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$db = new CustomDatabaseWrapper($DBFILE);
|
$db = new CustomDatabaseWrapper($DBFILE);
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
echo '<script>alert("Error connecting to the database: ' . $e->getMessage() . '")</script>';
|
$message = "Error connecting to the database";
|
||||||
die('<div style="padding-left:150px">Error connecting to the database</div>');
|
echo '<script>alert('.$message.'": ' . $e->getMessage() . '")</script>';
|
||||||
}
|
write_notification($message);
|
||||||
|
die('<div style="padding-left:150px">'.$message.'</div>');
|
||||||
|
}
|
||||||
|
|
||||||
$db->exec('PRAGMA journal_mode = wal;');
|
$db->exec('PRAGMA journal_mode = wal;');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Open DB once and keep open
|
||||||
|
OpenDB(); // main
|
||||||
// # Open DB once and keep open
|
?>
|
||||||
// # Opening / closing DB frequently actually casues more issues
|
|
||||||
OpenDB (); // main
|
|
||||||
|
|||||||
@@ -48,6 +48,10 @@
|
|||||||
$id = $_REQUEST['id'];
|
$id = $_REQUEST['id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isset ($_REQUEST['delay'])) {
|
||||||
|
$delay = $_REQUEST['delay'];
|
||||||
|
}
|
||||||
|
|
||||||
if (isset ($_REQUEST['values'])) {
|
if (isset ($_REQUEST['values'])) {
|
||||||
$values = $_REQUEST['values'];
|
$values = $_REQUEST['values'];
|
||||||
}
|
}
|
||||||
@@ -72,7 +76,7 @@
|
|||||||
case 'read' : read($rawSql); break;
|
case 'read' : read($rawSql); break;
|
||||||
case 'update': update($columnName, $id, $defaultValue, $expireMinutes, $dbtable, $columns, $values); break;
|
case 'update': update($columnName, $id, $defaultValue, $expireMinutes, $dbtable, $columns, $values); break;
|
||||||
case 'delete': delete($columnName, $id, $dbtable); break;
|
case 'delete': delete($columnName, $id, $dbtable); break;
|
||||||
case 'checkLock': checkLock(); break;
|
case 'lockDatabase': lockDatabase($delay); break;
|
||||||
default: logServerConsole ('Action: '. $action); break;
|
default: logServerConsole ('Action: '. $action); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -264,49 +268,11 @@ function delete($columnName, $id, $dbtable)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Simulate database locking by starting a transaction
|
||||||
//------------------------------------------------------------------------------
|
function lockDatabase($delay) {
|
||||||
// check if the database is locked
|
$db = new SQLite3($GLOBALS['DBFILE']);
|
||||||
//------------------------------------------------------------------------------
|
$db->exec('BEGIN EXCLUSIVE;');
|
||||||
function checkLock() {
|
sleep($delay); // Sleep for N seconds to simulate long-running transaction
|
||||||
|
|
||||||
return checkLock_file() or checkLock_db();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function checkLock_db() {
|
|
||||||
global $DBFILE, $db_locked;
|
|
||||||
|
|
||||||
$file = fopen($DBFILE, 'r+');
|
|
||||||
|
|
||||||
if (!$file or $db_locked) {
|
|
||||||
// Could not open the file
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (flock($file, LOCK_EX | LOCK_NB)) {
|
|
||||||
// Lock acquired, meaning the database is not locked by another process
|
|
||||||
flock($file, LOCK_UN); // Release the lock
|
|
||||||
return 0; // Not locked
|
|
||||||
} else {
|
|
||||||
// Could not acquire lock, meaning the database is locked
|
|
||||||
fclose($file);
|
|
||||||
return 1; // Locked
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function checkLock_file() {
|
|
||||||
$DBFILE_LOCKED_FILE = dirname(__FILE__).'/../../../logs/db_is_locked.log';
|
|
||||||
|
|
||||||
if (file_exists($DBFILE_LOCKED_FILE)) {
|
|
||||||
$status = file_get_contents($DBFILE_LOCKED_FILE);
|
|
||||||
return $status; // Output the content of the lock file (0 or 1)
|
|
||||||
} else {
|
|
||||||
return '0'; // If the file doesn't exist, consider it as unlocked
|
|
||||||
}
|
|
||||||
exit;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
ini_set('error_log', '../../log/app.php_errors.log'); // initializing the app.php_errors.log file for the maintenance section
|
||||||
require dirname(__FILE__).'/../templates/timezone.php';
|
require dirname(__FILE__).'/../templates/timezone.php';
|
||||||
require dirname(__FILE__).'/db.php';
|
require dirname(__FILE__).'/db.php';
|
||||||
require dirname(__FILE__).'/util.php';
|
require dirname(__FILE__).'/util.php';
|
||||||
require dirname(__FILE__).'/../templates/language/lang.php';
|
require dirname(__FILE__).'/../templates/language/lang.php';
|
||||||
|
require dirname(__FILE__).'/utilNotification.php';
|
||||||
?>
|
?>
|
||||||
|
|||||||
169
front/php/server/utilNotification.php
Executable file
169
front/php/server/utilNotification.php
Executable file
@@ -0,0 +1,169 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Check if the action parameter is set in the GET request
|
||||||
|
if (isset($_GET['action'])) {
|
||||||
|
// Collect GUID if provided
|
||||||
|
$guid = isset($_GET['guid']) ? $_GET['guid'] : null;
|
||||||
|
|
||||||
|
// Perform the appropriate action based on the action parameter
|
||||||
|
switch ($_GET['action']) {
|
||||||
|
case 'write_notification':
|
||||||
|
// Call the write_notification function with content and level parameters
|
||||||
|
if (isset($_GET['content'])) {
|
||||||
|
$content = $_GET['content'];
|
||||||
|
$level = isset($_GET['level']) ? $_GET['level'] : "interrupt";
|
||||||
|
write_notification($content, $level);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'remove_notification':
|
||||||
|
// Call the remove_notification function with guid parameter
|
||||||
|
if ($guid) {
|
||||||
|
remove_notification($guid);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'mark_notification_as_read':
|
||||||
|
// Call the mark_notification_as_read function with guid parameter
|
||||||
|
if ($guid) {
|
||||||
|
mark_notification_as_read($guid);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'notifications_clear':
|
||||||
|
// Call the notifications_clear function
|
||||||
|
notifications_clear();
|
||||||
|
break;
|
||||||
|
case 'get_unread_notifications':
|
||||||
|
// Call the get_unread_notifications function
|
||||||
|
get_unread_notifications();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function generate_guid() {
|
||||||
|
if (function_exists('com_create_guid') === true) {
|
||||||
|
return trim(com_create_guid(), '{}');
|
||||||
|
}
|
||||||
|
return sprintf('%04X%04X-%04X-%04X-%04X-%04X%04X%04X',
|
||||||
|
mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535),
|
||||||
|
mt_rand(16384, 20479), mt_rand(32768, 49151), mt_rand(0, 65535),
|
||||||
|
mt_rand(0, 65535), mt_rand(0, 65535));
|
||||||
|
}
|
||||||
|
|
||||||
|
function write_notification($content, $level = "interrupt") {
|
||||||
|
$NOTIFICATION_API_FILE = '/app/front/api/user_notifications.json';
|
||||||
|
|
||||||
|
// Generate GUID
|
||||||
|
$guid = generate_guid();
|
||||||
|
|
||||||
|
// Generate timestamp
|
||||||
|
$timestamp = date("Y-m-d H:i:s");
|
||||||
|
|
||||||
|
// Escape content to prevent breaking JSON
|
||||||
|
$escaped_content = json_encode($content);
|
||||||
|
|
||||||
|
// Prepare notification array
|
||||||
|
$notification = array(
|
||||||
|
'timestamp' => $timestamp,
|
||||||
|
'guid' => $guid,
|
||||||
|
'read' => 0,
|
||||||
|
'level'=> $level,
|
||||||
|
'content' => $escaped_content,
|
||||||
|
);
|
||||||
|
|
||||||
|
// Read existing notifications
|
||||||
|
$notifications = json_decode(file_get_contents($NOTIFICATION_API_FILE), true);
|
||||||
|
|
||||||
|
// Add new notification
|
||||||
|
$notifications[] = $notification;
|
||||||
|
|
||||||
|
// Write notifications to file
|
||||||
|
file_put_contents($NOTIFICATION_API_FILE, json_encode($notifications));
|
||||||
|
}
|
||||||
|
|
||||||
|
function remove_notification($guid) {
|
||||||
|
$NOTIFICATION_API_FILE = '/app/front/api/user_notifications.json';
|
||||||
|
|
||||||
|
// Read existing notifications
|
||||||
|
$notifications = json_decode(file_get_contents($NOTIFICATION_API_FILE), true);
|
||||||
|
|
||||||
|
// Filter out the notification with the specified GUID
|
||||||
|
$filtered_notifications = array_filter($notifications, function($notification) use ($guid) {
|
||||||
|
return $notification['guid'] !== $guid;
|
||||||
|
});
|
||||||
|
|
||||||
|
// Write filtered notifications back to file
|
||||||
|
file_put_contents($NOTIFICATION_API_FILE, json_encode(array_values($filtered_notifications)));
|
||||||
|
}
|
||||||
|
|
||||||
|
function notifications_clear() {
|
||||||
|
$NOTIFICATION_API_FILE = '/app/front/api/user_notifications.json';
|
||||||
|
|
||||||
|
// Clear notifications by writing an empty array to the file
|
||||||
|
file_put_contents($NOTIFICATION_API_FILE, json_encode(array()));
|
||||||
|
}
|
||||||
|
|
||||||
|
function mark_notification_as_read($guid) {
|
||||||
|
$NOTIFICATION_API_FILE = '/app/front/api/user_notifications.json';
|
||||||
|
$max_attempts = 3;
|
||||||
|
$attempts = 0;
|
||||||
|
|
||||||
|
do {
|
||||||
|
// Check if the file exists and is readable
|
||||||
|
if (file_exists($NOTIFICATION_API_FILE) && is_readable($NOTIFICATION_API_FILE)) {
|
||||||
|
// Attempt to read existing notifications
|
||||||
|
$notifications = json_decode(file_get_contents($NOTIFICATION_API_FILE), true);
|
||||||
|
|
||||||
|
// Check if reading was successful
|
||||||
|
if ($notifications !== null) {
|
||||||
|
// Iterate over notifications to find the one with the specified GUID
|
||||||
|
foreach ($notifications as &$notification) {
|
||||||
|
if ($notification['guid'] === $guid) {
|
||||||
|
// Mark the notification as read
|
||||||
|
$notification['read'] = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write updated notifications back to file
|
||||||
|
file_put_contents($NOTIFICATION_API_FILE, json_encode($notifications));
|
||||||
|
return; // Exit the function after successful operation
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Increment the attempt count
|
||||||
|
$attempts++;
|
||||||
|
|
||||||
|
// Sleep for a short duration before retrying
|
||||||
|
usleep(500000); // Sleep for 0.5 seconds (500,000 microseconds) before retrying
|
||||||
|
|
||||||
|
} while ($attempts < $max_attempts);
|
||||||
|
|
||||||
|
// If maximum attempts reached or file reading failed, handle the error
|
||||||
|
echo "Failed to read notification file after $max_attempts attempts.";
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_unread_notifications() {
|
||||||
|
$NOTIFICATION_API_FILE = '/app/front/api/user_notifications.json';
|
||||||
|
|
||||||
|
// Read existing notifications
|
||||||
|
if (file_exists($NOTIFICATION_API_FILE) && is_readable($NOTIFICATION_API_FILE)) {
|
||||||
|
$notifications = json_decode(file_get_contents($NOTIFICATION_API_FILE), true);
|
||||||
|
|
||||||
|
if ($notifications !== null) {
|
||||||
|
// Filter unread notifications
|
||||||
|
$unread_notifications = array_filter($notifications, function($notification) {
|
||||||
|
return $notification['read'] === 0;
|
||||||
|
});
|
||||||
|
|
||||||
|
// Return unread notifications as JSON
|
||||||
|
header('Content-Type: application/json');
|
||||||
|
echo json_encode(array_values($unread_notifications));
|
||||||
|
} else {
|
||||||
|
echo json_encode([]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo json_encode([]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
||||||
@@ -32,6 +32,7 @@ require dirname(__FILE__).'/security.php';
|
|||||||
|
|
||||||
<script src="js/common.js?v=<?php include 'php/templates/version.php'; ?>"></script>
|
<script src="js/common.js?v=<?php include 'php/templates/version.php'; ?>"></script>
|
||||||
<script src="js/modal.js?v=<?php include 'php/templates/version.php'; ?>"></script>
|
<script src="js/modal.js?v=<?php include 'php/templates/version.php'; ?>"></script>
|
||||||
|
<script src="js/tests.js?v=<?php include 'php/templates/version.php'; ?>"></script>
|
||||||
|
|
||||||
<!-- Bootstrap 3.3.7 -->
|
<!-- Bootstrap 3.3.7 -->
|
||||||
<link rel="stylesheet" href="lib/AdminLTE/bower_components/bootstrap/dist/css/bootstrap.min.css">
|
<link rel="stylesheet" href="lib/AdminLTE/bower_components/bootstrap/dist/css/bootstrap.min.css">
|
||||||
@@ -265,7 +266,7 @@ if ($ENABLED_DARKMODE === True) {
|
|||||||
|
|
||||||
<!-- Monitoring menu item -->
|
<!-- Monitoring menu item -->
|
||||||
|
|
||||||
<li class=" treeview <?php if (in_array (basename($_SERVER['SCRIPT_NAME']), array('presence.php', 'report.php', 'events.php' ) ) ){ echo 'active menu-open'; } ?>">
|
<li class=" treeview <?php if (in_array (basename($_SERVER['SCRIPT_NAME']), array('presence.php', 'report.php', 'events.php', 'userNotifications.php' ) ) ){ echo 'active menu-open'; } ?>">
|
||||||
<a href="#">
|
<a href="#">
|
||||||
<i class="fa fa-fw fa-chart-bar"></i> <span><?= lang('Navigation_Monitoring');?></span>
|
<i class="fa fa-fw fa-chart-bar"></i> <span><?= lang('Navigation_Monitoring');?></span>
|
||||||
<span class="pull-right-container">
|
<span class="pull-right-container">
|
||||||
@@ -282,6 +283,9 @@ if ($ENABLED_DARKMODE === True) {
|
|||||||
<li>
|
<li>
|
||||||
<a href="report.php"> <?= lang("Navigation_Report");?> </a>
|
<a href="report.php"> <?= lang("Navigation_Report");?> </a>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="userNotifications.php"> <?= lang("Navigation_Notifications");?> </a>
|
||||||
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"API_CUSTOM_SQL_description": "Benutzerdefinierte SQL-Abfrage, welche eine JSON-Datei generiert und diese mit dem <a href=\"/api/table_custom_endpoint.json\" target=\"_blank\">Dateiendpunkt <code>table_custom_endpoint.json</code></a> zur Verfügung stellt.",
|
"API_CUSTOM_SQL_description": "Benutzerdefinierte SQL-Abfrage, welche eine JSON-Datei generiert und diese mit dem <a href=\"/api/table_custom_endpoint.json\" target=\"_blank\">Dateiendpunkt <code>table_custom_endpoint.json</code></a> zur Verf\u00fcgung stellt.",
|
||||||
"API_CUSTOM_SQL_name": "Benutzerdefinierte SQL-Abfrage",
|
"API_CUSTOM_SQL_name": "Benutzerdefinierte SQL-Abfrage",
|
||||||
"API_display_name": "API",
|
"API_display_name": "API",
|
||||||
"API_icon": "<i class=\"fa fa-arrow-down-up-across-line\"></i>",
|
"API_icon": "<i class=\"fa fa-arrow-down-up-across-line\"></i>",
|
||||||
@@ -20,13 +20,13 @@
|
|||||||
"AppEvents_Helper1": "Helfer 1",
|
"AppEvents_Helper1": "Helfer 1",
|
||||||
"AppEvents_Helper2": "Helfer 2",
|
"AppEvents_Helper2": "Helfer 2",
|
||||||
"AppEvents_Helper3": "Helfer 3",
|
"AppEvents_Helper3": "Helfer 3",
|
||||||
"AppEvents_ObjectForeignKey": "Unbekannter Schlüssel",
|
"AppEvents_ObjectForeignKey": "Unbekannter Schl\u00fcssel",
|
||||||
"AppEvents_ObjectIndex": "Index",
|
"AppEvents_ObjectIndex": "Index",
|
||||||
"AppEvents_ObjectIsArchived": "Ist archiviert (Zum Protokoll Zeitpunkt)",
|
"AppEvents_ObjectIsArchived": "Ist archiviert (Zum Protokoll Zeitpunkt)",
|
||||||
"AppEvents_ObjectIsNew": "Ist neu (Zum Protokoll Zeitpunkt)",
|
"AppEvents_ObjectIsNew": "Ist neu (Zum Protokoll Zeitpunkt)",
|
||||||
"AppEvents_ObjectPlugin": "Verknüpfte Plugins",
|
"AppEvents_ObjectPlugin": "Verkn\u00fcpfte Plugins",
|
||||||
"AppEvents_ObjectPrimaryID": "Primär ID",
|
"AppEvents_ObjectPrimaryID": "Prim\u00e4r ID",
|
||||||
"AppEvents_ObjectSecondaryID": "Sekundär ID",
|
"AppEvents_ObjectSecondaryID": "Sekund\u00e4r ID",
|
||||||
"AppEvents_ObjectStatus": "",
|
"AppEvents_ObjectStatus": "",
|
||||||
"AppEvents_ObjectStatusColumn": "",
|
"AppEvents_ObjectStatusColumn": "",
|
||||||
"AppEvents_ObjectType": "Objekttyp",
|
"AppEvents_ObjectType": "Objekttyp",
|
||||||
@@ -39,49 +39,49 @@
|
|||||||
"BackDevDetail_Actions_Title_Run": "Run action",
|
"BackDevDetail_Actions_Title_Run": "Run action",
|
||||||
"BackDevDetail_Copy_Ask": "Copy details from device from the dropdown list (Everything on this page will be overwritten)?",
|
"BackDevDetail_Copy_Ask": "Copy details from device from the dropdown list (Everything on this page will be overwritten)?",
|
||||||
"BackDevDetail_Copy_Title": "Copy details",
|
"BackDevDetail_Copy_Title": "Copy details",
|
||||||
"BackDevDetail_Tools_WOL_error": "Befehl wurde NICHT ausgeführt.",
|
"BackDevDetail_Tools_WOL_error": "Befehl wurde NICHT ausgef\u00fchrt.",
|
||||||
"BackDevDetail_Tools_WOL_okay": "Befehl wurde ausgeführt.",
|
"BackDevDetail_Tools_WOL_okay": "Befehl wurde ausgef\u00fchrt.",
|
||||||
"BackDevices_Arpscan_disabled": "Automatischer Arp-Scan deaktiviert.",
|
"BackDevices_Arpscan_disabled": "Automatischer Arp-Scan deaktiviert.",
|
||||||
"BackDevices_Arpscan_enabled": "Automatischer Arp-Scan aktiviert.",
|
"BackDevices_Arpscan_enabled": "Automatischer Arp-Scan aktiviert.",
|
||||||
"BackDevices_Backup_CopError": "Die originale Datenbank konnte nicht gesichert werden.",
|
"BackDevices_Backup_CopError": "Die originale Datenbank konnte nicht gesichert werden.",
|
||||||
"BackDevices_Backup_Failed": "Das Backup wurde teilweise ausgeführt. Das Archiv ist entweder leer oder nicht vorhanden.",
|
"BackDevices_Backup_Failed": "Das Backup wurde teilweise ausgef\u00fchrt. Das Archiv ist entweder leer oder nicht vorhanden.",
|
||||||
"BackDevices_Backup_okay": "Das Backup wurde erfolgreich beendet.",
|
"BackDevices_Backup_okay": "Das Backup wurde erfolgreich beendet.",
|
||||||
"BackDevices_DBTools_DelActHistory": "Die Anzeige der Netzwerkaktivität wurde zurückgesetzt.",
|
"BackDevices_DBTools_DelActHistory": "Die Anzeige der Netzwerkaktivit\u00e4t wurde zur\u00fcckgesetzt.",
|
||||||
"BackDevices_DBTools_DelActHistoryError": "Fehler beim Zurücksetzen der Netzwerkaktivitätsanzeige.",
|
"BackDevices_DBTools_DelActHistoryError": "Fehler beim Zur\u00fccksetzen der Netzwerkaktivit\u00e4tsanzeige.",
|
||||||
"BackDevices_DBTools_DelDevError_a": "Fehler beim Löschen des Gerätes.",
|
"BackDevices_DBTools_DelDevError_a": "Fehler beim L\u00f6schen des Ger\u00e4tes.",
|
||||||
"BackDevices_DBTools_DelDevError_b": "Fehler beim Löschen der Geräte.",
|
"BackDevices_DBTools_DelDevError_b": "Fehler beim L\u00f6schen der Ger\u00e4te.",
|
||||||
"BackDevices_DBTools_DelDev_a": "Gerät gelöscht.",
|
"BackDevices_DBTools_DelDev_a": "Ger\u00e4t gel\u00f6scht.",
|
||||||
"BackDevices_DBTools_DelDev_b": "Geräte gelöscht.",
|
"BackDevices_DBTools_DelDev_b": "Ger\u00e4te gel\u00f6scht.",
|
||||||
"BackDevices_DBTools_DelEvents": "Events gelöscht.",
|
"BackDevices_DBTools_DelEvents": "Events gel\u00f6scht.",
|
||||||
"BackDevices_DBTools_DelEventsError": "Fehler beim Löschen der Ereignisse.",
|
"BackDevices_DBTools_DelEventsError": "Fehler beim L\u00f6schen der Ereignisse.",
|
||||||
"BackDevices_DBTools_ImportCSV": "Die Geräte aus der CSV-Datei wurden erfolgreich importiert.",
|
"BackDevices_DBTools_ImportCSV": "Die Ger\u00e4te aus der CSV-Datei wurden erfolgreich importiert.",
|
||||||
"BackDevices_DBTools_ImportCSVError": "Die CSV-Datei konnte nicht importiert werden. Stellen Sie sicher, dass das Format korrekt ist.",
|
"BackDevices_DBTools_ImportCSVError": "Die CSV-Datei konnte nicht importiert werden. Stellen Sie sicher, dass das Format korrekt ist.",
|
||||||
"BackDevices_DBTools_ImportCSVMissing": "Die CSV-Datei konnte nicht in <b>/config/devices.csv</b> gefunden werden.",
|
"BackDevices_DBTools_ImportCSVMissing": "Die CSV-Datei konnte nicht in <b>/config/devices.csv</b> gefunden werden.",
|
||||||
"BackDevices_DBTools_Purge": "Die ältesten Backups wurden gelöscht.",
|
"BackDevices_DBTools_Purge": "Die \u00e4ltesten Backups wurden gel\u00f6scht.",
|
||||||
"BackDevices_DBTools_UpdDev": "Gerät erfolgreich aktualisiert.",
|
"BackDevices_DBTools_UpdDev": "Ger\u00e4t erfolgreich aktualisiert.",
|
||||||
"BackDevices_DBTools_UpdDevError": "Fehler beim Aktualisieren des Gerätes.",
|
"BackDevices_DBTools_UpdDevError": "Fehler beim Aktualisieren des Ger\u00e4tes.",
|
||||||
"BackDevices_DBTools_Upgrade": "Datenbank erfolgreich aktualisiert.",
|
"BackDevices_DBTools_Upgrade": "Datenbank erfolgreich aktualisiert.",
|
||||||
"BackDevices_DBTools_UpgradeError": "Fehler beim Aktualisieren der Datenbank.",
|
"BackDevices_DBTools_UpgradeError": "Fehler beim Aktualisieren der Datenbank.",
|
||||||
"BackDevices_Device_UpdDevError": "Konnte Geräte nicht aktualisieren, versuchen Sie es später erneut. Die Datenbank ist wahrscheinlich wegen einer laufenden Aufgabe gesperrt.",
|
"BackDevices_Device_UpdDevError": "Konnte Ger\u00e4te nicht aktualisieren, versuchen Sie es sp\u00e4ter erneut. Die Datenbank ist wahrscheinlich wegen einer laufenden Aufgabe gesperrt.",
|
||||||
"BackDevices_Restore_CopError": "Die originale Datenbank konnte nicht kopiert werden.",
|
"BackDevices_Restore_CopError": "Die originale Datenbank konnte nicht kopiert werden.",
|
||||||
"BackDevices_Restore_Failed": "Die Wiederherstellung ist fehlgeschlagen. Stellen Sie das Backup manuell her.",
|
"BackDevices_Restore_Failed": "Die Wiederherstellung ist fehlgeschlagen. Stellen Sie das Backup manuell her.",
|
||||||
"BackDevices_Restore_okay": "Die Wiederherstellung wurde erfolgreich ausgeführt.",
|
"BackDevices_Restore_okay": "Die Wiederherstellung wurde erfolgreich ausgef\u00fchrt.",
|
||||||
"BackDevices_darkmode_disabled": "Heller Modus aktiviert.",
|
"BackDevices_darkmode_disabled": "Heller Modus aktiviert.",
|
||||||
"BackDevices_darkmode_enabled": "Dunkler Modus aktiviert.",
|
"BackDevices_darkmode_enabled": "Dunkler Modus aktiviert.",
|
||||||
"DAYS_TO_KEEP_EVENTS_description": "Dies ist eine Wartungseinstellung. Spezifiziert wie viele Tage Events gespeichert bleiben. Alle älteren Events werden periodisch gelöscht. Wird auch auf die Plugins History angewendet.",
|
"DAYS_TO_KEEP_EVENTS_description": "Dies ist eine Wartungseinstellung. Spezifiziert wie viele Tage Events gespeichert bleiben. Alle \u00e4lteren Events werden periodisch gel\u00f6scht. Wird auch auf die Plugins History angewendet.",
|
||||||
"DAYS_TO_KEEP_EVENTS_name": "Lösche Events älter als",
|
"DAYS_TO_KEEP_EVENTS_name": "L\u00f6sche Events \u00e4lter als",
|
||||||
"DevDetail_Copy_Device_Title": "<i class=\"fa fa-copy\"></i> Details von Gerät kopieren",
|
"DevDetail_Copy_Device_Title": "<i class=\"fa fa-copy\"></i> Details von Ger\u00e4t kopieren",
|
||||||
"DevDetail_Copy_Device_Tooltip": "Copy details from device from the dropdown list. Everything on this page will be overwritten",
|
"DevDetail_Copy_Device_Tooltip": "Copy details from device from the dropdown list. Everything on this page will be overwritten",
|
||||||
"DevDetail_EveandAl_AlertAllEvents": "Melde alle Ereignisse",
|
"DevDetail_EveandAl_AlertAllEvents": "Melde alle Ereignisse",
|
||||||
"DevDetail_EveandAl_AlertDown": "Melde Down",
|
"DevDetail_EveandAl_AlertDown": "Melde Down",
|
||||||
"DevDetail_EveandAl_Archived": "Archivierung",
|
"DevDetail_EveandAl_Archived": "Archivierung",
|
||||||
"DevDetail_EveandAl_NewDevice": "Neues Gerät",
|
"DevDetail_EveandAl_NewDevice": "Neues Ger\u00e4t",
|
||||||
"DevDetail_EveandAl_NewDevice_Tooltip": "",
|
"DevDetail_EveandAl_NewDevice_Tooltip": "",
|
||||||
"DevDetail_EveandAl_RandomMAC": "Zufällige MAC",
|
"DevDetail_EveandAl_RandomMAC": "Zuf\u00e4llige MAC",
|
||||||
"DevDetail_EveandAl_ScanCycle": "Scan Abstand",
|
"DevDetail_EveandAl_ScanCycle": "Scan Abstand",
|
||||||
"DevDetail_EveandAl_ScanCycle_a": "Gerät scannen",
|
"DevDetail_EveandAl_ScanCycle_a": "Ger\u00e4t scannen",
|
||||||
"DevDetail_EveandAl_ScanCycle_z": "Gerät nicht scannen",
|
"DevDetail_EveandAl_ScanCycle_z": "Ger\u00e4t nicht scannen",
|
||||||
"DevDetail_EveandAl_Skip": "pausiere wiederhol. Meldungen für",
|
"DevDetail_EveandAl_Skip": "pausiere wiederhol. Meldungen f\u00fcr",
|
||||||
"DevDetail_EveandAl_Title": "Ereignisse & Alarme einstellen",
|
"DevDetail_EveandAl_Title": "Ereignisse & Alarme einstellen",
|
||||||
"DevDetail_Events_CheckBox": "Blende Verbindungs-Ereignisse aus",
|
"DevDetail_Events_CheckBox": "Blende Verbindungs-Ereignisse aus",
|
||||||
"DevDetail_GoToNetworkNode": "Navigate to the Network page of the given node.",
|
"DevDetail_GoToNetworkNode": "Navigate to the Network page of the given node.",
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
"DevDetail_MainInfo_Network": "Netzwerk Knoten",
|
"DevDetail_MainInfo_Network": "Netzwerk Knoten",
|
||||||
"DevDetail_MainInfo_Network_Port": "Netzwerk Knoten Port",
|
"DevDetail_MainInfo_Network_Port": "Netzwerk Knoten Port",
|
||||||
"DevDetail_MainInfo_Network_Title": "<i class=\"fa fa-network-wired\"></i> Network",
|
"DevDetail_MainInfo_Network_Title": "<i class=\"fa fa-network-wired\"></i> Network",
|
||||||
"DevDetail_MainInfo_Owner": "Eigen­tümer",
|
"DevDetail_MainInfo_Owner": "Eigen­t\u00fcmer",
|
||||||
"DevDetail_MainInfo_Title": "Haupt Infos",
|
"DevDetail_MainInfo_Title": "Haupt Infos",
|
||||||
"DevDetail_MainInfo_Type": "Typ",
|
"DevDetail_MainInfo_Type": "Typ",
|
||||||
"DevDetail_MainInfo_Vendor": "Hersteller",
|
"DevDetail_MainInfo_Vendor": "Hersteller",
|
||||||
@@ -104,31 +104,31 @@
|
|||||||
"DevDetail_Network_Node_hover": "Select the parent network device the current device is connected to to populate the Network tree.",
|
"DevDetail_Network_Node_hover": "Select the parent network device the current device is connected to to populate the Network tree.",
|
||||||
"DevDetail_Network_Port_hover": "The port this device is connected to on the parent network device. If left empty a wifi icon is displayed in the Network tree.",
|
"DevDetail_Network_Port_hover": "The port this device is connected to on the parent network device. If left empty a wifi icon is displayed in the Network tree.",
|
||||||
"DevDetail_Nmap_Scans": "Nmap Scans",
|
"DevDetail_Nmap_Scans": "Nmap Scans",
|
||||||
"DevDetail_Nmap_Scans_desc": "Hier kannst du manuelle NMAP Scans starten. Reguläre automatische NMAP Scans können mit dem Services & Ports (NMAP) Plugin geplant werden. Gehe zu den <a href='/settings.php' target='_blank'>Einstellungen</a> um mehr herauszufinden.",
|
"DevDetail_Nmap_Scans_desc": "Hier kannst du manuelle NMAP Scans starten. Regul\u00e4re automatische NMAP Scans k\u00f6nnen mit dem Services & Ports (NMAP) Plugin geplant werden. Gehe zu den <a href='/settings.php' target='_blank'>Einstellungen</a> um mehr herauszufinden.",
|
||||||
"DevDetail_Nmap_buttonDefault": "Standard Scan",
|
"DevDetail_Nmap_buttonDefault": "Standard Scan",
|
||||||
"DevDetail_Nmap_buttonDefault_text": "Standard Scan: Nmap scannt die ersten 1.000 Ports für jedes angeforderte Scan-Protokoll. Damit werden etwa 93 % der TCP-Ports und 49 % der UDP-Ports erfasst. (ca. 5-10 Sekunden)",
|
"DevDetail_Nmap_buttonDefault_text": "Standard Scan: Nmap scannt die ersten 1.000 Ports f\u00fcr jedes angeforderte Scan-Protokoll. Damit werden etwa 93 % der TCP-Ports und 49 % der UDP-Ports erfasst. (ca. 5-10 Sekunden)",
|
||||||
"DevDetail_Nmap_buttonDetail": "Detailierter Scan",
|
"DevDetail_Nmap_buttonDetail": "Detailierter Scan",
|
||||||
"DevDetail_Nmap_buttonDetail_text": "Detailierter Scan: Standardscan mit aktivierter Betriebssystemerkennung, Versionserkennung, Skript-Scan und Traceroute (bis zu 30 oder mehr Sekunden)",
|
"DevDetail_Nmap_buttonDetail_text": "Detailierter Scan: Standardscan mit aktivierter Betriebssystemerkennung, Versionserkennung, Skript-Scan und Traceroute (bis zu 30 oder mehr Sekunden)",
|
||||||
"DevDetail_Nmap_buttonFast": "Schneller Scan",
|
"DevDetail_Nmap_buttonFast": "Schneller Scan",
|
||||||
"DevDetail_Nmap_buttonFast_text": "Schneller Scan: Überprüft nur die wichtigsten 100 Ports (wenige Sekunden)",
|
"DevDetail_Nmap_buttonFast_text": "Schneller Scan: \u00dcberpr\u00fcft nur die wichtigsten 100 Ports (wenige Sekunden)",
|
||||||
"DevDetail_Nmap_buttonSkipDiscovery": "Ohne Erreichbarkeitsprüfung",
|
"DevDetail_Nmap_buttonSkipDiscovery": "Ohne Erreichbarkeitspr\u00fcfung",
|
||||||
"DevDetail_Nmap_buttonSkipDiscovery_text": "Ohne Erreichbarkeitsprüfung (-Pn Parameter): Standard Scan bei dem nmap annimmt, dass der Host erreichbar ist.",
|
"DevDetail_Nmap_buttonSkipDiscovery_text": "Ohne Erreichbarkeitspr\u00fcfung (-Pn Parameter): Standard Scan bei dem nmap annimmt, dass der Host erreichbar ist.",
|
||||||
"DevDetail_Nmap_resultsLink": "Nachdem ein Scan gestartet wurde, kann diese Seite verlassen werden. Resultate sind auch in der Datei <code>app_front.log</code> verfügbar.",
|
"DevDetail_Nmap_resultsLink": "Nachdem ein Scan gestartet wurde, kann diese Seite verlassen werden. Resultate sind auch in der Datei <code>app_front.log</code> verf\u00fcgbar.",
|
||||||
"DevDetail_Owner_hover": "Der Eigentümer des Gerätes. Freies Textfeld.",
|
"DevDetail_Owner_hover": "Der Eigent\u00fcmer des Ger\u00e4tes. Freies Textfeld.",
|
||||||
"DevDetail_Periodselect_All": "Alle Infos",
|
"DevDetail_Periodselect_All": "Alle Infos",
|
||||||
"DevDetail_Periodselect_LastMonth": "Letzter Monat",
|
"DevDetail_Periodselect_LastMonth": "Letzter Monat",
|
||||||
"DevDetail_Periodselect_LastWeek": "Letzte Woche",
|
"DevDetail_Periodselect_LastWeek": "Letzte Woche",
|
||||||
"DevDetail_Periodselect_LastYear": "Letztes Jahr",
|
"DevDetail_Periodselect_LastYear": "Letztes Jahr",
|
||||||
"DevDetail_Periodselect_today": "Heute",
|
"DevDetail_Periodselect_today": "Heute",
|
||||||
"DevDetail_Run_Actions_Title": "<i class=\"fa fa-play\"></i> Aktion auf Gerät ausführen",
|
"DevDetail_Run_Actions_Title": "<i class=\"fa fa-play\"></i> Aktion auf Ger\u00e4t ausf\u00fchren",
|
||||||
"DevDetail_Run_Actions_Tooltip": "Eine Aktion aus der Dropdown-Liste auf dem aktuellen Gerät ausführen.",
|
"DevDetail_Run_Actions_Tooltip": "Eine Aktion aus der Dropdown-Liste auf dem aktuellen Ger\u00e4t ausf\u00fchren.",
|
||||||
"DevDetail_SessionInfo_FirstSession": "Erste Sitzung",
|
"DevDetail_SessionInfo_FirstSession": "Erste Sitzung",
|
||||||
"DevDetail_SessionInfo_LastIP": "Letzte IP",
|
"DevDetail_SessionInfo_LastIP": "Letzte IP",
|
||||||
"DevDetail_SessionInfo_LastSession": "Letzte Sitzung",
|
"DevDetail_SessionInfo_LastSession": "Letzte Sitzung",
|
||||||
"DevDetail_SessionInfo_StaticIP": "Statische IP",
|
"DevDetail_SessionInfo_StaticIP": "Statische IP",
|
||||||
"DevDetail_SessionInfo_Status": "Status",
|
"DevDetail_SessionInfo_Status": "Status",
|
||||||
"DevDetail_SessionInfo_Title": "Sitzungsinfos",
|
"DevDetail_SessionInfo_Title": "Sitzungsinfos",
|
||||||
"DevDetail_SessionTable_Additionalinfo": "Zusätzliche Info",
|
"DevDetail_SessionTable_Additionalinfo": "Zus\u00e4tzliche Info",
|
||||||
"DevDetail_SessionTable_Connection": "Verbindung",
|
"DevDetail_SessionTable_Connection": "Verbindung",
|
||||||
"DevDetail_SessionTable_Disconnection": "Trennung",
|
"DevDetail_SessionTable_Disconnection": "Trennung",
|
||||||
"DevDetail_SessionTable_Duration": "Dauer",
|
"DevDetail_SessionTable_Duration": "Dauer",
|
||||||
@@ -143,48 +143,48 @@
|
|||||||
"DevDetail_Tab_EventsTableDate": "Datum",
|
"DevDetail_Tab_EventsTableDate": "Datum",
|
||||||
"DevDetail_Tab_EventsTableEvent": "Ereignistype",
|
"DevDetail_Tab_EventsTableEvent": "Ereignistype",
|
||||||
"DevDetail_Tab_EventsTableIP": "IP",
|
"DevDetail_Tab_EventsTableIP": "IP",
|
||||||
"DevDetail_Tab_EventsTableInfo": "Zusätzliche Informationen",
|
"DevDetail_Tab_EventsTableInfo": "Zus\u00e4tzliche Informationen",
|
||||||
"DevDetail_Tab_Nmap": "Nmap",
|
"DevDetail_Tab_Nmap": "Nmap",
|
||||||
"DevDetail_Tab_NmapEmpty": "An diesem Gerät wurden keine offenen Ports mit Nmap gefunden.",
|
"DevDetail_Tab_NmapEmpty": "An diesem Ger\u00e4t wurden keine offenen Ports mit Nmap gefunden.",
|
||||||
"DevDetail_Tab_NmapTableExtra": "Extra",
|
"DevDetail_Tab_NmapTableExtra": "Extra",
|
||||||
"DevDetail_Tab_NmapTableHeader": "Ergebnisse geplanter Scans",
|
"DevDetail_Tab_NmapTableHeader": "Ergebnisse geplanter Scans",
|
||||||
"DevDetail_Tab_NmapTableIndex": "Index",
|
"DevDetail_Tab_NmapTableIndex": "Index",
|
||||||
"DevDetail_Tab_NmapTablePort": "Port",
|
"DevDetail_Tab_NmapTablePort": "Port",
|
||||||
"DevDetail_Tab_NmapTableService": "Dienst",
|
"DevDetail_Tab_NmapTableService": "Dienst",
|
||||||
"DevDetail_Tab_NmapTableState": "Status",
|
"DevDetail_Tab_NmapTableState": "Status",
|
||||||
"DevDetail_Tab_NmapTableText": "Erstelle einen Plan über die<a href=\"/settings.php#NMAP_ACTIVE\">Einstellungen</a>",
|
"DevDetail_Tab_NmapTableText": "Erstelle einen Plan \u00fcber die<a href=\"/settings.php#NMAP_ACTIVE\">Einstellungen</a>",
|
||||||
"DevDetail_Tab_NmapTableTime": "Zeit",
|
"DevDetail_Tab_NmapTableTime": "Zeit",
|
||||||
"DevDetail_Tab_Plugins": "<i class=\"fa fa-plug\"></i> Plugins",
|
"DevDetail_Tab_Plugins": "<i class=\"fa fa-plug\"></i> Plugins",
|
||||||
"DevDetail_Tab_Presence": "Anwesenheit",
|
"DevDetail_Tab_Presence": "Anwesenheit",
|
||||||
"DevDetail_Tab_Sessions": "Sitzungen",
|
"DevDetail_Tab_Sessions": "Sitzungen",
|
||||||
"DevDetail_Tab_Tools": "<i class=\"fa fa-screwdriver-wrench\"></i> Tools",
|
"DevDetail_Tab_Tools": "<i class=\"fa fa-screwdriver-wrench\"></i> Tools",
|
||||||
"DevDetail_Tab_Tools_Internet_Info_Description": "Das Internet-Info-Tool zeigt Informationen über die Internetverbindung an, wie z. B. IP-Adresse, Stadt, Land, Ortsvorwahl und Zeitzone.",
|
"DevDetail_Tab_Tools_Internet_Info_Description": "Das Internet-Info-Tool zeigt Informationen \u00fcber die Internetverbindung an, wie z. B. IP-Adresse, Stadt, Land, Ortsvorwahl und Zeitzone.",
|
||||||
"DevDetail_Tab_Tools_Internet_Info_Error": "Es ist ein Fehler aufgetreten",
|
"DevDetail_Tab_Tools_Internet_Info_Error": "Es ist ein Fehler aufgetreten",
|
||||||
"DevDetail_Tab_Tools_Internet_Info_Start": "Internet-Info starten",
|
"DevDetail_Tab_Tools_Internet_Info_Start": "Internet-Info starten",
|
||||||
"DevDetail_Tab_Tools_Internet_Info_Title": "Internetinformationen",
|
"DevDetail_Tab_Tools_Internet_Info_Title": "Internetinformationen",
|
||||||
"DevDetail_Tab_Tools_Nslookup_Description": "Nslookup ist ein Befehlszeilentool zur Abfrage des Domain Name System (DNS). DNS ist ein System, das Domainnamen wie www.google.com in IP-Adressen wie 172.217.0.142 übersetzt. ",
|
"DevDetail_Tab_Tools_Nslookup_Description": "Nslookup ist ein Befehlszeilentool zur Abfrage des Domain Name System (DNS). DNS ist ein System, das Domainnamen wie www.google.com in IP-Adressen wie 172.217.0.142 \u00fcbersetzt. ",
|
||||||
"DevDetail_Tab_Tools_Nslookup_Error": "Fehler: IP-Adresse ist ungültig",
|
"DevDetail_Tab_Tools_Nslookup_Error": "Fehler: IP-Adresse ist ung\u00fcltig",
|
||||||
"DevDetail_Tab_Tools_Nslookup_Start": "Nslookup starten",
|
"DevDetail_Tab_Tools_Nslookup_Start": "Nslookup starten",
|
||||||
"DevDetail_Tab_Tools_Nslookup_Title": "Nslookup",
|
"DevDetail_Tab_Tools_Nslookup_Title": "Nslookup",
|
||||||
"DevDetail_Tab_Tools_Speedtest_Description": "Das Speedtest-Tool misst die Download-Geschwindigkeit, Upload-Geschwindigkeit und Latenz der Internetverbindung.",
|
"DevDetail_Tab_Tools_Speedtest_Description": "Das Speedtest-Tool misst die Download-Geschwindigkeit, Upload-Geschwindigkeit und Latenz der Internetverbindung.",
|
||||||
"DevDetail_Tab_Tools_Speedtest_Start": "Speedtest starten",
|
"DevDetail_Tab_Tools_Speedtest_Start": "Speedtest starten",
|
||||||
"DevDetail_Tab_Tools_Speedtest_Title": "Speedtest test",
|
"DevDetail_Tab_Tools_Speedtest_Title": "Speedtest test",
|
||||||
"DevDetail_Tab_Tools_Traceroute_Description": "Traceroute ist ein Netzwerkdiagnosebefehl, mit dem der Pfad verfolgt wird, den Datenpakete von einem Host zu einem anderen nehmen.<br><br>Der Befehl verwendet das Internet Control Message Protocol (ICMP), um Pakete an Zwischenknoten auf der Route zu senden, jeden Zwischenknoten Der Knoten antwortet mit einem ICMP-Timeout-Paket (TTL-Zeitüberschreitung).<br><br>Die Ausgabe des Traceroute-Befehls zeigt die IP-Adresse jedes Zwischenknotens auf der Route an.<br><br>Die Ausgabe der Traceroute Der Befehl zeigt die IP-Adresse jedes Zwischenknotens auf der Route an.<br><br>Der Befehl „traceroute“ kann zur Diagnose von Netzwerkproblemen wie Verzögerungen, Paketverlust und blockierten Routen verwendet werden.<br><br>Das ist auch möglich kann verwendet werden, um den Standort eines Zwischenknotens in einem Netzwerk zu identifizieren.",
|
"DevDetail_Tab_Tools_Traceroute_Description": "Traceroute ist ein Netzwerkdiagnosebefehl, mit dem der Pfad verfolgt wird, den Datenpakete von einem Host zu einem anderen nehmen.<br><br>Der Befehl verwendet das Internet Control Message Protocol (ICMP), um Pakete an Zwischenknoten auf der Route zu senden, jeden Zwischenknoten Der Knoten antwortet mit einem ICMP-Timeout-Paket (TTL-Zeit\u00fcberschreitung).<br><br>Die Ausgabe des Traceroute-Befehls zeigt die IP-Adresse jedes Zwischenknotens auf der Route an.<br><br>Die Ausgabe der Traceroute Der Befehl zeigt die IP-Adresse jedes Zwischenknotens auf der Route an.<br><br>Der Befehl \u201etraceroute\u201c kann zur Diagnose von Netzwerkproblemen wie Verz\u00f6gerungen, Paketverlust und blockierten Routen verwendet werden.<br><br>Das ist auch m\u00f6glich kann verwendet werden, um den Standort eines Zwischenknotens in einem Netzwerk zu identifizieren.",
|
||||||
"DevDetail_Tab_Tools_Traceroute_Error": "Fehler: IP-Adresse ist ungültig",
|
"DevDetail_Tab_Tools_Traceroute_Error": "Fehler: IP-Adresse ist ung\u00fcltig",
|
||||||
"DevDetail_Tab_Tools_Traceroute_Start": "Traceroute starten",
|
"DevDetail_Tab_Tools_Traceroute_Start": "Traceroute starten",
|
||||||
"DevDetail_Tab_Tools_Traceroute_Title": "Traceroute",
|
"DevDetail_Tab_Tools_Traceroute_Title": "Traceroute",
|
||||||
"DevDetail_Tools_WOL": "Sende Wol Befehl an ",
|
"DevDetail_Tools_WOL": "Sende Wol Befehl an ",
|
||||||
"DevDetail_Tools_WOL_noti": "Wake-on-LAN",
|
"DevDetail_Tools_WOL_noti": "Wake-on-LAN",
|
||||||
"DevDetail_Tools_WOL_noti_text": "Der Wake-on-LAN Befehl wurde and die Broadcast Adresse gesendet. Wenn sich das zu startende Gerät nicht im gleichen Subnet / VLan wie NetAlertX befindet, wird das Gerät nicht reagieren.",
|
"DevDetail_Tools_WOL_noti_text": "Der Wake-on-LAN Befehl wurde and die Broadcast Adresse gesendet. Wenn sich das zu startende Ger\u00e4t nicht im gleichen Subnet / VLan wie NetAlertX befindet, wird das Ger\u00e4t nicht reagieren.",
|
||||||
"DevDetail_Type_hover": "Der Type des Gerätes. If you select any of the pre-defined network devices (e.g.: AP, Firewall, Router, Switch...) they will show up in the Network tree configuration as possible parent network nodes.",
|
"DevDetail_Type_hover": "Der Type des Ger\u00e4tes. If you select any of the pre-defined network devices (e.g.: AP, Firewall, Router, Switch...) they will show up in the Network tree configuration as possible parent network nodes.",
|
||||||
"DevDetail_Vendor_hover": "Vendor should be auto-detected. You can overwrite or add your custom value.",
|
"DevDetail_Vendor_hover": "Vendor should be auto-detected. You can overwrite or add your custom value.",
|
||||||
"DevDetail_WOL_Title": "<i class=\"fa fa-power-off\"></i> Wake-on-LAN",
|
"DevDetail_WOL_Title": "<i class=\"fa fa-power-off\"></i> Wake-on-LAN",
|
||||||
"DevDetail_button_AddIcon": "Neues Symbol Hinzufügen",
|
"DevDetail_button_AddIcon": "Neues Symbol Hinzuf\u00fcgen",
|
||||||
"DevDetail_button_AddIcon_Help": "Füge ein HTML SVG Tag oder Font Awesome HTML Tag ein. Siehe <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\">Icon Dokumentation</a> für details.",
|
"DevDetail_button_AddIcon_Help": "F\u00fcge ein HTML SVG Tag oder Font Awesome HTML Tag ein. Siehe <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\">Icon Dokumentation</a> f\u00fcr details.",
|
||||||
"DevDetail_button_AddIcon_Tooltip": "Neues Icon zu diesem Gerät hinzufügen, welches es noch nicht im dropdown gibt.",
|
"DevDetail_button_AddIcon_Tooltip": "Neues Icon zu diesem Ger\u00e4t hinzuf\u00fcgen, welches es noch nicht im dropdown gibt.",
|
||||||
"DevDetail_button_Delete": "Lösche Gerät",
|
"DevDetail_button_Delete": "L\u00f6sche Ger\u00e4t",
|
||||||
"DevDetail_button_DeleteEvents": "Lösche Events",
|
"DevDetail_button_DeleteEvents": "L\u00f6sche Events",
|
||||||
"DevDetail_button_DeleteEvents_Warning": "Sind Sie sicher, dass Sie alle Ereignisse dieses Geräts löschen möchten? (dies löscht den Ereignisverlauf und die Sitzungen und könnte bei ständigen (anhaltenden) Benachrichtigungen helfen)",
|
"DevDetail_button_DeleteEvents_Warning": "Sind Sie sicher, dass Sie alle Ereignisse dieses Ger\u00e4ts l\u00f6schen m\u00f6chten? (dies l\u00f6scht den Ereignisverlauf und die Sitzungen und k\u00f6nnte bei st\u00e4ndigen (anhaltenden) Benachrichtigungen helfen)",
|
||||||
"DevDetail_button_OverwriteIcons": "Overwrite Icons",
|
"DevDetail_button_OverwriteIcons": "Overwrite Icons",
|
||||||
"DevDetail_button_OverwriteIcons_Tooltip": "Overwrite icons of all devices with the same device type",
|
"DevDetail_button_OverwriteIcons_Tooltip": "Overwrite icons of all devices with the same device type",
|
||||||
"DevDetail_button_OverwriteIcons_Warning": "Are you sure you want to overwrite all icons of all devices with the same device type as the current device type?",
|
"DevDetail_button_OverwriteIcons_Warning": "Are you sure you want to overwrite all icons of all devices with the same device type as the current device type?",
|
||||||
@@ -196,16 +196,16 @@
|
|||||||
"Device_MultiEdit_MassActions": "Massen aktionen:",
|
"Device_MultiEdit_MassActions": "Massen aktionen:",
|
||||||
"Device_MultiEdit_Tooltip": "",
|
"Device_MultiEdit_Tooltip": "",
|
||||||
"Device_Searchbox": "Suche",
|
"Device_Searchbox": "Suche",
|
||||||
"Device_Shortcut_AllDevices": "Meine Geräte",
|
"Device_Shortcut_AllDevices": "Meine Ger\u00e4te",
|
||||||
"Device_Shortcut_Archived": "Archiviert",
|
"Device_Shortcut_Archived": "Archiviert",
|
||||||
"Device_Shortcut_Connected": "Verbunden",
|
"Device_Shortcut_Connected": "Verbunden",
|
||||||
"Device_Shortcut_Devices": "Geräte",
|
"Device_Shortcut_Devices": "Ger\u00e4te",
|
||||||
"Device_Shortcut_DownAlerts": "Offline & Nicht erreichbar",
|
"Device_Shortcut_DownAlerts": "Offline & Nicht erreichbar",
|
||||||
"Device_Shortcut_DownOnly": "Offline",
|
"Device_Shortcut_DownOnly": "Offline",
|
||||||
"Device_Shortcut_Favorites": "Favoriten",
|
"Device_Shortcut_Favorites": "Favoriten",
|
||||||
"Device_Shortcut_NewDevices": "Neue Geräte",
|
"Device_Shortcut_NewDevices": "Neue Ger\u00e4te",
|
||||||
"Device_Shortcut_OnlineChart": "Gerätepräsenz im Laufe der Zeit",
|
"Device_Shortcut_OnlineChart": "Ger\u00e4tepr\u00e4senz im Laufe der Zeit",
|
||||||
"Device_TableHead_Connected_Devices": "Verbundene Geräte",
|
"Device_TableHead_Connected_Devices": "Verbundene Ger\u00e4te",
|
||||||
"Device_TableHead_Favorite": "Favorit",
|
"Device_TableHead_Favorite": "Favorit",
|
||||||
"Device_TableHead_FirstSession": "Erste Sitzung",
|
"Device_TableHead_FirstSession": "Erste Sitzung",
|
||||||
"Device_TableHead_Group": "Gruppe",
|
"Device_TableHead_Group": "Gruppe",
|
||||||
@@ -217,24 +217,24 @@
|
|||||||
"Device_TableHead_MAC": "MAC",
|
"Device_TableHead_MAC": "MAC",
|
||||||
"Device_TableHead_MAC_full": "Gesamte MAC",
|
"Device_TableHead_MAC_full": "Gesamte MAC",
|
||||||
"Device_TableHead_Name": "Name",
|
"Device_TableHead_Name": "Name",
|
||||||
"Device_TableHead_Owner": "Eigentümer",
|
"Device_TableHead_Owner": "Eigent\u00fcmer",
|
||||||
"Device_TableHead_Parent_MAC": "Übergeordnete MAC",
|
"Device_TableHead_Parent_MAC": "\u00dcbergeordnete MAC",
|
||||||
"Device_TableHead_Port": "Port",
|
"Device_TableHead_Port": "Port",
|
||||||
"Device_TableHead_RowID": "Zeilen ID",
|
"Device_TableHead_RowID": "Zeilen ID",
|
||||||
"Device_TableHead_Rowid": "Zeilennummer",
|
"Device_TableHead_Rowid": "Zeilennummer",
|
||||||
"Device_TableHead_Status": "Status",
|
"Device_TableHead_Status": "Status",
|
||||||
"Device_TableHead_Type": "Typ",
|
"Device_TableHead_Type": "Typ",
|
||||||
"Device_TableHead_Vendor": "Hersteller",
|
"Device_TableHead_Vendor": "Hersteller",
|
||||||
"Device_Table_Not_Network_Device": "Nicht konfiguriert als Netzwerkgerät",
|
"Device_Table_Not_Network_Device": "Nicht konfiguriert als Netzwerkger\u00e4t",
|
||||||
"Device_Table_info": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
|
"Device_Table_info": "Zeige _START_ bis _END_ von _TOTAL_ Eintr\u00e4gen",
|
||||||
"Device_Table_nav_next": "Nächste",
|
"Device_Table_nav_next": "N\u00e4chste",
|
||||||
"Device_Table_nav_prev": "Zurück",
|
"Device_Table_nav_prev": "Zur\u00fcck",
|
||||||
"Device_Tablelenght": "Zeige _MENU_ Einträge",
|
"Device_Tablelenght": "Zeige _MENU_ Eintr\u00e4ge",
|
||||||
"Device_Tablelenght_all": "Alle",
|
"Device_Tablelenght_all": "Alle",
|
||||||
"Device_Title": "Geräte",
|
"Device_Title": "Ger\u00e4te",
|
||||||
"Donations_Others": "Others",
|
"Donations_Others": "Others",
|
||||||
"Donations_Platforms": "Sponsor platforms",
|
"Donations_Platforms": "Sponsor platforms",
|
||||||
"Donations_Text": "Hey 👋! </br> Thanks for clicking on this menu item 😅 </br> </br> I'm trying to collect some donations to make you better software. Also, it would help me not to get burned out. Me burning out might mean end of support for this app. Any small (recurring or not) sponsorship makes me want ot put more effort into this app. I don't want to lock features (new plugins) behind paywalls 🔐. </br> Currently, I'm waking up 2h before work so I contribute to the app a bit. If I had some recurring income I could shorten my workweek and in the remaining time fully focus on NetAlertX. You'd get more functionality, a more polished app and less bugs. </br> </br> Thanks for reading - I'm super grateful for any support ❤🙏 </br> </br> TL;DR: By supporting me you get: </br> </br> <ul><li>Regular updates to keep your data and family safe 🔄</li><li>Less bugs 🐛🔫</li><li>Better and more functionality➕</li><li>I don't get burned out 🔥🤯</li><li>Less rushed releases 💨</li><li>Better docs📚</li><li>Quicker and better support with issues 🆘</li><li>Less grumpy me 😄</li></ul> </br> 📧Email me to <a href='mailto:jokob@duck.com?subject=NetAlertX'>jokob@duck.com</a> if you want to get in touch or if I should add other sponsorship platforms. </br>",
|
"Donations_Text": "Hey \ud83d\udc4b! </br> Thanks for clicking on this menu item \ud83d\ude05 </br> </br> I'm trying to collect some donations to make you better software. Also, it would help me not to get burned out. Me burning out might mean end of support for this app. Any small (recurring or not) sponsorship makes me want ot put more effort into this app. I don't want to lock features (new plugins) behind paywalls \ud83d\udd10. </br> Currently, I'm waking up 2h before work so I contribute to the app a bit. If I had some recurring income I could shorten my workweek and in the remaining time fully focus on NetAlertX. You'd get more functionality, a more polished app and less bugs. </br> </br> Thanks for reading - I'm super grateful for any support \u2764\ud83d\ude4f </br> </br> TL;DR: By supporting me you get: </br> </br> <ul><li>Regular updates to keep your data and family safe \ud83d\udd04</li><li>Less bugs \ud83d\udc1b\ud83d\udd2b</li><li>Better and more functionality\u2795</li><li>I don't get burned out \ud83d\udd25\ud83e\udd2f</li><li>Less rushed releases \ud83d\udca8</li><li>Better docs\ud83d\udcda</li><li>Quicker and better support with issues \ud83c\udd98</li><li>Less grumpy me \ud83d\ude04</li></ul> </br> \ud83d\udce7Email me to <a href='mailto:jokob@duck.com?subject=NetAlertX'>jokob@duck.com</a> if you want to get in touch or if I should add other sponsorship platforms. </br>",
|
||||||
"Donations_Title": "Donations",
|
"Donations_Title": "Donations",
|
||||||
"ENABLE_PLUGINS_description": "NOTUSED Enables the <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/front/plugins\">plugins</a> functionality. Loading plugins requires more hardware resources so you might want to disable them on low-powered system.",
|
"ENABLE_PLUGINS_description": "NOTUSED Enables the <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/front/plugins\">plugins</a> functionality. Loading plugins requires more hardware resources so you might want to disable them on low-powered system.",
|
||||||
"ENABLE_PLUGINS_name": "NOTUSED Enable Plugins",
|
"ENABLE_PLUGINS_name": "NOTUSED Enable Plugins",
|
||||||
@@ -251,13 +251,13 @@
|
|||||||
"Events_Shortcut_DownAlerts": "Down Meldungen",
|
"Events_Shortcut_DownAlerts": "Down Meldungen",
|
||||||
"Events_Shortcut_Events": "Ereignisse",
|
"Events_Shortcut_Events": "Ereignisse",
|
||||||
"Events_Shortcut_MissSessions": "fehlende Sitzungen",
|
"Events_Shortcut_MissSessions": "fehlende Sitzungen",
|
||||||
"Events_Shortcut_NewDevices": "Neue Geräte",
|
"Events_Shortcut_NewDevices": "Neue Ger\u00e4te",
|
||||||
"Events_Shortcut_Sessions": "Sitzungen",
|
"Events_Shortcut_Sessions": "Sitzungen",
|
||||||
"Events_Shortcut_VoidSessions": "beendete Sitzungen",
|
"Events_Shortcut_VoidSessions": "beendete Sitzungen",
|
||||||
"Events_TableHead_AdditionalInfo": "Zusätzliche Info",
|
"Events_TableHead_AdditionalInfo": "Zus\u00e4tzliche Info",
|
||||||
"Events_TableHead_Connection": "Verbindung",
|
"Events_TableHead_Connection": "Verbindung",
|
||||||
"Events_TableHead_Date": "Datum",
|
"Events_TableHead_Date": "Datum",
|
||||||
"Events_TableHead_Device": "Gerät",
|
"Events_TableHead_Device": "Ger\u00e4t",
|
||||||
"Events_TableHead_Disconnection": "Trennung",
|
"Events_TableHead_Disconnection": "Trennung",
|
||||||
"Events_TableHead_Duration": "Dauer",
|
"Events_TableHead_Duration": "Dauer",
|
||||||
"Events_TableHead_DurationOrder": "Duration Order",
|
"Events_TableHead_DurationOrder": "Duration Order",
|
||||||
@@ -265,12 +265,12 @@
|
|||||||
"Events_TableHead_IP": "IP",
|
"Events_TableHead_IP": "IP",
|
||||||
"Events_TableHead_IPOrder": "IP Order",
|
"Events_TableHead_IPOrder": "IP Order",
|
||||||
"Events_TableHead_Order": "Order",
|
"Events_TableHead_Order": "Order",
|
||||||
"Events_TableHead_Owner": "Eigentümer",
|
"Events_TableHead_Owner": "Eigent\u00fcmer",
|
||||||
"Events_TableHead_PendingAlert": "",
|
"Events_TableHead_PendingAlert": "",
|
||||||
"Events_Table_info": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
|
"Events_Table_info": "Zeige _START_ bis _END_ von _TOTAL_ Eintr\u00e4gen",
|
||||||
"Events_Table_nav_next": "Nächste",
|
"Events_Table_nav_next": "N\u00e4chste",
|
||||||
"Events_Table_nav_prev": "Zurück",
|
"Events_Table_nav_prev": "Zur\u00fcck",
|
||||||
"Events_Tablelenght": "Zeige _MENU_ Einträge",
|
"Events_Tablelenght": "Zeige _MENU_ Eintr\u00e4ge",
|
||||||
"Events_Tablelenght_all": "Alle",
|
"Events_Tablelenght_all": "Alle",
|
||||||
"Events_Title": "Ereignisse",
|
"Events_Title": "Ereignisse",
|
||||||
"Gen_Action": "Action",
|
"Gen_Action": "Action",
|
||||||
@@ -281,14 +281,14 @@
|
|||||||
"Gen_Cancel": "Abbrechen",
|
"Gen_Cancel": "Abbrechen",
|
||||||
"Gen_Copy": "Run",
|
"Gen_Copy": "Run",
|
||||||
"Gen_DataUpdatedUITakesTime": "OK - It may take a while for the UI to update if a scan is runnig",
|
"Gen_DataUpdatedUITakesTime": "OK - It may take a while for the UI to update if a scan is runnig",
|
||||||
"Gen_Delete": "Löschen",
|
"Gen_Delete": "L\u00f6schen",
|
||||||
"Gen_DeleteAll": "Delete all",
|
"Gen_DeleteAll": "Delete all",
|
||||||
"Gen_Error": "Fehler",
|
"Gen_Error": "Fehler",
|
||||||
"Gen_Filter": "",
|
"Gen_Filter": "",
|
||||||
"Gen_LockedDB": "ERROR - DB eventuell gesperrt - Nutze die Konsole in den Entwickler Werkzeugen (F12) zur Überprüfung oder probiere es später erneut.",
|
"Gen_LockedDB": "ERROR - DB eventuell gesperrt - Nutze die Konsole in den Entwickler Werkzeugen (F12) zur \u00dcberpr\u00fcfung oder probiere es sp\u00e4ter erneut.",
|
||||||
"Gen_Offline": "",
|
"Gen_Offline": "",
|
||||||
"Gen_Okay": "Ok",
|
"Gen_Okay": "Ok",
|
||||||
"Gen_Purge": "Aufräumen",
|
"Gen_Purge": "Aufr\u00e4umen",
|
||||||
"Gen_ReadDocs": "Mehr in der Dokumentation",
|
"Gen_ReadDocs": "Mehr in der Dokumentation",
|
||||||
"Gen_Remove_All": "",
|
"Gen_Remove_All": "",
|
||||||
"Gen_Remove_Last": "",
|
"Gen_Remove_Last": "",
|
||||||
@@ -297,7 +297,7 @@
|
|||||||
"Gen_Save": "Speichern",
|
"Gen_Save": "Speichern",
|
||||||
"Gen_Saved": "Gespeichert",
|
"Gen_Saved": "Gespeichert",
|
||||||
"Gen_Search": "",
|
"Gen_Search": "",
|
||||||
"Gen_Selected_Devices": "Ausgewählte Geräte:",
|
"Gen_Selected_Devices": "Ausgew\u00e4hlte Ger\u00e4te:",
|
||||||
"Gen_Switch": "Umschalten",
|
"Gen_Switch": "Umschalten",
|
||||||
"Gen_Upd": "Aktualisierung erfolgreich",
|
"Gen_Upd": "Aktualisierung erfolgreich",
|
||||||
"Gen_Upd_Fail": "Aktualisierung fehlgeschlagen",
|
"Gen_Upd_Fail": "Aktualisierung fehlgeschlagen",
|
||||||
@@ -307,47 +307,47 @@
|
|||||||
"Gen_Work_In_Progress": "Keine Finalversion, feedback bitte unter: https://github.com/jokob-sk/NetAlertX/issues",
|
"Gen_Work_In_Progress": "Keine Finalversion, feedback bitte unter: https://github.com/jokob-sk/NetAlertX/issues",
|
||||||
"General_display_name": "Allgemein",
|
"General_display_name": "Allgemein",
|
||||||
"General_icon": "<i class=\"fa fa-gears\"></i>",
|
"General_icon": "<i class=\"fa fa-gears\"></i>",
|
||||||
"HRS_TO_KEEP_NEWDEV_description": "Dies ist eine Wartungseinstellung. Geräte markiert als <b>Neues Gerät</b> werden gelöscht, wenn ihre <b>Erste Sitzung</b> länger her ist als die angegebenen Stunden in dieser Einstellung. <code>0</code> deaktiviert diese Funktion. Nutzen Sie diese Einstellung, um <b>Neue Geräte</b> automatisch nach <code>X</code> Stunden zu löschen.",
|
"HRS_TO_KEEP_NEWDEV_description": "Dies ist eine Wartungseinstellung. Ger\u00e4te markiert als <b>Neues Ger\u00e4t</b> werden gel\u00f6scht, wenn ihre <b>Erste Sitzung</b> l\u00e4nger her ist als die angegebenen Stunden in dieser Einstellung. <code>0</code> deaktiviert diese Funktion. Nutzen Sie diese Einstellung, um <b>Neue Ger\u00e4te</b> automatisch nach <code>X</code> Stunden zu l\u00f6schen.",
|
||||||
"HRS_TO_KEEP_NEWDEV_name": "Neue Geräte speichern für",
|
"HRS_TO_KEEP_NEWDEV_name": "Neue Ger\u00e4te speichern f\u00fcr",
|
||||||
"HelpFAQ_Cat_Detail": "Detailansicht",
|
"HelpFAQ_Cat_Detail": "Detailansicht",
|
||||||
"HelpFAQ_Cat_Detail_300_head": "Was bedeutet ",
|
"HelpFAQ_Cat_Detail_300_head": "Was bedeutet ",
|
||||||
"HelpFAQ_Cat_Detail_300_text_a": "meint ein Netzwerkgerät (welches den typ AP, Gateway, Firewall, Hypervisor, Powerline, Switch, WLAN, PLC, Router,USB LAN Adapter, USB WIFI Adapter, or Internet eingestellt hat)",
|
"HelpFAQ_Cat_Detail_300_text_a": "meint ein Netzwerkger\u00e4t (welches den typ AP, Gateway, Firewall, Hypervisor, Powerline, Switch, WLAN, PLC, Router,USB LAN Adapter, USB WIFI Adapter, or Internet eingestellt hat)",
|
||||||
"HelpFAQ_Cat_Detail_300_text_b": "bezeichnet die Anschlussnummer/Portnummer, an der das gerade bearbeitete Gerät mit diesem Netzwerkgerät verbunden ist. Siehe <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\">diese Dokumentation</a> für mehr informationen.",
|
"HelpFAQ_Cat_Detail_300_text_b": "bezeichnet die Anschlussnummer/Portnummer, an der das gerade bearbeitete Ger\u00e4t mit diesem Netzwerkger\u00e4t verbunden ist. Siehe <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\">diese Dokumentation</a> f\u00fcr mehr informationen.",
|
||||||
"HelpFAQ_Cat_Detail_301_head_a": "Wann wird nun gescannt? Bei ",
|
"HelpFAQ_Cat_Detail_301_head_a": "Wann wird nun gescannt? Bei ",
|
||||||
"HelpFAQ_Cat_Detail_301_head_b": " steht 1min aber der Graph zeigt 5min - Abstände an.",
|
"HelpFAQ_Cat_Detail_301_head_b": " steht 1min aber der Graph zeigt 5min - Abst\u00e4nde an.",
|
||||||
"HelpFAQ_Cat_Detail_301_text": "Den zeitlichen Abstand zwischen den Scans legt der \"Cronjob\" fest, welcher standardmäßig auf 5min eingestellt ist. Die Benennung \"1min\" bezieht sich auf die zu erwartende Dauer des Scans. Abhängig vor der Netzwerkkonfiguration kann diese Zeitangabe variieren. Um den Cronjob zu bearbeiten, kannst du im Terminal/der Konsole <span class=\"text-danger help_faq_code\">crontab -e</span> eingeben und den Intervall ändern.",
|
"HelpFAQ_Cat_Detail_301_text": "Den zeitlichen Abstand zwischen den Scans legt der \"Cronjob\" fest, welcher standardm\u00e4\u00dfig auf 5min eingestellt ist. Die Benennung \"1min\" bezieht sich auf die zu erwartende Dauer des Scans. Abh\u00e4ngig vor der Netzwerkkonfiguration kann diese Zeitangabe variieren. Um den Cronjob zu bearbeiten, kannst du im Terminal/der Konsole <span class=\"text-danger help_faq_code\">crontab -e</span> eingeben und den Intervall \u00e4ndern.",
|
||||||
"HelpFAQ_Cat_Detail_302_head_a": "Was bedeutet ",
|
"HelpFAQ_Cat_Detail_302_head_a": "Was bedeutet ",
|
||||||
"HelpFAQ_Cat_Detail_302_head_b": " und warum kann ich das nicht auswählen?",
|
"HelpFAQ_Cat_Detail_302_head_b": " und warum kann ich das nicht ausw\u00e4hlen?",
|
||||||
"HelpFAQ_Cat_Detail_302_text": "Einige moderne Geräte generieren aus Datenschutzgründen zufällige MAC-Adressen, die keinem Hersteller mehr zugeordnet werden können und welche sich mit jeder neuen Verbindung ändern. NetAlertX erkennt, ob es sich um eine solche zufällige MAC-Adresse handelt und aktiviert dieses \"Feld\" automatisch. Um das Verhalten abzustellen, musst du in deinem Endgerät schauen, wie du die MAC-Adressen-Generierung deaktivierst.",
|
"HelpFAQ_Cat_Detail_302_text": "Einige moderne Ger\u00e4te generieren aus Datenschutzgr\u00fcnden zuf\u00e4llige MAC-Adressen, die keinem Hersteller mehr zugeordnet werden k\u00f6nnen und welche sich mit jeder neuen Verbindung \u00e4ndern. NetAlertX erkennt, ob es sich um eine solche zuf\u00e4llige MAC-Adresse handelt und aktiviert dieses \"Feld\" automatisch. Um das Verhalten abzustellen, musst du in deinem Endger\u00e4t schauen, wie du die MAC-Adressen-Generierung deaktivierst.",
|
||||||
"HelpFAQ_Cat_Detail_303_head": "Was ist Nmap und wozu dient es?",
|
"HelpFAQ_Cat_Detail_303_head": "Was ist Nmap und wozu dient es?",
|
||||||
"HelpFAQ_Cat_Detail_303_text": "Nmap ist ein Netzwerkscanner mit vielfältigen Möglichkeiten.<br> Wenn ein neues Gerät in deiner Liste auftaucht, hast du die Möglichkeit über den Nmap-Scan genauere Informationen über das Gerät zu erhalten.",
|
"HelpFAQ_Cat_Detail_303_text": "Nmap ist ein Netzwerkscanner mit vielf\u00e4ltigen M\u00f6glichkeiten.<br> Wenn ein neues Ger\u00e4t in deiner Liste auftaucht, hast du die M\u00f6glichkeit \u00fcber den Nmap-Scan genauere Informationen \u00fcber das Ger\u00e4t zu erhalten.",
|
||||||
"HelpFAQ_Cat_Device_200_head": "Ich habe, mir nicht bekannte, Geräte in meiner Liste. Nach dem Löschen tauchen diese immer wieder auf.",
|
"HelpFAQ_Cat_Device_200_head": "Ich habe, mir nicht bekannte, Ger\u00e4te in meiner Liste. Nach dem L\u00f6schen tauchen diese immer wieder auf.",
|
||||||
"HelpFAQ_Cat_Device_200_text": "Wenn du Pi-hole verwendest, beachte bitte, dass NetAlertX Informationen von Pi-hole abruft. Pausiere NetAlertX, gehe in Pi-hole auf die Settings-Seite und lösche ggf. die betreffende DHCP-Lease. Anschließend schaue, ebenfalls in Pi-hole, unter Tools -> Network, ob sich dort die immer wiederkehrenden Hosts finden lassen. Wenn ja, lösche diese dort ebenfalls. Nun kannst du NetAlertX wieder starten. Jetzt sollte das Gerät/die Geräte nicht mehr auftauchen.",
|
"HelpFAQ_Cat_Device_200_text": "Wenn du Pi-hole verwendest, beachte bitte, dass NetAlertX Informationen von Pi-hole abruft. Pausiere NetAlertX, gehe in Pi-hole auf die Settings-Seite und l\u00f6sche ggf. die betreffende DHCP-Lease. Anschlie\u00dfend schaue, ebenfalls in Pi-hole, unter Tools -> Network, ob sich dort die immer wiederkehrenden Hosts finden lassen. Wenn ja, l\u00f6sche diese dort ebenfalls. Nun kannst du NetAlertX wieder starten. Jetzt sollte das Ger\u00e4t/die Ger\u00e4te nicht mehr auftauchen.",
|
||||||
"HelpFAQ_Cat_General": "Allgemein",
|
"HelpFAQ_Cat_General": "Allgemein",
|
||||||
"HelpFAQ_Cat_General_100_head": "Die Uhr oben rechts und die Zeiten der Events/Anwesenheit stimmen nicht überein (Zeitverschiebung).",
|
"HelpFAQ_Cat_General_100_head": "Die Uhr oben rechts und die Zeiten der Events/Anwesenheit stimmen nicht \u00fcberein (Zeitverschiebung).",
|
||||||
"HelpFAQ_Cat_General_100_text_a": "Auf deinem PC ist für die PHP Umgebung folgende Zeitzone voreingestellt:",
|
"HelpFAQ_Cat_General_100_text_a": "Auf deinem PC ist f\u00fcr die PHP Umgebung folgende Zeitzone voreingestellt:",
|
||||||
"HelpFAQ_Cat_General_100_text_b": "Sollte dies nicht die Zeitzone sein, in der du dich aufhältst, solltest du die Zeitzone in der PHP Konfigurationsdatei anpassen. Diese findest du in diesem Verzeichnis:",
|
"HelpFAQ_Cat_General_100_text_b": "Sollte dies nicht die Zeitzone sein, in der du dich aufh\u00e4ltst, solltest du die Zeitzone in der PHP Konfigurationsdatei anpassen. Diese findest du in diesem Verzeichnis:",
|
||||||
"HelpFAQ_Cat_General_100_text_c": "Suche in dieser Datei nach dem Eintrag 'date.timezone', entferne ggf. das führende ';' und trage die gewünschte Zeitzone ein. Eine Liste mit den unterstützten Zeitzonen findest du hier (<a href=\"https://www.php.net/manual/de/timezones.php\" target=\"blank\">Link</a>).",
|
"HelpFAQ_Cat_General_100_text_c": "Suche in dieser Datei nach dem Eintrag 'date.timezone', entferne ggf. das f\u00fchrende ';' und trage die gew\u00fcnschte Zeitzone ein. Eine Liste mit den unterst\u00fctzten Zeitzonen findest du hier (<a href=\"https://www.php.net/manual/de/timezones.php\" target=\"blank\">Link</a>).",
|
||||||
"HelpFAQ_Cat_General_101_head": "Mein Netzwerk scheint langsamer zu werden, Streaming ruckelt.",
|
"HelpFAQ_Cat_General_101_head": "Mein Netzwerk scheint langsamer zu werden, Streaming ruckelt.",
|
||||||
"HelpFAQ_Cat_General_101_text": "Es kann durchaus sein, das leistungsschwache Geräte mit der Art und Weise, wie NetAlertX neue Geräte im Netzwerk erkennt, an ihre Leistungsgrenzen kommen. Dies verstärkt sich noch einmal, <br/> wenn diese Geräte per WLAN mit dem Netzwerk kommunizieren. Lösungen wären hier, wenn möglich ein Wechsel auf eine Kabelverbindung oder, falls das Geräte nur einen begrenzten Zeitraum genutzt <br/> werden soll, den arp-Scan auf der Wartungsseite zu pausieren.",
|
"HelpFAQ_Cat_General_101_text": "Es kann durchaus sein, das leistungsschwache Ger\u00e4te mit der Art und Weise, wie NetAlertX neue Ger\u00e4te im Netzwerk erkennt, an ihre Leistungsgrenzen kommen. Dies verst\u00e4rkt sich noch einmal, <br/> wenn diese Ger\u00e4te per WLAN mit dem Netzwerk kommunizieren. L\u00f6sungen w\u00e4ren hier, wenn m\u00f6glich ein Wechsel auf eine Kabelverbindung oder, falls das Ger\u00e4te nur einen begrenzten Zeitraum genutzt <br/> werden soll, den arp-Scan auf der Wartungsseite zu pausieren.",
|
||||||
"HelpFAQ_Cat_General_102_head": "Ich bekomme die Meldung, dass die Datenbank schreibgeschützt (read only) ist.",
|
"HelpFAQ_Cat_General_102_head": "Ich bekomme die Meldung, dass die Datenbank schreibgesch\u00fctzt (read only) ist.",
|
||||||
"HelpFAQ_Cat_General_102_text": "Prüfe im NetAlertX verzeichnis ob der Ordner der Datenbank (db) die richtigen Rechte zugewiesen bekommen hat:<br> <span class=\"text-danger help_faq_code\">drwxrwx--- 2 (dein Username) www-data</span><br> Sollte die Berechtigung nicht stimmen, kannst du sie mit folgenden Befehlen im Terminal oder der Konsole wieder setzen:<br> <span class=\"text-danger help_faq_code\"> sudo chgrp -R www-data /app/db<br> chmod -R 770 /app/db </span><br> Wenn die Datenbank danach noch immer schreibgeschützt ist, versuche eine erneute Installation, oder das Zuückspielen eines Datenbank-Backups über die Wartungsseite.",
|
"HelpFAQ_Cat_General_102_text": "Pr\u00fcfe im NetAlertX verzeichnis ob der Ordner der Datenbank (db) die richtigen Rechte zugewiesen bekommen hat:<br> <span class=\"text-danger help_faq_code\">drwxrwx--- 2 (dein Username) www-data</span><br> Sollte die Berechtigung nicht stimmen, kannst du sie mit folgenden Befehlen im Terminal oder der Konsole wieder setzen:<br> <span class=\"text-danger help_faq_code\"> sudo chgrp -R www-data /app/db<br> chmod -R 770 /app/db </span><br> Wenn die Datenbank danach noch immer schreibgesch\u00fctzt ist, versuche eine erneute Installation, oder das Zu\u00fcckspielen eines Datenbank-Backups \u00fcber die Wartungsseite.",
|
||||||
"HelpFAQ_Cat_General_102docker_head": "(🐳 Docker only) Database issues (AJAX errors, read-only, not found)",
|
"HelpFAQ_Cat_General_102docker_head": "(\ud83d\udc33 Docker only) Database issues (AJAX errors, read-only, not found)",
|
||||||
"HelpFAQ_Cat_General_102docker_text": "Double-check you have followed the <a href=\"https://github.com/jokob-sk/NetAlertX/tree/main/dockerfiles\">dockerfile readme (most up-to-date info)</a>. <br/> <br/> <ul data-sourcepos=\"49:4-52:146\" dir=\"auto\"> <li data-sourcepos=\"49:4-49:106\">Download the <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/db/app.db\">original DB from GitHub</a>.</li> <li data-sourcepos=\"50:4-50:195\">Map the <code>app.db</code> file (<g-emoji class=\"g-emoji\" alias=\"warning\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/26a0.png\">⚠</g-emoji> not folder) from above to <code>/app/db/app.db</code> (see <a href=\"https://github.com/jokob-sk/NetAlertX/tree/main/dockerfiles#-examples\">Examples</a> for details).</li><li data-sourcepos=\"51:4-51:161\">If facing issues (AJAX errors, can not write to DB, etc,) make sure permissions are set correctly, alternatively check the logs under <code>/app/front/log</code>.</li> <li data-sourcepos=\"52:4-52:146\">To solve permission issues you can also try to create a DB backup and then run a DB Restore via the <strong>Maintenance > Backup/Restore</strong> section.</li> <li data-sourcepos=\"53:4-53:228\">If the database is in read-only mode you can solve this by setting the owner and group by executing the following command on the host system: <code>docker exec netalertx chown -R www-data:www-data /app/db/app.db</code>.</li></ul>",
|
"HelpFAQ_Cat_General_102docker_text": "Double-check you have followed the <a href=\"https://github.com/jokob-sk/NetAlertX/tree/main/dockerfiles\">dockerfile readme (most up-to-date info)</a>. <br/> <br/> <ul data-sourcepos=\"49:4-52:146\" dir=\"auto\"> <li data-sourcepos=\"49:4-49:106\">Download the <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/db/app.db\">original DB from GitHub</a>.</li> <li data-sourcepos=\"50:4-50:195\">Map the <code>app.db</code> file (<g-emoji class=\"g-emoji\" alias=\"warning\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/26a0.png\">\u26a0</g-emoji> not folder) from above to <code>/app/db/app.db</code> (see <a href=\"https://github.com/jokob-sk/NetAlertX/tree/main/dockerfiles#-examples\">Examples</a> for details).</li><li data-sourcepos=\"51:4-51:161\">If facing issues (AJAX errors, can not write to DB, etc,) make sure permissions are set correctly, alternatively check the logs under <code>/app/front/log</code>.</li> <li data-sourcepos=\"52:4-52:146\">To solve permission issues you can also try to create a DB backup and then run a DB Restore via the <strong>Maintenance > Backup/Restore</strong> section.</li> <li data-sourcepos=\"53:4-53:228\">If the database is in read-only mode you can solve this by setting the owner and group by executing the following command on the host system: <code>docker exec netalertx chown -R www-data:www-data /app/db/app.db</code>.</li></ul>",
|
||||||
"HelpFAQ_Cat_General_103_head": "Die Login-Seite erscheint nicht, auch nicht nach der Passwortänderung.",
|
"HelpFAQ_Cat_General_103_head": "Die Login-Seite erscheint nicht, auch nicht nach der Passwort\u00e4nderung.",
|
||||||
"HelpFAQ_Cat_General_103_text": "Neben dem Passwort, muss in der Konfigurationsdatei <span class=\"text-danger help_faq_code\">/app/config/app.conf</span> auch der Parameter <span class=\"text-danger help_faq_code\">PIALERT_WEB_PROTECTION</span> auf <span class=\"text-danger help_faq_code\">True</span> gesetzt sein.",
|
"HelpFAQ_Cat_General_103_text": "Neben dem Passwort, muss in der Konfigurationsdatei <span class=\"text-danger help_faq_code\">/app/config/app.conf</span> auch der Parameter <span class=\"text-danger help_faq_code\">PIALERT_WEB_PROTECTION</span> auf <span class=\"text-danger help_faq_code\">True</span> gesetzt sein.",
|
||||||
"HelpFAQ_Cat_Network_600_head": "Was bringt mir diese Seite?",
|
"HelpFAQ_Cat_Network_600_head": "Was bringt mir diese Seite?",
|
||||||
"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. Siehe <a target=\"_blank\" href=\"https://github.com/jokob-sk/Pi.NetAlertX/blob/main/docs/NETWORK_TREE.md\">diese Dokumentation </a> für mehr Infos.",
|
"HelpFAQ_Cat_Network_600_text": "Diese Seite soll dir die M\u00f6glichkeit bieten, die Belegung deiner Netzwerkger\u00e4te abzubilden. Dazu kannst du einen oder mehrere Switches, WLANs, Router, etc. erstellen, sie ggf. mit einer Portanzahl versehen und bereits erkannte Ger\u00e4te diesen zuordnen. Diese Zuordnung erfolgt in der Detailansicht, des zuzuordnenden Ger\u00e4tes. So ist es dir m\u00f6glich, schnell festzustellen an welchem Port ein Host angeschlossen und ob er online ist. Siehe <a target=\"_blank\" href=\"https://github.com/jokob-sk/Pi.NetAlertX/blob/main/docs/NETWORK_TREE.md\">diese Dokumentation </a> f\u00fcr mehr Infos.",
|
||||||
"HelpFAQ_Cat_Network_601_head": "Gibt es mehr Dokumentation?",
|
"HelpFAQ_Cat_Network_601_head": "Gibt es mehr Dokumentation?",
|
||||||
"HelpFAQ_Cat_Network_601_text": "Ja, gibt es! Siehe <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/\">alle Dokumentationen</a> für mehr Infos.",
|
"HelpFAQ_Cat_Network_601_text": "Ja, gibt es! Siehe <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/\">alle Dokumentationen</a> f\u00fcr mehr Infos.",
|
||||||
"HelpFAQ_Cat_Presence_400_head": "Geräte werden mit einer gelben Markierung und dem Hinweis \"missing Event\" angezeigt.",
|
"HelpFAQ_Cat_Presence_400_head": "Ger\u00e4te werden mit einer gelben Markierung und dem Hinweis \"missing Event\" angezeigt.",
|
||||||
"HelpFAQ_Cat_Presence_400_text": "Wenn dies geschieht hast du die Möglickeit, bei dem betreffenden Gerät (Detailsansicht) die Events zu löschen. Eine andere Möglichkeit wäre, das Gerät einzuschalten und zu warten, bis NetAlertX mit dem nächsten Scan das Gerät als \"Online\" erkennt und anschließend das Gerät einfach wieder ausschalten. Nun sollte NetAlertX mit dem nächsten Scan den Zustand des Gerätes ordentlich in der Datenbank vermerken.",
|
"HelpFAQ_Cat_Presence_400_text": "Wenn dies geschieht hast du die M\u00f6glickeit, bei dem betreffenden Ger\u00e4t (Detailsansicht) die Events zu l\u00f6schen. Eine andere M\u00f6glichkeit w\u00e4re, das Ger\u00e4t einzuschalten und zu warten, bis NetAlertX mit dem n\u00e4chsten Scan das Ger\u00e4t als \"Online\" erkennt und anschlie\u00dfend das Ger\u00e4t einfach wieder ausschalten. Nun sollte NetAlertX mit dem n\u00e4chsten Scan den Zustand des Ger\u00e4tes ordentlich in der Datenbank vermerken.",
|
||||||
"HelpFAQ_Cat_Presence_401_head": "Ein Gerät wird als Anwesend angezeigt, obwohl es \"Offline\" ist.",
|
"HelpFAQ_Cat_Presence_401_head": "Ein Ger\u00e4t wird als Anwesend angezeigt, obwohl es \"Offline\" ist.",
|
||||||
"HelpFAQ_Cat_Presence_401_text": "Wenn dies geschieht hast du die Möglickeit, bei dem betreffenden Gerät (Detailsansicht) die Events zu löschen. Eine andere Möglichkeit wäre, das Gerät einzuschalten und zu warten, bis NetAlertX mit dem nächsten Scan das Gerät als \"Online\" erkennt und anschließend das Gerät einfach wieder ausschalten. Nun sollte NetAlertX mit dem nächsten Scan den Zustand des Gerätes ordentlich in der Datenbank vermerken.",
|
"HelpFAQ_Cat_Presence_401_text": "Wenn dies geschieht hast du die M\u00f6glickeit, bei dem betreffenden Ger\u00e4t (Detailsansicht) die Events zu l\u00f6schen. Eine andere M\u00f6glichkeit w\u00e4re, das Ger\u00e4t einzuschalten und zu warten, bis NetAlertX mit dem n\u00e4chsten Scan das Ger\u00e4t als \"Online\" erkennt und anschlie\u00dfend das Ger\u00e4t einfach wieder ausschalten. Nun sollte NetAlertX mit dem n\u00e4chsten Scan den Zustand des Ger\u00e4tes ordentlich in der Datenbank vermerken.",
|
||||||
"HelpFAQ_Title": "Hilfe / FAQ",
|
"HelpFAQ_Title": "Hilfe / FAQ",
|
||||||
"LOADED_PLUGINS_description": "",
|
"LOADED_PLUGINS_description": "",
|
||||||
"LOADED_PLUGINS_name": "",
|
"LOADED_PLUGINS_name": "",
|
||||||
"LOG_LEVEL_description": "Diese Einstellung aktiviert die erweiterte Protokollierung. Nützlich fürs Debuggen von in die Datenbank geschriebenen Events.",
|
"LOG_LEVEL_description": "Diese Einstellung aktiviert die erweiterte Protokollierung. N\u00fctzlich f\u00fcrs Debuggen von in die Datenbank geschriebenen Events.",
|
||||||
"LOG_LEVEL_name": "Erweiterte Protokollierung",
|
"LOG_LEVEL_name": "Erweiterte Protokollierung",
|
||||||
"Loading": "Laden...",
|
"Loading": "Laden...",
|
||||||
"Login_Box": "Passwort eingeben",
|
"Login_Box": "Passwort eingeben",
|
||||||
@@ -356,9 +356,9 @@
|
|||||||
"Login_Psw_alert": "Sicherheitshinweis!",
|
"Login_Psw_alert": "Sicherheitshinweis!",
|
||||||
"Login_Psw_folder": "im Ordner /app/config",
|
"Login_Psw_folder": "im Ordner /app/config",
|
||||||
"Login_Psw_new": "neues_passwort",
|
"Login_Psw_new": "neues_passwort",
|
||||||
"Login_Psw_run": "Um das Passwort zu ändern nutze:",
|
"Login_Psw_run": "Um das Passwort zu \u00e4ndern nutze:",
|
||||||
"Login_Remember": "Passwort speichern",
|
"Login_Remember": "Passwort speichern",
|
||||||
"Login_Remember_small": "(für 7 Tage gültig)",
|
"Login_Remember_small": "(f\u00fcr 7 Tage g\u00fcltig)",
|
||||||
"Login_Submit": "Anmelden",
|
"Login_Submit": "Anmelden",
|
||||||
"Login_Toggle_Alert_headline": "Passwort Warnung!",
|
"Login_Toggle_Alert_headline": "Passwort Warnung!",
|
||||||
"Login_Toggle_Info": "Passwort Informationen",
|
"Login_Toggle_Info": "Passwort Informationen",
|
||||||
@@ -383,64 +383,64 @@
|
|||||||
"Maintenance_Tool_ExportCSV": "CSV Export",
|
"Maintenance_Tool_ExportCSV": "CSV Export",
|
||||||
"Maintenance_Tool_ExportCSV_noti": "CSV Export",
|
"Maintenance_Tool_ExportCSV_noti": "CSV Export",
|
||||||
"Maintenance_Tool_ExportCSV_noti_text": "Sind Sie sich sicher, dass Sie die CSV-Datei erstellen wollen?",
|
"Maintenance_Tool_ExportCSV_noti_text": "Sind Sie sich sicher, dass Sie die CSV-Datei erstellen wollen?",
|
||||||
"Maintenance_Tool_ExportCSV_text": "Generiere eine CSV-Datei (comma separated values) mit einer Liste aller Geräte und deren Beziehungen zwischen Netzwerkknoten und verbundenen Geräten. Dies kann auch durch das Besuchen dieser URL <code>your NetAlertX url/php/server/devices.php?action=ExportCSV</code> ausgelöst werden.",
|
"Maintenance_Tool_ExportCSV_text": "Generiere eine CSV-Datei (comma separated values) mit einer Liste aller Ger\u00e4te und deren Beziehungen zwischen Netzwerkknoten und verbundenen Ger\u00e4ten. Dies kann auch durch das Besuchen dieser URL <code>your NetAlertX url/php/server/devices.php?action=ExportCSV</code> ausgel\u00f6st werden.",
|
||||||
"Maintenance_Tool_ImportCSV": "CSV Import",
|
"Maintenance_Tool_ImportCSV": "CSV Import",
|
||||||
"Maintenance_Tool_ImportCSV_noti": "CSV Import",
|
"Maintenance_Tool_ImportCSV_noti": "CSV Import",
|
||||||
"Maintenance_Tool_ImportCSV_noti_text": "Sind Sie sich sicher, dass Sie die CSV-Datei importieren wollen? Dies wird alle Geräte in der Datenbank überschreiben.",
|
"Maintenance_Tool_ImportCSV_noti_text": "Sind Sie sich sicher, dass Sie die CSV-Datei importieren wollen? Dies wird alle Ger\u00e4te in der Datenbank \u00fcberschreiben.",
|
||||||
"Maintenance_Tool_ImportCSV_text": "Machen Sie ein Backup, bevor Sie diese Funktion nutzen. Importiere eine CSV-Datei (comma separated values) mit einer Liste aller Geräte und deren Beziehungen zwischen Netzwerkknoten und verbundenen Geräten. Um dies zu tun platziere die <b>devices.csv</b> benannte CSV-Datei in deinen <b>/config</b> Ordner.",
|
"Maintenance_Tool_ImportCSV_text": "Machen Sie ein Backup, bevor Sie diese Funk\u00adtion nutzen. Importiere eine CSV-Datei (comma separated values) mit einer Liste aller Ger\u00e4te und deren Beziehungen zwischen Netzwerkknoten und verbundenen Ger\u00e4ten. Um dies zu tun platziere die <b>devices.csv</b> benannte CSV-Datei in deinen <b>/config</b> Ordner.",
|
||||||
"Maintenance_Tool_arpscansw": "arp-Scan stoppen/starten",
|
"Maintenance_Tool_arpscansw": "arp-Scan stoppen/starten",
|
||||||
"Maintenance_Tool_arpscansw_noti": "arp-Scan stoppen/starten",
|
"Maintenance_Tool_arpscansw_noti": "arp-Scan stoppen/starten",
|
||||||
"Maintenance_Tool_arpscansw_noti_text": "Wenn der Scan aus ist, bleibt er so lange aus bis er wieder aktiviert wird.",
|
"Maintenance_Tool_arpscansw_noti_text": "Wenn der Scan aus ist, bleibt er so lange aus bis er wieder aktiviert wird.",
|
||||||
"Maintenance_Tool_arpscansw_text": "Schaltet den arp-Scan an oder aus. Wenn der Scan aus ist, bleibt er so lange aus bis er wieder aktiviert wird. Bereits laufende Scans werden dabei nicht beendet.",
|
"Maintenance_Tool_arpscansw_text": "Schaltet den arp-Scan an oder aus. Wenn der Scan aus ist, bleibt er so lange aus bis er wieder aktiviert wird. Bereits laufende Scans werden dabei nicht beendet.",
|
||||||
"Maintenance_Tool_backup": "DB Sicherung",
|
"Maintenance_Tool_backup": "DB Sicherung",
|
||||||
"Maintenance_Tool_backup_noti": "DB Sicherung",
|
"Maintenance_Tool_backup_noti": "DB Sicherung",
|
||||||
"Maintenance_Tool_backup_noti_text": "Sind Sie sicher, dass Sie die Datenbank jetzt sichern möchten. Prüfen Sie, dass gerade keine Scans stattfinden.",
|
"Maintenance_Tool_backup_noti_text": "Sind Sie sicher, dass Sie die Datenbank jetzt sichern m\u00f6chten. Pr\u00fcfen Sie, dass gerade keine Scans stattfinden.",
|
||||||
"Maintenance_Tool_backup_text": "Die Datenbank-Sicher­ungen befinden sich im Datenbank-Ver­zeich­nis, gepackt als zip-Archive, benannt mit dem Erstellungs­datum. Es gibt keine maximale Anzahl von Backups.",
|
"Maintenance_Tool_backup_text": "Die Datenbank-Sicher­ungen befinden sich im Datenbank-Ver­zeich­nis, gepackt als zip-Archive, benannt mit dem Erstellungs­datum. Es gibt keine maximale Anzahl von Backups.",
|
||||||
"Maintenance_Tool_check_visible": "Abwählen um die Spalte auszublenden.",
|
"Maintenance_Tool_check_visible": "Abw\u00e4hlen um die Spalte auszublenden.",
|
||||||
"Maintenance_Tool_darkmode": "Darstellungswechsel (Dunkel/Hell)",
|
"Maintenance_Tool_darkmode": "Darstellungswechsel (Dunkel/Hell)",
|
||||||
"Maintenance_Tool_darkmode_noti": "Darstellungswechsel",
|
"Maintenance_Tool_darkmode_noti": "Darstellungswechsel",
|
||||||
"Maintenance_Tool_darkmode_noti_text": "Wechselt zwischen der hellen und der dunklen Darstellung. Wenn die Umschaltung nicht ordentlich funktionieren sollte, versuchen Sie den Browsercache zu löschen.",
|
"Maintenance_Tool_darkmode_noti_text": "Wechselt zwischen der hellen und der dunklen Darstellung. Wenn die Umschaltung nicht ordentlich funktionieren sollte, versuchen Sie den Browsercache zu l\u00f6schen.",
|
||||||
"Maintenance_Tool_darkmode_text": "Wechselt zwischen der hellen und der dunklen Darstellung. Wenn der Wechsel nicht richtig funktionieren sollte, versuchen Sie den Browsercache zu löschen. Die Änderung findet serverseitig statt, betrifft also alle verwendeten Geräte.",
|
"Maintenance_Tool_darkmode_text": "Wechselt zwischen der hellen und der dunklen Darstellung. Wenn der Wechsel nicht richtig funktionieren sollte, versuchen Sie den Browsercache zu l\u00f6schen. Die \u00c4nderung findet serverseitig statt, betrifft also alle verwendeten Ger\u00e4te.",
|
||||||
"Maintenance_Tool_del_ActHistory": "Löschen der Netzwerkaktivität",
|
"Maintenance_Tool_del_ActHistory": "L\u00f6schen der Netzwerkaktivit\u00e4t",
|
||||||
"Maintenance_Tool_del_ActHistory_noti": "Netzwerkaktivität löschen",
|
"Maintenance_Tool_del_ActHistory_noti": "Netzwerkaktivit\u00e4t l\u00f6schen",
|
||||||
"Maintenance_Tool_del_ActHistory_noti_text": "Sind Sie sicher, dass Sie die Netzwerkaktivität zurücksetzen möchten?",
|
"Maintenance_Tool_del_ActHistory_noti_text": "Sind Sie sicher, dass Sie die Netzwerkaktivit\u00e4t zur\u00fccksetzen m\u00f6chten?",
|
||||||
"Maintenance_Tool_del_ActHistory_text": "Der Graph für die Netzwerkaktivität wird zurückgesetzt. Hierbei werden die Events nicht beeinflusst.",
|
"Maintenance_Tool_del_ActHistory_text": "Der Graph f\u00fcr die Netzwerkaktivit\u00e4t wird zur\u00fcckgesetzt. Hierbei werden die Events nicht beeinflusst.",
|
||||||
"Maintenance_Tool_del_alldev": "Alle Geräte löschen",
|
"Maintenance_Tool_del_alldev": "Alle Ger\u00e4te l\u00f6schen",
|
||||||
"Maintenance_Tool_del_alldev_noti": "Geräte löschen",
|
"Maintenance_Tool_del_alldev_noti": "Ger\u00e4te l\u00f6schen",
|
||||||
"Maintenance_Tool_del_alldev_noti_text": "Sind Sie sich sicher, dass Sie alle Geräte löschen wollen?",
|
"Maintenance_Tool_del_alldev_noti_text": "Sind Sie sich sicher, dass Sie alle Ger\u00e4te l\u00f6schen wollen?",
|
||||||
"Maintenance_Tool_del_alldev_text": "Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht rück­gängig gemacht werden. Alle Geräte werden in der Datenbank ge­löscht.",
|
"Maintenance_Tool_del_alldev_text": "Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht r\u00fcck­g\u00e4ngig gemacht werden. Alle Ger\u00e4te werden in der Datenbank ge­l\u00f6scht.",
|
||||||
"Maintenance_Tool_del_allevents": "Alle Ereignisse löschen",
|
"Maintenance_Tool_del_allevents": "Alle Ereignisse l\u00f6schen",
|
||||||
"Maintenance_Tool_del_allevents30": "Alle Ereignisse älter als 30 Tage löschen",
|
"Maintenance_Tool_del_allevents30": "Alle Ereignisse \u00e4lter als 30 Tage l\u00f6schen",
|
||||||
"Maintenance_Tool_del_allevents30_noti": "Ereignisse löschen",
|
"Maintenance_Tool_del_allevents30_noti": "Ereignisse l\u00f6schen",
|
||||||
"Maintenance_Tool_del_allevents30_noti_text": "Sind Sie sich sicher, dass Sie alle Ereignisse älter als 30 Tage löschen wollen? Dies setzt die Präsenz aller Geräte zurück.",
|
"Maintenance_Tool_del_allevents30_noti_text": "Sind Sie sich sicher, dass Sie alle Ereignisse \u00e4lter als 30 Tage l\u00f6schen wollen? Dies setzt die Pr\u00e4senz aller Ger\u00e4te zur\u00fcck.",
|
||||||
"Maintenance_Tool_del_allevents30_text": "Machen Sie ein Backup, bevor Sie diese Funktion nutzen. Der Vorgang kann ohne Backup nicht rückgängig gemacht werden. Alle Ereignisse älter als 30 Tage werden aus der Datenbank gelöscht. Dies setzt auch die Anwesenheit zurück. Es kann ab dem Moment zu ungültigen Sitzungen kommen. Ein Scan, während das betreffende Gerät online ist, sollte das Problem lösen.",
|
"Maintenance_Tool_del_allevents30_text": "Machen Sie ein Backup, bevor Sie diese Funk\u00adtion nutzen. Der Vor\u00adgang kann ohne Back\u00adup nicht r\u00fcck\u00adg\u00e4ngig gemacht werden. Alle Ereignisse \u00e4lter als 30 Tage werden aus der Datenbank ge\u00adl\u00f6scht. Dies setzt auch die Anwesenheit zu\u00adr\u00fcck. Es kann ab dem Moment zu ung\u00fcltigen Sitzungen kommen. Ein Scan, w\u00e4hrend das betreffende Ger\u00e4t online ist, sollte das Problem l\u00f6sen.",
|
||||||
"Maintenance_Tool_del_allevents_noti": "Alle Ereignisse löschen",
|
"Maintenance_Tool_del_allevents_noti": "Alle Ereignisse l\u00f6schen",
|
||||||
"Maintenance_Tool_del_allevents_noti_text": "Sind Sie sicher, dass Sie alle Ereignisse aus der Datenbank löschen wollen. Dies setzt die Anwesenheit aller Geräte zurück.",
|
"Maintenance_Tool_del_allevents_noti_text": "Sind Sie sicher, dass Sie alle Ereignisse aus der Datenbank l\u00f6schen wollen. Dies setzt die Anwesenheit aller Ger\u00e4te zur\u00fcck.",
|
||||||
"Maintenance_Tool_del_allevents_text": "Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht rück­gängig gemacht werden. Alle Ereignisse werden aus der Datenbank ge­löscht. Dies setzt auch die Anwesenheit zu­rück. Es kann ab dem Moment zu ungültigen Sitzungen kommen. Ein Scan, während das betreffende Gerät online ist, sollte das Problem lösen.",
|
"Maintenance_Tool_del_allevents_text": "Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht r\u00fcck­g\u00e4ngig gemacht werden. Alle Ereignisse werden aus der Datenbank ge­l\u00f6scht. Dies setzt auch die Anwesenheit zu­r\u00fcck. Es kann ab dem Moment zu ung\u00fcltigen Sitzungen kommen. Ein Scan, w\u00e4hrend das betreffende Ger\u00e4t online ist, sollte das Problem l\u00f6sen.",
|
||||||
"Maintenance_Tool_del_empty_macs": "Alle Geräte ohne MAC löschen",
|
"Maintenance_Tool_del_empty_macs": "Alle Ger\u00e4te ohne MAC l\u00f6schen",
|
||||||
"Maintenance_Tool_del_empty_macs_noti": "Geräte löschen",
|
"Maintenance_Tool_del_empty_macs_noti": "Ger\u00e4te l\u00f6schen",
|
||||||
"Maintenance_Tool_del_empty_macs_noti_text": "Sind Sie sicher, dass Sie alle Geräte ohne MAC-Adresse löschen wollen?<br>(Vielleicht bevorzugen Sie eine Archivierung)",
|
"Maintenance_Tool_del_empty_macs_noti_text": "Sind Sie sicher, dass Sie alle Ger\u00e4te ohne MAC-Adresse l\u00f6schen wollen?<br>(Vielleicht bevorzugen Sie eine Archivierung)",
|
||||||
"Maintenance_Tool_del_empty_macs_text": "Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht rück­gängig gemacht werden. Alle Geäte ohne MAC-Adresse werden aus der Datenbank ge­löscht.",
|
"Maintenance_Tool_del_empty_macs_text": "Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht r\u00fcck­g\u00e4ngig gemacht werden. Alle Ge\u00e4te ohne MAC-Adresse werden aus der Datenbank ge­l\u00f6scht.",
|
||||||
"Maintenance_Tool_del_selecteddev": "Ausgewählte Geräte löschen",
|
"Maintenance_Tool_del_selecteddev": "Ausgew\u00e4hlte Ger\u00e4te l\u00f6schen",
|
||||||
"Maintenance_Tool_del_selecteddev_text": "",
|
"Maintenance_Tool_del_selecteddev_text": "",
|
||||||
"Maintenance_Tool_del_unknowndev": "Löschen der (unknown) Geräte",
|
"Maintenance_Tool_del_unknowndev": "L\u00f6schen der (unknown) Ger\u00e4te",
|
||||||
"Maintenance_Tool_del_unknowndev_noti": "Lösche (unknown) Geräte",
|
"Maintenance_Tool_del_unknowndev_noti": "L\u00f6sche (unknown) Ger\u00e4te",
|
||||||
"Maintenance_Tool_del_unknowndev_noti_text": "Sind Sie sicher, dass Sie alle (unknown) Geräte aus der Datenbank löschen wollen?",
|
"Maintenance_Tool_del_unknowndev_noti_text": "Sind Sie sicher, dass Sie alle (unknown) Ger\u00e4te aus der Datenbank l\u00f6schen wollen?",
|
||||||
"Maintenance_Tool_del_unknowndev_text": "Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht rück­gängig gemacht werden. Alle Gräte mit dem Namen (unknown) werden aus der Datenbank ge­löscht.",
|
"Maintenance_Tool_del_unknowndev_text": "Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht r\u00fcck­g\u00e4ngig gemacht werden. Alle Gr\u00e4te mit dem Namen (unknown) werden aus der Datenbank ge­l\u00f6scht.",
|
||||||
"Maintenance_Tool_displayed_columns_text": "Ändere die Sichtbarkeit und Anordnung der Spalten in der <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i> Geräte</b></a>-Seite. (Drag-and-Drop funktioniert nicht einwandfrei, ist aber verwendbar. Ich habe <a href=\"https://github.com/jokob-sk/NetAlertX/commit/94b32f0f7332879f5a7d2af05dafa2e5d5cfa5da\">3 Stunden</a> versucht das zu beheben, werde es aber nicht weiter verfolgen. Über einen PR mit einem Fix würde ich mich freuen :) ).",
|
"Maintenance_Tool_displayed_columns_text": "\u00c4ndere die Sichtbarkeit und Anordnung der Spalten in der <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i> Ger\u00e4te</b></a>-Seite. (Drag-and-Drop funktioniert nicht einwandfrei, ist aber verwendbar. Ich habe <a href=\"https://github.com/jokob-sk/NetAlertX/commit/94b32f0f7332879f5a7d2af05dafa2e5d5cfa5da\">3 Stunden</a> versucht das zu beheben, werde es aber nicht weiter verfolgen. \u00dcber einen PR mit einem Fix w\u00fcrde ich mich freuen :) ).",
|
||||||
"Maintenance_Tool_drag_me": "Zieh mich um die Anordnung der Spalten zu ändern.",
|
"Maintenance_Tool_drag_me": "Zieh mich um die Anordnung der Spalten zu \u00e4ndern.",
|
||||||
"Maintenance_Tool_order_columns_text": "",
|
"Maintenance_Tool_order_columns_text": "",
|
||||||
"Maintenance_Tool_purgebackup": "Sicherungen aufräumen",
|
"Maintenance_Tool_purgebackup": "Sicherungen aufr\u00e4umen",
|
||||||
"Maintenance_Tool_purgebackup_noti": "Sicherungen aufräumen",
|
"Maintenance_Tool_purgebackup_noti": "Sicherungen aufr\u00e4umen",
|
||||||
"Maintenance_Tool_purgebackup_noti_text": "Sind Sie sicher, alle Backups, bis auf die letzten 3 löschen möchten?",
|
"Maintenance_Tool_purgebackup_noti_text": "Sind Sie sicher, alle Backups, bis auf die letzten 3 l\u00f6schen m\u00f6chten?",
|
||||||
"Maintenance_Tool_purgebackup_text": "Es werden, bis auf die letzten 3 Backups, alle übrigen Backups gelöscht.",
|
"Maintenance_Tool_purgebackup_text": "Es werden, bis auf die letzten 3 Backups, alle \u00fcbrigen Backups gel\u00f6scht.",
|
||||||
"Maintenance_Tool_restore": "DB Wiederherstellung",
|
"Maintenance_Tool_restore": "DB Wiederherstellung",
|
||||||
"Maintenance_Tool_restore_noti": "DB Wiederherstellung",
|
"Maintenance_Tool_restore_noti": "DB Wiederherstellung",
|
||||||
"Maintenance_Tool_restore_noti_text": "Sind Sie sicher, dass Sie die Datenbank aus der neusten Sicherung wiederherstellen möchten? Prüfen Sie, dass gerade keine Scans stattfinden.",
|
"Maintenance_Tool_restore_noti_text": "Sind Sie sicher, dass Sie die Datenbank aus der neusten Sicherung wiederherstellen m\u00f6chten? Pr\u00fcfen Sie, dass gerade keine Scans stattfinden.",
|
||||||
"Maintenance_Tool_restore_text": "Das neuste Backup kann über diese Funk­tion wiederhergestellt werden. Ältere Sicher­ungen müssen manuell wieder­hergestellt wer­den. Es empfiehlt sich eine Integritäts­prüfung nach der Wieder­her­stellung zu machen, falls die Datenbank bei der Sicherung geöffnet war.",
|
"Maintenance_Tool_restore_text": "Das neuste Backup kann \u00fcber diese Funk­tion wiederhergestellt werden. \u00c4ltere Sicher­ungen m\u00fcssen manuell wieder­hergestellt wer­den. Es empfiehlt sich eine Integrit\u00e4ts­pr\u00fcfung nach der Wieder­her­stellung zu machen, falls die Datenbank bei der Sicherung ge\u00f6ffnet war.",
|
||||||
"Maintenance_Tool_upgrade_database_noti": "Aktualisiere Datenbank",
|
"Maintenance_Tool_upgrade_database_noti": "Aktualisiere Datenbank",
|
||||||
"Maintenance_Tool_upgrade_database_noti_text": "Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen.",
|
"Maintenance_Tool_upgrade_database_noti_text": "Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen.",
|
||||||
"Maintenance_Tool_upgrade_database_text": "Mit dieser Schaltfläche wird die Datenbank aktualisiert, um das Diagramm der Netzwerkaktivitäten der letzten 12 Stunden zu aktivieren. Bitte sichern Sie Ihre Datenbank, falls Probleme auftreten.",
|
"Maintenance_Tool_upgrade_database_text": "Mit dieser Schaltfl\u00e4che wird die Datenbank aktualisiert, um das Diagramm der Netzwerkaktivit\u00e4ten der letzten 12 Stunden zu aktivieren. Bitte sichern Sie Ihre Datenbank, falls Probleme auftreten.",
|
||||||
"Maintenance_Tools_Tab_BackupRestore": "Sicherg. / Wiederherstellg.",
|
"Maintenance_Tools_Tab_BackupRestore": "Sicherg. / Wiederherstellg.",
|
||||||
"Maintenance_Tools_Tab_Logging": "Logs",
|
"Maintenance_Tools_Tab_Logging": "Logs",
|
||||||
"Maintenance_Tools_Tab_Settings": "Einstellungen",
|
"Maintenance_Tools_Tab_Settings": "Einstellungen",
|
||||||
@@ -452,24 +452,24 @@
|
|||||||
"Maintenance_built_on": "Erstellt am",
|
"Maintenance_built_on": "Erstellt am",
|
||||||
"Maintenance_current_version": "Du bist up-to-date. Sieh dir an, <a href=\"https://github.com/jokob-sk/NetAlertX/issues/138\" target=\"_blank\">woran ich gerade arbeite</a>.",
|
"Maintenance_current_version": "Du bist up-to-date. Sieh dir an, <a href=\"https://github.com/jokob-sk/NetAlertX/issues/138\" target=\"_blank\">woran ich gerade arbeite</a>.",
|
||||||
"Maintenance_database_backup": "DB Sicherungen",
|
"Maintenance_database_backup": "DB Sicherungen",
|
||||||
"Maintenance_database_backup_found": "Sicherungen verfügbar",
|
"Maintenance_database_backup_found": "Sicherungen verf\u00fcgbar",
|
||||||
"Maintenance_database_backup_total": "Speicherplatz insgesamt",
|
"Maintenance_database_backup_total": "Speicherplatz insgesamt",
|
||||||
"Maintenance_database_lastmod": "Letzte Änderung",
|
"Maintenance_database_lastmod": "Letzte \u00c4nderung",
|
||||||
"Maintenance_database_path": "Datenbank-Pfad",
|
"Maintenance_database_path": "Datenbank-Pfad",
|
||||||
"Maintenance_database_rows": "Tabelle (Reihen)",
|
"Maintenance_database_rows": "Tabelle (Reihen)",
|
||||||
"Maintenance_database_size": "Datenbank-Größe",
|
"Maintenance_database_size": "Datenbank-Gr\u00f6\u00dfe",
|
||||||
"Maintenance_lang_selector_apply": "Übernehmen",
|
"Maintenance_lang_selector_apply": "\u00dcbernehmen",
|
||||||
"Maintenance_lang_selector_empty": "Sprache wählen",
|
"Maintenance_lang_selector_empty": "Sprache w\u00e4hlen",
|
||||||
"Maintenance_lang_selector_lable": "Sprachauswahl",
|
"Maintenance_lang_selector_lable": "Sprachauswahl",
|
||||||
"Maintenance_lang_selector_text": "Die Änderung findet serverseitig statt, betrifft also alle verwendeten Geräte.",
|
"Maintenance_lang_selector_text": "Die \u00c4nderung findet serverseitig statt, betrifft also alle verwendeten Ger\u00e4te.",
|
||||||
"Maintenance_new_version": "🆕 Eine neue Version ist vefügbar. Sieh dir die <a href=\"https://github.com/jokob-sk/NetAlertX/releases\" target=\"_blank\">Versionshinweise</a> an.",
|
"Maintenance_new_version": "\ud83c\udd95 Eine neue Version ist vef\u00fcgbar. Sieh dir die <a href=\"https://github.com/jokob-sk/NetAlertX/releases\" target=\"_blank\">Versionshinweise</a> an.",
|
||||||
"Maintenance_themeselector_apply": "Übernehmen",
|
"Maintenance_themeselector_apply": "\u00dcbernehmen",
|
||||||
"Maintenance_themeselector_empty": "Skin wählen",
|
"Maintenance_themeselector_empty": "Skin w\u00e4hlen",
|
||||||
"Maintenance_themeselector_lable": "Skin Auswahl",
|
"Maintenance_themeselector_lable": "Skin Auswahl",
|
||||||
"Maintenance_themeselector_text": "Die Änderung findet serverseitig statt, betrifft also alle verwendeten Geräte.",
|
"Maintenance_themeselector_text": "Die \u00c4nderung findet serverseitig statt, betrifft also alle verwendeten Ger\u00e4te.",
|
||||||
"Maintenance_version": "App Updates",
|
"Maintenance_version": "App Updates",
|
||||||
"NETWORK_DEVICE_TYPES_description": "Welche Gerätetypen als Netzwerkgeräte in der Netzwerkansicht verwendet werden können. Der Gerätetyp muss genau der <code>Typ</code>-Einstellung eines spezifischen Geräts in den Gerätedetails übereinstimmen. Entfernen Sie keine existierenden Typen, sondern fügen Sie nur neue ein.",
|
"NETWORK_DEVICE_TYPES_description": "Welche Ger\u00e4tetypen als Netzwerkger\u00e4te in der Netzwerkansicht verwendet werden k\u00f6nnen. Der Ger\u00e4tetyp muss genau der <code>Typ</code>-Einstellung eines spezifischen Ger\u00e4ts in den Ger\u00e4tedetails \u00fcbereinstimmen. Entfernen Sie keine existierenden Typen, sondern f\u00fcgen Sie nur neue ein.",
|
||||||
"NETWORK_DEVICE_TYPES_name": "Netzwerkgeräte-Typen",
|
"NETWORK_DEVICE_TYPES_name": "Netzwerkger\u00e4te-Typen",
|
||||||
"NTFY_HOST_description": "NTFY host URL starting with <code>http://</code> or <code>https://</code>. You can use the hosted instance on <a target=\"_blank\" href=\"https://ntfy.sh/\">https://ntfy.sh</a> by simply entering <code>https://ntfy.sh</code>.",
|
"NTFY_HOST_description": "NTFY host URL starting with <code>http://</code> or <code>https://</code>. You can use the hosted instance on <a target=\"_blank\" href=\"https://ntfy.sh/\">https://ntfy.sh</a> by simply entering <code>https://ntfy.sh</code>.",
|
||||||
"NTFY_HOST_name": "NTFY host URL",
|
"NTFY_HOST_name": "NTFY host URL",
|
||||||
"NTFY_PASSWORD_description": "Enter password if you need (host) an instance with enabled authetication.",
|
"NTFY_PASSWORD_description": "Enter password if you need (host) an instance with enabled authetication.",
|
||||||
@@ -481,69 +481,70 @@
|
|||||||
"NTFY_display_name": "NTFY",
|
"NTFY_display_name": "NTFY",
|
||||||
"NTFY_icon": "<i class=\"fa fa-terminal\"></i>",
|
"NTFY_icon": "<i class=\"fa fa-terminal\"></i>",
|
||||||
"Navigation_About": "",
|
"Navigation_About": "",
|
||||||
"Navigation_Devices": "Geräte",
|
"Navigation_Devices": "Ger\u00e4te",
|
||||||
"Navigation_Donations": "Donations",
|
"Navigation_Donations": "Donations",
|
||||||
"Navigation_Events": "Ereignisse",
|
"Navigation_Events": "Ereignisse",
|
||||||
"Navigation_Flows": "Flows",
|
"Navigation_Flows": "Flows",
|
||||||
"Navigation_HelpFAQ": "Hilfe / FAQ",
|
"Navigation_HelpFAQ": "Hilfe / FAQ",
|
||||||
"Navigation_Integrations": "Integrationen",
|
"Navigation_Integrations": "Integrationen",
|
||||||
"Navigation_Maintenance": "Wartung",
|
"Navigation_Maintenance": "Wartung",
|
||||||
"Navigation_Monitoring": "Überwachung",
|
"Navigation_Monitoring": "\u00dcberwachung",
|
||||||
"Navigation_Network": "Netzwerk",
|
"Navigation_Network": "Netzwerk",
|
||||||
|
"Navigation_Notifications": "",
|
||||||
"Navigation_Plugins": "Plugins",
|
"Navigation_Plugins": "Plugins",
|
||||||
"Navigation_Presence": "Anwesenheit",
|
"Navigation_Presence": "Anwesenheit",
|
||||||
"Navigation_Report": "Bericht",
|
"Navigation_Report": "Bericht",
|
||||||
"Navigation_Settings": "Einstellungen",
|
"Navigation_Settings": "Einstellungen",
|
||||||
"Navigation_SystemInfo": "Systeminfo",
|
"Navigation_SystemInfo": "Systeminfo",
|
||||||
"Navigation_Workflows": "Arbeitsabläufe",
|
"Navigation_Workflows": "Arbeitsabl\u00e4ufe",
|
||||||
"Network_Assign": "Zum obigen <i class=\"fa fa-server\"></i> Netzwerkknoten zuweisen",
|
"Network_Assign": "Zum obigen <i class=\"fa fa-server\"></i> Netzwerkknoten zuweisen",
|
||||||
"Network_Cant_Assign": "Internet-Wurzelknoten kann nicht als äußerer Kindknoten zugewiesen werden.",
|
"Network_Cant_Assign": "Internet-Wurzelknoten kann nicht als \u00e4u\u00dferer Kindknoten zugewiesen werden.",
|
||||||
"Network_Configuration_Error": "Konfigurationsfehler",
|
"Network_Configuration_Error": "Konfigurationsfehler",
|
||||||
"Network_Connected": "Verbundene Geräte",
|
"Network_Connected": "Verbundene Ger\u00e4te",
|
||||||
"Network_ManageAdd": "Gerät hinzufügen",
|
"Network_ManageAdd": "Ger\u00e4t hinzuf\u00fcgen",
|
||||||
"Network_ManageAdd_Name": "Name des Gerätes",
|
"Network_ManageAdd_Name": "Name des Ger\u00e4tes",
|
||||||
"Network_ManageAdd_Name_text": "Name ohne Sonderzeichen",
|
"Network_ManageAdd_Name_text": "Name ohne Sonderzeichen",
|
||||||
"Network_ManageAdd_Port": "Portanzahl",
|
"Network_ManageAdd_Port": "Portanzahl",
|
||||||
"Network_ManageAdd_Port_text": "bei WLAN oder Powerline leer lassen",
|
"Network_ManageAdd_Port_text": "bei WLAN oder Powerline leer lassen",
|
||||||
"Network_ManageAdd_Submit": "Hinzufügen",
|
"Network_ManageAdd_Submit": "Hinzuf\u00fcgen",
|
||||||
"Network_ManageAdd_Type": "Gerätetyp",
|
"Network_ManageAdd_Type": "Ger\u00e4tetyp",
|
||||||
"Network_ManageAdd_Type_text": "-- Typ wählen --",
|
"Network_ManageAdd_Type_text": "-- Typ w\u00e4hlen --",
|
||||||
"Network_ManageAssign": "Zuweisen",
|
"Network_ManageAssign": "Zuweisen",
|
||||||
"Network_ManageDel": "Gerät löschen",
|
"Network_ManageDel": "Ger\u00e4t l\u00f6schen",
|
||||||
"Network_ManageDel_Name": "Gerät zum Löschen auswählen",
|
"Network_ManageDel_Name": "Ger\u00e4t zum L\u00f6schen ausw\u00e4hlen",
|
||||||
"Network_ManageDel_Name_text": "-- Gerät wählen --",
|
"Network_ManageDel_Name_text": "-- Ger\u00e4t w\u00e4hlen --",
|
||||||
"Network_ManageDel_Submit": "Löschen",
|
"Network_ManageDel_Submit": "L\u00f6schen",
|
||||||
"Network_ManageDevices": "Geräte verwalten",
|
"Network_ManageDevices": "Ger\u00e4te verwalten",
|
||||||
"Network_ManageEdit": "Gerät bearbeiten",
|
"Network_ManageEdit": "Ger\u00e4t bearbeiten",
|
||||||
"Network_ManageEdit_ID": "Gerät zum Bearbeiten auswählen",
|
"Network_ManageEdit_ID": "Ger\u00e4t zum Bearbeiten ausw\u00e4hlen",
|
||||||
"Network_ManageEdit_ID_text": "-- Gerät wählen --",
|
"Network_ManageEdit_ID_text": "-- Ger\u00e4t w\u00e4hlen --",
|
||||||
"Network_ManageEdit_Name": "Neuer Name",
|
"Network_ManageEdit_Name": "Neuer Name",
|
||||||
"Network_ManageEdit_Name_text": "Name ohne Sonderzeichen",
|
"Network_ManageEdit_Name_text": "Name ohne Sonderzeichen",
|
||||||
"Network_ManageEdit_Port": "Neue Portanzahl",
|
"Network_ManageEdit_Port": "Neue Portanzahl",
|
||||||
"Network_ManageEdit_Port_text": "bei WLAN oder Powerline leer lassen",
|
"Network_ManageEdit_Port_text": "bei WLAN oder Powerline leer lassen",
|
||||||
"Network_ManageEdit_Submit": "Speichern",
|
"Network_ManageEdit_Submit": "Speichern",
|
||||||
"Network_ManageEdit_Type": "Neuer Typ",
|
"Network_ManageEdit_Type": "Neuer Typ",
|
||||||
"Network_ManageEdit_Type_text": "-- Typ wählen --",
|
"Network_ManageEdit_Type_text": "-- Typ w\u00e4hlen --",
|
||||||
"Network_ManageLeaf": "Zuweisungen verwalten",
|
"Network_ManageLeaf": "Zuweisungen verwalten",
|
||||||
"Network_ManageUnassign": "Zuweisung aufheben",
|
"Network_ManageUnassign": "Zuweisung aufheben",
|
||||||
"Network_NoAssignedDevices": "Dieser Netzwerkknoten hat keine zugewiesenen Geräte (Kindknoten). Weise eins von unten zu oder gehe in den <b><i class=\"fa fa-info-circle\"></i> Details</b> Tab eines Gerätes in <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i> Geräte</b></a>, und weise dort das Gerät einem <b><i class=\"fa fa-server\"></i> Netzwerk Knoten</b> und einem <b><i class=\"fa fa-ethernet\"></i> Netzwerk Knoten Port</b> zu.",
|
"Network_NoAssignedDevices": "Dieser Netzwerkknoten hat keine zugewiesenen Ger\u00e4te (Kindknoten). Weise eins von unten zu oder gehe in den <b><i class=\"fa fa-info-circle\"></i> Details</b> Tab eines Ger\u00e4tes in <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i> Ger\u00e4te</b></a>, und weise dort das Ger\u00e4t einem <b><i class=\"fa fa-server\"></i> Netzwerk Knoten</b> und einem <b><i class=\"fa fa-ethernet\"></i> Netzwerk Knoten Port</b> zu.",
|
||||||
"Network_NoDevices": "Keine Geräte zum konfigurieren",
|
"Network_NoDevices": "Keine Ger\u00e4te zum konfigurieren",
|
||||||
"Network_Node": "Netzwerkknoten",
|
"Network_Node": "Netzwerkknoten",
|
||||||
"Network_Node_Name": "Knotenname",
|
"Network_Node_Name": "Knotenname",
|
||||||
"Network_Parent": "Übergeordnetes Netzwerkgerät",
|
"Network_Parent": "\u00dcbergeordnetes Netzwerkger\u00e4t",
|
||||||
"Network_Root": "",
|
"Network_Root": "",
|
||||||
"Network_Root_Not_Configured": "",
|
"Network_Root_Not_Configured": "",
|
||||||
"Network_Root_Unconfigurable": "Nicht konfigurierbare Wurzel",
|
"Network_Root_Unconfigurable": "Nicht konfigurierbare Wurzel",
|
||||||
"Network_Table_Hostname": "Gerätename",
|
"Network_Table_Hostname": "Ger\u00e4tename",
|
||||||
"Network_Table_IP": "IP",
|
"Network_Table_IP": "IP",
|
||||||
"Network_Table_State": "Status",
|
"Network_Table_State": "Status",
|
||||||
"Network_Title": "Netzwerkübersicht",
|
"Network_Title": "Netzwerk\u00fcbersicht",
|
||||||
"Network_UnassignedDevices": "Nicht zugewiesene Geräte",
|
"Network_UnassignedDevices": "Nicht zugewiesene Ger\u00e4te",
|
||||||
"PIALERT_WEB_PASSWORD_description": "Das Standardpasswort ist <code>123456</code>. Um das Passwort zu ändern, entweder <code>/app/back/pialert-cli</code> im Container starten oder <a onclick=\"toggleAllSettings()\" href=\"#SETPWD_RUN\"><code>SETPWD_RUN</code> Set password plugin</a> nutzen.",
|
"PIALERT_WEB_PASSWORD_description": "Das Standardpasswort ist <code>123456</code>. Um das Passwort zu \u00e4ndern, entweder <code>/app/back/pialert-cli</code> im Container starten oder <a onclick=\"toggleAllSettings()\" href=\"#SETPWD_RUN\"><code>SETPWD_RUN</code> Set password plugin</a> nutzen.",
|
||||||
"PIALERT_WEB_PASSWORD_name": "Login-Passwort",
|
"PIALERT_WEB_PASSWORD_name": "Login-Passwort",
|
||||||
"PIALERT_WEB_PROTECTION_description": "Ein Loginfenster wird angezeigt wenn aktiviert. Untere Beschreibung genau durchlesen falls Sie sich aus Ihrer Instanz aussperren.",
|
"PIALERT_WEB_PROTECTION_description": "Ein Loginfenster wird angezeigt wenn aktiviert. Untere Beschreibung genau durchlesen falls Sie sich aus Ihrer Instanz aussperren.",
|
||||||
"PIALERT_WEB_PROTECTION_name": "Login aktivieren",
|
"PIALERT_WEB_PROTECTION_name": "Login aktivieren",
|
||||||
"PLUGINS_KEEP_HIST_description": "Wie viele Plugin Scanresultate behalten werden (pro Plugin, nicht gerätespezifisch).",
|
"PLUGINS_KEEP_HIST_description": "Wie viele Plugin Scanresultate behalten werden (pro Plugin, nicht ger\u00e4tespezifisch).",
|
||||||
"PLUGINS_KEEP_HIST_name": "Plugins Verlauf",
|
"PLUGINS_KEEP_HIST_name": "Plugins Verlauf",
|
||||||
"PUSHSAFER_TOKEN_description": "Your secret Pushsafer API key (token).",
|
"PUSHSAFER_TOKEN_description": "Your secret Pushsafer API key (token).",
|
||||||
"PUSHSAFER_TOKEN_name": "Pushsafer token",
|
"PUSHSAFER_TOKEN_name": "Pushsafer token",
|
||||||
@@ -562,21 +563,21 @@
|
|||||||
"Presence_CalHead_quarter": "Quartal",
|
"Presence_CalHead_quarter": "Quartal",
|
||||||
"Presence_CalHead_week": "Woche",
|
"Presence_CalHead_week": "Woche",
|
||||||
"Presence_CalHead_year": "Jahr",
|
"Presence_CalHead_year": "Jahr",
|
||||||
"Presence_CallHead_Devices": "Geräte",
|
"Presence_CallHead_Devices": "Ger\u00e4te",
|
||||||
"Presence_Loading": "Laden...",
|
"Presence_Loading": "Laden...",
|
||||||
"Presence_Shortcut_AllDevices": "Meine Geräte",
|
"Presence_Shortcut_AllDevices": "Meine Ger\u00e4te",
|
||||||
"Presence_Shortcut_Archived": "Archiviert",
|
"Presence_Shortcut_Archived": "Archiviert",
|
||||||
"Presence_Shortcut_Connected": "Verbunden",
|
"Presence_Shortcut_Connected": "Verbunden",
|
||||||
"Presence_Shortcut_Devices": "Geräte",
|
"Presence_Shortcut_Devices": "Ger\u00e4te",
|
||||||
"Presence_Shortcut_DownAlerts": "Down Meldungen",
|
"Presence_Shortcut_DownAlerts": "Down Meldungen",
|
||||||
"Presence_Shortcut_Favorites": "Favoriten",
|
"Presence_Shortcut_Favorites": "Favoriten",
|
||||||
"Presence_Shortcut_NewDevices": "Neue Geräte",
|
"Presence_Shortcut_NewDevices": "Neue Ger\u00e4te",
|
||||||
"Presence_Title": "Anwesenheit pro Gerät",
|
"Presence_Title": "Anwesenheit pro Ger\u00e4t",
|
||||||
"REPORT_APPRISE_description": "Enable sending notifications via <a target=\"_blank\" href=\"https://hub.docker.com/r/caronc/apprise\">Apprise</a>.",
|
"REPORT_APPRISE_description": "Enable sending notifications via <a target=\"_blank\" href=\"https://hub.docker.com/r/caronc/apprise\">Apprise</a>.",
|
||||||
"REPORT_APPRISE_name": "Enable Apprise",
|
"REPORT_APPRISE_name": "Enable Apprise",
|
||||||
"REPORT_DASHBOARD_URL_description": "Diese URL wird als Basis fürs Erstellen von Links in E-Mails genutzt. Geben Sie die gesamte URL startend mit <code>http://</code> inklusive der genutzten Portnummer ein (keinen nachfolgenden Schrägstrich <code>/</code> nutzen).",
|
"REPORT_DASHBOARD_URL_description": "Diese URL wird als Basis f\u00fcrs Erstellen von Links in E-Mails genutzt. Geben Sie die gesamte URL startend mit <code>http://</code> inklusive der genutzten Portnummer ein (keinen nachfolgenden Schr\u00e4gstrich <code>/</code> nutzen).",
|
||||||
"REPORT_DASHBOARD_URL_name": "NetAlertX URL",
|
"REPORT_DASHBOARD_URL_name": "NetAlertX URL",
|
||||||
"REPORT_ERROR": "Die gesuchte Seite ist vorübergehend nicht verfügbar. Bitte versuchen Sie es nach ein paar Sekunden erneut",
|
"REPORT_ERROR": "Die gesuchte Seite ist vor\u00fcbergehend nicht verf\u00fcgbar. Bitte versuchen Sie es nach ein paar Sekunden erneut",
|
||||||
"REPORT_FROM_description": "Notification email subject line. Some SMTP servers need this to be an email.",
|
"REPORT_FROM_description": "Notification email subject line. Some SMTP servers need this to be an email.",
|
||||||
"REPORT_FROM_name": "Email subject",
|
"REPORT_FROM_name": "Email subject",
|
||||||
"REPORT_MAIL_description": "If enabled an email is sent out with a list of changes you nove subscribed to. Please also fill out all remaining settings related to the SMTP setup below. If facing issues, set <code>LOG_LEVEL</code> to <code>debug</code> and check the <a href=\"/maintenance.php#tab_Logging\">error log</a>.",
|
"REPORT_MAIL_description": "If enabled an email is sent out with a list of changes you nove subscribed to. Please also fill out all remaining settings related to the SMTP setup below. If facing issues, set <code>LOG_LEVEL</code> to <code>debug</code> and check the <a href=\"/maintenance.php#tab_Logging\">error log</a>.",
|
||||||
@@ -621,12 +622,12 @@
|
|||||||
"Systeminfo_CPU_Speed": "CPU-Geschwindigkeit:",
|
"Systeminfo_CPU_Speed": "CPU-Geschwindigkeit:",
|
||||||
"Systeminfo_CPU_Temp": "CPU-Temp:",
|
"Systeminfo_CPU_Temp": "CPU-Temp:",
|
||||||
"Systeminfo_CPU_Vendor": "CPU-Anbieter:",
|
"Systeminfo_CPU_Vendor": "CPU-Anbieter:",
|
||||||
"Systeminfo_Client_Resolution": "Browserauflösung:",
|
"Systeminfo_Client_Resolution": "Browseraufl\u00f6sung:",
|
||||||
"Systeminfo_Client_User_Agent": "Browser-Bezeichnung:",
|
"Systeminfo_Client_User_Agent": "Browser-Bezeichnung:",
|
||||||
"Systeminfo_General": "Allgemein",
|
"Systeminfo_General": "Allgemein",
|
||||||
"Systeminfo_General_Date": "Datum:",
|
"Systeminfo_General_Date": "Datum:",
|
||||||
"Systeminfo_General_Date2": "Datum2:",
|
"Systeminfo_General_Date2": "Datum2:",
|
||||||
"Systeminfo_General_Full_Date": "Vollständiges Datum:",
|
"Systeminfo_General_Full_Date": "Vollst\u00e4ndiges Datum:",
|
||||||
"Systeminfo_General_TimeZone": "Zeitzone:",
|
"Systeminfo_General_TimeZone": "Zeitzone:",
|
||||||
"Systeminfo_Memory": "Arbeitsspeicher",
|
"Systeminfo_Memory": "Arbeitsspeicher",
|
||||||
"Systeminfo_Memory_Total_Memory": "Gesamtspeicher:",
|
"Systeminfo_Memory_Total_Memory": "Gesamtspeicher:",
|
||||||
@@ -669,9 +670,9 @@
|
|||||||
"Systeminfo_Services_Description": "Dienstbeschreibung",
|
"Systeminfo_Services_Description": "Dienstbeschreibung",
|
||||||
"Systeminfo_Services_Name": "Dienstname",
|
"Systeminfo_Services_Name": "Dienstname",
|
||||||
"Systeminfo_Storage": "Speicher",
|
"Systeminfo_Storage": "Speicher",
|
||||||
"Systeminfo_Storage_Device": "Gerät:",
|
"Systeminfo_Storage_Device": "Ger\u00e4t:",
|
||||||
"Systeminfo_Storage_Mount": "Mountpunkt:",
|
"Systeminfo_Storage_Mount": "Mountpunkt:",
|
||||||
"Systeminfo_Storage_Size": "Größe:",
|
"Systeminfo_Storage_Size": "Gr\u00f6\u00dfe:",
|
||||||
"Systeminfo_Storage_Type": "Typ:",
|
"Systeminfo_Storage_Type": "Typ:",
|
||||||
"Systeminfo_Storage_Usage": "Speicherverwendung",
|
"Systeminfo_Storage_Usage": "Speicherverwendung",
|
||||||
"Systeminfo_Storage_Usage_Free": "Frei:",
|
"Systeminfo_Storage_Usage_Free": "Frei:",
|
||||||
@@ -687,23 +688,23 @@
|
|||||||
"Systeminfo_System_System": "System:",
|
"Systeminfo_System_System": "System:",
|
||||||
"Systeminfo_System_Uname": "Uname:",
|
"Systeminfo_System_Uname": "Uname:",
|
||||||
"Systeminfo_System_Uptime": "Betriebszeit:",
|
"Systeminfo_System_Uptime": "Betriebszeit:",
|
||||||
"Systeminfo_This_Client": "Dieses Gerät",
|
"Systeminfo_This_Client": "Dieses Ger\u00e4t",
|
||||||
"Systeminfo_USB_Devices": "USB-Geräte",
|
"Systeminfo_USB_Devices": "USB-Ger\u00e4te",
|
||||||
"TICKER_MIGRATE_TO_NETALERTX": "",
|
"TICKER_MIGRATE_TO_NETALERTX": "",
|
||||||
"TIMEZONE_description": "Zeitzone um Statistiken korrekt darzustellen. Finde deine Zeitzone <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\" rel=\"nofollow\">hier</a>.",
|
"TIMEZONE_description": "Zeitzone um Statistiken korrekt darzustellen. Finde deine Zeitzone <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\" rel=\"nofollow\">hier</a>.",
|
||||||
"TIMEZONE_name": "Zeitzone",
|
"TIMEZONE_name": "Zeitzone",
|
||||||
"UI_DEV_SECTIONS_description": "Auswählen, welche Elemente in der Geräteseite versteckt werden sollen.",
|
"UI_DEV_SECTIONS_description": "Ausw\u00e4hlen, welche Elemente in der Ger\u00e4teseite versteckt werden sollen.",
|
||||||
"UI_DEV_SECTIONS_name": "Geräteauswahl verstecken",
|
"UI_DEV_SECTIONS_name": "Ger\u00e4teauswahl verstecken",
|
||||||
"UI_ICONS_description": "",
|
"UI_ICONS_description": "",
|
||||||
"UI_ICONS_name": "Vorgefertigte Icons",
|
"UI_ICONS_name": "Vorgefertigte Icons",
|
||||||
"UI_LANG_description": "Bevorzugte Oberflächensprache auswählen. Du möchtest beim Übersetzen helfen? Gerne hier: <a href=\"https://hosted.weblate.org/projects/pialert/core/\" target=\"_blank\">Weblate</a>.",
|
"UI_LANG_description": "Bevorzugte Oberfl\u00e4chensprache ausw\u00e4hlen. Du m\u00f6chtest beim \u00dcbersetzen helfen? Gerne hier: <a href=\"https://hosted.weblate.org/projects/pialert/core/\" target=\"_blank\">Weblate</a>.",
|
||||||
"UI_LANG_name": "UI Sprache",
|
"UI_LANG_name": "UI Sprache",
|
||||||
"UI_MY_DEVICES_description": "",
|
"UI_MY_DEVICES_description": "",
|
||||||
"UI_MY_DEVICES_name": "In \"Meine Geräte\" anzeigen",
|
"UI_MY_DEVICES_name": "In \"Meine Ger\u00e4te\" anzeigen",
|
||||||
"UI_NOT_RANDOM_MAC_description": "",
|
"UI_NOT_RANDOM_MAC_description": "",
|
||||||
"UI_NOT_RANDOM_MAC_name": "",
|
"UI_NOT_RANDOM_MAC_name": "",
|
||||||
"UI_PRESENCE_description": "Auswählen, welche Status im <b>Gerätepräsenz im Laufe der Zeit</b>-Diagramm in der <a href=\"/devices.php\" target=\"_blank\">Geräte</a>-Seite angzeigt werden sollen. (<code>STRG + klicken</code> zum aus-/abwählen).",
|
"UI_PRESENCE_description": "Ausw\u00e4hlen, welche Status im <b>Ger\u00e4tepr\u00e4senz im Laufe der Zeit</b>-Diagramm in der <a href=\"/devices.php\" target=\"_blank\">Ger\u00e4te</a>-Seite angzeigt werden sollen. (<code>STRG + klicken</code> zum aus-/abw\u00e4hlen).",
|
||||||
"UI_PRESENCE_name": "Anzeige im Präsenzdiagramm",
|
"UI_PRESENCE_name": "Anzeige im Pr\u00e4senzdiagramm",
|
||||||
"UI_REFRESH_description": "",
|
"UI_REFRESH_description": "",
|
||||||
"UI_REFRESH_name": "Automatisch Aktualisieren",
|
"UI_REFRESH_name": "Automatisch Aktualisieren",
|
||||||
"WEBHOOK_PAYLOAD_description": "The Webhook payload data format for the <code>body</code> > <code>attachments</code> > <code>text</code> attribute in the payload json. See an example of the payload <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/front/report_templates/webhook_json_sample.json\">here</a>. (e.g.: for discord use <code>text</code>)",
|
"WEBHOOK_PAYLOAD_description": "The Webhook payload data format for the <code>body</code> > <code>attachments</code> > <code>text</code> attribute in the payload json. See an example of the payload <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/front/report_templates/webhook_json_sample.json\">here</a>. (e.g.: for discord use <code>text</code>)",
|
||||||
@@ -723,7 +724,7 @@
|
|||||||
"general_event_title": "Executing an ad-hoc event",
|
"general_event_title": "Executing an ad-hoc event",
|
||||||
"report_guid": "",
|
"report_guid": "",
|
||||||
"report_guid_missing": "",
|
"report_guid_missing": "",
|
||||||
"report_select_format": "Format auswählen:",
|
"report_select_format": "Format ausw\u00e4hlen:",
|
||||||
"report_time": "Benachrichtigungszeit:",
|
"report_time": "Benachrichtigungszeit:",
|
||||||
"run_event_icon": "fa-play",
|
"run_event_icon": "fa-play",
|
||||||
"run_event_tooltip": "Enable the setting and save your changes at first before you run it.",
|
"run_event_tooltip": "Enable the setting and save your changes at first before you run it.",
|
||||||
@@ -731,7 +732,7 @@
|
|||||||
"settings_core_label": "",
|
"settings_core_label": "",
|
||||||
"settings_device_scanners": "",
|
"settings_device_scanners": "",
|
||||||
"settings_device_scanners_icon": "fa-solid fa-magnifying-glass-plus",
|
"settings_device_scanners_icon": "fa-solid fa-magnifying-glass-plus",
|
||||||
"settings_device_scanners_label": "Gerätescanner",
|
"settings_device_scanners_label": "Ger\u00e4tescanner",
|
||||||
"settings_enabled": "Aktive Einstellungen",
|
"settings_enabled": "Aktive Einstellungen",
|
||||||
"settings_enabled_icon": "fa-solid fa-toggle-on",
|
"settings_enabled_icon": "fa-solid fa-toggle-on",
|
||||||
"settings_expand_all": "Expand all",
|
"settings_expand_all": "Expand all",
|
||||||
@@ -745,11 +746,11 @@
|
|||||||
"settings_other_scanners_label": "Andere Scanner",
|
"settings_other_scanners_label": "Andere Scanner",
|
||||||
"settings_publishers": "",
|
"settings_publishers": "",
|
||||||
"settings_publishers_icon": "fa-solid fa-comment-dots",
|
"settings_publishers_icon": "fa-solid fa-comment-dots",
|
||||||
"settings_publishers_label": "Veröffentlicher",
|
"settings_publishers_label": "Ver\u00f6ffentlicher",
|
||||||
"settings_saved": "<br/>Settings saved to the <code>app.conf</code> file.<br/><br/>A time-stamped backup of the previous file created. <br/><br/> Reloading...<br/>",
|
"settings_saved": "<br/>Settings saved to the <code>app.conf</code> file.<br/><br/>A time-stamped backup of the previous file created. <br/><br/> Reloading...<br/>",
|
||||||
"settings_system_icon": "fa-solid fa-gear",
|
"settings_system_icon": "fa-solid fa-gear",
|
||||||
"settings_system_label": "System",
|
"settings_system_label": "System",
|
||||||
"settings_update_item_warning": "",
|
"settings_update_item_warning": "",
|
||||||
"test_event_icon": "fa-vial-circle-check",
|
"test_event_icon": "fa-vial-circle-check",
|
||||||
"test_event_tooltip": "Save your changes at first before you test your settings."
|
"test_event_tooltip": "Save your changes at first before you test your settings."
|
||||||
}
|
}
|
||||||
@@ -453,6 +453,7 @@
|
|||||||
"Navigation_Maintenance": "Maintenance",
|
"Navigation_Maintenance": "Maintenance",
|
||||||
"Navigation_Monitoring": "Monitoring",
|
"Navigation_Monitoring": "Monitoring",
|
||||||
"Navigation_Network": "Network",
|
"Navigation_Network": "Network",
|
||||||
|
"Navigation_Notifications": "Notifications",
|
||||||
"Navigation_Plugins": "Plugins",
|
"Navigation_Plugins": "Plugins",
|
||||||
"Navigation_Presence": "Presence",
|
"Navigation_Presence": "Presence",
|
||||||
"Navigation_Report": "Report",
|
"Navigation_Report": "Report",
|
||||||
@@ -656,8 +657,8 @@
|
|||||||
"settings_expand_all": "Expand all",
|
"settings_expand_all": "Expand all",
|
||||||
"settings_imported": "Last time settings were imported from the app.conf file",
|
"settings_imported": "Last time settings were imported from the app.conf file",
|
||||||
"settings_imported_label": "Settings imported",
|
"settings_imported_label": "Settings imported",
|
||||||
"settings_missing": "Not all settings loaded! High load on the database or app startup sequence. Click the 🔄 reload button in the top.",
|
"settings_missing": "Not all settings loaded! High load on the database or app startup sequence. Click the \ud83d\udd04 reload button in the top.",
|
||||||
"settings_missing_block": "Error: Settings not loaded correctly. Click the reload button 🔄 at the top, alternatively, check the browser log for details (F12).",
|
"settings_missing_block": "Error: Settings not loaded correctly. Click the reload button \ud83d\udd04 at the top, alternatively, check the browser log for details (F12).",
|
||||||
"settings_old": "Importing settings and re-initializing...",
|
"settings_old": "Importing settings and re-initializing...",
|
||||||
"settings_other_scanners": "Other, non-device scanner plugins that are currently enabled.",
|
"settings_other_scanners": "Other, non-device scanner plugins that are currently enabled.",
|
||||||
"settings_other_scanners_icon": "fa-solid fa-recycle",
|
"settings_other_scanners_icon": "fa-solid fa-recycle",
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -453,6 +453,7 @@
|
|||||||
"Navigation_Maintenance": "",
|
"Navigation_Maintenance": "",
|
||||||
"Navigation_Monitoring": "Surveillance",
|
"Navigation_Monitoring": "Surveillance",
|
||||||
"Navigation_Network": "R\u00e9seau",
|
"Navigation_Network": "R\u00e9seau",
|
||||||
|
"Navigation_Notifications": "",
|
||||||
"Navigation_Plugins": "Greffons",
|
"Navigation_Plugins": "Greffons",
|
||||||
"Navigation_Presence": "Pr\u00e9sence",
|
"Navigation_Presence": "Pr\u00e9sence",
|
||||||
"Navigation_Report": "",
|
"Navigation_Report": "",
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"API_CUSTOM_SQL_description": "Puoi specificare una query SQL personalizzata che genererà un file JSON e quindi lo esporrà tramite l'<a href=\"/api/table_custom_endpoint.json\" target=\"_blank\"><code>table_custom_endpoint.json</code>endpoint del file</a>.",
|
"API_CUSTOM_SQL_description": "Puoi specificare una query SQL personalizzata che generer\u00e0 un file JSON e quindi lo esporr\u00e0 tramite l'<a href=\"/api/table_custom_endpoint.json\" target=\"_blank\"><code>table_custom_endpoint.json</code>endpoint del file</a>.",
|
||||||
"API_CUSTOM_SQL_name": "Endpoint personalizzato",
|
"API_CUSTOM_SQL_name": "Endpoint personalizzato",
|
||||||
"API_display_name": "API",
|
"API_display_name": "API",
|
||||||
"API_icon": "<i class=\"fa fa-arrow-down-up-across-line\"></i>",
|
"API_icon": "<i class=\"fa fa-arrow-down-up-across-line\"></i>",
|
||||||
@@ -27,15 +27,15 @@
|
|||||||
"BackDevDetail_Actions_Ask_Run": "Vuoi eseguire questa azione?",
|
"BackDevDetail_Actions_Ask_Run": "Vuoi eseguire questa azione?",
|
||||||
"BackDevDetail_Actions_Not_Registered": "Azione non registrata: ",
|
"BackDevDetail_Actions_Not_Registered": "Azione non registrata: ",
|
||||||
"BackDevDetail_Actions_Title_Run": "Esegui azione",
|
"BackDevDetail_Actions_Title_Run": "Esegui azione",
|
||||||
"BackDevDetail_Copy_Ask": "Copiare i dettagli dal dispositivo dall'elenco a discesa (tutto in questa pagina verrà sovrascritto)?",
|
"BackDevDetail_Copy_Ask": "Copiare i dettagli dal dispositivo dall'elenco a discesa (tutto in questa pagina verr\u00e0 sovrascritto)?",
|
||||||
"BackDevDetail_Copy_Title": "Copia dettagli",
|
"BackDevDetail_Copy_Title": "Copia dettagli",
|
||||||
"BackDevDetail_Tools_WOL_error": "Il comando NON è stato eseguito.",
|
"BackDevDetail_Tools_WOL_error": "Il comando NON \u00e8 stato eseguito.",
|
||||||
"BackDevDetail_Tools_WOL_okay": "Il comando è stato eseguito.",
|
"BackDevDetail_Tools_WOL_okay": "Il comando \u00e8 stato eseguito.",
|
||||||
"BackDevices_Arpscan_disabled": "Arp-Scan Disabilitata",
|
"BackDevices_Arpscan_disabled": "Arp-Scan Disabilitata",
|
||||||
"BackDevices_Arpscan_enabled": "Arp-Scan Abilitata",
|
"BackDevices_Arpscan_enabled": "Arp-Scan Abilitata",
|
||||||
"BackDevices_Backup_CopError": "Non è stato possibile salvare il database originale.",
|
"BackDevices_Backup_CopError": "Non \u00e8 stato possibile salvare il database originale.",
|
||||||
"BackDevices_Backup_Failed": "Il backup è stato eseguito parzialmente. L'archivio non è stato creato o è vuoto.",
|
"BackDevices_Backup_Failed": "Il backup \u00e8 stato eseguito parzialmente. L'archivio non \u00e8 stato creato o \u00e8 vuoto.",
|
||||||
"BackDevices_Backup_okay": "Il backup è stato eseguito correttamente con il nuovo archivio",
|
"BackDevices_Backup_okay": "Il backup \u00e8 stato eseguito correttamente con il nuovo archivio",
|
||||||
"BackDevices_DBTools_DelDevError_a": "Errore durante l'eliminazione del Dispositivo",
|
"BackDevices_DBTools_DelDevError_a": "Errore durante l'eliminazione del Dispositivo",
|
||||||
"BackDevices_DBTools_DelDevError_b": "Errore durante l'eliminazione dei Dispositivi",
|
"BackDevices_DBTools_DelDevError_b": "Errore durante l'eliminazione dei Dispositivi",
|
||||||
"BackDevices_DBTools_DelDev_a": "Dispositivo eliminato",
|
"BackDevices_DBTools_DelDev_a": "Dispositivo eliminato",
|
||||||
@@ -43,28 +43,28 @@
|
|||||||
"BackDevices_DBTools_DelEvents": "Eventi eliminati",
|
"BackDevices_DBTools_DelEvents": "Eventi eliminati",
|
||||||
"BackDevices_DBTools_DelEventsError": "Errore durante l'eliminazione degli Eventi",
|
"BackDevices_DBTools_DelEventsError": "Errore durante l'eliminazione degli Eventi",
|
||||||
"BackDevices_DBTools_ImportCSV": "I dispositivi sono stati importati correttamente dal file CSV.",
|
"BackDevices_DBTools_ImportCSV": "I dispositivi sono stati importati correttamente dal file CSV.",
|
||||||
"BackDevices_DBTools_ImportCSVError": "Non è stato possibile importare il file CSV. Assicurati che il formato del file sia corretto.",
|
"BackDevices_DBTools_ImportCSVError": "Non \u00e8 stato possibile importare il file CSV. Assicurati che il formato del file sia corretto.",
|
||||||
"BackDevices_DBTools_ImportCSVMissing": "Il file CSV non è stato trovato in <b>/config/devices.csv.</b>",
|
"BackDevices_DBTools_ImportCSVMissing": "Il file CSV non \u00e8 stato trovato in <b>/config/devices.csv.</b>",
|
||||||
"BackDevices_DBTools_Purge": "I backup meno recenti sono stati eliminati",
|
"BackDevices_DBTools_Purge": "I backup meno recenti sono stati eliminati",
|
||||||
"BackDevices_DBTools_UpdDev": "Dispositivo aggiornato correttamente",
|
"BackDevices_DBTools_UpdDev": "Dispositivo aggiornato correttamente",
|
||||||
"BackDevices_DBTools_UpdDevError": "Errore durante l'aggiornamento del Dispositivo",
|
"BackDevices_DBTools_UpdDevError": "Errore durante l'aggiornamento del Dispositivo",
|
||||||
"BackDevices_DBTools_Upgrade": "Database aggiornato correttamente",
|
"BackDevices_DBTools_Upgrade": "Database aggiornato correttamente",
|
||||||
"BackDevices_DBTools_UpgradeError": "Aggiornamento del Database fallito",
|
"BackDevices_DBTools_UpgradeError": "Aggiornamento del Database fallito",
|
||||||
"BackDevices_Device_UpdDevError": "Errore durante l'aggiornamento dei dispositivi, riprova più tardi. Il database è probabilmente bloccato a causa di un'attività in corso.",
|
"BackDevices_Device_UpdDevError": "Errore durante l'aggiornamento dei dispositivi, riprova pi\u00f9 tardi. Il database \u00e8 probabilmente bloccato a causa di un'attivit\u00e0 in corso.",
|
||||||
"BackDevices_Restore_CopError": "Non è stato possibile salvare il database originale.",
|
"BackDevices_Restore_CopError": "Non \u00e8 stato possibile salvare il database originale.",
|
||||||
"BackDevices_Restore_Failed": "Ripristino fallito. Per favore effettuare il ripristino del backup manualmente.",
|
"BackDevices_Restore_Failed": "Ripristino fallito. Per favore effettuare il ripristino del backup manualmente.",
|
||||||
"BackDevices_Restore_okay": "Ripristino eseguito correttamente.",
|
"BackDevices_Restore_okay": "Ripristino eseguito correttamente.",
|
||||||
"BackDevices_darkmode_disabled": "Darkmode Disabilitata",
|
"BackDevices_darkmode_disabled": "Darkmode Disabilitata",
|
||||||
"BackDevices_darkmode_enabled": "Darkmode Abilitata",
|
"BackDevices_darkmode_enabled": "Darkmode Abilitata",
|
||||||
"DAYS_TO_KEEP_EVENTS_description": "Questa è un'impostazione di manutenzione. Specifica il numero di giorni delle voci degli eventi che verranno conservati. Tutti gli eventi più vecchi verranno eliminati periodicamente. Si applica anche alla cronologia degli eventi del plugin (Plugin Events History).",
|
"DAYS_TO_KEEP_EVENTS_description": "Questa \u00e8 un'impostazione di manutenzione. Specifica il numero di giorni delle voci degli eventi che verranno conservati. Tutti gli eventi pi\u00f9 vecchi verranno eliminati periodicamente. Si applica anche alla cronologia degli eventi del plugin (Plugin Events History).",
|
||||||
"DAYS_TO_KEEP_EVENTS_name": "Elimina eventi meno recenti di",
|
"DAYS_TO_KEEP_EVENTS_name": "Elimina eventi meno recenti di",
|
||||||
"DevDetail_Copy_Device_Title": "<i class=\"fa fa-copy\"></i> Copia dettagli dal dispositivo",
|
"DevDetail_Copy_Device_Title": "<i class=\"fa fa-copy\"></i> Copia dettagli dal dispositivo",
|
||||||
"DevDetail_Copy_Device_Tooltip": "Copia i dettagli dal dispositivo dall'elenco a discesa. Tutto in questa pagina verrà sovrascritto",
|
"DevDetail_Copy_Device_Tooltip": "Copia i dettagli dal dispositivo dall'elenco a discesa. Tutto in questa pagina verr\u00e0 sovrascritto",
|
||||||
"DevDetail_EveandAl_AlertAllEvents": "Notifica Tutti gli Eventi",
|
"DevDetail_EveandAl_AlertAllEvents": "Notifica Tutti gli Eventi",
|
||||||
"DevDetail_EveandAl_AlertDown": "Avviso se down",
|
"DevDetail_EveandAl_AlertDown": "Avviso se down",
|
||||||
"DevDetail_EveandAl_Archived": "Archiviato",
|
"DevDetail_EveandAl_Archived": "Archiviato",
|
||||||
"DevDetail_EveandAl_NewDevice": "Nuovo Dispositivo",
|
"DevDetail_EveandAl_NewDevice": "Nuovo Dispositivo",
|
||||||
"DevDetail_EveandAl_NewDevice_Tooltip": "Mostrerà il Nuovo stato del dispositivo e lo includerà negli elenchi quando il filtro Nuovi dispositivi è attivo. Non influisce sulle notifiche.",
|
"DevDetail_EveandAl_NewDevice_Tooltip": "Mostrer\u00e0 il Nuovo stato del dispositivo e lo includer\u00e0 negli elenchi quando il filtro Nuovi dispositivi \u00e8 attivo. Non influisce sulle notifiche.",
|
||||||
"DevDetail_EveandAl_RandomMAC": "Indirizzo MAC casuale",
|
"DevDetail_EveandAl_RandomMAC": "Indirizzo MAC casuale",
|
||||||
"DevDetail_EveandAl_ScanCycle": "Scansiona dispositivo",
|
"DevDetail_EveandAl_ScanCycle": "Scansiona dispositivo",
|
||||||
"DevDetail_EveandAl_ScanCycle_a": "Scansiona dispositivo",
|
"DevDetail_EveandAl_ScanCycle_a": "Scansiona dispositivo",
|
||||||
@@ -89,27 +89,27 @@
|
|||||||
"DevDetail_MainInfo_Type": "Tipo",
|
"DevDetail_MainInfo_Type": "Tipo",
|
||||||
"DevDetail_MainInfo_Vendor": "Venditore",
|
"DevDetail_MainInfo_Vendor": "Venditore",
|
||||||
"DevDetail_MainInfo_mac": "MAC",
|
"DevDetail_MainInfo_mac": "MAC",
|
||||||
"DevDetail_Network_Node_hover": "Seleziona il nodo padre a cui il dispositivo è connesso, per popolare l'Alberatura di Rete.",
|
"DevDetail_Network_Node_hover": "Seleziona il nodo padre a cui il dispositivo \u00e8 connesso, per popolare l'Alberatura di Rete.",
|
||||||
"DevDetail_Network_Port_hover": "La porta del nodo padre a cui questo dispositivo è connesso. Se lasciato vuoto, verrà mostrata l'icona WiFi all'interno dell'Alberatura di Rete.",
|
"DevDetail_Network_Port_hover": "La porta del nodo padre a cui questo dispositivo \u00e8 connesso. Se lasciato vuoto, verr\u00e0 mostrata l'icona WiFi all'interno dell'Alberatura di Rete.",
|
||||||
"DevDetail_Nmap_Scans": "Scansione Nmap manuale",
|
"DevDetail_Nmap_Scans": "Scansione Nmap manuale",
|
||||||
"DevDetail_Nmap_Scans_desc": "Qui puoi eseguire scansioni manuali NMAP. Puoi anche pianificare scansioni automatiche NMAP attraverso il plugin Servizi e Porte (NMAP). Vai alle <a href='/settings.php' target='_blank'>Impostazioni</a> per scoprire di più",
|
"DevDetail_Nmap_Scans_desc": "Qui puoi eseguire scansioni manuali NMAP. Puoi anche pianificare scansioni automatiche NMAP attraverso il plugin Servizi e Porte (NMAP). Vai alle <a href='/settings.php' target='_blank'>Impostazioni</a> per scoprire di pi\u00f9",
|
||||||
"DevDetail_Nmap_buttonDefault": "Scansione predefinita",
|
"DevDetail_Nmap_buttonDefault": "Scansione predefinita",
|
||||||
"DevDetail_Nmap_buttonDefault_text": "Scansione predefinita: Nmap scansiona 1000 porte per ogni protocollo richiesto. Questo dovrebbe coprire circa il 93% delle porte TCP e il 49% delle porte UDP. (circa 5 secondi)",
|
"DevDetail_Nmap_buttonDefault_text": "Scansione predefinita: Nmap scansiona 1000 porte per ogni protocollo richiesto. Questo dovrebbe coprire circa il 93% delle porte TCP e il 49% delle porte UDP. (circa 5 secondi)",
|
||||||
"DevDetail_Nmap_buttonDetail": "Scansione dettagliata",
|
"DevDetail_Nmap_buttonDetail": "Scansione dettagliata",
|
||||||
"DevDetail_Nmap_buttonDetail_text": "Scansione dettagliata: scansione predefinita con rilevamento del sistema operativo abilitato, rilevamento della versione, scansione degli script e traceroute (fino a 30 secondi o più)",
|
"DevDetail_Nmap_buttonDetail_text": "Scansione dettagliata: scansione predefinita con rilevamento del sistema operativo abilitato, rilevamento della versione, scansione degli script e traceroute (fino a 30 secondi o pi\u00f9)",
|
||||||
"DevDetail_Nmap_buttonFast": "Scansione Veloce",
|
"DevDetail_Nmap_buttonFast": "Scansione Veloce",
|
||||||
"DevDetail_Nmap_buttonFast_text": "Scansione Veloce: Scansiona meno porte (100) della scansione predefinita (pochi secondi)",
|
"DevDetail_Nmap_buttonFast_text": "Scansione Veloce: Scansiona meno porte (100) della scansione predefinita (pochi secondi)",
|
||||||
"DevDetail_Nmap_buttonSkipDiscovery": "Salta rilevazione host",
|
"DevDetail_Nmap_buttonSkipDiscovery": "Salta rilevazione host",
|
||||||
"DevDetail_Nmap_buttonSkipDiscovery_text": "Salta rilevamento host (opzione -Pn): scansione predefinita senza rilevamento host",
|
"DevDetail_Nmap_buttonSkipDiscovery_text": "Salta rilevamento host (opzione -Pn): scansione predefinita senza rilevamento host",
|
||||||
"DevDetail_Nmap_resultsLink": "Puoi lasciare questa pagina dopo aver avviato una scansione. I risultati saranno disponibili nel file <code>app_front.log</code>.",
|
"DevDetail_Nmap_resultsLink": "Puoi lasciare questa pagina dopo aver avviato una scansione. I risultati saranno disponibili nel file <code>app_front.log</code>.",
|
||||||
"DevDetail_Owner_hover": "Chi è il proprietario di questo dispositivo. Campo a testo libero.",
|
"DevDetail_Owner_hover": "Chi \u00e8 il proprietario di questo dispositivo. Campo a testo libero.",
|
||||||
"DevDetail_Periodselect_All": "Tutte le info",
|
"DevDetail_Periodselect_All": "Tutte le info",
|
||||||
"DevDetail_Periodselect_LastMonth": "Ultimo Mese",
|
"DevDetail_Periodselect_LastMonth": "Ultimo Mese",
|
||||||
"DevDetail_Periodselect_LastWeek": "Ultima Settimana",
|
"DevDetail_Periodselect_LastWeek": "Ultima Settimana",
|
||||||
"DevDetail_Periodselect_LastYear": "Ultimo Anno",
|
"DevDetail_Periodselect_LastYear": "Ultimo Anno",
|
||||||
"DevDetail_Periodselect_today": "Oggi",
|
"DevDetail_Periodselect_today": "Oggi",
|
||||||
"DevDetail_Run_Actions_Title": "<i class=\"fa fa-play\"></i> Esegui azione su questo dispositivo",
|
"DevDetail_Run_Actions_Title": "<i class=\"fa fa-play\"></i> Esegui azione su questo dispositivo",
|
||||||
"DevDetail_Run_Actions_Tooltip": "Esegui un'azione sul dispositivo corrente dal menù a tendina.",
|
"DevDetail_Run_Actions_Tooltip": "Esegui un'azione sul dispositivo corrente dal men\u00f9 a tendina.",
|
||||||
"DevDetail_SessionInfo_FirstSession": "Prima Sessione",
|
"DevDetail_SessionInfo_FirstSession": "Prima Sessione",
|
||||||
"DevDetail_SessionInfo_LastIP": "Ultimo IP",
|
"DevDetail_SessionInfo_LastIP": "Ultimo IP",
|
||||||
"DevDetail_SessionInfo_LastSession": "Ultima Sessione",
|
"DevDetail_SessionInfo_LastSession": "Ultima Sessione",
|
||||||
@@ -146,43 +146,43 @@
|
|||||||
"DevDetail_Tab_Presence": "<i class=\"fa fa-calendar\"></i> Presenza",
|
"DevDetail_Tab_Presence": "<i class=\"fa fa-calendar\"></i> Presenza",
|
||||||
"DevDetail_Tab_Sessions": "<i class=\"fa fa-list-ol\"></i> Sessioni",
|
"DevDetail_Tab_Sessions": "<i class=\"fa fa-list-ol\"></i> Sessioni",
|
||||||
"DevDetail_Tab_Tools": "<i class=\"fa fa-screwdriver-wrench\"></i> Strumenti",
|
"DevDetail_Tab_Tools": "<i class=\"fa fa-screwdriver-wrench\"></i> Strumenti",
|
||||||
"DevDetail_Tab_Tools_Internet_Info_Description": "Lo strumento Informazioni Internet visualizza informazioni sulla connessione Internet, come indirizzo IP, città, paese, prefisso e fuso orario.",
|
"DevDetail_Tab_Tools_Internet_Info_Description": "Lo strumento Informazioni Internet visualizza informazioni sulla connessione Internet, come indirizzo IP, citt\u00e0, paese, prefisso e fuso orario.",
|
||||||
"DevDetail_Tab_Tools_Internet_Info_Error": "Si è verificato un errore",
|
"DevDetail_Tab_Tools_Internet_Info_Error": "Si \u00e8 verificato un errore",
|
||||||
"DevDetail_Tab_Tools_Internet_Info_Start": "Avvia Info Internet",
|
"DevDetail_Tab_Tools_Internet_Info_Start": "Avvia Info Internet",
|
||||||
"DevDetail_Tab_Tools_Internet_Info_Title": "Info Internet",
|
"DevDetail_Tab_Tools_Internet_Info_Title": "Info Internet",
|
||||||
"DevDetail_Tab_Tools_Nslookup_Description": "Nslookup è uno strumento a riga di comando utilizzato per interrogare il Domain Name System (DNS). DNS è u sistema di traduzione dei domini, come www.google.com, in indirizzi IP, come 172.217.0.142.",
|
"DevDetail_Tab_Tools_Nslookup_Description": "Nslookup \u00e8 uno strumento a riga di comando utilizzato per interrogare il Domain Name System (DNS). DNS \u00e8 u sistema di traduzione dei domini, come www.google.com, in indirizzi IP, come 172.217.0.142.",
|
||||||
"DevDetail_Tab_Tools_Nslookup_Error": "Errore: l'indirizzo IP non è valido",
|
"DevDetail_Tab_Tools_Nslookup_Error": "Errore: l'indirizzo IP non \u00e8 valido",
|
||||||
"DevDetail_Tab_Tools_Nslookup_Start": "Avvia Nslookup",
|
"DevDetail_Tab_Tools_Nslookup_Start": "Avvia Nslookup",
|
||||||
"DevDetail_Tab_Tools_Nslookup_Title": "Nslookup",
|
"DevDetail_Tab_Tools_Nslookup_Title": "Nslookup",
|
||||||
"DevDetail_Tab_Tools_Speedtest_Description": "The strumento Speedtest misura la velocità di download, la velocità di upload e la latenza della connessione internet.",
|
"DevDetail_Tab_Tools_Speedtest_Description": "The strumento Speedtest misura la velocit\u00e0 di download, la velocit\u00e0 di upload e la latenza della connessione internet.",
|
||||||
"DevDetail_Tab_Tools_Speedtest_Start": "Avvia Speedtest",
|
"DevDetail_Tab_Tools_Speedtest_Start": "Avvia Speedtest",
|
||||||
"DevDetail_Tab_Tools_Speedtest_Title": "Test velocità online",
|
"DevDetail_Tab_Tools_Speedtest_Title": "Test velocit\u00e0 online",
|
||||||
"DevDetail_Tab_Tools_Traceroute_Description": "Traceroute è un comando diagnostico di rete utilizzato per tracciare il percorso seguito dai pacchetti di dati da un host a un altro.<br><br>Il comando utilizza l'Internet Control Message Protocol (ICMP) per inviare pacchetti ai nodi intermedi sul percorso, ciascun nodo intermedio risponde con un pacchetto di timeout ICMP (TTL timeout).<br><br>L'output del comando traceroute visualizza l'indirizzo IP di ciascun nodo intermedio sul percorso.<br><br>Il comando traceroute può essere utilizzato per diagnosticare problemi di rete, come ritardi, perdita di pacchetti e percorsi bloccati.<br><br>Può anche essere utilizzato per identificare la posizione di un nodo intermedio su una rete.",
|
"DevDetail_Tab_Tools_Traceroute_Description": "Traceroute \u00e8 un comando diagnostico di rete utilizzato per tracciare il percorso seguito dai pacchetti di dati da un host a un altro.<br><br>Il comando utilizza l'Internet Control Message Protocol (ICMP) per inviare pacchetti ai nodi intermedi sul percorso, ciascun nodo intermedio risponde con un pacchetto di timeout ICMP (TTL timeout).<br><br>L'output del comando traceroute visualizza l'indirizzo IP di ciascun nodo intermedio sul percorso.<br><br>Il comando traceroute pu\u00f2 essere utilizzato per diagnosticare problemi di rete, come ritardi, perdita di pacchetti e percorsi bloccati.<br><br>Pu\u00f2 anche essere utilizzato per identificare la posizione di un nodo intermedio su una rete.",
|
||||||
"DevDetail_Tab_Tools_Traceroute_Error": "Errore: l'indirizzo IP non è valido",
|
"DevDetail_Tab_Tools_Traceroute_Error": "Errore: l'indirizzo IP non \u00e8 valido",
|
||||||
"DevDetail_Tab_Tools_Traceroute_Start": "Avvia Traceroute",
|
"DevDetail_Tab_Tools_Traceroute_Start": "Avvia Traceroute",
|
||||||
"DevDetail_Tab_Tools_Traceroute_Title": "Traceroute",
|
"DevDetail_Tab_Tools_Traceroute_Title": "Traceroute",
|
||||||
"DevDetail_Tools_WOL": "Invia comando WoL (Wake-on-LAN) a ",
|
"DevDetail_Tools_WOL": "Invia comando WoL (Wake-on-LAN) a ",
|
||||||
"DevDetail_Tools_WOL_noti": "Wake-on-LAN",
|
"DevDetail_Tools_WOL_noti": "Wake-on-LAN",
|
||||||
"DevDetail_Tools_WOL_noti_text": "Il comando Wake-on-LAN viene inviato all'indirizzo di broadcast. Se il destinatario non è nella subnet/VLAN di NetAlertX, egli non risponderà.",
|
"DevDetail_Tools_WOL_noti_text": "Il comando Wake-on-LAN viene inviato all'indirizzo di broadcast. Se il destinatario non \u00e8 nella subnet/VLAN di NetAlertX, egli non risponder\u00e0.",
|
||||||
"DevDetail_Type_hover": "Il Tipo del dispositivo. Se selezioni uno dei dispositivi di rete predefiniti (es.: AP, Firewall, Router, Switch...) verrà mostrato nell'alberatura di Rete come un possibile nodo padre.",
|
"DevDetail_Type_hover": "Il Tipo del dispositivo. Se selezioni uno dei dispositivi di rete predefiniti (es.: AP, Firewall, Router, Switch...) verr\u00e0 mostrato nell'alberatura di Rete come un possibile nodo padre.",
|
||||||
"DevDetail_Vendor_hover": "Il Venditore dovrebbe essere auto-popolato. Puoi sovrascrivere o aggiungere un valore personalizzato.",
|
"DevDetail_Vendor_hover": "Il Venditore dovrebbe essere auto-popolato. Puoi sovrascrivere o aggiungere un valore personalizzato.",
|
||||||
"DevDetail_WOL_Title": "<i class=\"fa fa-power-off\"></i> Wake-on-LAN",
|
"DevDetail_WOL_Title": "<i class=\"fa fa-power-off\"></i> Wake-on-LAN",
|
||||||
"DevDetail_button_AddIcon": "Aggiungi nuova Icona",
|
"DevDetail_button_AddIcon": "Aggiungi nuova Icona",
|
||||||
"DevDetail_button_AddIcon_Help": "Inserisci un tag html SVG o un tag html Font Awesome. Leggi <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\">Icons docs</a> per ulteriori dettagli.",
|
"DevDetail_button_AddIcon_Help": "Inserisci un tag html SVG o un tag html Font Awesome. Leggi <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\">Icons docs</a> per ulteriori dettagli.",
|
||||||
"DevDetail_button_AddIcon_Tooltip": "Aggiungi una nuova icona non disponibile nel menù a tendina a questo dispositivo.",
|
"DevDetail_button_AddIcon_Tooltip": "Aggiungi una nuova icona non disponibile nel men\u00f9 a tendina a questo dispositivo.",
|
||||||
"DevDetail_button_Delete": "Elimina Dispositivo",
|
"DevDetail_button_Delete": "Elimina Dispositivo",
|
||||||
"DevDetail_button_DeleteEvents": "Elimina Eventi",
|
"DevDetail_button_DeleteEvents": "Elimina Eventi",
|
||||||
"DevDetail_button_DeleteEvents_Warning": "Sei sicuro di voler eliminare tutti gli eventi di questo dispositivo?<br><br>(questa azione cancellerà la <b>Cronologia eventi</b> e le <b>Sessioni</b> e potrebbe aiutare con costanti (persistenti ) notifiche)",
|
"DevDetail_button_DeleteEvents_Warning": "Sei sicuro di voler eliminare tutti gli eventi di questo dispositivo?<br><br>(questa azione canceller\u00e0 la <b>Cronologia eventi</b> e le <b>Sessioni</b> e potrebbe aiutare con costanti (persistenti ) notifiche)",
|
||||||
"DevDetail_button_OverwriteIcons": "Sovrascrivi Icone",
|
"DevDetail_button_OverwriteIcons": "Sovrascrivi Icone",
|
||||||
"DevDetail_button_OverwriteIcons_Tooltip": "Sovrascrivi le icone di tutti i dispositivi con lo stesso Tipo Dispositivo",
|
"DevDetail_button_OverwriteIcons_Tooltip": "Sovrascrivi le icone di tutti i dispositivi con lo stesso Tipo Dispositivo",
|
||||||
"DevDetail_button_OverwriteIcons_Warning": "Sei sicuro di voler sovrascrivere l'icona di tutti i dispositivi della stessa tipologia di quello selezionato?",
|
"DevDetail_button_OverwriteIcons_Warning": "Sei sicuro di voler sovrascrivere l'icona di tutti i dispositivi della stessa tipologia di quello selezionato?",
|
||||||
"DevDetail_button_Reset": "Ripristina cambiamenti",
|
"DevDetail_button_Reset": "Ripristina cambiamenti",
|
||||||
"DevDetail_button_Save": "Salva",
|
"DevDetail_button_Save": "Salva",
|
||||||
"Device_MultiEdit": "Modifica multipla",
|
"Device_MultiEdit": "Modifica multipla",
|
||||||
"Device_MultiEdit_Backup": "Attenzione, l'inserimento di valori errati di seguito interromperà la configurazione. Effettua prima il backup del database o della configurazione dei dispositivi (<a href=\"php/server/devices.php?action=ExportCSV\">fai clic per scaricare <i class=\"fa-solid fa-download fa-bounce\"></i> </a>). Leggi come ripristinare i dispositivi da questo file nella <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/BACKUPS.md#scenario-2-corrupted-database\" target=\" _blank\">Documentazione di backup</a>.",
|
"Device_MultiEdit_Backup": "Attenzione, l'inserimento di valori errati di seguito interromper\u00e0 la configurazione. Effettua prima il backup del database o della configurazione dei dispositivi (<a href=\"php/server/devices.php?action=ExportCSV\">fai clic per scaricare <i class=\"fa-solid fa-download fa-bounce\"></i> </a>). Leggi come ripristinare i dispositivi da questo file nella <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/BACKUPS.md#scenario-2-corrupted-database\" target=\" _blank\">Documentazione di backup</a>.",
|
||||||
"Device_MultiEdit_Fields": "Modifica campi:",
|
"Device_MultiEdit_Fields": "Modifica campi:",
|
||||||
"Device_MultiEdit_MassActions": "Azioni di massa:",
|
"Device_MultiEdit_MassActions": "Azioni di massa:",
|
||||||
"Device_MultiEdit_Tooltip": "Attenzione. Cliccando verrà applicato il valore sulla sinistra a tutti i dispositivi selezionati.",
|
"Device_MultiEdit_Tooltip": "Attenzione. Cliccando verr\u00e0 applicato il valore sulla sinistra a tutti i dispositivi selezionati.",
|
||||||
"Device_Searchbox": "Cerca",
|
"Device_Searchbox": "Cerca",
|
||||||
"Device_Shortcut_AllDevices": "I Miei Dispositivi",
|
"Device_Shortcut_AllDevices": "I Miei Dispositivi",
|
||||||
"Device_Shortcut_Archived": "Archiviati",
|
"Device_Shortcut_Archived": "Archiviati",
|
||||||
@@ -222,9 +222,9 @@
|
|||||||
"Device_Title": "Dispositivi",
|
"Device_Title": "Dispositivi",
|
||||||
"Donations_Others": "Altri",
|
"Donations_Others": "Altri",
|
||||||
"Donations_Platforms": "Piattaforme Sponsor",
|
"Donations_Platforms": "Piattaforme Sponsor",
|
||||||
"Donations_Text": "Hey 👋! </br> Grazie per aver cliccato su questa voce di menù 😅 </br> </br> Sto cercando di ricevere donazioni per poter fornire un software migliore. Inoltre potrebbe aiutarmi a non andare in burnout, in modo da poter supportare questa app più a lungo. Ogni piccola (ricorrente o non) sponsorizzazione mi invoglia a mettere più impegno nello sviluppo di questa app. </br> Mi piacerebbe accorciare la mia settimana lavorativa e nel tempo rimanente, dedicarmi completamente su NetAlertX. Riceverete più funzionalità, un'applicazione più rifinita e con meno bug.</br> </br> Grazie per aver letto - Sono grato per ogni tipo di supporto ❤🙏 </br> </br> TL;DR: Supportandomi otterrai: </br> </br> <ul><li>Aggiornamenti più regolari per mantenere i tuoi dati e la tua famiglia sicuri 🔄</li><li>Meno bug 🐛🔫</li><li>Funzionalità migliori e più numerose➕</li><li>Io non vado in burnout 🔥🤯</li><li>Rilasci meno affrettati 💨</li><li>Migliore documentazione 📚</li><li>Supporto migliore e più veloce in caso di problemi 🆘</li></ul> </br> 📧Invia una mail a <a href='mailto:jokob@duck.com?subject=NetAlertX'>jokob@duck.com</a> se vuoi contattarmi o chiedermi di aggiungere altre piattaforme di sponsorizzazione. </br>",
|
"Donations_Text": "Hey \ud83d\udc4b! </br> Grazie per aver cliccato su questa voce di men\u00f9 \ud83d\ude05 </br> </br> Sto cercando di ricevere donazioni per poter fornire un software migliore. Inoltre potrebbe aiutarmi a non andare in burnout, in modo da poter supportare questa app pi\u00f9 a lungo. Ogni piccola (ricorrente o non) sponsorizzazione mi invoglia a mettere pi\u00f9 impegno nello sviluppo di questa app. </br> Mi piacerebbe accorciare la mia settimana lavorativa e nel tempo rimanente, dedicarmi completamente su NetAlertX. Riceverete pi\u00f9 funzionalit\u00e0, un'applicazione pi\u00f9 rifinita e con meno bug.</br> </br> Grazie per aver letto - Sono grato per ogni tipo di supporto \u2764\ud83d\ude4f </br> </br> TL;DR: Supportandomi otterrai: </br> </br> <ul><li>Aggiornamenti pi\u00f9 regolari per mantenere i tuoi dati e la tua famiglia sicuri \ud83d\udd04</li><li>Meno bug \ud83d\udc1b\ud83d\udd2b</li><li>Funzionalit\u00e0 migliori e pi\u00f9 numerose\u2795</li><li>Io non vado in burnout \ud83d\udd25\ud83e\udd2f</li><li>Rilasci meno affrettati \ud83d\udca8</li><li>Migliore documentazione \ud83d\udcda</li><li>Supporto migliore e pi\u00f9 veloce in caso di problemi \ud83c\udd98</li></ul> </br> \ud83d\udce7Invia una mail a <a href='mailto:jokob@duck.com?subject=NetAlertX'>jokob@duck.com</a> se vuoi contattarmi o chiedermi di aggiungere altre piattaforme di sponsorizzazione. </br>",
|
||||||
"Donations_Title": "Donazioni",
|
"Donations_Title": "Donazioni",
|
||||||
"ENABLE_PLUGINS_description": "Abilita la funzionalità <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/front/plugins\">plugin</a>. Utilizzare i plugin richiede più risorse hardware, potresti voler disabilitare questa opzione sui dispositivi meno performanti.",
|
"ENABLE_PLUGINS_description": "Abilita la funzionalit\u00e0 <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/front/plugins\">plugin</a>. Utilizzare i plugin richiede pi\u00f9 risorse hardware, potresti voler disabilitare questa opzione sui dispositivi meno performanti.",
|
||||||
"ENABLE_PLUGINS_name": "Abilita Plugin",
|
"ENABLE_PLUGINS_name": "Abilita Plugin",
|
||||||
"Email_display_name": "Email",
|
"Email_display_name": "Email",
|
||||||
"Email_icon": "<i class=\"fa fa-at\"></i>",
|
"Email_icon": "<i class=\"fa fa-at\"></i>",
|
||||||
@@ -268,16 +268,16 @@
|
|||||||
"Gen_Backup": "Esegui Backup",
|
"Gen_Backup": "Esegui Backup",
|
||||||
"Gen_Cancel": "Annulla",
|
"Gen_Cancel": "Annulla",
|
||||||
"Gen_Copy": "Esegui",
|
"Gen_Copy": "Esegui",
|
||||||
"Gen_DataUpdatedUITakesTime": "OK: l'aggiornamento dell'interfaccia utente potrebbe richiedere del tempo se è in esecuzione una scansione.",
|
"Gen_DataUpdatedUITakesTime": "OK: l'aggiornamento dell'interfaccia utente potrebbe richiedere del tempo se \u00e8 in esecuzione una scansione.",
|
||||||
"Gen_Delete": "Elimina",
|
"Gen_Delete": "Elimina",
|
||||||
"Gen_DeleteAll": "Elimina tutti",
|
"Gen_DeleteAll": "Elimina tutti",
|
||||||
"Gen_Error": "Errore",
|
"Gen_Error": "Errore",
|
||||||
"Gen_Filter": "Filtra",
|
"Gen_Filter": "Filtra",
|
||||||
"Gen_LockedDB": "ERRORE - Il DB potrebbe essere bloccato - Controlla gli strumenti sviluppatore (F12) -> Console o riprova più tardi.",
|
"Gen_LockedDB": "ERRORE - Il DB potrebbe essere bloccato - Controlla gli strumenti sviluppatore (F12) -> Console o riprova pi\u00f9 tardi.",
|
||||||
"Gen_Offline": "Offline",
|
"Gen_Offline": "Offline",
|
||||||
"Gen_Okay": "Ok",
|
"Gen_Okay": "Ok",
|
||||||
"Gen_Purge": "Svuota",
|
"Gen_Purge": "Svuota",
|
||||||
"Gen_ReadDocs": "Leggi di più nella documentazione.",
|
"Gen_ReadDocs": "Leggi di pi\u00f9 nella documentazione.",
|
||||||
"Gen_Remove_All": "Rimuovi tutti",
|
"Gen_Remove_All": "Rimuovi tutti",
|
||||||
"Gen_Remove_Last": "Rimuovi ultimo",
|
"Gen_Remove_Last": "Rimuovi ultimo",
|
||||||
"Gen_Restore": "Esegui Ripristino",
|
"Gen_Restore": "Esegui Ripristino",
|
||||||
@@ -292,54 +292,54 @@
|
|||||||
"Gen_Update": "Aggiorna",
|
"Gen_Update": "Aggiorna",
|
||||||
"Gen_Update_Value": "Aggiorna valore",
|
"Gen_Update_Value": "Aggiorna valore",
|
||||||
"Gen_Warning": "Avviso",
|
"Gen_Warning": "Avviso",
|
||||||
"Gen_Work_In_Progress": "Work in progress, è un buon momento per un feedback a https://github.com/jokob-sk/NetAlertX/issues",
|
"Gen_Work_In_Progress": "Work in progress, \u00e8 un buon momento per un feedback a https://github.com/jokob-sk/NetAlertX/issues",
|
||||||
"General_display_name": "Generale",
|
"General_display_name": "Generale",
|
||||||
"General_icon": "<i class=\"fa fa-gears\"></i>",
|
"General_icon": "<i class=\"fa fa-gears\"></i>",
|
||||||
"HRS_TO_KEEP_NEWDEV_description": "Questa è un'opzione di manutenzione. Se abilitata (<code>0</code> è disabilitata), tutti i dispositivi marcati con <b>Nuovo Dispositivo</b> verranno eliminati se l'orario della <b>Prima Sessione</b> è precedente all'orario di questa impostazione. Usa questa impostazione se vuoi eliminare automaticamente i <b>Nuovi Dispositivi</b> dopo <code>X</code> ore.",
|
"HRS_TO_KEEP_NEWDEV_description": "Questa \u00e8 un'opzione di manutenzione. Se abilitata (<code>0</code> \u00e8 disabilitata), tutti i dispositivi marcati con <b>Nuovo Dispositivo</b> verranno eliminati se l'orario della <b>Prima Sessione</b> \u00e8 precedente all'orario di questa impostazione. Usa questa impostazione se vuoi eliminare automaticamente i <b>Nuovi Dispositivi</b> dopo <code>X</code> ore.",
|
||||||
"HRS_TO_KEEP_NEWDEV_name": "Mantieni nuovi dispositivi per",
|
"HRS_TO_KEEP_NEWDEV_name": "Mantieni nuovi dispositivi per",
|
||||||
"HelpFAQ_Cat_Detail": "Dettagli",
|
"HelpFAQ_Cat_Detail": "Dettagli",
|
||||||
"HelpFAQ_Cat_Detail_300_head": "Cosa significa ",
|
"HelpFAQ_Cat_Detail_300_head": "Cosa significa ",
|
||||||
"HelpFAQ_Cat_Detail_300_text_a": "rappresenta un dispositivo di rete (un dispositivo di tipo AP, Gateway, Firewall, Hypervisor, Powerline, Switch, WLAN, PLC, Router, USB LAN Adapter, USB WIFI Adapter, o Internet). Tipi personalizzati possono essere aggiunti attraverso l'impostazione <code>NETWORK_DEVICE_TYPES</code>.",
|
"HelpFAQ_Cat_Detail_300_text_a": "rappresenta un dispositivo di rete (un dispositivo di tipo AP, Gateway, Firewall, Hypervisor, Powerline, Switch, WLAN, PLC, Router, USB LAN Adapter, USB WIFI Adapter, o Internet). Tipi personalizzati possono essere aggiunti attraverso l'impostazione <code>NETWORK_DEVICE_TYPES</code>.",
|
||||||
"HelpFAQ_Cat_Detail_300_text_b": "indica il numero di porta del Nodo di Rete a cui il dispositivo corrente è connesso. Leggi <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\">questa guida</a> per maggiori dettagli.",
|
"HelpFAQ_Cat_Detail_300_text_b": "indica il numero di porta del Nodo di Rete a cui il dispositivo corrente \u00e8 connesso. Leggi <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\">questa guida</a> per maggiori dettagli.",
|
||||||
"HelpFAQ_Cat_Detail_301_head_a": "Ogni quanto viene effettuata la scansione? In ",
|
"HelpFAQ_Cat_Detail_301_head_a": "Ogni quanto viene effettuata la scansione? In ",
|
||||||
"HelpFAQ_Cat_Detail_301_head_b": " dice 1 minuto ma il grafico mostra intervalli di 5 minuti.",
|
"HelpFAQ_Cat_Detail_301_head_b": " dice 1 minuto ma il grafico mostra intervalli di 5 minuti.",
|
||||||
"HelpFAQ_Cat_Detail_301_text": "L'intervallo di tempo tra le scansioni è definito dal \"Cronjob\", che è impostato a 5 minuti. La dicitura \"1 minuto\" si riferisci alla durata attesa di una scansione. In base alla configurazione di rete, questo valore potrebbe variare. Per modificare il \"Cronjob\", puoi usare il comando <span class=\"text-danger help_faq_code\">crontab -e</span> sul terminale/console e cambiare l'intervallo di esecuzione.",
|
"HelpFAQ_Cat_Detail_301_text": "L'intervallo di tempo tra le scansioni \u00e8 definito dal \"Cronjob\", che \u00e8 impostato a 5 minuti. La dicitura \"1 minuto\" si riferisci alla durata attesa di una scansione. In base alla configurazione di rete, questo valore potrebbe variare. Per modificare il \"Cronjob\", puoi usare il comando <span class=\"text-danger help_faq_code\">crontab -e</span> sul terminale/console e cambiare l'intervallo di esecuzione.",
|
||||||
"HelpFAQ_Cat_Detail_302_head_a": "Cosa significa ",
|
"HelpFAQ_Cat_Detail_302_head_a": "Cosa significa ",
|
||||||
"HelpFAQ_Cat_Detail_302_head_b": "e perché non posso selezionarlo?",
|
"HelpFAQ_Cat_Detail_302_head_b": "e perch\u00e9 non posso selezionarlo?",
|
||||||
"HelpFAQ_Cat_Detail_302_text": "Alcuni dispositivi di recente produzione generano indirizzi MAC casuali per questioni di privacy, i quali non possono quindi essere associati ad una produttore e che cambiano ad ogni nuova connessione. NetAlertX rileva se il dispositivo utilizza un MAC casuale e abilita automaticamente questo campo. Per disabilitare questo comportamento è necessario agire direttamente sulle impostazioni di rete del dispositivo.",
|
"HelpFAQ_Cat_Detail_302_text": "Alcuni dispositivi di recente produzione generano indirizzi MAC casuali per questioni di privacy, i quali non possono quindi essere associati ad una produttore e che cambiano ad ogni nuova connessione. NetAlertX rileva se il dispositivo utilizza un MAC casuale e abilita automaticamente questo campo. Per disabilitare questo comportamento \u00e8 necessario agire direttamente sulle impostazioni di rete del dispositivo.",
|
||||||
"HelpFAQ_Cat_Detail_303_head": "Cosa è Nmap e a cosa serve?",
|
"HelpFAQ_Cat_Detail_303_head": "Cosa \u00e8 Nmap e a cosa serve?",
|
||||||
"HelpFAQ_Cat_Detail_303_text": "Nmap è uno scanner di rete con molteplici funzionalità. <br>Quando un nuovo dispositivo appare nella lista, hai la possibilità di ottenere ulteriori dettagli sul dispositivo attraverso una scansione Nmap.",
|
"HelpFAQ_Cat_Detail_303_text": "Nmap \u00e8 uno scanner di rete con molteplici funzionalit\u00e0. <br>Quando un nuovo dispositivo appare nella lista, hai la possibilit\u00e0 di ottenere ulteriori dettagli sul dispositivo attraverso una scansione Nmap.",
|
||||||
"HelpFAQ_Cat_Device_200_head": "Nella mia lista sono presenti dispositivi che non conosco. Dopo averli eliminati, riappaiono costantemente.",
|
"HelpFAQ_Cat_Device_200_head": "Nella mia lista sono presenti dispositivi che non conosco. Dopo averli eliminati, riappaiono costantemente.",
|
||||||
"HelpFAQ_Cat_Device_200_text": "Se utilizzi Pi-hole, tieni presente che NetAlertX recupera le informazioni da Pi-hole. Metti in pausa NetAlertX, vai alla pagina delle impostazioni in Pi-hole ed elimina il lease DHCP, se necessario. Quindi, sempre in Pi-hole, guarda in Tools -> Network per vedere se riesci a trovare lì gli host ricorrenti. Se sì, eliminali anche lì. Ora puoi riavviare NetAlertX. Ora i dispositivi non dovrebbero più essere visualizzati.",
|
"HelpFAQ_Cat_Device_200_text": "Se utilizzi Pi-hole, tieni presente che NetAlertX recupera le informazioni da Pi-hole. Metti in pausa NetAlertX, vai alla pagina delle impostazioni in Pi-hole ed elimina il lease DHCP, se necessario. Quindi, sempre in Pi-hole, guarda in Tools -> Network per vedere se riesci a trovare l\u00ec gli host ricorrenti. Se s\u00ec, eliminali anche l\u00ec. Ora puoi riavviare NetAlertX. Ora i dispositivi non dovrebbero pi\u00f9 essere visualizzati.",
|
||||||
"HelpFAQ_Cat_General": "Generale",
|
"HelpFAQ_Cat_General": "Generale",
|
||||||
"HelpFAQ_Cat_General_100_head": "L'orario in alto a destra e l'orario degli eventi/presenze non sono corretti (orario sfasato).",
|
"HelpFAQ_Cat_General_100_head": "L'orario in alto a destra e l'orario degli eventi/presenze non sono corretti (orario sfasato).",
|
||||||
"HelpFAQ_Cat_General_100_text_a": "Sul tuo PC è impostato il seguente fuso orario per l'ambiente PHP:",
|
"HelpFAQ_Cat_General_100_text_a": "Sul tuo PC \u00e8 impostato il seguente fuso orario per l'ambiente PHP:",
|
||||||
"HelpFAQ_Cat_General_100_text_b": "Se questa time zone non è corretta, dovresti cambiarla nel file di configurazione PHP. Puoi trovarlo nella seguente directory:",
|
"HelpFAQ_Cat_General_100_text_b": "Se questa time zone non \u00e8 corretta, dovresti cambiarla nel file di configurazione PHP. Puoi trovarlo nella seguente directory:",
|
||||||
"HelpFAQ_Cat_General_100_text_c": "Cerca in questo file il valore \"date.timezone\", rimuovi il \";\" ad inizio riga se presente e inserisci la time zone desiderata. Una lista con le time zone supportate è presente qui (<a href=\"https://www.php.net/manual/en/timezones.php\" target=\"blank\">Link</a>)",
|
"HelpFAQ_Cat_General_100_text_c": "Cerca in questo file il valore \"date.timezone\", rimuovi il \";\" ad inizio riga se presente e inserisci la time zone desiderata. Una lista con le time zone supportate \u00e8 presente qui (<a href=\"https://www.php.net/manual/en/timezones.php\" target=\"blank\">Link</a>)",
|
||||||
"HelpFAQ_Cat_General_101_head": "La mia rete sembra rallentare, lo streaming si \"freeza\".",
|
"HelpFAQ_Cat_General_101_head": "La mia rete sembra rallentare, lo streaming si \"freeza\".",
|
||||||
"HelpFAQ_Cat_General_101_text": "Potrebbe essere che i dispositivi meno potenti raggiungano il loro limite di prestazioni nella modalità con cui NetAlertX identifica i nuovi dispositivi sulla rete. Questo è ancor più amplificato se i dispositivi comunicano con la rete attraverso la WLAN. Una soluzione potrebbe essere quella di passare ad una connessione cablata se possibile, o se il dispositivo viene utilizzato per un periodo di tempo limitato, utilizzare arp scan.",
|
"HelpFAQ_Cat_General_101_text": "Potrebbe essere che i dispositivi meno potenti raggiungano il loro limite di prestazioni nella modalit\u00e0 con cui NetAlertX identifica i nuovi dispositivi sulla rete. Questo \u00e8 ancor pi\u00f9 amplificato se i dispositivi comunicano con la rete attraverso la WLAN. Una soluzione potrebbe essere quella di passare ad una connessione cablata se possibile, o se il dispositivo viene utilizzato per un periodo di tempo limitato, utilizzare arp scan.",
|
||||||
"HelpFAQ_Cat_General_102_head": "Ottengo il messaggio che dice che il database è in modalità sola lettura.",
|
"HelpFAQ_Cat_General_102_head": "Ottengo il messaggio che dice che il database \u00e8 in modalit\u00e0 sola lettura.",
|
||||||
"HelpFAQ_Cat_General_102_text": "Controlla all'interno della cartella di NetAlertX se la cartella del database (db) ha i permessi corretti: <br> <span class=\"text-danger help_faq_code\">drwxrwx--- 2 (il tuo username) www-data</span><br> Se i permessi non sono corretti, puoi reimpostarli con i seguenti comandi attraverso il terminale:<br> <span class=\"text-danger help_faq_code\">sudo chgrp -R www-data /app/db<br>chmod -R 770 /app/db</span><br> Se il database risulta ancora come read-only, prova a reinstallare o a ripristinare un backup del database dalla pagina di manutenzione.",
|
"HelpFAQ_Cat_General_102_text": "Controlla all'interno della cartella di NetAlertX se la cartella del database (db) ha i permessi corretti: <br> <span class=\"text-danger help_faq_code\">drwxrwx--- 2 (il tuo username) www-data</span><br> Se i permessi non sono corretti, puoi reimpostarli con i seguenti comandi attraverso il terminale:<br> <span class=\"text-danger help_faq_code\">sudo chgrp -R www-data /app/db<br>chmod -R 770 /app/db</span><br> Se il database risulta ancora come read-only, prova a reinstallare o a ripristinare un backup del database dalla pagina di manutenzione.",
|
||||||
"HelpFAQ_Cat_General_102docker_head": "Problemi con il database (errori AJAX, read-only, not found)",
|
"HelpFAQ_Cat_General_102docker_head": "Problemi con il database (errori AJAX, read-only, not found)",
|
||||||
"HelpFAQ_Cat_General_102docker_text": "Controlla nuovamente di aver seguito il <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/dockerfiles\">readme dockerfile (info più aggiornate)</a>.<br/><br/><ul data-sourcepos=\"49:4-52:146\" dir=\"auto\"><li data-sourcepos=\"49:4-49:106\">Scarica il <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/db/app.db\">database originale da GitHub</a>.</li><li data-sourcepos=\"50:4-50:195\">Mappa il file <code>app.db</code> ()<g-emoji class=\"g-emoji\" alias=\"warning\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/26a0.png\">⚠</g-emoji> non cartella) visto sopra a <code>/app/db/app.db</code> (vedi gli <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/dockerfiles#-examples\">esempi</a> per maggiori dettagli).</li><li data-sourcepos=\"51:4-51:161\">Se riscontri problemi (errori AJAX, impossibile scrivere sul DB, ecc.) assicurati che i permessi siano correttamente impostati, in alternativa controlla i log presenti in <code>/app/front/log</code>.</li><li data-sourcepos=\"52:4-52:146\">Per risolvere i problemi relativi ai permessi puoi provare a creare un backup del database e poi eseguire un Ripristino DB dalla sezione <strong>Manutenzione > Backup/Ripristino</strong>.</li><li data-sourcepos=\"53:4-53:228\">Se il database risulta in modalità sola lettura puoi risolvere impostando l'owner e il gruppo eseguento questo comando sull'host system: <code>docker exec netalertx chown -R www-data:www-data /app/db/app.db</code>.</li></ul>",
|
"HelpFAQ_Cat_General_102docker_text": "Controlla nuovamente di aver seguito il <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/dockerfiles\">readme dockerfile (info pi\u00f9 aggiornate)</a>.<br/><br/><ul data-sourcepos=\"49:4-52:146\" dir=\"auto\"><li data-sourcepos=\"49:4-49:106\">Scarica il <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/db/app.db\">database originale da GitHub</a>.</li><li data-sourcepos=\"50:4-50:195\">Mappa il file <code>app.db</code> ()<g-emoji class=\"g-emoji\" alias=\"warning\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/26a0.png\">\u26a0</g-emoji> non cartella) visto sopra a <code>/app/db/app.db</code> (vedi gli <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/dockerfiles#-examples\">esempi</a> per maggiori dettagli).</li><li data-sourcepos=\"51:4-51:161\">Se riscontri problemi (errori AJAX, impossibile scrivere sul DB, ecc.) assicurati che i permessi siano correttamente impostati, in alternativa controlla i log presenti in <code>/app/front/log</code>.</li><li data-sourcepos=\"52:4-52:146\">Per risolvere i problemi relativi ai permessi puoi provare a creare un backup del database e poi eseguire un Ripristino DB dalla sezione <strong>Manutenzione > Backup/Ripristino</strong>.</li><li data-sourcepos=\"53:4-53:228\">Se il database risulta in modalit\u00e0 sola lettura puoi risolvere impostando l'owner e il gruppo eseguento questo comando sull'host system: <code>docker exec netalertx chown -R www-data:www-data /app/db/app.db</code>.</li></ul>",
|
||||||
"HelpFAQ_Cat_General_103_head": "La pagina di login non appare, anche dopo aver cambiato la password.",
|
"HelpFAQ_Cat_General_103_head": "La pagina di login non appare, anche dopo aver cambiato la password.",
|
||||||
"HelpFAQ_Cat_General_103_text": "Oltre alla password, il file di configurazione <span class=\"text-danger help_faq_code\">/app/config/app.conf</span> deve contenere anche il parametro <span class=\"text-danger help_faq_code\">PIALERT_WEB_PROTECTION</span> impostato a <span class=\"text-danger help_faq_code\">True</span>.",
|
"HelpFAQ_Cat_General_103_text": "Oltre alla password, il file di configurazione <span class=\"text-danger help_faq_code\">/app/config/app.conf</span> deve contenere anche il parametro <span class=\"text-danger help_faq_code\">PIALERT_WEB_PROTECTION</span> impostato a <span class=\"text-danger help_faq_code\">True</span>.",
|
||||||
"HelpFAQ_Cat_Network_600_head": "A cosa serve questa pagina?",
|
"HelpFAQ_Cat_Network_600_head": "A cosa serve questa pagina?",
|
||||||
"HelpFAQ_Cat_Network_600_text": "Questa pagina dovrebbe offrire la possibilità di mappare l'assegnazione dei tuoi dispositivi di rete. A questo scopo, puoi creare uno o più switch, WLAN, router, ecc., associargli un numero di porte se necessario, ed assegnare ad essi i dispositivi di rete già individuati. Questo assegnamento può essere fatto all'interno della vista di dettaglio del dispostivo da assegnare. In questo modo è possibile determinare velocemente a quale porta un host è collegato e se è online. Leggi <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\">questa guida</a> per maggiori informazioni.",
|
"HelpFAQ_Cat_Network_600_text": "Questa pagina dovrebbe offrire la possibilit\u00e0 di mappare l'assegnazione dei tuoi dispositivi di rete. A questo scopo, puoi creare uno o pi\u00f9 switch, WLAN, router, ecc., associargli un numero di porte se necessario, ed assegnare ad essi i dispositivi di rete gi\u00e0 individuati. Questo assegnamento pu\u00f2 essere fatto all'interno della vista di dettaglio del dispostivo da assegnare. In questo modo \u00e8 possibile determinare velocemente a quale porta un host \u00e8 collegato e se \u00e8 online. Leggi <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\">questa guida</a> per maggiori informazioni.",
|
||||||
"HelpFAQ_Cat_Network_601_head": "Esiste ulteriore documentazione?",
|
"HelpFAQ_Cat_Network_601_head": "Esiste ulteriore documentazione?",
|
||||||
"HelpFAQ_Cat_Network_601_text": "Si, esiste! Visita <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/\">tutta la documentazione</a> per ulteriori informazioni.",
|
"HelpFAQ_Cat_Network_601_text": "Si, esiste! Visita <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/\">tutta la documentazione</a> per ulteriori informazioni.",
|
||||||
"HelpFAQ_Cat_Presence_400_head": "I dispositivi sono visualizzati con un simbolo giallo e la nota \"evento mancante\".",
|
"HelpFAQ_Cat_Presence_400_head": "I dispositivi sono visualizzati con un simbolo giallo e la nota \"evento mancante\".",
|
||||||
"HelpFAQ_Cat_Presence_400_text": "In questo caso, hai la possibilità di eliminare gli eventi per il dispositivo in questione (vista dettagliata). Un'altra possibilità è quella di accendere il dispositivo e aspettare che NetAlertX lo rilevi come \"online\" durante la successiva scansione, successivamente spegnere nuovamente il dispositivo. Ora NetAlertX dovrebbe salvare correttamente lo stato del dispositivo nel database alla successiva scansione.",
|
"HelpFAQ_Cat_Presence_400_text": "In questo caso, hai la possibilit\u00e0 di eliminare gli eventi per il dispositivo in questione (vista dettagliata). Un'altra possibilit\u00e0 \u00e8 quella di accendere il dispositivo e aspettare che NetAlertX lo rilevi come \"online\" durante la successiva scansione, successivamente spegnere nuovamente il dispositivo. Ora NetAlertX dovrebbe salvare correttamente lo stato del dispositivo nel database alla successiva scansione.",
|
||||||
"HelpFAQ_Cat_Presence_401_head": "Un dispositivo viene segnalato come presente anche se è \"Offline\".",
|
"HelpFAQ_Cat_Presence_401_head": "Un dispositivo viene segnalato come presente anche se \u00e8 \"Offline\".",
|
||||||
"HelpFAQ_Cat_Presence_401_text": "Se questo accade, hai la possibilità di eliminare gli eventi per il dispositivo in questione (vista di dettaglio). Un'altra possibilità potrebbe essere quella di accendere il dispositivo, attendere finchè NetAlertX riconosca il dispositivo come \"online\" con la scansione successiva e poi spegnere il dispositivo. Ora NetAlertX dovrebbe tenere traccia dello stato del dispositivo correttamente con la prossima scansione.",
|
"HelpFAQ_Cat_Presence_401_text": "Se questo accade, hai la possibilit\u00e0 di eliminare gli eventi per il dispositivo in questione (vista di dettaglio). Un'altra possibilit\u00e0 potrebbe essere quella di accendere il dispositivo, attendere finch\u00e8 NetAlertX riconosca il dispositivo come \"online\" con la scansione successiva e poi spegnere il dispositivo. Ora NetAlertX dovrebbe tenere traccia dello stato del dispositivo correttamente con la prossima scansione.",
|
||||||
"HelpFAQ_Title": "Aiuto / FAQ",
|
"HelpFAQ_Title": "Aiuto / FAQ",
|
||||||
"LOADED_PLUGINS_description": "Quali Plugin caricare. Aggiungere plugin potrebbe rallentare l'applicazione. Leggi di più su quali plugin necessitano di essere abilitati, tipi e opzioni di scansione nella <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/front/plugins#readme\">documentazione plugin</a>. I plugin disinstallati perdono la loro configurazione. Solo i plugin <code>disabilitati</code> possono essere disinstallati.",
|
"LOADED_PLUGINS_description": "Quali Plugin caricare. Aggiungere plugin potrebbe rallentare l'applicazione. Leggi di pi\u00f9 su quali plugin necessitano di essere abilitati, tipi e opzioni di scansione nella <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/front/plugins#readme\">documentazione plugin</a>. I plugin disinstallati perdono la loro configurazione. Solo i plugin <code>disabilitati</code> possono essere disinstallati.",
|
||||||
"LOADED_PLUGINS_name": "Plugin caricati",
|
"LOADED_PLUGINS_name": "Plugin caricati",
|
||||||
"LOG_LEVEL_description": "Questa impostazione abilita logging più dettagliato. Utile per il debugging degli eventi salvati sul database.",
|
"LOG_LEVEL_description": "Questa impostazione abilita logging pi\u00f9 dettagliato. Utile per il debugging degli eventi salvati sul database.",
|
||||||
"LOG_LEVEL_name": "Stampa logging aggiuntivo",
|
"LOG_LEVEL_name": "Stampa logging aggiuntivo",
|
||||||
"Loading": "Caricamento...",
|
"Loading": "Caricamento...",
|
||||||
"Login_Box": "Inserisci la tua password",
|
"Login_Box": "Inserisci la tua password",
|
||||||
"Login_Default_PWD": "La password predefinita \"123456\" è ancora attiva.",
|
"Login_Default_PWD": "La password predefinita \"123456\" \u00e8 ancora attiva.",
|
||||||
"Login_Psw-box": "Password",
|
"Login_Psw-box": "Password",
|
||||||
"Login_Psw_alert": "Avviso password!",
|
"Login_Psw_alert": "Avviso password!",
|
||||||
"Login_Psw_folder": "nella cartella di configurazione.",
|
"Login_Psw_folder": "nella cartella di configurazione.",
|
||||||
@@ -360,8 +360,8 @@
|
|||||||
"Maintenance_Tool_ExportCSV_text": "Genera un file CSV (comma separated value) contenente la lista dei Dispositivi incluse le relazioni di Rete tra i Nodi di Rete e i dispositivi connessi. Puoi anche eseguire questa azione accedendo all'URL <code>il tuo NetAlertX/php/server/devices.php?action=ExportCSV</code> o abilitando il plugin <a href=\"settings.php#CSVBCKP_header\">CSV Backup</a>.",
|
"Maintenance_Tool_ExportCSV_text": "Genera un file CSV (comma separated value) contenente la lista dei Dispositivi incluse le relazioni di Rete tra i Nodi di Rete e i dispositivi connessi. Puoi anche eseguire questa azione accedendo all'URL <code>il tuo NetAlertX/php/server/devices.php?action=ExportCSV</code> o abilitando il plugin <a href=\"settings.php#CSVBCKP_header\">CSV Backup</a>.",
|
||||||
"Maintenance_Tool_ImportCSV": "Importa CSV",
|
"Maintenance_Tool_ImportCSV": "Importa CSV",
|
||||||
"Maintenance_Tool_ImportCSV_noti": "Importa CSV",
|
"Maintenance_Tool_ImportCSV_noti": "Importa CSV",
|
||||||
"Maintenance_Tool_ImportCSV_noti_text": "Sei sicuro di voler importare il file CSV? Questa operazione sovrascriverà tutti i dispositivi presenti nel database.",
|
"Maintenance_Tool_ImportCSV_noti_text": "Sei sicuro di voler importare il file CSV? Questa operazione sovrascriver\u00e0 tutti i dispositivi presenti nel database.",
|
||||||
"Maintenance_Tool_ImportCSV_text": "Prima di utilizzare questa funzionalità, per favore esegui un backup. Importa un file CSV (comma separated value) contenente la lista dei Dispositivi incluse le Relazioni di Rete tra i Nodi di Rete e i dispositivi connessi. Per far ciò posiziona il file CSV denominato <b>devices.csv</b> nella cartella <b>/config</b>.",
|
"Maintenance_Tool_ImportCSV_text": "Prima di utilizzare questa funzionalit\u00e0, per favore esegui un backup. Importa un file CSV (comma separated value) contenente la lista dei Dispositivi incluse le Relazioni di Rete tra i Nodi di Rete e i dispositivi connessi. Per far ci\u00f2 posiziona il file CSV denominato <b>devices.csv</b> nella cartella <b>/config</b>.",
|
||||||
"Maintenance_Tool_arpscansw": "Abilita arp-scan (on/off)",
|
"Maintenance_Tool_arpscansw": "Abilita arp-scan (on/off)",
|
||||||
"Maintenance_Tool_arpscansw_noti": "Abilita arp-scan on o off",
|
"Maintenance_Tool_arpscansw_noti": "Abilita arp-scan on o off",
|
||||||
"Maintenance_Tool_arpscansw_noti_text": "Quando una scansione viene disabilitata, rimane disabilitata fino a che non viene abilitata nuovamente.",
|
"Maintenance_Tool_arpscansw_noti_text": "Quando una scansione viene disabilitata, rimane disabilitata fino a che non viene abilitata nuovamente.",
|
||||||
@@ -371,37 +371,37 @@
|
|||||||
"Maintenance_Tool_backup_noti_text": "Sei sicuro di voler eseguire un backup del database? Assicurati che nessuna scansione sia attualmente in esecuzione.",
|
"Maintenance_Tool_backup_noti_text": "Sei sicuro di voler eseguire un backup del database? Assicurati che nessuna scansione sia attualmente in esecuzione.",
|
||||||
"Maintenance_Tool_backup_text": "I backup del database sono posizionati nella cartella del database come archivi zip, nominati con la data di creazione. Non esiste un numero massimo di backup.",
|
"Maintenance_Tool_backup_text": "I backup del database sono posizionati nella cartella del database come archivi zip, nominati con la data di creazione. Non esiste un numero massimo di backup.",
|
||||||
"Maintenance_Tool_check_visible": "Deseleziona per nascondere la colonna.",
|
"Maintenance_Tool_check_visible": "Deseleziona per nascondere la colonna.",
|
||||||
"Maintenance_Tool_darkmode": "Cambia modalità (Scuro/Chiaro)",
|
"Maintenance_Tool_darkmode": "Cambia modalit\u00e0 (Scuro/Chiaro)",
|
||||||
"Maintenance_Tool_darkmode_noti": "Cambia modalità",
|
"Maintenance_Tool_darkmode_noti": "Cambia modalit\u00e0",
|
||||||
"Maintenance_Tool_darkmode_noti_text": "Dopo aver cambiato tema, la pagina prova a ricaricarsi in automatico per attivare le modifiche. Se necessario, la cache deve essere ripulita.",
|
"Maintenance_Tool_darkmode_noti_text": "Dopo aver cambiato tema, la pagina prova a ricaricarsi in automatico per attivare le modifiche. Se necessario, la cache deve essere ripulita.",
|
||||||
"Maintenance_Tool_darkmode_text": "Cambia tra modalità chiara e scura. Se il cambio non avviene correttamente, prova a ripulire la cache del browser. La modifica avviene lato server, quindi influenza tutti i dispositivi in uso.",
|
"Maintenance_Tool_darkmode_text": "Cambia tra modalit\u00e0 chiara e scura. Se il cambio non avviene correttamente, prova a ripulire la cache del browser. La modifica avviene lato server, quindi influenza tutti i dispositivi in uso.",
|
||||||
"Maintenance_Tool_del_ActHistory": "Eliminazione delle attività di rete",
|
"Maintenance_Tool_del_ActHistory": "Eliminazione delle attivit\u00e0 di rete",
|
||||||
"Maintenance_Tool_del_ActHistory_noti": "Elimina attività di rete",
|
"Maintenance_Tool_del_ActHistory_noti": "Elimina attivit\u00e0 di rete",
|
||||||
"Maintenance_Tool_del_ActHistory_noti_text": "Sei sicuro di voler resettare le attività di rete?",
|
"Maintenance_Tool_del_ActHistory_noti_text": "Sei sicuro di voler resettare le attivit\u00e0 di rete?",
|
||||||
"Maintenance_Tool_del_ActHistory_text": "Il grafico delle attività di rete viene resettato. Questo non influenza gli eventi.",
|
"Maintenance_Tool_del_ActHistory_text": "Il grafico delle attivit\u00e0 di rete viene resettato. Questo non influenza gli eventi.",
|
||||||
"Maintenance_Tool_del_alldev": "Elimina tutti i Dispositivi",
|
"Maintenance_Tool_del_alldev": "Elimina tutti i Dispositivi",
|
||||||
"Maintenance_Tool_del_alldev_noti": "Elimina Dispositivi",
|
"Maintenance_Tool_del_alldev_noti": "Elimina Dispositivi",
|
||||||
"Maintenance_Tool_del_alldev_noti_text": "Sei sicuro di voler eliminare tutti i dispositivi?",
|
"Maintenance_Tool_del_alldev_noti_text": "Sei sicuro di voler eliminare tutti i dispositivi?",
|
||||||
"Maintenance_Tool_del_alldev_text": "Prima di utilizzare questa funzione, per favore esegui un backup. L'eliminazione non può essere annullata. Tutti i dispositivi verranno eliminati dal database.",
|
"Maintenance_Tool_del_alldev_text": "Prima di utilizzare questa funzione, per favore esegui un backup. L'eliminazione non pu\u00f2 essere annullata. Tutti i dispositivi verranno eliminati dal database.",
|
||||||
"Maintenance_Tool_del_allevents": "Elimina eventi (Reset Presenze)",
|
"Maintenance_Tool_del_allevents": "Elimina eventi (Reset Presenze)",
|
||||||
"Maintenance_Tool_del_allevents30": "Elimina tutti gli eventi meno recenti di 30 giorni",
|
"Maintenance_Tool_del_allevents30": "Elimina tutti gli eventi meno recenti di 30 giorni",
|
||||||
"Maintenance_Tool_del_allevents30_noti": "Elimina eventi",
|
"Maintenance_Tool_del_allevents30_noti": "Elimina eventi",
|
||||||
"Maintenance_Tool_del_allevents30_noti_text": "Sei sicuro di voler eliminare tutti gli eventi meno recenti di 30 giorni? Questo resetterà la Presenza dei Dispositivi.",
|
"Maintenance_Tool_del_allevents30_noti_text": "Sei sicuro di voler eliminare tutti gli eventi meno recenti di 30 giorni? Questo resetter\u00e0 la Presenza dei Dispositivi.",
|
||||||
"Maintenance_Tool_del_allevents30_text": "Prima di utilizzare questa funzionalità, per favore esegui un backup. L'eliminazione non può essere annullata. Tutti gli eventi meno recenti di 30 giorni presenti nel database verranno eliminati. La presenza di tutti i dispositivi verrà resettata. Questo può portare a sessioni invalide. Questo significa che i dispositivi verranno mostrati come \"presenti\" anche se sono offline. Una scansione mentre il dispositivo è online risolverà il problema.",
|
"Maintenance_Tool_del_allevents30_text": "Prima di utilizzare questa funzionalit\u00e0, per favore esegui un backup. L'eliminazione non pu\u00f2 essere annullata. Tutti gli eventi meno recenti di 30 giorni presenti nel database verranno eliminati. La presenza di tutti i dispositivi verr\u00e0 resettata. Questo pu\u00f2 portare a sessioni invalide. Questo significa che i dispositivi verranno mostrati come \"presenti\" anche se sono offline. Una scansione mentre il dispositivo \u00e8 online risolver\u00e0 il problema.",
|
||||||
"Maintenance_Tool_del_allevents_noti": "Elimina eventi",
|
"Maintenance_Tool_del_allevents_noti": "Elimina eventi",
|
||||||
"Maintenance_Tool_del_allevents_noti_text": "Sei sicuro di voler eliminare tutti gli Eventi? Questo resetterà la Presenza di tutti i Dispositivi.",
|
"Maintenance_Tool_del_allevents_noti_text": "Sei sicuro di voler eliminare tutti gli Eventi? Questo resetter\u00e0 la Presenza di tutti i Dispositivi.",
|
||||||
"Maintenance_Tool_del_allevents_text": "Prima di utilizzare questa funzionalità, per favore esegui un backup. L'eliminazione non può essere annullata. Tutti gli eventi nel database verranno eliminati. La presenza di tutti i dispositivi verrà resettata. Questo può portare a sessioni invalide. Questo significa che i dispositivi verranno mostrati come \"presenti\" anche se sono offline. Una scansione mentre il dispositivo è online risolverà il problema.",
|
"Maintenance_Tool_del_allevents_text": "Prima di utilizzare questa funzionalit\u00e0, per favore esegui un backup. L'eliminazione non pu\u00f2 essere annullata. Tutti gli eventi nel database verranno eliminati. La presenza di tutti i dispositivi verr\u00e0 resettata. Questo pu\u00f2 portare a sessioni invalide. Questo significa che i dispositivi verranno mostrati come \"presenti\" anche se sono offline. Una scansione mentre il dispositivo \u00e8 online risolver\u00e0 il problema.",
|
||||||
"Maintenance_Tool_del_empty_macs": "Elimina Dispositivi senza indirizzo MAC",
|
"Maintenance_Tool_del_empty_macs": "Elimina Dispositivi senza indirizzo MAC",
|
||||||
"Maintenance_Tool_del_empty_macs_noti": "Elimina Dispositivi",
|
"Maintenance_Tool_del_empty_macs_noti": "Elimina Dispositivi",
|
||||||
"Maintenance_Tool_del_empty_macs_noti_text": "Sei sicuro di voler eliminare tutti i dispositivi senza indirizzo MAC?<br>(forse preferisci archiviarli)",
|
"Maintenance_Tool_del_empty_macs_noti_text": "Sei sicuro di voler eliminare tutti i dispositivi senza indirizzo MAC?<br>(forse preferisci archiviarli)",
|
||||||
"Maintenance_Tool_del_empty_macs_text": "Prima di utilizzare questa funzione, per favore esegui un backup. L'eliminazione non può essere annullata. Tutti i dispositivi senza indirizzo MAC verranno eliminati dal database.",
|
"Maintenance_Tool_del_empty_macs_text": "Prima di utilizzare questa funzione, per favore esegui un backup. L'eliminazione non pu\u00f2 essere annullata. Tutti i dispositivi senza indirizzo MAC verranno eliminati dal database.",
|
||||||
"Maintenance_Tool_del_selecteddev": "Elimina dispositivi selezionati",
|
"Maintenance_Tool_del_selecteddev": "Elimina dispositivi selezionati",
|
||||||
"Maintenance_Tool_del_selecteddev_text": "Prima di utilizzare questa funzione, per favore esegui un backup. L'eliminazione non può essere annullata. Tutti i dispositivi selezionati verranno eliminati dal database.",
|
"Maintenance_Tool_del_selecteddev_text": "Prima di utilizzare questa funzione, per favore esegui un backup. L'eliminazione non pu\u00f2 essere annullata. Tutti i dispositivi selezionati verranno eliminati dal database.",
|
||||||
"Maintenance_Tool_del_unknowndev": "Elimina dispositivi (sconosciuti)",
|
"Maintenance_Tool_del_unknowndev": "Elimina dispositivi (sconosciuti)",
|
||||||
"Maintenance_Tool_del_unknowndev_noti": "Elimina dispositivi (sconosciuti)",
|
"Maintenance_Tool_del_unknowndev_noti": "Elimina dispositivi (sconosciuti)",
|
||||||
"Maintenance_Tool_del_unknowndev_noti_text": "Sei sicuro di voler eliminare tutti i dispositivi (sconosciuti) e (senza nome)?",
|
"Maintenance_Tool_del_unknowndev_noti_text": "Sei sicuro di voler eliminare tutti i dispositivi (sconosciuti) e (senza nome)?",
|
||||||
"Maintenance_Tool_del_unknowndev_text": "Prima di utilizzare questa funzione, per favore esegui un backup. L'eliminazione non può essere annullata. Tutti i dispositivi (sconosciuti) verranno eliminati dal database.",
|
"Maintenance_Tool_del_unknowndev_text": "Prima di utilizzare questa funzione, per favore esegui un backup. L'eliminazione non pu\u00f2 essere annullata. Tutti i dispositivi (sconosciuti) verranno eliminati dal database.",
|
||||||
"Maintenance_Tool_displayed_columns_text": "Cambia la visibilità e l'ordine delle colonne nella pagina <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i> Dispositivi</b></a>.",
|
"Maintenance_Tool_displayed_columns_text": "Cambia la visibilit\u00e0 e l'ordine delle colonne nella pagina <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i> Dispositivi</b></a>.",
|
||||||
"Maintenance_Tool_drag_me": "Trascinami per riordinare le colonne.",
|
"Maintenance_Tool_drag_me": "Trascinami per riordinare le colonne.",
|
||||||
"Maintenance_Tool_order_columns_text": "Maintenance_Tool_order_columns_text",
|
"Maintenance_Tool_order_columns_text": "Maintenance_Tool_order_columns_text",
|
||||||
"Maintenance_Tool_purgebackup": "Svuota Backup",
|
"Maintenance_Tool_purgebackup": "Svuota Backup",
|
||||||
@@ -411,20 +411,20 @@
|
|||||||
"Maintenance_Tool_restore": "Ripristino DB",
|
"Maintenance_Tool_restore": "Ripristino DB",
|
||||||
"Maintenance_Tool_restore_noti": "Ripristino DB",
|
"Maintenance_Tool_restore_noti": "Ripristino DB",
|
||||||
"Maintenance_Tool_restore_noti_text": "Sei sicuro di voler eseguire il ripristino del Database? Assicurati che non ci siano scansioni in esecuzione.",
|
"Maintenance_Tool_restore_noti_text": "Sei sicuro di voler eseguire il ripristino del Database? Assicurati che non ci siano scansioni in esecuzione.",
|
||||||
"Maintenance_Tool_restore_text": "Il backup più recente può essere ripristinato attraverso questo pulsante, ma gli altri backup possono essere solo ripristinati manualmente. Dopo il ripristino, esegui un controllo d'integrità del database per sicurezza, nel caso in cui il database fosse in scrittura nel momento in cui il backup è stato creato.",
|
"Maintenance_Tool_restore_text": "Il backup pi\u00f9 recente pu\u00f2 essere ripristinato attraverso questo pulsante, ma gli altri backup possono essere solo ripristinati manualmente. Dopo il ripristino, esegui un controllo d'integrit\u00e0 del database per sicurezza, nel caso in cui il database fosse in scrittura nel momento in cui il backup \u00e8 stato creato.",
|
||||||
"Maintenance_Tool_upgrade_database_noti": "Aggiorna database",
|
"Maintenance_Tool_upgrade_database_noti": "Aggiorna database",
|
||||||
"Maintenance_Tool_upgrade_database_noti_text": "Sei sicuro di voler aggiornare il database?<br>(forse preferisci archiviarlo)",
|
"Maintenance_Tool_upgrade_database_noti_text": "Sei sicuro di voler aggiornare il database?<br>(forse preferisci archiviarlo)",
|
||||||
"Maintenance_Tool_upgrade_database_text": "Questo pulsante effettuerà l'upgrade del database per abilitare le attività di Rete delle scorse 12 ore. Per favore esegui un backup del database in caso di errori.",
|
"Maintenance_Tool_upgrade_database_text": "Questo pulsante effettuer\u00e0 l'upgrade del database per abilitare le attivit\u00e0 di Rete delle scorse 12 ore. Per favore esegui un backup del database in caso di errori.",
|
||||||
"Maintenance_Tools_Tab_BackupRestore": "Backup / Ripristino",
|
"Maintenance_Tools_Tab_BackupRestore": "Backup / Ripristino",
|
||||||
"Maintenance_Tools_Tab_Logging": "Log",
|
"Maintenance_Tools_Tab_Logging": "Log",
|
||||||
"Maintenance_Tools_Tab_Settings": "Impostazioni",
|
"Maintenance_Tools_Tab_Settings": "Impostazioni",
|
||||||
"Maintenance_Tools_Tab_Tools": "Strumenti",
|
"Maintenance_Tools_Tab_Tools": "Strumenti",
|
||||||
"Maintenance_Tools_Tab_UISettings": "Impostazioni UI",
|
"Maintenance_Tools_Tab_UISettings": "Impostazioni UI",
|
||||||
"Maintenance_arp_status": "Stato scansione",
|
"Maintenance_arp_status": "Stato scansione",
|
||||||
"Maintenance_arp_status_off": "è attualmente disabilitato",
|
"Maintenance_arp_status_off": "\u00e8 attualmente disabilitato",
|
||||||
"Maintenance_arp_status_on": "scansione/i attualmente in esecuzione",
|
"Maintenance_arp_status_on": "scansione/i attualmente in esecuzione",
|
||||||
"Maintenance_built_on": "Rilasciato il",
|
"Maintenance_built_on": "Rilasciato il",
|
||||||
"Maintenance_current_version": "L'applicazione è aggiornata all'ultima versione. Controlla <a href=\"https://github.com/jokob-sk/NetAlertX/issues/138\" target=\"_blank\">a cosa sto lavorando</a>.",
|
"Maintenance_current_version": "L'applicazione \u00e8 aggiornata all'ultima versione. Controlla <a href=\"https://github.com/jokob-sk/NetAlertX/issues/138\" target=\"_blank\">a cosa sto lavorando</a>.",
|
||||||
"Maintenance_database_backup": "Backup Database",
|
"Maintenance_database_backup": "Backup Database",
|
||||||
"Maintenance_database_backup_found": "backup sono stati trovati",
|
"Maintenance_database_backup_found": "backup sono stati trovati",
|
||||||
"Maintenance_database_backup_total": "utilizzo totale disco",
|
"Maintenance_database_backup_total": "utilizzo totale disco",
|
||||||
@@ -436,13 +436,13 @@
|
|||||||
"Maintenance_lang_selector_empty": "Scegli lingua",
|
"Maintenance_lang_selector_empty": "Scegli lingua",
|
||||||
"Maintenance_lang_selector_lable": "Seleziona lingua",
|
"Maintenance_lang_selector_lable": "Seleziona lingua",
|
||||||
"Maintenance_lang_selector_text": "Questa modifica avviene lato client, quindi influenza solo il browser attualmente in uso.",
|
"Maintenance_lang_selector_text": "Questa modifica avviene lato client, quindi influenza solo il browser attualmente in uso.",
|
||||||
"Maintenance_new_version": "🆕 E' disponibile una nuova versione. Controlla le <a href=\"https://github.com/jokob-sk/NetAlertX/releases\" target=\"_blank\">note di rilascio</a>.",
|
"Maintenance_new_version": "\ud83c\udd95 E' disponibile una nuova versione. Controlla le <a href=\"https://github.com/jokob-sk/NetAlertX/releases\" target=\"_blank\">note di rilascio</a>.",
|
||||||
"Maintenance_themeselector_apply": "Applica",
|
"Maintenance_themeselector_apply": "Applica",
|
||||||
"Maintenance_themeselector_empty": "Seleziona una Skin",
|
"Maintenance_themeselector_empty": "Seleziona una Skin",
|
||||||
"Maintenance_themeselector_lable": "Seleziona Skin",
|
"Maintenance_themeselector_lable": "Seleziona Skin",
|
||||||
"Maintenance_themeselector_text": "Questa modifica avviene lato server, quindi influenza tutti i dispositivi in uso.",
|
"Maintenance_themeselector_text": "Questa modifica avviene lato server, quindi influenza tutti i dispositivi in uso.",
|
||||||
"Maintenance_version": "Aggiornamenti App",
|
"Maintenance_version": "Aggiornamenti App",
|
||||||
"NETWORK_DEVICE_TYPES_description": "Quali tipi di dispositivi possono essere utilizzati come dispositivi di rete nella vista di Rete. La tipologia del dispositivo deve essere uguale all'opzione <code>Tipo</code> presente nella vista di dettaglio dello specifico Dispositivo. Non rimuovere i tipi già presenti, aggiungili soltanto.",
|
"NETWORK_DEVICE_TYPES_description": "Quali tipi di dispositivi possono essere utilizzati come dispositivi di rete nella vista di Rete. La tipologia del dispositivo deve essere uguale all'opzione <code>Tipo</code> presente nella vista di dettaglio dello specifico Dispositivo. Non rimuovere i tipi gi\u00e0 presenti, aggiungili soltanto.",
|
||||||
"NETWORK_DEVICE_TYPES_name": "Tipologie Dispositivi di Rete",
|
"NETWORK_DEVICE_TYPES_name": "Tipologie Dispositivi di Rete",
|
||||||
"Navigation_About": "Informazioni su",
|
"Navigation_About": "Informazioni su",
|
||||||
"Navigation_Devices": "Dispositivi",
|
"Navigation_Devices": "Dispositivi",
|
||||||
@@ -453,6 +453,7 @@
|
|||||||
"Navigation_Maintenance": "Manutenzione",
|
"Navigation_Maintenance": "Manutenzione",
|
||||||
"Navigation_Monitoring": "Monitoraggio",
|
"Navigation_Monitoring": "Monitoraggio",
|
||||||
"Navigation_Network": "Rete",
|
"Navigation_Network": "Rete",
|
||||||
|
"Navigation_Notifications": "",
|
||||||
"Navigation_Plugins": "Plugin",
|
"Navigation_Plugins": "Plugin",
|
||||||
"Navigation_Presence": "Presenza",
|
"Navigation_Presence": "Presenza",
|
||||||
"Navigation_Report": "Report",
|
"Navigation_Report": "Report",
|
||||||
@@ -460,7 +461,7 @@
|
|||||||
"Navigation_SystemInfo": "Info sistema",
|
"Navigation_SystemInfo": "Info sistema",
|
||||||
"Navigation_Workflows": "Workflow",
|
"Navigation_Workflows": "Workflow",
|
||||||
"Network_Assign": "Connetti a questo <i class=\"fa fa-server\"></i> Nodo di Rete",
|
"Network_Assign": "Connetti a questo <i class=\"fa fa-server\"></i> Nodo di Rete",
|
||||||
"Network_Cant_Assign": "Non è possibile assegnare il nodo Internet come nodo foglia.",
|
"Network_Cant_Assign": "Non \u00e8 possibile assegnare il nodo Internet come nodo foglia.",
|
||||||
"Network_Configuration_Error": "Errore di configurazione",
|
"Network_Configuration_Error": "Errore di configurazione",
|
||||||
"Network_Connected": "Dispositivi connessi",
|
"Network_Connected": "Dispositivi connessi",
|
||||||
"Network_ManageAdd": "Aggiungi Dispositivo",
|
"Network_ManageAdd": "Aggiungi Dispositivo",
|
||||||
@@ -495,14 +496,14 @@
|
|||||||
"Network_Node_Name": "Nome Nodo",
|
"Network_Node_Name": "Nome Nodo",
|
||||||
"Network_Parent": "Dispositivo di Rete padre",
|
"Network_Parent": "Dispositivo di Rete padre",
|
||||||
"Network_Root": "Nodo radice",
|
"Network_Root": "Nodo radice",
|
||||||
"Network_Root_Not_Configured": "Seleziona un tipo di dispositivo di rete, ad esempio un <b>Gateway</b>, nel campo <b>Tipo</b> del <a href=\"deviceDetails.php?mac=Internet\">dispositivo root Internet</a> per iniziare a configurare questa schermata. <br/><br/> Ulteriore documentazione è disponibile nella guida <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\" target=\"_blank\"> Come impostare la tua pagina di rete</a>",
|
"Network_Root_Not_Configured": "Seleziona un tipo di dispositivo di rete, ad esempio un <b>Gateway</b>, nel campo <b>Tipo</b> del <a href=\"deviceDetails.php?mac=Internet\">dispositivo root Internet</a> per iniziare a configurare questa schermata. <br/><br/> Ulteriore documentazione \u00e8 disponibile nella guida <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\" target=\"_blank\"> Come impostare la tua pagina di rete</a>",
|
||||||
"Network_Root_Unconfigurable": "Nodo radice non configurabile",
|
"Network_Root_Unconfigurable": "Nodo radice non configurabile",
|
||||||
"Network_Table_Hostname": "Hostname",
|
"Network_Table_Hostname": "Hostname",
|
||||||
"Network_Table_IP": "IP",
|
"Network_Table_IP": "IP",
|
||||||
"Network_Table_State": "Stato",
|
"Network_Table_State": "Stato",
|
||||||
"Network_Title": "Panoramica di Rete",
|
"Network_Title": "Panoramica di Rete",
|
||||||
"Network_UnassignedDevices": "Dispositivi non assegnati",
|
"Network_UnassignedDevices": "Dispositivi non assegnati",
|
||||||
"PIALERT_WEB_PASSWORD_description": "La password predefinita è <code>123456</code>. Per cambiare la password esegui <code>/app/back/pialert-cli</code> nel container o usa il <a onclick=\"toggleAllSettings()\" href=\"#SETPWD_RUN\">plugin per impostare la password <code>SETPWD_RUN</code></a>.",
|
"PIALERT_WEB_PASSWORD_description": "La password predefinita \u00e8 <code>123456</code>. Per cambiare la password esegui <code>/app/back/pialert-cli</code> nel container o usa il <a onclick=\"toggleAllSettings()\" href=\"#SETPWD_RUN\">plugin per impostare la password <code>SETPWD_RUN</code></a>.",
|
||||||
"PIALERT_WEB_PASSWORD_name": "Password login",
|
"PIALERT_WEB_PASSWORD_name": "Password login",
|
||||||
"PIALERT_WEB_PROTECTION_description": "Se abilitato, una finestra di login viene mostrata. Leggi attentamente qui sotto nel caso in cui si rimanga bloccati fuori dalla propria istanza.",
|
"PIALERT_WEB_PROTECTION_description": "Se abilitato, una finestra di login viene mostrata. Leggi attentamente qui sotto nel caso in cui si rimanga bloccati fuori dalla propria istanza.",
|
||||||
"PIALERT_WEB_PROTECTION_name": "Abilita login",
|
"PIALERT_WEB_PROTECTION_name": "Abilita login",
|
||||||
@@ -514,7 +515,7 @@
|
|||||||
"Plugins_Objects": "Oggetti plugin",
|
"Plugins_Objects": "Oggetti plugin",
|
||||||
"Plugins_Out_of": "di",
|
"Plugins_Out_of": "di",
|
||||||
"Plugins_Unprocessed_Events": "Eventi non processati",
|
"Plugins_Unprocessed_Events": "Eventi non processati",
|
||||||
"Plugins_no_control": "Non è stato trovato nessun form control per visualizzare questo valore.",
|
"Plugins_no_control": "Non \u00e8 stato trovato nessun form control per visualizzare questo valore.",
|
||||||
"Presence_CalHead_day": "giorno",
|
"Presence_CalHead_day": "giorno",
|
||||||
"Presence_CalHead_lang": "en-us",
|
"Presence_CalHead_lang": "en-us",
|
||||||
"Presence_CalHead_month": "mese",
|
"Presence_CalHead_month": "mese",
|
||||||
@@ -533,23 +534,23 @@
|
|||||||
"Presence_Title": "Presenza per Dispositivo",
|
"Presence_Title": "Presenza per Dispositivo",
|
||||||
"REPORT_DASHBOARD_URL_description": "Questo URL viene usato come base per generare i link nei report HTML (es. email). Inserisci l'URL completo partendo da <code>http://</code> e includendo il numero di porta (senza slash finale <code>/</code>).",
|
"REPORT_DASHBOARD_URL_description": "Questo URL viene usato come base per generare i link nei report HTML (es. email). Inserisci l'URL completo partendo da <code>http://</code> e includendo il numero di porta (senza slash finale <code>/</code>).",
|
||||||
"REPORT_DASHBOARD_URL_name": "URL NetAlertX",
|
"REPORT_DASHBOARD_URL_name": "URL NetAlertX",
|
||||||
"REPORT_ERROR": "La pagina a cui stai cercando di accedere è temporaneamente non disponibile, per favore riprova tra qualche secondo",
|
"REPORT_ERROR": "La pagina a cui stai cercando di accedere \u00e8 temporaneamente non disponibile, per favore riprova tra qualche secondo",
|
||||||
"REPORT_MAIL_description": "Se abilitato, una mail viene inviata con la lista dei cambiamenti a cui ti sei iscritto. Per favore compila anche le altre impostazioni relative alla configurazione SMTP. Se riscontri qualche problema, imposta <code>LOG_LEVEL</code> a <code>debug</code> e controlla i <a href=\"/maintenance.php#tab_Logging\">log di errore</a>.",
|
"REPORT_MAIL_description": "Se abilitato, una mail viene inviata con la lista dei cambiamenti a cui ti sei iscritto. Per favore compila anche le altre impostazioni relative alla configurazione SMTP. Se riscontri qualche problema, imposta <code>LOG_LEVEL</code> a <code>debug</code> e controlla i <a href=\"/maintenance.php#tab_Logging\">log di errore</a>.",
|
||||||
"REPORT_MAIL_name": "Abilita email",
|
"REPORT_MAIL_name": "Abilita email",
|
||||||
"REPORT_TITLE": "Report",
|
"REPORT_TITLE": "Report",
|
||||||
"RandomMAC_hover": "Autorilevato - indica se l'indirizzo MAC del dispositivo è casuale.",
|
"RandomMAC_hover": "Autorilevato - indica se l'indirizzo MAC del dispositivo \u00e8 casuale.",
|
||||||
"SCAN_SUBNETS_description": "La maggior parte degli scanner di rete (ARP-SCAN, NMAP, NSLOOKUP, DIG, PHOLUS) si basano sulla scansione di interfacce di rete e sottoreti specifiche. Consulta la <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/SUBNETS.md\" target=\"_blank\">documentazione sulle sottoreti</a> per assistenza su questa impostazione, in particolare VLAN, quali VLAN sono supportate o come individuare la maschera di rete e l'interfaccia. <br/> <br/> Un'alternativa agli scanner in rete è abilitare altri scanner/importatori di dispositivi che non si affidano a NetAlert<sup>X</sup> che hanno accesso alla rete (UNIFI, dhcp.leases , PiHole, ecc.). <br/> <br/> Nota: il tempo di scansione stesso dipende dal numero di indirizzi IP da controllare, quindi impostarlo attentamente con la maschera di rete e l'interfaccia appropriate.",
|
"SCAN_SUBNETS_description": "La maggior parte degli scanner di rete (ARP-SCAN, NMAP, NSLOOKUP, DIG, PHOLUS) si basano sulla scansione di interfacce di rete e sottoreti specifiche. Consulta la <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/SUBNETS.md\" target=\"_blank\">documentazione sulle sottoreti</a> per assistenza su questa impostazione, in particolare VLAN, quali VLAN sono supportate o come individuare la maschera di rete e l'interfaccia. <br/> <br/> Un'alternativa agli scanner in rete \u00e8 abilitare altri scanner/importatori di dispositivi che non si affidano a NetAlert<sup>X</sup> che hanno accesso alla rete (UNIFI, dhcp.leases , PiHole, ecc.). <br/> <br/> Nota: il tempo di scansione stesso dipende dal numero di indirizzi IP da controllare, quindi impostarlo attentamente con la maschera di rete e l'interfaccia appropriate.",
|
||||||
"SYSTEM_TITLE": "Informazioni di Sistema",
|
"SYSTEM_TITLE": "Informazioni di Sistema",
|
||||||
"Setting_Override": "Sovrascrivi valore",
|
"Setting_Override": "Sovrascrivi valore",
|
||||||
"Setting_Override_Description": "Abilitando questa opzione verrà sovrascritto un valore di default dell'App con il valore specificato sopra.",
|
"Setting_Override_Description": "Abilitando questa opzione verr\u00e0 sovrascritto un valore di default dell'App con il valore specificato sopra.",
|
||||||
"Settings_Metadata_Toggle": "Mostra/Nascondi metadati per questa impostazione.",
|
"Settings_Metadata_Toggle": "Mostra/Nascondi metadati per questa impostazione.",
|
||||||
"Settings_device_Scanners_desync": "⚠ Le programmazioni dello scanner dispositivi sono desincronizzate.",
|
"Settings_device_Scanners_desync": "\u26a0 Le programmazioni dello scanner dispositivi sono desincronizzate.",
|
||||||
"Settings_device_Scanners_desync_popup": "Le programmazioni degli Scanner Dispositivi (<code>*_RUN_SCHD</code>) non sono uguali. Questo risulterà in notifiche per i dispositivi online/offline inconsistenti. A meno che questo non sia il comportamento voluto, per favore utilizza la stessa programmazione per tutti gli <b>🔍Scanner Dispositivi</b> abilitati.",
|
"Settings_device_Scanners_desync_popup": "Le programmazioni degli Scanner Dispositivi (<code>*_RUN_SCHD</code>) non sono uguali. Questo risulter\u00e0 in notifiche per i dispositivi online/offline inconsistenti. A meno che questo non sia il comportamento voluto, per favore utilizza la stessa programmazione per tutti gli <b>\ud83d\udd0dScanner Dispositivi</b> abilitati.",
|
||||||
"Speedtest_Results": "Risultati Speedtest",
|
"Speedtest_Results": "Risultati Speedtest",
|
||||||
"Systeminfo_CPU": "CPU",
|
"Systeminfo_CPU": "CPU",
|
||||||
"Systeminfo_CPU_Cores": "Core CPU:",
|
"Systeminfo_CPU_Cores": "Core CPU:",
|
||||||
"Systeminfo_CPU_Name": "Nome CPU:",
|
"Systeminfo_CPU_Name": "Nome CPU:",
|
||||||
"Systeminfo_CPU_Speed": "Velocità CPU:",
|
"Systeminfo_CPU_Speed": "Velocit\u00e0 CPU:",
|
||||||
"Systeminfo_CPU_Temp": "Temperatura CPU:",
|
"Systeminfo_CPU_Temp": "Temperatura CPU:",
|
||||||
"Systeminfo_CPU_Vendor": "Produttore CPU:",
|
"Systeminfo_CPU_Vendor": "Produttore CPU:",
|
||||||
"Systeminfo_Client_Resolution": "Risoluzione del browser:",
|
"Systeminfo_Client_Resolution": "Risoluzione del browser:",
|
||||||
@@ -617,15 +618,15 @@
|
|||||||
"Systeminfo_System_Running_Processes": "Processi in esecuzione:",
|
"Systeminfo_System_Running_Processes": "Processi in esecuzione:",
|
||||||
"Systeminfo_System_System": "Sistema:",
|
"Systeminfo_System_System": "Sistema:",
|
||||||
"Systeminfo_System_Uname": "Uname:",
|
"Systeminfo_System_Uname": "Uname:",
|
||||||
"Systeminfo_System_Uptime": "Tempo di attività:",
|
"Systeminfo_System_Uptime": "Tempo di attivit\u00e0:",
|
||||||
"Systeminfo_This_Client": "Questo Client",
|
"Systeminfo_This_Client": "Questo Client",
|
||||||
"Systeminfo_USB_Devices": "Dispositivi USB",
|
"Systeminfo_USB_Devices": "Dispositivi USB",
|
||||||
"TICKER_MIGRATE_TO_NETALERTX": "⚠ Rilevate vecchie posizioni di montaggio. Segui <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/MIGRATION.md\" target=\"_blank\">questa guida</a> per migrare alle nuove cartelle <code> /app/config</code> e <code>/app/db</code> e al contenitore <code>netalertx</code>.",
|
"TICKER_MIGRATE_TO_NETALERTX": "\u26a0 Rilevate vecchie posizioni di montaggio. Segui <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/MIGRATION.md\" target=\"_blank\">questa guida</a> per migrare alle nuove cartelle <code> /app/config</code> e <code>/app/db</code> e al contenitore <code>netalertx</code>.",
|
||||||
"TIMEZONE_description": "Time zone per mostrare le statistiche correttamente. Trova la tua time zone <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\" rel=\"nofollow\">qui</a>.",
|
"TIMEZONE_description": "Time zone per mostrare le statistiche correttamente. Trova la tua time zone <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\" rel=\"nofollow\">qui</a>.",
|
||||||
"TIMEZONE_name": "Fuso orario",
|
"TIMEZONE_name": "Fuso orario",
|
||||||
"UI_DEV_SECTIONS_description": "Seleziona quali elementi della UI nascondere nella pagina dei Dispositivi.",
|
"UI_DEV_SECTIONS_description": "Seleziona quali elementi della UI nascondere nella pagina dei Dispositivi.",
|
||||||
"UI_DEV_SECTIONS_name": "Nascondi sezioni Dispositivi",
|
"UI_DEV_SECTIONS_name": "Nascondi sezioni Dispositivi",
|
||||||
"UI_ICONS_description": "Una lista di icone predefinite. Procedi con cautela, la modalità preferita per aggiungere icone è descritta nella <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\">documentazione icone</a>. Puoi aggiungere tag HTML SVG (base64-encoded) o un tag HTML Font-Awesome.",
|
"UI_ICONS_description": "Una lista di icone predefinite. Procedi con cautela, la modalit\u00e0 preferita per aggiungere icone \u00e8 descritta nella <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\">documentazione icone</a>. Puoi aggiungere tag HTML SVG (base64-encoded) o un tag HTML Font-Awesome.",
|
||||||
"UI_ICONS_name": "Icone predefinite",
|
"UI_ICONS_name": "Icone predefinite",
|
||||||
"UI_LANG_description": "Seleziona la lingua UI preferita. Aiuta nella traduzione o suggerisci una nuova lingua sul portale online di <a href=\"https://hosted.weblate.org/projects/pialert/core/\" target=\"_blank\">Weblate</a>.",
|
"UI_LANG_description": "Seleziona la lingua UI preferita. Aiuta nella traduzione o suggerisci una nuova lingua sul portale online di <a href=\"https://hosted.weblate.org/projects/pialert/core/\" target=\"_blank\">Weblate</a>.",
|
||||||
"UI_LANG_name": "Lingua UI",
|
"UI_LANG_name": "Lingua UI",
|
||||||
@@ -638,7 +639,7 @@
|
|||||||
"UI_REFRESH_description": "Inserisci il numero di secondi dopo il quale la UI si ricarica. Imposta a <code>0</code> per disabilitare.",
|
"UI_REFRESH_description": "Inserisci il numero di secondi dopo il quale la UI si ricarica. Imposta a <code>0</code> per disabilitare.",
|
||||||
"UI_REFRESH_name": "Aggiorna automaticamente la UI",
|
"UI_REFRESH_name": "Aggiorna automaticamente la UI",
|
||||||
"devices_old": "Aggiornamento...",
|
"devices_old": "Aggiornamento...",
|
||||||
"general_event_description": "L'evento che hai attivato potrebbe richiedere del tempo prima che i processi in background vengano completati. L'esecuzione è terminata una volta che la coda di esecuzione sottostante si è svuotata (controlla il <a href='/maintenance.php#tab_Logging'>registro degli errori</a> se riscontri problemi). <br/> <br/> Coda di esecuzione:",
|
"general_event_description": "L'evento che hai attivato potrebbe richiedere del tempo prima che i processi in background vengano completati. L'esecuzione \u00e8 terminata una volta che la coda di esecuzione sottostante si \u00e8 svuotata (controlla il <a href='/maintenance.php#tab_Logging'>registro degli errori</a> se riscontri problemi). <br/> <br/> Coda di esecuzione:",
|
||||||
"general_event_title": "Esecuzione di un evento ad-hoc",
|
"general_event_title": "Esecuzione di un evento ad-hoc",
|
||||||
"report_guid": "Guid notifica:",
|
"report_guid": "Guid notifica:",
|
||||||
"report_guid_missing": "Notifica collegata non trovata. La notifica selezionata potrebbe essere stata eliminata durante la manutenzione come specificato nell'impostazione <code>DBCLNP_NOTIFI_HIST</code>. Viene invece visualizzata l'ultima notifica. La notifica mancante ha il seguente GUID:",
|
"report_guid_missing": "Notifica collegata non trovata. La notifica selezionata potrebbe essere stata eliminata durante la manutenzione come specificato nell'impostazione <code>DBCLNP_NOTIFI_HIST</code>. Viene invece visualizzata l'ultima notifica. La notifica mancante ha il seguente GUID:",
|
||||||
@@ -656,8 +657,8 @@
|
|||||||
"settings_expand_all": "Espandi tutto",
|
"settings_expand_all": "Espandi tutto",
|
||||||
"settings_imported": "L'ultima volta le impostazioni sono state importate dal file app.conf",
|
"settings_imported": "L'ultima volta le impostazioni sono state importate dal file app.conf",
|
||||||
"settings_imported_label": "Impostazioni importate",
|
"settings_imported_label": "Impostazioni importate",
|
||||||
"settings_missing": "Non tutte le impostazioni sono state caricate! Carico elevato sul database o sulla sequenza di avvio dell'app. Fai clic sul pulsante 🔄 ricarica in alto.",
|
"settings_missing": "Non tutte le impostazioni sono state caricate! Carico elevato sul database o sulla sequenza di avvio dell'app. Fai clic sul pulsante \ud83d\udd04 ricarica in alto.",
|
||||||
"settings_missing_block": "Errore: impostazioni non caricate correttamente. Fai clic sul pulsante di ricarica 🔄 in alto, in alternativa, controlla il registro del browser per i dettagli (F12).",
|
"settings_missing_block": "Errore: impostazioni non caricate correttamente. Fai clic sul pulsante di ricarica \ud83d\udd04 in alto, in alternativa, controlla il registro del browser per i dettagli (F12).",
|
||||||
"settings_old": "Importazione delle impostazioni e re-inizializzazione...",
|
"settings_old": "Importazione delle impostazioni e re-inizializzazione...",
|
||||||
"settings_other_scanners": "Altri plugin, non scanner per dispositivi, che sono attualmente abilitati.",
|
"settings_other_scanners": "Altri plugin, non scanner per dispositivi, che sono attualmente abilitati.",
|
||||||
"settings_other_scanners_icon": "fa-solid fa-recycle",
|
"settings_other_scanners_icon": "fa-solid fa-recycle",
|
||||||
@@ -671,4 +672,4 @@
|
|||||||
"settings_update_item_warning": "Aggiorna il valore qui sotto. Presta attenzione a seguire la formattazione del valore precedente.<b>La validazione non viene eseguita.</b>",
|
"settings_update_item_warning": "Aggiorna il valore qui sotto. Presta attenzione a seguire la formattazione del valore precedente.<b>La validazione non viene eseguita.</b>",
|
||||||
"test_event_icon": "fa-vial-circle-check",
|
"test_event_icon": "fa-vial-circle-check",
|
||||||
"test_event_tooltip": "Salva i cambiamenti prima di testare le nuove impostazioni."
|
"test_event_tooltip": "Salva i cambiamenti prima di testare le nuove impostazioni."
|
||||||
}
|
}
|
||||||
@@ -453,6 +453,7 @@
|
|||||||
"Navigation_Maintenance": "",
|
"Navigation_Maintenance": "",
|
||||||
"Navigation_Monitoring": "",
|
"Navigation_Monitoring": "",
|
||||||
"Navigation_Network": "",
|
"Navigation_Network": "",
|
||||||
|
"Navigation_Notifications": "",
|
||||||
"Navigation_Plugins": "",
|
"Navigation_Plugins": "",
|
||||||
"Navigation_Presence": "",
|
"Navigation_Presence": "",
|
||||||
"Navigation_Report": "",
|
"Navigation_Report": "",
|
||||||
|
|||||||
@@ -453,6 +453,7 @@
|
|||||||
"Navigation_Maintenance": "",
|
"Navigation_Maintenance": "",
|
||||||
"Navigation_Monitoring": "",
|
"Navigation_Monitoring": "",
|
||||||
"Navigation_Network": "",
|
"Navigation_Network": "",
|
||||||
|
"Navigation_Notifications": "",
|
||||||
"Navigation_Plugins": "",
|
"Navigation_Plugins": "",
|
||||||
"Navigation_Presence": "",
|
"Navigation_Presence": "",
|
||||||
"Navigation_Report": "",
|
"Navigation_Report": "",
|
||||||
|
|||||||
@@ -453,6 +453,7 @@
|
|||||||
"Navigation_Maintenance": "",
|
"Navigation_Maintenance": "",
|
||||||
"Navigation_Monitoring": "",
|
"Navigation_Monitoring": "",
|
||||||
"Navigation_Network": "",
|
"Navigation_Network": "",
|
||||||
|
"Navigation_Notifications": "",
|
||||||
"Navigation_Plugins": "",
|
"Navigation_Plugins": "",
|
||||||
"Navigation_Presence": "",
|
"Navigation_Presence": "",
|
||||||
"Navigation_Report": "",
|
"Navigation_Report": "",
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -453,6 +453,7 @@
|
|||||||
"Navigation_Maintenance": "",
|
"Navigation_Maintenance": "",
|
||||||
"Navigation_Monitoring": "",
|
"Navigation_Monitoring": "",
|
||||||
"Navigation_Network": "",
|
"Navigation_Network": "",
|
||||||
|
"Navigation_Notifications": "",
|
||||||
"Navigation_Plugins": "",
|
"Navigation_Plugins": "",
|
||||||
"Navigation_Presence": "",
|
"Navigation_Presence": "",
|
||||||
"Navigation_Report": "",
|
"Navigation_Report": "",
|
||||||
|
|||||||
@@ -147,7 +147,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<!-- Alert float -->
|
<!-- Alert float -->
|
||||||
<div id="notification" >
|
<div id="notification_modal" class="alert alert-dimissible notification_modal" >
|
||||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||||
<div id="alert-message"> Alert message </div>
|
<div id="alert-message"> Alert message </div>
|
||||||
</div>
|
</div>
|
||||||
@@ -156,4 +156,7 @@
|
|||||||
<!-- Sticky Announcement -->
|
<!-- Sticky Announcement -->
|
||||||
<div id="tickerAnnouncement" class="ticker_announcement myhidden">
|
<div id="tickerAnnouncement" class="ticker_announcement myhidden">
|
||||||
<div id="ticker-message"> Announcement message </div>
|
<div id="ticker-message"> Announcement message </div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -205,6 +205,17 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
|
|||||||
|
|
||||||
pluginsData = res["data"];
|
pluginsData = res["data"];
|
||||||
|
|
||||||
|
// Sort settingsData alphabetically based on the "Group" property
|
||||||
|
settingsData.sort((a, b) => {
|
||||||
|
if (a["Group"] < b["Group"]) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (a["Group"] > b["Group"]) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
|
|
||||||
initSettingsPage(settingsData, pluginsData, generateDropdownOptions);
|
initSettingsPage(settingsData, pluginsData, generateDropdownOptions);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -215,7 +226,7 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
|
|||||||
// main initialization function
|
// main initialization function
|
||||||
function initSettingsPage(settingsData, pluginsData){
|
function initSettingsPage(settingsData, pluginsData){
|
||||||
|
|
||||||
const settingGroups = [];
|
const settingPluginPrefixes = [];
|
||||||
const settingKeyOfLists = [];
|
const settingKeyOfLists = [];
|
||||||
|
|
||||||
const enabledDeviceScanners = getPluginsByType(pluginsData, "device_scanner", true);
|
const enabledDeviceScanners = getPluginsByType(pluginsData, "device_scanner", true);
|
||||||
@@ -225,13 +236,13 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
|
|||||||
|
|
||||||
|
|
||||||
// Loop through the settingsArray and:
|
// Loop through the settingsArray and:
|
||||||
// - collect unique settingGroups
|
// - collect unique settingPluginPrefixes
|
||||||
// - collect enabled plugins
|
// - collect enabled plugins
|
||||||
|
|
||||||
settingsData.forEach((set) => {
|
settingsData.forEach((set) => {
|
||||||
// settingGroups
|
// settingPluginPrefixes
|
||||||
if (!settingGroups.includes(set.Group)) {
|
if (!settingPluginPrefixes.includes(set.Group)) {
|
||||||
settingGroups.push(set.Group); // = Unique plugin prefix
|
settingPluginPrefixes.push(set.Group); // = Unique plugin prefix
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -281,17 +292,15 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
|
|||||||
`)
|
`)
|
||||||
}
|
}
|
||||||
|
|
||||||
let isIn = ' in '; // to open the active panel in AdminLTE
|
for (const prefix of settingPluginPrefixes) {
|
||||||
|
|
||||||
for (const group of settingGroups) {
|
|
||||||
|
|
||||||
// enabled / disabled icons
|
// enabled / disabled icons
|
||||||
enabledHtml = ''
|
enabledHtml = ''
|
||||||
|
|
||||||
if(getSetting(group+"_RUN") != "")
|
if(getSetting(prefix+"_RUN") != "")
|
||||||
{
|
{
|
||||||
// show all enabled plugins
|
// show all enabled plugins
|
||||||
getSetting(group+"_RUN") != 'disabled' ? onOff = 'dot-circle' : onOff = 'circle';
|
getSetting(prefix+"_RUN") != 'disabled' ? onOff = 'dot-circle' : onOff = 'circle';
|
||||||
|
|
||||||
enabledHtml = `
|
enabledHtml = `
|
||||||
<div class="enabled-disabled-icon">
|
<div class="enabled-disabled-icon">
|
||||||
@@ -307,8 +316,8 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
|
|||||||
<div class="row table_row">
|
<div class="row table_row">
|
||||||
<div class="table_cell bold">
|
<div class="table_cell bold">
|
||||||
<i class="fa-regular fa-book fa-sm"></i>
|
<i class="fa-regular fa-book fa-sm"></i>
|
||||||
${getString(group+'_description')}
|
${getString(prefix+'_description')}
|
||||||
<a href="https://github.com/jokob-sk/NetAlertX/tree/main/front/plugins/${getPluginCodeName(pluginsData, group)}" target="_blank">
|
<a href="https://github.com/jokob-sk/NetAlertX/tree/main/front/plugins/${getPluginCodeName(pluginsData, prefix)}" target="_blank">
|
||||||
${getString('Gen_ReadDocs')}
|
${getString('Gen_ReadDocs')}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@@ -316,34 +325,33 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
// Plugin HEADER
|
// Plugin HEADER
|
||||||
headerHtml = `<div class="box box-solid box-primary panel panel-default" id="${group}_header">
|
headerHtml = `<div class="box box-solid box-primary panel panel-default" id="${prefix}_header">
|
||||||
<a data-toggle="collapse" data-parent="#accordion_gen" href="#${group}">
|
<a data-toggle="collapse" data-parent="#accordion_gen" href="#${prefix}">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h4 class="panel-title">
|
<h4 class="panel-title">
|
||||||
<div class="col-sm-1 col-xs-1">${getString(group+"_icon")} </div>
|
<div class="col-sm-1 col-xs-1">${getString(prefix+"_icon")} </div>
|
||||||
<div class="col-sm-10 col-xs-8">${getString(group+"_display_name")} </div>
|
<div class="col-sm-10 col-xs-8">${getString(prefix+"_display_name")} </div>
|
||||||
<div class="col-sm-1 col-xs-1">${enabledHtml} </div>
|
<div class="col-sm-1 col-xs-1">${enabledHtml} </div>
|
||||||
</h4>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
<div id="${group}" data-myid="collapsible" class="panel-collapse collapse ${isIn}">
|
<div id="${prefix}" data-myid="collapsible" class="panel-collapse collapse ${prefix == "General" ? ' in ' : ""}">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
${group != "general" ? pluginHtml: ""}
|
${prefix != "General" ? pluginHtml: ""}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
isIn = ' '; // open the first panel only by default on page load
|
|
||||||
|
|
||||||
// generate headers/sections
|
// generate headers/sections
|
||||||
$('#'+getPluginType(pluginsData, group) + "_content").append(headerHtml);
|
$('#'+getPluginType(pluginsData, prefix) + "_content").append(headerHtml);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// generate panel content
|
// generate panel content
|
||||||
for (const group of settingGroups) {
|
for (const prefix of settingPluginPrefixes) {
|
||||||
|
|
||||||
// go thru all settings and collect settings per settings group
|
// go thru all settings and collect settings per settings prefix
|
||||||
settingsData.forEach((set) => {
|
settingsData.forEach((set) => {
|
||||||
|
|
||||||
let val = set['Value'];
|
let val = set['Value'];
|
||||||
@@ -356,7 +364,7 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
|
|||||||
// constructing final HTML for the setting
|
// constructing final HTML for the setting
|
||||||
setHtml = ""
|
setHtml = ""
|
||||||
|
|
||||||
if(set["Group"] == group)
|
if(set["Group"] == prefix)
|
||||||
{
|
{
|
||||||
// hide metadata by default by assigning it a special class
|
// hide metadata by default by assigning it a special class
|
||||||
isMetadata ? metadataClass = 'metadata' : metadataClass = '';
|
isMetadata ? metadataClass = 'metadata' : metadataClass = '';
|
||||||
@@ -402,7 +410,7 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
|
|||||||
override = overrideObj["override"];
|
override = overrideObj["override"];
|
||||||
|
|
||||||
console.log(setObj)
|
console.log(setObj)
|
||||||
console.log(group)
|
console.log(prefix)
|
||||||
}
|
}
|
||||||
|
|
||||||
// prepare override checkbox and HTML
|
// prepare override checkbox and HTML
|
||||||
@@ -563,7 +571,7 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
|
|||||||
eventsList.forEach(event => {
|
eventsList.forEach(event => {
|
||||||
eventsHtml += `<span class="input-group-addon pointer"
|
eventsHtml += `<span class="input-group-addon pointer"
|
||||||
data-myparam="${codeName}"
|
data-myparam="${codeName}"
|
||||||
data-myparam-plugin="${group}"
|
data-myparam-plugin="${prefix}"
|
||||||
data-myevent="${event}"
|
data-myevent="${event}"
|
||||||
onclick="addToExecutionQueue(this)"
|
onclick="addToExecutionQueue(this)"
|
||||||
>
|
>
|
||||||
@@ -579,8 +587,8 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
|
|||||||
</div>
|
</div>
|
||||||
`
|
`
|
||||||
|
|
||||||
// generate settings in the correct group section
|
// generate settings in the correct prefix (group) section
|
||||||
$(`#${group} .panel-body`).append(setHtml);
|
$(`#${prefix} .panel-body`).append(setHtml);
|
||||||
|
|
||||||
// init remove and edit listitem click gestures
|
// init remove and edit listitem click gestures
|
||||||
if(['subnets', 'list' ].includes(setType))
|
if(['subnets', 'list' ].includes(setType))
|
||||||
|
|||||||
85
front/userNotifications.php
Executable file
85
front/userNotifications.php
Executable file
@@ -0,0 +1,85 @@
|
|||||||
|
<?php
|
||||||
|
require 'php/templates/header.php';
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!-- Datatable -->
|
||||||
|
<link rel="stylesheet" href="lib/AdminLTE/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css">
|
||||||
|
<link rel="stylesheet" href="lib/AdminLTE/bower_components/datatables.net/css/select.dataTables.min.css">
|
||||||
|
<script src="lib/AdminLTE/bower_components/datatables.net/js/jquery.dataTables.min.js"></script>
|
||||||
|
<script src="lib/AdminLTE/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js"></script>
|
||||||
|
<script src="lib/AdminLTE/bower_components/datatables.net/js/dataTables.select.min.js"></script>
|
||||||
|
|
||||||
|
<div id="notifications" class="content-wrapper">
|
||||||
|
<table id="notificationsTable" class="table table-bordered table-hover table-striped display">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Timestamp</th>
|
||||||
|
<th>GUID</th>
|
||||||
|
<th>Read</th>
|
||||||
|
<th>Level</th>
|
||||||
|
<th>Content</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<!-- Data will be inserted here by DataTables -->
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
function fetchData(callback) {
|
||||||
|
$.ajax({
|
||||||
|
url: '/api/user_notifications.json',
|
||||||
|
method: 'GET',
|
||||||
|
dataType: 'json',
|
||||||
|
success: function(response) {
|
||||||
|
console.log(response);
|
||||||
|
if (response == "[]" || response == "") {
|
||||||
|
callback([]);
|
||||||
|
} else if (response.error) {
|
||||||
|
alert("Error: " + response.error);
|
||||||
|
callback([]);
|
||||||
|
} else if (!Array.isArray(response)) {
|
||||||
|
alert("Unexpected response format");
|
||||||
|
callback([]);
|
||||||
|
} else {
|
||||||
|
callback(response);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function(xhr, status, error) {
|
||||||
|
console.log("An error occurred while fetching data: " + error);
|
||||||
|
callback([]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
const table = $('#notificationsTable').DataTable({
|
||||||
|
"columns": [
|
||||||
|
{ "data": "timestamp" },
|
||||||
|
{ "data": "guid" },
|
||||||
|
{ "data": "read" },
|
||||||
|
{ "data": "level" },
|
||||||
|
{
|
||||||
|
"data": "content",
|
||||||
|
"render": function(data, type, row) {
|
||||||
|
return `<span class="btn-show-message">${data}</span>`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"columnDefs": [
|
||||||
|
{ "width": "10%", "targets": [0] }, // Set width of the first four columns to 10%
|
||||||
|
{ "width": "20%", "targets": [1] }, // Set width of the first four columns to 10%
|
||||||
|
{ "width": "5%", "targets": [2, 3] }, // Set width of the first four columns to 10%
|
||||||
|
{ "width": "60%", "targets": 4 } // Set width of the "Content" column to 60%
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
fetchData(function(data) {
|
||||||
|
table.clear().rows.add(data).draw();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
require 'php/templates/footer.php';
|
||||||
|
?>
|
||||||
@@ -99,9 +99,8 @@ fi
|
|||||||
# Create an empty log files
|
# Create an empty log files
|
||||||
|
|
||||||
# Create the execution_queue.log file if it doesn't exist
|
# Create the execution_queue.log file if it doesn't exist
|
||||||
touch "${INSTALL_PATH}/front/log/execution_queue.log"
|
touch "${INSTALL_DIR}"/front/log/{app.log,execution_queue.log,app_front.log,app.php_errors.log,stderr.log,stdout.log,db_is_locked.log}
|
||||||
# Create the app_front.log file if it doesn't exist
|
touch "${INSTALL_DIR}"/api/{user_notifications.json}
|
||||||
touch "${INSTALL_PATH}/front/log/app_front.log"
|
|
||||||
|
|
||||||
|
|
||||||
# Fixing file permissions
|
# Fixing file permissions
|
||||||
|
|||||||
@@ -173,6 +173,7 @@ def main ():
|
|||||||
pluginsState = run_plugin_scripts(db, all_plugins, 'on_notification', pluginsState)
|
pluginsState = run_plugin_scripts(db, all_plugins, 'on_notification', pluginsState)
|
||||||
notification.setAllProcessed()
|
notification.setAllProcessed()
|
||||||
notification.clearPendingEmailFlag()
|
notification.clearPendingEmailFlag()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -287,7 +287,7 @@ def importConfigs (db, all_plugins):
|
|||||||
|
|
||||||
|
|
||||||
# save the newly discovered plugins as options and default values
|
# save the newly discovered plugins as options and default values
|
||||||
conf.LOADED_PLUGINS = ccd('LOADED_PLUGINS', loaded_plugins_prefixes , c_d, 'Loaded plugins', 'text.multiselect', str(all_plugins_prefixes), 'General')
|
conf.LOADED_PLUGINS = ccd('LOADED_PLUGINS', loaded_plugins_prefixes , c_d, 'Loaded plugins', 'text.multiselect', str(sorted(all_plugins_prefixes)), 'General')
|
||||||
|
|
||||||
mylog('none', ['[Config] Number of Plugins to load: ', len(loaded_plugins_prefixes)])
|
mylog('none', ['[Config] Number of Plugins to load: ', len(loaded_plugins_prefixes)])
|
||||||
mylog('none', ['[Config] Plugins to load: ', loaded_plugins_prefixes])
|
mylog('none', ['[Config] Plugins to load: ', loaded_plugins_prefixes])
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import json
|
|||||||
import uuid
|
import uuid
|
||||||
import socket
|
import socket
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import requests
|
||||||
from json2table import convert
|
from json2table import convert
|
||||||
|
|
||||||
# Register NetAlertX modules
|
# Register NetAlertX modules
|
||||||
@@ -181,6 +182,9 @@ class Notification_obj:
|
|||||||
self.Text = final_text
|
self.Text = final_text
|
||||||
self.HTML = final_html
|
self.HTML = final_html
|
||||||
|
|
||||||
|
# Notify frontend
|
||||||
|
write_notification("Report:" + self.GUID, "alert")
|
||||||
|
|
||||||
self.upsert()
|
self.upsert()
|
||||||
|
|
||||||
return self
|
return self
|
||||||
@@ -234,6 +238,39 @@ class Notification_obj:
|
|||||||
|
|
||||||
self.save()
|
self.save()
|
||||||
|
|
||||||
|
def write_notification(content, level="interrupt"):
|
||||||
|
NOTIFICATION_API_FILE = apiPath + 'user_notifications.json'
|
||||||
|
|
||||||
|
# Generate GUID
|
||||||
|
guid = str(uuid.uuid4())
|
||||||
|
|
||||||
|
# Generate timestamp
|
||||||
|
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
|
||||||
|
# Prepare notification dictionary
|
||||||
|
notification = {
|
||||||
|
'timestamp': timestamp,
|
||||||
|
'guid': guid,
|
||||||
|
'read': 0,
|
||||||
|
'level': level,
|
||||||
|
'content': content
|
||||||
|
}
|
||||||
|
|
||||||
|
# If file exists, load existing data, otherwise initialize as empty list
|
||||||
|
if os.path.exists(NOTIFICATION_API_FILE):
|
||||||
|
with open(NOTIFICATION_API_FILE, 'r') as file:
|
||||||
|
notifications = json.load(file)
|
||||||
|
else:
|
||||||
|
notifications = []
|
||||||
|
|
||||||
|
# Append new notification
|
||||||
|
notifications.append(notification)
|
||||||
|
|
||||||
|
# Write updated data back to file
|
||||||
|
with open(NOTIFICATION_API_FILE, 'w') as file:
|
||||||
|
json.dump(notifications, file, indent=4)
|
||||||
|
|
||||||
|
|
||||||
def clearPendingEmailFlag(self):
|
def clearPendingEmailFlag(self):
|
||||||
|
|
||||||
# Clean Pending Alert Events
|
# Clean Pending Alert Events
|
||||||
|
|||||||
Reference in New Issue
Block a user