Compare commits

...

87 Commits

Author SHA1 Message Date
github-actions[bot]
7d57370741 [🤖Automation] Update README with sponsors information
Some checks are pending
docker / docker_dev (push) Waiting to run
2024-06-28 11:53:58 +00:00
Hosted Weblate
43b9b0c032 Merge branch 'origin/main' into Weblate. 2024-06-28 13:09:28 +02:00
Safeguard
01bf367d40 Translated using Weblate (Russian)
Currently translated at 99.8% (682 of 683 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/ru/
2024-06-28 13:09:23 +02:00
github-actions[bot]
67f7822d1f [🤖Automation] Update README with sponsors information
Some checks are pending
docker / docker_dev (push) Waiting to run
2024-06-27 11:53:47 +00:00
jokob-sk
f64ebae3ee 📚Docs 2024-06-27 21:52:00 +10:00
jokob-sk
d1e7606cf5 Merge branch 'main' of https://github.com/jokob-sk/NetAlertX 2024-06-27 21:09:05 +10:00
jokob-sk
90038f1365 📚Docs 2024-06-27 21:08:45 +10:00
github-actions[bot]
e29f8f29ce [🤖Automation] Update README with sponsors information
Some checks are pending
docker / docker_dev (push) Waiting to run
2024-06-26 11:53:44 +00:00
jokob-sk
63a922eb0a Merge branch 'main' of https://github.com/jokob-sk/NetAlertX
Some checks are pending
docker / docker_dev (push) Waiting to run
2024-06-26 11:47:02 +10:00
jokob-sk
f065b830e9 🔌OMADA work #708 2024-06-26 11:46:45 +10:00
github-actions[bot]
237e73ec8e [🤖Automation] Update README with sponsors information
Some checks are pending
docker / docker_dev (push) Waiting to run
2024-06-25 11:54:00 +00:00
jokob-sk
6e78788a36 Merge branch 'main' of https://github.com/jokob-sk/NetAlertX
Some checks are pending
docker / docker_dev (push) Waiting to run
2024-06-25 09:50:46 +10:00
jokob-sk
a0fac32c14 🔌OMADA work #708 2024-06-25 09:50:31 +10:00
github-actions[bot]
1ee8fcc8c3 [🤖Automation] Update README with sponsors information
Some checks are pending
docker / docker_dev (push) Waiting to run
2024-06-24 11:53:35 +00:00
github-actions[bot]
042cfa62f5 [🤖Automation] Update README with sponsors information
Some checks are pending
docker / docker_dev (push) Waiting to run
2024-06-23 11:53:46 +00:00
jokob-sk
a030912f48 🆕 Sorting in the Network tables #713
Some checks are pending
docker / docker_dev (push) Waiting to run
2024-06-23 10:45:15 +10:00
jokob-sk
01e97e152c Merge branch 'main' of https://github.com/jokob-sk/NetAlertX 2024-06-23 09:59:16 +10:00
jokob-sk
d7c12ee8d7 📚Docs, + cur_Type 2024-06-23 09:58:56 +10:00
github-actions[bot]
9c772c5c1b [🤖Automation] Update README with sponsors information
Some checks are pending
docker / docker_dev (push) Waiting to run
2024-06-22 11:53:56 +00:00
github-actions[bot]
7cb45351ed [🤖Automation] Update README with sponsors information 2024-06-21 11:53:51 +00:00
jokob-sk
dce2443d73 Merge branch 'main' of https://github.com/jokob-sk/NetAlertX 2024-06-21 16:44:34 +10:00
jokob-sk
a52e315732 📚Docs, QoL improvements 2024-06-21 16:44:03 +10:00
Hosted Weblate
443128db74 Merge branch 'origin/main' into Weblate. 2024-06-20 14:09:38 +00:00
Gooseman
9c92252296 Translated using Weblate (French)
Currently translated at 45.8% (313 of 683 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/fr/
2024-06-20 16:09:19 +02:00
github-actions[bot]
036ca4d1cb [🤖Automation] Update README with sponsors information 2024-06-20 11:53:36 +00:00
github-actions[bot]
431fe4cd8d [🤖Automation] Update README with sponsors information 2024-06-19 11:53:44 +00:00
Hosted Weblate
34427689aa Merge branch 'origin/main' into Weblate. 2024-06-19 05:09:18 +02:00
Massimo Pissarello
08f3039f91 Translated using Weblate (Italian)
Currently translated at 100.0% (683 of 683 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/it/
2024-06-19 05:09:16 +02:00
github-actions[bot]
5514cf0f74 [🤖Automation] Update README with sponsors information 2024-06-18 11:53:45 +00:00
github-actions[bot]
607dcf54c6 [🤖Automation] Update README with sponsors information 2024-06-17 11:53:48 +00:00
Hosted Weblate
f3b0795e81 Merge branch 'origin/main' into Weblate. 2024-06-16 20:10:14 +00:00
Massimo Pissarello
11e9e1991d Translated using Weblate (Italian)
Currently translated at 100.0% (682 of 682 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/it/
2024-06-16 22:10:04 +02:00
github-actions[bot]
33fad4403f [🤖Automation] Update README with sponsors information 2024-06-16 11:53:37 +00:00
jokob-sk
3b7cbba32b 🎨 Device tiles setting 2024-06-16 12:23:14 +10:00
jokob-sk
5302673a96 Merge branch 'main' of https://github.com/jokob-sk/NetAlertX 2024-06-16 09:11:38 +10:00
jokob-sk
8c4bcbca41 📚 UI not visible docs 2024-06-16 09:11:21 +10:00
Hosted Weblate
299f34709d Merge branch 'origin/main' into Weblate. 2024-06-15 17:09:20 +02:00
Massimo Pissarello
d8e00e7727 Translated using Weblate (Italian)
Currently translated at 100.0% (678 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/it/
2024-06-15 15:09:18 +00:00
gallegonovato
7cadc57db9 Translated using Weblate (Spanish)
Currently translated at 100.0% (678 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/es/
2024-06-15 15:09:17 +00:00
github-actions[bot]
fa99ae061a [🤖Automation] Update README with sponsors information 2024-06-15 11:53:45 +00:00
jokob-sk
177a66ac60 🌐 File encoding fix 2024-06-15 16:32:09 +10:00
jokob-sk
1cc471d56c 🚦COlors and icons for device status label #706 + DeviceDetails fields 2024-06-15 16:26:33 +10:00
jokob-sk
76183e504a Weblate 2024-06-15 10:59:04 +10:00
jokob-sk
3a1a6c8dac 📃 Plugin __template + OMADA SDN v0.1 #708 2024-06-15 10:54:55 +10:00
github-actions[bot]
8c8c2cba34 [🤖Automation] Update README with sponsors information 2024-06-14 11:53:46 +00:00
Hosted Weblate
dc5a9ff6d0 Merge branch 'origin/main' into Weblate. 2024-06-14 09:09:34 +02:00
Szymon Niewczas
bfdbfa5492 Translated using Weblate (Polish)
Currently translated at 100.0% (678 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/pl/
2024-06-14 09:09:32 +02:00
Massimo Pissarello
610cde92f9 Translated using Weblate (Italian)
Currently translated at 100.0% (678 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/it/
2024-06-14 09:09:31 +02:00
Safeguard
fdf814ded8 Translated using Weblate (Russian)
Currently translated at 99.8% (677 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/ru/
2024-06-14 09:09:20 +02:00
github-actions[bot]
eb552ee912 [🤖Automation] Update README with sponsors information 2024-06-13 11:53:45 +00:00
Hosted Weblate
003692d51d Merge branch 'origin/main' into Weblate. 2024-06-13 06:24:03 +00:00
Szymon Niewczas
850824c41d Translated using Weblate (Polish)
Currently translated at 55.7% (378 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/pl/
2024-06-13 06:24:02 +00:00
Anonymous
877654944c Translated using Weblate (Chinese (Simplified))
Currently translated at 8.1% (55 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/zh_Hans/
2024-06-13 08:23:58 +02:00
Anonymous
8aeb2de064 Translated using Weblate (Polish)
Currently translated at 55.6% (377 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/pl/
2024-06-13 08:23:58 +02:00
Anonymous
fa8e5d92d7 Translated using Weblate (Italian)
Currently translated at 99.7% (676 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/it/
2024-06-13 08:23:58 +02:00
Anonymous
926c1180b6 Translated using Weblate (Russian)
Currently translated at 98.2% (666 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/ru/
2024-06-13 08:23:58 +02:00
Anonymous
946a483455 Translated using Weblate (Norwegian Bokmål)
Currently translated at 99.7% (676 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/nb_NO/
2024-06-13 08:23:58 +02:00
Anonymous
bd3fa5c0fa Translated using Weblate (French)
Currently translated at 44.2% (300 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/fr/
2024-06-13 08:23:58 +02:00
Anonymous
9b0cef2cc2 Translated using Weblate (Spanish)
Currently translated at 99.7% (676 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/es/
2024-06-13 08:23:58 +02:00
Anonymous
855fdb94f0 Translated using Weblate (German)
Currently translated at 91.7% (622 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/de/
2024-06-13 08:23:58 +02:00
jokob-sk
1b5a15ebb7 🆕MQTT device_tracker state fix attempt 2024-06-13 07:54:32 +10:00
Hosted Weblate
151667bb52 Merge branch 'origin/main' into Weblate. 2024-06-12 21:09:22 +02:00
Massimo Pissarello
3c81dd171b Translated using Weblate (Italian)
Currently translated at 100.0% (678 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/it/
2024-06-12 21:09:14 +02:00
github-actions[bot]
50a175bd56 [🤖Automation] Update README with sponsors information 2024-06-12 11:53:35 +00:00
jokob-sk
ff288c58e3 🆕MQTT self.mac error #703 + dos/css fixes 2024-06-12 21:34:00 +10:00
jokob-sk
307e81918e 🆕MQTT add device_tracker attributes #703 2024-06-12 19:41:13 +10:00
jokob-sk
2ca5f5d80e MQTT removed debug condition 2024-06-12 18:42:28 +10:00
jokob-sk
a6f0a364d4 Merge branch 'main' of https://github.com/jokob-sk/NetAlertX 2024-06-12 18:35:33 +10:00
jokob-sk
d94297e093 🎨Nicer logo, 📚Notification & debug docs, 📦MQTT device_tracker feature request #702 2024-06-12 18:35:14 +10:00
github-actions[bot]
223a6556b9 [🤖Automation] Update README with sponsors information 2024-06-11 11:53:54 +00:00
github-actions[bot]
ead63a81e0 [🤖Automation] Update README with sponsors information 2024-06-10 11:53:41 +00:00
Hosted Weblate
f60962e341 Merge branch 'origin/main' into Weblate. 2024-06-10 12:09:19 +02:00
Marcus Isdahl
de2ee396c8 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (678 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/nb_NO/
2024-06-10 10:09:16 +00:00
jokob-sk
2e3626a8b3 Merge branch 'main' of https://github.com/jokob-sk/NetAlertX 2024-06-10 09:14:39 +10:00
jokob-sk
2faa0ff9b7 🐛 Regex warnings #700 2024-06-10 09:14:24 +10:00
github-actions[bot]
4ada56d0d9 [🤖Automation] Update README with sponsors information 2024-06-09 11:53:40 +00:00
Hosted Weblate
00d33ee3e2 Merge branch 'origin/main' into Weblate. 2024-06-09 08:42:38 +02:00
gallegonovato
ead57614b6 Translated using Weblate (Spanish)
Currently translated at 100.0% (678 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/es/
2024-06-09 08:42:37 +02:00
Anonymous
eac915acc8 Translated using Weblate (Italian)
Currently translated at 99.5% (675 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/it/
2024-06-09 08:42:32 +02:00
Anonymous
697b60731a Translated using Weblate (Russian)
Currently translated at 98.5% (668 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/ru/
2024-06-09 08:42:32 +02:00
Anonymous
54612059d7 Translated using Weblate (German)
Currently translated at 92.0% (624 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/de/
2024-06-09 08:42:32 +02:00
jokob-sk
63ca3019e1 Merge branch 'main' of https://github.com/jokob-sk/NetAlertX 2024-06-09 13:15:54 +10:00
jokob-sk
bcddf6d0c5 🔃Settings cache refresh #698 + 📚Plugins docs 2024-06-09 13:15:38 +10:00
Hosted Weblate
1cec63601b Merge branch 'origin/main' into Weblate. 2024-06-09 00:10:24 +00:00
Marcus Isdahl
f8be8e2a1f Translated using Weblate (Norwegian Bokmål)
Currently translated at 55.4% (376 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/nb_NO/
2024-06-09 02:09:25 +02:00
gallegonovato
661414de28 Translated using Weblate (Spanish)
Currently translated at 100.0% (678 of 678 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/es/
2024-06-09 02:09:16 +02:00
jokob-sk
4a33eb71c6 🔃Chache refresh on settings page 2024-06-09 09:20:55 +10:00
93 changed files with 5475 additions and 3298 deletions

View File

@@ -48,7 +48,6 @@ jobs:
with:
# list of Docker images to use as base name for tags
images: |
jokobsk/pi.alert_dev
jokobsk/netalertx-dev
# generate Docker tags based on the following events/attributes
tags: |

View File

@@ -15,7 +15,7 @@ ENV PATH="/opt/venv/bin:$PATH"
COPY . ${INSTALL_DIR}/
RUN pip install pycryptodome requests paho-mqtt scapy cron-converter pytz json2table dhcp-leases pyunifi speedtest-cli chardet python-nmap dnspython \
RUN pip install tplink-omada-client pycryptodome requests paho-mqtt scapy cron-converter pytz json2table dhcp-leases pyunifi speedtest-cli chardet python-nmap dnspython \
&& bash -c "find ${INSTALL_DIR} -type d -exec chmod 750 {} \;" \
&& bash -c "find ${INSTALL_DIR} -type f -exec chmod 640 {} \;" \
&& bash -c "find ${INSTALL_DIR} -type f \( -name '*.sh' -o -name '*.py' -o -name 'speedtest-cli' \) -exec chmod 750 {} \;"

View File

@@ -43,7 +43,7 @@ RUN phpenmod -v 8.2 sqlite3
RUN apt-get install -y python3-venv
RUN python3 -m venv myenv
RUN /bin/bash -c "source myenv/bin/activate && update-alternatives --install /usr/bin/python python /usr/bin/python3 10 && pip3 install pycryptodome requests paho-mqtt scapy cron-converter pytz json2table dhcp-leases pyunifi speedtest-cli chardet python-nmap dnspython cryptography "
RUN /bin/bash -c "source myenv/bin/activate && update-alternatives --install /usr/bin/python python /usr/bin/python3 10 && pip3 install tplink-omada-client pycryptodome requests paho-mqtt scapy cron-converter pytz json2table dhcp-leases pyunifi speedtest-cli chardet python-nmap dnspython cryptography "
# Create a buildtimestamp.txt to later check if a new version was released
RUN date +%s > ${INSTALL_DIR}/front/buildtimestamp.txt

View File

@@ -12,20 +12,25 @@ Get visibility of what's going on on your WIFI/LAN network. Schedule scans for d
|----------------------|----------------------| ----------------------| ----------------------|
| ![Main screen][main] | ![Screen 1][screen1] | ![Screen 5][screen5] |
| ![Main screen][main] | ![device_details 1][device_details] | ![Screen network][network] |
|----------------------|----------------------| ----------------------|
![network_setup][network_setup]
Head to [https://netalertx.com/](https://netalertx.com/) for more screenshots.
<details>
<summary>📷 Click for more screenshots</summary>
| ![Screen 3][screen3] | ![Screen 4][screen4] | ![Screen 6][screen6] |
| ![presence][presence] | ![maintenance][maintenance] | ![settings][settings] |
|----------------------|----------------------|----------------------|
| ![Screen 8][screen8] | ![Report 2][report2] | ![Screen 9][screen9] |
| ![sync_hub][sync_hub] | ![report1][report1] | ![device_nmap][device_nmap] |
</details>
<details>
<summary>❓ Why use Net <b>Alert</b><sup>x</sup>?</summary>
<summary>❓ Why use Net<b>Alert</b><sup>x</sup>?</summary>
<hr>
@@ -87,6 +92,7 @@ Thank you to all the wonderful people who are sponsoring this project.
<!-- SPONSORS-LIST DO NOT MODIFY BELOW -->
| All Sponsors |
|---|
| [fama-lama](https://github.com/fama-lama) |
<!-- SPONSORS-LIST DO NOT MODIFY ABOVE -->
@@ -131,19 +137,21 @@ Help out and suggest languages in the [online portal of Weblate](https://hosted.
<!--- --------------------------------------------------------------------- --->
[main]: ./docs/img/devices_split.png "Main screen"
[screen1]: ./docs/img/device_details.png "Screen 1"
[screen2]: ./docs/img/events.png "Screen 2"
[screen3]: ./docs/img/presence.png "Screen 3"
[screen4]: ./docs/img/maintenance.png "Screen 4"
[screen5]: ./docs/img/network.png "Screen 5"
[screen6]: ./docs/img/settings.png "Screen 6"
[screen7]: ./docs/img/help_faq.png "Screen 7"
[screen8]: ./docs/img/plugins_rogue_dhcp.png "Screen 8"
[screen9]: ./docs/img/device_nmap.png "Screen 9"
[report1]: ./docs/img/4_report_1.jpg "Report sample 1"
[report2]: ./docs/img/4_report_2.jpg "Report sample 2"
[main_dark]: /docs/img/1_devices_dark.jpg "Main screen dark"
[maintain_dark]: /docs/img/5_maintain.jpg "Maintain screen dark"
[follow_star]: /docs/img/Follow_Releases_and_Star.gif "Follow and Star"
[main]: ./docs/img/devices_split.png "Main screen"
[device_details]: ./docs/img/device_details.png "Screen 1"
[events]: ./docs/img/events.png "Screen 2"
[presence]: ./docs/img/presence.png "Screen 3"
[maintenance]: ./docs/img/maintenance.png "Screen 4"
[network]: ./docs/img/network.png "Screen 5"
[settings]: ./docs/img/settings.png "Screen 6"
[network_setup]: ./docs/img/network_setup.gif "Screen 6"
[help_faq]: ./docs/img/help_faq.png "Screen 7"
[sync_hub]: ./docs/img/sync_hub.png "Screen 8"
[notification_center]: ./docs/img/notification_center.png "Screen 8"
[sent_reports_text]: ./docs/img/sent_reports_text.png "Screen 8"
[device_nmap]: ./docs/img/device_nmap.png "Screen 9"
[report1]: ./docs/img/report_sample.png "Report sample 1"
[main_dark]: /docs/img/1_devices_dark.jpg "Main screen dark"
[maintain_dark]: /docs/img/5_maintain.jpg "Maintain screen dark"
[follow_star]: /docs/img/Follow_Releases_and_Star.gif "Follow and Star"

View File

@@ -38,7 +38,7 @@ docker run -d --rm --network=host \
| `PORT` |Port of the web interface | `20211` |
| `LISTEN_ADDR` |Set the specific IP Address for the listener address for the nginx webserver (web interface). This could be useful when using multiple subnets to hide the web interface from all untrusted networks. | `0.0.0.0` |
|`TZ` |Time zone to display stats correctly. Find your time zone [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) | `Europe/Berlin` |
|`ALWAYS_FRESH_INSTALL` | Setting `ALWAYS_FRESH_INSTALL=true` will delete the content of the `/db` & `/config` folders. For testing purposes. Can be coupled with [watchtower](https://github.com/containrrr/watchtower) to have an always freshly installed `netalertx`/`-dev` image. | `N/A` |
|`ALWAYS_FRESH_INSTALL` | Setting to `true` will delete the content of the `/db` & `/config` folders. For testing purposes. Can be coupled with [watchtower](https://github.com/containrrr/watchtower) to have an always freshly installed `netalertx`/`-dev` image. | `N/A` |
### Docker paths

View File

@@ -33,7 +33,7 @@ To edit device information:
## Session Info
- **Status**: Show device status : On-line / Off-Line
- **First Session**: Date and time of the first connection
- **Last Session**: Date and time of the last connection
- **Last Offline**: Date and time of the last last time the device was offline
- **Last IP**: Last known IP used during the last connection
- **Static IP**: Check this box to identify devices that always use the
same IP

64
docs/DEV_ENV_SETUP.md Executable file
View File

@@ -0,0 +1,64 @@
## Development environemnt set up
>[!NOTE]
> Replace `/development` with the path where your code files will be stored. The default container name is `netalertx` so there might be a conflict with your running containers.
## 1. Download the code:
- `mkdir /development`
- `cd /development && git clone https://github.com/jokob-sk/NetAlertX.git`
## 2. Create a DEV .env_dev file
`touch /development/.env_dev && sudo nano /development/.env_dev`
The file content should be following, with your custom values.
```yaml
#--------------------------------
#NETALERTX
#--------------------------------
TZ=Europe/Berlin
PORT=22222 # make sure this port is unique on your whole network
DEV_LOCATION=/development/NetAlertX
APP_DATA_LOCATION=/volume/docker_appdata
# ALWAYS_FRESH_INSTALL=true # uncommenting this will always delete the content of /config and /db dirs on boot to simulate a fresh install
```
## 3. Create /db and /config dirs
Create a folder `netalertx` in the `APP_DATA_LOCATION` (in this example in `/volume/docker_appdata`) with 2 subfolders `db` and `config`.
- `mkdir /volume/docker_appdata/netalertx`
- `mkdir /volume/docker_appdata/netalertx/db`
- `mkdir /volume/docker_appdata/netalertx/config`
## 4. Run the container
- `cd /development/NetAlertX && sudo docker-compose --env-file ../.env_dev `
You can then modify the python script without restarting/rebuilding the container every time. Additionally, you can trigger a plugin run via the UI:
![image](https://github.com/jokob-sk/NetAlertX/assets/96159884/3cbf2748-03c8-49e7-b801-f38c7755246b)
## 💡 Tips
A quick cheat sheet of useful commands.
### Removing the container and image
A command to stop, remove the container and the image (replace `netalertx` and `netalertx-netalertx` with the appropriate values)
- `sudo docker container stop netalertx ; sudo docker container rm netalertx ; sudo docker image rm netalertx-netalertx`
### Restart hanging python script
SSH into the container and kill & restart the main script loop
- `sudo docker exec -it netalertx /bin/bash`
- `pkill -f "python /app/server" && python /app/server & `

View File

@@ -1,5 +1,13 @@
# Managing File Permissions for NetAlertX on Nginx with Docker
> [!TIP]
> If you are facing permission issues, try to start the container without mapping your volumes. If that works, then the issue is permission related. You can try e.g., the following command:
> ```
> docker run -d --rm --network=host \
> -e TZ=Europe/Berlin \
> -e PORT=20211 \
> jokobsk/netalertx:latest
> ```
NetAlertX runs on an Nginx web server. On Alpine Linux, Nginx operates as the `nginx` user (user ID 101, group ID 82 - `www-data`). Consequently, files accessed or written by the NetAlertX application are owned by `nginx:www-data`.
Upon starting, NetAlertX changes the ownership of files on the host system mapped to `/app/config` and `/app/db` in the container to `nginx:www-data`. This ensures that Nginx can access and write to these files. Since the user in the Docker container is mapped to a user on the host system by ID:GID, the files in `/app/config` and `/app/db` on the host system are owned by a user with the same ID and GID (ID 101 and GID 82). On different systems, this ID:GID may belong to different users (on Debian, the user with ID 82 is `uuidd`), or there may not be a user with ID 82 at all.

View File

@@ -38,7 +38,7 @@ Some examples how to apply the above:
Some useful frontend JavaScript functions:
- `getDeviceDataByMacAddress(macAddress, devicesColumn)` - method to retrieve any device data (database column) based on MAC address in the frontend
- `getDeviceDataByMac(macAddress, devicesColumn)` - method to retrieve any device data (database column) based on MAC address in the frontend
- `getString(string stringKey)` - method to retrieve translated strings in the frontend
- `getSetting(string stringKey)` - method to retrieve settings in the frontend

View File

@@ -32,13 +32,15 @@ On almost all plugins there are 2 core settings, `<plugin>_WATCH` and `<plugin>_
1. `<plugin>_WATCH` specifies the columns which the app should watch. If watched columns change the device state is considered changed. This changed status is then used to decide to send out notifications based on the `<plugin>_REPORT_ON` setting.
2. `<plugin>_REPORT_ON` let's you specify on which events the app should notify you. This is related to the `<plugin>_WATCH` setting. So if you select `watched-changed` and in `<plugin>_WATCH` you only select `Watched_Value1`, then a notification is triggered if `Watched_Value1` is changed from the previous value, but no notification is send if `Watched_Value2` changes.
Click the **Read more in the docs.** Link at the top of each plugin to get more details on how the given plugin works.
## Global settings ⚙
![Global notification settings](/docs/img/NOTIFICATIONS/Global-notification-settings.png)
In the Notification Processing section, you can specify blanket rules. These allow you to specify exceptions to the Plugin and Device settings and will override those.
In Notification Processing settings, you can specify blanket rules. These allow you to specify exceptions to the Plugin and Device settings and will override those.
1. Notify on (`NTFPRCS_INCLUDED_SECTIONS`) allows you to specify which events trigger notifications. Usual setups will have `new_devices`, `down_devices`, and possibly `events` set. Setting `plugin` might be too noisy for most setups.
1. Notify on (`NTFPRCS_INCLUDED_SECTIONS`) allows you to specify which events trigger notifications. Usual setups will have `new_devices`, `down_devices`, and possibly `events` set. Setting `plugin` might be too noisy for most setups. More info in the [NTFPRCS plugin](/front/plugins/notification_processing/README.md)
2. Alert down after (`NTFPRCS_alert_down_time`) is useful if you want to wait for some time before the system sends out a down notification for a device. This is related to the on-device **Alert down** setting and only devices with this checked will trigger a down notification.
3. A filter to allow you to set device-specific exceptions to New devices being added to the app.
4. A filter to allow you to set device-specific exceptions to generated Events.
@@ -50,4 +52,4 @@ In the Notification Processing section, you can specify blanket rules. These all
You can completely ignore detected devices globally. This could be because your instance detects docker containers, you want to ignore devices from a specific manufacturer via MAC rules or you want to ignore devices on a specific IP range.
1. Ignored MACs (`NEWDEV_ignored_MACs`) - List of MACs to ignore.
2. Ignored IPs (`NEWDEV_ignored_MACs`) - List of IPs to ignore.
2. Ignored IPs (`NEWDEV_ignored_IPs`) - List of IPs to ignore.

View File

@@ -66,6 +66,7 @@ There is also an in-app Help / FAQ section that should be answering frequently a
#### 👩💻For Developers👨💻
- [Setting up your DEV environment](/docs/DEV_ENV_SETUP.md)
- [Server APP code structure](/server/README.md)
- [Database structure](/docs/DATABASE.md)
- [API endpoints details](/docs/API.md)

View File

@@ -1,12 +1,49 @@
# Debugging inaccessible UI
When opening an issue please :
## 1. Port conflicts
When opening an issue please:
1. Include a screenshot of what you see when accessing `HTTP://<your rpi IP>/20211` (or your custom port)
1. [Follow steps 1, 2, 3, 4 on this page](https://github.com/jokob-sk/NetAlertX/blob/main/docs/DEBUG_TIPS.md)
1. Execute the following in the container to see the processes and their ports and submit a screenshot of the result:
1. `sudo apt-get install lsof`
1. `sudo apk add lsof`
1. `sudo lsof -i`
1. Try running the `nginx` command in the container
1. if you get `nginx: [emerg] bind() to 0.0.0.0:20211 failed (98: Address in use)` try using a different port number
![lsof ports](/docs/img/WEB_UI_PORT_DEBUG/container_port.png)
![lsof ports](/docs/img/WEB_UI_PORT_DEBUG/container_port.png)
## 2. JavaScript issues
Check for browser console (F12 browser dev console) errors + check different browsers.
## 3. Clear the app cache and cached JavaScript files
Refresh the browser cache (usually shoft + refresh), try a private window, or different browsers. Please also refresh the app cache by clicking the 🔃 (reload) button in the header of the application.
## 4. Disable proxy
If you have any reverse proxy or similar, try disabling it.
## 5. Post your docker start details
If you haven't, post your docker compose/run command.
## 6. Check for errors in your PHP/NGINX error logs
In the container execute:
`cat /var/log/nginx/error.log`
`cat /app/front/log/app.php_errors.log`
## 7. Make sure permissions are correct
> [!TIP]
> You can try to start the container without mapping the `/app/config` and `/app/db` dirs and if the UI shows up then the issue is most likely related to your file system permissions or file ownership.
Please read the [Permissions troubleshooting guide](/docs/FILE_PERMISSIONS.md) and provide a screesnhot of the permissions and ownership in the `/app/db` and `app/config` directories.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 KiB

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 187 KiB

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 KiB

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 KiB

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 146 KiB

BIN
docs/img/multi_edit.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 216 KiB

BIN
docs/img/network_setup.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
docs/img/notification_center.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 KiB

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 KiB

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 180 KiB

BIN
docs/img/report_sample.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

BIN
docs/img/sent_reports_text.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 KiB

After

Width:  |  Height:  |  Size: 167 KiB

BIN
docs/img/sync_hub.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

View File

@@ -108,6 +108,10 @@
/* -----------------------------------------------------------------------------
Main Sections
----------------------------------------------------------------------------- */
.content-header h1{
font-size:24px;
}
.content-header {
padding-top: 5px;
}
@@ -1102,13 +1106,20 @@ input[readonly] {
height: 1.5em !important;
}
#TileCards .tile .inner
{
color: white;
}
#dropdownIcon li svg, #dropdownIcon li i{
height: 1.5em !important;
}
#tableDevices .badge i
{
height: 1em !important;
}
/* ----------------------------------------------------------------- */
/* MODAL popups */
@@ -1227,6 +1238,13 @@ input[readonly] {
/* background-color:red; */
}
.sort-btn {
right: 5px;
top: 50%;
transform: translateY(-50%);
cursor: pointer;
}
/* ----------------------------------------------------------------- */

View File

@@ -350,6 +350,18 @@
<input class="form-control" id="txtNetworkPort" type="text" value="--">
</div>
</div>
<div class="form-group" >
<label class="col-sm-3 control-label"><?= lang('DevDetail_MainInfo_SSID');?></label>
<div class="col-sm-9">
<input class="form-control" id="txtSSID" type="text" value="--">
</div>
</div>
<div class="form-group" >
<label class="col-sm-3 control-label"><?= lang('DevDetail_MainInfo_Network_Site');?></label>
<div class="col-sm-9">
<input class="form-control" id="txtNetworkSite" type="text" value="--">
</div>
</div>
@@ -1210,6 +1222,8 @@ function getDeviceData (readAllData=false) {
$('#txtComments').val ('--');
$('#txtNetworkNodeMac').val ('--');
$('#txtNetworkPort').val ('--');
$('#txtNetworkSite').val ('--');
$('#txtSSID').val ('--');
$('#txtFirstConnection').val ('--');
$('#txtLastConnection').val ('--');
@@ -1293,7 +1307,7 @@ function getDeviceData (readAllData=false) {
networkParentMac = deviceData['dev_Network_Node_MAC_ADDR']
if(networkParentMac)
{
networkParentMacName = getDeviceDataByMacAddress(deviceData['dev_Network_Node_MAC_ADDR'], "dev_Name")
networkParentMacName = getDeviceDataByMac(deviceData['dev_Network_Node_MAC_ADDR'], "dev_Name")
} else
{
networkParentMacName = '--'
@@ -1314,6 +1328,8 @@ function getDeviceData (readAllData=false) {
$('#txtNetworkNodeMac').val ( networkParentMacName) ;
$('#txtNetworkNodeMac').attr ('data-mynodemac', deviceData['dev_Network_Node_MAC_ADDR']);
$('#txtNetworkPort').val (deviceData['dev_Network_Node_port']);
$('#txtNetworkSite').val (deviceData['dev_NetworkSite']);
$('#txtSSID').val (deviceData['dev_SSID']);
// disabling network node configuration if root Internet node
toggleNetworkConfiguration(mac == 'Internet')
@@ -1452,6 +1468,8 @@ function setDeviceData (direction='', refreshCallback='') {
+ '&comments=' + encodeURIComponent($('#txtComments').val())
+ '&networknode=' + $('#txtNetworkNodeMac').attr('data-mynodemac')
+ '&networknodeport=' + $('#txtNetworkPort').val()
+ '&ssid=' + $('#txtSSID').val()
+ '&networksite=' + $('#txtNetworkSite').val()
+ '&staticIP=' + ($('#chkStaticIP')[0].checked * 1)
+ '&scancycle=' + ($('#txtScanCycle').val() == "yes" ? "1" : "0")
+ '&alertevents=' + ($('#chkAlertEvents')[0].checked * 1)
@@ -1738,7 +1756,7 @@ function setTextValue (textElement, textValue) {
if(textElement == "txtNetworkNodeMac")
{
$('#'+textElement).attr ('data-mynodemac', textValue);
$('#'+textElement).val (getDeviceDataByMacAddress(textValue, "dev_Name"));
$('#'+textElement).val (getDeviceDataByMac(textValue, "dev_Name"));
} else
{
$('#'+textElement).attr ('data-myvalue', textValue);

View File

@@ -77,16 +77,16 @@
<?= lang("DevDetail_Nmap_Scans_desc") ?>
</div>
<button type="button" id="piamanualnmap_fast" class="btn btn-primary pa-btn" style="margin-bottom: 20px; margin-left: 10px; margin-right: 10px;" onclick="manualnmapscan(getDeviceDataByMacAddress(getMac(), 'dev_LastIP'), 'fast')">
<button type="button" id="piamanualnmap_fast" class="btn btn-primary pa-btn" style="margin-bottom: 20px; margin-left: 10px; margin-right: 10px;" onclick="manualnmapscan(getDeviceDataByMac(getMac(), 'dev_LastIP'), 'fast')">
<?= lang("DevDetail_Loading") ?>
</button>
<button type="button" id="piamanualnmap_normal" class="btn btn-primary pa-btn" style="margin-bottom: 20px; margin-left: 10px; margin-right: 10px;" onclick="manualnmapscan(getDeviceDataByMacAddress(getMac(), 'dev_LastIP'), 'normal')">
<button type="button" id="piamanualnmap_normal" class="btn btn-primary pa-btn" style="margin-bottom: 20px; margin-left: 10px; margin-right: 10px;" onclick="manualnmapscan(getDeviceDataByMac(getMac(), 'dev_LastIP'), 'normal')">
<?= lang("DevDetail_Loading") ?>
</button>
<button type="button" id="piamanualnmap_detail" class="btn btn-primary pa-btn" style="margin-bottom: 20px; margin-left: 10px; margin-right: 10px;" onclick="manualnmapscan(getDeviceDataByMacAddress(getMac(), 'dev_LastIP'), 'detail')">
<button type="button" id="piamanualnmap_detail" class="btn btn-primary pa-btn" style="margin-bottom: 20px; margin-left: 10px; margin-right: 10px;" onclick="manualnmapscan(getDeviceDataByMac(getMac(), 'dev_LastIP'), 'detail')">
<?= lang("DevDetail_Loading") ?>
</button>
<button type="button" id="piamanualnmap_skipdiscovery" class="btn btn-primary pa-btn" style="margin-bottom: 20px; margin-left: 10px; margin-right: 10px;" onclick="manualnmapscan(getDeviceDataByMacAddress(getMac(), 'dev_LastIP'), 'skipdiscovery')">
<button type="button" id="piamanualnmap_skipdiscovery" class="btn btn-primary pa-btn" style="margin-bottom: 20px; margin-left: 10px; margin-right: 10px;" onclick="manualnmapscan(getDeviceDataByMac(getMac(), 'dev_LastIP'), 'skipdiscovery')">
<?= lang("DevDetail_Loading") ?>
</button>
@@ -155,7 +155,7 @@
$( "#tracerouteoutput" ).empty();
$.ajax({
method: "GET",
url: "./php/server/traceroute.php?action=get&ip=" + getDeviceDataByMacAddress(getMac(), 'dev_LastIP') + "",
url: "./php/server/traceroute.php?action=get&ip=" + getDeviceDataByMac(getMac(), 'dev_LastIP') + "",
beforeSend: function() { $('#tracerouteoutput').addClass("ajax_scripts_loading"); },
complete: function() { $('#tracerouteoutput').removeClass("ajax_scripts_loading"); },
success: function(data, textStatus) {
@@ -170,7 +170,7 @@
$( "#nslookupoutput" ).empty();
$.ajax({
method: "GET",
url: "./php/server/nslookup.php?action=get&ip=" + getDeviceDataByMacAddress(getMac(), 'dev_LastIP') + "",
url: "./php/server/nslookup.php?action=get&ip=" + getDeviceDataByMac(getMac(), 'dev_LastIP') + "",
beforeSend: function() { $('#nslookupoutput').addClass("ajax_scripts_loading"); },
complete: function() { $('#nslookupoutput').removeClass("ajax_scripts_loading"); },
success: function(data, textStatus) {

View File

@@ -42,77 +42,7 @@
<!-- Tile toggle cards ------------------------------------------------------- -->
<div class="row" id="TileCards">
<!-- top small box 1 ------------------------------------------------------- -->
<div class="col-lg-2 col-sm-4 col-xs-6">
<a href="#" onclick="javascript: initializeDatatable('my');">
<div class="small-box bg-aqua">
<div class="inner"><h3 id="devicesMy"> -- </h3>
<p class="infobox_label"><?= lang('Device_Shortcut_AllDevices');?></p>
</div>
<div class="icon"><i class="fa fa-laptop text-aqua-40"></i></div>
</div>
</a>
</div>
<!-- top small box 2 ------------------------------------------------------- -->
<div class="col-lg-2 col-sm-4 col-xs-6">
<a href="#" onclick="javascript: initializeDatatable('connected');">
<div class="small-box bg-green">
<div class="inner"><h3 id="devicesConnected"> -- </h3>
<p class="infobox_label"><?= lang('Device_Shortcut_Connected');?></p>
</div>
<div class="icon"><i class="fa fa-plug text-green-40"></i></div>
</div>
</a>
</div>
<!-- top small box 3 ------------------------------------------------------- -->
<div class="col-lg-2 col-sm-4 col-xs-6">
<a href="#" onclick="javascript: initializeDatatable('favorites');">
<div class="small-box bg-yellow">
<div class="inner"><h3 id="devicesFavorites"> -- </h3>
<p class="infobox_label"><?= lang('Device_Shortcut_Favorites');?></p>
</div>
<div class="icon"><i class="fa fa-star text-yellow-40"></i></div>
</div>
</a>
</div>
<!-- top small box 4 ------------------------------------------------------- -->
<div class="col-lg-2 col-sm-4 col-xs-6">
<a href="#" onclick="javascript: initializeDatatable('new');">
<div class="small-box bg-yellow">
<div class="inner"><h3 id="devicesNew"> -- </h3>
<p class="infobox_label"><?= lang('Device_Shortcut_NewDevices');?></p>
</div>
<div class="icon"><i class="ion ion-plus-round text-yellow-40"></i></div>
</div>
</a>
</div>
<!-- top small box 5 ------------------------------------------------------- -->
<div class="col-lg-2 col-sm-4 col-xs-6">
<a href="#" onclick="javascript: initializeDatatable('down');">
<div class="small-box bg-red">
<div class="inner"><h3 id="devicesDown"> -- </h3>
<p class="infobox_label"><?= lang('Device_Shortcut_DownOnly');?></p>
</div>
<div class="icon"><i class="fa fa-warning text-red-40"></i></div>
</div>
</a>
</div>
<!-- top small box 6 ------------------------------------------------------- -->
<div class="col-lg-2 col-sm-4 col-xs-6">
<a href="#" onclick="javascript: initializeDatatable('archived');">
<div class="small-box bg-gray top_small_box_gray_text">
<div class="inner"><h3 id="devicesArchived"> -- </h3>
<p class="infobox_label"><?= lang('Device_Shortcut_Archived');?></p>
</div>
<div class="icon"><i class="fa fa-eye-slash text-gray-40"></i></div>
</div>
</a>
</div>
<!-- Placeholder ------------------------------------------------------- -->
</div>
@@ -213,9 +143,7 @@
var tableOrder = [[3,'desc'], [0,'asc']];
var tableColumnHide = [];
var columnsStr = '[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]';
var tableColumnOrder = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20];
var tableColumnVisible = tableColumnOrder;
//initialize the table headers in the correct order
var headersDefaultOrder = [
getString('Device_TableHead_Name'),
@@ -238,9 +166,16 @@
getString('Device_TableHead_Vendor'),
getString('Device_TableHead_Port'),
getString('Device_TableHead_GUID'),
getString('Device_TableHead_SyncHubNodeName')
getString('Device_TableHead_SyncHubNodeName'),
getString('Device_TableHead_NetworkSite'),
getString('Device_TableHead_SSID')
];
// generate default order lists of given length
var columnsStr = JSON.stringify(Array.from({ length: headersDefaultOrder.length }, (_, i) => i));
var tableColumnOrder = Array.from({ length: headersDefaultOrder.length }, (_, i) => i);
var tableColumnVisible = tableColumnOrder;
// Read parameters & Initialize components
showSpinner();
main();
@@ -316,9 +251,7 @@ function main () {
// Initialize components with parameters
initializeDatatable(getUrlAnchor('my'));
initializeDatatable(getUrlAnchor('my_devices'));
// check if data outdated and show spinner if so
handleLoadingDialog()
@@ -353,21 +286,47 @@ function getDevicesTotals(devicesData) {
if (getCache("getDevicesTotals") !== "") {
resultJSON = getCache("getDevicesTotals");
} else {
// combined query
const devices = filterDataByStatus(devicesData, 'my');
const connectedDevices = filterDataByStatus(devicesData, 'connected');
const favoritesDevices = filterDataByStatus(devicesData, 'favorites');
const newDevices = filterDataByStatus(devicesData, 'new');
const downDevices = filterDataByStatus(devicesData, 'down');
const archivedDevices = filterDataByStatus(devicesData, 'archived');
// Define filter conditions and corresponding objects
const filters = [
{ status: 'my_devices', color: 'bg-aqua', label: getString('Device_Shortcut_AllDevices'), icon: 'fa-laptop' },
{ status: 'all', color: 'bg-aqua', label: getString('Gen_All_Devices'), icon: 'fa-laptop' },
{ status: 'connected', color: 'bg-green', label: getString('Device_Shortcut_Connected'), icon: 'fa-plug' },
{ status: 'favorites', color: 'bg-yellow', label: getString('Device_Shortcut_Favorites'), icon: 'fa-star' },
{ status: 'new', color: 'bg-yellow', label: getString('Device_Shortcut_NewDevices'), icon: 'fa-plus' },
{ status: 'down', color: 'bg-red', label: getString('Device_Shortcut_DownOnly'), icon: 'fa-warning' },
{ status: 'archived', color: 'bg-gray', label: getString('Device_Shortcut_Archived'), icon: 'fa-eye-slash' },
{ status: 'offline', color: 'bg-gray', label: getString('Gen_Offline'), icon: 'fa-xmark' }
];
$('#devicesMy').html (devices.length);
$('#devicesConnected').html (connectedDevices.length);
$('#devicesFavorites').html (favoritesDevices.length);
$('#devicesNew').html (newDevices.length);
$('#devicesDown').html (downDevices.length);
$('#devicesArchived').html (archivedDevices.length);
// Initialize an empty array to store the final objects
let dataArray = [];
// Loop through each filter condition
filters.forEach(filter => {
// Calculate count dynamically based on filter condition
let count = filterDataByStatus(devicesData, filter.status).length;
// Check any condition to skip adding the object to dataArray
if (
(['', 'False'].includes(getSetting('UI_hide_empty')) || (getSetting('UI_hide_empty') == "True" && count > 0)) &&
(getSetting('UI_shown_cards') == "" || getSetting('UI_shown_cards').includes(filter.status))
) {
dataArray.push({
onclickEvent: `initializeDatatable('${filter.status}')`,
color: filter.color,
title: count,
label: filter.label,
icon: filter.icon
});
}
});
// render info boxes/tile cards
renderInfoboxes(
dataArray
)
// save to cache
setCache("getDevicesTotals", resultJSON);
@@ -376,12 +335,28 @@ function getDevicesTotals(devicesData) {
// console.log(resultJSON);
}
//------------------------------------------------------------------------------
function renderInfoboxes(customData) {
$.ajax({
url: 'php/components/tile_cards.php', // PHP script URL
type: 'POST', // Use POST method to send data
dataType: 'html', // Expect HTML response
data: { items: JSON.stringify(customData) }, // Send customData as JSON
success: function(response) {
$('#TileCards').html(response); // Replace container content with fetched HTML
},
error: function(xhr, status, error) {
console.error('Error fetching infoboxes:', error);
}
});
}
// -----------------------------------------------------------------------------
// Define a function to filter data based on deviceStatus
function filterDataByStatus(data, status) {
return data.filter(function(item) {
switch (status) {
case 'my':
case 'my_devices':
to_display = getSetting('UI_MY_DEVICES');
let result = true;
@@ -398,7 +373,7 @@ function filterDataByStatus(data, status) {
result = false;
}
return result; // Include all items for 'my' status
return result; // Include all items for 'my_devices' status
case 'connected':
return item.dev_PresentLastScan === 1;
case 'favorites':
@@ -424,7 +399,7 @@ function getDeviceStatus(item)
if(item.dev_NewDevice === 1)
{
return 'New';
}
}
else if(item.dev_PresentLastScan === 1)
{
return 'On-line';
@@ -450,7 +425,7 @@ function initializeDatatable (status) {
if(!status)
{
status = 'my'
status = 'my_devices'
}
// Save status selected
@@ -458,12 +433,14 @@ function initializeDatatable (status) {
// Define color & title for the status selected
switch (deviceStatus) {
case 'my': tableTitle = getString('Device_Shortcut_AllDevices'); color = 'aqua'; break;
case 'my_devices': tableTitle = getString('Device_Shortcut_AllDevices'); color = 'aqua'; break;
case 'connected': tableTitle = getString('Device_Shortcut_Connected'); color = 'green'; break;
case 'all': tableTitle = getString('Gen_All_Devices'); color = 'aqua'; break;
case 'favorites': tableTitle = getString('Device_Shortcut_Favorites'); color = 'yellow'; break;
case 'new': tableTitle = getString('Device_Shortcut_NewDevices'); color = 'yellow'; break;
case 'down': tableTitle = getString('Device_Shortcut_DownOnly'); color = 'red'; break;
case 'down': tableTitle = getString('Device_Shortcut_DownOnly'); color = 'red'; break;
case 'archived': tableTitle = getString('Device_Shortcut_Archived'); color = 'gray'; break;
case 'offline': tableTitle = getString('Gen_Offline'); color = 'gray'; break;
default: tableTitle = getString('Device_Shortcut_Devices'); color = 'gray'; break;
}
@@ -515,7 +492,9 @@ function initializeDatatable (status) {
item.dev_Vendor || "",
item.dev_Network_Node_port || 0,
item.dev_GUID || "",
item.dev_SyncHubNodeName || ""
item.dev_SyncHubNodeName || "",
item.dev_NetworkSite || "",
item.dev_SSID || ""
];
var newRow = [];
@@ -652,17 +631,27 @@ function initializeDatatable (status) {
{targets: [mapIndx(10)],
'createdCell': function (td, cellData, rowData, row, col) {
// console.log(cellData)
switch (cellData) {
case 'Down': color='red'; break;
case 'New': color='yellow'; break;
case 'On-line': color='green'; break;
case 'Off-line': color='gray text-white'; break;
case 'Archived': color='gray text-white'; break;
default: color='aqua'; break;
};
devData = getDeviceDataByMac(rowData[mapIndx(11)])
if (devData.dev_PresentLastScan == 1)
{
css = "green text-white statusOnline"
icon = '<i class="fa-solid fa-plug"></i>'
} else if (devData.dev_PresentLastScan != 1 && devData.dev_AlertDeviceDown == 1)
{
css = "red text-white statusDown"
icon = '<i class="fa-solid fa-triangle-exclamation"></i>'
} else if(devData.dev_PresentLastScan != 1)
{
css = "gray text-white statusOffline"
icon = '<i class="fa-solid fa-xmark"></i>'
} else
{
css = "gray text-white statusUnknown"
icon = '<i class="fa-solid fa-question"></i>'
}
$(td).html ('<a href="deviceDetails.php?mac='+ rowData[mapIndx(11)] +'" class="badge bg-'+ color +'">'+ cellData.replace('-', '') +'</a>');
$(td).html (`<a href="deviceDetails.php?mac=${rowData[mapIndx(11)]}" class="badge bg-${css}">${icon} ${cellData.replace('-', '')}</a>`);
} },
],

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
front/img/NetAlertX_logo_old.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@@ -0,0 +1,365 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="200"
height="200"
viewBox="0 0 52.916667 52.916668"
version="1.1"
id="svg5"
inkscape:version="1.1.2 (b8e25be833, 2022-02-05)"
sodipodi:docname="netalertx_red_1_backup.svg"
inkscape:export-filename="C:\Users\jokob\netalertx_red_1.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="true"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="3.6203867"
inkscape:cx="154.67961"
inkscape:cy="88.664562"
inkscape:window-width="3440"
inkscape:window-height="1377"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="layer6"
units="px"
width="50px" />
<defs
id="defs2">
<inkscape:path-effect
effect="powermask"
id="path-effect51283"
is_visible="true"
lpeversion="1"
uri="#mask-powermask-path-effect51283"
invert="false"
hide_mask="false"
background="true"
background_color="#ffffffff" />
<inkscape:path-effect
effect="powermask"
id="path-effect51278"
is_visible="true"
lpeversion="1"
uri="#mask-powermask-path-effect51278"
invert="false"
hide_mask="false"
background="true"
background_color="#ffffffff" />
<inkscape:path-effect
effect="powermask"
id="path-effect51273"
is_visible="true"
lpeversion="1"
uri="#mask-powermask-path-effect51273"
invert="false"
hide_mask="false"
background="true"
background_color="#ffffffff" />
<inkscape:path-effect
effect="powermask"
id="path-effect48754"
is_visible="true"
lpeversion="1"
uri="#mask-powermask-path-effect48754"
invert="false"
hide_mask="false"
background="true"
background_color="#ffffffff" />
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath48972">
<path
style="fill:#000000;stroke-width:0.280643"
id="path48974"
width="56.128242"
height="56.128246"
x="-18.924671"
y="-56.198174"
transform="rotate(45.438374)"
mask="none"
sodipodi:type="rect" />
</clipPath>
<mask
maskUnits="userSpaceOnUse"
id="mask49405">
<text
xml:space="preserve"
style="font-size:60.8695px;line-height:1.25;font-family:Amiri;-inkscape-font-specification:Amiri;display:inline;stroke-width:1.52174"
x="66.930733"
y="78.642288"
id="text49409"
transform="scale(1.4861626,0.67287388)"><tspan
sodipodi:role="line"
id="tspan49407"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Tw Cen MT';-inkscape-font-specification:'Tw Cen MT';fill:#ffffff;stroke-width:1.52174"
x="66.930733"
y="78.642288">A</tspan></text>
</mask>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath50306">
<circle
style="mix-blend-mode:normal;fill:#d40000;stroke-width:0.176318"
id="circle50308"
cy="26.458334"
cx="26.458334"
r="26.458334"
clip-path="url(#clipPath48972)"
transform="matrix(1.0038771,0,0.00391255,1.0073928,-0.04603368,-0.1228191)" />
</clipPath>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath48972-7">
<path
style="fill:#000000;stroke-width:0.280643"
id="path48974-5"
width="56.128242"
height="56.128246"
x="-18.924671"
y="-56.198174"
transform="rotate(45.438374)"
mask="none"
sodipodi:type="rect" />
</clipPath>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath50306-6">
<circle
style="mix-blend-mode:normal;fill:#d40000;stroke-width:0.176318"
id="circle50308-5"
cy="26.458334"
cx="26.458334"
r="26.458334"
clip-path="url(#clipPath48972)"
transform="matrix(1.0038771,0,0.00391255,1.0073928,-0.04603368,-0.1228191)" />
</clipPath>
<mask
maskUnits="userSpaceOnUse"
id="mask-powermask-path-effect51273">
<path
style="fill:#000000"
id="path51263"
sodipodi:type="arc"
sodipodi:cx="66.211845"
sodipodi:cy="37.490814"
sodipodi:rx="3.9464016"
sodipodi:ry="1.4616301"
sodipodi:start="0"
sodipodi:end="0.031086059"
sodipodi:open="true"
sodipodi:arc-type="arc"
d="m 70.158247,37.490814 a 3.9464016,1.4616301 0 0 1 -0.0019,0.04543" />
</mask>
<mask
maskUnits="userSpaceOnUse"
id="mask-powermask-path-effect51278">
<path
style="fill:#000000"
id="path51267"
sodipodi:type="arc"
sodipodi:cx="66.211845"
sodipodi:cy="37.490814"
sodipodi:rx="3.9464016"
sodipodi:ry="1.4616301"
sodipodi:start="0"
sodipodi:end="0.031086059"
sodipodi:open="true"
sodipodi:arc-type="arc" />
</mask>
<mask
maskUnits="userSpaceOnUse"
id="mask-powermask-path-effect51283">
<path
style="fill:#000000"
id="path51271"
sodipodi:type="arc"
sodipodi:cx="66.211845"
sodipodi:cy="37.490814"
sodipodi:rx="3.9464016"
sodipodi:ry="1.4616301"
sodipodi:start="0"
sodipodi:end="0.031086059"
sodipodi:open="true"
sodipodi:arc-type="arc" />
</mask>
<filter
id="mask-powermask-path-effect51273_inverse"
inkscape:label="filtermask-powermask-path-effect51273"
style="color-interpolation-filters:sRGB"
height="100"
width="100"
x="-50"
y="-50">
<feColorMatrix
id="mask-powermask-path-effect51273_primitive1"
values="1"
type="saturate"
result="fbSourceGraphic" />
<feColorMatrix
id="mask-powermask-path-effect51273_primitive2"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
in="fbSourceGraphic" />
</filter>
</defs>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Red 1"
style="display:inline">
<circle
style="fill:#ff2a2a;stroke-width:0.176318"
id="path31-8"
cy="26.458334"
cx="26.458334"
r="26.458334" />
</g>
<g
inkscape:label="Black"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<ellipse
style="fill:#000000;stroke-width:0.176146"
id="path31"
cy="26.51001"
cx="26.458334"
rx="26.458334"
ry="26.406658" />
<circle
style="display:inline;fill:#ffffff;stroke-width:0.176318"
id="path31-89"
cy="26.458334"
cx="126.45834"
r="26.458334"
mask="url(#mask49405)"
transform="translate(-99.990036,0.02979629)" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="A - Layer 2"
style="display:inline">
<rect
style="fill:#ffffff;stroke-width:0.328992"
id="rect48998"
width="26.0966"
height="6.0620313"
x="13.255443"
y="41.262722" />
</g>
<g
inkscape:groupmode="layer"
id="g48055"
inkscape:label="Red top"
style="display:inline;mix-blend-mode:normal">
<circle
style="mix-blend-mode:normal;fill:#d40000;stroke-width:0.176318"
id="circle48752"
cy="26.458334"
cx="26.458334"
r="26.458334"
clip-path="url(#clipPath48972)"
transform="matrix(1.0038771,0,0.00391255,1.0073928,-0.04603368,-0.1228191)" />
<ellipse
style="display:inline;mix-blend-mode:normal;fill:#000000;stroke-width:0.43638"
id="path50080"
clip-path="url(#clipPath50306)"
ry="13.739323"
rx="16.735666"
cy="22.874514"
cx="26.36149" />
<path
style="fill:#000000"
id="path51325"
sodipodi:type="arc"
sodipodi:cx="16.772207"
sodipodi:cy="26.090099"
sodipodi:rx="4.1291056"
sodipodi:ry="7.6004772"
sodipodi:start="0"
sodipodi:end="0.031086059"
sodipodi:arc-type="slice"
d="m 20.901313,26.090099 a 4.1291056,7.6004772 0 0 1 -0.002,0.236231 l -4.127111,-0.236231 z" />
<path
style="fill:#d40000"
id="path51717"
sodipodi:type="arc"
sodipodi:cx="26.441042"
sodipodi:cy="-26.531424"
sodipodi:rx="10.418671"
sodipodi:ry="9.5820541"
sodipodi:start="0.82219863"
sodipodi:end="2.3054129"
sodipodi:arc-type="slice"
d="m 33.532115,-19.511189 a 10.418671,9.5820541 0 0 1 -14.074736,0.09049 l 6.983663,-7.110726 z"
transform="matrix(1,0,0.0048047,-0.99998846,0,0)" />
<path
style="fill:#ffffff;stroke-width:0.276214"
d="M 145.28835,50.354872 C 127.01317,34.62734 98.057144,30.012421 73.710372,38.947003 c -6.518003,2.391924 -14.288822,6.834002 -19.265958,11.01311 -1.198654,1.006465 -2.270358,1.829935 -2.381565,1.829935 -0.111206,0 -5.210052,-5.102002 -11.33077,-11.337781 L 29.603503,29.114489 30.822139,27.851613 c 0.670251,-0.69458 2.51592,-2.384634 4.101489,-3.755674 C 50.725112,10.43241 69.462577,2.3767456 90.736164,0.10085492 95.380582,-0.39601422 106.33043,-0.31105699 111.03786,0.25837091 133.04363,2.9202648 151.46536,11.26468 167.83762,25.986722 l 3.30701,2.97369 -2.29392,2.320103 c -1.26165,1.276057 -6.58213,6.517685 -11.82329,11.648065 l -9.52936,9.327957 z"
id="path52311"
transform="scale(0.26458333)" />
<path
style="fill:#ffffff;stroke-width:0.276214"
d="M 86.40648,86.72667 73.376068,73.416681 74.667403,72.441306 c 4.72517,-3.569034 10.347316,-6.07197 16.730552,-7.448313 4.112758,-0.886786 12.327485,-0.880604 16.463455,0.01239 6.55399,1.415066 12.32233,4.049211 17.21441,7.861065 l 1.05592,0.822759 -1.33214,1.364507 c -0.73267,0.750478 -6.73901,6.678655 -13.34742,13.173726 l -12.015288,11.80922 z"
id="path52350"
transform="scale(0.26458333)"
inkscape:export-filename="C:\Users\jokob\path52350.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
</g>
<g
inkscape:groupmode="layer"
id="layer6"
inkscape:label="Circle">
<path
style="fill:#000000"
id="path50026"
sodipodi:type="arc"
sodipodi:cx="71.071762"
sodipodi:cy="34.677177"
sodipodi:rx="1.7174155"
sodipodi:ry="5.5907354"
sodipodi:start="0"
sodipodi:end="0.031086059"
sodipodi:open="true"
sodipodi:arc-type="arc"
mask="url(#mask-powermask-path-effect51273)"
d="m 72.789178,34.677177 a 1.7174155,5.5907354 0 0 1 -8.3e-4,0.173766"
inkscape:path-effect="#path-effect51273" />
<path
style="fill:#ffffff;stroke-width:0.276214"
d="m 151.08883,181.46994 -2.76213,-2.60427 -48.802077,-0.009 -48.802075,-0.009 -2.292573,2.48592 c -1.260915,1.36726 -2.431589,2.48592 -2.601499,2.48592 -0.869396,0 -9.118995,-6.36599 -13.713669,-10.58246 l -2.688104,-2.46684 34.973647,-35.11455 c 19.235503,-19.313 35.0611,-35.11454 35.167986,-35.11454 0.106889,0 16.093094,15.82967 35.524894,35.17705 l 35.33055,35.17705 -2.48592,2.35505 c -3.08951,2.92687 -7.41515,6.40509 -11.09719,8.92319 -1.54594,1.05725 -2.85105,1.91728 -2.90024,1.9112 -0.0492,-0.006 -1.33242,-1.183 -2.8516,-2.61535 z m -38.4631,-38.32188 -13.050732,-13.05073 -13.050727,13.05073 -13.050725,13.05072 h 26.101452 26.101452 z"
id="path52389"
transform="scale(0.26458333)"
inkscape:export-filename="C:\Users\jokob\path52389.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
style="fill:#d40000;stroke-width:0.276214"
d="M 86.538548,86.634546 C 73.69451,73.514255 73.655832,73.471276 74.253912,72.984129 c 3.966911,-3.231117 10.195336,-6.133881 16.482252,-7.68157 2.339787,-0.576001 3.282272,-0.646986 8.700728,-0.655316 6.728828,-0.01035 8.365758,0.223077 13.326638,1.900338 4.59135,1.552325 7.8315,3.224336 11.49958,5.934101 l 1.61476,1.192897 -2.31005,2.336325 c -1.27053,1.284978 -7.22284,7.16236 -13.22736,13.060849 L 99.423152,99.796276 Z"
id="path52465"
transform="scale(0.26458333)" />
<path
style="fill:#d40000;stroke-width:0.276214"
d="M 145.01213,49.92143 C 129.67534,37.157691 107.61173,31.765107 86.040533,35.508132 73.800823,37.631961 63.910278,42.259414 52.74134,51.087703 l -0.683951,0.540616 -1.950068,-1.921684 C 49.034784,48.649709 44.035189,43.574887 38.997108,38.429251 l -9.160146,-9.355699 2.40156,-2.290793 C 39.310252,20.037198 49.728886,13.01193 58.630455,8.9867218 78.42597,0.03536962 99.380149,-2.3494504 120.42912,1.9533417 138.21485,5.5890676 153.70529,13.558756 168.1679,26.51451 l 2.71597,2.432989 -2.99218,3.016385 c -1.6457,1.65901 -6.90751,6.843636 -11.69291,11.521393 l -8.70072,8.505009 z"
id="path52504"
transform="scale(0.26458333)"
inkscape:export-filename="C:\Users\jokob\path52504.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -649,7 +649,7 @@ function navigateToDeviceWithIp (ip) {
// -----------------------------------------------------------------------------
function getNameByMacAddress(macAddress) {
return getDeviceDataByMacAddress(macAddress, "dev_Name")
return getDeviceDataByMac(macAddress, "dev_Name")
}
// -----------------------------------------------------------------------------
@@ -798,7 +798,7 @@ function isRandomMAC(mac)
// -----------------------------------------------------------------------------
// A function to get a device property using the mac address as key and DB column nakme as parameter
// for the value to be returned
function getDeviceDataByMacAddress(macAddress, dbColumn) {
function getDeviceDataByMac(macAddress, dbColumn) {
const sessionDataKey = 'devicesListAll_JSON';
const devicesCache = getCache(sessionDataKey);
@@ -813,7 +813,14 @@ function getDeviceDataByMacAddress(macAddress, dbColumn) {
for (const device of devices) {
if (device["dev_MAC"].toLowerCase() === macAddress.toLowerCase()) {
if(dbColumn)
{
return device[dbColumn];
}
else
{
return device
}
}
}

View File

@@ -266,7 +266,7 @@ function checkNotification() {
if (oldestInterruptNotification) {
// Show modal dialog with the oldest unread notification
const decodedContent = JSON.parse(decodeURIComponent(oldestInterruptNotification.content));
const decodedContent = decodeURIComponent(oldestInterruptNotification.content);
showModalOK("Notification", decodedContent, function() {
// Mark the notification as read

View File

@@ -270,6 +270,43 @@ function copyToClipboard(buttonElement) {
}
}
// -----------------------------------------------------------------------------
// Simple Sortable Table columns
// -----------------------------------------------------------------------------
function sortColumn(element) {
var th = $(element).closest('th');
var table = th.closest('table');
var columnIndex = th.index();
var ascending = !th.data('asc');
sortTable(table, columnIndex, ascending);
th.data('asc', ascending);
}
function sortTable(table, columnIndex, ascending) {
var tbody = table.find('tbody');
var rows = tbody.find('tr').toArray().sort(comparer(columnIndex));
if (!ascending) {
rows = rows.reverse();
}
for (var i = 0; i < rows.length; i++) {
tbody.append(rows[i]);
}
}
function comparer(index) {
return function(a, b) {
var valA = getCellValue(a, index);
var valB = getCellValue(b, index);
return $.isNumeric(valA) && $.isNumeric(valB) ? valA - valB : valA.localeCompare(valB);
};
}
function getCellValue(row, index) {
return $(row).children('td').eq(index).text();
}
// -----------------------------------------------------------------------------
// initialize
// -----------------------------------------------------------------------------

View File

@@ -313,6 +313,8 @@ $db->close();
<option value="18"><?= lang('Device_TableHead_Port');?></option>
<option value="19"><?= lang('Device_TableHead_GUID');?></option>
<option value="20"><?= lang('Device_TableHead_SyncHubNodeName');?></option>
<option value="21"><?= lang('Device_TableHead_NetworkSite');?></option>
<option value="22"><?= lang('Device_TableHead_SSID');?></option>
</select>
<span class="input-group-addon"><i title="<?= lang('Gen_Save');?>" class="fa fa-save pointer" onclick="saveSelectedColumns();"></i></span>
</div>
@@ -423,8 +425,10 @@ $db->close();
<div class="log-file">app.log <div class="logs-size"><?php echo number_format((filesize("./log/app.log") / 1000000),2,",",".") . ' MB';?>
<span class="span-padding"><a href="./log/app.log" target="_blank"><i class="fa fa-download"></i> </a></span>
</div></div>
<button class="btn btn-primary col-sm-2 col-xs-2" onclick="restartBackend()">Not working: Restart Backend</button>
<div class="log-purge">
<button class="btn btn-primary" onclick="logManage('app.log','cleanLog')"><?= lang('Gen_Purge');?></button>
<button class="btn btn-primary " onclick="logManage('app.log','cleanLog')"><?= lang('Gen_Purge');?></button>
</div>
</div>
</div>
@@ -688,6 +692,22 @@ function PiaPurgeDBBackups()
});
}
// Restart Backend
function restartBackend() {
// Execute
$.ajax({
method: "POST",
url: "php/server/util.php",
data: { function: 'restartBackend' },
success: function(data, textStatus) {
showModalOk ('Result', data );
}
})
}
// Export CSV
function askExportCSV() {
// Ask

View File

@@ -7,6 +7,7 @@
define('badge_offline', '<div class="badge bg-red text-white" style="width: 60px;">Offline</div>');
define('circle_online', '<div class="badge bg-green text-white" style="width: 10px; height: 10px; padding:2px; margin-top: -25px;">&nbsp;</div>');
define('circle_offline', '<div class="badge bg-red text-white" style="width: 10px; height: 10px; padding:2px; margin-top: -25px;">&nbsp;</div>');
define('sortable_column', ' <span class="sort-btn" onclick="sortColumn(this)"><i class="fa-solid fa-arrow-up-short-wide"></i></span>');
?>
@@ -140,13 +141,18 @@
';
$str_table = ' <table class="table table-striped">
<thead>
<tr>
<th class="col-sm-1" >Port</th>
<th class="col-sm-1" >'.lang('Network_Table_State').'</th>
<th class="col-sm-2" >'.lang('Network_Table_Hostname').sortable_column.'</th>
<th class="col-sm-1" >'.lang('Network_Table_IP').sortable_column.'</th>
<th class="col-sm-3" >'.lang('Network_ManageLeaf').'</th>
</tr>
</thead>
<tbody>
<tr>
<th class="col-sm-1" >Port</th>
<th class="col-sm-1" >'.lang('Network_Table_State').'</th>
<th class="col-sm-2" >'.lang('Network_Table_Hostname').'</th>
<th class="col-sm-1" >'.lang('Network_Table_IP').'</th>
<th class="col-sm-3" >'.lang('Network_ManageLeaf').'</th>
</tr>';
// Prepare Array for Devices with Port value
@@ -383,13 +389,18 @@
<i class="fa fa-laptop"></i> '.lang('Network_UnassignedDevices').'
</h3>
<table class="table table-striped">
<thead>
<tr>
<th class="col-sm-1" ></th>
<th class="col-sm-1" >'.lang('Network_Table_State').'</th>
<th class="col-sm-2" >'.lang('Network_Table_Hostname').sortable_column.'</th>
<th class="col-sm-1" >'.lang('Network_Table_IP').sortable_column.'</th>
<th class="col-sm-3" >'.lang('Network_Assign').'</th>
</tr>
</thead>
<tbody>
<tr>
<th class="col-sm-1" ></th>
<th class="col-sm-1" >'.lang('Network_Table_State').'</th>
<th class="col-sm-2" >'.lang('Network_Table_Hostname').'</th>
<th class="col-sm-1" >'.lang('Network_Table_IP').'</th>
<th class="col-sm-3" >'.lang('Network_Assign').'</th>
</tr>';
$str_table_rows = "";
@@ -852,7 +863,6 @@
// init Assign/Unassign buttons
initButtons()
</script>

View File

@@ -0,0 +1,43 @@
<?php
function renderInfobox($params) {
$onclickEvent = isset($params['onclickEvent']) ? $params['onclickEvent'] : '';
$color = isset($params['color']) ? $params['color'] : '';
$title = isset($params['title']) ? $params['title'] : '';
$label = isset($params['label']) ? $params['label'] : '';
$icon = isset($params['icon']) ? $params['icon'] : '';
return '
<div class="tile col-lg-2 col-sm-4 col-xs-6">
<a href="#" onclick="javascript: ' . htmlspecialchars($onclickEvent) . ';">
<div class="small-box ' . htmlspecialchars($color) . '">
<div class="inner">
<h3>' . htmlspecialchars($title) . '</h3>
<p class="infobox_label">' . htmlspecialchars($label) . '</p>
</div>
<div class="icon">
<i class="fa ' . htmlspecialchars($icon) . ' text-aqua-40"></i>
</div>
</div>
</a>
</div>';
}
// Load default data from JSON file
$defaultDataFile = 'tile_cards_defaults.json';
$defaultData = file_exists($defaultDataFile) ? json_decode(file_get_contents($defaultDataFile), true) : [];
// Check if 'items' parameter exists and is valid JSON
$items = isset($_POST['items']) ? json_decode($_POST['items'], true) : [];
// Use default data if 'items' is not provided or cannot be decoded
if (empty($items)) {
$items = $defaultData;
}
$html = '';
foreach ($items as $item) {
$html .= renderInfobox($item);
}
echo $html;
exit();
?>

View File

@@ -0,0 +1,17 @@
[
{
"onclickEvent": "handleClick(1)",
"color": "bg-primary",
"title": "Default Infobox 1",
"label": "Default label for Infobox 1",
"icon": "fa-bell"
},
{
"onclickEvent": "handleClick(2)",
"color": "bg-success",
"title": "Default Infobox 2",
"label": "Default label for Infobox 2",
"icon": "fa-envelope"
}
]

View File

@@ -152,6 +152,8 @@ function setDeviceData() {
dev_Comments = "'. quotes($_REQUEST['comments']) .'",
dev_Network_Node_MAC_ADDR = "'. quotes($_REQUEST['networknode']).'",
dev_Network_Node_port = "'. quotes($_REQUEST['networknodeport']).'",
dev_SSID = "'. quotes($_REQUEST['ssid']).'",
dev_NetworkSite = "'. quotes($_REQUEST['networksite']).'",
dev_StaticIP = "'. quotes($_REQUEST['staticIP']) .'",
dev_ScanCycle = "'. quotes($_REQUEST['scancycle']) .'",
dev_AlertEvents = "'. quotes($_REQUEST['alertevents']) .'",
@@ -592,7 +594,9 @@ function getDevicesList() {
array("dev_Vendor", 17, 17),
array("dev_Network_Node_port", 18, 18),
array("dev_GUID", 19, 19),
array("dev_SyncHubNodeName", 20, 20)
array("dev_SyncHubNodeName", 20, 20),
array("dev_NetworkSite", 21, 21),
array("dev_SSID", 22, 22)
);
if($forceDefaultOrder == FALSE)
@@ -663,7 +667,9 @@ function getDevicesList() {
handleNull($row['dev_Vendor']),
handleNull($row['dev_Network_Node_port']),
handleNull($row['dev_GUID']),
handleNull($row['dev_SyncHubNodeName'])
handleNull($row['dev_SyncHubNodeName']),
handleNull($row['dev_NetworkSite']),
handleNull($row['dev_SSID'])
);
$newOrder = array();

View File

@@ -28,6 +28,10 @@ if(array_key_exists('settings', $_REQUEST) != FALSE)
// call functions based on requested params
switch ($FUNCTION) {
case 'restartBackend':
restartBackend();
break;
case 'savesettings':
saveSettings();
@@ -243,6 +247,28 @@ function addToExecutionQueue($action)
}
// ----------------------------------------------------------------------------------------
function restartBackend()
{
$command = 'pkill -f "python /app/server" && (python /app/server > /dev/null 2>&1 &) && echo "done" 2>&1';
// Execute the command
$output = [];
$output_str = "";
$return_var = 0;
exec($command, $output, $return_var);
// Format the output
foreach ($output as $line) {
$output_str .= $line . "\n";
}
echo "Command result: $return_var, $output_str";
}
// ----------------------------------------------------------------------------------------
function cleanLog($logFile)
{
@@ -546,7 +572,9 @@ function getDevicesColumns(){
"dev_Network_Node_MAC_ADDR",
"dev_Icon",
"dev_GUID",
"dev_SyncHubNodeName"
"dev_SyncHubNodeName",
"dev_NetworkSite",
"dev_SSID"
];
return $columns;

View File

@@ -17,7 +17,7 @@
<!-- Default to the left -->
<!-- NetAlertX footer with url -->
<a href="https://github.com/jokob-sk/NetAlertX" target="_blank">Net <b>Alert</b><sup>x</sup></a>
<a href="https://github.com/jokob-sk/NetAlertX" target="_blank">Net<b>Alert</b><sup>x</sup></a>
<!-- To the right -->

View File

@@ -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\u00fcgung 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ügung stellt.",
"API_CUSTOM_SQL_name": "Benutzerdefinierte SQL-Abfrage",
"API_display_name": "API",
"API_icon": "<i class=\"fa fa-arrow-down-up-across-line\"></i>",
@@ -20,13 +20,13 @@
"AppEvents_Helper1": "Helfer 1",
"AppEvents_Helper2": "Helfer 2",
"AppEvents_Helper3": "Helfer 3",
"AppEvents_ObjectForeignKey": "Unbekannter Schl\u00fcssel",
"AppEvents_ObjectForeignKey": "Unbekannter Schlüssel",
"AppEvents_ObjectIndex": "Index",
"AppEvents_ObjectIsArchived": "Ist archiviert (Zum Protokoll Zeitpunkt)",
"AppEvents_ObjectIsNew": "Ist neu (Zum Protokoll Zeitpunkt)",
"AppEvents_ObjectPlugin": "Verkn\u00fcpfte Plugins",
"AppEvents_ObjectPrimaryID": "Prim\u00e4r ID",
"AppEvents_ObjectSecondaryID": "Sekund\u00e4r ID",
"AppEvents_ObjectPlugin": "Verknüpfte Plugins",
"AppEvents_ObjectPrimaryID": "Primär ID",
"AppEvents_ObjectSecondaryID": "Sekundär ID",
"AppEvents_ObjectStatus": "",
"AppEvents_ObjectStatusColumn": "",
"AppEvents_ObjectType": "Objekttyp",
@@ -39,49 +39,49 @@
"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_Title": "Copy details",
"BackDevDetail_Tools_WOL_error": "Befehl wurde NICHT ausgef\u00fchrt.",
"BackDevDetail_Tools_WOL_okay": "Befehl wurde ausgef\u00fchrt.",
"BackDevDetail_Tools_WOL_error": "Befehl wurde NICHT ausgeführt.",
"BackDevDetail_Tools_WOL_okay": "Befehl wurde ausgeführt.",
"BackDevices_Arpscan_disabled": "Automatischer Arp-Scan deaktiviert.",
"BackDevices_Arpscan_enabled": "Automatischer Arp-Scan aktiviert.",
"BackDevices_Backup_CopError": "Die originale Datenbank konnte nicht gesichert werden.",
"BackDevices_Backup_Failed": "Das Backup wurde teilweise ausgef\u00fchrt. Das Archiv ist entweder leer oder nicht vorhanden.",
"BackDevices_Backup_Failed": "Das Backup wurde teilweise ausgeführt. Das Archiv ist entweder leer oder nicht vorhanden.",
"BackDevices_Backup_okay": "Das Backup wurde erfolgreich beendet.",
"BackDevices_DBTools_DelActHistory": "Die Anzeige der Netzwerkaktivit\u00e4t wurde zur\u00fcckgesetzt.",
"BackDevices_DBTools_DelActHistoryError": "Fehler beim Zur\u00fccksetzen der Netzwerkaktivit\u00e4tsanzeige.",
"BackDevices_DBTools_DelDevError_a": "Fehler beim L\u00f6schen des Ger\u00e4tes.",
"BackDevices_DBTools_DelDevError_b": "Fehler beim L\u00f6schen der Ger\u00e4te.",
"BackDevices_DBTools_DelDev_a": "Ger\u00e4t gel\u00f6scht.",
"BackDevices_DBTools_DelDev_b": "Ger\u00e4te gel\u00f6scht.",
"BackDevices_DBTools_DelEvents": "Events gel\u00f6scht.",
"BackDevices_DBTools_DelEventsError": "Fehler beim L\u00f6schen der Ereignisse.",
"BackDevices_DBTools_ImportCSV": "Die Ger\u00e4te aus der CSV-Datei wurden erfolgreich importiert.",
"BackDevices_DBTools_DelActHistory": "Die Anzeige der Netzwerkaktivität wurde zurückgesetzt.",
"BackDevices_DBTools_DelActHistoryError": "Fehler beim Zurücksetzen der Netzwerkaktivitätsanzeige.",
"BackDevices_DBTools_DelDevError_a": "Fehler beim Löschen des Gerätes.",
"BackDevices_DBTools_DelDevError_b": "Fehler beim Löschen der Geräte.",
"BackDevices_DBTools_DelDev_a": "Gerät gelöscht.",
"BackDevices_DBTools_DelDev_b": "Geräte gelöscht.",
"BackDevices_DBTools_DelEvents": "Events gelöscht.",
"BackDevices_DBTools_DelEventsError": "Fehler beim Löschen der Ereignisse.",
"BackDevices_DBTools_ImportCSV": "Die Geräte 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_ImportCSVMissing": "Die CSV-Datei konnte nicht in <b>/config/devices.csv</b> gefunden werden.",
"BackDevices_DBTools_Purge": "Die \u00e4ltesten Backups wurden gel\u00f6scht.",
"BackDevices_DBTools_UpdDev": "Ger\u00e4t erfolgreich aktualisiert.",
"BackDevices_DBTools_UpdDevError": "Fehler beim Aktualisieren des Ger\u00e4tes.",
"BackDevices_DBTools_Purge": "Die ältesten Backups wurden gelöscht.",
"BackDevices_DBTools_UpdDev": "Gerät erfolgreich aktualisiert.",
"BackDevices_DBTools_UpdDevError": "Fehler beim Aktualisieren des Gerätes.",
"BackDevices_DBTools_Upgrade": "Datenbank erfolgreich aktualisiert.",
"BackDevices_DBTools_UpgradeError": "Fehler beim Aktualisieren der Datenbank.",
"BackDevices_Device_UpdDevError": "Konnte Ger\u00e4te nicht aktualisieren, versuchen Sie es sp\u00e4ter erneut. Die Datenbank ist wahrscheinlich wegen einer laufenden Aufgabe gesperrt.",
"BackDevices_Device_UpdDevError": "Konnte Geräte nicht aktualisieren, versuchen Sie es später erneut. Die Datenbank ist wahrscheinlich wegen einer laufenden Aufgabe gesperrt.",
"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_okay": "Die Wiederherstellung wurde erfolgreich ausgef\u00fchrt.",
"BackDevices_Restore_okay": "Die Wiederherstellung wurde erfolgreich ausgeführt.",
"BackDevices_darkmode_disabled": "Heller 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 \u00e4lteren Events werden periodisch gel\u00f6scht. Wird auch auf die Plugins History angewendet.",
"DAYS_TO_KEEP_EVENTS_name": "L\u00f6sche Events \u00e4lter als",
"DevDetail_Copy_Device_Title": "<i class=\"fa fa-copy\"></i> Details von Ger\u00e4t kopieren",
"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_name": "Lösche Events älter als",
"DevDetail_Copy_Device_Title": "<i class=\"fa fa-copy\"></i> Details von Gerät kopieren",
"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_AlertDown": "Melde Down",
"DevDetail_EveandAl_Archived": "Archivierung",
"DevDetail_EveandAl_NewDevice": "Neues Ger\u00e4t",
"DevDetail_EveandAl_NewDevice": "Neues Gerät",
"DevDetail_EveandAl_NewDevice_Tooltip": "",
"DevDetail_EveandAl_RandomMAC": "Zuf\u00e4llige MAC",
"DevDetail_EveandAl_RandomMAC": "Zufällige MAC",
"DevDetail_EveandAl_ScanCycle": "Scan Abstand",
"DevDetail_EveandAl_ScanCycle_a": "Ger\u00e4t scannen",
"DevDetail_EveandAl_ScanCycle_z": "Ger\u00e4t nicht scannen",
"DevDetail_EveandAl_Skip": "pausiere wiederhol. Meldungen f\u00fcr",
"DevDetail_EveandAl_ScanCycle_a": "Gerät scannen",
"DevDetail_EveandAl_ScanCycle_z": "Gerät nicht scannen",
"DevDetail_EveandAl_Skip": "pausiere wiederhol. Meldungen für",
"DevDetail_EveandAl_Title": "Ereignisse & Alarme einstellen",
"DevDetail_Events_CheckBox": "Blende Verbindungs-Ereignisse aus",
"DevDetail_GoToNetworkNode": "Navigate to the Network page of the given node.",
@@ -95,8 +95,10 @@
"DevDetail_MainInfo_Name": "Name",
"DevDetail_MainInfo_Network": "Netzwerk Knoten",
"DevDetail_MainInfo_Network_Port": "Netzwerk Knoten Port",
"DevDetail_MainInfo_Network_Site": "",
"DevDetail_MainInfo_Network_Title": "<i class=\"fa fa-network-wired\"></i> Network",
"DevDetail_MainInfo_Owner": "Eigen&shy;t\u00fcmer",
"DevDetail_MainInfo_Owner": "Eigen&shy;tümer",
"DevDetail_MainInfo_SSID": "",
"DevDetail_MainInfo_Title": "Haupt Infos",
"DevDetail_MainInfo_Type": "Typ",
"DevDetail_MainInfo_Vendor": "Hersteller",
@@ -104,31 +106,31 @@
"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_Nmap_Scans": "Nmap Scans",
"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_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_buttonDefault": "Standard Scan",
"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_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_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_buttonFast": "Schneller Scan",
"DevDetail_Nmap_buttonFast_text": "Schneller Scan: \u00dcberpr\u00fcft nur die wichtigsten 100 Ports (wenige Sekunden)",
"DevDetail_Nmap_buttonSkipDiscovery": "Ohne Erreichbarkeitspr\u00fcfung",
"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\u00fcgbar.",
"DevDetail_Owner_hover": "Der Eigent\u00fcmer des Ger\u00e4tes. Freies Textfeld.",
"DevDetail_Nmap_buttonFast_text": "Schneller Scan: Überprüft nur die wichtigsten 100 Ports (wenige Sekunden)",
"DevDetail_Nmap_buttonSkipDiscovery": "Ohne Erreichbarkeitsprüfung",
"DevDetail_Nmap_buttonSkipDiscovery_text": "Ohne Erreichbarkeitsprüfung (-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_Owner_hover": "Der Eigentümer des Gerätes. Freies Textfeld.",
"DevDetail_Periodselect_All": "Alle Infos",
"DevDetail_Periodselect_LastMonth": "Letzter Monat",
"DevDetail_Periodselect_LastWeek": "Letzte Woche",
"DevDetail_Periodselect_LastYear": "Letztes Jahr",
"DevDetail_Periodselect_today": "Heute",
"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\u00e4t ausf\u00fchren.",
"DevDetail_Run_Actions_Title": "<i class=\"fa fa-play\"></i> Aktion auf Gerät ausführen",
"DevDetail_Run_Actions_Tooltip": "Eine Aktion aus der Dropdown-Liste auf dem aktuellen Gerät ausführen.",
"DevDetail_SessionInfo_FirstSession": "Erste Sitzung",
"DevDetail_SessionInfo_LastIP": "Letzte IP",
"DevDetail_SessionInfo_LastSession": "Letzte Sitzung",
"DevDetail_SessionInfo_StaticIP": "Statische IP",
"DevDetail_SessionInfo_Status": "Status",
"DevDetail_SessionInfo_Title": "Sitzungsinfos",
"DevDetail_SessionTable_Additionalinfo": "Zus\u00e4tzliche Info",
"DevDetail_SessionTable_Additionalinfo": "Zusätzliche Info",
"DevDetail_SessionTable_Connection": "Verbindung",
"DevDetail_SessionTable_Disconnection": "Trennung",
"DevDetail_SessionTable_Duration": "Dauer",
@@ -143,48 +145,48 @@
"DevDetail_Tab_EventsTableDate": "Datum",
"DevDetail_Tab_EventsTableEvent": "Ereignistype",
"DevDetail_Tab_EventsTableIP": "IP",
"DevDetail_Tab_EventsTableInfo": "Zus\u00e4tzliche Informationen",
"DevDetail_Tab_EventsTableInfo": "Zusätzliche Informationen",
"DevDetail_Tab_Nmap": "Nmap",
"DevDetail_Tab_NmapEmpty": "An diesem Ger\u00e4t wurden keine offenen Ports mit Nmap gefunden.",
"DevDetail_Tab_NmapEmpty": "An diesem Gerät wurden keine offenen Ports mit Nmap gefunden.",
"DevDetail_Tab_NmapTableExtra": "Extra",
"DevDetail_Tab_NmapTableHeader": "Ergebnisse geplanter Scans",
"DevDetail_Tab_NmapTableIndex": "Index",
"DevDetail_Tab_NmapTablePort": "Port",
"DevDetail_Tab_NmapTableService": "Dienst",
"DevDetail_Tab_NmapTableState": "Status",
"DevDetail_Tab_NmapTableText": "Erstelle einen Plan \u00fcber die<a href=\"/settings.php#NMAP_ACTIVE\">Einstellungen</a>",
"DevDetail_Tab_NmapTableText": "Erstelle einen Plan über die<a href=\"/settings.php#NMAP_ACTIVE\">Einstellungen</a>",
"DevDetail_Tab_NmapTableTime": "Zeit",
"DevDetail_Tab_Plugins": "<i class=\"fa fa-plug\"></i> Plugins",
"DevDetail_Tab_Presence": "Anwesenheit",
"DevDetail_Tab_Sessions": "Sitzungen",
"DevDetail_Tab_Tools": "<i class=\"fa fa-screwdriver-wrench\"></i> Tools",
"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_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_Error": "Es ist ein Fehler aufgetreten",
"DevDetail_Tab_Tools_Internet_Info_Start": "Internet-Info starten",
"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 \u00fcbersetzt. ",
"DevDetail_Tab_Tools_Nslookup_Error": "Fehler: IP-Adresse ist ung\u00fcltig",
"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_Error": "Fehler: IP-Adresse ist ungültig",
"DevDetail_Tab_Tools_Nslookup_Start": "Nslookup starten",
"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_Start": "Speedtest starten",
"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\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\u00fcltig",
"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_Error": "Fehler: IP-Adresse ist ungültig",
"DevDetail_Tab_Tools_Traceroute_Start": "Traceroute starten",
"DevDetail_Tab_Tools_Traceroute_Title": "Traceroute",
"DevDetail_Tools_WOL": "Sende Wol Befehl an ",
"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\u00e4t nicht im gleichen Subnet / VLan wie NetAlertX befindet, wird das Ger\u00e4t nicht reagieren.",
"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_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_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_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_button_AddIcon": "Neues Symbol Hinzuf\u00fcgen",
"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\u00e4t hinzuf\u00fcgen, welches es noch nicht im dropdown gibt.",
"DevDetail_button_Delete": "L\u00f6sche Ger\u00e4t",
"DevDetail_button_DeleteEvents": "L\u00f6sche Events",
"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_AddIcon": "Neues Symbol Hinzufügen",
"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_Tooltip": "Neues Icon zu diesem Gerät hinzufügen, welches es noch nicht im dropdown gibt.",
"DevDetail_button_Delete": "Lösche Gerät",
"DevDetail_button_DeleteEvents": "Lösche 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_OverwriteIcons": "Overwrite Icons",
"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?",
@@ -196,16 +198,16 @@
"Device_MultiEdit_MassActions": "Massen aktionen:",
"Device_MultiEdit_Tooltip": "",
"Device_Searchbox": "Suche",
"Device_Shortcut_AllDevices": "Meine Ger\u00e4te",
"Device_Shortcut_AllDevices": "Meine Geräte",
"Device_Shortcut_Archived": "Archiviert",
"Device_Shortcut_Connected": "Verbunden",
"Device_Shortcut_Devices": "Ger\u00e4te",
"Device_Shortcut_Devices": "Geräte",
"Device_Shortcut_DownAlerts": "Offline & Nicht erreichbar",
"Device_Shortcut_DownOnly": "Offline",
"Device_Shortcut_Favorites": "Favoriten",
"Device_Shortcut_NewDevices": "Neue Ger\u00e4te",
"Device_Shortcut_OnlineChart": "Ger\u00e4tepr\u00e4senz im Laufe der Zeit",
"Device_TableHead_Connected_Devices": "Verbundene Ger\u00e4te",
"Device_Shortcut_NewDevices": "Neue Geräte",
"Device_Shortcut_OnlineChart": "Gerätepräsenz im Laufe der Zeit",
"Device_TableHead_Connected_Devices": "Verbundene Geräte",
"Device_TableHead_Favorite": "Favorit",
"Device_TableHead_FirstSession": "Erste Sitzung",
"Device_TableHead_GUID": "",
@@ -218,25 +220,27 @@
"Device_TableHead_MAC": "MAC",
"Device_TableHead_MAC_full": "Gesamte MAC",
"Device_TableHead_Name": "Name",
"Device_TableHead_Owner": "Eigent\u00fcmer",
"Device_TableHead_Parent_MAC": "\u00dcbergeordnete MAC",
"Device_TableHead_NetworkSite": "",
"Device_TableHead_Owner": "Eigentümer",
"Device_TableHead_Parent_MAC": "Übergeordnete MAC",
"Device_TableHead_Port": "Port",
"Device_TableHead_RowID": "Zeilen ID",
"Device_TableHead_Rowid": "Zeilennummer",
"Device_TableHead_SSID": "",
"Device_TableHead_Status": "Status",
"Device_TableHead_SyncHubNodeName": "",
"Device_TableHead_Type": "Typ",
"Device_TableHead_Vendor": "Hersteller",
"Device_Table_Not_Network_Device": "Nicht konfiguriert als Netzwerkger\u00e4t",
"Device_Table_info": "Zeige _START_ bis _END_ von _TOTAL_ Eintr\u00e4gen",
"Device_Table_nav_next": "N\u00e4chste",
"Device_Table_nav_prev": "Zur\u00fcck",
"Device_Tablelenght": "Zeige _MENU_ Eintr\u00e4ge",
"Device_Table_Not_Network_Device": "Nicht konfiguriert als Netzwerkgerät",
"Device_Table_info": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
"Device_Table_nav_next": "Nächste",
"Device_Table_nav_prev": "Zurück",
"Device_Tablelenght": "Zeige _MENU_ Einträge",
"Device_Tablelenght_all": "Alle",
"Device_Title": "Ger\u00e4te",
"Device_Title": "Geräte",
"Donations_Others": "Others",
"Donations_Platforms": "Sponsor platforms",
"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_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_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_name": "NOTUSED Enable Plugins",
@@ -253,13 +257,13 @@
"Events_Shortcut_DownAlerts": "Down Meldungen",
"Events_Shortcut_Events": "Ereignisse",
"Events_Shortcut_MissSessions": "fehlende Sitzungen",
"Events_Shortcut_NewDevices": "Neue Ger\u00e4te",
"Events_Shortcut_NewDevices": "Neue Geräte",
"Events_Shortcut_Sessions": "Sitzungen",
"Events_Shortcut_VoidSessions": "beendete Sitzungen",
"Events_TableHead_AdditionalInfo": "Zus\u00e4tzliche Info",
"Events_TableHead_AdditionalInfo": "Zusätzliche Info",
"Events_TableHead_Connection": "Verbindung",
"Events_TableHead_Date": "Datum",
"Events_TableHead_Device": "Ger\u00e4t",
"Events_TableHead_Device": "Gerät",
"Events_TableHead_Disconnection": "Trennung",
"Events_TableHead_Duration": "Dauer",
"Events_TableHead_DurationOrder": "Duration Order",
@@ -267,30 +271,31 @@
"Events_TableHead_IP": "IP",
"Events_TableHead_IPOrder": "IP Order",
"Events_TableHead_Order": "Order",
"Events_TableHead_Owner": "Eigent\u00fcmer",
"Events_TableHead_Owner": "Eigentümer",
"Events_TableHead_PendingAlert": "",
"Events_Table_info": "Zeige _START_ bis _END_ von _TOTAL_ Eintr\u00e4gen",
"Events_Table_nav_next": "N\u00e4chste",
"Events_Table_nav_prev": "Zur\u00fcck",
"Events_Tablelenght": "Zeige _MENU_ Eintr\u00e4ge",
"Events_Table_info": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
"Events_Table_nav_next": "Nächste",
"Events_Table_nav_prev": "Zurück",
"Events_Tablelenght": "Zeige _MENU_ Einträge",
"Events_Tablelenght_all": "Alle",
"Events_Title": "Ereignisse",
"Gen_Action": "Action",
"Gen_Add": "",
"Gen_Add_All": "",
"Gen_All_Devices": "",
"Gen_AreYouSure": "Sind Sie sich sicher?",
"Gen_Backup": "Sichern",
"Gen_Cancel": "Abbrechen",
"Gen_Copy": "Run",
"Gen_DataUpdatedUITakesTime": "OK - It may take a while for the UI to update if a scan is runnig",
"Gen_Delete": "L\u00f6schen",
"Gen_Delete": "Löschen",
"Gen_DeleteAll": "Delete all",
"Gen_Error": "Fehler",
"Gen_Filter": "",
"Gen_LockedDB": "ERROR - DB eventuell gesperrt - Nutze die Konsole in den Entwickler Werkzeugen (F12) zur \u00dcberpr\u00fcfung oder probiere es sp\u00e4ter erneut.",
"Gen_LockedDB": "ERROR - DB eventuell gesperrt - Nutze die Konsole in den Entwickler Werkzeugen (F12) zur Überprüfung oder probiere es später erneut.",
"Gen_Offline": "",
"Gen_Okay": "Ok",
"Gen_Purge": "Aufr\u00e4umen",
"Gen_Purge": "Aufräumen",
"Gen_ReadDocs": "Mehr in der Dokumentation",
"Gen_Remove_All": "",
"Gen_Remove_Last": "",
@@ -299,7 +304,7 @@
"Gen_Save": "Speichern",
"Gen_Saved": "Gespeichert",
"Gen_Search": "",
"Gen_Selected_Devices": "Ausgew\u00e4hlte Ger\u00e4te:",
"Gen_Selected_Devices": "Ausgewählte Geräte:",
"Gen_Switch": "Umschalten",
"Gen_Upd": "Aktualisierung erfolgreich",
"Gen_Upd_Fail": "Aktualisierung fehlgeschlagen",
@@ -309,47 +314,47 @@
"Gen_Work_In_Progress": "Keine Finalversion, feedback bitte unter: https://github.com/jokob-sk/NetAlertX/issues",
"General_display_name": "Allgemein",
"General_icon": "<i class=\"fa fa-gears\"></i>",
"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\u00e4te speichern f\u00fcr",
"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_name": "Neue Geräte speichern für",
"HelpFAQ_Cat_Detail": "Detailansicht",
"HelpFAQ_Cat_Detail_300_head": "Was bedeutet ",
"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\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_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_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_301_head_a": "Wann wird nun gescannt? Bei ",
"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\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_301_head_b": " steht 1min aber der Graph zeigt 5min - Abstände 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_302_head_a": "Was bedeutet ",
"HelpFAQ_Cat_Detail_302_head_b": " und warum kann ich das nicht ausw\u00e4hlen?",
"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_302_head_b": " und warum kann ich das nicht auswählen?",
"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_303_head": "Was ist Nmap und wozu dient es?",
"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\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\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_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_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_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_General": "Allgemein",
"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\u00fcr die PHP Umgebung folgende Zeitzone voreingestellt:",
"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\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_100_head": "Die Uhr oben rechts und die Zeiten der Events/Anwesenheit stimmen nicht überein (Zeitverschiebung).",
"HelpFAQ_Cat_General_100_text_a": "Auf deinem PC ist für 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_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_101_head": "Mein Netzwerk scheint langsamer zu werden, Streaming ruckelt.",
"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\u00fctzt (read only) ist.",
"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": "(\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\">\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 &gt; 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\u00e4nderung.",
"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_102_head": "Ich bekomme die Meldung, dass die Datenbank schreibgeschützt (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_102docker_head": "(🐳 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 &gt; 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_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_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_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_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\u00fcr mehr Infos.",
"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\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\u00e4t wird als Anwesend angezeigt, obwohl es \"Offline\" ist.",
"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_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_Presence_400_head": "Geräte 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_401_head": "Ein Gerät 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_Title": "Hilfe / FAQ",
"LOADED_PLUGINS_description": "",
"LOADED_PLUGINS_name": "",
"LOG_LEVEL_description": "Diese Einstellung aktiviert die erweiterte Protokollierung. N\u00fctzlich f\u00fcrs Debuggen von in die Datenbank geschriebenen Events.",
"LOG_LEVEL_description": "Diese Einstellung aktiviert die erweiterte Protokollierung. Nützlich fürs Debuggen von in die Datenbank geschriebenen Events.",
"LOG_LEVEL_name": "Erweiterte Protokollierung",
"Loading": "Laden...",
"Login_Box": "Passwort eingeben",
@@ -358,9 +363,9 @@
"Login_Psw_alert": "Sicherheitshinweis!",
"Login_Psw_folder": "im Ordner /app/config",
"Login_Psw_new": "neues_passwort",
"Login_Psw_run": "Um das Passwort zu \u00e4ndern nutze:",
"Login_Psw_run": "Um das Passwort zu ändern nutze:",
"Login_Remember": "Passwort speichern",
"Login_Remember_small": "(f\u00fcr 7 Tage g\u00fcltig)",
"Login_Remember_small": "(für 7 Tage gültig)",
"Login_Submit": "Anmelden",
"Login_Toggle_Alert_headline": "Passwort Warnung!",
"Login_Toggle_Info": "Passwort Informationen",
@@ -385,64 +390,64 @@
"Maintenance_Tool_ExportCSV": "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_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_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_ImportCSV": "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\u00e4te in der Datenbank \u00fcberschreiben.",
"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_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_text": "Machen Sie ein Backup, bevor Sie diese Funk­tion 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_arpscansw": "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_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_noti": "DB Sicherung",
"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_noti_text": "Sind Sie sicher, dass Sie die Datenbank jetzt sichern möchten. Prüfen Sie, dass gerade keine Scans stattfinden.",
"Maintenance_Tool_backup_text": "Die Datenbank-Sicher&shy;ungen befinden sich im Datenbank-Ver&shy;zeich&shy;nis, gepackt als zip-Archive, benannt mit dem Erstellungs&shy;datum. Es gibt keine maximale Anzahl von Backups.",
"Maintenance_Tool_check_visible": "Abw\u00e4hlen um die Spalte auszublenden.",
"Maintenance_Tool_check_visible": "Abwählen um die Spalte auszublenden.",
"Maintenance_Tool_darkmode": "Darstellungswechsel (Dunkel/Hell)",
"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\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\u00f6schen. Die \u00c4nderung findet serverseitig statt, betrifft also alle verwendeten Ger\u00e4te.",
"Maintenance_Tool_del_ActHistory": "L\u00f6schen der Netzwerkaktivit\u00e4t",
"Maintenance_Tool_del_ActHistory_noti": "Netzwerkaktivit\u00e4t l\u00f6schen",
"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\u00fcr die Netzwerkaktivit\u00e4t wird zur\u00fcckgesetzt. Hierbei werden die Events nicht beeinflusst.",
"Maintenance_Tool_del_alldev": "Alle Ger\u00e4te l\u00f6schen",
"Maintenance_Tool_del_alldev_noti": "Ger\u00e4te l\u00f6schen",
"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&shy;tion nutzen. Der Vor&shy;gang kann ohne Back&shy;up nicht r\u00fcck&shy;g\u00e4ngig gemacht werden. Alle Ger\u00e4te werden in der Datenbank ge&shy;l\u00f6scht.",
"Maintenance_Tool_del_allevents": "Alle Ereignisse l\u00f6schen",
"Maintenance_Tool_del_allevents30": "Alle Ereignisse \u00e4lter als 30 Tage l\u00f6schen",
"Maintenance_Tool_del_allevents30_noti": "Ereignisse l\u00f6schen",
"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 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\u00f6schen",
"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&shy;tion nutzen. Der Vor&shy;gang kann ohne Back&shy;up nicht r\u00fcck&shy;g\u00e4ngig gemacht werden. Alle Ereignisse werden aus der Datenbank ge&shy;l\u00f6scht. Dies setzt auch die Anwesenheit zu&shy;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\u00e4te ohne MAC l\u00f6schen",
"Maintenance_Tool_del_empty_macs_noti": "Ger\u00e4te l\u00f6schen",
"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&shy;tion nutzen. Der Vor&shy;gang kann ohne Back&shy;up nicht r\u00fcck&shy;g\u00e4ngig gemacht werden. Alle Ge\u00e4te ohne MAC-Adresse werden aus der Datenbank ge&shy;l\u00f6scht.",
"Maintenance_Tool_del_selecteddev": "Ausgew\u00e4hlte Ger\u00e4te l\u00f6schen",
"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_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_del_ActHistory": "Löschen der Netzwerkaktivität",
"Maintenance_Tool_del_ActHistory_noti": "Netzwerkaktivität löschen",
"Maintenance_Tool_del_ActHistory_noti_text": "Sind Sie sicher, dass Sie die Netzwerkaktivität zurücksetzen möchten?",
"Maintenance_Tool_del_ActHistory_text": "Der Graph für die Netzwerkaktivität wird zurückgesetzt. Hierbei werden die Events nicht beeinflusst.",
"Maintenance_Tool_del_alldev": "Alle Geräte löschen",
"Maintenance_Tool_del_alldev_noti": "Geräte löschen",
"Maintenance_Tool_del_alldev_noti_text": "Sind Sie sich sicher, dass Sie alle Geräte löschen wollen?",
"Maintenance_Tool_del_alldev_text": "Machen Sie ein Backup, bevor Sie diese Funk&shy;tion nutzen. Der Vor&shy;gang kann ohne Back&shy;up nicht rück&shy;gängig gemacht werden. Alle Geräte werden in der Datenbank ge&shy;löscht.",
"Maintenance_Tool_del_allevents": "Alle Ereignisse löschen",
"Maintenance_Tool_del_allevents30": "Alle Ereignisse älter als 30 Tage löschen",
"Maintenance_Tool_del_allevents30_noti": "Ereignisse löschen",
"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_text": "Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht rück­ngig gemacht werden. Alle Ereignisse älter als 30 Tage werden aus der Datenbank ge­scht. Dies setzt auch die Anwesenheit zu­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_noti": "Alle Ereignisse löschen",
"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_text": "Machen Sie ein Backup, bevor Sie diese Funk&shy;tion nutzen. Der Vor&shy;gang kann ohne Back&shy;up nicht rück&shy;gängig gemacht werden. Alle Ereignisse werden aus der Datenbank ge&shy;löscht. Dies setzt auch die Anwesenheit zu&shy;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_empty_macs": "Alle Geräte ohne MAC löschen",
"Maintenance_Tool_del_empty_macs_noti": "Geräte löschen",
"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_text": "Machen Sie ein Backup, bevor Sie diese Funk&shy;tion nutzen. Der Vor&shy;gang kann ohne Back&shy;up nicht rück&shy;gängig gemacht werden. Alle Geäte ohne MAC-Adresse werden aus der Datenbank ge&shy;löscht.",
"Maintenance_Tool_del_selecteddev": "Ausgewählte Geräte löschen",
"Maintenance_Tool_del_selecteddev_text": "",
"Maintenance_Tool_del_unknowndev": "L\u00f6schen der (unknown) Ger\u00e4te",
"Maintenance_Tool_del_unknowndev_noti": "L\u00f6sche (unknown) Ger\u00e4te",
"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&shy;tion nutzen. Der Vor&shy;gang kann ohne Back&shy;up nicht r\u00fcck&shy;g\u00e4ngig gemacht werden. Alle Gr\u00e4te mit dem Namen (unknown) werden aus der Datenbank ge&shy;l\u00f6scht.",
"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 \u00e4ndern.",
"Maintenance_Tool_del_unknowndev": "Löschen der (unknown) Geräte",
"Maintenance_Tool_del_unknowndev_noti": "Lösche (unknown) Geräte",
"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_text": "Machen Sie ein Backup, bevor Sie diese Funk&shy;tion nutzen. Der Vor&shy;gang kann ohne Back&shy;up nicht rück&shy;gängig gemacht werden. Alle Gräte mit dem Namen (unknown) werden aus der Datenbank ge&shy;löscht.",
"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_drag_me": "Zieh mich um die Anordnung der Spalten zu ändern.",
"Maintenance_Tool_order_columns_text": "",
"Maintenance_Tool_purgebackup": "Sicherungen aufr\u00e4umen",
"Maintenance_Tool_purgebackup_noti": "Sicherungen aufr\u00e4umen",
"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 \u00fcbrigen Backups gel\u00f6scht.",
"Maintenance_Tool_purgebackup": "Sicherungen aufräumen",
"Maintenance_Tool_purgebackup_noti": "Sicherungen aufräumen",
"Maintenance_Tool_purgebackup_noti_text": "Sind Sie sicher, alle Backups, bis auf die letzten 3 löschen möchten?",
"Maintenance_Tool_purgebackup_text": "Es werden, bis auf die letzten 3 Backups, alle übrigen Backups gelöscht.",
"Maintenance_Tool_restore": "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\u00f6chten? Pr\u00fcfen Sie, dass gerade keine Scans stattfinden.",
"Maintenance_Tool_restore_text": "Das neuste Backup kann \u00fcber diese Funk&shy;tion wiederhergestellt werden. \u00c4ltere Sicher&shy;ungen m\u00fcssen manuell wieder&shy;hergestellt wer&shy;den. Es empfiehlt sich eine Integrit\u00e4ts&shy;pr\u00fcfung nach der Wieder&shy;her&shy;stellung zu machen, falls die Datenbank bei der Sicherung ge\u00f6ffnet war.",
"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_text": "Das neuste Backup kann über diese Funk&shy;tion wiederhergestellt werden. Ältere Sicher&shy;ungen müssen manuell wieder&shy;hergestellt wer&shy;den. Es empfiehlt sich eine Integritäts&shy;prüfung nach der Wieder&shy;her&shy;stellung zu machen, falls die Datenbank bei der Sicherung geöffnet war.",
"Maintenance_Tool_upgrade_database_noti": "Aktualisiere Datenbank",
"Maintenance_Tool_upgrade_database_noti_text": "Machen Sie ein Backup, bevor Sie diese Funk&shy;tion nutzen.",
"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_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_Tools_Tab_BackupRestore": "Sicherg. / Wiederherstellg.",
"Maintenance_Tools_Tab_Logging": "Logs",
"Maintenance_Tools_Tab_Settings": "Einstellungen",
@@ -454,24 +459,24 @@
"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_database_backup": "DB Sicherungen",
"Maintenance_database_backup_found": "Sicherungen verf\u00fcgbar",
"Maintenance_database_backup_found": "Sicherungen verfügbar",
"Maintenance_database_backup_total": "Speicherplatz insgesamt",
"Maintenance_database_lastmod": "Letzte \u00c4nderung",
"Maintenance_database_lastmod": "Letzte Änderung",
"Maintenance_database_path": "Datenbank-Pfad",
"Maintenance_database_rows": "Tabelle (Reihen)",
"Maintenance_database_size": "Datenbank-Gr\u00f6\u00dfe",
"Maintenance_lang_selector_apply": "\u00dcbernehmen",
"Maintenance_lang_selector_empty": "Sprache w\u00e4hlen",
"Maintenance_database_size": "Datenbank-Größe",
"Maintenance_lang_selector_apply": "Übernehmen",
"Maintenance_lang_selector_empty": "Sprache wählen",
"Maintenance_lang_selector_lable": "Sprachauswahl",
"Maintenance_lang_selector_text": "Die \u00c4nderung findet serverseitig statt, betrifft also alle verwendeten Ger\u00e4te.",
"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": "\u00dcbernehmen",
"Maintenance_themeselector_empty": "Skin w\u00e4hlen",
"Maintenance_lang_selector_text": "Die Änderung findet serverseitig statt, betrifft also alle verwendeten Geräte.",
"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_themeselector_apply": "Übernehmen",
"Maintenance_themeselector_empty": "Skin wählen",
"Maintenance_themeselector_lable": "Skin Auswahl",
"Maintenance_themeselector_text": "Die \u00c4nderung findet serverseitig statt, betrifft also alle verwendeten Ger\u00e4te.",
"Maintenance_themeselector_text": "Die Änderung findet serverseitig statt, betrifft also alle verwendeten Geräte.",
"Maintenance_version": "App Updates",
"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\u00e4te-Typen",
"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_name": "Netzwerkgeräte-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_name": "NTFY host URL",
"NTFY_PASSWORD_description": "Enter password if you need (host) an instance with enabled authetication.",
@@ -483,14 +488,14 @@
"NTFY_display_name": "NTFY",
"NTFY_icon": "<i class=\"fa fa-terminal\"></i>",
"Navigation_About": "",
"Navigation_Devices": "Ger\u00e4te",
"Navigation_Devices": "Geräte",
"Navigation_Donations": "Donations",
"Navigation_Events": "Ereignisse",
"Navigation_Flows": "Flows",
"Navigation_HelpFAQ": "Hilfe / FAQ",
"Navigation_Integrations": "Integrationen",
"Navigation_Maintenance": "Wartung",
"Navigation_Monitoring": "\u00dcberwachung",
"Navigation_Monitoring": "Überwachung",
"Navigation_Network": "Netzwerk",
"Navigation_Notifications": "",
"Navigation_Plugins": "Plugins",
@@ -498,57 +503,57 @@
"Navigation_Report": "Bericht",
"Navigation_Settings": "Einstellungen",
"Navigation_SystemInfo": "Systeminfo",
"Navigation_Workflows": "Arbeitsabl\u00e4ufe",
"Navigation_Workflows": "Arbeitsabläufe",
"Network_Assign": "Zum obigen <i class=\"fa fa-server\"></i> Netzwerkknoten zuweisen",
"Network_Cant_Assign": "Internet-Wurzelknoten kann nicht als \u00e4u\u00dferer Kindknoten zugewiesen werden.",
"Network_Cant_Assign": "Internet-Wurzelknoten kann nicht als äußerer Kindknoten zugewiesen werden.",
"Network_Configuration_Error": "Konfigurationsfehler",
"Network_Connected": "Verbundene Ger\u00e4te",
"Network_ManageAdd": "Ger\u00e4t hinzuf\u00fcgen",
"Network_ManageAdd_Name": "Name des Ger\u00e4tes",
"Network_Connected": "Verbundene Geräte",
"Network_ManageAdd": "Gerät hinzufügen",
"Network_ManageAdd_Name": "Name des Gerätes",
"Network_ManageAdd_Name_text": "Name ohne Sonderzeichen",
"Network_ManageAdd_Port": "Portanzahl",
"Network_ManageAdd_Port_text": "bei WLAN oder Powerline leer lassen",
"Network_ManageAdd_Submit": "Hinzuf\u00fcgen",
"Network_ManageAdd_Type": "Ger\u00e4tetyp",
"Network_ManageAdd_Type_text": "-- Typ w\u00e4hlen --",
"Network_ManageAdd_Submit": "Hinzufügen",
"Network_ManageAdd_Type": "Gerätetyp",
"Network_ManageAdd_Type_text": "-- Typ wählen --",
"Network_ManageAssign": "Zuweisen",
"Network_ManageDel": "Ger\u00e4t l\u00f6schen",
"Network_ManageDel_Name": "Ger\u00e4t zum L\u00f6schen ausw\u00e4hlen",
"Network_ManageDel_Name_text": "-- Ger\u00e4t w\u00e4hlen --",
"Network_ManageDel_Submit": "L\u00f6schen",
"Network_ManageDevices": "Ger\u00e4te verwalten",
"Network_ManageEdit": "Ger\u00e4t bearbeiten",
"Network_ManageEdit_ID": "Ger\u00e4t zum Bearbeiten ausw\u00e4hlen",
"Network_ManageEdit_ID_text": "-- Ger\u00e4t w\u00e4hlen --",
"Network_ManageDel": "Gerät löschen",
"Network_ManageDel_Name": "Gerät zum Löschen auswählen",
"Network_ManageDel_Name_text": "-- Gerät wählen --",
"Network_ManageDel_Submit": "Löschen",
"Network_ManageDevices": "Geräte verwalten",
"Network_ManageEdit": "Gerät bearbeiten",
"Network_ManageEdit_ID": "Gerät zum Bearbeiten auswählen",
"Network_ManageEdit_ID_text": "-- Gerät wählen --",
"Network_ManageEdit_Name": "Neuer Name",
"Network_ManageEdit_Name_text": "Name ohne Sonderzeichen",
"Network_ManageEdit_Port": "Neue Portanzahl",
"Network_ManageEdit_Port_text": "bei WLAN oder Powerline leer lassen",
"Network_ManageEdit_Submit": "Speichern",
"Network_ManageEdit_Type": "Neuer Typ",
"Network_ManageEdit_Type_text": "-- Typ w\u00e4hlen --",
"Network_ManageEdit_Type_text": "-- Typ wählen --",
"Network_ManageLeaf": "Zuweisungen verwalten",
"Network_ManageUnassign": "Zuweisung aufheben",
"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\u00e4te zum konfigurieren",
"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_NoDevices": "Keine Geräte zum konfigurieren",
"Network_Node": "Netzwerkknoten",
"Network_Node_Name": "Knotenname",
"Network_Parent": "\u00dcbergeordnetes Netzwerkger\u00e4t",
"Network_Parent": "Übergeordnetes Netzwerkgerät",
"Network_Root": "",
"Network_Root_Not_Configured": "",
"Network_Root_Unconfigurable": "Nicht konfigurierbare Wurzel",
"Network_Table_Hostname": "Ger\u00e4tename",
"Network_Table_Hostname": "Gerätename",
"Network_Table_IP": "IP",
"Network_Table_State": "Status",
"Network_Title": "Netzwerk\u00fcbersicht",
"Network_UnassignedDevices": "Nicht zugewiesene Ger\u00e4te",
"Network_Title": "Netzwerkübersicht",
"Network_UnassignedDevices": "Nicht zugewiesene Geräte",
"Notifications_All": "",
"Notifications_Mark_All_Read": "",
"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_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_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_name": "Login aktivieren",
"PLUGINS_KEEP_HIST_description": "Wie viele Plugin Scanresultate behalten werden (pro Plugin, nicht ger\u00e4tespezifisch).",
"PLUGINS_KEEP_HIST_description": "Wie viele Plugin Scanresultate behalten werden (pro Plugin, nicht gerätespezifisch).",
"PLUGINS_KEEP_HIST_name": "Plugins Verlauf",
"PUSHSAFER_TOKEN_description": "Your secret Pushsafer API key (token).",
"PUSHSAFER_TOKEN_name": "Pushsafer token",
@@ -567,21 +572,21 @@
"Presence_CalHead_quarter": "Quartal",
"Presence_CalHead_week": "Woche",
"Presence_CalHead_year": "Jahr",
"Presence_CallHead_Devices": "Ger\u00e4te",
"Presence_CallHead_Devices": "Geräte",
"Presence_Loading": "Laden...",
"Presence_Shortcut_AllDevices": "Meine Ger\u00e4te",
"Presence_Shortcut_AllDevices": "Meine Geräte",
"Presence_Shortcut_Archived": "Archiviert",
"Presence_Shortcut_Connected": "Verbunden",
"Presence_Shortcut_Devices": "Ger\u00e4te",
"Presence_Shortcut_Devices": "Geräte",
"Presence_Shortcut_DownAlerts": "Down Meldungen",
"Presence_Shortcut_Favorites": "Favoriten",
"Presence_Shortcut_NewDevices": "Neue Ger\u00e4te",
"Presence_Title": "Anwesenheit pro Ger\u00e4t",
"Presence_Shortcut_NewDevices": "Neue Geräte",
"Presence_Title": "Anwesenheit pro Gerät",
"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_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_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_name": "NetAlertX URL",
"REPORT_ERROR": "Die gesuchte Seite ist vor\u00fcbergehend nicht verf\u00fcgbar. Bitte versuchen Sie es nach ein paar Sekunden erneut",
"REPORT_ERROR": "Die gesuchte Seite ist vorübergehend nicht verfügbar. 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_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>.",
@@ -627,12 +632,12 @@
"Systeminfo_CPU_Speed": "CPU-Geschwindigkeit:",
"Systeminfo_CPU_Temp": "CPU-Temp:",
"Systeminfo_CPU_Vendor": "CPU-Anbieter:",
"Systeminfo_Client_Resolution": "Browseraufl\u00f6sung:",
"Systeminfo_Client_Resolution": "Browserauflösung:",
"Systeminfo_Client_User_Agent": "Browser-Bezeichnung:",
"Systeminfo_General": "Allgemein",
"Systeminfo_General_Date": "Datum:",
"Systeminfo_General_Date2": "Datum2:",
"Systeminfo_General_Full_Date": "Vollst\u00e4ndiges Datum:",
"Systeminfo_General_Full_Date": "Vollständiges Datum:",
"Systeminfo_General_TimeZone": "Zeitzone:",
"Systeminfo_Memory": "Arbeitsspeicher",
"Systeminfo_Memory_Total_Memory": "Gesamtspeicher:",
@@ -675,9 +680,9 @@
"Systeminfo_Services_Description": "Dienstbeschreibung",
"Systeminfo_Services_Name": "Dienstname",
"Systeminfo_Storage": "Speicher",
"Systeminfo_Storage_Device": "Ger\u00e4t:",
"Systeminfo_Storage_Device": "Gerät:",
"Systeminfo_Storage_Mount": "Mountpunkt:",
"Systeminfo_Storage_Size": "Gr\u00f6\u00dfe:",
"Systeminfo_Storage_Size": "Größe:",
"Systeminfo_Storage_Type": "Typ:",
"Systeminfo_Storage_Usage": "Speicherverwendung",
"Systeminfo_Storage_Usage_Free": "Frei:",
@@ -693,23 +698,23 @@
"Systeminfo_System_System": "System:",
"Systeminfo_System_Uname": "Uname:",
"Systeminfo_System_Uptime": "Betriebszeit:",
"Systeminfo_This_Client": "Dieses Ger\u00e4t",
"Systeminfo_USB_Devices": "USB-Ger\u00e4te",
"Systeminfo_This_Client": "Dieses Gerät",
"Systeminfo_USB_Devices": "USB-Geräte",
"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_name": "Zeitzone",
"UI_DEV_SECTIONS_description": "Ausw\u00e4hlen, welche Elemente in der Ger\u00e4teseite versteckt werden sollen.",
"UI_DEV_SECTIONS_name": "Ger\u00e4teauswahl verstecken",
"UI_DEV_SECTIONS_description": "Auswählen, welche Elemente in der Geräteseite versteckt werden sollen.",
"UI_DEV_SECTIONS_name": "Geräteauswahl verstecken",
"UI_ICONS_description": "",
"UI_ICONS_name": "Vorgefertigte Icons",
"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_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_name": "UI Sprache",
"UI_MY_DEVICES_description": "",
"UI_MY_DEVICES_name": "In \"Meine Ger\u00e4te\" anzeigen",
"UI_MY_DEVICES_name": "In \"Meine Geräte\" anzeigen",
"UI_NOT_RANDOM_MAC_description": "",
"UI_NOT_RANDOM_MAC_name": "",
"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\u00e4senzdiagramm",
"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_name": "Anzeige im Präsenzdiagramm",
"UI_REFRESH_description": "",
"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>)",
@@ -729,7 +734,7 @@
"general_event_title": "Executing an ad-hoc event",
"report_guid": "",
"report_guid_missing": "",
"report_select_format": "Format ausw\u00e4hlen:",
"report_select_format": "Format auswählen:",
"report_time": "Benachrichtigungszeit:",
"run_event_icon": "fa-play",
"run_event_tooltip": "Enable the setting and save your changes at first before you run it.",
@@ -737,7 +742,8 @@
"settings_core_label": "",
"settings_device_scanners": "",
"settings_device_scanners_icon": "fa-solid fa-magnifying-glass-plus",
"settings_device_scanners_label": "Ger\u00e4tescanner",
"settings_device_scanners_info": "",
"settings_device_scanners_label": "Gerätescanner",
"settings_enabled": "Aktive Einstellungen",
"settings_enabled_icon": "fa-solid fa-toggle-on",
"settings_expand_all": "Expand all",
@@ -751,7 +757,8 @@
"settings_other_scanners_label": "Andere Scanner",
"settings_publishers": "",
"settings_publishers_icon": "fa-solid fa-paper-plane",
"settings_publishers_label": "Ver\u00f6ffentlicher",
"settings_publishers_info": "",
"settings_publishers_label": "Veröffentlicher",
"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_label": "System",

View File

@@ -83,8 +83,10 @@
"DevDetail_MainInfo_Name": "Name",
"DevDetail_MainInfo_Network": "<i class=\"fa fa-server\"></i> Node (MAC)",
"DevDetail_MainInfo_Network_Port": "<i class=\"fa fa-ethernet\"></i> Port",
"DevDetail_MainInfo_Network_Site": "Site",
"DevDetail_MainInfo_Network_Title": "<i class=\"fa fa-network-wired\"></i> Network",
"DevDetail_MainInfo_Owner": "Owner",
"DevDetail_MainInfo_SSID": "SSID",
"DevDetail_MainInfo_Title": "<i class=\"fa fa-pencil\"></i> Main Info",
"DevDetail_MainInfo_Type": "Type",
"DevDetail_MainInfo_Vendor": "Vendor",
@@ -112,7 +114,7 @@
"DevDetail_Run_Actions_Tooltip": "Run an action on the current device from the dropdown list.",
"DevDetail_SessionInfo_FirstSession": "First Session",
"DevDetail_SessionInfo_LastIP": "Last IP",
"DevDetail_SessionInfo_LastSession": "Last Session",
"DevDetail_SessionInfo_LastSession": "Last Offline",
"DevDetail_SessionInfo_StaticIP": "Static IP",
"DevDetail_SessionInfo_Status": "Status",
"DevDetail_SessionInfo_Title": "<i class=\"fa fa-calendar\"></i> Session Info",
@@ -201,16 +203,18 @@
"Device_TableHead_Icon": "Icon",
"Device_TableHead_LastIP": "Last IP",
"Device_TableHead_LastIPOrder": "Last IP Order",
"Device_TableHead_LastSession": "Last Session",
"Device_TableHead_LastSession": "Last Offline",
"Device_TableHead_Location": "Location",
"Device_TableHead_MAC": "Random MAC",
"Device_TableHead_MAC_full": "Full MAC",
"Device_TableHead_Name": "Name",
"Device_TableHead_NetworkSite": "Network Site",
"Device_TableHead_Owner": "Owner",
"Device_TableHead_Parent_MAC": "Parent node MAC",
"Device_TableHead_Port": "Port",
"Device_TableHead_RowID": "Row ID",
"Device_TableHead_Rowid": "Row ID",
"Device_TableHead_SSID": "SSID",
"Device_TableHead_Status": "Status",
"Device_TableHead_SyncHubNodeName": "Sync Node",
"Device_TableHead_Type": "Type",
@@ -224,7 +228,7 @@
"Device_Title": "Devices",
"Donations_Others": "Others",
"Donations_Platforms": "Sponsor platforms",
"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, so I can support this app longer. Any small (recurring or not) sponsorship makes me want to put more effort into this app. </br> I'd love to shorten my work week 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 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></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_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, so I can support this app longer. Any small (recurring or not) sponsorship makes me want to put more effort into this app. </br> I'd love to shorten my work week 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 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></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_Title": "Donations",
"ENABLE_PLUGINS_description": "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": "Enable Plugins",
@@ -266,6 +270,7 @@
"Gen_Action": "Action",
"Gen_Add": "Add",
"Gen_Add_All": "Add all",
"Gen_All_Devices": "All Devices",
"Gen_AreYouSure": "Are you sure?",
"Gen_Backup": "Run Backup",
"Gen_Cancel": "Cancel",
@@ -323,7 +328,7 @@
"HelpFAQ_Cat_General_102_head": "I get the message that the database is read only.",
"HelpFAQ_Cat_General_102_text": "Check in the NetAlertX directory if the database folder (db) has been assigned the correct permissions:<br> <span class=\"text-danger help_faq_code\">drwxrwx--- 2 (your username) www-data</span><br> If the permission is not correct, you can set it again with the following commands in the terminal or the console:<br> <span class=\"text-danger help_faq_code\">sudo chgrp -R www-data /app/db<br>chmod -R 770 /app/db</span><br>If the database is still read-only, try reinstalling or restoring a database backup from the maintenance page.",
"HelpFAQ_Cat_General_102docker_head": "Database issues (AJAX errors, read-only, not found)",
"HelpFAQ_Cat_General_102docker_text": "Double-check you have followed the <a target=\"_blank\" 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 target=\"_blank\" 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 target=\"_blank\" 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 &gt; 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 target=\"_blank\" 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 target=\"_blank\" 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 target=\"_blank\" 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 &gt; 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": "The login page does not appear, even after changing the password.",
"HelpFAQ_Cat_General_103_text": "In addition to the password, the configuration file must contain <span class=\"text-danger help_faq_code\">/app/config/app.conf</span> also the parameter <span class=\"text-danger help_faq_code\">PIALERT_WEB_PROTECTION</span> must set to <span class=\"text-danger help_faq_code\">True</span>.",
"HelpFAQ_Cat_Network_600_head": "What is this page for?",
@@ -438,7 +443,7 @@
"Maintenance_lang_selector_empty": "Choose Language",
"Maintenance_lang_selector_lable": "Select Language",
"Maintenance_lang_selector_text": "The change takes place on the client side, so it affects only the current browser.",
"Maintenance_new_version": "\ud83c\udd95 A new version is available. Check out the <a href=\"https://github.com/jokob-sk/NetAlertX/releases\" target=\"_blank\">release notes</a>.",
"Maintenance_new_version": "🆕 A new version is available. Check out the <a href=\"https://github.com/jokob-sk/NetAlertX/releases\" target=\"_blank\">release notes</a>.",
"Maintenance_themeselector_apply": "Apply",
"Maintenance_themeselector_empty": "Choose a Skin",
"Maintenance_themeselector_lable": "Select Skin",
@@ -549,8 +554,8 @@
"Setting_Override": "Override value",
"Setting_Override_Description": "Enabling this option will override an App supplied default value with the value specified above.",
"Settings_Metadata_Toggle": "Show/hide metadata for the given setting.",
"Settings_device_Scanners_desync": "\u26a0 Device scanner schedules are out-of-sync.",
"Settings_device_Scanners_desync_popup": "Schedules of devices scanners (<code>*_RUN_SCHD</code>) are not the same. This will result into inconsistent device online/offline notifications. Unless this is intended, please use the same schedule for all enabled <b>\ud83d\udd0dDevice scanners</b>.",
"Settings_device_Scanners_desync": " Device scanner schedules are out-of-sync.",
"Settings_device_Scanners_desync_popup": "Schedules of devices scanners (<code>*_RUN_SCHD</code>) are not the same. This will result into inconsistent device online/offline notifications. Unless this is intended, please use the same schedule for all enabled <b>🔍Device scanners</b>.",
"Speedtest_Results": "Speedtest Results",
"Systeminfo_CPU": "CPU",
"Systeminfo_CPU_Cores": "CPU Cores:",
@@ -626,7 +631,7 @@
"Systeminfo_System_Uptime": "Uptime:",
"Systeminfo_This_Client": "This Client",
"Systeminfo_USB_Devices": "USB Devices",
"TICKER_MIGRATE_TO_NETALERTX": "\u26a0 Old mount locations detected. Follow <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/MIGRATION.md\" target=\"_blank\">this guide</a> to migrate to the new <code>/app/config</code> and <code>/app/db</code> folders and the <code>netalertx</code> container.",
"TICKER_MIGRATE_TO_NETALERTX": " Old mount locations detected. Follow <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/MIGRATION.md\" target=\"_blank\">this guide</a> to migrate to the new <code>/app/config</code> and <code>/app/db</code> folders and the <code>netalertx</code> container.",
"TIMEZONE_description": "Time zone to display stats correctly. Find your time zone <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\" rel=\"nofollow\">here</a>.",
"TIMEZONE_name": "Time zone",
"UI_DEV_SECTIONS_description": "Select which UI elements to hide in the Devices pages.",
@@ -656,20 +661,22 @@
"settings_core_label": "Core",
"settings_device_scanners": "Device scanners used to discover devices that write into the CurrentScan database table.",
"settings_device_scanners_icon": "fa-solid fa-magnifying-glass-plus",
"settings_device_scanners_info": "Load even more Device Scanners with the <a href=\"/settings.php#LOADED_PLUGINS\">LOADED_PLUGINS</a> setting",
"settings_device_scanners_label": "Device scanners",
"settings_enabled": "Enabled settings",
"settings_enabled_icon": "fa-solid fa-toggle-on",
"settings_expand_all": "Expand all",
"settings_imported": "Last time settings were imported from the app.conf file",
"settings_imported_label": "Settings imported",
"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 \ud83d\udd04 at the top, alternatively, check the browser log for details (F12).",
"settings_missing": "Not all settings loaded! High load on the database or app startup sequence. Click the 🔄 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_old": "Importing settings and re-initializing...",
"settings_other_scanners": "Other, non-device scanner plugins that are currently enabled.",
"settings_other_scanners_icon": "fa-solid fa-recycle",
"settings_other_scanners_label": "Other scanners",
"settings_publishers": "Enabled notification gateways - publishers, that will send a notification depending on your settings.",
"settings_publishers_icon": "fa-solid fa-paper-plane",
"settings_publishers_info": "Load more Publishers with the <a href=\"/settings.php#LOADED_PLUGINS\">LOADED_PLUGINS</a> setting",
"settings_publishers_label": "Publishers",
"settings_saved": "<br/>Settings saved. <br/> Reloading... <br/><i class=\"ion ion-ios-loop-strong fa-spin fa-2x fa-fw\"></i> <br/>",
"settings_system_icon": "fa-solid fa-gear",

View File

@@ -1,27 +1,27 @@
{
"API_CUSTOM_SQL_description": "Puede especificar una consulta SQL personalizada que generar\u00e1 un archivo JSON y luego lo expondr\u00e1 a trav\u00e9s del <a href=\"/api/table_custom_endpoint.json\" target=\"_blank\">archivo <code>table_custom_endpoint.json</code ></a>.",
"API_CUSTOM_SQL_description": "Puede especificar una consulta SQL personalizada que generará un archivo JSON y luego lo expondrá a través del <a href=\"/api/table_custom_endpoint.json\" target=\"_blank\">archivo <code>table_custom_endpoint.json</code ></a>.",
"API_CUSTOM_SQL_name": "Endpoint personalizado",
"API_display_name": "API",
"API_icon": "<i class=\"fa fa-arrow-down-up-across-line\"></i>",
"APPRISE_HOST_description": "URL del host de Apprise que comienza con <code>http://</code> o <code>https://</code>. (no olvide incluir <code>/notify</code> al final)",
"APPRISE_HOST_name": "URL del host de Apprise",
"APPRISE_PAYLOAD_description": "Seleccione el tipo de carga \u00fatil enviada a Apprise. Por ejemplo, <code>html</code> funciona bien con correos electr\u00f3nicos, <code>text</code> con aplicaciones de chat, como Telegram.",
"APPRISE_PAYLOAD_description": "Seleccione el tipo de carga útil enviada a Apprise. Por ejemplo, <code>html</code> funciona bien con correos electrónicos, <code>text</code> con aplicaciones de chat, como Telegram.",
"APPRISE_PAYLOAD_name": "Tipo de carga",
"APPRISE_SIZE_description": "El tama\u00f1o m\u00e1ximo de la carga \u00fatil de informaci\u00f3n como n\u00famero de caracteres en la cadena pasada. Si supera el l\u00edmite, se truncar\u00e1 y se agregar\u00e1 un mensaje <code>(text was truncated)</code>.",
"APPRISE_SIZE_name": "Tama\u00f1o m\u00e1ximo de carga \u00fatil",
"APPRISE_URL_description": "Informar de la URL de destino de la notificaci\u00f3n. Por ejemplo, para Telegram ser\u00eda <code>tgram://{bot_token}/{chat_id}</code>.",
"APPRISE_URL_name": "URL de notificaci\u00f3n de Apprise",
"About_Design": "Dise\u00f1ado para:",
"APPRISE_SIZE_description": "El tamaño máximo de la carga útil de información como número de caracteres en la cadena pasada. Si supera el límite, se truncará y se agregará un mensaje <code>(text was truncated)</code>.",
"APPRISE_SIZE_name": "Tamaño máximo de carga útil",
"APPRISE_URL_description": "Informar de la URL de destino de la notificación. Por ejemplo, para Telegram sería <code>tgram://{bot_token}/{chat_id}</code>.",
"APPRISE_URL_name": "URL de notificación de Apprise",
"About_Design": "Diseñado para:",
"About_Exit": "Salir",
"About_Title": "Esc\u00e1ner de seguridad de la red y marco de notificaciones",
"About_Title": "Escáner de seguridad de la red y marco de notificaciones",
"AppEvents_DateTimeCreated": "Registrado",
"AppEvents_Extra": "Extra",
"AppEvents_GUID": "GUID del evento de aplicaci\u00f3n",
"AppEvents_GUID": "GUID del evento de aplicación",
"AppEvents_Helper1": "Ayudante 1",
"AppEvents_Helper2": "Ayudante 2",
"AppEvents_Helper3": "Ayudante 3",
"AppEvents_ObjectForeignKey": "Clave externa",
"AppEvents_ObjectIndex": "\u00cdndice",
"AppEvents_ObjectIndex": "Índice",
"AppEvents_ObjectIsArchived": "Se archiva (en el momento del registro)",
"AppEvents_ObjectIsNew": "Es nuevo (en el momento del registro)",
"AppEvents_ObjectPlugin": "Complemento vinculado",
@@ -34,106 +34,108 @@
"AppEvents_Type": "Tipo",
"Apprise_display_name": "Apprise",
"Apprise_icon": "<i class=\"fa fa-bullhorn\"></i>",
"BackDevDetail_Actions_Ask_Run": "\u00bfDesea ejecutar la acci\u00f3n?",
"BackDevDetail_Actions_Not_Registered": "Acci\u00f3n no registrada: ",
"BackDevDetail_Actions_Title_Run": "Ejecutar acci\u00f3n",
"BackDevDetail_Copy_Ask": "\u00bfCopiar detalles del dispositivo de la lista desplegable (se sobrescribir\u00e1 todo en esta p\u00e1gina)?",
"BackDevDetail_Actions_Ask_Run": "¿Desea ejecutar la acción?",
"BackDevDetail_Actions_Not_Registered": "Acción no registrada: ",
"BackDevDetail_Actions_Title_Run": "Ejecutar acción",
"BackDevDetail_Copy_Ask": "¿Copiar detalles del dispositivo de la lista desplegable (se sobrescribirá todo en esta página)?",
"BackDevDetail_Copy_Title": "Copiar detalles",
"BackDevDetail_Tools_WOL_error": "Ha ocurrido un error al ejectuar el comando.",
"BackDevDetail_Tools_WOL_okay": "El comando se ha ejecutado correctamente.",
"BackDevices_Arpscan_disabled": "Arp-Scan Desactivado",
"BackDevices_Arpscan_enabled": "Arp-Scan Activado",
"BackDevices_Backup_CopError": "La base de datos original no se pudo guardar.",
"BackDevices_Backup_Failed": "La copia de seguridad se ejecut\u00f3 parcialmente con \u00e9xito. El archivo no se puede crear o est\u00e1 vac\u00edo.",
"BackDevices_Backup_okay": "La copia de seguridad ejecutada con \u00e9xito con el nuevo archivo",
"BackDevices_DBTools_DelDevError_a": "Error de eliminaci\u00f3n del dispositivo",
"BackDevices_DBTools_DelDevError_b": "Error de eliminaci\u00f3n de dispositivos",
"BackDevices_Backup_Failed": "La copia de seguridad se ejecutó parcialmente con éxito. El archivo no se puede crear o está vacío.",
"BackDevices_Backup_okay": "La copia de seguridad ejecutada con éxito con el nuevo archivo",
"BackDevices_DBTools_DelDevError_a": "Error de eliminación del dispositivo",
"BackDevices_DBTools_DelDevError_b": "Error de eliminación de dispositivos",
"BackDevices_DBTools_DelDev_a": "Dispositivo eliminado",
"BackDevices_DBTools_DelDev_b": "Dispositivos eliminados",
"BackDevices_DBTools_DelEvents": "Eventos eliminados",
"BackDevices_DBTools_DelEventsError": "Error de eliminaci\u00f3n de eventos",
"BackDevices_DBTools_DelEventsError": "Error de eliminación de eventos",
"BackDevices_DBTools_ImportCSV": "Los dispositivos del archivo CSV han sido importados correctamente.",
"BackDevices_DBTools_ImportCSVError": "El archivo CSV no pudo ser importado. Aseg\u00farate de que el formato es correcto.",
"BackDevices_DBTools_ImportCSVError": "El archivo CSV no pudo ser importado. Asegúrate de que el formato es correcto.",
"BackDevices_DBTools_ImportCSVMissing": "El archivo CSV no se pudo encontrar en <b>/config/devices.csv.</b>",
"BackDevices_DBTools_Purge": "Las copias de seguridad m\u00e1s antiguas fueron eliminadas",
"BackDevices_DBTools_UpdDev": "Dispositivo actualizado con \u00e9xito",
"BackDevices_DBTools_Purge": "Las copias de seguridad más antiguas fueron eliminadas",
"BackDevices_DBTools_UpdDev": "Dispositivo actualizado con éxito",
"BackDevices_DBTools_UpdDevError": "Error al actualizar el dispositivo",
"BackDevices_DBTools_Upgrade": "Base de datos actualizada correctamente",
"BackDevices_DBTools_UpgradeError": "Fall\u00f3 la actualizaci\u00f3n de la base de datos",
"BackDevices_Device_UpdDevError": "Fallo al actualizar dispositivos, pruebe de nuevo m\u00e1s tarde. La base de datos probablemente est\u00e9 bloqueada por una tarea en curso.",
"BackDevices_DBTools_UpgradeError": "Falló la actualización de la base de datos",
"BackDevices_Device_UpdDevError": "Fallo al actualizar dispositivos, pruebe de nuevo más tarde. La base de datos probablemente esté bloqueada por una tarea en curso.",
"BackDevices_Restore_CopError": "La base de datos original no se pudo guardar.",
"BackDevices_Restore_Failed": "La restauraci\u00f3n fall\u00f3. Restaurar la copia de seguridad manualmente.",
"BackDevices_Restore_okay": "Restauraci\u00f3n ejecutado con \u00e9xito.",
"BackDevices_Restore_Failed": "La restauración falló. Restaurar la copia de seguridad manualmente.",
"BackDevices_Restore_okay": "Restauración ejecutado con éxito.",
"BackDevices_darkmode_disabled": "Darkmode Desactivado",
"BackDevices_darkmode_enabled": "Darkmode Activado",
"DAYS_TO_KEEP_EVENTS_description": "Esta es una configuraci\u00f3n de mantenimiento. Esto especifica el n\u00famero de d\u00edas de entradas de eventos que se guardar\u00e1n. Todos los eventos anteriores se eliminar\u00e1n peri\u00f3dicamente.",
"DAYS_TO_KEEP_EVENTS_description": "Esta es una configuración de mantenimiento. Esto especifica el número de días de entradas de eventos que se guardarán. Todos los eventos anteriores se eliminarán periódicamente.",
"DAYS_TO_KEEP_EVENTS_name": "Eliminar eventos anteriores a",
"DevDetail_Copy_Device_Title": "<i class=\"fa fa-copy\"></i> Copiar detalles del dispositivo",
"DevDetail_Copy_Device_Tooltip": "Copiar detalles del dispositivo de la lista desplegable. Todo en esta p\u00e1gina se sobrescribir\u00e1",
"DevDetail_Copy_Device_Tooltip": "Copiar detalles del dispositivo de la lista desplegable. Todo en esta página se sobrescribirá",
"DevDetail_EveandAl_AlertAllEvents": "Alerta a todos los eventos",
"DevDetail_EveandAl_AlertDown": "Alerta de ca\u00edda",
"DevDetail_EveandAl_AlertDown": "Alerta de caída",
"DevDetail_EveandAl_Archived": "Archivada",
"DevDetail_EveandAl_NewDevice": "Nuevo dispositivo",
"DevDetail_EveandAl_NewDevice_Tooltip": "Mostrar\u00e1 el estado Nuevo para el dispositivo y lo incluir\u00e1 en las listas cuando el filtro Nuevos dispositivos est\u00e9 activo. No afecta a las notificaciones.",
"DevDetail_EveandAl_NewDevice_Tooltip": "Mostrará el estado Nuevo para el dispositivo y lo incluirá en las listas cuando el filtro Nuevos dispositivos esté activo. No afecta a las notificaciones.",
"DevDetail_EveandAl_RandomMAC": "MAC al azar",
"DevDetail_EveandAl_ScanCycle": "Ciclo de escaneo",
"DevDetail_EveandAl_ScanCycle_a": "Escanear Dispositivo",
"DevDetail_EveandAl_ScanCycle_z": "No Escanear Dispositivo",
"DevDetail_EveandAl_Skip": "Omitir notificaciones repetidas durante",
"DevDetail_EveandAl_Title": "<i class=\"fa fa-bolt\"></i> Configuraci\u00f3n de eventos y alertas",
"DevDetail_Events_CheckBox": "Ocultar eventos de conexi\u00f3n",
"DevDetail_GoToNetworkNode": "Navegar a la p\u00e1gina de Internet del nodo seleccionado.",
"DevDetail_EveandAl_Title": "<i class=\"fa fa-bolt\"></i> Configuración de eventos y alertas",
"DevDetail_Events_CheckBox": "Ocultar eventos de conexión",
"DevDetail_GoToNetworkNode": "Navegar a la página de Internet del nodo seleccionado.",
"DevDetail_Icon": "Icono",
"DevDetail_Icon_Descr": "Ingrese un nombre de icono de fuente awesome sin el prefijo fa- o con clase completa, por ejemplo: fa fa-skin fa-apple.",
"DevDetail_Loading": "Cargando ...",
"DevDetail_MainInfo_Comments": "Comentario",
"DevDetail_MainInfo_Favorite": "Favorito",
"DevDetail_MainInfo_Group": "Grupo",
"DevDetail_MainInfo_Location": "Ubicaci\u00f3n",
"DevDetail_MainInfo_Location": "Ubicación",
"DevDetail_MainInfo_Name": "Nombre",
"DevDetail_MainInfo_Network": "<i class=\"fa fa-server\"></i> Nodo (MAC)",
"DevDetail_MainInfo_Network_Port": "<i class=\"fa fa-ethernet\"></i> Puerto de Red HW",
"DevDetail_MainInfo_Network_Site": "",
"DevDetail_MainInfo_Network_Title": "<i class=\"fa fa-network-wired\"></i> Red",
"DevDetail_MainInfo_Owner": "Propietario",
"DevDetail_MainInfo_Title": "<i class=\"fa fa-pencil\"></i> Informaci\u00f3n principal",
"DevDetail_MainInfo_SSID": "",
"DevDetail_MainInfo_Title": "<i class=\"fa fa-pencil\"></i> Información principal",
"DevDetail_MainInfo_Type": "Tipo",
"DevDetail_MainInfo_Vendor": "Proveedor",
"DevDetail_MainInfo_mac": "MAC",
"DevDetail_Network_Node_hover": "Seleccione el dispositivo de red principal al que est\u00e1 conectado el dispositivo actual para completar el \u00e1rbol de Red.",
"DevDetail_Network_Port_hover": "El puerto al que est\u00e1 conectado este dispositivo en el dispositivo de red principal. Si se deja vac\u00edo, se muestra un icono de wifi en el \u00e1rbol de Red.",
"DevDetail_Network_Node_hover": "Seleccione el dispositivo de red principal al que está conectado el dispositivo actual para completar el árbol de Red.",
"DevDetail_Network_Port_hover": "El puerto al que está conectado este dispositivo en el dispositivo de red principal. Si se deja vacío, se muestra un icono de wifi en el árbol de Red.",
"DevDetail_Nmap_Scans": "Escaneos de Nmap",
"DevDetail_Nmap_Scans_desc": "Aqu\u00ed puede ejecutar escaneos NMAP manuales. Tambi\u00e9n puede programar escaneos NMAP autom\u00e1ticos regulares a trav\u00e9s del complemento Servicios y puertos (NMAP). Dir\u00edgete a <a href='/settings.php' target='_blank'>Configuraci\u00f3n</a> para obtener m\u00e1s informaci\u00f3n",
"DevDetail_Nmap_Scans_desc": "Aquí puede ejecutar escaneos NMAP manuales. También puede programar escaneos NMAP automáticos regulares a través del complemento Servicios y puertos (NMAP). Dirígete a <a href='/settings.php' target='_blank'>Configuración</a> para obtener más información",
"DevDetail_Nmap_buttonDefault": "Escaneado predeterminado",
"DevDetail_Nmap_buttonDefault_text": "Escaneo predeterminado: NMAP escanea los 1,000 puertos principales para cada protocolo de escaneo solicitado. Esto atrapa aproximadamente el 93% de los puertos TCP y el 49% de los puertos UDP. (aproximadamente 5 segundos)",
"DevDetail_Nmap_buttonDetail": "Escaneo detallado",
"DevDetail_Nmap_buttonDetail_text": "Escaneo detallado: escaneo predeterminado con detecci\u00f3n de sistema operativo habilitado, detecci\u00f3n de versiones, escaneo de script y traceroute (hasta 30 segundos o m\u00e1s)",
"DevDetail_Nmap_buttonFast": "Exploraci\u00f3n r\u00e1pida",
"DevDetail_Nmap_buttonFast_text": "Escaneo r\u00e1pido: escanee menos puertos (100) que el escaneo predeterminado (unos pocos segundos)",
"DevDetail_Nmap_buttonSkipDiscovery": "Omitir detecci\u00f3n de host",
"DevDetail_Nmap_buttonSkipDiscovery_text": "Omitir detecci\u00f3n de host (-Pn opci\u00f3n): Escaneo predeterminado sin detecci\u00f3n de host",
"DevDetail_Nmap_resultsLink": "Puedes abandonar esta p\u00e1gina despu\u00e9s de empezar un escaneo. Los resultados tambi\u00e9n estar\u00e1n disponibles en el archivo <code>app_front.log</code>.",
"DevDetail_Owner_hover": "\u00bfQui\u00e9n es el propietario de este dispositivo? Campo de texto libre.",
"DevDetail_Periodselect_All": "Toda la informaci\u00f3n",
"DevDetail_Nmap_buttonDetail_text": "Escaneo detallado: escaneo predeterminado con detección de sistema operativo habilitado, detección de versiones, escaneo de script y traceroute (hasta 30 segundos o más)",
"DevDetail_Nmap_buttonFast": "Exploración rápida",
"DevDetail_Nmap_buttonFast_text": "Escaneo rápido: escanee menos puertos (100) que el escaneo predeterminado (unos pocos segundos)",
"DevDetail_Nmap_buttonSkipDiscovery": "Omitir detección de host",
"DevDetail_Nmap_buttonSkipDiscovery_text": "Omitir detección de host (-Pn opción): Escaneo predeterminado sin detección de host",
"DevDetail_Nmap_resultsLink": "Puedes abandonar esta página después de empezar un escaneo. Los resultados también estarán disponibles en el archivo <code>app_front.log</code>.",
"DevDetail_Owner_hover": "¿Quién es el propietario de este dispositivo? Campo de texto libre.",
"DevDetail_Periodselect_All": "Toda la información",
"DevDetail_Periodselect_LastMonth": "El mes pasado",
"DevDetail_Periodselect_LastWeek": "La semana pasada",
"DevDetail_Periodselect_LastYear": "El a\u00f1o pasado",
"DevDetail_Periodselect_LastYear": "El año pasado",
"DevDetail_Periodselect_today": "Hoy",
"DevDetail_Run_Actions_Title": "<i class=\"fa fa-play\"></i> Ejecutar acci\u00f3n en el dispositivo",
"DevDetail_Run_Actions_Tooltip": "Ejecutar la acci\u00f3n del desplegable sobre el dispositivo actual.",
"DevDetail_SessionInfo_FirstSession": "1ra. sesi\u00f3n",
"DevDetail_SessionInfo_LastIP": "\u00daltima IP",
"DevDetail_SessionInfo_LastSession": "\u00daltima sesi\u00f3n",
"DevDetail_SessionInfo_StaticIP": "IP est\u00e1tica",
"DevDetail_Run_Actions_Title": "<i class=\"fa fa-play\"></i> Ejecutar acción en el dispositivo",
"DevDetail_Run_Actions_Tooltip": "Ejecutar la acción del desplegable sobre el dispositivo actual.",
"DevDetail_SessionInfo_FirstSession": "1ra. sesión",
"DevDetail_SessionInfo_LastIP": "Última IP",
"DevDetail_SessionInfo_LastSession": "Última conexión",
"DevDetail_SessionInfo_StaticIP": "IP estática",
"DevDetail_SessionInfo_Status": "Estado",
"DevDetail_SessionInfo_Title": "<i class=\"fa fa-calendar\"></i> Informaci\u00f3n de sesi\u00f3n",
"DevDetail_SessionTable_Additionalinfo": "Informaci\u00f3n adicional",
"DevDetail_SessionTable_Connection": "Conexi\u00f3n",
"DevDetail_SessionTable_Disconnection": "Desconexi\u00f3n",
"DevDetail_SessionTable_Duration": "Duraci\u00f3n",
"DevDetail_SessionTable_IP": "Direcci\u00f3n IP",
"DevDetail_SessionInfo_Title": "<i class=\"fa fa-calendar\"></i> Información de sesión",
"DevDetail_SessionTable_Additionalinfo": "Información adicional",
"DevDetail_SessionTable_Connection": "Conexión",
"DevDetail_SessionTable_Disconnection": "Desconexión",
"DevDetail_SessionTable_Duration": "Duración",
"DevDetail_SessionTable_IP": "Dirección IP",
"DevDetail_SessionTable_Order": "Ordenar",
"DevDetail_Shortcut_CurrentStatus": "Estado actual",
"DevDetail_Shortcut_DownAlerts": "Alerta(s) de ca\u00edda(s)",
"DevDetail_Shortcut_DownAlerts": "Alerta(s) de caída(s)",
"DevDetail_Shortcut_Presence": "Historial",
"DevDetail_Shortcut_Sessions": "Sesiones",
"DevDetail_Tab_Details": "<i class=\"fa fa-info-circle\"></i> Detalles",
@@ -141,91 +143,93 @@
"DevDetail_Tab_EventsTableDate": "Fecha",
"DevDetail_Tab_EventsTableEvent": "Tipo de evento",
"DevDetail_Tab_EventsTableIP": "IP",
"DevDetail_Tab_EventsTableInfo": "Informaci\u00f3n adicional",
"DevDetail_Tab_EventsTableInfo": "Información adicional",
"DevDetail_Tab_Nmap": "<i class=\"fa fa-ethernet\"></i> Nmap",
"DevDetail_Tab_NmapEmpty": "Ning\u00fan puerto detectado en este dispositivo con Nmap.",
"DevDetail_Tab_NmapEmpty": "Ningún puerto detectado en este dispositivo con Nmap.",
"DevDetail_Tab_NmapTableExtra": "Extra",
"DevDetail_Tab_NmapTableHeader": "Resultados del escaneo programado",
"DevDetail_Tab_NmapTableIndex": "\u00cdndice",
"DevDetail_Tab_NmapTableIndex": "Índice",
"DevDetail_Tab_NmapTablePort": "Puerto",
"DevDetail_Tab_NmapTableService": "Servicio",
"DevDetail_Tab_NmapTableState": "Estado",
"DevDetail_Tab_NmapTableText": "Establece la programaci\u00f3n en los <a href=\"/settings.php#NMAP_ACTIVE\">Ajustes</a>",
"DevDetail_Tab_NmapTableText": "Establece la programación en los <a href=\"/settings.php#NMAP_ACTIVE\">Ajustes</a>",
"DevDetail_Tab_NmapTableTime": "Tiempo",
"DevDetail_Tab_Plugins": "<i class=\"fa fa-plug\"></i> Plugins",
"DevDetail_Tab_Presence": "<i class=\"fa fa-calendar\"></i> Historial",
"DevDetail_Tab_Sessions": "<i class=\"fa fa-list-ol\"></i> Sesiones",
"DevDetail_Tab_Tools": "<i class=\"fa fa-screwdriver-wrench\"></i> Herramientas",
"DevDetail_Tab_Tools_Internet_Info_Description": "La herramienta de informaci\u00f3n de internet muestra informaci\u00f3n sobre la conexi\u00f3n a Internet, como direcci\u00f3n IP, ciudad, pa\u00eds, c\u00f3digo de \u00e1rea y zona horaria.",
"DevDetail_Tab_Tools_Internet_Info_Description": "La herramienta de información de internet muestra información sobre la conexión a Internet, como dirección IP, ciudad, país, código de área y zona horaria.",
"DevDetail_Tab_Tools_Internet_Info_Error": "Se ha producido un error",
"DevDetail_Tab_Tools_Internet_Info_Start": "Iniciar informaci\u00f3n de Internet",
"DevDetail_Tab_Tools_Internet_Info_Title": "Informaci\u00f3n de Internet",
"DevDetail_Tab_Tools_Nslookup_Description": "Nslookup es una herramienta de l\u00ednea de comandos que se utiliza para realizar consultas al Sistema de nombres de dominio (DNS). El DNS es un sistema que traduce nombres de dominio, como www.google.com, a direcciones IP, como 172.217.0.142.",
"DevDetail_Tab_Tools_Nslookup_Error": "Error: la direcci\u00f3n IP no es v\u00e1lida",
"DevDetail_Tab_Tools_Internet_Info_Start": "Iniciar información de Internet",
"DevDetail_Tab_Tools_Internet_Info_Title": "Información de Internet",
"DevDetail_Tab_Tools_Nslookup_Description": "Nslookup es una herramienta de línea de comandos que se utiliza para realizar consultas al Sistema de nombres de dominio (DNS). El DNS es un sistema que traduce nombres de dominio, como www.google.com, a direcciones IP, como 172.217.0.142.",
"DevDetail_Tab_Tools_Nslookup_Error": "Error: la dirección IP no es válida",
"DevDetail_Tab_Tools_Nslookup_Start": "Iniciar Nslookup",
"DevDetail_Tab_Tools_Nslookup_Title": "Nslookup",
"DevDetail_Tab_Tools_Speedtest_Description": "La herramienta Speedtest mide la velocidad de descarga, la velocidad de subida y la latencia de la conexi\u00f3n a Internet.",
"DevDetail_Tab_Tools_Speedtest_Description": "La herramienta Speedtest mide la velocidad de descarga, la velocidad de subida y la latencia de la conexión a Internet.",
"DevDetail_Tab_Tools_Speedtest_Start": "Iniciar Speedtest",
"DevDetail_Tab_Tools_Speedtest_Title": "Prueba Speedtest",
"DevDetail_Tab_Tools_Traceroute_Description": "Traceroute es un comando de diagn\u00f3stico de red que se utiliza para rastrear la ruta que toman los paquetes de datos desde un host a otro.<br><br>El comando utiliza el protocolo de mensajes de control de Internet (ICMP) para enviar paquetes a los nodos intermedios en la ruta, cada nodo intermedio responde con un paquete ICMP de tiempo de vida agotado (TTL agotado).<br><br>La salida del comando traceroute muestra la direcci\u00f3n IP de cada nodo intermedio en la ruta.<br><br>El comando traceroute se puede usar para diagnosticar problemas de red, como retrasos, p\u00e9rdida de paquetes y rutas bloqueadas.<br><br>Tambi\u00e9n se puede usar para identificar la ubicaci\u00f3n de un nodo intermedio en una red.",
"DevDetail_Tab_Tools_Traceroute_Error": "Error: la direcci\u00f3n IP no es v\u00e1lida",
"DevDetail_Tab_Tools_Traceroute_Description": "Traceroute es un comando de diagnóstico de red que se utiliza para rastrear la ruta que toman los paquetes de datos desde un host a otro.<br><br>El comando utiliza el protocolo de mensajes de control de Internet (ICMP) para enviar paquetes a los nodos intermedios en la ruta, cada nodo intermedio responde con un paquete ICMP de tiempo de vida agotado (TTL agotado).<br><br>La salida del comando traceroute muestra la dirección IP de cada nodo intermedio en la ruta.<br><br>El comando traceroute se puede usar para diagnosticar problemas de red, como retrasos, pérdida de paquetes y rutas bloqueadas.<br><br>También se puede usar para identificar la ubicación de un nodo intermedio en una red.",
"DevDetail_Tab_Tools_Traceroute_Error": "Error: la dirección IP no es válida",
"DevDetail_Tab_Tools_Traceroute_Start": "Iniciar Traceroute",
"DevDetail_Tab_Tools_Traceroute_Title": "Traceroute",
"DevDetail_Tools_WOL": "Enviar comando WOL a ",
"DevDetail_Tools_WOL_noti": "Wake-on-LAN",
"DevDetail_Tools_WOL_noti_text": "El comando de Wake-on-LAN en enviado a la direcci\u00f3n de escucha. Si el dispositivo no est\u00e1 en la misma subred/vlan que NetAlertX, el dispositivo no responder\u00e1.",
"DevDetail_Type_hover": "El tipo de dispositivo. Si selecciona cualquiera de los dispositivos de la red predefinidos (por ejemplo: AP, Firewall, enrutador, conmutador...), aparecer\u00e1n en la configuraci\u00f3n del \u00e1rbol de redes como posibles nodos de la red principal.",
"DevDetail_Vendor_hover": "El proveedor debe ser detectado autom\u00e1ticamente. Puede sobrescribir o agregar su valor personalizado.",
"DevDetail_Tools_WOL_noti_text": "El comando de Wake-on-LAN en enviado a la dirección de escucha. Si el dispositivo no está en la misma subred/vlan que NetAlertX, el dispositivo no responderá.",
"DevDetail_Type_hover": "El tipo de dispositivo. Si selecciona cualquiera de los dispositivos de la red predefinidos (por ejemplo: AP, Firewall, enrutador, conmutador...), aparecerán en la configuración del árbol de redes como posibles nodos de la red principal.",
"DevDetail_Vendor_hover": "El proveedor debe ser detectado automáticamente. Puede sobrescribir o agregar su valor personalizado.",
"DevDetail_WOL_Title": "<i class=\"fa fa-power-off\"></i> Wake-on-LAN",
"DevDetail_button_AddIcon": "A\u00f1adir un nuevo icono",
"DevDetail_button_AddIcon_Help": "Pegue una etiqueta html SVG o un icono de etiqueta html Font Awesome. Lea los documentos <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\">Iconos</a> para obtener m\u00e1s informaci\u00f3n.",
"DevDetail_button_AddIcon_Tooltip": "A\u00f1ade un nuevo icono a este dispositivo que a\u00fan no est\u00e1 disponible en el men\u00fa desplegable.",
"DevDetail_button_AddIcon": "Añadir un nuevo icono",
"DevDetail_button_AddIcon_Help": "Pegue una etiqueta html SVG o un icono de etiqueta html Font Awesome. Lea los documentos <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\">Iconos</a> para obtener más información.",
"DevDetail_button_AddIcon_Tooltip": "Añade un nuevo icono a este dispositivo que aún no está disponible en el menú desplegable.",
"DevDetail_button_Delete": "Eliminar dispositivo",
"DevDetail_button_DeleteEvents": "Eliminar eventos",
"DevDetail_button_DeleteEvents_Warning": "\u00bfDesea eliminar todos los eventos de este dispositivo?<br><br>(se eliminar\u00e1n el <b>Historial de eventos</b> y las <b>Sesiones</b>, y puede ayudar en el caso de notificaciones constantes)",
"DevDetail_button_DeleteEvents_Warning": "¿Desea eliminar todos los eventos de este dispositivo?<br><br>(se eliminarán el <b>Historial de eventos</b> y las <b>Sesiones</b>, y puede ayudar en el caso de notificaciones constantes)",
"DevDetail_button_OverwriteIcons": "Sobreescribir iconos",
"DevDetail_button_OverwriteIcons_Tooltip": "Sobreescribir los iconos de todos los dispositivos con el mismo tipo",
"DevDetail_button_OverwriteIcons_Warning": "\u00bfSobreescribir todos los iconos de todos los dispositivos con el mismo tipo que el dispositivo actual?",
"DevDetail_button_OverwriteIcons_Warning": "¿Sobreescribir todos los iconos de todos los dispositivos con el mismo tipo que el dispositivo actual?",
"DevDetail_button_Reset": "Restablecer cambios",
"DevDetail_button_Save": "Guardar",
"Device_MultiEdit": "Edici\u00f3n m\u00faltiple",
"Device_MultiEdit_Backup": "Tenga cuidado, ingresar valores incorrectos o romper\u00e1 su configuraci\u00f3n. Por favor, haga una copia de seguridad de su base de datos o de la configuraci\u00f3n de los dispositivos primero (<a href=\"php/server/devices.php?action=ExportCSV\">haga clic para descargar <i class=\"fa-solid fa-download fa-bounce\"></i></a>). Lea c\u00f3mo recuperar dispositivos de este archivo en la documentaci\u00f3n de <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/BACKUPS.md#scenario-2-corrupted-database\" target=\"_blank\">Copia de seguridad</a>.",
"Device_MultiEdit": "Edición múltiple",
"Device_MultiEdit_Backup": "Tenga cuidado, ingresar valores incorrectos o romperá su configuración. Por favor, haga una copia de seguridad de su base de datos o de la configuración de los dispositivos primero (<a href=\"php/server/devices.php?action=ExportCSV\">haga clic para descargar <i class=\"fa-solid fa-download fa-bounce\"></i></a>). Lea cómo recuperar dispositivos de este archivo en la documentación de <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/BACKUPS.md#scenario-2-corrupted-database\" target=\"_blank\">Copia de seguridad</a>.",
"Device_MultiEdit_Fields": "Editar campos:",
"Device_MultiEdit_MassActions": "Acciones masivas:",
"Device_MultiEdit_Tooltip": "Cuidado. Al hacer clic se aplicar\u00e1 el valor de la izquierda a todos los dispositivos seleccionados anteriormente.",
"Device_Searchbox": "B\u00fasqueda",
"Device_MultiEdit_Tooltip": "Cuidado. Al hacer clic se aplicará el valor de la izquierda a todos los dispositivos seleccionados anteriormente.",
"Device_Searchbox": "Búsqueda",
"Device_Shortcut_AllDevices": "Mis dispositivos",
"Device_Shortcut_Archived": "Archivado(s)",
"Device_Shortcut_Connected": "Conectado(s)",
"Device_Shortcut_Devices": "Dispositivos",
"Device_Shortcut_DownAlerts": "Ca\u00eddo y sin conexi\u00f3n",
"Device_Shortcut_DownOnly": "Ca\u00eddo",
"Device_Shortcut_DownAlerts": "Caído y sin conexión",
"Device_Shortcut_DownOnly": "Caído",
"Device_Shortcut_Favorites": "Favorito(s)",
"Device_Shortcut_NewDevices": "Nuevo(s)",
"Device_Shortcut_OnlineChart": "Presencia del dispositivo a lo largo del tiempo",
"Device_TableHead_Connected_Devices": "Conexiones",
"Device_TableHead_Favorite": "Favorito",
"Device_TableHead_FirstSession": "1ra. sesi\u00f3n",
"Device_TableHead_GUID": "",
"Device_TableHead_FirstSession": "1ra. sesión",
"Device_TableHead_GUID": "GUID",
"Device_TableHead_Group": "Grupo",
"Device_TableHead_Icon": "Icon",
"Device_TableHead_LastIP": "\u00daltima IP",
"Device_TableHead_LastIPOrder": "\u00daltima orden de IP",
"Device_TableHead_LastSession": "\u00daltima sesi\u00f3n",
"Device_TableHead_Location": "Ubicaci\u00f3n",
"Device_TableHead_LastIP": "Última IP",
"Device_TableHead_LastIPOrder": "Última orden de IP",
"Device_TableHead_LastSession": "Última conexión",
"Device_TableHead_Location": "Ubicación",
"Device_TableHead_MAC": "MAC aleatoria",
"Device_TableHead_MAC_full": "MAC completa",
"Device_TableHead_Name": "Nombre",
"Device_TableHead_NetworkSite": "",
"Device_TableHead_Owner": "Propietario",
"Device_TableHead_Parent_MAC": "Nodo principal de la MAC",
"Device_TableHead_Port": "Puerto",
"Device_TableHead_RowID": "Row ID",
"Device_TableHead_Rowid": "Row ID",
"Device_TableHead_Status": "Situaci\u00f3n",
"Device_TableHead_SyncHubNodeName": "",
"Device_TableHead_SSID": "",
"Device_TableHead_Status": "Situación",
"Device_TableHead_SyncHubNodeName": "Nodo de sincronización",
"Device_TableHead_Type": "Tipo",
"Device_TableHead_Vendor": "Fabricante",
"Device_Table_Not_Network_Device": "No est\u00e1 configurado como dispositivo de red",
"Device_Table_Not_Network_Device": "No está configurado como dispositivo de red",
"Device_Table_info": "Mostrando el INICIO y el FINAL de TODAS las entradas",
"Device_Table_nav_next": "Siguiente",
"Device_Table_nav_prev": "Anterior",
@@ -234,35 +238,35 @@
"Device_Title": "Dispositivos",
"Donations_Others": "Otros",
"Donations_Platforms": "Plataforma de patrocinadores",
"Donations_Text": "\u00a1Hola! \ud83d\udc4b </br> Gracias por hacer clic en este elemento \ud83d\ude05 del men\u00fa </br> </br>, estoy tratando de recolectar algunas donaciones para mejorar el software. Adem\u00e1s, me ayudar\u00eda a no quemarse, por lo que puedo apoyar esta aplicaci\u00f3n por m\u00e1s tiempo. Cualquier peque\u00f1o patrocinio (recurrente o no) me hace querer esforzarme m\u00e1s en esta aplicaci\u00f3n. </br> Me encantar\u00eda acortar mi semana de trabajo y en el tiempo que me queda centrarme por completo en NetAlertX. Obtendr\u00edas m\u00e1s funcionalidad, una aplicaci\u00f3n m\u00e1s pulida y menos errores. </br> </br> Gracias por leer, agradezco cualquier apoyo \u2764\ud83d\ude4f </br> </br> TL; DR: Al apoyarme, obtienes: </br> </br> <ul><li>Actualizaciones peri\u00f3dicas para mantener tus datos y tu familia seguros \ud83d\udd04</li><li>Menos errores \ud83d\udc1b\ud83d\udd2b</li><li>Mejor y m\u00e1s funcionalidad\u2795</li><li>No me quemo \ud83d\udd25\ud83e\udd2f</li><li>Lanzamientos \ud83d\udca8menos apresurados</li> <li>Mejores documentos\ud83d\udcda</li><li>Soporte m\u00e1s r\u00e1pido y mejor con problemas \ud83c\udd98</li></ul> </br> \ud83d\udce7Env\u00edame un correo electr\u00f3nico a <a href='mailto:jokob@duck.com?subject=NetAlertX'>jokob@duck.com</a> si quieres ponerte en contacto o si debo a\u00f1adir otras plataformas de patrocinio. </br>",
"Donations_Text": "¡Hola! 👋 </br> Gracias por hacer clic en este elemento 😅 del menú </br> </br>, estoy tratando de recolectar algunas donaciones para mejorar el software. Además, me ayudaría a no quemarse, por lo que puedo apoyar esta aplicación por más tiempo. Cualquier pequeño patrocinio (recurrente o no) me hace querer esforzarme más en esta aplicación. </br> Me encantaría acortar mi semana de trabajo y en el tiempo que me queda centrarme por completo en NetAlertX. Obtendrías más funcionalidad, una aplicación más pulida y menos errores. </br> </br> Gracias por leer, agradezco cualquier apoyo ❤🙏 </br> </br> TL; DR: Al apoyarme, obtienes: </br> </br> <ul><li>Actualizaciones periódicas para mantener tus datos y tu familia seguros 🔄</li><li>Menos errores 🐛🔫</li><li>Mejor y más funcionalidad</li><li>No me quemo 🔥🤯</li><li>Lanzamientos 💨menos apresurados</li> <li>Mejores documentos📚</li><li>Soporte más rápido y mejor con problemas 🆘</li></ul> </br> 📧Envíame un correo electrónico a <a href='mailto:jokob@duck.com?subject=NetAlertX'>jokob@duck.com</a> si quieres ponerte en contacto o si debo añadir otras plataformas de patrocinio. </br>",
"Donations_Title": "Donaciones",
"ENABLE_PLUGINS_description": "Habilita la funcionalidad de los <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/front/plugins\">complementos</a>. Cargar los complementos requiere m\u00e1s recursos de hardware, as\u00ed que quiz\u00e1s quieras desactivarlo en hardware poco potente.",
"ENABLE_PLUGINS_description": "Habilita la funcionalidad de los <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/front/plugins\">complementos</a>. Cargar los complementos requiere más recursos de hardware, así que quizás quieras desactivarlo en hardware poco potente.",
"ENABLE_PLUGINS_name": "Habilitar complementos",
"Email_display_name": "Email",
"Email_icon": "<i class=\"fa fa-at\"></i>",
"Events_Loading": "Cargando...",
"Events_Periodselect_All": "Toda la informaci\u00f3n",
"Events_Periodselect_All": "Toda la información",
"Events_Periodselect_LastMonth": "El mes pasado",
"Events_Periodselect_LastWeek": "La semana pasada",
"Events_Periodselect_LastYear": "El a\u00f1o pasado",
"Events_Periodselect_LastYear": "El año pasado",
"Events_Periodselect_today": "Hoy",
"Events_Searchbox": "B\u00fasqueda",
"Events_Searchbox": "Búsqueda",
"Events_Shortcut_AllEvents": "Todos los eventos",
"Events_Shortcut_DownAlerts": "Alerta(s) de ca\u00edda(s)",
"Events_Shortcut_DownAlerts": "Alerta(s) de caída(s)",
"Events_Shortcut_Events": "Eventos",
"Events_Shortcut_MissSessions": "Sesiones faltantes",
"Events_Shortcut_NewDevices": "Nuevo(s)",
"Events_Shortcut_Sessions": "Sesiones",
"Events_Shortcut_VoidSessions": "Sesiones anuladas",
"Events_TableHead_AdditionalInfo": "Informaci\u00f3n adicional",
"Events_TableHead_Connection": "Conexi\u00f3n",
"Events_TableHead_AdditionalInfo": "Información adicional",
"Events_TableHead_Connection": "Conexión",
"Events_TableHead_Date": "Fecha",
"Events_TableHead_Device": "Dispositivo",
"Events_TableHead_Disconnection": "Desconexi\u00f3n",
"Events_TableHead_Duration": "Duraci\u00f3n",
"Events_TableHead_DurationOrder": "Orden de duraci\u00f3n",
"Events_TableHead_Disconnection": "Desconexión",
"Events_TableHead_Duration": "Duración",
"Events_TableHead_DurationOrder": "Orden de duración",
"Events_TableHead_EventType": "Tipo de evento",
"Events_TableHead_IP": "Direcci\u00f3n IP",
"Events_TableHead_IP": "Dirección IP",
"Events_TableHead_IPOrder": "Orden de IP",
"Events_TableHead_Order": "Ordenar",
"Events_TableHead_Owner": "Propietario",
@@ -270,29 +274,30 @@
"Events_Table_info": "Mostrando el INICIO y el FINAL de TODAS las entradas",
"Events_Table_nav_next": "Siguiente",
"Events_Table_nav_prev": "Anterior",
"Events_Tablelenght": "Mostrando entradas del MEN\u00da",
"Events_Tablelenght": "Mostrando entradas del MENÚ",
"Events_Tablelenght_all": "Todos",
"Events_Title": "Eventos",
"Gen_Action": "Acci\u00f3n",
"Gen_Add": "A\u00f1adir",
"Gen_Add_All": "A\u00f1adir todo",
"Gen_AreYouSure": "\u00bfEst\u00e1s seguro?",
"Gen_Action": "Acción",
"Gen_Add": "Añadir",
"Gen_Add_All": "Añadir todo",
"Gen_All_Devices": "",
"Gen_AreYouSure": "¿Estás seguro?",
"Gen_Backup": "Ejecutar copia de seguridad",
"Gen_Cancel": "Cancelar",
"Gen_Copy": "Ejecutar",
"Gen_DataUpdatedUITakesTime": "Correcto - La interfaz puede tardar en actualizarse si se est\u00e1 ejecutando un escaneo.",
"Gen_DataUpdatedUITakesTime": "Correcto - La interfaz puede tardar en actualizarse si se está ejecutando un escaneo.",
"Gen_Delete": "Eliminar",
"Gen_DeleteAll": "Eliminar todo",
"Gen_Error": "Error",
"Gen_Filter": "Filtro",
"Gen_LockedDB": "Fallo - La base de datos puede estar bloqueada - Pulsa F1 -> Ajustes de desarrolladores -> Consola o prueba m\u00e1s tarde.",
"Gen_LockedDB": "Fallo - La base de datos puede estar bloqueada - Pulsa F1 -> Ajustes de desarrolladores -> Consola o prueba más tarde.",
"Gen_Offline": "Desconectado",
"Gen_Okay": "Aceptar",
"Gen_Purge": "Purgar",
"Gen_ReadDocs": "Lee m\u00e1s en los documentos.",
"Gen_ReadDocs": "Lee más en los documentos.",
"Gen_Remove_All": "Quitar todo",
"Gen_Remove_Last": "Quitar el \u00faltimo",
"Gen_Restore": "Ejecutar restauraci\u00f3n",
"Gen_Remove_Last": "Quitar el último",
"Gen_Restore": "Ejecutar restauración",
"Gen_Run": "Ejecutar",
"Gen_Save": "Guardar",
"Gen_Saved": "Guardado",
@@ -307,176 +312,176 @@
"Gen_Work_In_Progress": "Trabajo en curso, un buen momento para hacer comentarios en https://github.com/jokob-sk/NetAlertX/issues",
"General_display_name": "General",
"General_icon": "<i class=\"fa fa-gears\"></i>",
"HRS_TO_KEEP_NEWDEV_description": "Esta es una configuraci\u00f3n de mantenimiento. Si est\u00e1 habilitado (<code>0</code> est\u00e1 deshabilitado), los dispositivos marcados como <b>Nuevo dispositivo</b> se eliminar\u00e1n si su <b>Primera sesi\u00f3n</b> el tiempo era anterior a las horas especificadas en esta configuraci\u00f3n. Utilice esta configuraci\u00f3n si desea eliminar autom\u00e1ticamente <b>Nuevos dispositivos</b> despu\u00e9s de <code>X</code> horas.",
"HRS_TO_KEEP_NEWDEV_description": "Esta es una configuración de mantenimiento. Si está habilitado (<code>0</code> está deshabilitado), los dispositivos marcados como <b>Nuevo dispositivo</b> se eliminarán si su <b>Primera sesión</b> el tiempo era anterior a las horas especificadas en esta configuración. Utilice esta configuración si desea eliminar automáticamente <b>Nuevos dispositivos</b> después de <code>X</code> horas.",
"HRS_TO_KEEP_NEWDEV_name": "Guardar nuevos dispositivos para",
"HelpFAQ_Cat_Detail": "Detalles",
"HelpFAQ_Cat_Detail_300_head": "\u00bfQu\u00e9 significa? ",
"HelpFAQ_Cat_Detail_300_text_a": "significa un dispositivo de red (un dispositivo del tipo AP, Gateway, Firewall, Hypervisor, Powerline, Switch, WLAN, PLC, Router,Adaptador LAN USB, Adaptador WIFI USB o Internet). Los tipos personalizados pueden a\u00f1adirse mediante el ajuste <code>NETWORK_DEVICE_TYPES</code>.",
"HelpFAQ_Cat_Detail_300_text_b": "designa el n\u00famero de puerto en el que el dispositivo actualmente editado est\u00e1 conectado a este dispositivo de red. Lea <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\">esta gu\u00eda</a> para obtener m\u00e1s informaci\u00f3n.",
"HelpFAQ_Cat_Detail_301_head_a": "\u00bfCu\u00e1ndo est\u00e1 escaneando ahora? En ",
"HelpFAQ_Cat_Detail_301_head_b": " dice 1min pero el gr\u00e1fico muestra intervalos de 5min.",
"HelpFAQ_Cat_Detail_301_text": "El intervalo de tiempo entre los escaneos est\u00e1 definido por el \"Cronjob\", que est\u00e1 fijado en 5min por defecto. La designaci\u00f3n \"1min\" se refiere a la duraci\u00f3n prevista de la exploraci\u00f3n. Dependiendo de la configuraci\u00f3n de la red, este tiempo puede variar. Para editar el cronjob, puedes utilizar el siguiente comando en el terminal/consola <span class=\"text-danger help_faq_code\">crontab -e</span>y cambiar el intervalo.",
"HelpFAQ_Cat_Detail_302_head_a": "\u00bfQu\u00e9 significa? ",
"HelpFAQ_Cat_Detail_302_head_b": "\u00bfy por qu\u00e9 no puedo seleccionarlo?",
"HelpFAQ_Cat_Detail_302_text": "Algunos dispositivos modernos generan direcciones MAC aleatorias por razones de privacidad, que ya no pueden asociarse a ning\u00fan fabricante y que vuelven a cambiar con cada nueva conexi\u00f3n. NetAlertX detecta si se trata de una direcci\u00f3n MAC aleatoria y activa este \"campo\" autom\u00e1ticamente. Para deshabilitar este comportamiento, debe buscar en su dispositivo c\u00f3mo deshabilitar la aleatorizaci\u00f3n de direcciones MAC.",
"HelpFAQ_Cat_Detail_303_head": "\u00bfQu\u00e9 es Nmap y para qu\u00e9 sirve?",
"HelpFAQ_Cat_Detail_303_text": "Nmap es un esc\u00e1ner de red con m\u00faltiples capacidades.<br> Cuando aparece un nuevo dispositivo en su lista, tiene la posibilidad de obtener informaci\u00f3n m\u00e1s detallada sobre el dispositivo a trav\u00e9s del escaneo de Nmap.",
"HelpFAQ_Cat_Device_200_head": "Tengo dispositivos en mi lista que no conozco. Despu\u00e9s de borrarlos, siempre vuelven a aparecer.",
"HelpFAQ_Cat_Device_200_text": "Si utiliza Pi-hole, tenga en cuenta que NetAlertX recupera informaci\u00f3n de Pi-hole. Ponga en pausa NetAlertX, vaya a la p\u00e1gina de configuraci\u00f3n de Pi-hole y elimine la concesi\u00f3n DHCP si es necesario. Luego, tambi\u00e9n en Pi-hole, revise en Herramientas -> Red para ver si puede encontrar los hosts recurrentes all\u00ed. Si es as\u00ed, elim\u00ednelos tambi\u00e9n all\u00ed. Ahora puede volver a iniciar NetAlertX. Ahora el dispositivo(s) no deber\u00eda aparecer m\u00e1s.",
"HelpFAQ_Cat_Detail_300_head": "¿Qué significa? ",
"HelpFAQ_Cat_Detail_300_text_a": "significa un dispositivo de red (un dispositivo del tipo AP, Gateway, Firewall, Hypervisor, Powerline, Switch, WLAN, PLC, Router,Adaptador LAN USB, Adaptador WIFI USB o Internet). Los tipos personalizados pueden añadirse mediante el ajuste <code>NETWORK_DEVICE_TYPES</code>.",
"HelpFAQ_Cat_Detail_300_text_b": "designa el número de puerto en el que el dispositivo actualmente editado está conectado a este dispositivo de red. Lea <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\">esta guía</a> para obtener más información.",
"HelpFAQ_Cat_Detail_301_head_a": "¿Cuándo está escaneando ahora? En ",
"HelpFAQ_Cat_Detail_301_head_b": " dice 1min pero el gráfico muestra intervalos de 5min.",
"HelpFAQ_Cat_Detail_301_text": "El intervalo de tiempo entre los escaneos está definido por el \"Cronjob\", que está fijado en 5min por defecto. La designación \"1min\" se refiere a la duración prevista de la exploración. Dependiendo de la configuración de la red, este tiempo puede variar. Para editar el cronjob, puedes utilizar el siguiente comando en el terminal/consola <span class=\"text-danger help_faq_code\">crontab -e</span>y cambiar el intervalo.",
"HelpFAQ_Cat_Detail_302_head_a": "¿Qué significa? ",
"HelpFAQ_Cat_Detail_302_head_b": "¿y por qué no puedo seleccionarlo?",
"HelpFAQ_Cat_Detail_302_text": "Algunos dispositivos modernos generan direcciones MAC aleatorias por razones de privacidad, que ya no pueden asociarse a ningún fabricante y que vuelven a cambiar con cada nueva conexión. NetAlertX detecta si se trata de una dirección MAC aleatoria y activa este \"campo\" automáticamente. Para deshabilitar este comportamiento, debe buscar en su dispositivo cómo deshabilitar la aleatorización de direcciones MAC.",
"HelpFAQ_Cat_Detail_303_head": "¿Qué es Nmap y para qué sirve?",
"HelpFAQ_Cat_Detail_303_text": "Nmap es un escáner de red con múltiples capacidades.<br> Cuando aparece un nuevo dispositivo en su lista, tiene la posibilidad de obtener información más detallada sobre el dispositivo a través del escaneo de Nmap.",
"HelpFAQ_Cat_Device_200_head": "Tengo dispositivos en mi lista que no conozco. Después de borrarlos, siempre vuelven a aparecer.",
"HelpFAQ_Cat_Device_200_text": "Si utiliza Pi-hole, tenga en cuenta que NetAlertX recupera información de Pi-hole. Ponga en pausa NetAlertX, vaya a la página de configuración de Pi-hole y elimine la concesión DHCP si es necesario. Luego, también en Pi-hole, revise en Herramientas -> Red para ver si puede encontrar los hosts recurrentes allí. Si es así, elimínelos también allí. Ahora puede volver a iniciar NetAlertX. Ahora el dispositivo(s) no debería aparecer más.",
"HelpFAQ_Cat_General": "General",
"HelpFAQ_Cat_General_100_head": "El reloj en la parte superior derecha y el tiempo de los eventos/presencia no son correctos (diferencia de tiempo).",
"HelpFAQ_Cat_General_100_text_a": "En su PC, la siguiente zona horaria est\u00e1 configurada para el entorno PHP:",
"HelpFAQ_Cat_General_100_text_b": "Si esta no es la zona horaria en la que se encuentra, debe cambiar la zona horaria en el archivo de configuraci\u00f3n de PHP. Puedes encontrarlo en este directorio:",
"HelpFAQ_Cat_General_100_text_c": "Busque en este archivo la entrada \"date.timezone\", elimine el \";\" inicial si es necesario e introduzca la zona horaria deseada. Puede encontrar una lista con las zonas horarias compatibles aqu\u00ed (<a href=\"https://www.php.net/manual/en/timezones.php\" target=\"blank\">Link</a>)",
"HelpFAQ_Cat_General_100_text_a": "En su PC, la siguiente zona horaria está configurada para el entorno PHP:",
"HelpFAQ_Cat_General_100_text_b": "Si esta no es la zona horaria en la que se encuentra, debe cambiar la zona horaria en el archivo de configuración de PHP. Puedes encontrarlo en este directorio:",
"HelpFAQ_Cat_General_100_text_c": "Busque en este archivo la entrada \"date.timezone\", elimine el \";\" inicial si es necesario e introduzca la zona horaria deseada. Puede encontrar una lista con las zonas horarias compatibles aquí (<a href=\"https://www.php.net/manual/en/timezones.php\" target=\"blank\">Link</a>)",
"HelpFAQ_Cat_General_101_head": "Mi red parece ralentizarse, el streaming se \"congela\".",
"HelpFAQ_Cat_General_101_text": "Es muy posible que los dispositivos de baja potencia alcancen sus l\u00edmites de rendimiento con la forma en que NetAlertX detecta nuevos dispositivos en la red. Esto se amplifica a\u00fan m\u00e1s, si estos dispositivos se comunican con la red a trav\u00e9s de WLAN. Las soluciones aqu\u00ed ser\u00edan cambiar a una conexi\u00f3n por cable si es posible o, si el dispositivo s\u00f3lo se va a utilizar durante un per\u00edodo de tiempo limitado, utilizar el arp scan. pausar el arp scan en la p\u00e1gina de mantenimiento.",
"HelpFAQ_Cat_General_102_head": "Me aparece el mensaje de que la base de datos es de s\u00f3lo de lectura.",
"HelpFAQ_Cat_General_102_text": "Compruebe en el directorio NetAlertX si la carpeta de la base de datos (db) tiene asignados los permisos correctos:<br> <span class=\"text-danger help_faq_code\">drwxrwx--- 2 (nombre de usuario) www-data</span><br> Si el permiso no es correcto, puede establecerlo de nuevo con los siguientes comandos en la terminal o la consola:<br> <span class=\"text-danger help_faq_code\"> sudo chgrp -R www-data /app/db<br> chmod -R 770 /app/db </span><br> Si la base de datos sigue siendo de s\u00f3lo lectura, intente reinstalar o restaurar una copia de seguridad de la base de datos desde la p\u00e1gina de mantenimiento.",
"HelpFAQ_Cat_General_102docker_head": "(\ud83d\udc33 Solo Docker) Problemas con la base de datos (errores de AJAX, solo lectura, no encontrado)",
"HelpFAQ_Cat_General_102docker_text": "Comprueba que has seguido las instrucciones del <a href=\"https://github.com/jokob-sk/NetAlertX/tree/main/dockerfiles\">dockerfile (la informaci\u00f3n m\u00e1s actualizada)</a>. <br/> <br/> <ul data-sourcepos=\"49:4-52:146\" dir=\"auto\"> <li data-sourcepos=\"49:4-49:106\">Descarga la <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/db/app.db\">base de datos original desde GitHub</a>.</li> <li data-sourcepos=\"50:4-50:195\">Mapea el archivo <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> no carpeta) de arriba a <code>/app/db/app.db</code> (puedes comprobar los <a href=\"https://github.com/jokob-sk/NetAlertX/tree/main/dockerfiles#-examples\">ejemplos</a> para m\u00e1s detalles).</li> <li data-sourcepos=\"51:4-51:161\">Si aparecen problemas (errores de AJAX, no se puede escribir a la base de datos, etc,) aseg\u00farate que los permisos est\u00e1n establecidos correctamente. Tambi\u00e9n puedes comprobar los registros en <code>/app/front/log</code>.</li> <li data-sourcepos=\"52:4-52:146\">Para arreglar los problemas de los permisos, puedes probar a crear una copia de seguridad de la base de datos y despu\u00e9s restaurarla desde la secci\u00f3n <strong>Mantenimiento &gt; Copia de seguridad/Restaurar</strong>.</li> <li data-sourcepos=\"53:4-53:228\">Si la base de datos est\u00e1 en modo solo lectura, lo puedes arreglar ejecutando el siguiente comando para establecer el propietario y grupo en el sistema host: <code>docker exec netalertx chown -R www-data:www-data /app/db/app.db</code>.</li> </ul>",
"HelpFAQ_Cat_General_103_head": "La p\u00e1gina de inicio de sesi\u00f3n no aparece, incluso despu\u00e9s de cambiar la contrase\u00f1a.",
"HelpFAQ_Cat_General_103_text": "Adem\u00e1s de la contrase\u00f1a, el archivo de configuraci\u00f3n debe contener <span class=\"text-danger help_faq_code\">/app/config/app.conf</span> adem\u00e1s el par\u00e1metro <span class=\"text-danger help_faq_code\">PIALERT_WEB_PROTECTION</span> debe ajustarse a <span class=\"text-danger help_faq_code\">True</span>.",
"HelpFAQ_Cat_Network_600_head": "\u00bfPara qu\u00e9 sirve esta secci\u00f3n?",
"HelpFAQ_Cat_Network_600_text": "Esta p\u00e1gina deber\u00eda ofrecerle la posibilidad de asignar los dispositivos de su red. Para ello, puede crear uno o varios conmutadores, WLAN, routers, etc., proporcionarles un n\u00famero de puerto si es necesario y asignarles dispositivos ya detectados. Esta asignaci\u00f3n se realiza en la vista detallada del dispositivo a asignar. As\u00ed podr\u00e1s determinar r\u00e1pidamente a qu\u00e9 puerto est\u00e1 conectado un host y si est\u00e1 en l\u00ednea. Lea <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\">esta gu\u00eda</a> para obtener m\u00e1s informaci\u00f3n.",
"HelpFAQ_Cat_Network_601_head": "\u00bfHay otros documentos?",
"HelpFAQ_Cat_Network_601_text": "\u00a1S\u00ed, los hay! Marque <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/\">todos los documentos</a> para m\u00e1s informaci\u00f3n.",
"HelpFAQ_Cat_General_101_text": "Es muy posible que los dispositivos de baja potencia alcancen sus límites de rendimiento con la forma en que NetAlertX detecta nuevos dispositivos en la red. Esto se amplifica aún más, si estos dispositivos se comunican con la red a través de WLAN. Las soluciones aquí serían cambiar a una conexión por cable si es posible o, si el dispositivo sólo se va a utilizar durante un período de tiempo limitado, utilizar el arp scan. pausar el arp scan en la página de mantenimiento.",
"HelpFAQ_Cat_General_102_head": "Me aparece el mensaje de que la base de datos es de sólo de lectura.",
"HelpFAQ_Cat_General_102_text": "Compruebe en el directorio NetAlertX si la carpeta de la base de datos (db) tiene asignados los permisos correctos:<br> <span class=\"text-danger help_faq_code\">drwxrwx--- 2 (nombre de usuario) www-data</span><br> Si el permiso no es correcto, puede establecerlo de nuevo con los siguientes comandos en la terminal o la consola:<br> <span class=\"text-danger help_faq_code\"> sudo chgrp -R www-data /app/db<br> chmod -R 770 /app/db </span><br> Si la base de datos sigue siendo de sólo lectura, intente reinstalar o restaurar una copia de seguridad de la base de datos desde la página de mantenimiento.",
"HelpFAQ_Cat_General_102docker_head": "(🐳 Solo Docker) Problemas con la base de datos (errores de AJAX, solo lectura, no encontrado)",
"HelpFAQ_Cat_General_102docker_text": "Comprueba que has seguido las instrucciones del <a href=\"https://github.com/jokob-sk/NetAlertX/tree/main/dockerfiles\">dockerfile (la información más actualizada)</a>. <br/> <br/> <ul data-sourcepos=\"49:4-52:146\" dir=\"auto\"> <li data-sourcepos=\"49:4-49:106\">Descarga la <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/db/app.db\">base de datos original desde GitHub</a>.</li> <li data-sourcepos=\"50:4-50:195\">Mapea el archivo <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> no carpeta) de arriba a <code>/app/db/app.db</code> (puedes comprobar los <a href=\"https://github.com/jokob-sk/NetAlertX/tree/main/dockerfiles#-examples\">ejemplos</a> para más detalles).</li> <li data-sourcepos=\"51:4-51:161\">Si aparecen problemas (errores de AJAX, no se puede escribir a la base de datos, etc,) asegúrate que los permisos están establecidos correctamente. También puedes comprobar los registros en <code>/app/front/log</code>.</li> <li data-sourcepos=\"52:4-52:146\">Para arreglar los problemas de los permisos, puedes probar a crear una copia de seguridad de la base de datos y después restaurarla desde la sección <strong>Mantenimiento &gt; Copia de seguridad/Restaurar</strong>.</li> <li data-sourcepos=\"53:4-53:228\">Si la base de datos está en modo solo lectura, lo puedes arreglar ejecutando el siguiente comando para establecer el propietario y grupo en el sistema host: <code>docker exec netalertx chown -R www-data:www-data /app/db/app.db</code>.</li> </ul>",
"HelpFAQ_Cat_General_103_head": "La página de inicio de sesión no aparece, incluso después de cambiar la contraseña.",
"HelpFAQ_Cat_General_103_text": "Además de la contraseña, el archivo de configuración debe contener <span class=\"text-danger help_faq_code\">/app/config/app.conf</span> además el parámetro <span class=\"text-danger help_faq_code\">PIALERT_WEB_PROTECTION</span> debe ajustarse a <span class=\"text-danger help_faq_code\">True</span>.",
"HelpFAQ_Cat_Network_600_head": "¿Para qué sirve esta sección?",
"HelpFAQ_Cat_Network_600_text": "Esta página debería ofrecerle la posibilidad de asignar los dispositivos de su red. Para ello, puede crear uno o varios conmutadores, WLAN, routers, etc., proporcionarles un número de puerto si es necesario y asignarles dispositivos ya detectados. Esta asignación se realiza en la vista detallada del dispositivo a asignar. Así podrás determinar rápidamente a qué puerto está conectado un host y si está en línea. Lea <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\">esta guía</a> para obtener más información.",
"HelpFAQ_Cat_Network_601_head": "¿Hay otros documentos?",
"HelpFAQ_Cat_Network_601_text": "¡Sí, los hay! Marque <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/\">todos los documentos</a> para más información.",
"HelpFAQ_Cat_Presence_400_head": "Los dispositivos se muestran con un marcador amarillo y la nota \"evento faltante\".",
"HelpFAQ_Cat_Presence_400_text": "Si esto ocurre, tiene la opci\u00f3n de borrar los eventos del dispositivo en cuesti\u00f3n (vista detallada). Otra posibilidad ser\u00eda encender el dispositivo y esperar a que NetAlertX detecte el dispositivo como \"en l\u00ednea\" con el siguiente escaneo y luego simplemente apagarlo de nuevo NetAlertX deber\u00eda ahora anotar correctamente el estado del dispositivo en la base de datos con el siguiente escaneo.",
"HelpFAQ_Cat_Presence_401_head": "Un dispositivo se muestra como presente aunque est\u00e9 \"Offline\".",
"HelpFAQ_Cat_Presence_401_text": "Si esto ocurre, tiene la posibilidad de borrar los eventos del dispositivo en cuesti\u00f3n (vista de detalles). Otra posibilidad ser\u00eda encender el dispositivo y esperar hasta que NetAlertX reconozca el dispositivo como \"en l\u00ednea\" con el siguiente escaneo y, a continuaci\u00f3n, simplemente apagar el dispositivo de nuevo. Ahora NetAlertX deber\u00eda anotar correctamente el estado del dispositivo en la base de datos con el siguiente escaneo.",
"HelpFAQ_Cat_Presence_400_text": "Si esto ocurre, tiene la opción de borrar los eventos del dispositivo en cuestión (vista detallada). Otra posibilidad sería encender el dispositivo y esperar a que NetAlertX detecte el dispositivo como \"en línea\" con el siguiente escaneo y luego simplemente apagarlo de nuevo NetAlertX debería ahora anotar correctamente el estado del dispositivo en la base de datos con el siguiente escaneo.",
"HelpFAQ_Cat_Presence_401_head": "Un dispositivo se muestra como presente aunque esté \"Offline\".",
"HelpFAQ_Cat_Presence_401_text": "Si esto ocurre, tiene la posibilidad de borrar los eventos del dispositivo en cuestión (vista de detalles). Otra posibilidad sería encender el dispositivo y esperar hasta que NetAlertX reconozca el dispositivo como \"en línea\" con el siguiente escaneo y, a continuación, simplemente apagar el dispositivo de nuevo. Ahora NetAlertX debería anotar correctamente el estado del dispositivo en la base de datos con el siguiente escaneo.",
"HelpFAQ_Title": "Ayuda / FAQ",
"LOADED_PLUGINS_description": "\u00bfQu\u00e9 plugins cargar?. Agregar plugins puede ralentizar la aplicaci\u00f3n. Obt\u00e9n m\u00e1s informaci\u00f3n sobre los complementos que deben habilitarse, los tipos o las opciones de escaneo en los documentos de <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/front/plugins#readme\">plugins</a>. Los plugins descargados perder\u00e1n tu configuraci\u00f3n. Solo se pueden descargar los complementos <code>deshabilitados</code>.",
"LOADED_PLUGINS_description": "¿Qué plugins cargar?. Agregar plugins puede ralentizar la aplicación. Obtén más información sobre los complementos que deben habilitarse, los tipos o las opciones de escaneo en los documentos de <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/front/plugins#readme\">plugins</a>. Los plugins descargados perderán tu configuración. Solo se pueden descargar los complementos <code>deshabilitados</code>.",
"LOADED_PLUGINS_name": "Plugins cargados",
"LOG_LEVEL_description": "Esto har\u00e1 que el registro tenga m\u00e1s informaci\u00f3n. Util para depurar que eventos se van guardando en la base de datos.",
"LOG_LEVEL_description": "Esto hará que el registro tenga más información. Util para depurar que eventos se van guardando en la base de datos.",
"LOG_LEVEL_name": "Imprimir registros adicionales",
"Loading": "Cargando...",
"Login_Box": "Ingrese su contrase\u00f1a",
"Login_Default_PWD": "La contrase\u00f1a por defecto \"123456\" sigue activa.",
"Login_Psw-box": "Contrase\u00f1a",
"Login_Psw_alert": "\u00a1Alerta de Contrase\u00f1a!",
"Login_Box": "Ingrese su contraseña",
"Login_Default_PWD": "La contraseña por defecto \"123456\" sigue activa.",
"Login_Psw-box": "Contraseña",
"Login_Psw_alert": "¡Alerta de Contraseña!",
"Login_Psw_folder": "en la carpeta config.",
"Login_Psw_new": "nueva_contrase\u00f1a",
"Login_Psw_run": "Para cambiar contrase\u00f1a ejecute:",
"Login_Psw_new": "nueva_contraseña",
"Login_Psw_run": "Para cambiar contraseña ejecute:",
"Login_Remember": "Recordar",
"Login_Remember_small": "(v\u00e1lido por 7 d\u00edas)",
"Login_Remember_small": "(válido por 7 días)",
"Login_Submit": "Ingresar",
"Login_Toggle_Alert_headline": "Alerta de Contrase\u00f1a!",
"Login_Toggle_Info": "Informaci\u00f3n sobre la contrase\u00f1a",
"Login_Toggle_Info_headline": "Informaci\u00f3n sobre la contrase\u00f1a",
"Login_Toggle_Alert_headline": "Alerta de Contraseña!",
"Login_Toggle_Info": "Información sobre la contraseña",
"Login_Toggle_Info_headline": "Información sobre la contraseña",
"MQTT_BROKER_description": "URL del host MQTT (no incluya <code>http://</code> o <code>https://</code>).",
"MQTT_BROKER_name": "URL del broker MQTT",
"MQTT_DELAY_SEC_description": "Un peque\u00f1o truco: retrase la adici\u00f3n a la cola en caso de que el proceso se reinicie y los procesos de publicaci\u00f3n anteriores se anulen (se necesitan ~<code>2</code>s para actualizar la configuraci\u00f3n de un sensor en el intermediario). Probado con <code>2</code>-<code>3</code> segundos de retraso. Este retraso solo se aplica cuando se crean dispositivos (durante el primer bucle de notificaci\u00f3n). No afecta los escaneos o notificaciones posteriores.",
"MQTT_DELAY_SEC_description": "Un pequeño truco: retrase la adición a la cola en caso de que el proceso se reinicie y los procesos de publicación anteriores se anulen (se necesitan ~<code>2</code>s para actualizar la configuración de un sensor en el intermediario). Probado con <code>2</code>-<code>3</code> segundos de retraso. Este retraso solo se aplica cuando se crean dispositivos (durante el primer bucle de notificación). No afecta los escaneos o notificaciones posteriores.",
"MQTT_DELAY_SEC_name": "Retraso de MQTT por dispositivo",
"MQTT_PASSWORD_description": "Contrase\u00f1a utilizada para iniciar sesi\u00f3n en su instancia de agente de MQTT.",
"MQTT_PASSWORD_name": "Contrase\u00f1a de MQTT",
"MQTT_PASSWORD_description": "Contraseña utilizada para iniciar sesión en su instancia de agente de MQTT.",
"MQTT_PASSWORD_name": "Contraseña de MQTT",
"MQTT_PORT_description": "Puerto donde escucha el broker MQTT. Normalmente <code>1883</code>.",
"MQTT_PORT_name": "Puerto del broker MQTT",
"MQTT_QOS_description": "Configuraci\u00f3n de calidad de servicio para el env\u00edo de mensajes MQTT. <code>0</code>: baja calidad a <code>2</code>: alta calidad. Cuanto mayor sea la calidad, mayor ser\u00e1 el retraso.",
"MQTT_QOS_description": "Configuración de calidad de servicio para el envío de mensajes MQTT. <code>0</code>: baja calidad a <code>2</code>: alta calidad. Cuanto mayor sea la calidad, mayor será el retraso.",
"MQTT_QOS_name": "Calidad de servicio MQTT",
"MQTT_USER_description": "Nombre de usuario utilizado para iniciar sesi\u00f3n en su instancia de agente de MQTT.",
"MQTT_USER_description": "Nombre de usuario utilizado para iniciar sesión en su instancia de agente de MQTT.",
"MQTT_USER_name": "Usuario de MQTT",
"MQTT_display_name": "MQTT",
"MQTT_icon": "<i class=\"fa fa-square-rss\"></i>",
"Maintenance_Running_Version": "Versi\u00f3n instalada",
"Maintenance_Status": "Situaci\u00f3n",
"Maintenance_Running_Version": "Versión instalada",
"Maintenance_Status": "Situación",
"Maintenance_Title": "Herramientas de mantenimiento",
"Maintenance_Tool_ExportCSV": "Exportaci\u00f3n CSV",
"Maintenance_Tool_ExportCSV_noti": "Exportaci\u00f3n CSV",
"Maintenance_Tool_ExportCSV_noti_text": "\u00bfEst\u00e1 seguro de que quiere generar un archivo CSV?",
"Maintenance_Tool_ExportCSV_text": "Genere un archivo CSV (valor separado por comas) que contenga la lista de Dispositivos incluyendo las relaciones de red entre los Nodos de red y los dispositivos conectados. Tambi\u00e9n puedes activarlo accediendo a esta URL <code>your NetAlertX url/php/server/devices.php?action=ExportCSV</code> o activando el plugin <a href=\"settings.php#CSVBCKP_header\">Copia de seguridad CSV</a>.",
"Maintenance_Tool_ImportCSV": "Importaci\u00f3n CSV",
"Maintenance_Tool_ImportCSV_noti": "Importaci\u00f3n CSV",
"Maintenance_Tool_ImportCSV_noti_text": "\u00bfEst\u00e1 seguro de que quiere importar el archivo CSV? Esto sobrescribir\u00e1 completamente los dispositivos de su base de datos.",
"Maintenance_Tool_ImportCSV_text": "Antes de usar esta funci\u00f3n, haga una copia de seguridad. Importe un archivo CSV (valor separado por comas) que contiene la lista de dispositivos, incluidas las relaciones de red entre nodos de red y dispositivos conectados. Para hacer eso, coloque el archivo CSV llamado <b> devices.csv </b> en su carpeta <b>/config </b>.",
"Maintenance_Tool_ExportCSV": "Exportación CSV",
"Maintenance_Tool_ExportCSV_noti": "Exportación CSV",
"Maintenance_Tool_ExportCSV_noti_text": "¿Está seguro de que quiere generar un archivo CSV?",
"Maintenance_Tool_ExportCSV_text": "Genere un archivo CSV (valor separado por comas) que contenga la lista de Dispositivos incluyendo las relaciones de red entre los Nodos de red y los dispositivos conectados. También puedes activarlo accediendo a esta URL <code>your NetAlertX url/php/server/devices.php?action=ExportCSV</code> o activando el plugin <a href=\"settings.php#CSVBCKP_header\">Copia de seguridad CSV</a>.",
"Maintenance_Tool_ImportCSV": "Importación CSV",
"Maintenance_Tool_ImportCSV_noti": "Importación CSV",
"Maintenance_Tool_ImportCSV_noti_text": "¿Está seguro de que quiere importar el archivo CSV? Esto sobrescribirá completamente los dispositivos de su base de datos.",
"Maintenance_Tool_ImportCSV_text": "Antes de usar esta función, haga una copia de seguridad. Importe un archivo CSV (valor separado por comas) que contiene la lista de dispositivos, incluidas las relaciones de red entre nodos de red y dispositivos conectados. Para hacer eso, coloque el archivo CSV llamado <b> devices.csv </b> en su carpeta <b>/config </b>.",
"Maintenance_Tool_arpscansw": "Activar arp-scan (on/off)",
"Maintenance_Tool_arpscansw_noti": "Activar arp-scan on or off",
"Maintenance_Tool_arpscansw_noti_text": "Cuando el escaneo se ha apagado, permanece apagado hasta que se active nuevamente.",
"Maintenance_Tool_arpscansw_text": "Encender o desactivar el arp-scan. Cuando el escaneo se ha apagado, permanece apagado hasta que se active nuevamente. Los escaneos activos no se cancelan.",
"Maintenance_Tool_backup": "Respaldar DB",
"Maintenance_Tool_backup_noti": "Respaldar DB",
"Maintenance_Tool_backup_noti_text": "\u00bfEst\u00e1s seguro de que quieres exactos la copia de seguridad de DB? Aseg\u00farese de que ning\u00fan escaneo se est\u00e9 ejecutando actualmente.",
"Maintenance_Tool_backup_text": "Las copias de seguridad de la base de datos se encuentran en el directorio de la base de datos como una Zip-Archive, nombrada con la fecha de creaci\u00f3n. No hay un n\u00famero m\u00e1ximo de copias de seguridad.",
"Maintenance_Tool_backup_noti_text": "¿Estás seguro de que quieres exactos la copia de seguridad de DB? Asegúrese de que ningún escaneo se esté ejecutando actualmente.",
"Maintenance_Tool_backup_text": "Las copias de seguridad de la base de datos se encuentran en el directorio de la base de datos como una Zip-Archive, nombrada con la fecha de creación. No hay un número máximo de copias de seguridad.",
"Maintenance_Tool_check_visible": "Desactivar para ocultar columna.",
"Maintenance_Tool_darkmode": "Cambiar Modo (Dark/Light)",
"Maintenance_Tool_darkmode_noti": "Cambiar Modo",
"Maintenance_Tool_darkmode_noti_text": "Despu\u00e9s del cambio de tema, la p\u00e1gina intenta volver a cargar para activar el cambio. Si es necesario, el cach\u00e9 debe ser eliminado.",
"Maintenance_Tool_darkmode_text": "Alternar entre el modo oscuro y el modo de luz. Si el interruptor no funciona correctamente, intente borrar el cach\u00e9 del navegador. El cambio tiene lugar en el lado del servidor, por lo que afecta todos los dispositivos en uso.",
"Maintenance_Tool_darkmode_noti_text": "Después del cambio de tema, la página intenta volver a cargar para activar el cambio. Si es necesario, el caché debe ser eliminado.",
"Maintenance_Tool_darkmode_text": "Alternar entre el modo oscuro y el modo de luz. Si el interruptor no funciona correctamente, intente borrar el caché del navegador. El cambio tiene lugar en el lado del servidor, por lo que afecta todos los dispositivos en uso.",
"Maintenance_Tool_del_ActHistory": "Eliminar la actividad de la red",
"Maintenance_Tool_del_ActHistory_noti": "Borrar la actividad de la red",
"Maintenance_Tool_del_ActHistory_noti_text": "\u00bfEst\u00e1 seguro de restablecer la actividad de la red?",
"Maintenance_Tool_del_ActHistory_text": "El gr\u00e1fico de actividad de la red se resetea. Esto no afecta a los eventos.",
"Maintenance_Tool_del_ActHistory_noti_text": "¿Está seguro de restablecer la actividad de la red?",
"Maintenance_Tool_del_ActHistory_text": "El gráfico de actividad de la red se resetea. Esto no afecta a los eventos.",
"Maintenance_Tool_del_alldev": "Eliminar todos los dispositivos",
"Maintenance_Tool_del_alldev_noti": "Eliminar dispositivos",
"Maintenance_Tool_del_alldev_noti_text": "\u00bfEst\u00e1s seguro de que quieres eliminar todos los dispositivos?",
"Maintenance_Tool_del_alldev_text": "Antes de usar esta funci\u00f3n, haga una copia de seguridad. La eliminaci\u00f3n no se puede deshacer. Todos los dispositivos se eliminar\u00e1n de la base de datos.",
"Maintenance_Tool_del_alldev_noti_text": "¿Estás seguro de que quieres eliminar todos los dispositivos?",
"Maintenance_Tool_del_alldev_text": "Antes de usar esta función, haga una copia de seguridad. La eliminación no se puede deshacer. Todos los dispositivos se eliminarán de la base de datos.",
"Maintenance_Tool_del_allevents": "Eliminar todo (Restablecer historial)",
"Maintenance_Tool_del_allevents30": "Eliminar eventos antiguos (30 d\u00edas)",
"Maintenance_Tool_del_allevents30": "Eliminar eventos antiguos (30 días)",
"Maintenance_Tool_del_allevents30_noti": "Eliminar eventos",
"Maintenance_Tool_del_allevents30_noti_text": "\u00bfEst\u00e1 seguro de eliminar todos los eventos mayores a 30 d\u00edas? Esto restablece la presencia de todos los dispositivos.",
"Maintenance_Tool_del_allevents30_text": "Antes de usar esta funci\u00f3n, haga una copia de seguridad. La eliminaci\u00f3n no se puede deshacer. Se eliminar\u00e1n todos los eventos mayores a 30 d\u00edas en la base de datos. En ese momento se restablecer\u00e1 la presencia de todos los dispositivos. Esto puede conducir a sesiones no v\u00e1lidas. Esto significa que los dispositivos se muestran como \"presentes\", aunque est\u00e1n fuera de l\u00ednea. Un escaneo mientras el dispositivo en cuesti\u00f3n est\u00e1 en l\u00ednea resuelve el problema.",
"Maintenance_Tool_del_allevents30_noti_text": "¿Está seguro de eliminar todos los eventos mayores a 30 días? Esto restablece la presencia de todos los dispositivos.",
"Maintenance_Tool_del_allevents30_text": "Antes de usar esta función, haga una copia de seguridad. La eliminación no se puede deshacer. Se eliminarán todos los eventos mayores a 30 días en la base de datos. En ese momento se restablecerá la presencia de todos los dispositivos. Esto puede conducir a sesiones no válidas. Esto significa que los dispositivos se muestran como \"presentes\", aunque están fuera de línea. Un escaneo mientras el dispositivo en cuestión está en línea resuelve el problema.",
"Maintenance_Tool_del_allevents_noti": "Eliminar eventos",
"Maintenance_Tool_del_allevents_noti_text": "\u00bfEst\u00e1s seguro de que quieres eliminar todos los eventos? Esto restablece la presencia de todos los dispositivos.",
"Maintenance_Tool_del_allevents_text": "Antes de usar esta funci\u00f3n, haga una copia de seguridad. La eliminaci\u00f3n no se puede deshacer. Se eliminar\u00e1n todos los eventos en la base de datos. En ese momento se restablecer\u00e1 la presencia de todos los dispositivos. Esto puede conducir a sesiones no v\u00e1lidas. Esto significa que los dispositivos se muestran como \"presentes\", aunque est\u00e1n fuera de l\u00ednea. Un escaneo mientras el dispositivo en cuesti\u00f3n est\u00e1 en l\u00ednea resuelve el problema.",
"Maintenance_Tool_del_empty_macs": "Eliminar dispositivos con MACs vac\u00edos",
"Maintenance_Tool_del_allevents_noti_text": "¿Estás seguro de que quieres eliminar todos los eventos? Esto restablece la presencia de todos los dispositivos.",
"Maintenance_Tool_del_allevents_text": "Antes de usar esta función, haga una copia de seguridad. La eliminación no se puede deshacer. Se eliminarán todos los eventos en la base de datos. En ese momento se restablecerá la presencia de todos los dispositivos. Esto puede conducir a sesiones no válidas. Esto significa que los dispositivos se muestran como \"presentes\", aunque están fuera de línea. Un escaneo mientras el dispositivo en cuestión está en línea resuelve el problema.",
"Maintenance_Tool_del_empty_macs": "Eliminar dispositivos con MACs vacíos",
"Maintenance_Tool_del_empty_macs_noti": "Eliminar dispositivos",
"Maintenance_Tool_del_empty_macs_noti_text": "\u00bfEst\u00e1s seguro de que quieres eliminar todos los dispositivos con direcciones MAC vac\u00edas? <br> (tal vez prefiera archivarlo)",
"Maintenance_Tool_del_empty_macs_text": "Antes de usar esta funci\u00f3n, haga una copia de seguridad. La eliminaci\u00f3n no se puede deshacer. Todos los dispositivos sin Mac se eliminar\u00e1n de la base de datos.",
"Maintenance_Tool_del_empty_macs_noti_text": "¿Estás seguro de que quieres eliminar todos los dispositivos con direcciones MAC vacías? <br> (tal vez prefiera archivarlo)",
"Maintenance_Tool_del_empty_macs_text": "Antes de usar esta función, haga una copia de seguridad. La eliminación no se puede deshacer. Todos los dispositivos sin Mac se eliminarán de la base de datos.",
"Maintenance_Tool_del_selecteddev": "Borrar dispositivos seleccionados",
"Maintenance_Tool_del_selecteddev_text": "Antes de utilizar esta funci\u00f3n, haga una copia de seguridad. La eliminaci\u00f3n no se puede deshacer. Los dispositivos seleccionados se eliminar\u00e1n de la base de datos.",
"Maintenance_Tool_del_selecteddev_text": "Antes de utilizar esta función, haga una copia de seguridad. La eliminación no se puede deshacer. Los dispositivos seleccionados se eliminarán de la base de datos.",
"Maintenance_Tool_del_unknowndev": "Eliminar dispositivos (desconocidos)",
"Maintenance_Tool_del_unknowndev_noti": "Eliminar dispositivos (desconocidos)",
"Maintenance_Tool_del_unknowndev_noti_text": "\u00bfEst\u00e1s seguro de que quieres eliminar todos los dispositivos (desconocidos)?",
"Maintenance_Tool_del_unknowndev_text": "Antes de usar esta funci\u00f3n, haga una copia de seguridad. La eliminaci\u00f3n no se puede deshacer. Todos los dispositivos nombrados (desconocidos) se eliminar\u00e1n de la base de datos.",
"Maintenance_Tool_displayed_columns_text": "Cambia la visibilidad y el orden de las columnas en la p\u00e1gina <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i> Dispositivos</b></a>.",
"Maintenance_Tool_del_unknowndev_noti_text": "¿Estás seguro de que quieres eliminar todos los dispositivos (desconocidos)?",
"Maintenance_Tool_del_unknowndev_text": "Antes de usar esta función, haga una copia de seguridad. La eliminación no se puede deshacer. Todos los dispositivos nombrados (desconocidos) se eliminarán de la base de datos.",
"Maintenance_Tool_displayed_columns_text": "Cambia la visibilidad y el orden de las columnas en la página <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i> Dispositivos</b></a>.",
"Maintenance_Tool_drag_me": "Coger para rearrastrar columnas.",
"Maintenance_Tool_order_columns_text": "Maintenance_Tool_order_columns_text",
"Maintenance_Tool_purgebackup": "Purgar Respaldos",
"Maintenance_Tool_purgebackup_noti": "Purgar Respaldos",
"Maintenance_Tool_purgebackup_noti_text": "\u00bfEst\u00e1 seguro de borrar todas las copias de seguridad excepto las 3 \u00faltimas?",
"Maintenance_Tool_purgebackup_text": "Todas las copias de seguridad ser\u00e1n eliminadas, excepto las 3 \u00faltimas.",
"Maintenance_Tool_purgebackup_noti_text": "¿Está seguro de borrar todas las copias de seguridad excepto las 3 últimas?",
"Maintenance_Tool_purgebackup_text": "Todas las copias de seguridad serán eliminadas, excepto las 3 últimas.",
"Maintenance_Tool_restore": "Restaurar DB",
"Maintenance_Tool_restore_noti": "Restaurar DB",
"Maintenance_Tool_restore_noti_text": "\u00bfEst\u00e1s seguro de que quieres hacer exactos la restauraci\u00f3n de DB? Aseg\u00farese de que ning\u00fan escaneo se est\u00e9 ejecutando actualmente.",
"Maintenance_Tool_restore_text": "La \u00faltima copia de seguridad se puede restaurar a trav\u00e9s del bot\u00f3n, pero las copias de seguridad anteriores solo se pueden restaurar manualmente. Despu\u00e9s de la restauraci\u00f3n, realice una verificaci\u00f3n de integridad en la base de datos por seguridad, en caso de que el DB estuviera actualmente en acceso de escritura cuando se cre\u00f3 la copia de seguridad.",
"Maintenance_Tool_restore_noti_text": "¿Estás seguro de que quieres hacer exactos la restauración de DB? Asegúrese de que ningún escaneo se esté ejecutando actualmente.",
"Maintenance_Tool_restore_text": "La última copia de seguridad se puede restaurar a través del botón, pero las copias de seguridad anteriores solo se pueden restaurar manualmente. Después de la restauración, realice una verificación de integridad en la base de datos por seguridad, en caso de que el DB estuviera actualmente en acceso de escritura cuando se creó la copia de seguridad.",
"Maintenance_Tool_upgrade_database_noti": "Actualizar la base de datos",
"Maintenance_Tool_upgrade_database_noti_text": "\u00bfEst\u00e1s seguro de que quieres actualizar la base de datos? <br> (tal vez prefieras archivarla)",
"Maintenance_Tool_upgrade_database_text": "Este bot\u00f3n actualizar\u00e1 la base de datos para habilitar la actividad de la red en las \u00faltimas 12 horas. Haga una copia de seguridad de su base de datos en caso de problemas.",
"Maintenance_Tool_upgrade_database_noti_text": "¿Estás seguro de que quieres actualizar la base de datos? <br> (tal vez prefieras archivarla)",
"Maintenance_Tool_upgrade_database_text": "Este botón actualizará la base de datos para habilitar la actividad de la red en las últimas 12 horas. Haga una copia de seguridad de su base de datos en caso de problemas.",
"Maintenance_Tools_Tab_BackupRestore": "Respaldo / Restaurar",
"Maintenance_Tools_Tab_Logging": "Registros",
"Maintenance_Tools_Tab_Settings": "Ajustes",
"Maintenance_Tools_Tab_Tools": "Herramientas",
"Maintenance_Tools_Tab_UISettings": "Ajustes de interfaz",
"Maintenance_arp_status": "Estado de la exploraci\u00f3n",
"Maintenance_arp_status_off": "est\u00e1 actualmente deshabilitado",
"Maintenance_arp_status_on": "escaneo(s) actualmente en ejecuci\u00f3n",
"Maintenance_arp_status": "Estado de la exploración",
"Maintenance_arp_status_off": "está actualmente deshabilitado",
"Maintenance_arp_status_on": "escaneo(s) actualmente en ejecución",
"Maintenance_built_on": "Creada",
"Maintenance_current_version": "No hay actualizaciones disponibles. Comprueba en que <a href=\"https://github.com/jokob-sk/NetAlertX/issues/138\" target=\"_blank\">se est\u00e1 trabajando</a>.",
"Maintenance_current_version": "No hay actualizaciones disponibles. Comprueba en que <a href=\"https://github.com/jokob-sk/NetAlertX/issues/138\" target=\"_blank\">se está trabajando</a>.",
"Maintenance_database_backup": "Copias de seguridad de BD",
"Maintenance_database_backup_found": "copia(s) de seguridad encontrada(s)",
"Maintenance_database_backup_total": "Uso total de disco",
"Maintenance_database_lastmod": "\u00daltima modificaci\u00f3n",
"Maintenance_database_lastmod": "Última modificación",
"Maintenance_database_path": "Ruta de la base de datos",
"Maintenance_database_rows": "Tabla (Filas)",
"Maintenance_database_size": "Tama\u00f1o de base de datos",
"Maintenance_database_size": "Tamaño de base de datos",
"Maintenance_lang_selector_apply": "Aplicar",
"Maintenance_lang_selector_empty": "Elija un idioma",
"Maintenance_lang_selector_lable": "Seleccione su idioma",
"Maintenance_lang_selector_text": "El cambio se produce en el lado del cliente, por lo que s\u00f3lo afecta al navegador actual.",
"Maintenance_new_version": "\ud83c\udd95 Una nueva versi\u00f3n est\u00e1 disponible. Comprueba las <a href=\"https://github.com/jokob-sk/NetAlertX/releases\" target=\"_blank\">notas de lanzamiento</a>.",
"Maintenance_lang_selector_text": "El cambio se produce en el lado del cliente, por lo que sólo afecta al navegador actual.",
"Maintenance_new_version": "🆕 Una nueva versión está disponible. Comprueba las <a href=\"https://github.com/jokob-sk/NetAlertX/releases\" target=\"_blank\">notas de lanzamiento</a>.",
"Maintenance_themeselector_apply": "Aplicar",
"Maintenance_themeselector_empty": "Elige un tema",
"Maintenance_themeselector_lable": "Seleccionar tema",
"Maintenance_themeselector_text": "El cambio se produce en el lado del servidor, por lo que afecta a todos los dispositivos en uso.",
"Maintenance_version": "Actualizaciones de la aplicaci\u00f3n",
"NETWORK_DEVICE_TYPES_description": "Qu\u00e9 tipos de dispositivos pueden usarse como dispositivos de red en la vista Red. El tipo de dispositivo debe coincidir exactamente con la configuraci\u00f3n <code> Tipo </code> en un dispositivo espec\u00edfico en los Detalles del dispositivo. No elimine los tipos existentes, solo agregue nuevos.",
"Maintenance_version": "Actualizaciones de la aplicación",
"NETWORK_DEVICE_TYPES_description": "Qué tipos de dispositivos pueden usarse como dispositivos de red en la vista Red. El tipo de dispositivo debe coincidir exactamente con la configuración <code> Tipo </code> en un dispositivo específico en los Detalles del dispositivo. No elimine los tipos existentes, solo agregue nuevos.",
"NETWORK_DEVICE_TYPES_name": "Tipos de dispositivos de red",
"NTFY_HOST_description": "URL de host NTFY que comienza con <code>http://</code> o <code>https://</code>. Puede usar la instancia alojada en <a target=\"_blank\" href=\"https://ntfy.sh/\">https://ntfy.sh</a> simplemente ingresando <code>https://ntfy. sh</c\u00f3digo>.",
"NTFY_HOST_description": "URL de host NTFY que comienza con <code>http://</code> o <code>https://</code>. Puede usar la instancia alojada en <a target=\"_blank\" href=\"https://ntfy.sh/\">https://ntfy.sh</a> simplemente ingresando <code>https://ntfy. sh</código>.",
"NTFY_HOST_name": "URL del host NTFY",
"NTFY_PASSWORD_description": "Ingrese la contrase\u00f1a si necesita (host) una instancia con autenticaci\u00f3n habilitada.",
"NTFY_PASSWORD_name": "Contrase\u00f1a de NTFY",
"NTFY_PASSWORD_description": "Ingrese la contraseña si necesita (host) una instancia con autenticación habilitada.",
"NTFY_PASSWORD_name": "Contraseña de NTFY",
"NTFY_TOPIC_description": "Tu tema secreto.",
"NTFY_TOPIC_name": "Tema de NTFY",
"NTFY_USER_description": "Ingrese usuario si necesita (alojar) una instancia con autenticaci\u00f3n habilitada.",
"NTFY_USER_description": "Ingrese usuario si necesita (alojar) una instancia con autenticación habilitada.",
"NTFY_USER_name": "Usuario de NTFY",
"NTFY_display_name": "NTFY",
"NTFY_icon": "<i class=\"fa fa-terminal\"></i>",
@@ -488,7 +493,7 @@
"Navigation_HelpFAQ": "Ayuda / FAQ",
"Navigation_Integrations": "Integraciones",
"Navigation_Maintenance": "Mantenimiento",
"Navigation_Monitoring": "Supervisi\u00f3n",
"Navigation_Monitoring": "Supervisión",
"Navigation_Network": "Red",
"Navigation_Notifications": "Notificaciones",
"Navigation_Plugins": "Plugins",
@@ -499,14 +504,14 @@
"Navigation_Workflows": "Flujo de trabajo",
"Network_Assign": "Conectar al nodo de <i class=\"fa fa-server\"></i> red",
"Network_Cant_Assign": "No se puede asignar el nodo principal de Internet como nodo secundario.",
"Network_Configuration_Error": "Error en la configuraci\u00f3n",
"Network_Configuration_Error": "Error en la configuración",
"Network_Connected": "Dispositivos conectados",
"Network_ManageAdd": "A\u00f1adir dispositivo",
"Network_ManageAdd": "Añadir dispositivo",
"Network_ManageAdd_Name": "Nombre del dispositivo",
"Network_ManageAdd_Name_text": "Nombre sin caracteres especiales",
"Network_ManageAdd_Port": "Recuento de puertos",
"Network_ManageAdd_Port_text": "dejar en blanco para WiFi y Powerline",
"Network_ManageAdd_Submit": "A\u00f1adir dispositivo",
"Network_ManageAdd_Submit": "Añadir dispositivo",
"Network_ManageAdd_Type": "Tipo de dispositivo",
"Network_ManageAdd_Type_text": "-- Seleccionar tipo --",
"Network_ManageAssign": "Asignar",
@@ -525,20 +530,20 @@
"Network_ManageEdit_Submit": "Guardar los cambios",
"Network_ManageEdit_Type": "Nuevo tipo de dispositivo",
"Network_ManageEdit_Type_text": "-- Seleccione tipo --",
"Network_ManageLeaf": "Gestionar asignaci\u00f3n",
"Network_ManageLeaf": "Gestionar asignación",
"Network_ManageUnassign": "Desasignar",
"Network_NoAssignedDevices": "Este nodo de red no tiene ning\u00fan dispositivo asignado (nodos hoja). Asigna uno desde abajo o ve a la pesta\u00f1a <b><i class=\"fa fa-info-circle\"></i> Detalles</b> de cualquier dispositivo en <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i> Dispositivos</b></a>, y as\u00edgnalo a un <b><i class=\"fa fa-server\"></i> Nodo (MAC)</b> de red y <b><i class=\"fa fa-ethernet\"></i> Puerto</b> all\u00ed.",
"Network_NoAssignedDevices": "Este nodo de red no tiene ningún dispositivo asignado (nodos hoja). Asigna uno desde abajo o ve a la pestaña <b><i class=\"fa fa-info-circle\"></i> Detalles</b> de cualquier dispositivo en <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i> Dispositivos</b></a>, y asígnalo a un <b><i class=\"fa fa-server\"></i> Nodo (MAC)</b> de red y <b><i class=\"fa fa-ethernet\"></i> Puerto</b> allí.",
"Network_NoDevices": "No hay dispositivos que configurar",
"Network_Node": "Nodo de red",
"Network_Node_Name": "Nombre de nodo",
"Network_Parent": "Dispositivo primario de la red",
"Network_Root": "Nodo principal",
"Network_Root_Not_Configured": "Seleccione un tipo de dispositivo de red, por ejemplo un <b>Gateway</b>, en el campo <b>Tipo</b> del <a href=\"deviceDetails.php?mac=Internet\">dispositivo principal de Internet</a> para empezar a configurar esta pantalla. <br/><br/>Puede encontrar m\u00e1s documentaci\u00f3n en la gu\u00eda <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\" target=\"_blank\">\u00bfC\u00f3mo configurar su p\u00e1gina de Red?</a>",
"Network_Root_Not_Configured": "Seleccione un tipo de dispositivo de red, por ejemplo un <b>Gateway</b>, en el campo <b>Tipo</b> del <a href=\"deviceDetails.php?mac=Internet\">dispositivo principal de Internet</a> para empezar a configurar esta pantalla. <br/><br/>Puede encontrar más documentación en la guía <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\" target=\"_blank\">¿Cómo configurar su página de Red?</a>",
"Network_Root_Unconfigurable": "Root no configurable",
"Network_Table_Hostname": "Nombre de host",
"Network_Table_IP": "Direcci\u00f3n IP",
"Network_Table_IP": "Dirección IP",
"Network_Table_State": "Estado",
"Network_Title": "Descripci\u00f3n general de la red",
"Network_Title": "Descripción general de la red",
"Network_UnassignedDevices": "Dispositivos sin asignar",
"Notifications_All": "Todas las notificaciones",
"Notifications_Mark_All_Read": "Marcar todo como leido",
@@ -558,42 +563,42 @@
"Plugins_Objects": "Objetos del Plugin",
"Plugins_Out_of": "de",
"Plugins_Unprocessed_Events": "Eventos sin procesar",
"Plugins_no_control": "No se ha encontrado ning\u00fan control para el formulario, para que muestre este valor.",
"Presence_CalHead_day": "d\u00eda",
"Plugins_no_control": "No se ha encontrado ningún control para el formulario, para que muestre este valor.",
"Presence_CalHead_day": "día",
"Presence_CalHead_lang": "es-es",
"Presence_CalHead_month": "mes",
"Presence_CalHead_quarter": "trimestre",
"Presence_CalHead_week": "semana",
"Presence_CalHead_year": "a\u00f1o",
"Presence_CalHead_year": "año",
"Presence_CallHead_Devices": "Dispositivos",
"Presence_Loading": "Cargando...",
"Presence_Shortcut_AllDevices": "Mis dispositivos",
"Presence_Shortcut_Archived": "Archivado(s)",
"Presence_Shortcut_Connected": "Conectado(s)",
"Presence_Shortcut_Devices": "Dispositivos",
"Presence_Shortcut_DownAlerts": "Alerta(s) de ca\u00edda(s)",
"Presence_Shortcut_DownAlerts": "Alerta(s) de caída(s)",
"Presence_Shortcut_Favorites": "Favorito(s)",
"Presence_Shortcut_NewDevices": "Nuevo(s)",
"Presence_Title": "Historial por dispositivo",
"REPORT_APPRISE_description": "Habilitar el env\u00edo de notificaciones a trav\u00e9s de <a target=\"_blank\" href=\"https://hub.docker.com/r/caronc/apprise\">Apprise</a>.",
"REPORT_APPRISE_description": "Habilitar el envío de notificaciones a través de <a target=\"_blank\" href=\"https://hub.docker.com/r/caronc/apprise\">Apprise</a>.",
"REPORT_APPRISE_name": "Habilitar Apprise",
"REPORT_DASHBOARD_URL_description": "Esta URL se utiliza como base para generar enlaces en los correos electr\u00f3nicos. Ingrese la URL completa que comienza con <code>http://</code>, incluido el n\u00famero de puerto (sin barra inclinada al final <code>/</code>).",
"REPORT_DASHBOARD_URL_description": "Esta URL se utiliza como base para generar enlaces en los correos electrónicos. Ingrese la URL completa que comienza con <code>http://</code>, incluido el número de puerto (sin barra inclinada al final <code>/</code>).",
"REPORT_DASHBOARD_URL_name": "URL de NetAlertX",
"REPORT_ERROR": "La p\u00e1gina que est\u00e1 buscando no est\u00e1 disponible temporalmente, int\u00e9ntelo de nuevo despu\u00e9s de unos segundos",
"REPORT_FROM_description": "Asunto del correo electr\u00f3nico de notificaci\u00f3n.",
"REPORT_ERROR": "La página que está buscando no está disponible temporalmente, inténtelo de nuevo después de unos segundos",
"REPORT_FROM_description": "Asunto del correo electrónico de notificación.",
"REPORT_FROM_name": "Asunto del email",
"REPORT_MAIL_description": "Si est\u00e1 activada, se env\u00eda un correo electr\u00f3nico con una lista de los cambios a los que se ha suscrito. Por favor, rellene tambi\u00e9n todos los ajustes restantes relacionados con la configuraci\u00f3n SMTP a continuaci\u00f3n. Si tiene problemas, ajuste <code>LOG_LEVEL</code> a <code>debug</code> y compruebe el <a href=\"/maintenance.php#tab_Logging\">registro de errores</a>.",
"REPORT_MAIL_description": "Si está activada, se envía un correo electrónico con una lista de los cambios a los que se ha suscrito. Por favor, rellene también todos los ajustes restantes relacionados con la configuración SMTP a continuación. Si tiene problemas, ajuste <code>LOG_LEVEL</code> a <code>debug</code> y compruebe el <a href=\"/maintenance.php#tab_Logging\">registro de errores</a>.",
"REPORT_MAIL_name": "Habilitar email",
"REPORT_MQTT_description": "Habilitar el env\u00edo de notificaciones a trav\u00e9s de <a target=\"_blank\" href=\"https://www.home-assistant.io/integrations/mqtt/\">MQTT</a> a su Home Assistance.",
"REPORT_MQTT_description": "Habilitar el envío de notificaciones a través de <a target=\"_blank\" href=\"https://www.home-assistant.io/integrations/mqtt/\">MQTT</a> a su Home Assistance.",
"REPORT_MQTT_name": "Habilitar MQTT",
"REPORT_NTFY_description": "Habilitar el env\u00edo de notificaciones a trav\u00e9s de <a target=\"_blank\" href=\"https://ntfy.sh/\">NTFY</a>.",
"REPORT_NTFY_description": "Habilitar el envío de notificaciones a través de <a target=\"_blank\" href=\"https://ntfy.sh/\">NTFY</a>.",
"REPORT_NTFY_name": "Habilitar NTFY",
"REPORT_PUSHSAFER_description": "Habilitar el env\u00edo de notificaciones a trav\u00e9s de <a target=\"_blank\" href=\"https://www.pushsafer.com/\">Pushsafer</a>.",
"REPORT_PUSHSAFER_description": "Habilitar el envío de notificaciones a través de <a target=\"_blank\" href=\"https://www.pushsafer.com/\">Pushsafer</a>.",
"REPORT_PUSHSAFER_name": "Habilitar Pushsafer",
"REPORT_TITLE": "Reporte",
"REPORT_TO_description": "Direcci\u00f3n de correo electr\u00f3nico a la que se enviar\u00e1 la notificaci\u00f3n.",
"REPORT_TO_description": "Dirección de correo electrónico a la que se enviará la notificación.",
"REPORT_TO_name": "Enviar el email a",
"REPORT_WEBHOOK_description": "Habilite webhooks para notificaciones. Los webhooks lo ayudan a conectarse a muchas herramientas de terceros, como IFTTT, Zapier o <a href=\"https://n8n.io/\" target=\"_blank\">n8n</a>, por nombrar algunas. Consulte esta sencilla <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/WEBHOOK_N8N.md\" target=\"_blank\">gu\u00eda de n8n aqu\u00ed</a> para obtener comenz\u00f3. Si est\u00e1 habilitado, configure los ajustes relacionados a continuaci\u00f3n.",
"REPORT_WEBHOOK_description": "Habilite webhooks para notificaciones. Los webhooks lo ayudan a conectarse a muchas herramientas de terceros, como IFTTT, Zapier o <a href=\"https://n8n.io/\" target=\"_blank\">n8n</a>, por nombrar algunas. Consulte esta sencilla <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/WEBHOOK_N8N.md\" target=\"_blank\">guía de n8n aquí</a> para obtener comenzó. Si está habilitado, configure los ajustes relacionados a continuación.",
"REPORT_WEBHOOK_name": "Habilitar webhooks",
"RandomMAC_hover": "Autodetectado - indica si el dispositivo aleatoriza su dirección MAC.",
"Reports_Sent_Log": "Registro de informes enviados",
@@ -601,33 +606,33 @@
"SCAN_SUBNETS_name": "Subredes para escanear",
"SMTP_FORCE_SSL_description": "Forzar SSL al conectarse a su servidor SMTP",
"SMTP_FORCE_SSL_name": "Forzar SSL",
"SMTP_PASS_description": "La contrase\u00f1a del servidor SMTP.",
"SMTP_PASS_name": "Contrase\u00f1a de SMTP",
"SMTP_PORT_description": "N\u00famero de puerto utilizado para la conexi\u00f3n SMTP. Establ\u00e9zcalo en <code>0</code> si no desea utilizar un puerto al conectarse al servidor SMTP.",
"SMTP_PASS_description": "La contraseña del servidor SMTP.",
"SMTP_PASS_name": "Contraseña de SMTP",
"SMTP_PORT_description": "Número de puerto utilizado para la conexión SMTP. Establézcalo en <code>0</code> si no desea utilizar un puerto al conectarse al servidor SMTP.",
"SMTP_PORT_name": "Puerto del servidor SMTP",
"SMTP_SERVER_description": "La URL del host del servidor SMTP. Por ejemplo, <code>smtp-relay.sendinblue.com</code>. Para utilizar Gmail como servidor SMTP <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/SMTP.md\">siga esta gu\u00eda</a >",
"SMTP_SERVER_description": "La URL del host del servidor SMTP. Por ejemplo, <code>smtp-relay.sendinblue.com</code>. Para utilizar Gmail como servidor SMTP <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/SMTP.md\">siga esta guía</a >",
"SMTP_SERVER_name": "URL del servidor SMTP",
"SMTP_SKIP_LOGIN_description": "No utilice la autenticaci\u00f3n cuando se conecte al servidor SMTP.",
"SMTP_SKIP_LOGIN_name": "Omitir autenticaci\u00f3n",
"SMTP_SKIP_LOGIN_description": "No utilice la autenticación cuando se conecte al servidor SMTP.",
"SMTP_SKIP_LOGIN_name": "Omitir autenticación",
"SMTP_SKIP_TLS_description": "Deshabilite TLS cuando se conecte a su servidor SMTP.",
"SMTP_SKIP_TLS_name": "No usar TLS",
"SMTP_USER_description": "El nombre de usuario utilizado para iniciar sesi\u00f3n en el servidor SMTP (a veces, una direcci\u00f3n de correo electr\u00f3nico completa).",
"SMTP_USER_description": "El nombre de usuario utilizado para iniciar sesión en el servidor SMTP (a veces, una dirección de correo electrónico completa).",
"SMTP_USER_name": "Nombre de usuario SMTP",
"SYSTEM_TITLE": "Informaci\u00f3n del sistema",
"SYSTEM_TITLE": "Información del sistema",
"Setting_Override": "Sobreescribir el valor",
"Setting_Override_Description": "Habilitar esta opci\u00f3n anular\u00e1 un valor predeterminado proporcionado por la aplicaci\u00f3n con el valor especificado anteriormente.",
"Settings_Metadata_Toggle": "Mostrar/ocultar los metadatos de la configuraci\u00f3n.",
"Settings_Title": "<i class=\"fa fa-cog\"> Configuraci\u00f3n</i>",
"Settings_device_Scanners_desync": "\u26a0 Los horarios del esc\u00e1ner de los dispositivos no est\u00e1n sincronizados.",
"Settings_device_Scanners_desync_popup": "Los horarios de esc\u00e1neres de dispositivos (<code> *_RUN_SCHD</code> ) no son lo mismo. Esto resultar\u00e1 en notificaciones inconsistentes del dispositivo en l\u00ednea/fuera de l\u00ednea. A menos que sea as\u00ed, utilice el mismo horario para todos los habilitados.<b> \ud83d\udd0dEsc\u00e1neres de dispositivos</b> .",
"Setting_Override_Description": "Habilitar esta opción anulará un valor predeterminado proporcionado por la aplicación con el valor especificado anteriormente.",
"Settings_Metadata_Toggle": "Mostrar/ocultar los metadatos de la configuración.",
"Settings_Title": "<i class=\"fa fa-cog\"> Configuración</i>",
"Settings_device_Scanners_desync": " Los horarios del escáner de los dispositivos no están sincronizados.",
"Settings_device_Scanners_desync_popup": "Los horarios de escáneres de dispositivos (<code> *_RUN_SCHD</code> ) no son lo mismo. Esto resultará en notificaciones inconsistentes del dispositivo en línea/fuera de línea. A menos que sea así, utilice el mismo horario para todos los habilitados.<b> 🔍Escáneres de dispositivos</b> .",
"Speedtest_Results": "Resultados de la prueba de velocidad",
"Systeminfo_CPU": "CPU",
"Systeminfo_CPU_Cores": "N\u00facleos de CPU:",
"Systeminfo_CPU_Cores": "Núcleos de CPU:",
"Systeminfo_CPU_Name": "Nombre de la CPU:",
"Systeminfo_CPU_Speed": "Velocidad de la CPU:",
"Systeminfo_CPU_Temp": "Temperatura de la CPU:",
"Systeminfo_CPU_Vendor": "Proveedor de CPU:",
"Systeminfo_Client_Resolution": "Resoluci\u00f3n del navegador:",
"Systeminfo_Client_Resolution": "Resolución del navegador:",
"Systeminfo_Client_User_Agent": "Agente de usuario:",
"Systeminfo_General": "General",
"Systeminfo_General_Date": "Fecha:",
@@ -644,40 +649,40 @@
"Systeminfo_Motherboard_BIOS_Vendor": "Proveedor de BIOS:",
"Systeminfo_Motherboard_Manufactured": "Fabricado por:",
"Systeminfo_Motherboard_Name": "Nombre:",
"Systeminfo_Motherboard_Revision": "Revisi\u00f3n:",
"Systeminfo_Motherboard_Revision": "Revisión:",
"Systeminfo_Network": "Red",
"Systeminfo_Network_Accept_Encoding": "Codificaci\u00f3n aceptada:",
"Systeminfo_Network_Accept_Encoding": "Codificación aceptada:",
"Systeminfo_Network_Accept_Language": "Idioma aceptado:",
"Systeminfo_Network_Connection_Port": "Puerto de conexi\u00f3n:",
"Systeminfo_Network_Connection_Port": "Puerto de conexión:",
"Systeminfo_Network_HTTP_Host": "Host HTTP:",
"Systeminfo_Network_HTTP_Referer": "Referido HTTP:",
"Systeminfo_Network_HTTP_Referer_String": "Sin referencia HTTP",
"Systeminfo_Network_Hardware": "Hardware de red",
"Systeminfo_Network_Hardware_Interface_Mask": "M\u00e1scara de red",
"Systeminfo_Network_Hardware_Interface_Mask": "Máscara de red",
"Systeminfo_Network_Hardware_Interface_Name": "Nombre de la interfaz",
"Systeminfo_Network_Hardware_Interface_RX": "Recibido",
"Systeminfo_Network_Hardware_Interface_TX": "Transmitido",
"Systeminfo_Network_IP": "IP Internet:",
"Systeminfo_Network_IP_Connection": "Conexi\u00f3n IP:",
"Systeminfo_Network_IP_Connection": "Conexión IP:",
"Systeminfo_Network_IP_Server": "IP del servidor:",
"Systeminfo_Network_MIME": "MIME:",
"Systeminfo_Network_Request_Method": "M\u00e9todo de solicitud:",
"Systeminfo_Network_Request_Method": "Método de solicitud:",
"Systeminfo_Network_Request_Time": "Hora de solicitud:",
"Systeminfo_Network_Request_URI": "URI de solicitud:",
"Systeminfo_Network_Secure_Connection": "Conexi\u00f3n segura:",
"Systeminfo_Network_Secure_Connection": "Conexión segura:",
"Systeminfo_Network_Secure_Connection_String": "No (HTTP)",
"Systeminfo_Network_Server_Name": "Nombre del servidor:",
"Systeminfo_Network_Server_Name_String": "Nombre del servidor no encontrado",
"Systeminfo_Network_Server_Query": "Consulta del servidor:",
"Systeminfo_Network_Server_Query_String": "Sin cadena de consulta",
"Systeminfo_Network_Server_Version": "Versi\u00f3n del servidor:",
"Systeminfo_Network_Server_Version": "Versión del servidor:",
"Systeminfo_Services": "Servicios",
"Systeminfo_Services_Description": "Descripci\u00f3n del servicio",
"Systeminfo_Services_Description": "Descripción del servicio",
"Systeminfo_Services_Name": "Nombre del servicio",
"Systeminfo_Storage": "Almacenamiento",
"Systeminfo_Storage_Device": "Dispositivo:",
"Systeminfo_Storage_Mount": "Punto de montaje:",
"Systeminfo_Storage_Size": "Tama\u00f1o:",
"Systeminfo_Storage_Size": "Tamaño:",
"Systeminfo_Storage_Type": "Tipo:",
"Systeminfo_Storage_Usage": "Uso de almacenamiento",
"Systeminfo_Storage_Usage_Free": "Libre:",
@@ -687,7 +692,7 @@
"Systeminfo_System": "Sistema",
"Systeminfo_System_AVG": "Cargar promedio:",
"Systeminfo_System_Architecture": "Arquitectura:",
"Systeminfo_System_Kernel": "N\u00facleo:",
"Systeminfo_System_Kernel": "Núcleo:",
"Systeminfo_System_OSVersion": "Sistema Operativo:",
"Systeminfo_System_Running_Processes": "Procesos corriendo:",
"Systeminfo_System_System": "Sistema:",
@@ -695,66 +700,68 @@
"Systeminfo_System_Uptime": "Tiempo de actividad:",
"Systeminfo_This_Client": "Este cliente",
"Systeminfo_USB_Devices": "Dispositivos USB",
"TICKER_MIGRATE_TO_NETALERTX": "\u26a0 Ubicaciones de montaje antiguas detectadas. Siga <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/MIGRATION.md\" target=\"_blank\">esta gu\u00eda</a> para migrar a las nuevas carpetas <code>/app/config</code> y <code>/app/db</code> y el contenedor <code>netalertx</code>.",
"TIMEZONE_description": "La zona horaria para mostrar las estad\u00edsticas correctamente. Encuentra tu zona horaria <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\" rel=\"nofollow\">aqu\u00ed</a>.",
"TICKER_MIGRATE_TO_NETALERTX": " Ubicaciones de montaje antiguas detectadas. Siga <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/MIGRATION.md\" target=\"_blank\">esta guía</a> para migrar a las nuevas carpetas <code>/app/config</code> y <code>/app/db</code> y el contenedor <code>netalertx</code>.",
"TIMEZONE_description": "La zona horaria para mostrar las estadísticas correctamente. Encuentra tu zona horaria <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\" rel=\"nofollow\">aquí</a>.",
"TIMEZONE_name": "Zona horaria",
"UI_DEV_SECTIONS_description": "Seleccione los elementos de la interfaz de usuario que desea ocultar en las p\u00e1ginas de dispositivos.",
"UI_DEV_SECTIONS_description": "Seleccione los elementos de la interfaz de usuario que desea ocultar en las páginas de dispositivos.",
"UI_DEV_SECTIONS_name": "Ocultar secciones de los dispositivos",
"UI_ICONS_description": "Una lista de iconos predefinidos. Proceda con cautela, la forma preferida de a\u00f1adir iconos se describe en la secci\u00f3n <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\" >Iconos documentaci\u00f3n</a>. Puede a\u00f1adir una etiqueta SVG HTML o Font-awesome HTML codificada con base64.",
"UI_ICONS_description": "Una lista de iconos predefinidos. Proceda con cautela, la forma preferida de añadir iconos se describe en la sección <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\" >Iconos documentación</a>. Puede añadir una etiqueta SVG HTML o Font-awesome HTML codificada con base64.",
"UI_ICONS_name": "Iconos predefinidos",
"UI_LANG_description": "Seleccione el idioma preferido para la interfaz de usuario. Ayude a traducir o sugiera idiomas en el portal en l\u00ednea de <a href=\"https://hosted.weblate.org/projects/pialert/core/\" target=\"_blank\">Weblate</a>.",
"UI_LANG_description": "Seleccione el idioma preferido para la interfaz de usuario. Ayude a traducir o sugiera idiomas en el portal en línea de <a href=\"https://hosted.weblate.org/projects/pialert/core/\" target=\"_blank\">Weblate</a>.",
"UI_LANG_name": "Idioma de interfaz",
"UI_MY_DEVICES_description": "Dispositivos cuyos estados deben mostrarse en la vista por defecto <b>Mis dispositivos</b>. (<code>CTRL + Click</code> para seleccionar/deseleccionar)",
"UI_MY_DEVICES_name": "Mostrar en Mis dispositivos",
"UI_NOT_RANDOM_MAC_description": "Prefijos Mac que no deber\u00edan marcarse como dispositivos aleatorios. Introduzca por ejemplo <code>52</code> para excluir los dispositivos que empiecen por <code>52:xx:xx:xx:xx</code> para ser marcados como dispositivos con una direcci\u00f3n MAC aleatoria.",
"UI_NOT_RANDOM_MAC_description": "Prefijos Mac que no deberían marcarse como dispositivos aleatorios. Introduzca por ejemplo <code>52</code> para excluir los dispositivos que empiecen por <code>52:xx:xx:xx:xx</code> para ser marcados como dispositivos con una dirección MAC aleatoria.",
"UI_NOT_RANDOM_MAC_name": "No marcar como aleatoria",
"UI_PRESENCE_description": "Elige que estados del dispositivo deben mostrarse en la gr\u00e1fica de <b>Presencia del dispositivo a lo largo del tiempo</b> de la p\u00e1gina de <a href=\"/devices.php\" target=\"_blank\">Dispositivos</a>. (<code>CTRL + Clic</code> para seleccionar / deseleccionar)",
"UI_PRESENCE_name": "Mostrar en el gr\u00e1fico de presencia",
"UI_REFRESH_description": "Ingrese el n\u00famero de segundos despu\u00e9s de los cuales se recarga la interfaz de usuario. Ajustado a <code> 0 </code> para desactivar.",
"UI_REFRESH_name": "Actualizaci\u00f3n autom\u00e1tica de la interfaz de usuario",
"WEBHOOK_PAYLOAD_description": "El formato de datos de carga de Webhook para el atributo <code>body</code> > <code>attachments</code> > <code>text</code> en el json de carga. Vea un ejemplo de la carga <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/front/report_templates/webhook_json_sample.json\">aqu\u00ed</a>. (por ejemplo: para discord use <code>text</code>)",
"UI_PRESENCE_description": "Elige que estados del dispositivo deben mostrarse en la gráfica de <b>Presencia del dispositivo a lo largo del tiempo</b> de la página de <a href=\"/devices.php\" target=\"_blank\">Dispositivos</a>. (<code>CTRL + Clic</code> para seleccionar / deseleccionar)",
"UI_PRESENCE_name": "Mostrar en el gráfico de presencia",
"UI_REFRESH_description": "Ingrese el número de segundos después de los cuales se recarga la interfaz de usuario. Ajustado a <code> 0 </code> para desactivar.",
"UI_REFRESH_name": "Actualización automática de la interfaz de usuario",
"WEBHOOK_PAYLOAD_description": "El formato de datos de carga de Webhook para el atributo <code>body</code> > <code>attachments</code> > <code>text</code> en el json de carga. Vea un ejemplo de la carga <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/front/report_templates/webhook_json_sample.json\">aquí</a>. (por ejemplo: para discord use <code>text</code>)",
"WEBHOOK_PAYLOAD_name": "Tipo de carga",
"WEBHOOK_REQUEST_METHOD_description": "El m\u00e9todo de solicitud HTTP que se utilizar\u00e1 para la llamada de webhook.",
"WEBHOOK_REQUEST_METHOD_name": "M\u00e9todo de solicitud",
"WEBHOOK_SIZE_description": "El tama\u00f1o m\u00e1ximo de la carga \u00fatil del webhook como n\u00famero de caracteres en la cadena pasada. Si supera el l\u00edmite, se truncar\u00e1 y se agregar\u00e1 un mensaje <code>(text was truncated)</code>.",
"WEBHOOK_SIZE_name": "Tama\u00f1o m\u00e1ximo de carga \u00fatil",
"WEBHOOK_REQUEST_METHOD_description": "El método de solicitud HTTP que se utilizará para la llamada de webhook.",
"WEBHOOK_REQUEST_METHOD_name": "Método de solicitud",
"WEBHOOK_SIZE_description": "El tamaño máximo de la carga útil del webhook como número de caracteres en la cadena pasada. Si supera el límite, se truncará y se agregará un mensaje <code>(text was truncated)</code>.",
"WEBHOOK_SIZE_name": "Tamaño máximo de carga útil",
"WEBHOOK_URL_description": "URL de destino comienza con <code>http://</code> o <code>https://</code>.",
"WEBHOOK_URL_name": "URL de destino",
"Webhooks_display_name": "Webhooks",
"Webhooks_icon": "<i class=\"fa fa-circle-nodes\"></i>",
"Webhooks_settings_group": "<i class=\"fa fa-circle-nodes\"></i> Webhooks",
"devices_old": "Volviendo a actualizar....",
"general_event_description": "El evento que has activado puede tardar un poco hasta que finalicen los procesos en segundo plano. La ejecuci\u00f3n finaliz\u00f3 una vez que se vaci\u00f3 la cola de ejecuci\u00f3n de abajo (Compruebe el <a href='/mantenimiento.php#tab_Logging'>registro de errores</a> si encuentra problemas). <br/> <br/> Cola de ejecuci\u00f3n:",
"general_event_description": "El evento que has activado puede tardar un poco hasta que finalicen los procesos en segundo plano. La ejecución finalizó una vez que se vació la cola de ejecución de abajo (Compruebe el <a href='/mantenimiento.php#tab_Logging'>registro de errores</a> si encuentra problemas). <br/> <br/> Cola de ejecución:",
"general_event_title": "Ejecutar un evento ad-hoc",
"report_guid": "Guía de las notificaciones:",
"report_guid_missing": "No se ha encontrado la notificación vinculada. Hay un pequeño retraso entre las notificaciones enviadas recientemente y su disponibilidad. Actualiza tu página y la caché después de unos segundos. También es posible que la notificación seleccionada se haya eliminado durante el mantenimiento, tal y como se especifica en la configuración <code>de DBCLNP_NOTIFI_HIST</code>. <br/> <br/>En su lugar, se muestra la notificación más reciente. La notificación que falta tiene el siguiente GUID:",
"report_select_format": "Selecciona el formato:",
"report_time": "Hora de la notificaci\u00f3n:",
"report_time": "Hora de la notificación:",
"run_event_icon": "fa-play",
"run_event_tooltip": "Activa el ajuste y guarda tus cambios antes de ejecutarlo.",
"settings_core_icon": "fa-solid fa-gem",
"settings_core_label": "N\u00facleo",
"settings_device_scanners": "Los esc\u00e1neres de los dispositivos se utilizan para descubrir dispositivos que escriben en la tabla de base de datos de CurrentScan.",
"settings_core_label": "Núcleo",
"settings_device_scanners": "Los escáneres de los dispositivos se utilizan para descubrir dispositivos que escriben en la tabla de base de datos de CurrentScan.",
"settings_device_scanners_icon": "fa-solid fa-magnifying-glass-plus",
"settings_device_scanners_label": "Esc\u00e1neres de dispositivos",
"settings_enabled": "Configuraci\u00f3n activada",
"settings_device_scanners_info": "",
"settings_device_scanners_label": "Escáneres de dispositivos",
"settings_enabled": "Configuración activada",
"settings_enabled_icon": "fa-solid fa-toggle-on",
"settings_expand_all": "Expandir todo",
"settings_imported": "\u00daltima vez que los ajustes fueron importados desde el archivo app.conf",
"settings_imported_label": "Configuraci\u00f3n importada",
"settings_missing": "No se han cargado todos los ajustes. Carga alta en la base de datos o secuencia de inicio de la app. Haz clic en el bot\u00f3n \ud83d\udd04 recargar en la parte superior.",
"settings_missing_block": "Error: La configuraci\u00f3n no se ha cargado correctamente. Haga clic en el bot\u00f3n de recarga \ud83d\udd04 en la parte superior, alternativamente, compruebe el registro del navegador para m\u00e1s detalles (F12).",
"settings_imported": "Última vez que los ajustes fueron importados desde el archivo app.conf",
"settings_imported_label": "Configuración importada",
"settings_missing": "No se han cargado todos los ajustes. Carga alta en la base de datos o secuencia de inicio de la app. Haz clic en el botón 🔄 recargar en la parte superior.",
"settings_missing_block": "Error: La configuración no se ha cargado correctamente. Haga clic en el botón de recarga 🔄 en la parte superior, alternativamente, compruebe el registro del navegador para más detalles (F12).",
"settings_old": "Importar ajustes y reiniciar...",
"settings_other_scanners": "Otros plugins de esc\u00e1ner no relacionados con dispositivos que est\u00e1n activados actualmente.",
"settings_other_scanners": "Otros plugins de escáner no relacionados con dispositivos que están activados actualmente.",
"settings_other_scanners_icon": "fa-solid fa-recycle",
"settings_other_scanners_label": "Otros esc\u00e1neres",
"settings_publishers": "Puertas de enlace para las notificaci\u00f3n habilitadas: editores, que enviar\u00e1n una notificaci\u00f3n seg\u00fan su configuraci\u00f3n.",
"settings_other_scanners_label": "Otros escáneres",
"settings_publishers": "Puertas de enlace para las notificación habilitadas: editores, que enviarán una notificación según su configuración.",
"settings_publishers_icon": "fa-solid fa-paper-plane",
"settings_publishers_info": "",
"settings_publishers_label": "Editores",
"settings_saved": "<br/>Ajustes guardados. <br/><br/> Recargando... <br/><br/> <i class=\"ion ion-ios-loop-strong fa-spin fa-2x fa-fw\"></i> <br/>",
"settings_saved": "<br/>Ajustes guardados. <br/><br/> Recargando... <br/><i class=\"ion ion-ios-loop-strong fa-spin fa-2x fa-fw\"></i> <br/>",
"settings_system_icon": "fa-solid fa-gear",
"settings_system_label": "Sistema",
"settings_update_item_warning": "Actualice el valor a continuaci\u00f3n. Tenga cuidado de seguir el formato anterior. <b>O la validaci\u00f3n no se realiza.</b>",
"settings_update_item_warning": "Actualice el valor a continuación. Tenga cuidado de seguir el formato anterior. <b>O la validación no se realiza.</b>",
"test_event_icon": "fa-vial-circle-check",
"test_event_tooltip": "Guarda tus cambios antes de probar nuevos ajustes."
}

View File

@@ -1,26 +1,26 @@
{
"API_CUSTOM_SQL_description": "",
"API_CUSTOM_SQL_name": "Point de terminaison personnalis\u00e9",
"API_CUSTOM_SQL_name": "Point de terminaison personnalisé",
"API_display_name": "API",
"API_icon": "",
"About_Design": "Con\u00e7u pour\u202f:",
"About_Design": "Conçu pour:",
"About_Exit": "Quitter",
"About_Title": "Analyse de la s\u00e9curit\u00e9 du r\u00e9seau et cadre de notification",
"AppEvents_DateTimeCreated": "Journalis\u00e9",
"About_Title": "Analyse de la sécurité du réseau et cadre de notification",
"AppEvents_DateTimeCreated": "Journalisé",
"AppEvents_Extra": "Extra",
"AppEvents_GUID": "",
"AppEvents_Helper1": "",
"AppEvents_Helper2": "",
"AppEvents_Helper3": "",
"AppEvents_ObjectForeignKey": "Cl\u00e9 \u00e9trang\u00e8re",
"AppEvents_ObjectForeignKey": "Clé étrangère",
"AppEvents_ObjectIndex": "Index",
"AppEvents_ObjectIsArchived": "Est archiv\u00e9 (au moment de l'enregistrement)",
"AppEvents_ObjectIsArchived": "Est archivé (au moment de l'enregistrement)",
"AppEvents_ObjectIsNew": "",
"AppEvents_ObjectPlugin": "Greffon li\u00e9",
"AppEvents_ObjectPlugin": "Greffon lié",
"AppEvents_ObjectPrimaryID": "",
"AppEvents_ObjectSecondaryID": "",
"AppEvents_ObjectStatus": "Statut (au moment de l'enregistrement)",
"AppEvents_ObjectStatusColumn": "Colonne d'\u00e9tat",
"AppEvents_ObjectStatusColumn": "Colonne d'état",
"AppEvents_ObjectType": "Type d'objet",
"AppEvents_Plugin": "Greffon",
"AppEvents_Type": "Type",
@@ -28,7 +28,7 @@
"BackDevDetail_Actions_Not_Registered": "",
"BackDevDetail_Actions_Title_Run": "",
"BackDevDetail_Copy_Ask": "",
"BackDevDetail_Copy_Title": "Copier les d\u00e9tails",
"BackDevDetail_Copy_Title": "Copier les détails",
"BackDevDetail_Tools_WOL_error": "",
"BackDevDetail_Tools_WOL_okay": "",
"BackDevices_Arpscan_disabled": "",
@@ -38,44 +38,44 @@
"BackDevices_Backup_okay": "",
"BackDevices_DBTools_DelDevError_a": "Erreur lors de la suppression de l'appareil",
"BackDevices_DBTools_DelDevError_b": "Erreur lors de la suppression des appareils",
"BackDevices_DBTools_DelDev_a": "Appareil supprim\u00e9",
"BackDevices_DBTools_DelDev_b": "Appareils supprim\u00e9s",
"BackDevices_DBTools_DelEvents": "\u00c9v\u00e9nements supprim\u00e9s",
"BackDevices_DBTools_DelEventsError": "Erreur lors de la suppression des \u00e9v\u00e9nements",
"BackDevices_DBTools_ImportCSV": "Les appareils du fichier CSV ont \u00e9t\u00e9 import\u00e9s avec succ\u00e8s.",
"BackDevices_DBTools_ImportCSVError": "Le fichier CSV n'a pas pu \u00eatre import\u00e9. Assurez-vous que le format est correct.",
"BackDevices_DBTools_DelDev_a": "Appareil supprimé",
"BackDevices_DBTools_DelDev_b": "Appareils supprimés",
"BackDevices_DBTools_DelEvents": "Événements supprimés",
"BackDevices_DBTools_DelEventsError": "Erreur lors de la suppression des événements",
"BackDevices_DBTools_ImportCSV": "Les appareils du fichier CSV ont été importés avec succès.",
"BackDevices_DBTools_ImportCSVError": "Le fichier CSV n'a pas pu être importé. Assurez-vous que le format est correct.",
"BackDevices_DBTools_ImportCSVMissing": "Le fichier CSV est introuvable sous <b>/config/devices.csv.</b>",
"BackDevices_DBTools_Purge": "Les sauvegardes les plus anciennes ont \u00e9t\u00e9 supprim\u00e9es",
"BackDevices_DBTools_UpdDev": "Appareil mis \u00e0 jour avec succ\u00e8s",
"BackDevices_DBTools_UpdDevError": "Erreur lors de la mise \u00e0 jour de l'appareil",
"BackDevices_DBTools_Upgrade": "Base de donn\u00e9es mise \u00e0 niveau avec succ\u00e8s",
"BackDevices_DBTools_UpgradeError": "La mise \u00e0 niveau de la base de donn\u00e9es a \u00e9chou\u00e9",
"BackDevices_Device_UpdDevError": "Erreur de mise \u00e0 jour des appareils, essayez plus tard. La base de donn\u00e9es est probablement bloqu\u00e9e en raison d'une t\u00e2che en cours.",
"BackDevices_Restore_CopError": "La base de donn\u00e9es originale n'a pas pu \u00eatre sauvegard\u00e9e.",
"BackDevices_Restore_Failed": "\u00c9chec de la restauration. Veuillez restaurer la sauvegarde manuellement.",
"BackDevices_Restore_okay": "Restauration ex\u00e9cut\u00e9e avec succ\u00e8s.",
"BackDevices_darkmode_disabled": "Mode sombre d\u00e9sactiv\u00e9",
"BackDevices_darkmode_enabled": "Mode sombre activ\u00e9",
"BackDevices_DBTools_Purge": "Les sauvegardes les plus anciennes ont été supprimées",
"BackDevices_DBTools_UpdDev": "Appareil mis à jour avec succès",
"BackDevices_DBTools_UpdDevError": "Erreur lors de la mise à jour de l'appareil",
"BackDevices_DBTools_Upgrade": "Base de données mise à niveau avec succès",
"BackDevices_DBTools_UpgradeError": "La mise à niveau de la base de données a échoué",
"BackDevices_Device_UpdDevError": "Erreur de mise à jour des appareils, essayez plus tard. La base de données est probablement bloquée en raison d'une tâche en cours.",
"BackDevices_Restore_CopError": "La base de données originale n'a pas pu être sauvegardée.",
"BackDevices_Restore_Failed": "Échec de la restauration. Veuillez restaurer la sauvegarde manuellement.",
"BackDevices_Restore_okay": "Restauration exécutée avec succès.",
"BackDevices_darkmode_disabled": "Mode sombre désactivé",
"BackDevices_darkmode_enabled": "Mode sombre activé",
"DAYS_TO_KEEP_EVENTS_description": "",
"DAYS_TO_KEEP_EVENTS_name": "Supprimer les \u00e9v\u00e9nements plus anciens que",
"DAYS_TO_KEEP_EVENTS_name": "Supprimer les événements plus anciens que",
"DevDetail_Copy_Device_Title": "",
"DevDetail_Copy_Device_Tooltip": "",
"DevDetail_EveandAl_AlertAllEvents": "Alerter tous les \u00e9v\u00e9nements",
"DevDetail_EveandAl_AlertDown": "",
"DevDetail_EveandAl_Archived": "Archiv\u00e9s",
"DevDetail_EveandAl_AlertAllEvents": "Alerter tous les événements",
"DevDetail_EveandAl_AlertDown": "Alerte de panne",
"DevDetail_EveandAl_Archived": "Archivés",
"DevDetail_EveandAl_NewDevice": "Nouvel appareil",
"DevDetail_EveandAl_NewDevice_Tooltip": "",
"DevDetail_EveandAl_RandomMAC": "MAC al\u00e9atoire",
"DevDetail_EveandAl_RandomMAC": "MAC aléatoire",
"DevDetail_EveandAl_ScanCycle": "",
"DevDetail_EveandAl_ScanCycle_a": "",
"DevDetail_EveandAl_ScanCycle_z": "",
"DevDetail_EveandAl_Skip": "",
"DevDetail_EveandAl_Title": "",
"DevDetail_Events_CheckBox": "Masquer les \u00e9v\u00e9nements de connexion",
"DevDetail_Events_CheckBox": "Masquer les événements de connexion",
"DevDetail_GoToNetworkNode": "",
"DevDetail_Icon": "Ic\u00f4ne",
"DevDetail_Icon": "Icône",
"DevDetail_Icon_Descr": "",
"DevDetail_Loading": "Chargement\u00a0\u2026",
"DevDetail_Loading": "Chargement …",
"DevDetail_MainInfo_Comments": "Observations",
"DevDetail_MainInfo_Favorite": "Favori",
"DevDetail_MainInfo_Group": "Groupe",
@@ -83,8 +83,10 @@
"DevDetail_MainInfo_Name": "Nom",
"DevDetail_MainInfo_Network": "",
"DevDetail_MainInfo_Network_Port": "<i class=\"fa fa-ethernet\"></i> Port",
"DevDetail_MainInfo_Network_Title": "<i class=\"fa fa-network-wired\"></i> R\u00e9seau",
"DevDetail_MainInfo_Owner": "Propri\u00e9taire",
"DevDetail_MainInfo_Network_Site": "",
"DevDetail_MainInfo_Network_Title": "<i class=\"fa fa-network-wired\"></i> Réseau",
"DevDetail_MainInfo_Owner": "Propriétaire",
"DevDetail_MainInfo_SSID": "",
"DevDetail_MainInfo_Title": "<i class=\"fa fa-pencil\"></i> Informations principales",
"DevDetail_MainInfo_Type": "Type",
"DevDetail_MainInfo_Vendor": "Fabriquant",
@@ -110,36 +112,36 @@
"DevDetail_Periodselect_today": "Aujourd'hui",
"DevDetail_Run_Actions_Title": "",
"DevDetail_Run_Actions_Tooltip": "",
"DevDetail_SessionInfo_FirstSession": "Premi\u00e8re session",
"DevDetail_SessionInfo_LastIP": "Derni\u00e8re IP",
"DevDetail_SessionInfo_LastSession": "Derni\u00e8re session",
"DevDetail_SessionInfo_FirstSession": "Première session",
"DevDetail_SessionInfo_LastIP": "Dernière IP",
"DevDetail_SessionInfo_LastSession": "Dernière session",
"DevDetail_SessionInfo_StaticIP": "IP statique",
"DevDetail_SessionInfo_Status": "\u00c9tat",
"DevDetail_SessionInfo_Status": "État",
"DevDetail_SessionInfo_Title": "<i class=\"fa fa-calendar\"></i> Info de session",
"DevDetail_SessionTable_Additionalinfo": "Informations suppl\u00e9mentaires",
"DevDetail_SessionTable_Additionalinfo": "Informations supplémentaires",
"DevDetail_SessionTable_Connection": "Connexion",
"DevDetail_SessionTable_Disconnection": "D\u00e9connection",
"DevDetail_SessionTable_Duration": "Dur\u00e9e",
"DevDetail_SessionTable_Disconnection": "Déconnection",
"DevDetail_SessionTable_Duration": "Durée",
"DevDetail_SessionTable_IP": "IP",
"DevDetail_SessionTable_Order": "",
"DevDetail_Shortcut_CurrentStatus": "\u00c9tat actuel",
"DevDetail_Shortcut_CurrentStatus": "État actuel",
"DevDetail_Shortcut_DownAlerts": "Alertes de panne",
"DevDetail_Shortcut_Presence": "Pr\u00e9sence",
"DevDetail_Shortcut_Presence": "Présence",
"DevDetail_Shortcut_Sessions": "Sessions",
"DevDetail_Tab_Details": "",
"DevDetail_Tab_Events": "",
"DevDetail_Tab_EventsTableDate": "Date",
"DevDetail_Tab_EventsTableEvent": "Type d'\u00e9v\u00e9nement",
"DevDetail_Tab_EventsTableEvent": "Type d'événement",
"DevDetail_Tab_EventsTableIP": "IP",
"DevDetail_Tab_EventsTableInfo": "Informations compl\u00e9mentaires",
"DevDetail_Tab_EventsTableInfo": "Informations complémentaires",
"DevDetail_Tab_Nmap": "",
"DevDetail_Tab_NmapEmpty": "Aucun port d\u00e9tect\u00e9 avec Nmap sur cet appareil.",
"DevDetail_Tab_NmapEmpty": "Aucun port détecté avec Nmap sur cet appareil.",
"DevDetail_Tab_NmapTableExtra": "Extra",
"DevDetail_Tab_NmapTableHeader": "",
"DevDetail_Tab_NmapTableIndex": "Index",
"DevDetail_Tab_NmapTablePort": "Port",
"DevDetail_Tab_NmapTableService": "Service",
"DevDetail_Tab_NmapTableState": "\u00c9tat",
"DevDetail_Tab_NmapTableState": "État",
"DevDetail_Tab_NmapTableText": "",
"DevDetail_Tab_NmapTableTime": "Heure",
"DevDetail_Tab_Plugins": "",
@@ -151,12 +153,12 @@
"DevDetail_Tab_Tools_Internet_Info_Start": "",
"DevDetail_Tab_Tools_Internet_Info_Title": "",
"DevDetail_Tab_Tools_Nslookup_Description": "",
"DevDetail_Tab_Tools_Nslookup_Error": "Erreur\u202f: adresse IP invalide",
"DevDetail_Tab_Tools_Nslookup_Error": "Erreur: adresse IP invalide",
"DevDetail_Tab_Tools_Nslookup_Start": "",
"DevDetail_Tab_Tools_Nslookup_Title": "Nslookup",
"DevDetail_Tab_Tools_Speedtest_Description": "",
"DevDetail_Tab_Tools_Speedtest_Start": "D\u00e9marrer le test de d\u00e9bit",
"DevDetail_Tab_Tools_Speedtest_Title": "Test de d\u00e9bit en ligne",
"DevDetail_Tab_Tools_Speedtest_Start": "Démarrer le test de débit",
"DevDetail_Tab_Tools_Speedtest_Title": "Test de débit en ligne",
"DevDetail_Tab_Tools_Traceroute_Description": "",
"DevDetail_Tab_Tools_Traceroute_Error": "",
"DevDetail_Tab_Tools_Traceroute_Start": "",
@@ -171,12 +173,12 @@
"DevDetail_button_AddIcon_Help": "",
"DevDetail_button_AddIcon_Tooltip": "",
"DevDetail_button_Delete": "Supprimer l'appareil",
"DevDetail_button_DeleteEvents": "Supprimer les \u00e9v\u00e9nements",
"DevDetail_button_DeleteEvents": "Supprimer les événements",
"DevDetail_button_DeleteEvents_Warning": "",
"DevDetail_button_OverwriteIcons": "",
"DevDetail_button_OverwriteIcons_Tooltip": "",
"DevDetail_button_OverwriteIcons_Warning": "",
"DevDetail_button_Reset": "R\u00e9initialiser les modifications",
"DevDetail_button_Reset": "Réinitialiser les modifications",
"DevDetail_button_Save": "Enregistrer",
"Device_MultiEdit": "",
"Device_MultiEdit_Backup": "",
@@ -184,42 +186,44 @@
"Device_MultiEdit_MassActions": "",
"Device_MultiEdit_Tooltip": "",
"Device_Searchbox": "Rechercher",
"Device_Shortcut_AllDevices": "Tous les appareils",
"Device_Shortcut_Archived": "Archiv\u00e9s",
"Device_Shortcut_Connected": "Connect\u00e9s",
"Device_Shortcut_AllDevices": "Mes appareils",
"Device_Shortcut_Archived": "Archivés",
"Device_Shortcut_Connected": "Connectés",
"Device_Shortcut_Devices": "Appareils",
"Device_Shortcut_DownAlerts": "En panne & hors ligne",
"Device_Shortcut_DownOnly": "",
"Device_Shortcut_DownOnly": "En panne",
"Device_Shortcut_Favorites": "Favoris",
"Device_Shortcut_NewDevices": "Nouveaux appareils",
"Device_Shortcut_OnlineChart": "Pr\u00e9sence de l'appareil",
"Device_Shortcut_OnlineChart": "Présence de l'appareil",
"Device_TableHead_Connected_Devices": "Connexions",
"Device_TableHead_Favorite": "Favori",
"Device_TableHead_FirstSession": "Premi\u00e8re session",
"Device_TableHead_FirstSession": "Première session",
"Device_TableHead_GUID": "",
"Device_TableHead_Group": "Groupe",
"Device_TableHead_Icon": "Ic\u00f4ne",
"Device_TableHead_LastIP": "Derni\u00e8re IP",
"Device_TableHead_LastIPOrder": "Ordre derni\u00e8re IP",
"Device_TableHead_LastSession": "Derni\u00e8re session",
"Device_TableHead_Icon": "Icône",
"Device_TableHead_LastIP": "Dernière IP",
"Device_TableHead_LastIPOrder": "Ordre dernière IP",
"Device_TableHead_LastSession": "Dernière session",
"Device_TableHead_Location": "Emplacement",
"Device_TableHead_MAC": "MAC al\u00e9atoire",
"Device_TableHead_MAC": "MAC aléatoire",
"Device_TableHead_MAC_full": "Adresse MAC",
"Device_TableHead_Name": "Nom",
"Device_TableHead_Owner": "Propri\u00e9taire",
"Device_TableHead_NetworkSite": "",
"Device_TableHead_Owner": "Propriétaire",
"Device_TableHead_Parent_MAC": "",
"Device_TableHead_Port": "Port",
"Device_TableHead_RowID": "",
"Device_TableHead_Rowid": "",
"Device_TableHead_Status": "\u00c9tat",
"Device_TableHead_SSID": "",
"Device_TableHead_Status": "État",
"Device_TableHead_SyncHubNodeName": "",
"Device_TableHead_Type": "Type",
"Device_TableHead_Vendor": "Fabriquant",
"Device_Table_Not_Network_Device": "",
"Device_Table_info": "",
"Device_Table_nav_next": "Suivant",
"Device_Table_nav_prev": "Pr\u00e9c\u00e9dent",
"Device_Tablelenght": "Afficher _MENU_ entr\u00e9es",
"Device_Table_nav_prev": "Précédent",
"Device_Tablelenght": "Afficher _MENU_ entrées",
"Device_Tablelenght_all": "",
"Device_Title": "Appareils",
"Donations_Others": "Autres",
@@ -230,42 +234,43 @@
"ENABLE_PLUGINS_name": "",
"Email_display_name": "Messagerie",
"Email_icon": "",
"Events_Loading": "Chargement\u00a0\u2026",
"Events_Loading": "Chargement …",
"Events_Periodselect_All": "Toutes les informations",
"Events_Periodselect_LastMonth": "Le mois dernier",
"Events_Periodselect_LastWeek": "La semaine derni\u00e8re",
"Events_Periodselect_LastYear": "L'ann\u00e9e derni\u00e8re",
"Events_Periodselect_LastWeek": "La semaine dernière",
"Events_Periodselect_LastYear": "L'année dernière",
"Events_Periodselect_today": "Aujourd'hui",
"Events_Searchbox": "Rechercher",
"Events_Shortcut_AllEvents": "Tous les \u00e9v\u00e8nements",
"Events_Shortcut_AllEvents": "Tous les évènements",
"Events_Shortcut_DownAlerts": "Alertes de panne",
"Events_Shortcut_Events": "\u00c9v\u00e8nements",
"Events_Shortcut_Events": "Évènements",
"Events_Shortcut_MissSessions": "Sessions manquantes",
"Events_Shortcut_NewDevices": "Nouveaux appareils",
"Events_Shortcut_Sessions": "Sessions",
"Events_Shortcut_VoidSessions": "Sessions annul\u00e9es",
"Events_TableHead_AdditionalInfo": "Informations compl\u00e9mentaires",
"Events_Shortcut_VoidSessions": "Sessions annulées",
"Events_TableHead_AdditionalInfo": "Informations complémentaires",
"Events_TableHead_Connection": "Connexion",
"Events_TableHead_Date": "Date",
"Events_TableHead_Device": "Dispositif",
"Events_TableHead_Disconnection": "D\u00e9connexion",
"Events_TableHead_Duration": "Dur\u00e9e",
"Events_TableHead_DurationOrder": "Ordre de dur\u00e9e",
"Events_TableHead_EventType": "Type d'\u00e9v\u00e9nement",
"Events_TableHead_Disconnection": "Déconnexion",
"Events_TableHead_Duration": "Durée",
"Events_TableHead_DurationOrder": "Ordre de durée",
"Events_TableHead_EventType": "Type d'événement",
"Events_TableHead_IP": "IP",
"Events_TableHead_IPOrder": "",
"Events_TableHead_Order": "",
"Events_TableHead_Owner": "Propri\u00e9taire",
"Events_TableHead_Owner": "Propriétaire",
"Events_TableHead_PendingAlert": "",
"Events_Table_info": "Affichage de _START_ \u00e0 _END_ sur _TOTAL_ entr\u00e9es",
"Events_Table_info": "Affichage de _START_ à _END_ sur _TOTAL_ entrées",
"Events_Table_nav_next": "Suivant",
"Events_Table_nav_prev": "Pr\u00e9c\u00e9dent",
"Events_Tablelenght": "Afficher _MENU_ entr\u00e9es",
"Events_Table_nav_prev": "Précédent",
"Events_Tablelenght": "Afficher _MENU_ entrées",
"Events_Tablelenght_all": "",
"Events_Title": "\u00c9v\u00e8nements",
"Events_Title": "Évènements",
"Gen_Action": "Action",
"Gen_Add": "",
"Gen_Add_All": "",
"Gen_All_Devices": "Tous les appareils",
"Gen_AreYouSure": "",
"Gen_Backup": "",
"Gen_Cancel": "Annuler",
@@ -276,7 +281,7 @@
"Gen_Error": "Erreur",
"Gen_Filter": "",
"Gen_LockedDB": "",
"Gen_Offline": "",
"Gen_Offline": "Hors ligne",
"Gen_Okay": "OK",
"Gen_Purge": "Purger",
"Gen_ReadDocs": "",
@@ -285,7 +290,7 @@
"Gen_Restore": "",
"Gen_Run": "Lancer",
"Gen_Save": "Enregistrer",
"Gen_Saved": "Enregistr\u00e9",
"Gen_Saved": "Enregistré",
"Gen_Search": "",
"Gen_Selected_Devices": "",
"Gen_Switch": "Basculer",
@@ -295,11 +300,11 @@
"Gen_Update_Value": "",
"Gen_Warning": "Avertissement",
"Gen_Work_In_Progress": "",
"General_display_name": "G\u00e9n\u00e9ral",
"General_display_name": "Général",
"General_icon": "",
"HRS_TO_KEEP_NEWDEV_description": "",
"HRS_TO_KEEP_NEWDEV_name": "",
"HelpFAQ_Cat_Detail": "D\u00e9tails",
"HelpFAQ_Cat_Detail": "Détails",
"HelpFAQ_Cat_Detail_300_head": "",
"HelpFAQ_Cat_Detail_300_text_a": "",
"HelpFAQ_Cat_Detail_300_text_b": "",
@@ -313,8 +318,8 @@
"HelpFAQ_Cat_Detail_303_text": "",
"HelpFAQ_Cat_Device_200_head": "",
"HelpFAQ_Cat_Device_200_text": "",
"HelpFAQ_Cat_General": "G\u00e9n\u00e9ral",
"HelpFAQ_Cat_General_100_head": "L'horloge en haut \u00e0 droite et les heures des \u00e9v\u00e9nements/pr\u00e9sence ne sont pas correctes (d\u00e9calage horaire).",
"HelpFAQ_Cat_General": "Général",
"HelpFAQ_Cat_General_100_head": "L'horloge en haut à droite et les heures des événements/présence ne sont pas correctes (décalage horaire).",
"HelpFAQ_Cat_General_100_text_a": "",
"HelpFAQ_Cat_General_100_text_b": "",
"HelpFAQ_Cat_General_100_text_c": "",
@@ -332,14 +337,14 @@
"HelpFAQ_Cat_Network_601_text": "",
"HelpFAQ_Cat_Presence_400_head": "",
"HelpFAQ_Cat_Presence_400_text": "",
"HelpFAQ_Cat_Presence_401_head": "",
"HelpFAQ_Cat_Presence_401_head": "Un appareil est affiché comme présent bien qu'il soit \"Hors ligne\".",
"HelpFAQ_Cat_Presence_401_text": "",
"HelpFAQ_Title": "Aide / FAQ",
"LOADED_PLUGINS_description": "",
"LOADED_PLUGINS_name": "",
"LOG_LEVEL_description": "",
"LOG_LEVEL_name": "",
"Loading": "Chargement\u00a0\u2026",
"Loading": "Chargement …",
"Login_Box": "",
"Login_Default_PWD": "",
"Login_Psw-box": "Mot de passe",
@@ -353,20 +358,20 @@
"Login_Toggle_Alert_headline": "",
"Login_Toggle_Info": "",
"Login_Toggle_Info_headline": "",
"Maintenance_Running_Version": "Version install\u00e9e",
"Maintenance_Status": "\u00c9tat",
"Maintenance_Running_Version": "Version installée",
"Maintenance_Status": "État",
"Maintenance_Title": "Outils d'entretien",
"Maintenance_Tool_ExportCSV": "Exportation CSV",
"Maintenance_Tool_ExportCSV_noti": "Exportation CSV",
"Maintenance_Tool_ExportCSV_noti_text": "\u00cates-vous s\u00fbr de vouloir g\u00e9n\u00e9rer un fichier CSV\u202f?",
"Maintenance_Tool_ExportCSV_noti_text": "Êtes-vous sûr de vouloir générer un fichier CSV?",
"Maintenance_Tool_ExportCSV_text": "",
"Maintenance_Tool_ImportCSV": "Importation CSV",
"Maintenance_Tool_ImportCSV_noti": "Importation CSV",
"Maintenance_Tool_ImportCSV_noti_text": "\u00cates-vous s\u00fbr de vouloir importer le fichier CSV\u202f? Cela \u00e9crasera compl\u00e8tement les appareils de votre base de donn\u00e9es.",
"Maintenance_Tool_ImportCSV_noti_text": "Êtes-vous sûr de vouloir importer le fichier CSV? Cela écrasera complètement les appareils de votre base de données.",
"Maintenance_Tool_ImportCSV_text": "",
"Maintenance_Tool_arpscansw": "Basculer l'arp-Scan (activ\u00e9/d\u00e9sactiv\u00e9)",
"Maintenance_Tool_arpscansw_noti": "Activer ou d\u00e9sactiver l'arp-Scan",
"Maintenance_Tool_arpscansw_noti_text": "Une fois le scan d\u00e9sactiv\u00e9, il reste d\u00e9sactiv\u00e9 jusqu'\u00e0 ce qu'il soit r\u00e9activ\u00e9.",
"Maintenance_Tool_arpscansw": "Basculer l'arp-Scan (activé/désactivé)",
"Maintenance_Tool_arpscansw_noti": "Activer ou désactiver l'arp-Scan",
"Maintenance_Tool_arpscansw_noti_text": "Une fois le scan désactivé, il reste désactivé jusqu'à ce qu'il soit réactivé.",
"Maintenance_Tool_arpscansw_text": "",
"Maintenance_Tool_backup": "",
"Maintenance_Tool_backup_noti": "",
@@ -384,25 +389,25 @@
"Maintenance_Tool_del_alldev": "",
"Maintenance_Tool_del_alldev_noti": "",
"Maintenance_Tool_del_alldev_noti_text": "",
"Maintenance_Tool_del_alldev_text": "",
"Maintenance_Tool_del_alldev_text": "Avant d'utiliser cette fonction, veuillez effectuer une sauvegarde. La suppression ne peut pas être annulée. Tous les appareils seront supprimés de la base de données.",
"Maintenance_Tool_del_allevents": "",
"Maintenance_Tool_del_allevents30": "",
"Maintenance_Tool_del_allevents30_noti": "",
"Maintenance_Tool_del_allevents30_noti_text": "",
"Maintenance_Tool_del_allevents30_text": "",
"Maintenance_Tool_del_allevents30_text": "Avant d'utiliser cette fonction, veuillez effectuer une sauvegarde. La suppression ne peut pas être annulée. Tous les événements datant de plus de 30 jours dans la base de données seront supprimés. À ce moment-là, la présence de tous les appareils sera réinitialisée. Cela peut conduire à des sessions invalides. Cela signifie que les appareils sont affichés comme « présents » bien qu'ils soient hors ligne. Une analyse pendant que l'appareil en question est en ligne résout le problème.",
"Maintenance_Tool_del_allevents_noti": "",
"Maintenance_Tool_del_allevents_noti_text": "",
"Maintenance_Tool_del_allevents_text": "",
"Maintenance_Tool_del_allevents_text": "Avant d'utiliser cette fonction, veuillez effectuer une sauvegarde. La suppression ne peut pas être annulée. Tous les événements de la base de données seront supprimés. À ce moment-là, la présence de tous les appareils sera réinitialisée. Cela peut conduire à des sessions invalides. Cela signifie que les appareils sont affichés comme « présents » bien qu'ils soient hors ligne. Une analyse pendant que l'appareil en question est en ligne résout le problème.",
"Maintenance_Tool_del_empty_macs": "",
"Maintenance_Tool_del_empty_macs_noti": "",
"Maintenance_Tool_del_empty_macs_noti_text": "",
"Maintenance_Tool_del_empty_macs_text": "",
"Maintenance_Tool_del_empty_macs_text": "Avant d'utiliser cette fonction, veuillez effectuer une sauvegarde. La suppression ne peut pas être annulée. Tous les appareils sans MAC seront supprimés de la base de données.",
"Maintenance_Tool_del_selecteddev": "",
"Maintenance_Tool_del_selecteddev_text": "",
"Maintenance_Tool_del_unknowndev": "",
"Maintenance_Tool_del_unknowndev_noti": "",
"Maintenance_Tool_del_unknowndev_noti_text": "",
"Maintenance_Tool_del_unknowndev_text": "",
"Maintenance_Tool_del_unknowndev_text": "Avant d'utiliser cette fonction, veuillez effectuer une sauvegarde. La suppression ne peut pas être annulée. Tous les appareils nommés (inconnus) seront supprimés de la base de données.",
"Maintenance_Tool_displayed_columns_text": "",
"Maintenance_Tool_drag_me": "",
"Maintenance_Tool_order_columns_text": "",
@@ -419,19 +424,19 @@
"Maintenance_Tool_upgrade_database_text": "",
"Maintenance_Tools_Tab_BackupRestore": "",
"Maintenance_Tools_Tab_Logging": "Journaux",
"Maintenance_Tools_Tab_Settings": "Param\u00e8tres",
"Maintenance_Tools_Tab_Settings": "Paramètres",
"Maintenance_Tools_Tab_Tools": "Outils",
"Maintenance_Tools_Tab_UISettings": "Param\u00e8tres de l'interface",
"Maintenance_Tools_Tab_UISettings": "Paramètres de l'interface",
"Maintenance_arp_status": "",
"Maintenance_arp_status_off": "est actuellement d\u00e9sactiv\u00e9",
"Maintenance_arp_status_off": "est actuellement désactivé",
"Maintenance_arp_status_on": "",
"Maintenance_built_on": "Construit sur",
"Maintenance_current_version": "Vous \u00eates \u00e0 jour. D\u00e9couvrez sur quoi <a href=\"https://github.com/jokob-sk/NetAlertX/issues/138\" target=\"_blank\">je travaille</a>.",
"Maintenance_database_backup": "Sauvegardes de base de donn\u00e9es",
"Maintenance_database_backup_found": "des sauvegardes ont \u00e9t\u00e9 trouv\u00e9es",
"Maintenance_current_version": "Vous êtes à jour. Découvrez sur quoi <a href=\"https://github.com/jokob-sk/NetAlertX/issues/138\" target=\"_blank\">je travaille</a>.",
"Maintenance_database_backup": "Sauvegardes de base de données",
"Maintenance_database_backup_found": "des sauvegardes ont été trouvées",
"Maintenance_database_backup_total": "utilisation totale du disque",
"Maintenance_database_lastmod": "Derni\u00e8re modification",
"Maintenance_database_path": "Chemin de la base de donn\u00e9es",
"Maintenance_database_lastmod": "Dernière modification",
"Maintenance_database_path": "Chemin de la base de données",
"Maintenance_database_rows": "",
"Maintenance_database_size": "",
"Maintenance_lang_selector_apply": "Appliquer",
@@ -446,26 +451,26 @@
"Maintenance_version": "",
"NETWORK_DEVICE_TYPES_description": "",
"NETWORK_DEVICE_TYPES_name": "",
"Navigation_About": "\u00c0 propos",
"Navigation_About": "À propos",
"Navigation_Devices": "Appareils",
"Navigation_Donations": "Dons",
"Navigation_Events": "\u00c9v\u00e8nements",
"Navigation_Events": "Évènements",
"Navigation_HelpFAQ": "Aide / FAQ",
"Navigation_Integrations": "",
"Navigation_Maintenance": "",
"Navigation_Monitoring": "Surveillance",
"Navigation_Network": "R\u00e9seau",
"Navigation_Network": "Réseau",
"Navigation_Notifications": "",
"Navigation_Plugins": "Greffons",
"Navigation_Presence": "Pr\u00e9sence",
"Navigation_Presence": "Présence",
"Navigation_Report": "",
"Navigation_Settings": "Param\u00e8tres",
"Navigation_SystemInfo": "Infos syst\u00e8me",
"Navigation_Settings": "Paramètres",
"Navigation_SystemInfo": "Infos système",
"Navigation_Workflows": "Flux de travail",
"Network_Assign": "",
"Network_Cant_Assign": "",
"Network_Configuration_Error": "",
"Network_Connected": "Appareils connect\u00e9s",
"Network_Connected": "Appareils connectés",
"Network_ManageAdd": "",
"Network_ManageAdd_Name": "",
"Network_ManageAdd_Name_text": "",
@@ -500,9 +505,9 @@
"Network_Root": "",
"Network_Root_Not_Configured": "",
"Network_Root_Unconfigurable": "",
"Network_Table_Hostname": "Nom de h\u00f4te",
"Network_Table_Hostname": "Nom de hôte",
"Network_Table_IP": "IP",
"Network_Table_State": "\u00c9tat",
"Network_Table_State": "État",
"Network_Title": "",
"Network_UnassignedDevices": "",
"Notifications_All": "",
@@ -518,21 +523,21 @@
"Plugins_History": "",
"Plugins_Objects": "",
"Plugins_Out_of": "",
"Plugins_Unprocessed_Events": "\u00c9v\u00e9nements non trait\u00e9s",
"Plugins_Unprocessed_Events": "Événements non traités",
"Plugins_no_control": "",
"Presence_CalHead_day": "jour",
"Presence_CalHead_lang": "",
"Presence_CalHead_month": "mois",
"Presence_CalHead_quarter": "trimestre",
"Presence_CalHead_week": "semaine",
"Presence_CalHead_year": "ann\u00e9e",
"Presence_CalHead_year": "année",
"Presence_CallHead_Devices": "Appareils",
"Presence_Loading": "Chargement\u00a0\u2026",
"Presence_Shortcut_AllDevices": "",
"Presence_Shortcut_Archived": "Archiv\u00e9s",
"Presence_Shortcut_Connected": "Connect\u00e9s",
"Presence_Loading": "Chargement …",
"Presence_Shortcut_AllDevices": "Mes appareils",
"Presence_Shortcut_Archived": "Archivés",
"Presence_Shortcut_Connected": "Connectés",
"Presence_Shortcut_Devices": "Appareils",
"Presence_Shortcut_DownAlerts": "",
"Presence_Shortcut_DownAlerts": "Alertes de panne",
"Presence_Shortcut_Favorites": "Favoris",
"Presence_Shortcut_NewDevices": "",
"Presence_Title": "",
@@ -545,7 +550,7 @@
"RandomMAC_hover": "",
"Reports_Sent_Log": "",
"SCAN_SUBNETS_description": "",
"SYSTEM_TITLE": "Informations syst\u00e8me",
"SYSTEM_TITLE": "Informations système",
"Setting_Override": "",
"Setting_Override_Description": "",
"Settings_Metadata_Toggle": "",
@@ -553,75 +558,75 @@
"Settings_device_Scanners_desync_popup": "",
"Speedtest_Results": "",
"Systeminfo_CPU": "Processeur",
"Systeminfo_CPU_Cores": "C\u0153urs de processeur\u202f:",
"Systeminfo_CPU_Name": "Nom du processeur\u202f:",
"Systeminfo_CPU_Speed": "Vitesse du CPU\u202f:",
"Systeminfo_CPU_Temp": "Temp\u00e9rature du processeur\u202f:",
"Systeminfo_CPU_Vendor": "Fabriquant du processeur\u202f:",
"Systeminfo_Client_Resolution": "R\u00e9solution du navigateur\u202f:",
"Systeminfo_Client_User_Agent": "Agent utilisateur\u202f:",
"Systeminfo_General": "G\u00e9n\u00e9ral",
"Systeminfo_General_Date": "Date\u202f:",
"Systeminfo_General_Date2": "Date 2\u202f:",
"Systeminfo_General_Full_Date": "Date compl\u00e8te\u202f:",
"Systeminfo_General_TimeZone": "Fuseau horaire\u202f:",
"Systeminfo_Memory": "M\u00e9moire",
"Systeminfo_Memory_Total_Memory": "M\u00e9moire totale\u202f:",
"Systeminfo_Memory_Usage": "Utilisation de la m\u00e9moire:",
"Systeminfo_Memory_Usage_Percent": "% de la m\u00e9moire\u202f:",
"Systeminfo_Motherboard": "Carte m\u00e8re",
"Systeminfo_Motherboard_BIOS": "BIOS\u202f:",
"Systeminfo_Motherboard_BIOS_Date": "Date du BIOS\u202f:",
"Systeminfo_Motherboard_BIOS_Vendor": "Fabriquant du BIOS\u202f:",
"Systeminfo_Motherboard_Manufactured": "Fabriqu\u00e9 par\u202f:",
"Systeminfo_Motherboard_Name": "Nom\u202f:",
"Systeminfo_Motherboard_Revision": "R\u00e9vision\u202f:",
"Systeminfo_Network": "R\u00e9seau",
"Systeminfo_Network_Accept_Encoding": "Accepter l'encodage\u202f:",
"Systeminfo_Network_Accept_Language": "Accepter la langue\u202f:",
"Systeminfo_Network_Connection_Port": "Port de connexion\u202f:",
"Systeminfo_Network_HTTP_Host": "H\u00f4te HTTP\u202f:",
"Systeminfo_Network_HTTP_Referer": "R\u00e9f\u00e9rent HTTP\u202f:",
"Systeminfo_Network_HTTP_Referer_String": "Pas de r\u00e9f\u00e9rent HTTP",
"Systeminfo_Network_Hardware": "Mat\u00e9riel r\u00e9seau",
"Systeminfo_CPU_Cores": "Cœurs de processeur:",
"Systeminfo_CPU_Name": "Nom du processeur:",
"Systeminfo_CPU_Speed": "Vitesse du CPU:",
"Systeminfo_CPU_Temp": "Température du processeur:",
"Systeminfo_CPU_Vendor": "Fabriquant du processeur:",
"Systeminfo_Client_Resolution": "Résolution du navigateur:",
"Systeminfo_Client_User_Agent": "Agent utilisateur:",
"Systeminfo_General": "Général",
"Systeminfo_General_Date": "Date:",
"Systeminfo_General_Date2": "Date 2:",
"Systeminfo_General_Full_Date": "Date complète:",
"Systeminfo_General_TimeZone": "Fuseau horaire:",
"Systeminfo_Memory": "Mémoire",
"Systeminfo_Memory_Total_Memory": "Mémoire totale:",
"Systeminfo_Memory_Usage": "Utilisation de la mémoire:",
"Systeminfo_Memory_Usage_Percent": "% de la mémoire:",
"Systeminfo_Motherboard": "Carte mère",
"Systeminfo_Motherboard_BIOS": "BIOS:",
"Systeminfo_Motherboard_BIOS_Date": "Date du BIOS:",
"Systeminfo_Motherboard_BIOS_Vendor": "Fabriquant du BIOS:",
"Systeminfo_Motherboard_Manufactured": "Fabriqué par:",
"Systeminfo_Motherboard_Name": "Nom:",
"Systeminfo_Motherboard_Revision": "Révision:",
"Systeminfo_Network": "Réseau",
"Systeminfo_Network_Accept_Encoding": "Accepter l'encodage:",
"Systeminfo_Network_Accept_Language": "Accepter la langue:",
"Systeminfo_Network_Connection_Port": "Port de connexion:",
"Systeminfo_Network_HTTP_Host": "Hôte HTTP:",
"Systeminfo_Network_HTTP_Referer": "Référent HTTP:",
"Systeminfo_Network_HTTP_Referer_String": "Pas de référent HTTP",
"Systeminfo_Network_Hardware": "Matériel réseau",
"Systeminfo_Network_Hardware_Interface_Mask": "",
"Systeminfo_Network_Hardware_Interface_Name": "",
"Systeminfo_Network_Hardware_Interface_RX": "",
"Systeminfo_Network_Hardware_Interface_TX": "",
"Systeminfo_Network_IP": "IP Internet\u202f:",
"Systeminfo_Network_IP_Connection": "Connexion IP\u202f:",
"Systeminfo_Network_IP_Server": "IP du serveur\u202f:",
"Systeminfo_Network_MIME": "MIME\u202f:",
"Systeminfo_Network_Request_Method": "M\u00e9thode de demande\u202f:",
"Systeminfo_Network_Request_Time": "Heure de la demande\u202f:",
"Systeminfo_Network_Request_URI": "URI de la demande\u202f:",
"Systeminfo_Network_Secure_Connection": "Connexion s\u00e9curis\u00e9e\u202f:",
"Systeminfo_Network_IP": "IP Internet:",
"Systeminfo_Network_IP_Connection": "Connexion IP:",
"Systeminfo_Network_IP_Server": "IP du serveur:",
"Systeminfo_Network_MIME": "MIME:",
"Systeminfo_Network_Request_Method": "Méthode de demande:",
"Systeminfo_Network_Request_Time": "Heure de la demande:",
"Systeminfo_Network_Request_URI": "URI de la demande:",
"Systeminfo_Network_Secure_Connection": "Connexion sécurisée:",
"Systeminfo_Network_Secure_Connection_String": "",
"Systeminfo_Network_Server_Name": "Nom du serveur\u202f:",
"Systeminfo_Network_Server_Name": "Nom du serveur:",
"Systeminfo_Network_Server_Name_String": "Nom du serveur introuvable",
"Systeminfo_Network_Server_Query": "Requ\u00eate du serveur\u202f:",
"Systeminfo_Network_Server_Query_String": "Aucune cha\u00eene de requ\u00eate",
"Systeminfo_Network_Server_Version": "Version du serveur\u202f:",
"Systeminfo_Network_Server_Query": "Requête du serveur:",
"Systeminfo_Network_Server_Query_String": "Aucune chaîne de requête",
"Systeminfo_Network_Server_Version": "Version du serveur:",
"Systeminfo_Services": "Services",
"Systeminfo_Services_Description": "Description du service",
"Systeminfo_Services_Name": "Nom du service",
"Systeminfo_Storage": "Stockage",
"Systeminfo_Storage_Device": "Appareil\u202f:",
"Systeminfo_Storage_Mount": "Point de montage\u202f:",
"Systeminfo_Storage_Size": "Taille\u202f:",
"Systeminfo_Storage_Type": "Type\u202f:",
"Systeminfo_Storage_Device": "Appareil:",
"Systeminfo_Storage_Mount": "Point de montage:",
"Systeminfo_Storage_Size": "Taille:",
"Systeminfo_Storage_Type": "Type:",
"Systeminfo_Storage_Usage": "",
"Systeminfo_Storage_Usage_Free": "Libre\u202f:",
"Systeminfo_Storage_Usage_Free": "Libre:",
"Systeminfo_Storage_Usage_Mount": "",
"Systeminfo_Storage_Usage_Total": "Total\u202f:",
"Systeminfo_Storage_Usage_Used": "Utilis\u00e9\u202f:",
"Systeminfo_System": "Syst\u00e8me",
"Systeminfo_Storage_Usage_Total": "Total:",
"Systeminfo_Storage_Usage_Used": "Utilisé :",
"Systeminfo_System": "Système",
"Systeminfo_System_AVG": "",
"Systeminfo_System_Architecture": "Architecture\u202f:",
"Systeminfo_System_Kernel": "Noyau\u202f:",
"Systeminfo_System_Architecture": "Architecture:",
"Systeminfo_System_Kernel": "Noyau:",
"Systeminfo_System_OSVersion": "",
"Systeminfo_System_Running_Processes": "Processus en cours\u202f:",
"Systeminfo_System_System": "Syst\u00e8me\u202f:",
"Systeminfo_System_Running_Processes": "Processus en cours:",
"Systeminfo_System_System": "Système:",
"Systeminfo_System_Uname": "",
"Systeminfo_System_Uptime": "",
"Systeminfo_This_Client": "",
@@ -633,12 +638,12 @@
"UI_DEV_SECTIONS_name": "",
"UI_ICONS_description": "",
"UI_ICONS_name": "",
"UI_LANG_description": "S\u00e9lectionnez votre langue pr\u00e9f\u00e9r\u00e9 de l\u2019interface. Aidez \u00e0 traduire ou sugg\u00e9rez des langues dans le portail en ligne de <a href=\"https://hosted.weblate.org/projects/pialert/core/\" target=\"_blank\">Weblate</a>.",
"UI_LANG_description": "Sélectionnez votre langue préféré de linterface. Aidez à traduire ou suggérez des langues dans le portail en ligne de <a href=\"https://hosted.weblate.org/projects/pialert/core/\" target=\"_blank\">Weblate</a>.",
"UI_LANG_name": "",
"UI_MY_DEVICES_description": "",
"UI_MY_DEVICES_name": "",
"UI_NOT_RANDOM_MAC_description": "",
"UI_NOT_RANDOM_MAC_name": "Ne pas marquer comme al\u00e9atoire",
"UI_NOT_RANDOM_MAC_name": "Ne pas marquer comme aléatoire",
"UI_PRESENCE_description": "",
"UI_PRESENCE_name": "",
"UI_REFRESH_description": "",
@@ -656,25 +661,27 @@
"settings_core_label": "",
"settings_device_scanners": "",
"settings_device_scanners_icon": "",
"settings_device_scanners_info": "",
"settings_device_scanners_label": "Scanners d'appareils",
"settings_enabled": "Param\u00e8tres activ\u00e9s",
"settings_enabled": "Paramètres activés",
"settings_enabled_icon": "",
"settings_expand_all": "Tout d\u00e9velopper",
"settings_expand_all": "Tout développer",
"settings_imported": "",
"settings_imported_label": "Param\u00e8tres import\u00e9s",
"settings_imported_label": "Paramètres importés",
"settings_missing": "",
"settings_missing_block": "",
"settings_old": "Importation des param\u00e8tres et r\u00e9initialisation...",
"settings_old": "Importation des paramètres et réinitialisation...",
"settings_other_scanners": "",
"settings_other_scanners_icon": "",
"settings_other_scanners_label": "",
"settings_publishers": "",
"settings_publishers_icon": "",
"settings_publishers_label": "\u00c9diteurs",
"settings_publishers_info": "",
"settings_publishers_label": "Éditeurs",
"settings_saved": "",
"settings_system_icon": "",
"settings_system_label": "Syst\u00e8me",
"settings_system_label": "Système",
"settings_update_item_warning": "",
"test_event_icon": "",
"test_event_tooltip": ""
}
}

View File

@@ -1,5 +1,5 @@
{
"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_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_name": "Endpoint personalizzato",
"API_display_name": "API",
"API_icon": "<i class=\"fa fa-arrow-down-up-across-line\"></i>",
@@ -27,51 +27,51 @@
"BackDevDetail_Actions_Ask_Run": "Vuoi eseguire questa azione?",
"BackDevDetail_Actions_Not_Registered": "Azione non registrata: ",
"BackDevDetail_Actions_Title_Run": "Esegui azione",
"BackDevDetail_Copy_Ask": "Copiare i dettagli dal dispositivo dall'elenco a discesa (tutto in questa pagina verr\u00e0 sovrascritto)?",
"BackDevDetail_Copy_Ask": "Copiare i dettagli dal dispositivo dall'elenco a discesa (tutto in questa pagina verrà sovrascritto)?",
"BackDevDetail_Copy_Title": "Copia dettagli",
"BackDevDetail_Tools_WOL_error": "Il comando NON \u00e8 stato eseguito.",
"BackDevDetail_Tools_WOL_okay": "Il comando \u00e8 stato eseguito.",
"BackDevices_Arpscan_disabled": "Arp-Scan Disabilitata",
"BackDevices_Arpscan_enabled": "Arp-Scan Abilitata",
"BackDevices_Backup_CopError": "Non \u00e8 stato possibile salvare il database originale.",
"BackDevices_Backup_Failed": "Il backup \u00e8 stato eseguito parzialmente. L'archivio non \u00e8 stato creato o \u00e8 vuoto.",
"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_b": "Errore durante l'eliminazione dei Dispositivi",
"BackDevDetail_Tools_WOL_error": "Il comando NON è stato eseguito.",
"BackDevDetail_Tools_WOL_okay": "Il comando è stato eseguito.",
"BackDevices_Arpscan_disabled": "Arp-Scan disabilitata",
"BackDevices_Arpscan_enabled": "Arp-Scan abilitata",
"BackDevices_Backup_CopError": "Impossibile salvare il database originale.",
"BackDevices_Backup_Failed": "Il backup è stato eseguito parzialmente. L'archivio non è stato creato o è vuoto.",
"BackDevices_Backup_okay": "Il backup è stato eseguito correttamente con il nuovo archivio",
"BackDevices_DBTools_DelDevError_a": "Errore durante l'eliminazione del dispositivo",
"BackDevices_DBTools_DelDevError_b": "Errore durante l'eliminazione dei dispositivi",
"BackDevices_DBTools_DelDev_a": "Dispositivo eliminato",
"BackDevices_DBTools_DelDev_b": "Dispositivi 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_ImportCSVError": "Non \u00e8 stato possibile importare il file CSV. Assicurati che il formato del file sia corretto.",
"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_ImportCSVError": "Impossibile importare il file CSV. Assicurati che il formato del file sia corretto.",
"BackDevices_DBTools_ImportCSVMissing": "Impossibile trovare il file CSV in <b>/config/devices.csv.</b>",
"BackDevices_DBTools_Purge": "I backup più vecchi sono stati eliminati",
"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_UpgradeError": "Aggiornamento del Database fallito",
"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 \u00e8 stato possibile salvare il database originale.",
"BackDevices_Restore_Failed": "Ripristino fallito. Per favore effettuare il ripristino del backup manualmente.",
"BackDevices_DBTools_UpgradeError": "Aggiornamento del database non riuscito",
"BackDevices_Device_UpdDevError": "Errore durante l'aggiornamento dei dispositivi, riprova più tardi. Il database è probabilmente bloccato a causa di un'attività in corso.",
"BackDevices_Restore_CopError": "Impossibile salvare il database originale.",
"BackDevices_Restore_Failed": "Ripristino non riuscito. Ripristina il backup manualmente.",
"BackDevices_Restore_okay": "Ripristino eseguito correttamente.",
"BackDevices_darkmode_disabled": "Darkmode Disabilitata",
"BackDevices_darkmode_enabled": "Darkmode Abilitata",
"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",
"BackDevices_darkmode_disabled": "Modalità scura disabilitata",
"BackDevices_darkmode_enabled": "Modalità scura 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_name": "Elimina eventi più vecchi di",
"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\u00e0 sovrascritto",
"DevDetail_EveandAl_AlertAllEvents": "Notifica Tutti gli Eventi",
"DevDetail_EveandAl_AlertDown": "Avviso se down",
"DevDetail_Copy_Device_Tooltip": "Copia i dettagli dal dispositivo dall'elenco a discesa. Tutto in questa pagina verrà sovrascritto",
"DevDetail_EveandAl_AlertAllEvents": "Notifica tutti gli eventi",
"DevDetail_EveandAl_AlertDown": "Avviso disconnessione",
"DevDetail_EveandAl_Archived": "Archiviato",
"DevDetail_EveandAl_NewDevice": "Nuovo Dispositivo",
"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_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_RandomMAC": "MAC casuale",
"DevDetail_EveandAl_ScanCycle": "Scansiona dispositivo",
"DevDetail_EveandAl_ScanCycle_a": "Scansiona dispositivo",
"DevDetail_EveandAl_ScanCycle_z": "Non scansionare dispositivo",
"DevDetail_EveandAl_Skip": "Ignora notifiche ricorrenti per",
"DevDetail_EveandAl_Title": "<i class=\"fa fa-bolt\"></i> Configurazione Eventi & Alert",
"DevDetail_Events_CheckBox": "Nascondi eventi Connessione",
"DevDetail_EveandAl_Skip": "Salta notifiche ripetute per",
"DevDetail_EveandAl_Title": "<i class=\"fa fa-bolt\"></i> Configurazione Eventi e avvisi",
"DevDetail_Events_CheckBox": "Nascondi eventi di connessione",
"DevDetail_GoToNetworkNode": "Passa alla pagina Rete del nodo specificato.",
"DevDetail_Icon": "Icona",
"DevDetail_Icon_Descr": "Inserisci il nome di un'icona Font Awesome senza il prefisso fa- o con la classe completa, es.: fa fa-brands fa-apple.",
@@ -83,39 +83,41 @@
"DevDetail_MainInfo_Name": "Nome",
"DevDetail_MainInfo_Network": "<i class=\"fa fa-server\"></i> Nodo (MAC)",
"DevDetail_MainInfo_Network_Port": "<i class=\"fa fa-ethernet\"></i> Porta",
"DevDetail_MainInfo_Network_Site": "Sito",
"DevDetail_MainInfo_Network_Title": "<i class=\"fa fa-network-wired\"></i> Rete",
"DevDetail_MainInfo_Owner": "Proprietario",
"DevDetail_MainInfo_SSID": "SSID",
"DevDetail_MainInfo_Title": "<i class=\"fa fa-pencil\"></i> Informazioni principali",
"DevDetail_MainInfo_Type": "Tipo",
"DevDetail_MainInfo_Vendor": "Venditore",
"DevDetail_MainInfo_Vendor": "Produttore",
"DevDetail_MainInfo_mac": "MAC",
"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 \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_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_Network_Node_hover": "Seleziona il dispositivo di rete principale a cui è connesso il dispositivo corrente per popolare la struttura di rete.",
"DevDetail_Network_Port_hover": "La porta a cui è connesso questo dispositivo sul dispositivo di rete principale. Se lasciato vuoto, verrà visualizzata un'icona Wi-Fi nella struttura di rete.",
"DevDetail_Nmap_Scans": "Scansioni Nmap manuali",
"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_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_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_text": "Scansione Veloce: Scansiona meno porte (100) della scansione predefinita (pochi secondi)",
"DevDetail_Nmap_buttonSkipDiscovery": "Salta rilevazione host",
"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_buttonFast": "Scansione veloce",
"DevDetail_Nmap_buttonFast_text": "Scansione veloce: scansiona meno porte (100) della scansione predefinita (pochi secondi)",
"DevDetail_Nmap_buttonSkipDiscovery": "Salta 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_Owner_hover": "Chi \u00e8 il proprietario di questo dispositivo. Campo a testo libero.",
"DevDetail_Owner_hover": "Chi è il proprietario di questo dispositivo. Campo con testo libero.",
"DevDetail_Periodselect_All": "Tutte le info",
"DevDetail_Periodselect_LastMonth": "Ultimo Mese",
"DevDetail_Periodselect_LastWeek": "Ultima Settimana",
"DevDetail_Periodselect_LastYear": "Ultimo Anno",
"DevDetail_Periodselect_LastMonth": "Ultimo mese",
"DevDetail_Periodselect_LastWeek": "Ultima settimana",
"DevDetail_Periodselect_LastYear": "Ultimo anno",
"DevDetail_Periodselect_today": "Oggi",
"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\u00f9 a tendina.",
"DevDetail_SessionInfo_FirstSession": "Prima Sessione",
"DevDetail_Run_Actions_Title": "<i class=\"fa fa-play\"></i> Esegui azione sul dispositivo",
"DevDetail_Run_Actions_Tooltip": "Esegui un'azione sul dispositivo corrente dall'elenco a discesa.",
"DevDetail_SessionInfo_FirstSession": "Prima sessione",
"DevDetail_SessionInfo_LastIP": "Ultimo IP",
"DevDetail_SessionInfo_LastSession": "Ultima Sessione",
"DevDetail_SessionInfo_StaticIP": "IP Statico",
"DevDetail_SessionInfo_LastSession": "Ultimo offline",
"DevDetail_SessionInfo_StaticIP": "IP statico",
"DevDetail_SessionInfo_Status": "Stato",
"DevDetail_SessionInfo_Title": "<i class=\"fa fa-calendar\"></i> Info Sessione",
"DevDetail_SessionInfo_Title": "<i class=\"fa fa-calendar\"></i> Info sessione",
"DevDetail_SessionTable_Additionalinfo": "Info aggiuntive",
"DevDetail_SessionTable_Connection": "Connessione",
"DevDetail_SessionTable_Disconnection": "Disconnessione",
@@ -123,7 +125,7 @@
"DevDetail_SessionTable_IP": "IP",
"DevDetail_SessionTable_Order": "Ordine",
"DevDetail_Shortcut_CurrentStatus": "Stato attuale",
"DevDetail_Shortcut_DownAlerts": "Avvisi se down",
"DevDetail_Shortcut_DownAlerts": "Avvisi disconnessione",
"DevDetail_Shortcut_Presence": "Presenza",
"DevDetail_Shortcut_Sessions": "Sessioni",
"DevDetail_Tab_Details": "<i class=\"fa fa-info-circle\"></i> Dettagli",
@@ -131,117 +133,119 @@
"DevDetail_Tab_EventsTableDate": "Data",
"DevDetail_Tab_EventsTableEvent": "Tipo evento",
"DevDetail_Tab_EventsTableIP": "IP",
"DevDetail_Tab_EventsTableInfo": "Altre info",
"DevDetail_Tab_EventsTableInfo": "Ulteriori info",
"DevDetail_Tab_Nmap": "<i class=\"fa fa-ethernet\"></i> Nmap",
"DevDetail_Tab_NmapEmpty": "Nessuna porta trovata con Nmap su questo dispositivo.",
"DevDetail_Tab_NmapEmpty": "Nessuna porta rilevata con Nmap su questo dispositivo.",
"DevDetail_Tab_NmapTableExtra": "Extra",
"DevDetail_Tab_NmapTableHeader": "Risultati scansione programmata",
"DevDetail_Tab_NmapTableHeader": "Risultati scansione pianificata",
"DevDetail_Tab_NmapTableIndex": "Indice",
"DevDetail_Tab_NmapTablePort": "Porta",
"DevDetail_Tab_NmapTableService": "Servizio",
"DevDetail_Tab_NmapTableState": "Stato",
"DevDetail_Tab_NmapTableText": "Imposta una programmazione nelle <a href=\"/settings.php#NMAP_ACTIVE\">Impostazioni</a>",
"DevDetail_Tab_NmapTableText": "Imposta una pianificazione nelle <a href=\"/settings.php#NMAP_ACTIVE\">Impostazioni</a>",
"DevDetail_Tab_NmapTableTime": "Ora",
"DevDetail_Tab_Plugins": "<i class=\"fa fa-plug\"></i> Plugin",
"DevDetail_Tab_Presence": "<i class=\"fa fa-calendar\"></i> Presenza",
"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_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 \u00e8 verificato un errore",
"DevDetail_Tab_Tools_Internet_Info_Start": "Avvia Info Internet",
"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_Error": "Si è verificato un errore",
"DevDetail_Tab_Tools_Internet_Info_Start": "Avvia info Internet",
"DevDetail_Tab_Tools_Internet_Info_Title": "Info Internet",
"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 \u00e8 valido",
"DevDetail_Tab_Tools_Nslookup_Description": "Nslookup è uno strumento a riga di comando utilizzato per interrogare il Domain Name System (DNS). DNS è un sistema che traduce i nomi di dominio, 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_Start": "Avvia Nslookup",
"DevDetail_Tab_Tools_Nslookup_Title": "Nslookup",
"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_Title": "Test velocit\u00e0 online",
"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 \u00e8 valido",
"DevDetail_Tab_Tools_Speedtest_Description": "Lo strumento Test di velocità misura la velocità di download, la velocità di upload e la latenza della connessione Internet.",
"DevDetail_Tab_Tools_Speedtest_Start": "Avvia test di velocità",
"DevDetail_Tab_Tools_Speedtest_Title": "Test di velocità in linea",
"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_Error": "Errore: l'indirizzo IP non è valido",
"DevDetail_Tab_Tools_Traceroute_Start": "Avvia Traceroute",
"DevDetail_Tab_Tools_Traceroute_Title": "Traceroute",
"DevDetail_Tools_WOL": "Invia comando WoL (Wake-on-LAN) a ",
"DevDetail_Tools_WOL": "Invia comando WoL a ",
"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 \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\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_Tools_WOL_noti_text": "Il comando Wake-on-LAN viene inviato all'indirizzo di broadcast. Se la destinazione non si trova nella sottorete/VLAN di NetAlertX, il dispositivo di destinazione non risponderà.",
"DevDetail_Type_hover": "Il tipo del dispositivo. Se selezioni uno dei dispositivi di rete predefiniti (ad esempio: AP, Firewall, Router, Switch...) verranno visualizzati nella struttura di rete come possibili nodi della rete principale.",
"DevDetail_Vendor_hover": "Il produttore dovrebbe essere rilevato automaticamente. Puoi sovrascrivere o aggiungere un valore personalizzato.",
"DevDetail_WOL_Title": "<i class=\"fa fa-power-off\"></i> Wake-on-LAN",
"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_Tooltip": "Aggiungi una nuova icona non disponibile nel men\u00f9 a tendina a questo dispositivo.",
"DevDetail_button_Delete": "Elimina Dispositivo",
"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\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_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_Reset": "Ripristina cambiamenti",
"DevDetail_button_AddIcon": "Aggiungi nuova icona",
"DevDetail_button_AddIcon_Help": "Incolla un tag html SVG o l'icona del tag html Font Awesome. Leggi i <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\">Documenti sulle icone</a> per i dettagli.",
"DevDetail_button_AddIcon_Tooltip": "Aggiungi una nuova icona a questo dispositivo che non è ancora disponibile nel menu a discesa.",
"DevDetail_button_Delete": "Elimina dispositivo",
"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_OverwriteIcons": "Sovrascrivi icone",
"DevDetail_button_OverwriteIcons_Tooltip": "Sovrascrivi le icone di tutti i dispositivi con lo stesso tipo di dispositivo",
"DevDetail_button_OverwriteIcons_Warning": "Sei sicuro di voler sovrascrivere tutte le icone di tutti i dispositivi con lo stesso tipo di dispositivo come l'attuale tipo di dispositivo?",
"DevDetail_button_Reset": "Reimposta modifiche",
"DevDetail_button_Save": "Salva",
"Device_MultiEdit": "Modifica multipla",
"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_Backup": "Attento, 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_Fields": "Modifica campi:",
"Device_MultiEdit_MassActions": "Azioni di massa:",
"Device_MultiEdit_Tooltip": "Attenzione. Cliccando verr\u00e0 applicato il valore sulla sinistra a tutti i dispositivi selezionati.",
"Device_MultiEdit_Tooltip": "Attento. Facendo clic verrà applicato il valore sulla sinistra a tutti i dispositivi selezionati sopra.",
"Device_Searchbox": "Cerca",
"Device_Shortcut_AllDevices": "I Miei Dispositivi",
"Device_Shortcut_AllDevices": "Miei dispositivi",
"Device_Shortcut_Archived": "Archiviati",
"Device_Shortcut_Connected": "Connessi",
"Device_Shortcut_Devices": "Dispositivi",
"Device_Shortcut_DownAlerts": "Disconnessi & Offline",
"Device_Shortcut_DownOnly": "Disconnesso",
"Device_Shortcut_DownAlerts": "Disconnessi e offline",
"Device_Shortcut_DownOnly": "Disconnessi",
"Device_Shortcut_Favorites": "Preferiti",
"Device_Shortcut_NewDevices": "Nuovi Dispositivi",
"Device_Shortcut_OnlineChart": "Presenza Dispositivo",
"Device_Shortcut_NewDevices": "Nuovi dispositivi",
"Device_Shortcut_OnlineChart": "Presenza dispositivo",
"Device_TableHead_Connected_Devices": "Connessioni",
"Device_TableHead_Favorite": "Preferito",
"Device_TableHead_FirstSession": "Prima Sessione",
"Device_TableHead_GUID": "",
"Device_TableHead_FirstSession": "Prima sessione",
"Device_TableHead_GUID": "GUID",
"Device_TableHead_Group": "Gruppo",
"Device_TableHead_Icon": "Icona",
"Device_TableHead_LastIP": "Ultimo IP",
"Device_TableHead_LastIPOrder": "Ultimo ordine IP",
"Device_TableHead_LastSession": "Ultima Sessione",
"Device_TableHead_LastIPOrder": "Ordina per ultimo IP",
"Device_TableHead_LastSession": "Ultimo offline",
"Device_TableHead_Location": "Posizione",
"Device_TableHead_MAC": "MAC casuale",
"Device_TableHead_MAC_full": "MAC completo",
"Device_TableHead_Name": "Nome",
"Device_TableHead_NetworkSite": "Sito di rete",
"Device_TableHead_Owner": "Proprietario",
"Device_TableHead_Parent_MAC": "MAC del nodo padre",
"Device_TableHead_Parent_MAC": "MAC del nodo principale",
"Device_TableHead_Port": "Porta",
"Device_TableHead_RowID": "ID riga",
"Device_TableHead_Rowid": "ID riga",
"Device_TableHead_SSID": "SSID",
"Device_TableHead_Status": "Stato",
"Device_TableHead_SyncHubNodeName": "",
"Device_TableHead_SyncHubNodeName": "Sincronizza nodo",
"Device_TableHead_Type": "Tipo",
"Device_TableHead_Vendor": "Produttore",
"Device_Table_Not_Network_Device": "Non configurato come dispositivo di rete",
"Device_Table_info": "_START_ - _END_ di _TOTAL_ elementi",
"Device_Table_nav_next": "Prossimo",
"Device_Table_info": "Visualizzazione da _START_ a _END_ di _TOTAL_ voci",
"Device_Table_nav_next": "Successivo",
"Device_Table_nav_prev": "Precedente",
"Device_Tablelenght": "Mostra _MENU_ elementi",
"Device_Tablelenght_all": "Tutti",
"Device_Title": "Dispositivi",
"Donations_Others": "Altri",
"Donations_Platforms": "Piattaforme Sponsor",
"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_Platforms": "Piattaforme sponsor",
"Donations_Text": "Hey 👋! </br> Grazie per aver cliccato su questa voce di menu 😅 </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 a NetAlertX. Riceverai più funzionalità, un'applicazione più rifinita e con meno bug.</br> </br> Grazie per aver letto, ti 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_Title": "Donazioni",
"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",
"Email_display_name": "Email",
"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_name": "Abilita plugin",
"Email_display_name": "E-mail",
"Email_icon": "<i class=\"fa fa-at\"></i>",
"Events_Loading": "Caricamento...",
"Events_Periodselect_All": "Tutte le info",
"Events_Periodselect_LastMonth": "Ultimo mese",
"Events_Periodselect_LastWeek": "Ultima Settimana",
"Events_Periodselect_LastYear": "Ultimo Anno",
"Events_Periodselect_LastWeek": "Ultima settimana",
"Events_Periodselect_LastYear": "Ultimo anno",
"Events_Periodselect_today": "Oggi",
"Events_Searchbox": "Cerca",
"Events_Shortcut_AllEvents": "Tutti gli Eventi",
"Events_Shortcut_DownAlerts": "Notifiche di Disconnessione",
"Events_Shortcut_AllEvents": "Tutti gli eventi",
"Events_Shortcut_DownAlerts": "Avvisi disconnessione",
"Events_Shortcut_Events": "Eventi",
"Events_Shortcut_MissSessions": "Sessioni mancanti",
"Events_Shortcut_NewDevices": "Nuovi Dispositivi",
"Events_Shortcut_NewDevices": "Nuovi dispositivi",
"Events_Shortcut_Sessions": "Sessioni",
"Events_Shortcut_VoidSessions": "Sessioni annullate",
"Events_TableHead_AdditionalInfo": "Info aggiuntive",
@@ -251,14 +255,14 @@
"Events_TableHead_Disconnection": "Disconnessione",
"Events_TableHead_Duration": "Durata",
"Events_TableHead_DurationOrder": "Ordine durata",
"Events_TableHead_EventType": "Tipo Evento",
"Events_TableHead_EventType": "Tipo evento",
"Events_TableHead_IP": "IP",
"Events_TableHead_IPOrder": "Ordine IP",
"Events_TableHead_Order": "Ordine",
"Events_TableHead_Owner": "Proprietario",
"Events_TableHead_PendingAlert": "Avviso in sospeso",
"Events_Table_info": "_START_ - _END_ di _TOTAL_ elementi",
"Events_Table_nav_next": "Prossimo",
"Events_Table_info": "Visualizzazione da _START_ a _END_ di _TOTAL_ voci",
"Events_Table_nav_next": "Successivo",
"Events_Table_nav_prev": "Precedente",
"Events_Tablelenght": "Mostra _MENU_ elementi",
"Events_Tablelenght_all": "Tutti",
@@ -266,23 +270,24 @@
"Gen_Action": "Azione",
"Gen_Add": "Aggiungi",
"Gen_Add_All": "Aggiungi tutti",
"Gen_All_Devices": "Tutti i dispositivi",
"Gen_AreYouSure": "Sei sicuro?",
"Gen_Backup": "Esegui Backup",
"Gen_Backup": "Esegui backup",
"Gen_Cancel": "Annulla",
"Gen_Copy": "Esegui",
"Gen_DataUpdatedUITakesTime": "OK: l'aggiornamento dell'interfaccia utente potrebbe richiedere del tempo se \u00e8 in esecuzione una scansione.",
"Gen_DataUpdatedUITakesTime": "OK: l'aggiornamento dell'interfaccia utente potrebbe richiedere del tempo se è in esecuzione una scansione.",
"Gen_Delete": "Elimina",
"Gen_DeleteAll": "Elimina tutti",
"Gen_Error": "Errore",
"Gen_Filter": "Filtra",
"Gen_LockedDB": "ERRORE - Il DB potrebbe essere bloccato - Controlla gli strumenti sviluppatore (F12) -> Console o riprova pi\u00f9 tardi.",
"Gen_Filter": "Filtro",
"Gen_LockedDB": "ERRORE: il DB potrebbe essere bloccato, controlla F12 Strumenti di sviluppo -> Console o riprova più tardi.",
"Gen_Offline": "Offline",
"Gen_Okay": "Ok",
"Gen_Purge": "Svuota",
"Gen_ReadDocs": "Leggi di pi\u00f9 nella documentazione.",
"Gen_ReadDocs": "Maggiori informazioni nella documentazione.",
"Gen_Remove_All": "Rimuovi tutti",
"Gen_Remove_Last": "Rimuovi ultimo",
"Gen_Restore": "Esegui Ripristino",
"Gen_Restore": "Esegui ripristino",
"Gen_Run": "Esegui",
"Gen_Save": "Salva",
"Gen_Saved": "Salvato",
@@ -294,60 +299,60 @@
"Gen_Update": "Aggiorna",
"Gen_Update_Value": "Aggiorna valore",
"Gen_Warning": "Avviso",
"Gen_Work_In_Progress": "Work in progress, \u00e8 un buon momento per un feedback a https://github.com/jokob-sk/NetAlertX/issues",
"Gen_Work_In_Progress": "Lavori in corso, è quindi un buon momento per un feedback su https://github.com/jokob-sk/NetAlertX/issues",
"General_display_name": "Generale",
"General_icon": "<i class=\"fa fa-gears\"></i>",
"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_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_name": "Mantieni nuovi dispositivi per",
"HelpFAQ_Cat_Detail": "Dettagli",
"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_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_300_text_a": "indica 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": "designa il numero di porta in cui il dispositivo attualmente modificato è connesso a questo dispositivo di rete. Leggi <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\">questa guida</a> per ulteriori informazioni.",
"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_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_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_302_head_a": "Cosa significa ",
"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 \u00e8 necessario agire direttamente sulle impostazioni di rete del dispositivo.",
"HelpFAQ_Cat_Detail_303_head": "Cosa \u00e8 Nmap e a cosa serve?",
"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_Detail_302_head_b": "e perché 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_303_head": "Cosa è 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_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\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_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_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_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 \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 \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_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 \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_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\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 &gt; 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_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_100_head": "L'orologio in alto a destra e gli orari degli eventi/presenze non sono corretti (differenza oraria).",
"HelpFAQ_Cat_General_100_text_a": "Sul tuo PC è impostato il seguente fuso orario per l'ambiente PHP:",
"HelpFAQ_Cat_General_100_text_b": "Se questo non è il fuso orario in cui ti trovi, dovresti cambiarlo nel file di configurazione PHP. Lo puoi trovare in questa directory:",
"HelpFAQ_Cat_General_100_text_c": "Cerca in questo file il valore \"date.timezone\", rimuovi il \";\" ad inizio riga se presente e inserisci il fuso orario desiderato. Una lista con i fusi orari supportati è presente a questo <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 \"blocca\".",
"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_102_head": "Ricevo il messaggio che il database è di 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 è ancora di sola lettura, prova a reinstallare o ripristinare un backup del database dalla pagina di manutenzione.",
"HelpFAQ_Cat_General_102docker_head": "Problemi del database (errori AJAX, sola lettura, non trovato)",
"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 &gt; 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_103_head": "La pagina di accesso non viene visualizzata, anche dopo aver modificato 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 su <span class=\"text-danger help_faq_code\">True</span>.",
"HelpFAQ_Cat_Network_600_head": "A cosa serve questa pagina?",
"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_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 ulteriori informazioni.",
"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_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\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 \u00e8 \"Offline\".",
"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_Cat_Presence_400_head": "I dispositivi vengono visualizzati con un contrassegno 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_401_head": "Un dispositivo viene visualizzato come presente anche se è \"Offline\".",
"HelpFAQ_Cat_Presence_401_text": "Se questo accade, hai la possibilità di eliminare gli eventi per il dispositivo in questione (visualizzazione dettagli). Un'altra possibilità potrebbe essere quella di accendere il dispositivo, attendere fino a quando NetAlertX non riconosce il dispositivo come \"online\" con la scansione successiva e poi spegnere il dispositivo. Ora NetAlertX dovrebbe annotare correttamente lo stato del dispositivo nel database con la scansione successiva.",
"HelpFAQ_Title": "Aiuto / FAQ",
"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_description": "Quali Plugin caricare. L'aggiunta di 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_name": "Plugin caricati",
"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_description": "Questa impostazione abilita un log più dettagliato. Utile per il debug degli eventi salvati nel database.",
"LOG_LEVEL_name": "Stampa log aggiuntivo",
"Loading": "Caricamento...",
"Login_Box": "Inserisci la tua password",
"Login_Default_PWD": "La password predefinita \"123456\" \u00e8 ancora attiva.",
"Login_Default_PWD": "La password predefinita \"123456\" è ancora attiva.",
"Login_Psw-box": "Password",
"Login_Psw_alert": "Avviso password!",
"Login_Psw_folder": "nella cartella di configurazione.",
"Login_Psw_new": "nuova_password",
"Login_Psw_run": "Per cambiare la password esegui:",
"Login_Remember": "Ricordami",
"Login_Remember": "Ricorda",
"Login_Remember_small": "(valido per 7 giorni)",
"Login_Submit": "Accedi",
"Login_Toggle_Alert_headline": "Avviso password!",
@@ -359,93 +364,93 @@
"Maintenance_Tool_ExportCSV": "Esporta CSV",
"Maintenance_Tool_ExportCSV_noti": "Esporta CSV",
"Maintenance_Tool_ExportCSV_noti_text": "Sei sicuro di voler generare un file CSV?",
"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\">Backup CSV</a>.",
"Maintenance_Tool_ImportCSV": "Importa CSV",
"Maintenance_Tool_ImportCSV_noti": "Importa CSV",
"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\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_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_text": "Abilita o disabilita arp-scan. Quando arp-scan viene disabilitata, rimane tale fino ad una nuova abilitazione. Le scansioni attive non vengono annullate.",
"Maintenance_Tool_backup": "Backup Database",
"Maintenance_Tool_backup_noti": "Backup Database",
"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_ImportCSV_noti_text": "Sei sicuro di voler importare il file CSV? Questa operazione sovrascriverà tutti i dispositivi presenti nel database.",
"Maintenance_Tool_ImportCSV_text": "Prima di utilizzare questa funzione, 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_arpscansw": "Attiva/disattiva arp-Scan",
"Maintenance_Tool_arpscansw_noti": "Attiva o disattiva arp-Scan",
"Maintenance_Tool_arpscansw_noti_text": "Una volta disattivata la scansione rimane disattivata finché non viene nuovamente attivata.",
"Maintenance_Tool_arpscansw_text": "Attivazione o disattivazione dell'arp-scan. Una volta disattivata la scansione rimane disattivata finché non viene nuovamente attivata. Le scansioni attive non vengono annullate.",
"Maintenance_Tool_backup": "Backup DB",
"Maintenance_Tool_backup_noti": "Backup DB",
"Maintenance_Tool_backup_noti_text": "Sei sicuro di voler eseguire il backup del DB? Assicurati che nessuna scansione sia attualmente in esecuzione.",
"Maintenance_Tool_backup_text": "I backup del database si trovano nella directory del database come archivio zip, denominato con la data di creazione. Non esiste un numero massimo di backup.",
"Maintenance_Tool_check_visible": "Deseleziona per nascondere la colonna.",
"Maintenance_Tool_darkmode": "Cambia modalit\u00e0 (Scuro/Chiaro)",
"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_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\u00e0 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\u00e0 di rete?",
"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_noti": "Elimina Dispositivi",
"Maintenance_Tool_darkmode": "Alterna modalità (Scuro/Chiaro)",
"Maintenance_Tool_darkmode_noti": "Alterna modalità",
"Maintenance_Tool_darkmode_noti_text": "Dopo il cambio di tema, la pagina tenta di ricaricarsi per attivare la modifica. Potrebbe essere necessaria la cancellazione della cache.",
"Maintenance_Tool_darkmode_text": "Alterna 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_del_ActHistory": "Eliminazione delle attività di rete",
"Maintenance_Tool_del_ActHistory_noti": "Elimina attività di rete",
"Maintenance_Tool_del_ActHistory_noti_text": "Sei sicuro di voler reimpostare l'attività di rete?",
"Maintenance_Tool_del_ActHistory_text": "Il grafico dell'attività di rete viene reimpostato. Questo non influisce sugli eventi.",
"Maintenance_Tool_del_alldev": "Elimina tutti i 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_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_allevents30": "Elimina tutti gli eventi meno recenti di 30 giorni",
"Maintenance_Tool_del_alldev_text": "Prima di utilizzare questa funzione, esegui un backup. L'eliminazione non può essere annullata. Tutti i dispositivi verranno eliminati dal database.",
"Maintenance_Tool_del_allevents": "Elimina eventi (reimposta presenza)",
"Maintenance_Tool_del_allevents30": "Elimina tutti gli eventi più vecchi di 30 giorni",
"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\u00e0 la Presenza dei Dispositivi.",
"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_allevents30_noti_text": "Sei sicuro di voler eliminare tutti gli eventi più vecchi di 30 giorni? Questo reimposterà la presenza di tutti i dispositivi.",
"Maintenance_Tool_del_allevents30_text": "Prima di utilizzare questa funzione, esegui un backup. L'eliminazione non può essere annullata. Tutti gli eventi presenti nel database più vecchi di 30 giorni verranno eliminati. In quel momento verrà reimpostata la presenza di tutti i dispositivi. Questo può portare a sessioni non valide e significa che i dispositivi vengono visualizzati come \"presenti\" anche se sono offline. Una scansione mentre il dispositivo in questione è online risolve il problema.",
"Maintenance_Tool_del_allevents_noti": "Elimina eventi",
"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\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_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_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_allevents_noti_text": "Sei sicuro di voler eliminare tutti gli eventi? Questo reimposterà la presenza di tutti i dispositivi.",
"Maintenance_Tool_del_allevents_text": "Prima di utilizzare questa funzione, esegui un backup. L'eliminazione non può essere annullata. Tutti gli eventi presenti nel database verranno eliminati. In quel momento verrà reimpostata la presenza di tutti i dispositivi. Questo può portare a sessioni non valide e significa che i dispositivi vengono visualizzati come \"presenti\" anche se sono offline. Una scansione mentre il dispositivo in questione è online risolve il problema.",
"Maintenance_Tool_del_empty_macs": "Elimina dispositivi con MAC vuoti",
"Maintenance_Tool_del_empty_macs_noti": "Elimina dispositivi",
"Maintenance_Tool_del_empty_macs_noti_text": "Sei sicuro di voler eliminare tutti i dispositivi con indirizzi MAC vuoti?<br>(forse preferisci archiviarli)",
"Maintenance_Tool_del_empty_macs_text": "Prima di utilizzare questa funzione, esegui un backup. L'eliminazione non può essere annullata. Tutti i dispositivi senza indirizzo MAC verranno eliminati dal database.",
"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\u00f2 essere annullata. Tutti i dispositivi selezionati verranno eliminati dal database.",
"Maintenance_Tool_del_selecteddev_text": "Prima di utilizzare questa funzione, esegui un backup. L'eliminazione non può essere annullata. Tutti i dispositivi selezionati verranno eliminati dal database.",
"Maintenance_Tool_del_unknowndev": "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_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\u00e0 e l'ordine delle colonne nella pagina <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i> Dispositivi</b></a>.",
"Maintenance_Tool_del_unknowndev_text": "Prima di utilizzare questa funzione, esegui un backup. L'eliminazione non può 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_drag_me": "Trascinami per riordinare le colonne.",
"Maintenance_Tool_order_columns_text": "Maintenance_Tool_order_columns_text",
"Maintenance_Tool_purgebackup": "Svuota Backup",
"Maintenance_Tool_purgebackup_noti": "Svuota Backup",
"Maintenance_Tool_purgebackup_noti_text": "Sei sicuro di voler eliminare tutti i backup eccetto gli ultimi 3?",
"Maintenance_Tool_purgebackup_text": "Tutti i backup verranno eliminati eccetto gli ultimi 3.",
"Maintenance_Tool_purgebackup_noti_text": "Sei sicuro di voler eliminare tutti i backup tranne gli ultimi 3?",
"Maintenance_Tool_purgebackup_text": "Tutti i backup verranno eliminati tranne gli ultimi 3.",
"Maintenance_Tool_restore": "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_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_restore_noti_text": "Sei sicuro di voler eseguire il ripristino del DB? Assicurati che nessuna scansione sia attualmente in esecuzione.",
"Maintenance_Tool_restore_text": "L'ultimo backup p essere ripristinato tramite il pulsante, ma i backup più vecchi possono essere ripristinati solo manualmente. Dopo il ripristino, effettuare un controllo di integrità sul database per sicurezza, nel caso in cui il db fosse attualmente in accesso di scrittura quando è stato creato il backup.",
"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_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_Tool_upgrade_database_text": "Questo pulsante aggiornerà il database per abilitare il grafico dell'attività di rete nelle ultime 12 ore. Esegui il backup del database in caso di problemi.",
"Maintenance_Tools_Tab_BackupRestore": "Backup / Ripristino",
"Maintenance_Tools_Tab_Logging": "Log",
"Maintenance_Tools_Tab_Settings": "Impostazioni",
"Maintenance_Tools_Tab_Tools": "Strumenti",
"Maintenance_Tools_Tab_UISettings": "Impostazioni UI",
"Maintenance_arp_status": "Stato scansione",
"Maintenance_arp_status_off": "\u00e8 attualmente disabilitato",
"Maintenance_arp_status_on": "scansione/i attualmente in esecuzione",
"Maintenance_arp_status_off": "è attualmente disabilitato",
"Maintenance_arp_status_on": "scansioni attualmente in esecuzione",
"Maintenance_built_on": "Rilasciato il",
"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_found": "backup sono stati trovati",
"Maintenance_current_version": "Sei aggiornato. Scopri <a href=\"https://github.com/jokob-sk/NetAlertX/issues/138\" target=\"_blank\">a cosa sto lavorando</a>.",
"Maintenance_database_backup": "Backup DB",
"Maintenance_database_backup_found": "backup trovati",
"Maintenance_database_backup_total": "utilizzo totale disco",
"Maintenance_database_lastmod": "Ultima modifica",
"Maintenance_database_path": "Percorso database",
"Maintenance_database_rows": "Tabella (Righe)",
"Maintenance_database_size": "Dimensione Database",
"Maintenance_database_rows": "Tabella (righe)",
"Maintenance_database_size": "Dimensione database",
"Maintenance_lang_selector_apply": "Applica",
"Maintenance_lang_selector_empty": "Scegli 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_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_lang_selector_text": "Questa modifica avviene lato client, quindi influisce solo sul browser attualmente in uso.",
"Maintenance_new_version": "🆕 È 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_empty": "Seleziona una Skin",
"Maintenance_themeselector_lable": "Seleziona Skin",
"Maintenance_themeselector_empty": "Scegli una skin",
"Maintenance_themeselector_lable": "Seleziona skin",
"Maintenance_themeselector_text": "Questa modifica avviene lato server, quindi influenza tutti i dispositivi in uso.",
"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\u00e0 presenti, aggiungili soltanto.",
"NETWORK_DEVICE_TYPES_name": "Tipologie Dispositivi di Rete",
"Maintenance_version": "Aggiornamenti app",
"NETWORK_DEVICE_TYPES_description": "Quali tipi di dispositivi possono essere utilizzati come dispositivi di rete nella visualizzazione di rete. Il tipo di dispositivo deve corrispondere esattamente all'impostazione <code>Tipo</code> su un dispositivo specifico in dettagli dispositivo. Non rimuovere i tipi esistenti, aggiungine solo di nuovi.",
"NETWORK_DEVICE_TYPES_name": "Tipi di dispositivi di rete",
"Navigation_About": "Informazioni su",
"Navigation_Devices": "Dispositivi",
"Navigation_Donations": "Donazioni",
@@ -462,64 +467,64 @@
"Navigation_Settings": "Impostazioni",
"Navigation_SystemInfo": "Info sistema",
"Navigation_Workflows": "Workflow",
"Network_Assign": "Connetti a questo <i class=\"fa fa-server\"></i> Nodo di Rete",
"Network_Cant_Assign": "Non \u00e8 possibile assegnare il nodo Internet come nodo foglia.",
"Network_Assign": "Connetti al nodo di rete <i class=\"fa fa-server\"></i> sopra",
"Network_Cant_Assign": "Impossibile assegnare il nodo Internet root come nodo foglia figlio.",
"Network_Configuration_Error": "Errore di configurazione",
"Network_Connected": "Dispositivi connessi",
"Network_ManageAdd": "Aggiungi Dispositivo",
"Network_ManageAdd_Name": "Nome Dispositivo",
"Network_ManageAdd": "Aggiungi dispositivo",
"Network_ManageAdd_Name": "Nome dispositivo",
"Network_ManageAdd_Name_text": "Nome senza caratteri speciali",
"Network_ManageAdd_Port": "Numero porta",
"Network_ManageAdd_Port": "Conteggio porte",
"Network_ManageAdd_Port_text": "lascia vuoto per WiFi e Powerline",
"Network_ManageAdd_Submit": "Aggiungi Dispositivo",
"Network_ManageAdd_Type": "Tipo Dispositivo",
"Network_ManageAdd_Type_text": "-- Seleziona Tipo --",
"Network_ManageAdd_Submit": "Aggiungi dispositivo",
"Network_ManageAdd_Type": "Tipo dispositivo",
"Network_ManageAdd_Type_text": "-- Seleziona tipo --",
"Network_ManageAssign": "Assegna",
"Network_ManageDel": "Elimina Dispositivo",
"Network_ManageDel": "Elimina dispositivo",
"Network_ManageDel_Name": "Dispositivo da eliminare",
"Network_ManageDel_Name_text": "-- Seleziona Dispositivo --",
"Network_ManageDel_Name_text": "-- Seleziona dispositivo --",
"Network_ManageDel_Submit": "Elimina",
"Network_ManageDevices": "Gestisci Dispositivi",
"Network_ManageEdit": "Aggiorna Dispositivo",
"Network_ManageDevices": "Gestisci dispositivi",
"Network_ManageEdit": "Aggiorna dispositivo",
"Network_ManageEdit_ID": "Dispositivo da aggiornare",
"Network_ManageEdit_ID_text": "-- Seleziona Dispositivo da modificare --",
"Network_ManageEdit_Name": "Nuovo nome Dispositivo",
"Network_ManageEdit_ID_text": "-- Seleziona dispositivo per la modifica --",
"Network_ManageEdit_Name": "Nuovo nome dispositivo",
"Network_ManageEdit_Name_text": "Nome senza caratteri speciali",
"Network_ManageEdit_Port": " Nuovo numero porta",
"Network_ManageEdit_Port": " Nuovo conteggio porte",
"Network_ManageEdit_Port_text": "lascia vuoto per WiFi e Powerline",
"Network_ManageEdit_Submit": "Salva modifiche",
"Network_ManageEdit_Type": "Nuovo tipo Dispositivo",
"Network_ManageEdit_Type_text": "-- Seleziona Tipo --",
"Network_ManageEdit_Type": "Nuovo tipo dispositivo",
"Network_ManageEdit_Type_text": "-- Seleziona tipo --",
"Network_ManageLeaf": "Gestisci assegnazione",
"Network_ManageUnassign": "Annulla assegnazione",
"Network_NoAssignedDevices": "Questo nodo di rete non ha nessun dispositivo assegnato (nodi foglia). Assegnane uno dalla vista in basso o vai alla pagina di <b><i class=\"fa fa-info-circle\"></i> Dettaglio</b> di un qualsiasi dispositivo in <a href=\"devices.php\"><b><i class=\"fa fa-laptop\"></i> Dispositivi</b></a>, e assegnalo a un <b><i class=\"fa fa-server\"></i> Nodo di Rete (MAC)</b> e una <b><i class=\"fa fa-ethernet\"></i> Porta</b>.",
"Network_NoAssignedDevices": "A questo nodo di rete non sono assegnati dispositivi (nodi foglia). Assegnane uno dall'elenco qui sotto o vai alla scheda <b><i class=\"fa fa-info-circle\"></i>Dettagli</b> di qualsiasi dispositivo in <a href=\"devices.php\"><b > <i class=\"fa fa-laptop\"></i>Dispositivi</b></a> e assegnalo a un <b><i class=\"fa fa-server\"></i>Nodo di rete (MAC)</b> e una <b><i class=\"fa fa-ethernet\"></i>Porta</b>.",
"Network_NoDevices": "Nessun dispositivo da configurare",
"Network_Node": "Nodo di Rete",
"Network_Node_Name": "Nome Nodo",
"Network_Parent": "Dispositivo di Rete padre",
"Network_Node": "Nodo di rete",
"Network_Node_Name": "Nome nodo",
"Network_Parent": "Dispositivo di rete principale",
"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 \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_Table_Hostname": "Hostname",
"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_Unconfigurable": "Radice non configurabile",
"Network_Table_Hostname": "Nome host",
"Network_Table_IP": "IP",
"Network_Table_State": "Stato",
"Network_Title": "Panoramica di Rete",
"Network_Title": "Panoramica rete",
"Network_UnassignedDevices": "Dispositivi non assegnati",
"Notifications_All": "Tutte le notifiche",
"Notifications_Mark_All_Read": "Segna tutto come letto",
"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 è <code>123456</code>. Per modificare la password esegui <code>/app/back/pialert-cli</code> nel contenitore o utilizza il <a onclick=\"toggleAllSettings()\" href=\"#SETPWD_RUN\"><code>SETPWD_RUN</code>plugin imposta password</a>.",
"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, viene mostrata una finestra di login. Leggi attentamente qui sotto se rimani bloccato fuori dall'istanza.",
"PIALERT_WEB_PROTECTION_name": "Abilita login",
"PLUGINS_KEEP_HIST_description": "Quanti risultati scansione nello Storico Plugin devono essere mantenuti (per Plugin, non specifico per dispositivo).",
"PLUGINS_KEEP_HIST_description": "Quante voci dei risultati della scansione della cronologia dei plugin devono essere conservate (per plugin e non per dispositivo specifico).",
"PLUGINS_KEEP_HIST_name": "Storico plugin",
"Plugins_DeleteAll": "Elimina tutti (i filtri vengono ignorati)",
"Plugins_Filters_Mac": "Filtro MAC",
"Plugins_History": "Storico eventi",
"Plugins_Objects": "Oggetti plugin",
"Plugins_Out_of": "di",
"Plugins_Out_of": "fuori da",
"Plugins_Unprocessed_Events": "Eventi non processati",
"Plugins_no_control": "Non \u00e8 stato trovato nessun form control per visualizzare questo valore.",
"Plugins_no_control": "Nessun controllo del modulo trovato per visualizzare questo valore.",
"Presence_CalHead_day": "giorno",
"Presence_CalHead_lang": "en-us",
"Presence_CalHead_month": "mese",
@@ -528,38 +533,38 @@
"Presence_CalHead_year": "anno",
"Presence_CallHead_Devices": "Dispositivi",
"Presence_Loading": "Caricamento...",
"Presence_Shortcut_AllDevices": "I Miei Dispositivi",
"Presence_Shortcut_AllDevices": "Miei dispositivi",
"Presence_Shortcut_Archived": "Archiviati",
"Presence_Shortcut_Connected": "Connessi",
"Presence_Shortcut_Devices": "Dispositivi",
"Presence_Shortcut_DownAlerts": "Alert di Disconnessione",
"Presence_Shortcut_DownAlerts": "Avvisi disconnessione",
"Presence_Shortcut_Favorites": "Preferiti",
"Presence_Shortcut_NewDevices": "Nuovi Dispositivi",
"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>).",
"Presence_Shortcut_NewDevices": "Nuovi dispositivi",
"Presence_Title": "Presenza per dispositivo",
"REPORT_DASHBOARD_URL_description": "Questo URL viene utilizzato come base per generare collegamenti nei report HTML (ad esempio: e-mail). Inserisci l'URL completo che inizia con <code>http://</code> incluso il numero di porta (nessuna barra finale <code>/</code>).",
"REPORT_DASHBOARD_URL_name": "URL NetAlertX",
"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_name": "Abilita email",
"REPORT_TITLE": "Report",
"RandomMAC_hover": "Autorilevato - indica se l'indirizzo MAC del dispositivo è casuale.",
"Reports_Sent_Log": "Registro dei report inviati",
"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.",
"SYSTEM_TITLE": "Informazioni di Sistema",
"REPORT_ERROR": "La pagina che stai cercando è momentaneamente non disponibile, riprova tra qualche secondo",
"REPORT_MAIL_description": "Se abilitato, viene inviata un'e-mail con un elenco delle modifiche a cui sei iscritto. Compila anche tutte le restanti impostazioni relative alla configurazione SMTP. In caso di problemi, imposta <code>LOG_LEVEL</code> su <code>debug</code> e controlla il <a href=\"/maintenance.php#tab_Logging\">log degli errori</a>.",
"REPORT_MAIL_name": "Abilita e-mail",
"REPORT_TITLE": "Rapporto",
"RandomMAC_hover": "Rilevato automaticamente: indica se il dispositivo genera il suo indirizzo MAC casualmente.",
"Reports_Sent_Log": "Log rapporti inviati",
"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 impostalo attentamente con la maschera di rete e l'interfaccia appropriate.",
"SYSTEM_TITLE": "Informazioni sistema",
"Setting_Override": "Sovrascrivi valore",
"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_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\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",
"Setting_Override_Description": "L'abilitazione di questa opzione sovrascriverà il valore predefinito fornito dall'app con il valore specificato sopra.",
"Settings_Metadata_Toggle": "Mostra/nascondi i metadati per l'impostazione specificata.",
"Settings_device_Scanners_desync": "⚠ Le pianificazioni dello scanner del dispositivo non sono sincronizzate.",
"Settings_device_Scanners_desync_popup": "Gli orari degli scanner dei dispositivi (<code>*_RUN_SCHD</code>) non sono gli stessi. Questo comporterà notifiche online/offline incoerenti del dispositivo. A meno che ciò non sia previsto, utilizza la stessa pianificazione per tutti gli <b>🔍Scanner dispositivi</b> abilitati.",
"Speedtest_Results": "Risultati test di velocità",
"Systeminfo_CPU": "CPU",
"Systeminfo_CPU_Cores": "Core CPU:",
"Systeminfo_CPU_Name": "Nome CPU:",
"Systeminfo_CPU_Speed": "Velocit\u00e0 CPU:",
"Systeminfo_CPU_Speed": "Velocità CPU:",
"Systeminfo_CPU_Temp": "Temperatura CPU:",
"Systeminfo_CPU_Vendor": "Produttore CPU:",
"Systeminfo_Client_Resolution": "Risoluzione del browser:",
"Systeminfo_Client_User_Agent": "User Agent:",
"Systeminfo_Client_Resolution": "Risoluzione browser:",
"Systeminfo_Client_User_Agent": "User agent:",
"Systeminfo_General": "Generale",
"Systeminfo_General_Date": "Data:",
"Systeminfo_General_Date2": "Data2:",
@@ -568,12 +573,12 @@
"Systeminfo_Memory": "Memoria",
"Systeminfo_Memory_Total_Memory": "Memoria totale:",
"Systeminfo_Memory_Usage": "Utilizzo memoria:",
"Systeminfo_Memory_Usage_Percent": "Utilizzo memoria %:",
"Systeminfo_Memory_Usage_Percent": "Memoria %:",
"Systeminfo_Motherboard": "Scheda madre",
"Systeminfo_Motherboard_BIOS": "BIOS:",
"Systeminfo_Motherboard_BIOS_Date": "Data del BIOS:",
"Systeminfo_Motherboard_BIOS_Vendor": "Produttore del BIOS:",
"Systeminfo_Motherboard_Manufactured": "Produttore:",
"Systeminfo_Motherboard_BIOS_Date": "Data BIOS:",
"Systeminfo_Motherboard_BIOS_Vendor": "Produttore BIOS:",
"Systeminfo_Motherboard_Manufactured": "Fabbricato da:",
"Systeminfo_Motherboard_Name": "Nome:",
"Systeminfo_Motherboard_Revision": "Revisione:",
"Systeminfo_Network": "Rete",
@@ -587,8 +592,8 @@
"Systeminfo_Network_Hardware_Interface_Mask": "Maschera di sottorete",
"Systeminfo_Network_Hardware_Interface_Name": "Nome interfaccia",
"Systeminfo_Network_Hardware_Interface_RX": "Ricevuti",
"Systeminfo_Network_Hardware_Interface_TX": "Trasmetto",
"Systeminfo_Network_IP": "IP Internet:",
"Systeminfo_Network_Hardware_Interface_TX": "Trasmessi",
"Systeminfo_Network_IP": "Internet IP:",
"Systeminfo_Network_IP_Connection": "Connessione IP:",
"Systeminfo_Network_IP_Server": "IP server:",
"Systeminfo_Network_MIME": "MIME:",
@@ -599,20 +604,20 @@
"Systeminfo_Network_Secure_Connection_String": "No (HTTP)",
"Systeminfo_Network_Server_Name": "Nome server:",
"Systeminfo_Network_Server_Name_String": "Nome server non trovato",
"Systeminfo_Network_Server_Query": "Query server:",
"Systeminfo_Network_Server_Query_String": "Nessuna query string",
"Systeminfo_Network_Server_Query": "Interrogazione server:",
"Systeminfo_Network_Server_Query_String": "Nessuna stringa di interrogazione",
"Systeminfo_Network_Server_Version": "Versione server:",
"Systeminfo_Services": "Servizi",
"Systeminfo_Services_Description": "Descrizione servizio",
"Systeminfo_Services_Name": "Nome servizio",
"Systeminfo_Storage": "Archiviazione",
"Systeminfo_Storage_Device": "Dispositivo:",
"Systeminfo_Storage_Mount": "Punto di mount:",
"Systeminfo_Storage_Mount": "Punto di montaggio:",
"Systeminfo_Storage_Size": "Dimensione:",
"Systeminfo_Storage_Type": "Tipo:",
"Systeminfo_Storage_Usage": "Utilizzo storage",
"Systeminfo_Storage_Usage": "Utilizzo spazio di archiviazione",
"Systeminfo_Storage_Usage_Free": "Libero:",
"Systeminfo_Storage_Usage_Mount": "Punto di mount:",
"Systeminfo_Storage_Usage_Mount": "Punto di montaggio:",
"Systeminfo_Storage_Usage_Total": "Totale:",
"Systeminfo_Storage_Usage_Used": "Utilizzato:",
"Systeminfo_System": "Sistema",
@@ -623,58 +628,60 @@
"Systeminfo_System_Running_Processes": "Processi in esecuzione:",
"Systeminfo_System_System": "Sistema:",
"Systeminfo_System_Uname": "Uname:",
"Systeminfo_System_Uptime": "Tempo di attivit\u00e0:",
"Systeminfo_This_Client": "Questo Client",
"Systeminfo_System_Uptime": "Tempo di attività:",
"Systeminfo_This_Client": "Questo client",
"Systeminfo_USB_Devices": "Dispositivi USB",
"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>.",
"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>.",
"TIMEZONE_description": "Fuso orario per visualizzare correttamente le statistiche. Trova il tuo fuso orario <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\" rel=\"nofollow\">qui</a>.",
"TIMEZONE_name": "Fuso orario",
"UI_DEV_SECTIONS_description": "Seleziona quali elementi della UI nascondere nella pagina dei Dispositivi.",
"UI_DEV_SECTIONS_name": "Nascondi sezioni Dispositivi",
"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_DEV_SECTIONS_description": "Seleziona quali elementi della UI nascondere nella pagina dei dispositivi.",
"UI_DEV_SECTIONS_name": "Nascondi sezioni dispositivi",
"UI_ICONS_description": "Un elenco di icone predefinite. Procedi con cautela, il modo migliore per aggiungere icone è descritto nella sezione <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\">documentazione icone</a>. Puoi aggiungere un tag HTML SVG con codifica base64 o un tag HTML fFont-Awesome.",
"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 preferita dell'interfaccia utente. 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_MY_DEVICES_description": "Dispositivi i quali stati dovranno essere mostrati nella vista predefinita <b>I Miei Dispositivi</b>. (<code>CTRL + Click</code> per selezionare/deselezionare)",
"UI_MY_DEVICES_name": "Mostra nella vista I Miei Dispositivi",
"UI_NOT_RANDOM_MAC_description": "Prefissi MAC che non dovrebbero essere segnati come Random. Inserisci per esempio <code>52</code> per escludere i dispositivi che iniziano con <code>52:xx:xx:xx:xx:xx</code>.",
"UI_NOT_RANDOM_MAC_name": "Non segnalare come Random",
"UI_PRESENCE_description": "Seleziona quali stati dovrebbero essere mostrati nel grafico delle <b>Presenze dispositivi</b> nella pagina <a href=\"/devices.php\" target=\"_blank\">Dispositivi</a>. (<code>CTRL + Click</code> per selezionare/deselezionare)",
"UI_MY_DEVICES_description": "Dispositivi i cui stati devono essere visualizzati nella visualizzazione predefinita <b>Miei dispositivi</b>. (<code>CTRL + clic</code> per selezionare/deselezionare)",
"UI_MY_DEVICES_name": "Mostra nella vista Miei dispositivi",
"UI_NOT_RANDOM_MAC_description": "Prefissi MAC che non devono essere contrassegnati come dispositivi casuali. Inserisci ad esempio <code>52</code> per escludere i dispositivi che iniziano con <code>52:xx:xx:xx:xx:xx</code> dall'essere contrassegnati come dispositivi con un indirizzo MAC casuale.",
"UI_NOT_RANDOM_MAC_name": "Non segnalare come casuale",
"UI_PRESENCE_description": "Seleziona quali stati devono essere mostrati nel grafico <b>Presenza dispositivo</b> nella pagina <a href=\"/devices.php\" target=\"_blank\">Dispositivi</a>. (<code>CTRL + clic</code> per selezionare/deselezionare)",
"UI_PRESENCE_name": "Mostra nel grafico delle presenze",
"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",
"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 \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_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'>log degli errori</a> se riscontri problemi). <br/> <br/> Coda di esecuzione:",
"general_event_title": "Esecuzione di un evento ad-hoc",
"report_guid": "Guid notifica:",
"report_guid_missing": "Notifica collegata non trovata. C'è un piccolo ritardo tra le notifiche inviate di recente e la loro disponibilità. Aggiorna la pagina e la cache dopo alcuni secondi. È anche possibile che la notifica selezionata sia stata eliminata durante la manutenzione come specificato nell'impostazione <code>DBCLNP_NOTIFI_HIST</code>. <br/> <br/>Viene invece visualizzata l'ultima notifica. La notifica mancante ha il seguente GUID:",
"report_guid": "GUID notifica:",
"report_guid_missing": "Notifica collegata non trovata. C'è un piccolo ritardo tra la disponibilità delle notifiche inviate di recente e la loro disponibilità. Aggiorna la pagina e la cache dopo alcuni secondi. È anche possibile che la notifica selezionata sia stata eliminata durante la manutenzione come specificato nell'impostazione <code>DBCLNP_NOTIFI_HIST</code>. <br/> <br/>Viene invece visualizzata l'ultima notifica. La notifica mancante ha il seguente GUID:",
"report_select_format": "Seleziona formato:",
"report_time": "Tempo di notifica:",
"report_time": "Orario notifica:",
"run_event_icon": "fa-play",
"run_event_tooltip": "Abilita l'impostazione e salva le modifiche prima di eseguire qualsiasi altra azione.",
"run_event_tooltip": "Abilita l'impostazione e salva le modifiche prima di eseguirla.",
"settings_core_icon": "fa-solid fa-gem",
"settings_core_label": "Core",
"settings_device_scanners": "Scanner utilizzati per identificare i Dispositivi che scrivono nella tabella CurrentScan del database.",
"settings_device_scanners": "Scanner dei dispositivi utilizzati per rilevare i dispositivi che scrivono nella tabella del database CurrentScan.",
"settings_device_scanners_icon": "fa-solid fa-magnifying-glass-plus",
"settings_device_scanners_label": "Scanner Dispositivi",
"settings_device_scanners_info": "",
"settings_device_scanners_label": "Scanner dispositivi",
"settings_enabled": "Impostazioni abilitate",
"settings_enabled_icon": "fa-solid fa-toggle-on",
"settings_expand_all": "Espandi tutto",
"settings_imported": "L'ultima volta le impostazioni sono state importate dal file app.conf",
"settings_imported": "L'ultima volta che le impostazioni sono state importate dal file app.conf",
"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 \ud83d\udd04 ricarica in alto.",
"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_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_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_old": "Importazione impostazioni e riavvio in corso...",
"settings_other_scanners": "Altri plugin, non scanner per dispositivi, che sono attualmente abilitati.",
"settings_other_scanners_icon": "fa-solid fa-recycle",
"settings_other_scanners_label": "Altri scanner",
"settings_publishers": "Gateway-Publishers di notifica abilitati, che inviano notifiche in base alle tue impostazioni.",
"settings_publishers": "Gateway/editori di notifica abilitati, che invieranno una notifica in base alle tue impostazioni.",
"settings_publishers_icon": "fa-solid fa-paper-plane",
"settings_publishers_label": "Publisher",
"settings_saved": "<br/>Impostazioni salvate. <br/><br/> Ricaricamento in corso... <br/><br/> <i class=\"ion ion-ios-loop-strong fa-spin fa-2x fa-fw\"></i> <br/>",
"settings_publishers_info": "",
"settings_publishers_label": "Editori",
"settings_saved": "<br/>Impostazioni salvate. <br/> Aggiornamento in corso... <br/> <i class=\"ion ion-ios-loop-strong fa-spin fa-2x fa-fw\"></i> <br/>",
"settings_system_icon": "fa-solid fa-gear",
"settings_system_label": "Sistema",
"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. Fai attenzione a seguire il formato precedente. <b>La convalida non viene eseguita.</b>",
"test_event_icon": "fa-vial-circle-check",
"test_event_tooltip": "Salva i cambiamenti prima di testare le nuove impostazioni."
}
"test_event_tooltip": "Salva le modifiche prima di provare le nuove impostazioni."
}

View File

@@ -4,7 +4,7 @@ import sys
def merge_translations(main_file, other_files):
# Load main file
with open(main_file, 'r') as f:
with open(main_file, 'r', encoding='utf-8') as f:
main_data = json.load(f)
# Get keys and sort them alphabetically
@@ -14,12 +14,12 @@ def merge_translations(main_file, other_files):
main_data = {k: main_data[k] for k in keys}
# Rewrite sorted main file
with open(main_file, 'w') as f:
json.dump(main_data, f, indent=4)
with open(main_file, 'w', encoding='utf-8') as f:
json.dump(main_data, f, indent=4, ensure_ascii=False)
# Merge keys into other files
for file_name in other_files:
with open(file_name, 'r+') as f:
with open(file_name, 'r+', encoding='utf-8') as f:
data = json.load(f)
for key in keys:
if key not in data:
@@ -27,7 +27,7 @@ def merge_translations(main_file, other_files):
# Sort the keys alphabetically for each language
data = {k: data[k] for k in sorted(data.keys())}
f.seek(0)
json.dump(data, f, indent=4)
json.dump(data, f, indent=4, ensure_ascii=False)
f.truncate()
if __name__ == "__main__":

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,41 +1,41 @@
{
"API_CUSTOM_SQL_description": "Voc\u00ea pode especificar uma consulta SQL personalizada que ir\u00e1 gerar um arquivo JSON e, em seguida, exp\u00f4-lo por meio do <a href=\"/api/table_custom_endpoint.json\" target=\"_blank\"><code>table_custom_endpoint.json</code> endpoint do arquivo</a>.",
"API_CUSTOM_SQL_description": "Você pode especificar uma consulta SQL personalizada que irá gerar um arquivo JSON e, em seguida, expô-lo por meio do <a href=\"/api/table_custom_endpoint.json\" target=\"_blank\"><code>table_custom_endpoint.json</code> endpoint do arquivo</a>.",
"API_CUSTOM_SQL_name": "Endpoint customizado",
"API_display_name": "API",
"API_icon": "<i class=\"fa fa-arrow-down-up-across-line\"></i>",
"About_Design": "Desenhado por:",
"About_Exit": "Sair",
"About_Title": "Analisador de seguran\u00e7a de rede & framework de notifica\u00e7\u00e3o",
"About_Title": "Analisador de segurança de rede & framework de notificação",
"AppEvents_DateTimeCreated": "Registrado em",
"AppEvents_Extra": "Adicional",
"AppEvents_GUID": "Evento de aplica\u00e7\u00e3o GUID",
"AppEvents_GUID": "Evento de aplicação GUID",
"AppEvents_Helper1": "Auxiliar 1",
"AppEvents_Helper2": "Auxiliar 2",
"AppEvents_Helper3": "Auxiliar 3",
"AppEvents_ObjectForeignKey": "Chave Estrangeira",
"AppEvents_ObjectIndex": "\u00cdndice",
"AppEvents_ObjectIsArchived": "Foi arquivado (no hor\u00e1rio do log)",
"AppEvents_ObjectIsNew": "\u00c9 novo (no hor\u00e1rio do log)",
"AppEvents_ObjectIndex": "Índice",
"AppEvents_ObjectIsArchived": "Foi arquivado (no horário do log)",
"AppEvents_ObjectIsNew": "É novo (no horário do log)",
"AppEvents_ObjectPlugin": "Plugin Associado",
"AppEvents_ObjectPrimaryID": "ID Prim\u00e1rio",
"AppEvents_ObjectSecondaryID": "ID Secund\u00e1rio",
"AppEvents_ObjectStatus": "Status (no hor\u00e1rio do log)",
"AppEvents_ObjectPrimaryID": "ID Primário",
"AppEvents_ObjectSecondaryID": "ID Secundário",
"AppEvents_ObjectStatus": "Status (no horário do log)",
"AppEvents_ObjectStatusColumn": "Coluna de Status",
"AppEvents_ObjectType": "Tipo de Objeto",
"AppEvents_Plugin": "Plugin",
"AppEvents_Type": "Tipo",
"BackDevDetail_Actions_Ask_Run": "Voc\u00ea deseja executar esta a\u00e7\u00e3o?",
"BackDevDetail_Actions_Not_Registered": "A\u00e7\u00e3o n\u00e3o registrada: ",
"BackDevDetail_Actions_Title_Run": "Executar a\u00e7\u00e3o",
"BackDevDetail_Copy_Ask": "Copiar detalhes de dispositivos da lista suspenda (Tudo nesta p\u00e1gina ser\u00e1 substitu\u00eddo)?",
"BackDevDetail_Actions_Ask_Run": "Você deseja executar esta ação?",
"BackDevDetail_Actions_Not_Registered": "Ação não registrada: ",
"BackDevDetail_Actions_Title_Run": "Executar ação",
"BackDevDetail_Copy_Ask": "Copiar detalhes de dispositivos da lista suspenda (Tudo nesta página será substituído)?",
"BackDevDetail_Copy_Title": "Copiar detalhes",
"BackDevDetail_Tools_WOL_error": "O comando N\u00c3O foi executado.",
"BackDevDetail_Tools_WOL_error": "O comando NÃO foi executado.",
"BackDevDetail_Tools_WOL_okay": "O comando foi executado.",
"BackDevices_Arpscan_disabled": "Busca Arp Desabilitada",
"BackDevices_Arpscan_enabled": "Busca ARP Habilitada",
"BackDevices_Backup_CopError": "A base da dados original n\u00e3o pode ser salva.",
"BackDevices_Backup_Failed": "A copia de seguran\u00e7a foi parcialmente executada. O arquivo n\u00e3o pode ser criado ou est\u00e1 vazio.",
"BackDevices_Backup_okay": "A copia de seguran\u00e7a foi feita executado corretamente com o novo arquivo",
"BackDevices_Backup_CopError": "A base da dados original não pode ser salva.",
"BackDevices_Backup_Failed": "A copia de segurança foi parcialmente executada. O arquivo não pode ser criado ou está vazio.",
"BackDevices_Backup_okay": "A copia de segurança foi feita executado corretamente com o novo arquivo",
"BackDevices_DBTools_DelDevError_a": "Erro excluindo o Dispositivo",
"BackDevices_DBTools_DelDevError_b": "Erro excluindo os Dispositivos",
"BackDevices_DBTools_DelDev_a": "Dispositivo excluido",
@@ -43,17 +43,17 @@
"BackDevices_DBTools_DelEvents": "Eventos excluidos",
"BackDevices_DBTools_DelEventsError": "Erro excluindo os eventos",
"BackDevices_DBTools_ImportCSV": "Os dispositivos do arquivo CSV foram importados com sucesso.",
"BackDevices_DBTools_ImportCSVError": "O arquivo CSV n\u00e3o pode ser importado. Assegure que o formato est\u00e1 correto.",
"BackDevices_DBTools_ImportCSVMissing": "O arquivo CSV n\u00e3o foi localizado em <b>/config/devices.csv.</b>",
"BackDevices_DBTools_Purge": "As copias de seguran\u00e7a antigas foram excluidas",
"BackDevices_DBTools_ImportCSVError": "O arquivo CSV não pode ser importado. Assegure que o formato está correto.",
"BackDevices_DBTools_ImportCSVMissing": "O arquivo CSV não foi localizado em <b>/config/devices.csv.</b>",
"BackDevices_DBTools_Purge": "As copias de segurança antigas foram excluidas",
"BackDevices_DBTools_UpdDev": "Dispositivo atualizado com sucesso",
"BackDevices_DBTools_UpdDevError": "Erro atualizando o dispositivo",
"BackDevices_DBTools_Upgrade": "Banco de dados atualizado com sucesso",
"BackDevices_DBTools_UpgradeError": "A atualiza\u00e7\u00e3o do banco de dados falhou",
"BackDevices_Device_UpdDevError": "Erro atualizando os dispositivos, tente novamente mais tarde. O banco de dados provavelmente est\u00e1 travado com uma tarefa em andamento.",
"BackDevices_Restore_CopError": "O banco de dados original n\u00e3o pode ser salvo.",
"BackDevices_Restore_Failed": "A restaura\u00e7\u00e3o falhou. Por favor restaure a copia de seguran\u00e7a manualmente.",
"BackDevices_Restore_okay": "Restaura\u00e7\u00e3o executada com sucesso.",
"BackDevices_DBTools_UpgradeError": "A atualização do banco de dados falhou",
"BackDevices_Device_UpdDevError": "Erro atualizando os dispositivos, tente novamente mais tarde. O banco de dados provavelmente está travado com uma tarefa em andamento.",
"BackDevices_Restore_CopError": "O banco de dados original não pode ser salvo.",
"BackDevices_Restore_Failed": "A restauração falhou. Por favor restaure a copia de segurança manualmente.",
"BackDevices_Restore_okay": "Restauração executada com sucesso.",
"BackDevices_darkmode_disabled": "Modo Noturno Desabilitado",
"BackDevices_darkmode_enabled": "Modo Noturno Habilitado",
"DAYS_TO_KEEP_EVENTS_description": "",
@@ -65,13 +65,13 @@
"DevDetail_EveandAl_Archived": "Arquivado",
"DevDetail_EveandAl_NewDevice": "Novo Dispositivo",
"DevDetail_EveandAl_NewDevice_Tooltip": "",
"DevDetail_EveandAl_RandomMAC": "MAC Aleat\u00f3rio",
"DevDetail_EveandAl_RandomMAC": "MAC Aleatório",
"DevDetail_EveandAl_ScanCycle": "Rastrear dispositivo",
"DevDetail_EveandAl_ScanCycle_a": "Rastrear Dispositivo",
"DevDetail_EveandAl_ScanCycle_z": "N\u00e3o Rastrear Dispositivo",
"DevDetail_EveandAl_Skip": "Pular notifica\u00e7\u00f5es repetidas para",
"DevDetail_EveandAl_Title": "<i class=\"fa fa-bolt\"></i> Configura\u00e7\u00e3o de Eventos & Alertas",
"DevDetail_Events_CheckBox": "Esconder Eventos de Conex\u00e3o",
"DevDetail_EveandAl_ScanCycle_z": "Não Rastrear Dispositivo",
"DevDetail_EveandAl_Skip": "Pular notificações repetidas para",
"DevDetail_EveandAl_Title": "<i class=\"fa fa-bolt\"></i> Configuração de Eventos & Alertas",
"DevDetail_Events_CheckBox": "Esconder Eventos de Conexão",
"DevDetail_GoToNetworkNode": "",
"DevDetail_Icon": "Icone",
"DevDetail_Icon_Descr": "",
@@ -83,8 +83,10 @@
"DevDetail_MainInfo_Name": "",
"DevDetail_MainInfo_Network": "",
"DevDetail_MainInfo_Network_Port": "",
"DevDetail_MainInfo_Network_Site": "",
"DevDetail_MainInfo_Network_Title": "",
"DevDetail_MainInfo_Owner": "",
"DevDetail_MainInfo_SSID": "",
"DevDetail_MainInfo_Title": "",
"DevDetail_MainInfo_Type": "",
"DevDetail_MainInfo_Vendor": "",
@@ -206,11 +208,13 @@
"Device_TableHead_MAC": "",
"Device_TableHead_MAC_full": "",
"Device_TableHead_Name": "",
"Device_TableHead_NetworkSite": "",
"Device_TableHead_Owner": "",
"Device_TableHead_Parent_MAC": "",
"Device_TableHead_Port": "",
"Device_TableHead_RowID": "",
"Device_TableHead_Rowid": "",
"Device_TableHead_SSID": "",
"Device_TableHead_Status": "",
"Device_TableHead_SyncHubNodeName": "",
"Device_TableHead_Type": "",
@@ -266,6 +270,7 @@
"Gen_Action": "",
"Gen_Add": "",
"Gen_Add_All": "",
"Gen_All_Devices": "",
"Gen_AreYouSure": "",
"Gen_Backup": "",
"Gen_Cancel": "",
@@ -656,6 +661,7 @@
"settings_core_label": "",
"settings_device_scanners": "",
"settings_device_scanners_icon": "",
"settings_device_scanners_info": "",
"settings_device_scanners_label": "",
"settings_enabled": "",
"settings_enabled_icon": "",
@@ -670,6 +676,7 @@
"settings_other_scanners_label": "",
"settings_publishers": "",
"settings_publishers_icon": "",
"settings_publishers_info": "",
"settings_publishers_label": "",
"settings_saved": "",
"settings_system_icon": "",

1303
front/php/templates/language/ru_ru.json Executable file → Normal file

File diff suppressed because one or more lines are too long

View File

@@ -83,8 +83,10 @@
"DevDetail_MainInfo_Name": "",
"DevDetail_MainInfo_Network": "",
"DevDetail_MainInfo_Network_Port": "",
"DevDetail_MainInfo_Network_Site": "",
"DevDetail_MainInfo_Network_Title": "",
"DevDetail_MainInfo_Owner": "",
"DevDetail_MainInfo_SSID": "",
"DevDetail_MainInfo_Title": "",
"DevDetail_MainInfo_Type": "",
"DevDetail_MainInfo_Vendor": "",
@@ -206,11 +208,13 @@
"Device_TableHead_MAC": "",
"Device_TableHead_MAC_full": "",
"Device_TableHead_Name": "",
"Device_TableHead_NetworkSite": "",
"Device_TableHead_Owner": "",
"Device_TableHead_Parent_MAC": "",
"Device_TableHead_Port": "",
"Device_TableHead_RowID": "",
"Device_TableHead_Rowid": "",
"Device_TableHead_SSID": "",
"Device_TableHead_Status": "",
"Device_TableHead_SyncHubNodeName": "",
"Device_TableHead_Type": "",
@@ -266,6 +270,7 @@
"Gen_Action": "",
"Gen_Add": "",
"Gen_Add_All": "",
"Gen_All_Devices": "",
"Gen_AreYouSure": "",
"Gen_Backup": "",
"Gen_Cancel": "",
@@ -656,6 +661,7 @@
"settings_core_label": "",
"settings_device_scanners": "",
"settings_device_scanners_icon": "",
"settings_device_scanners_info": "",
"settings_device_scanners_label": "",
"settings_enabled": "",
"settings_enabled_icon": "",
@@ -670,6 +676,7 @@
"settings_other_scanners_label": "",
"settings_publishers": "",
"settings_publishers_icon": "",
"settings_publishers_info": "",
"settings_publishers_label": "",
"settings_saved": "",
"settings_system_icon": "",

View File

@@ -83,8 +83,10 @@
"DevDetail_MainInfo_Name": "",
"DevDetail_MainInfo_Network": "",
"DevDetail_MainInfo_Network_Port": "",
"DevDetail_MainInfo_Network_Site": "",
"DevDetail_MainInfo_Network_Title": "",
"DevDetail_MainInfo_Owner": "",
"DevDetail_MainInfo_SSID": "",
"DevDetail_MainInfo_Title": "",
"DevDetail_MainInfo_Type": "",
"DevDetail_MainInfo_Vendor": "",
@@ -160,68 +162,70 @@
"DevDetail_Tab_Tools_Traceroute_Description": "",
"DevDetail_Tab_Tools_Traceroute_Error": "",
"DevDetail_Tab_Tools_Traceroute_Start": "",
"DevDetail_Tab_Tools_Traceroute_Title": "\u8def\u7531\u8ffd\u8e2a",
"DevDetail_Tools_WOL": "WoL\u5524\u9192 ",
"DevDetail_Tools_WOL_noti": "\u5c40\u57df\u7f51\u5524\u9192",
"DevDetail_Tools_WOL_noti_text": "\u5c06\u5524\u9192\u547d\u4ee4\u88ab\u53d1\u9001\u5230\u5e7f\u64ad\u5730\u5740\u3002\u5982\u679c\u76ee\u6807\u4e0d\u5728 NetAlertX \u7684\u5b50\u7f51/VLAN \u4e2d\uff0c\u76ee\u6807\u8bbe\u5907\u5c06\u4e0d\u4f1a\u54cd\u5e94\u3002",
"DevDetail_Type_hover": "\u8bbe\u5907\u7684\u7c7b\u578b\u3002\u60a8\u9009\u62e9\u4efb\u610f\u9884\u5b9a\u4e49\u7684\u7f51\u7edc\u8bbe\u5907\uff08\u4f8b\u5982\uff1aAP\u3001\u9632\u706b\u5899\u3001\u8def\u7531\u5668\u3001\u4ea4\u6362\u673a...\uff09\uff0c\u5b83\u4eec\u5c06\u4f5c\u4e3a\u53ef\u80fd\u7684\u7236\u7f51\u7edc\u8282\u70b9\u663e\u793a\u5728\u7f51\u7edc\u6811\u914d\u7f6e\u4e2d\u3002",
"DevDetail_Vendor_hover": "\u81ea\u52a8\u68c0\u6d4b\u751f\u4ea7\u5382\u5bb6\u3002\u4f46\u4f60\u53ef\u4ee5\u81ea\u5b9a\u4e49.",
"DevDetail_WOL_Title": "<i class=\"fa fa-power-off\"></i> \u5c40\u57df\u7f51\u5524\u9192",
"DevDetail_button_AddIcon": "\u6dfb\u52a0\u56fe\u6807",
"DevDetail_button_AddIcon_Help": "\u7c98\u8d34 SVG html \u6807\u7b7e\u6216 Font Awesome html \u6807\u7b7e\u56fe\u6807\u3002\u9605\u8bfb <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\">Icons docs</a> \u4e86\u89e3\u8be6\u60c5.",
"DevDetail_Tab_Tools_Traceroute_Title": "路由追踪",
"DevDetail_Tools_WOL": "WoL唤醒 ",
"DevDetail_Tools_WOL_noti": "局域网唤醒",
"DevDetail_Tools_WOL_noti_text": "将唤醒命令被发送到广播地址。如果目标不在 NetAlertX 的子网/VLAN 中,目标设备将不会响应。",
"DevDetail_Type_hover": "设备的类型。您选择任意预定义的网络设备例如AP、防火墙、路由器、交换机...),它们将作为可能的父网络节点显示在网络树配置中。",
"DevDetail_Vendor_hover": "自动检测生产厂家。但你可以自定义.",
"DevDetail_WOL_Title": "<i class=\"fa fa-power-off\"></i> 局域网唤醒",
"DevDetail_button_AddIcon": "添加图标",
"DevDetail_button_AddIcon_Help": "粘贴 SVG html 标签或 Font Awesome html 标签图标。阅读 <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\">Icons docs</a> 了解详情.",
"DevDetail_button_AddIcon_Tooltip": "Add a new Icon to this device that is not yet available in the dropdown.",
"DevDetail_button_Delete": "\u5220\u9664\u8bbe\u5907",
"DevDetail_button_DeleteEvents": "\u5220\u9664\u4e8b\u4ef6",
"DevDetail_button_DeleteEvents_Warning": "\u60a8\u786e\u5b9a\u8981\u5220\u9664\u6b64\u8bbe\u5907\u7684\u6240\u6709\u4e8b\u4ef6\u5417\uff1f<br><br>(this will clear the <b>Events history</b> and the <b>Sessions</b> and might help with constant (persistent) notifications)",
"DevDetail_button_OverwriteIcons": "\u8986\u76d6\u56fe\u6807",
"DevDetail_button_OverwriteIcons_Tooltip": "\u8986\u76d6\u5177\u6709\u76f8\u540c\u8bbe\u5907\u7c7b\u578b\u7684\u6240\u6709\u8bbe\u5907\u7684\u56fe\u6807",
"DevDetail_button_OverwriteIcons_Warning": "\u60a8\u786e\u5b9a\u8981\u8986\u76d6\u4e0e\u5f53\u524d\u8bbe\u5907\u7c7b\u578b\u76f8\u540c\u7684\u6240\u6709\u8bbe\u5907\u7684\u6240\u6709\u56fe\u6807\u5417\uff1f",
"DevDetail_button_Reset": "\u91cd\u7f6e",
"DevDetail_button_Save": "\u4fdd\u5b58",
"Device_MultiEdit": "\u7f16\u8f91",
"DevDetail_button_Delete": "删除设备",
"DevDetail_button_DeleteEvents": "删除事件",
"DevDetail_button_DeleteEvents_Warning": "您确定要删除此设备的所有事件吗?<br><br>(this will clear the <b>Events history</b> and the <b>Sessions</b> and might help with constant (persistent) notifications)",
"DevDetail_button_OverwriteIcons": "覆盖图标",
"DevDetail_button_OverwriteIcons_Tooltip": "覆盖具有相同设备类型的所有设备的图标",
"DevDetail_button_OverwriteIcons_Warning": "您确定要覆盖与当前设备类型相同的所有设备的所有图标吗?",
"DevDetail_button_Reset": "重置",
"DevDetail_button_Save": "保存",
"Device_MultiEdit": "编辑",
"Device_MultiEdit_Backup": "",
"Device_MultiEdit_Fields": "\u7f16\u8f91:",
"Device_MultiEdit_MassActions": "\u8c28\u614e\u64cd\u4f5c:",
"Device_MultiEdit_Tooltip": "\u5c0f\u5fc3\u3002 \u5355\u51fb\u6b64\u6309\u94ae\u4f1a\u5c06\u5de6\u4fa7\u7684\u503c\u5e94\u7528\u5230\u4e0a\u9762\u9009\u62e9\u7684\u6240\u6709\u8bbe\u5907\u3002",
"Device_Searchbox": "\u641c\u7d22",
"Device_Shortcut_AllDevices": "\u6211\u7684\u8bbe\u5907",
"Device_Shortcut_Archived": "\u5df2\u5b58\u6863",
"Device_Shortcut_Connected": "\u5728\u7ebf\u8bbe\u5907",
"Device_Shortcut_Devices": "\u8bbe\u5907\u7ba1\u7406",
"Device_Shortcut_DownAlerts": "\u79bb\u7ebf",
"Device_Shortcut_DownOnly": "\u79bb\u7ebf\u8bbe\u5907",
"Device_Shortcut_Favorites": "\u6536\u85cf",
"Device_Shortcut_NewDevices": "\u65b0\u8bbe\u5907",
"Device_Shortcut_OnlineChart": "\u8bbe\u5907\u7edf\u8ba1",
"Device_TableHead_Connected_Devices": "\u94fe\u63a5",
"Device_TableHead_Favorite": "\u6536\u85cf",
"Device_TableHead_FirstSession": "\u52a0\u5165",
"Device_MultiEdit_Fields": "编辑:",
"Device_MultiEdit_MassActions": "谨慎操作:",
"Device_MultiEdit_Tooltip": "小心。 单击此按钮会将左侧的值应用到上面选择的所有设备。",
"Device_Searchbox": "搜索",
"Device_Shortcut_AllDevices": "我的设备",
"Device_Shortcut_Archived": "已存档",
"Device_Shortcut_Connected": "在线设备",
"Device_Shortcut_Devices": "设备管理",
"Device_Shortcut_DownAlerts": "离线",
"Device_Shortcut_DownOnly": "离线设备",
"Device_Shortcut_Favorites": "收藏",
"Device_Shortcut_NewDevices": "新设备",
"Device_Shortcut_OnlineChart": "设备统计",
"Device_TableHead_Connected_Devices": "链接",
"Device_TableHead_Favorite": "收藏",
"Device_TableHead_FirstSession": "加入",
"Device_TableHead_GUID": "",
"Device_TableHead_Group": "\u7ec4",
"Device_TableHead_Icon": "\u56fe\u6807",
"Device_TableHead_Group": "",
"Device_TableHead_Icon": "图标",
"Device_TableHead_LastIP": "IP",
"Device_TableHead_LastIPOrder": "",
"Device_TableHead_LastSession": "\u79bb\u5f00",
"Device_TableHead_Location": "\u5730\u70b9",
"Device_TableHead_MAC": "\u968f\u673a MAC",
"Device_TableHead_LastSession": "离开",
"Device_TableHead_Location": "地点",
"Device_TableHead_MAC": "随机 MAC",
"Device_TableHead_MAC_full": "MAC",
"Device_TableHead_Name": "\u540d\u5b57",
"Device_TableHead_Owner": "\u6240\u6709\u8005",
"Device_TableHead_Parent_MAC": "\u7236\u8282\u70b9",
"Device_TableHead_Port": "\u7aef\u53e3",
"Device_TableHead_RowID": "\u6392\u884c",
"Device_TableHead_Rowid": "\u6392\u884c",
"Device_TableHead_Status": "\u72b6\u6001",
"Device_TableHead_Name": "名字",
"Device_TableHead_NetworkSite": "",
"Device_TableHead_Owner": "所有者",
"Device_TableHead_Parent_MAC": "父节点",
"Device_TableHead_Port": "端口",
"Device_TableHead_RowID": "排行",
"Device_TableHead_Rowid": "排行",
"Device_TableHead_SSID": "",
"Device_TableHead_Status": "状态",
"Device_TableHead_SyncHubNodeName": "",
"Device_TableHead_Type": "\u7c7b\u578b",
"Device_TableHead_Vendor": "\u5236\u9020\u5546",
"Device_TableHead_Type": "类型",
"Device_TableHead_Vendor": "制造商",
"Device_Table_Not_Network_Device": "",
"Device_Table_info": "",
"Device_Table_nav_next": "\u4e0b\u4e00\u9875",
"Device_Table_nav_prev": "\u4e0a\u4e00\u9875",
"Device_Tablelenght": "\u663e\u793a _MENU_ \u9875",
"Device_Tablelenght_all": "\u6240\u6709",
"Device_Title": "\u8bbe\u5907",
"Device_Table_nav_next": "下一页",
"Device_Table_nav_prev": "上一页",
"Device_Tablelenght": "显示 _MENU_ ",
"Device_Tablelenght_all": "所有",
"Device_Title": "设备",
"Donations_Others": "",
"Donations_Platforms": "",
"Donations_Text": "",
@@ -266,6 +270,7 @@
"Gen_Action": "",
"Gen_Add": "",
"Gen_Add_All": "",
"Gen_All_Devices": "",
"Gen_AreYouSure": "",
"Gen_Backup": "",
"Gen_Cancel": "",
@@ -656,6 +661,7 @@
"settings_core_label": "",
"settings_device_scanners": "",
"settings_device_scanners_icon": "",
"settings_device_scanners_info": "",
"settings_device_scanners_label": "",
"settings_enabled": "",
"settings_enabled_icon": "",
@@ -670,6 +676,7 @@
"settings_other_scanners_label": "",
"settings_publishers": "",
"settings_publishers_icon": "",
"settings_publishers_info": "",
"settings_publishers_label": "",
"settings_saved": "",
"settings_system_icon": "",

View File

@@ -1,14 +1,81 @@
# 🔌 Plugins
NetAlertX supports additional plugins to extend its functionality, each with its own settings and options. Plugins can be loaded via the General -> `LOADED_PLUGINS` setting by using Ctrl + Click. For custom plugin development, refer to the [Plugin development guide](/docs/PLUGINS_DEV.md).
>[!NOTE]
> Please check this [Plugins debugging guide](https://github.com/jokob-sk/NetAlertX/blob/main/docs/DEBUG_PLUGINS.md) and the corresponding Plugin documentation in the below table if you are facing issues.
## ⚡ Quick start
> [!TIP]
> You can load additional Plugins via the General -> `LOADED_PLUGINS` setting. Use `Ctrl + Click` to select/deselect.
1. Pick your `🔍 dev scanner` plugin (e.g. `ARPSCAN` or `NMAPDEV`), or import devices into the application with an `📥 importer` plugin. (See **✅Enabling plugins** below)
1. Pick a `▶️ publisher` plugin, if you want to send notifications. If you don't see a publisher you'd like to use, look at the [📚_publisher_apprise](/front/plugins/_publisher_apprise/) plugin which is a proxy for over 80 notification services.
1. Setup your [Network topology diagram](/docs/NETWORK_TREE.md)
1. Fine-tune [Notifications](/docs/NOTIFICATIONS.md)
1. [Backup your setup](/docs/BACKUPS.md)
1. Contribute and [Create custom plugins](/docs/PLUGINS_DEV.md)
1. Consider [donating](https://github.com/jokob-sk/NetAlertX?tab=readme-ov-file#-sponsors) to keep me going
## 📑 Available Plugins
Device-detecting plugins insert values into the `CurrentScan` database table. The plugins that are not required are safe to ignore, however, it makes sense to have at least some device-detecting plugins enabled, such as `ARPSCAN` or `NMAPDEV`.
| ID | Type | Description | Required | Data source | Detailed docs |
|---------------|---------|---------------------------------------------|----------|--------------------|---------------------------------------------------------------|
| `APPRISE` | ▶️ | Apprise notification proxy | | Script | [📚_publisher_apprise](/front/plugins/_publisher_apprise/) |
| `ARPSCAN` | 🔍 | ARP-scan on current network | | Script | [📚arp_scan](/front/plugins/arp_scan/) |
| `CSVBCKP` | ⚙ | CSV devices backup | | Script | [📚csv_backup](/front/plugins/csv_backup/) |
| `DBCLNP` | ⚙ | Database cleanup | Yes* | Script | [📚db_cleanup](/front/plugins/db_cleanup/) |
| `DDNS` | ⚙ | DDNS update | | Script | [📚ddns_update](/front/plugins/ddns_update/) |
| `DHCPLSS` | 🔍/📥 | Import devices from DHCP leases | | Script | [📚dhcp_leases](/front/plugins/dhcp_leases/) |
| `DHCPSRVS` | ♻ | DHCP servers | | Script | [📚dhcp_servers](/front/plugins/dhcp_servers/) |
| `INTRNT` | 🔍 | Internet IP scanner | | Script | [📚internet_ip](/front/plugins/internet_ip/) |
| `INTRSPD` | ♻ | Internet speed test | | Script | [📚internet_speedtest](/front/plugins/internet_speedtest/) |
| `MAINT` | ⚙ | Maintenance of logs, etc. | | Script | [📚maintenance](/front/plugins/maintenance/) |
| `MQTT` | ▶️ | MQTT for synching to Home Assistant | | Script | [📚_publisher_mqtt](/front/plugins/_publisher_mqtt/) |
| `NEWDEV` | ⚙ | New device template | Yes | Template | [📚newdev_template](/front/plugins/newdev_template/) |
| `NMAP` | ♻ | Nmap port scanning & discovery | | Script | [📚nmap_scan](/front/plugins/nmap_scan/) |
| `NMAPDEV` | 🔍 | Nmap dev scan on current network | | Script | [📚nmap_dev_scan](/front/plugins/nmap_dev_scan/) |
| `NSLOOKUP` | ♻ | NSLookup name resolution | | Script | [📚nslookup_scan](/front/plugins/nslookup_scan/) |
| `NTFPRCS` | ⚙ | Notification processing | Yes | Template | [📚notification_processing](/front/plugins/notification_processing/)|
| `NTFY` | ▶️ | NTFY notifications | | Script | [📚_publisher_ntfy](/front/plugins/_publisher_ntfy/) |
| `PHOLUS` | ♻ | Pholus name resolution | | Script | [📚pholus_scan](/front/plugins/pholus_scan/) |
| `PIHOLE` | 🔍/📥 | Pi-hole device import & sync | | SQLite DB | [📚pihole_scan](/front/plugins/pihole_scan/) |
| `PUSHSAFER` | ▶️ | Pushsafer notifications | | Script | [📚_publisher_pushsafer](/front/plugins/_publisher_pushsafer/) |
| `PUSHOVER` | ▶️ | Pushover notifications | | Script | [📚_publisher_pushover](/front/plugins/_publisher_pushover/) |
| `SETPWD` | ⚙ | Set password | Yes | Template | [📚set_password](/front/plugins/set_password/) |
| `SMTP` | ▶️ | Email notifications | | Script | [📚_publisher_email](/front/plugins/_publisher_email/) |
| `SNMPDSC` | 🔍/📥 | SNMP device import & sync | | Script | [📚snmp_discovery](/front/plugins/snmp_discovery/) |
| `SYNC` | 🔍/⚙/📥| Sync & import from other NetAlertX instances | | Script | [📚snmp_discovery](/front/plugins/snmp_discovery/) |
| `UNDIS` | 🔍/📥 | Create dummy devices | | Script | [📚undiscoverables](/front/plugins/undiscoverables/) |
| `UNFIMP` | 🔍/📥 | UniFi device import & sync | | Script | [📚unifi_import](/front/plugins/unifi_import/) |
| `VNDRPDT` | ⚙ | Vendor database update | | Script | [📚vendor_update](/front/plugins/vendor_update/) |
| `WEBHOOK` | ▶️ | Webhook notifications | | Script | [📚_publisher_webhook](/front/plugins/_publisher_webhook/) |
| `WEBMON` | ♻ | Website down monitoring | | Script | [📚website_monitor](/front/plugins/website_monitor/)
> \* The database cleanup plugin (`DBCLNP`) is not _required_ but the app will become unusable after a while if not executed.
>
> \** The Undiscoverables plugin (`UNDIS`) inserts only user-specified dummy devices.
> ⌚It's recommended to use the same schedule interval for all plugins responsible for discovering new devices.
## Plugin types
If you want to discover or import devices into the application enable some of the `🔍 dev scanner` plugins. The next step is to pick a notification plugin, or `▶️ publisher` plugin, to get notified about network changes. If you don't see a publisher you'd like to use, look at the [📚_publisher_apprise](/front/plugins/_publisher_apprise/) plugin which is a proxy for over 80 notification services.
### Enabling plugins
| Plugin type | Icon | Description | When to run | Required | Data source [?](/docs/PLUGINS_DEV.md) |
|---------------|------|---------------------------------------------------------------|--------------------------|----|---------|
| publisher | ▶️ | Sending notifications to services. | `on_notification` | ✖ | Script |
| dev scanner | 🔍 | Create devices in the app, usually scanning the current network. | `schedule` | ✖ | Script / SQLite DB |
| importer | 📥 | Importing devices from another service. | `schedule` | ✖ | Script / SQLite DB |
| system | ⚙ | Providing core system functionality. | `schedule` / always on | ✖/✔ | Script / Template |
| other | ♻ | Other scanners, e.g. for name resolution | misc | ✖ | Script / Template |
## ✅Enabling plugins
Plugins can be enabled via Settings, and can be disabled as needed.
@@ -24,51 +91,6 @@ Plugins can be enabled via Settings, and can be disabled as needed.
- Careful, once you save the Settings Unloaded plugin settings will be lost (old `app.conf` files are kept in the `/config` folder)
1. You can completely ignore plugins by placing a `ignore_plugin` file into the plugin directory. Ignored plugins won't show up in the `LOADED_PLUGINS` setting.
## Available Plugins
Device-detecting plugins insert values into the `CurrentScan` database table. The plugins that are not required are safe to ignore, however, it makes sense to have a least some device-detecting plugins enabled, such as `ARPSCAN` or `NMAPDEV`.
| ID | Type | Description | Required | Data source | Detailed docs |
|---------------|----------------|------------------------------|----------|--------------------|---------------------------------------------------------------------|
| `APPRISE` | ▶️ publisher | Apprise publisher plugin | | Script | [📚_publisher_apprise](/front/plugins/_publisher_apprise/) |
| `ARPSCAN` | 🔍 dev scanner | ARP scan plugin | | Script | [📚arp_scan](/front/plugins/arp_scan/) |
| `CSVBCKP` | ⚙ system | CSV backup plugin | | Script | [📚csv_backup](/front/plugins/csv_backup/) |
| `DBCLNP` | ⚙ system | Database cleanup plugin | Yes* | Script | [📚db_cleanup](/front/plugins/db_cleanup/) |
| `DDNS` | ⚙ system | DDNS update plugin | | Script | [📚ddns_update](/front/plugins/ddns_update/) |
| `DHCPLSS` | 🔍 dev scanner | DHCP leases plugin | | Script | [📚dhcp_leases](/front/plugins/dhcp_leases/) |
| `DHCPSRVS` | ♻ other | DHCP servers plugin | | Script | [📚dhcp_servers](/front/plugins/dhcp_servers/) |
| `INTRNT` | 🔍 dev scanner | Internet IP scanner | | Script | [📚internet_ip](/front/plugins/internet_ip/) |
| `INTRSPD` | ♻ other | Internet speed test plugin | | Script | [📚internet_speedtest](/front/plugins/internet_speedtest/) |
| `MAINT` | ⚙ system | Maintenance plugin | | Script | [📚maintenance](/front/plugins/maintenance/) |
| `MQTT` | ▶️ publisher | MQTT publisher plugin | | Script | [📚_publisher_mqtt](/front/plugins/_publisher_mqtt/) |
| `NEWDEV` | ⚙ system | New device template | Yes | Template | [📚newdev_template](/front/plugins/newdev_template/) |
| `NMAP` | ♻ other | Nmap scan plugin | | Script | [📚nmap_scan](/front/plugins/nmap_scan/) |
| `NMAPDEV` | 🔍 dev scanner | Nmap device scan plugin | | Script | [📚nmap_dev_scan](/front/plugins/nmap_dev_scan/) |
| `NSLOOKUP` | ♻ other | NSLookup scan plugin | | Script | [📚nslookup_scan](/front/plugins/nslookup_scan/) |
| `NTFPRCS` | ⚙ system | Notification processing | Yes | Template | [📚notification_processing](/front/plugins/notification_processing/)|
| `NTFY` | ▶️ publisher | NTFY publisher plugin | | Script | [📚_publisher_ntfy](/front/plugins/_publisher_ntfy/) |
| `PHOLUS` | ♻ other | Pholus scan plugin | | Script | [📚pholus_scan](/front/plugins/pholus_scan/) |
| `PIHOLE` | 🔍 dev scanner | Pi-hole scan plugin | | SQLite DB | [📚pihole_scan](/front/plugins/pihole_scan/) |
| `PUSHSAFER` | ▶️ publisher | Pushsafer publisher plugin | | Script | [📚_publisher_pushsafer](/front/plugins/_publisher_pushsafer/) |
| `PUSHOVER` | ▶️ publisher | Pushover publisher plugin | | Script | [📚_publisher_pushover](/front/plugins/_publisher_pushover/) |
| `SETPWD` | ⚙ system | Set password template | Yes | Template | [📚set_password](/front/plugins/set_password/) |
| `SMTP` | ▶️ publisher | Email publisher plugin | | Script | [📚_publisher_email](/front/plugins/_publisher_email/) |
| `SNMPDSC` | 🔍 dev scanner | SNMP discovery plugin | | Script | [📚snmp_discovery](/front/plugins/snmp_discovery/) |
| `UNDIS` | ♻ other | Undiscoverables scan plugin | | Script | [📚undiscoverables](/front/plugins/undiscoverables/) |
| `UNFIMP` | 🔍 dev scanner | UniFi import plugin | | Script | [📚unifi_import](/front/plugins/unifi_import/) |
| `VNDRPDT` | ⚙ system | Vendor update plugin | | Script | [📚vendor_update](/front/plugins/vendor_update/) |
| `WEBHOOK` | ▶️ publisher | Webhook publisher plugin | | Script | [📚_publisher_webhook](/front/plugins/_publisher_webhook/) |
| `WEBMON` | ♻ other | Website monitor plugin | | Script | [📚website_monitor](/front/plugins/website_monitor/) |
> \* The database cleanup plugin (`DBCLNP`) is not _required_ but the app will become unusable after a while if not executed.
>
> \** The Undiscoverables plugin (`UNDIS`) inserts only user-specified dummy devices.
> It's recommended to use the same schedule interval for all plugins responsible for discovering new devices.
## Developing custom plugins
## 🆕 Developing new custom plugins
If you want to develop a custom plugin, please read this [Plugin development guide](/docs/PLUGINS_DEV.md).

View File

@@ -0,0 +1,23 @@
## Overview
Plugin functionality overview and links to external resources if relevant. Include use cases if available.
> [!TIP]
> Some tip.
### Quick setup guide
To set up the plugin correctly, make sure...
#### Required Settings
- When to run `PREF_RUN`
-
### Usage
- Head to **Settings** > **Plugin name** to adjust the default values.
### Notes
- Additional notes, limitations, Author info.

View File

@@ -0,0 +1,369 @@
{
"code_name": "folder_name",
"unique_prefix": "",
"plugin_type": "core|general|system|scanner|other|publisher",
"enabled": true,
"data_source": "script|app-db-query|template|sqlite-db-query",
"mapped_to_table": "CurrentScan",
"data_filters": [
{
"compare_column": "Object_PrimaryID",
"compare_operator": "==",
"compare_field_id": "txtMacFilter",
"compare_js_template": "'{value}'.toString()",
"compare_use_quotes": true
}
],
"show_ui": true,
"localized": ["display_name", "description", "icon"],
"display_name": [
{
"language_code": "en_us",
"string": "Display Name"
}
],
"description": [
{
"language_code": "en_us",
"string": "Plugin to ..."
}
],
"icon": [
{
"language_code": "en_us",
"string": "<i class=\"fa fa-search\"></i>"
}
],
"params": [],
"settings": [
{
"function": "RUN",
"events": ["run"],
"type": "text.select",
"default_value": "disabled",
"options": [
"disabled",
"once",
"schedule",
"always_after_scan",
"on_new_device",
"on_notification"
],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "When to run"
}
],
"description": [
{
"language_code": "en_us",
"string": "When the plugin should run. Good options are <code>always_after_scan</code>, <code>on_new_device</code>, <code>on_notification</code>"
}
]
},
{
"function": "RUN_SCHD",
"type": "text",
"default_value": "*/5 * * * *",
"options": [],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "Schedule"
}
],
"description": [
{
"language_code": "en_us",
"string": "Only enabled if you select <code>schedule</code> in the <a href=\"#SYNC_RUN\"><code>SYNC_RUN</code> setting</a>. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru</a>). For example entering <code>0 4 * * *</code> will run the scan after 4 am in the <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE</code> you set above</a>. Will be run NEXT time the time passes."
}
]
},
{
"function": "text_example",
"type": "text",
"maxLength": 50,
"default_value": "",
"options": [],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "Setting name"
}
],
"description": [
{
"language_code": "en_us",
"string": "Description / simple setup instructions"
}
]
},
{
"function": "boolean_example",
"type": "boolean",
"default_value": false,
"options": [],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "Setting name"
}
],
"description": [
{
"language_code": "en_us",
"string": "Description / simple setup instructions"
}
]
},
{
"function": "multiselect_example_from_setting",
"type": "text.multiselect",
"maxLength": 50,
"default_value": [],
"options": ["{value}"],
"options_params": [
{
"name": "value",
"type": "setting",
"value": "LOADED_PLUGINS"
}
],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "Setting name"
}
],
"description": [
{
"language_code": "en_us",
"string": "Description / simple setup instructions"
}
]
},
{
"function": "CMD",
"type": "readonly",
"default_value": "python3 /app/front/plugins/<plugin folder>/rename_me.py",
"options": [],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "Command"
}
],
"description": [
{
"language_code": "en_us",
"string": "Command to run. This can not be changed"
}
]
},
{
"function": "RUN_TIMEOUT",
"type": "integer",
"default_value": 30,
"options": [],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "Run timeout"
}
],
"description": [
{
"language_code": "en_us",
"string": "Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted."
}
]
}
],
"database_column_definitions": [
{
"column": "Object_PrimaryID",
"mapped_to_column": "cur_MAC",
"css_classes": "col-sm-2",
"show": true,
"type": "device_name_mac",
"default_value": "",
"options": [],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "MAC"
}
]
},
{
"column": "Object_SecondaryID",
"mapped_to_column": "cur_IP",
"css_classes": "col-sm-2",
"show": true,
"type": "device_ip",
"default_value": "",
"options": [],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "IP"
}
]
},
{
"column": "Watched_Value1",
"mapped_to_column": "cur_Name",
"css_classes": "col-sm-2",
"show": true,
"type": "label",
"default_value": "",
"options": [],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "Name"
}
]
},
{
"column": "Watched_Value2",
"mapped_to_column": "cur_Vendor",
"css_classes": "col-sm-2",
"show": true,
"type": "label",
"default_value": "",
"options": [],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "Vendor"
}
]
},
{
"column": "Watched_Value3",
"mapped_to_column": "cur_SyncHubNodeName",
"css_classes": "col-sm-2",
"show": true,
"type": "label",
"default_value": "",
"options": [],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "Sync Node"
}
]
},
{
"column": "Watched_Value4",
"css_classes": "col-sm-2",
"show": true,
"type": "label",
"default_value": "",
"options": [],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "Device GUID"
}
]
},
{
"column": "Dummy",
"mapped_to_column": "cur_ScanMethod",
"mapped_to_column_data": {
"value": "sync"
},
"css_classes": "col-sm-2",
"show": true,
"type": "label",
"default_value": "",
"options": [],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "Scan method"
}
]
},
{
"column": "DateTimeCreated",
"css_classes": "col-sm-2",
"show": true,
"type": "label",
"default_value": "",
"options": [],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "Created"
}
]
},
{
"column": "DateTimeChanged",
"css_classes": "col-sm-2",
"show": true,
"type": "label",
"default_value": "",
"options": [],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "Changed"
}
]
},
{
"column": "Status",
"css_classes": "col-sm-1",
"show": true,
"type": "replace",
"default_value": "",
"options": [
{
"equals": "watched-not-changed",
"replacement": "<div style='text-align:center'><i class='fa-solid fa-square-check'></i><div></div>"
},
{
"equals": "watched-changed",
"replacement": "<div style='text-align:center'><i class='fa-solid fa-triangle-exclamation'></i></div>"
},
{
"equals": "new",
"replacement": "<div style='text-align:center'><i class='fa-solid fa-circle-plus'></i></div>"
},
{
"equals": "missing-in-last-scan",
"replacement": "<div style='text-align:center'><i class='fa-solid fa-question'></i></div>"
}
],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "Status"
}
]
}
]
}

View File

View File

@@ -0,0 +1,82 @@
#!/usr/bin/env python
import os
import pathlib
import sys
import json
import sqlite3
# Define the installation path and extend the system path for plugin imports
INSTALL_PATH = "/app"
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
from plugin_helper import Plugin_Object, Plugin_Objects, decodeBase64
from plugin_utils import get_plugins_configs
from logger import mylog
from const import pluginsPath, fullDbPath
from helper import timeNowTZ, get_setting_value
from notification import write_notification
# Define the current path and log file paths
CUR_PATH = str(pathlib.Path(__file__).parent.resolve())
LOG_FILE = os.path.join(CUR_PATH, 'script.log')
RESULT_FILE = os.path.join(CUR_PATH, 'last_result.log')
# Initialize the Plugin obj output file
plugin_objects = Plugin_Objects(RESULT_FILE)
pluginName = '<unique_prefix>'
def main():
mylog('verbose', [f'[{pluginName}] In script'])
# Retrieve configuration settings
some_setting = get_setting_value('SYNC_plugins')
mylog('verbose', [f'[{pluginName}] some_setting value {some_setting}'])
# retrieve data
device_data = get_device_data(some_setting)
# Process the data into native application tables
if len(device_data) > 0:
# insert devices into the lats_result.log
# make sure the below mapping is mapped in config.json, for example:
#"database_column_definitions": [
# {
# "column": "Object_PrimaryID", <--------- the value I save into primaryId
# "mapped_to_column": "cur_MAC", <--------- gets unserted into the CurrentScan DB table column cur_MAC
#
for device in device_data:
plugin_objects.add_object(
primaryId = device['some_id'],
secondaryId = device['some_id'],
watched1 = device['some_id'],
watched2 = device['some_id'],
watched3 = device['some_id'],
watched4 = device['some_id'],
extra = '',
foreignKey = device['some_id'])
mylog('verbose', [f'[{pluginName}] New entries: "{len(new_devices)}"'])
# log result
plugin_objects.write_result_file()
return 0
# retrieve data
def get_device_data(some_setting):
device_data = []
# do some processing, call exteranl APIs, and return a device_data list
# ...
#
return device_data
if __name__ == '__main__':
main()

View File

@@ -587,26 +587,6 @@
}
]
},
{
"function": "PRESENCE_SENSOR_TYPE",
"events": [],
"type": "text.select",
"default_value": "binary_sensor",
"options": ["binary_sensor", "device_tracker"],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "Presence Sensor Type"
}
],
"description": [
{
"language_code": "en_us",
"string": "The type of the sensor that should be generated for the <code>is_present</code> sensor. Inserted into the <code>homeassistant/{MQTT_PRESENCE_SENSOR_TYPE}/mac_44_ef_44_ef_44_ef/is_present/</code> topic. See the <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/front/plugins/_publisher_mqtt/README.md#usage\">Plugin readme</a> for details."
}
]
},
{
"function": "QOS",
"type": "integer.select",

View File

@@ -79,16 +79,71 @@ def check_config():
#-------------------------------------------------------------------------------
# Sensor configs are tracking which sensors in NetAlertX exist and if a config has changed
class sensor_config:
def __init__(self, deviceId, deviceName, sensorType, sensorName, icon, mac):
self.deviceId = deviceId
self.deviceName = deviceName
self.sensorType = sensorType
self.sensorName = sensorName
self.icon = icon
self.deviceId = deviceId
self.deviceName = deviceName
self.sensorType = sensorType
self.sensorName = sensorName
self.icon = icon
self.mac = mac
self.state_topic = ''
self.json_attr_topic = ''
self.topic = ''
self.message = ''
self.unique_id = ''
# binary sensor only sensor
if self.sensorType == 'binary_sensor' or self.sensorType == 'sensor':
self.topic = f'homeassistant/{self.sensorType}/{self.deviceId}/{self.sensorName}/config'
self.state_topic = f'system-sensors/{self.sensorType}/{self.deviceId}/state'
self.unique_id = self.deviceId+'_sensor_'+self.sensorName
self.message = {
"name" : self.sensorName,
"state_topic" : self.state_topic,
"value_template" : "{{value_json."+self.sensorName+"}}",
"unique_id" : self.unique_id,
"device":
{
"identifiers" : [self.deviceId+"_sensor"],
"manufacturer" : "NetAlertX",
"name" : self.deviceName
},
"icon": f'mdi:{self.icon}'
}
elif self.sensorType == 'device_tracker':
self.topic = f'homeassistant/device_tracker/{self.deviceId}/config'
self.state_topic = f'system-sensors/device_tracker/{self.deviceId}/state'
self.json_attr_topic = f'system-sensors/device_tracker/{self.deviceId}/attributes'
self.unique_id = f'{self.deviceId}_{self.sensorType}_{self.sensorName}'
payload_home = 'home'
payload_away = 'away'
self.message = {
"state_topic": self.state_topic,
"json_attributes_topic": self.json_attr_topic,
"name": self.sensorName,
"payload_home": payload_home,
"payload_not_home": payload_away,
"unique_id" : self.unique_id,
"icon": f'mdi:{self.icon}',
"device":
{
"identifiers" : [self.deviceId+"_sensor", self.unique_id],
"manufacturer" : "NetAlertX",
"name" : self.deviceName
},
}
# Define your input string
input_string = str(deviceId) + str(deviceName) + str(sensorType) + str(sensorName) + str(icon)
input_string = str(self.deviceId) + str(self.deviceName) + str(self.sensorType) + str(self.sensorName) + str(self.icon)
# Hash the input string and convert the hash to a string
# Update the hash object with the bytes of the input string
@@ -106,8 +161,8 @@ class sensor_config:
if plugObj == {}:
self.isNew = True
mylog('verbose', [f"[{pluginName}] New sensor entry name : {deviceName}"])
mylog('verbose', [f"[{pluginName}] New sensor entry mac : {mac}"])
mylog('verbose', [f"[{pluginName}] New sensor entry name : {self.deviceName}"])
mylog('verbose', [f"[{pluginName}] New sensor entry mac : {self.mac}"])
mylog('verbose', [f"[{pluginName}] New sensor entry hash_value : {hash_value}"])
else:
device_name = plugObj.get("Watched_Value1", "Unknown")
@@ -173,6 +228,7 @@ def publish_mqtt(mqtt_client, topic, message):
return True
#-------------------------------------------------------------------------------
# Create a generic device for overal stats
def create_generic_device(mqtt_client, deviceId, deviceName):
create_sensor(mqtt_client, deviceId, deviceName, 'sensor', 'online', 'wifi-check')
@@ -184,50 +240,28 @@ def create_generic_device(mqtt_client, deviceId, deviceName):
#-------------------------------------------------------------------------------
# Register sensor config on the broker
def create_sensor(mqtt_client, deviceId, deviceName, sensorType, sensorName, icon, mac=""):
global mqtt_sensors
new_sensor_config = sensor_config(deviceId, deviceName, sensorType, sensorName, icon, mac)
# save if new
if new_sensor_config.isNew:
mylog('verbose', [f"[{pluginName}] Publishing sensor number {len(mqtt_sensors)}"])
publish_sensor(mqtt_client, new_sensor_config)
# check previous configs
sensorConfig = sensor_config(deviceId, deviceName, sensorType, sensorName, icon, mac)
mylog('verbose', [f"[{pluginName}] Publishing sensor number {len(mqtt_sensors)}"])
# send if new
if sensorConfig.isNew:
# add the sensor to the global list to keep track of succesfully added sensors
if publish_mqtt(mqtt_client, sensorConfig.topic, sensorConfig.message):
# hack - delay adding to the queue in case the process is
time.sleep(get_setting_value('MQTT_DELAY_SEC')) # restarted and previous publish processes aborted
# (it takes ~2s to update a sensor config on the broker)
mqtt_sensors.append(sensorConfig)
#-------------------------------------------------------------------------------
def publish_sensor(mqtt_client, sensorConfig):
global mqtt_sensors
icon = "mdi:" + sensorConfig.icon
message = {
"name" : sensorConfig.sensorName,
"state_topic" : "system-sensors/"+sensorConfig.sensorType+'/'+sensorConfig.deviceId+"/state",
"value_template" : "{{value_json."+sensorConfig.sensorName+"}}",
"unique_id" : sensorConfig.deviceId+'_sensor_'+sensorConfig.sensorName,
"device":
{
"identifiers" : [sensorConfig.deviceId+"_sensor"],
"manufacturer" : "NetAlertX",
"name" : sensorConfig.deviceName
},
"icon": icon
}
topic='homeassistant/'+sensorConfig.sensorType+'/'+sensorConfig.deviceId+'/'+sensorConfig.sensorName+'/config'
# add the sensor to the global list to keep track of succesfully added sensors
if publish_mqtt(mqtt_client, topic, message):
# hack - delay adding to the queue in case the process is
time.sleep(get_setting_value('MQTT_DELAY_SEC')) # restarted and previous publish processes aborted
# (it takes ~2s to update a sensor config on the broker)
mqtt_sensors.append(sensorConfig)
return sensorConfig
#-------------------------------------------------------------------------------
def mqtt_create_client():
@@ -279,8 +313,7 @@ def mqtt_start(db):
deviceName = get_setting_value('MQTT_DEVICE_NAME')
deviceId = get_setting_value('MQTT_DEVICE_ID')
presenceSenType = get_setting_value('MQTT_PRESENCE_SENSOR_TYPE')
deviceId = get_setting_value('MQTT_DEVICE_ID')
# General stats
@@ -316,50 +349,57 @@ def mqtt_start(db):
mylog('verbose', [f"[{pluginName}] Estimated delay: ", (sec_delay), 's ', '(', round(sec_delay/60,1) , 'min)' ])
# debug_index = 0
debug_index = 0
for device in devices:
# debug statement
# if 'Moto' in device["dev_Name"]:
# Create devices in Home Assistant - send config messages
deviceId = 'mac_' + device["dev_MAC"].replace(" ", "").replace(":", "_").lower()
deviceNameDisplay = re.sub('[^a-zA-Z0-9-_\s]', '', device["dev_Name"])
deviceId = 'mac_' + device["dev_MAC"].replace(" ", "").replace(":", "_").lower()
devDisplayName = re.sub('[^a-zA-Z0-9-_\s]', '', device["dev_Name"])
create_sensor(mqtt_client, deviceId, deviceNameDisplay, 'sensor', 'last_ip', 'ip-network', device["dev_MAC"])
create_sensor(mqtt_client, deviceId, deviceNameDisplay, presenceSenType, 'is_present', 'wifi', device["dev_MAC"])
create_sensor(mqtt_client, deviceId, deviceNameDisplay, 'sensor', 'mac_address', 'folder-key-network', device["dev_MAC"])
create_sensor(mqtt_client, deviceId, deviceNameDisplay, 'sensor', 'is_new', 'bell-alert-outline', device["dev_MAC"])
create_sensor(mqtt_client, deviceId, deviceNameDisplay, 'sensor', 'vendor', 'cog', device["dev_MAC"])
create_sensor(mqtt_client, deviceId, deviceNameDisplay, 'sensor', 'first_connection', 'calendar-start', device["dev_MAC"])
create_sensor(mqtt_client, deviceId, deviceNameDisplay, 'sensor', 'last_connection', 'calendar-end', device["dev_MAC"])
sensorConfig = create_sensor(mqtt_client, deviceId, devDisplayName, 'sensor', 'last_ip', 'ip-network', device["dev_MAC"])
sensorConfig = create_sensor(mqtt_client, deviceId, devDisplayName, 'sensor', 'mac_address', 'folder-key-network', device["dev_MAC"])
sensorConfig = create_sensor(mqtt_client, deviceId, devDisplayName, 'sensor', 'is_new', 'bell-alert-outline', device["dev_MAC"])
sensorConfig = create_sensor(mqtt_client, deviceId, devDisplayName, 'sensor', 'vendor', 'cog', device["dev_MAC"])
sensorConfig = create_sensor(mqtt_client, deviceId, devDisplayName, 'sensor', 'first_connection', 'calendar-start', device["dev_MAC"])
sensorConfig = create_sensor(mqtt_client, deviceId, devDisplayName, 'sensor', 'last_connection', 'calendar-end', device["dev_MAC"])
devJson = {
"last_ip": device["dev_LastIP"],
"is_new": str(device["dev_NewDevice"]),
"vendor": sanitize_string(device["dev_Vendor"]),
"mac_address": str(device["dev_MAC"]),
"last_connection": str(device["dev_LastConnection"]),
"first_connection": str(device["dev_FirstConnection"])
}
# update device sensors in home assistant
# bulk update device sensors in home assistant
publish_mqtt(mqtt_client, sensorConfig.state_topic, devJson)
publish_mqtt(mqtt_client, 'system-sensors/sensor/'+deviceId+'/state',
{
"last_ip": device["dev_LastIP"],
"is_new": str(device["dev_NewDevice"]),
"vendor": sanitize_string(device["dev_Vendor"]),
"mac_address": str(device["dev_MAC"]),
"last_connection": str(device["dev_LastConnection"]),
"first_connection": str(device["dev_FirstConnection"])
}
)
publish_mqtt(mqtt_client, f'system-sensors/{presenceSenType}/{deviceId}/state',
# create and update is_present sensor
sensorConfig = create_sensor(mqtt_client, deviceId, devDisplayName, 'binary_sensor', 'is_present', 'wifi', device["dev_MAC"])
publish_mqtt(mqtt_client, sensorConfig.state_topic,
{
"is_present": to_binary_sensor(str(device["dev_PresentLastScan"]))
}
)
# delete device / topic
# homeassistant/sensor/mac_44_ef_bf_c4_b1_af/is_present/config
# client.publish(
# topic="homeassistant/sensor/"+deviceId+"/is_present/config",
# payload="",
# qos=1,
# retain=True,
# )
# time.sleep(10)
# handle device_tracker
sensorConfig = create_sensor(mqtt_client, deviceId, devDisplayName, 'device_tracker', 'is_home', 'home', device["dev_MAC"])
# <away|home> are only valid states
state = 'away'
if to_binary_sensor(str(device["dev_PresentLastScan"])) == "ON":
state = 'home'
publish_mqtt(mqtt_client, sensorConfig.state_topic, state)
# publish device_tracker attributes
publish_mqtt(mqtt_client, sensorConfig.json_attr_topic, devJson)
#===============================================================================

View File

@@ -1,6 +1,17 @@
## Overview
Plugin supplying settings for Notification Processing.
Plugin supplying settings for Notification Processing.
### Notify on: `NTFPRCS_INCLUDED_SECTIONS`:
- `new_devices` - if a new device is detected
- `down_devices` - if a device with **Alert down** enabled (on a specific Device) disconnects
- `down_reconnected` - if a device, previously marked down and notified on, reconnects
- `events` - if an event for a device that has **Alert All Events** enabled, is triggered
- `plugins` - if an event for a plugin, is triggered
Check the [Notifications guide](/docs/NOTIFICATIONS.md) for more details.
### Usage

View File

@@ -0,0 +1,23 @@
## Overview
PLugin functionality overview and links to external resources if relevant. Include use cases if available.
> [!TIP]
> Some tip.
### Quick setup guide
To set up the plugin correctly, make sure...
#### Required Settings
- When to run `PREF_RUN`
-
### Usage
- Head to **Settings** > **Plugin name** to adjust the default values.
### Notes
- Additional notes, limitations, Author info.

View File

@@ -0,0 +1,495 @@
{
"code_name": "omada_sdn_imp",
"unique_prefix": "OMDSDN",
"plugin_type": "device_scanner",
"enabled": true,
"data_source": "script",
"mapped_to_table": "CurrentScan",
"data_filters": [
{
"compare_column": "Object_PrimaryID",
"compare_operator": "==",
"compare_field_id": "txtMacFilter",
"compare_js_template": "'{value}'.toString()",
"compare_use_quotes": true
}
],
"show_ui": true,
"localized": ["display_name", "description", "icon"],
"display_name": [
{
"language_code": "en_us",
"string": "OMADA SDN import"
}
],
"description": [
{
"language_code": "en_us",
"string": "Plugin to import data from OMADA SDN."
}
],
"icon": [
{
"language_code": "en_us",
"string": "<i class=\"fa fa-search\"></i>"
}
],
"params": [],
"settings": [
{
"function": "RUN",
"events": ["run"],
"type": "text.select",
"default_value": "disabled",
"options": [
"disabled",
"once",
"schedule",
"always_after_scan"
],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "When to run"
},
{
"language_code": "es_es",
"string": "Cuándo ejecutar"
},
{
"language_code": "de_de",
"string": "Wann laufen"
}
],
"description": [
{
"language_code": "en_us",
"string": "When the scan should run. Good options are: <code>schedule</code>"
}
]
},
{
"function": "RUN_SCHD",
"type": "text",
"default_value": "*/5 * * * *",
"options": [],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "Schedule"
}
],
"description": [
{
"language_code": "en_us",
"string": "Only enabled if you select <code>schedule</code> in the <a href=\"#SYNC_RUN\"><code>SYNC_RUN</code> setting</a>. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru</a>). For example entering <code>0 4 * * *</code> will run the scan after 4 am in the <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE</code> you set above</a>. Will be run NEXT time the time passes."
},
{
"language_code": "es_es",
"string": "Solo está habilitado si selecciona <code>schedule</code> en la configuración <a href=\"#SYNC_RUN\"><code>SYNC_RUN</code></a>. Asegúrese de ingresar la programación en el formato similar a cron correcto (por ejemplo, valide en <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru</a>). Por ejemplo, ingresar <code>0 4 * * *</code> ejecutará el escaneo después de las 4 a.m. en el <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE</ código> que configuró arriba</a>. Se ejecutará la PRÓXIMA vez que pase el tiempo."
},
{
"language_code": "de_de",
"string": "Nur aktiviert, wenn Sie <code>schedule</code> in der <a href=\"#SYNC_RUN\"><code>SYNC_RUN</code>-Einstellung</a> auswählen. Stellen Sie sicher, dass Sie den Zeitplan im richtigen Cron-ähnlichen Format eingeben (z. B. validieren unter <a href=\"https://crontab.guru/\" target=\"_blank\">crontab.guru</a>). Wenn Sie beispielsweise <code>0 4 * * *</code> eingeben, wird der Scan nach 4 Uhr morgens in der <a onclick=\"toggleAllSettings()\" href=\"#TIMEZONE\"><code>TIMEZONE</ ausgeführt. Code> den Sie oben festgelegt haben</a>. Wird das NÄCHSTE Mal ausgeführt, wenn die Zeit vergeht."
}
]
},
{
"function": "url",
"type": "text",
"maxLength": 50,
"default_value": "",
"options": [],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "URL"
}
],
"description": [
{
"language_code": "en_us",
"string": "Enter full URL with protocol <code>https://CHANGEME_omada.mylocaldomain</code>."
}
]
},
{
"function": "site",
"type": "text",
"maxLength": 50,
"default_value": "",
"options": [],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "OMADA site"
}
],
"description": [
{
"language_code": "en_us",
"string": "Omada SDN site id. You can get it by..."
}
]
},
{
"function": "username",
"type": "text",
"maxLength": 50,
"default_value": "",
"options": [],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "User name"
}
],
"description": [
{
"language_code": "en_us",
"string": "Omada SDN instance user name."
}
]
},
{
"function": "password",
"type": "password",
"maxLength": 50,
"default_value": "",
"options": [],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "Password"
}
],
"description": [
{
"language_code": "en_us",
"string": "Omada SDN instance password"
}
]
},
{
"function": "CMD",
"type": "readonly",
"default_value": "python3 /app/front/plugins/omada_sdn_imp/omada_sdn.py",
"options": [],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "Command"
},
{
"language_code": "es_es",
"string": "Comando"
},
{
"language_code": "de_de",
"string": "Befehl"
}
],
"description": [
{
"language_code": "en_us",
"string": "Command to run. This can not be changed"
},
{
"language_code": "es_es",
"string": "Comando a ejecutar. Esto no se puede cambiar"
},
{
"language_code": "de_de",
"string": "Befehl zum Ausführen. Dies kann nicht geändert werden"
}
]
},
{
"function": "RUN_TIMEOUT",
"type": "integer",
"default_value": 30,
"options": [],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "Run timeout"
},
{
"language_code": "es_es",
"string": "Tiempo límite de ejecución"
},
{
"language_code": "de_de",
"string": "Zeitüberschreitung"
}
],
"description": [
{
"language_code": "en_us",
"string": "Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted."
},
{
"language_code": "es_es",
"string": "Tiempo máximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela."
},
{
"language_code": "de_de",
"string": "Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei Überschreitung dieser Zeit wird das Skript abgebrochen."
}
]
}
],
"database_column_definitions": [
{
"column": "Object_PrimaryID",
"mapped_to_column": "cur_MAC",
"css_classes": "col-sm-2",
"show": true,
"type": "device_name_mac",
"default_value": "",
"options": [],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "MAC"
},
{
"language_code": "es_es",
"string": "MAC"
},
{
"language_code": "de_de",
"string": "MAC"
}
]
},
{
"column": "Object_SecondaryID",
"mapped_to_column": "cur_IP",
"css_classes": "col-sm-2",
"show": true,
"type": "device_ip",
"default_value": "",
"options": [],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "IP"
},
{
"language_code": "es_es",
"string": "IP"
},
{
"language_code": "de_de",
"string": "IP"
}
]
},
{
"column": "Watched_Value1",
"mapped_to_column": "cur_Name",
"css_classes": "col-sm-2",
"show": true,
"type": "label",
"default_value": "",
"options": [],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "Name"
}
]
},
{
"column": "Watched_Value2",
"mapped_to_column": "cur_NetworkNodeMAC",
"css_classes": "col-sm-2",
"show": true,
"type": "label",
"default_value": "",
"options": [],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "Parent Network MAC"
}
]
},
{
"column": "Watched_Value3",
"mapped_to_column": "cur_PORT",
"css_classes": "col-sm-2",
"show": true,
"type": "label",
"default_value": "",
"options": [],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "Port"
}
]
},
{
"column": "Watched_Value4",
"mapped_to_column": "cur_SSID",
"css_classes": "col-sm-2",
"show": true,
"type": "label",
"default_value": "",
"options": [],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "SSID"
}
]
},
{
"column": "Extra",
"mapped_to_column": "cur_NetworkSite",
"css_classes": "col-sm-2",
"show": false,
"type": "label",
"default_value": "",
"options": [],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "Site or Vendor"
}
]
},
{
"column": "Dummy",
"mapped_to_column": "cur_ScanMethod",
"mapped_to_column_data": {
"value": "OMDSDN"
},
"css_classes": "col-sm-2",
"show": true,
"type": "label",
"default_value": "",
"options": [],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "Scan method"
},
{
"language_code": "es_es",
"string": "Método de escaneo"
},
{
"language_code": "de_de",
"string": "Scanmethode"
}
]
},
{
"column": "DateTimeCreated",
"css_classes": "col-sm-2",
"show": true,
"type": "label",
"default_value": "",
"options": [],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "Created"
},
{
"language_code": "es_es",
"string": "Creado"
},
{
"language_code": "de_de",
"string": "Erstellt"
}
]
},
{
"column": "DateTimeChanged",
"css_classes": "col-sm-2",
"show": true,
"type": "label",
"default_value": "",
"options": [],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "Changed"
},
{
"language_code": "es_es",
"string": "Cambiado"
},
{
"language_code": "de_de",
"string": "Geändert"
}
]
},
{
"column": "Status",
"css_classes": "col-sm-1",
"show": true,
"type": "replace",
"default_value": "",
"options": [
{
"equals": "watched-not-changed",
"replacement": "<div style='text-align:center'><i class='fa-solid fa-square-check'></i><div></div>"
},
{
"equals": "watched-changed",
"replacement": "<div style='text-align:center'><i class='fa-solid fa-triangle-exclamation'></i></div>"
},
{
"equals": "new",
"replacement": "<div style='text-align:center'><i class='fa-solid fa-circle-plus'></i></div>"
},
{
"equals": "missing-in-last-scan",
"replacement": "<div style='text-align:center'><i class='fa-solid fa-question'></i></div>"
}
],
"localized": ["name"],
"name": [
{
"language_code": "en_us",
"string": "Status"
},
{
"language_code": "es_es",
"string": "Estado"
},
{
"language_code": "de_de",
"string": "Status"
}
]
}
]
}

View File

@@ -0,0 +1,85 @@
#!/usr/bin/env python
import os
import pathlib
import sys
import json
import sqlite3
# Define the installation path and extend the system path for plugin imports
INSTALL_PATH = "/app"
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
from plugin_helper import Plugin_Object, Plugin_Objects, decodeBase64
from plugin_utils import get_plugins_configs
from logger import mylog
from const import pluginsPath, fullDbPath
from helper import timeNowTZ, get_setting_value
from notification import write_notification
# Define the current path and log file paths
CUR_PATH = str(pathlib.Path(__file__).parent.resolve())
LOG_FILE = os.path.join(CUR_PATH, 'script.log')
RESULT_FILE = os.path.join(CUR_PATH, 'last_result.log')
# Initialize the Plugin obj output file
plugin_objects = Plugin_Objects(RESULT_FILE)
pluginName = '<unique_prefix>'
# ----------------------------------------------
# Main initialization
def main():
mylog('verbose', [f'[{pluginName}] In script'])
# Retrieve configuration settings
some_setting = get_setting_value('OMDSDN_url')
mylog('verbose', [f'[{pluginName}] some_setting calue {some_setting}'])
# retrieve data
device_data = get_device_data(some_setting)
# Process the data into native application tables
if len(device_data) > 0:
# insert devices into the lats_result.log
# make sure the below mapping is mapped in config.json, for example:
#"database_column_definitions": [
# {
# "column": "Object_PrimaryID", <--------- the value I save into primaryId
# "mapped_to_column": "cur_MAC", <--------- gets unserted into the CurrentScan DB table column cur_MAC
#
for device in device_data:
plugin_objects.add_object(
primaryId = device['some_id'], # MAC
secondaryId = device['some_id'], # IP
watched1 = device['some_id'], # NAME/HOSTNAME
watched2 = device['some_id'], # PARENT NETWORK NODE MAC
watched3 = device['some_id'], # PORT
watched4 = device['some_id'], # SSID
extra = device['some_id'], # SITENAME (cur_NetworkSite) or VENDOR (cur_Vendor) (PICK one and adjust config.json -> "column": "Extra")
foreignKey = device['some_id']) # usually MAC
mylog('verbose', [f'[{pluginName}] New entries: "{len(new_devices)}"'])
# log result
plugin_objects.write_result_file()
return 0
# ----------------------------------------------
# retrieve data
def get_device_data(some_setting):
device_data = []
# do some processing, call exteranl APIs, and return a device list
# ...
#
return device_data
if __name__ == '__main__':
main()

View File

@@ -136,7 +136,7 @@
"description": [
{
"language_code": "en_us",
"string": "Encryption key used to encrypt the data before sending and for decryption on th ehub. The key needs to be the same on the hub and on the nodes."
"string": "Encryption key used to encrypt the data before sending and for decryption on the hub. The key needs to be the same on the hub and on the nodes."
}
]
},

View File

@@ -0,0 +1,8 @@
## Overview
UI-related settings.
### Usage
- Head to **Settings** > **UI Settings** to adjust the default values.

View File

@@ -0,0 +1,85 @@
{
"code_name": "ui_settings",
"unique_prefix": "UI",
"plugin_type": "core",
"enabled": true,
"data_source": "template",
"show_ui": false,
"localized": ["display_name", "description", "icon"],
"display_name": [
{
"language_code": "en_us",
"string": "UI settings"
}
],
"description": [
{
"language_code": "en_us",
"string": "Plugin to adjust UI settings."
}
],
"icon": [
{
"language_code": "en_us",
"string": "<i class=\"fa fa-paint-roller\"></i>"
}
],
"params": [],
"settings": [
{
"function": "shown_cards",
"type": "text.multiselect",
"maxLength": 50,
"default_value": [
"my_devices",
"connected",
"favorites",
"new",
"down",
"archived"
],
"options": [
"my_devices",
"connected",
"favorites",
"new",
"down",
"archived",
"offline",
"all"
],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "Tiles to Show"
}
],
"description": [
{
"language_code": "en_us",
"string": "Which tiles to show on teh top of the Devices page."
}
]
},
{
"function": "hide_empty",
"type": "boolean",
"default_value": false,
"options": [],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "Hide empty tiles"
}
],
"description": [
{
"language_code": "en_us",
"string": "Hide Device tiles with zero results."
}
]
}
]
}

View File

@@ -6,14 +6,16 @@ A plugin allowing for importing devices from a UniFi controller.
Specify the following settings in the Settings section of NetAlertX:
- `UNFIMP_username` - Username used to login into the UNIFI controller.
- `UNFIMP_password` - Password used to login into the UNIFI controller.
- `UNFIMP_host` - Host url or IP address where the UNIFI controller is hosted (excluding http://)
- `UNFIMP_username` - Username used to log in the UNIFI controller.
- `UNFIMP_password` - Password used to log in the UNIFI controller.
- `UNFIMP_host` - Host URL or IP address where the UNIFI controller is hosted (excluding `http://`)
- `UNFIMP_sites` - Name of the sites (usually 'default', check the URL in your UniFi controller UI if unsure. The site id is in the following part of the URL: `https://192.168.1.1:8443/manage/site/this-is-the-site-id/settings/`).
- `UNFIMP_protocol` - https:// or http://
- `UNFIMP_port` - Usually 8443
- `UNFIMP_port` - Usually `8443` or `8843`
- `UNFIMP_version` - e.g. `UDMP-unifiOS` is used for the "Cloud Gateway Ultra"
### Notes
- Currently only used to import devices, not their status, type or network map.
- It is recommend to create a read-only user in your UniFi controller
- It is recommended to create a read-only user in your UniFi controller

View File

@@ -122,7 +122,7 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
<div class ="settings-group col-sm-12">
<i class="<?= lang("settings_device_scanners_icon");?>"></i> <?= lang("settings_device_scanners_label");?>
</div>
<div class =" col-sm-12" id="device_scanner_content"></div>
<div class =" col-sm-12" id="device_scanner_content"> <?= lang("settings_device_scanners_info");?> </div>
</div>
<div class ="bg-grey-dark color-palette panel panel-default col-sm-12 box-default box-info" id="other_content_header">
@@ -136,7 +136,7 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
<div class ="settings-group col-sm-12">
<i class="<?= lang("settings_publishers_icon");?>"></i> <?= lang("settings_publishers_label");?>
</div>
<div class =" col-sm-12" id="publisher_content"></div>
<div class =" col-sm-12" id="publisher_content"><?= lang("settings_publishers_info");?></div>
</div>
</div>
@@ -178,8 +178,6 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
<script>
// -------------------------------------------------------------------
// Get plugin and settings data from API endpoints
@@ -192,7 +190,10 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
// Wrong number of settings processing
if(settingsNumberDB != settingsData.length)
{
showModalOk('WARNING', "<?= lang("settings_missing")?>");
showModalOk('WARNING', "<?= lang("settings_old")?>");
setTimeout(() => {
clearCache()
}, 3000);
} else
{
$.get('api/plugins.json?nocache=' + Date.now(), function(res) {
@@ -210,7 +211,38 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
return 0;
});
initSettingsPage(settingsData, pluginsData, generateDropdownOptions);
exception_occurred = false;
// check if cache needs to be refreshed
// the getSetting method returns an empty string even if a setting is not found
// however, __metadata needs to be always a JSON object
// let's use that to verify settings were initialized correctly
settingsData.forEach((set) => {
codeName = set['Code_Name']
try {
const isMetadata = codeName.includes('__metadata');
// is this isn't a metadata entry, get corresponding metadata object from the dummy setting
const setObj = isMetadata ? {} : JSON.parse(getSetting(`${codeName}__metadata`));
} catch (error) {
console.error(`Error getting setting for ${codeName}:`, error);
showModalOk('WARNING', "Outdated cache - refreshing (refresh browser cache if needed)");
setTimeout(() => {
clearCache()
}, 3000);
exception_occurred = true;
}
});
// only proceed if everything was loaded correctly
if(!exception_occurred)
{
initSettingsPage(settingsData, pluginsData, generateDropdownOptions);
}
})
}
})
@@ -228,7 +260,6 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
const enabledPublishers = getPluginsByType(pluginsData, "publisher", true);
// Loop through the settingsArray and:
// - collect unique settingPluginPrefixes
// - collect enabled plugins

View File

@@ -167,7 +167,7 @@ require 'php/templates/header.php';
{ "width": "15%", "targets": [0] }, // Set width of the first four columns to 10%
{ "width": "5%", "targets": [1,3] }, // Set width of the first four columns to 10%
{ "width": "50%", "targets": [2] }, // Set width of the first four columns to 10%
{ "width": "5%", "targets": 4 }, // Set width of the "Content" column to 60%
{ "width": "5%", "targets": [4,5] }, // Set width of the "Content" column to 60%
],
"order": [[0, "desc"]]

View File

@@ -30,5 +30,5 @@ source myenv/bin/activate
update-alternatives --install /usr/bin/python python /usr/bin/python3 10
# install packages thru pip3
pip3 install pycryptodome requests paho-mqtt scapy cron-converter pytz json2table dhcp-leases pyunifi speedtest-cli chardet python-nmap dnspython cryptography
pip3 install tplink-omada-client pycryptodome requests paho-mqtt scapy cron-converter pytz json2table dhcp-leases pyunifi speedtest-cli chardet python-nmap dnspython cryptography

View File

@@ -5,6 +5,36 @@ server {
add_header X-Forwarded-Prefix "/app" always;
proxy_set_header X-Forwarded-Prefix "/app";
# # Increase buffer sizes to handle larger headers
# proxy_buffer_size 512k;
# proxy_buffers 16 512k;
# proxy_busy_buffers_size 512k;
# proxy_http_version 1.1;
# proxy_set_header Connection "";
# # Whitelisting IP addresses
# location /api/ {
# # Allow requests from localhost (loopback address)
# allow 127.0.0.1;
# # Allow requests from other trusted IP addresses
# # allow 192.168.1.0/24; # Replace with the actual IP of a trusted client
# # Deny all other IP addresses
# deny all;
# # Enable CORS for specific frontend domain
# add_header 'Access-Control-Allow-Origin' 'http://vlan_ip' always;
# add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
# add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type' always;
# if ($request_method = 'OPTIONS') {
# return 204;
# }
# try_files $uri $uri/ =404;
# }
location ~* \.php$ {
# Set Cache-Control header to prevent caching on the first load
add_header Cache-Control "no-store";

View File

@@ -161,6 +161,28 @@ class DB():
ALTER TABLE "Devices" ADD "dev_GUID" TEXT
""")
# dev_NetworkSite column
dev_NetworkSite_missing = self.sql.execute ("""
SELECT COUNT(*) AS CNTREC FROM pragma_table_info('Devices') WHERE name='dev_NetworkSite'
""").fetchone()[0] == 0
if dev_NetworkSite_missing :
mylog('verbose', ["[upgradeDB] Adding dev_NetworkSite to the Devices table"])
self.sql.execute("""
ALTER TABLE "Devices" ADD "dev_NetworkSite" TEXT
""")
# dev_SSID column
dev_SSID_missing = self.sql.execute ("""
SELECT COUNT(*) AS CNTREC FROM pragma_table_info('Devices') WHERE name='dev_SSID'
""").fetchone()[0] == 0
if dev_SSID_missing :
mylog('verbose', ["[upgradeDB] Adding dev_SSID to the Devices table"])
self.sql.execute("""
ALTER TABLE "Devices" ADD "dev_SSID" TEXT
""")
# SQL query to update missing dev_GUID
self.sql.execute(f'''
UPDATE Devices
@@ -460,7 +482,12 @@ class DB():
cur_Name STRING(250),
cur_LastQuery STRING(250),
cur_DateTime STRING(250),
cur_SyncHubNodeName STRING(50)
cur_SyncHubNodeName STRING(50),
cur_NetworkSite STRING(250),
cur_SSID STRING(250),
cur_NetworkNodeMAC STRING(250),
cur_PORT STRING(250),
cur_Type STRING(250)
);
""")

View File

@@ -168,13 +168,11 @@ def create_new_devices (db):
dev_SkipRepeated,
dev_ScanCycle,
dev_Owner,
dev_DeviceType,
dev_Favorite,
dev_Group,
dev_Comments,
dev_LogEvents,
dev_Location,
dev_Network_Node_MAC_ADDR,
dev_Icon"""
newDevDefaults = f"""{get_setting_value('NEWDEV_dev_AlertEvents')},
@@ -185,37 +183,57 @@ def create_new_devices (db):
{get_setting_value('NEWDEV_dev_SkipRepeated')},
{get_setting_value('NEWDEV_dev_ScanCycle')},
'{get_setting_value('NEWDEV_dev_Owner')}',
'{get_setting_value('NEWDEV_dev_DeviceType')}',
{get_setting_value('NEWDEV_dev_Favorite')},
'{get_setting_value('NEWDEV_dev_Group')}',
'{get_setting_value('NEWDEV_dev_Comments')}',
{get_setting_value('NEWDEV_dev_LogEvents')},
'{get_setting_value('NEWDEV_dev_Location')}',
'{get_setting_value('NEWDEV_dev_Network_Node_MAC_ADDR')}',
'{get_setting_value('NEWDEV_dev_Icon')}'
"""
# Bulk-inserting devices from the CurrentScan table as new devices in the table Devices ...
# ... with new device defaults and ignoring specidfied IPs and MACs)
sqlQuery = f"""INSERT OR IGNORE INTO Devices (dev_MAC, dev_name, dev_Vendor,
dev_LastIP, dev_FirstConnection, dev_LastConnection, dev_SyncHubNodeName, dev_GUID,
{newDevColumns})
SELECT cur_MAC,
CASE WHEN LENGTH(TRIM(cur_Name)) > 0 THEN cur_Name
ELSE '(unknown)' END,
cur_Vendor, cur_IP, ?, ?, cur_SyncHubNodeName, {sql_generateGuid},
{newDevDefaults}
sqlQuery = f"""INSERT OR IGNORE INTO Devices
(
dev_MAC,
dev_name,
dev_Vendor,
dev_LastIP,
dev_FirstConnection,
dev_LastConnection,
dev_SyncHubNodeName,
dev_GUID,
dev_Network_Node_MAC_ADDR,
dev_Network_Node_port,
dev_NetworkSite,
dev_SSID,
dev_DeviceType,
{newDevColumns}
)
SELECT
cur_MAC,
CASE WHEN LENGTH(TRIM(cur_Name)) > 0 THEN cur_Name ELSE '(unknown)' END,
cur_Vendor,
cur_IP,
?,
?,
cur_SyncHubNodeName,
{sql_generateGuid},
CASE WHEN LENGTH(TRIM(cur_NetworkNodeMAC)) > 0 THEN cur_NetworkNodeMAC ELSE '{get_setting_value('NEWDEV_dev_Network_Node_MAC_ADDR')}' END,
cur_PORT,
cur_NetworkSite,
cur_SSID,
CASE WHEN LENGTH(TRIM(cur_Type)) > 0 THEN cur_Type ELSE '{get_setting_value('NEWDEV_dev_DeviceType')}' END,
{newDevDefaults}
FROM CurrentScan
WHERE 1=1
{list_to_where('OR', 'cur_MAC', 'NOT LIKE', get_setting_value('NEWDEV_ignored_MACs'))}
{list_to_where('OR', 'cur_IP', 'NOT LIKE', get_setting_value('NEWDEV_ignored_IPs'))}
"""
mylog('debug',f'[New Devices] Create devices SQL: {sqlQuery}')
sql.execute (sqlQuery, (startTime, startTime) )
mylog('debug','[New Devices] New Devices end')
db.commitDB()
@@ -249,7 +267,7 @@ def update_devices_data_from_scan (db):
WHERE dev_MAC = cur_MAC) """)
# Update only devices with empty or NULL vendors
mylog('debug', '[Update Devices] - 3 Vendor')
mylog('debug', '[Update Devices] - 3 cur_Vendor -> dev_Vendor')
sql.execute("""UPDATE Devices
SET dev_Vendor = (
SELECT cur_Vendor
@@ -257,7 +275,87 @@ def update_devices_data_from_scan (db):
WHERE dev_MAC = cur_MAC
)
WHERE
(dev_Vendor = "" OR dev_Vendor IS NULL)
(dev_Vendor IS NULL OR dev_Vendor IN ("", "null"))
AND EXISTS (
SELECT 1
FROM CurrentScan
WHERE dev_MAC = cur_MAC
)""")
# Update only devices with empty or NULL dev_Network_Node_port
mylog('debug', '[Update Devices] - 3 cur_Port -> dev_Network_Node_port')
sql.execute("""UPDATE Devices
SET dev_Network_Node_port = (
SELECT cur_Port
FROM CurrentScan
WHERE dev_MAC = cur_MAC
)
WHERE
(dev_Network_Node_port IS NULL OR dev_Network_Node_port IN ("", "null"))
AND EXISTS (
SELECT 1
FROM CurrentScan
WHERE dev_MAC = cur_MAC
)""")
# Update only devices with empty or NULL dev_Network_Node_MAC_ADDR
mylog('debug', '[Update Devices] - 3 cur_NetworkNodeMAC -> dev_Network_Node_MAC_ADDR')
sql.execute("""UPDATE Devices
SET dev_Network_Node_MAC_ADDR = (
SELECT cur_NetworkNodeMAC
FROM CurrentScan
WHERE dev_MAC = cur_MAC
)
WHERE
(dev_Network_Node_MAC_ADDR IS NULL OR dev_Network_Node_MAC_ADDR IN ("", "null"))
AND EXISTS (
SELECT 1
FROM CurrentScan
WHERE dev_MAC = cur_MAC
)""")
# Update only devices with empty or NULL dev_NetworkSite
mylog('debug', '[Update Devices] - 3 cur_NetworkSite -> dev_NetworkSite')
sql.execute("""UPDATE Devices
SET dev_NetworkSite = (
SELECT cur_NetworkSite
FROM CurrentScan
WHERE dev_MAC = cur_MAC
)
WHERE
(dev_NetworkSite IS NULL OR dev_NetworkSite IN ("", "null"))
AND EXISTS (
SELECT 1
FROM CurrentScan
WHERE dev_MAC = cur_MAC
)""")
# Update only devices with empty or NULL dev_SSID
mylog('debug', '[Update Devices] - 3 cur_SSID -> dev_SSID')
sql.execute("""UPDATE Devices
SET dev_SSID = (
SELECT cur_SSID
FROM CurrentScan
WHERE dev_MAC = cur_MAC
)
WHERE
(dev_SSID IS NULL OR dev_SSID IN ("", "null"))
AND EXISTS (
SELECT 1
FROM CurrentScan
WHERE dev_MAC = cur_MAC
)""")
# Update only devices with empty or NULL dev_DeviceType
mylog('debug', '[Update Devices] - 3 cur_Type -> dev_DeviceType')
sql.execute("""UPDATE Devices
SET dev_DeviceType = (
SELECT cur_Type
FROM CurrentScan
WHERE dev_MAC = cur_MAC
)
WHERE
(dev_DeviceType IS NULL OR dev_DeviceType IN ("", "null"))
AND EXISTS (
SELECT 1
FROM CurrentScan

View File

@@ -391,7 +391,7 @@ def list_to_where(logical_operator, column_name, condition_operator, values_list
def checkIPV4(ip):
""" Define a function to validate an Ip address
"""
ipRegex = "^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$"
ipRegex = r"^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$"
if(re.search(ipRegex, ip)):
return True
@@ -667,7 +667,7 @@ def bytes_to_string(value):
def if_byte_then_to_str(input):
if isinstance(input, bytes):
input = input.decode('utf-8')
input = bytes_to_string(re.sub('[^a-zA-Z0-9-_\s]', '', str(input)))
input = bytes_to_string(re.sub(r'[^a-zA-Z0-9-_\s]', '', str(input)))
return input
#-------------------------------------------------------------------------------
@@ -699,8 +699,8 @@ def removeDuplicateNewLines(text):
def sanitize_string(input):
if isinstance(input, bytes):
input = input.decode('utf-8')
value = bytes_to_string(re.sub('[^a-zA-Z0-9-_\s]', '', str(input)))
return value
input = bytes_to_string(re.sub(r'[^a-zA-Z0-9-_\s]', '', str(input)))
return input
#-------------------------------------------------------------------------------

View File

@@ -137,18 +137,19 @@ def importConfigs (db, all_plugins):
conf.TIMEZONE = ccd('TIMEZONE', 'Europe/Berlin' , c_d, 'Time zone', 'text', '', 'General')
conf.PLUGINS_KEEP_HIST = ccd('PLUGINS_KEEP_HIST', 250 , c_d, 'Keep history entries', 'integer', '', 'General')
conf.REPORT_DASHBOARD_URL = ccd('REPORT_DASHBOARD_URL', 'http://netalertx/' , c_d, 'NetAlertX URL', 'text', '', 'General')
conf.UI_LANG = ccd('UI_LANG', 'English' , c_d, 'Language Interface', 'text.select', "['English', 'French', 'German', 'Norwegian', 'Russian', 'Spanish', 'Italian (it_it)', 'Portuguese (pt_br)', 'Polish (pl_pl)', 'Turkish (tr_tr)', 'Chinese (zh_cn)' ]", 'General')
conf.UI_PRESENCE = ccd('UI_PRESENCE', ['online', 'offline', 'archived'] , c_d, 'Include in presence', 'text.multiselect', "['online', 'offline', 'archived']", 'General')
conf.UI_DEV_SECTIONS = ccd('UI_DEV_SECTIONS', [] , c_d, 'Show sections', 'text.multiselect', "['Tile Cards', 'Device Presence']", 'General')
conf.UI_MY_DEVICES = ccd('UI_MY_DEVICES', ['online', 'offline', 'archived', 'new', 'down'] , c_d, 'Include in My Devices', 'text.multiselect', "['online', 'offline', 'archived', 'new', 'down']", 'General')
conf.UI_NOT_RANDOM_MAC = ccd('UI_NOT_RANDOM_MAC', [] , c_d, 'Exlude from Random Prefix', 'list', "", 'General')
conf.UI_ICONS = ccd('UI_ICONS', ['PGkgY2xhc3M9ImZhIGZhLWNvbXB1dGVyIj48L2k+', 'PGkgY2xhc3M9ImZhIGZhLWV0aGVybmV0Ij48L2k+', 'PGkgY2xhc3M9ImZhIGZhLWdhbWVwYWQiPjwvaT4', 'PGkgY2xhc3M9ImZhIGZhLWdsb2JlIj48L2k+', 'PGkgY2xhc3M9ImZhIGZhLWxhcHRvcCI+PC9pPg==', 'PGkgY2xhc3M9ImZhIGZhLWxpZ2h0YnVsYiI+PC9pPg==', 'PGkgY2xhc3M9ImZhIGZhLXNoaWVsZCI+PC9pPg==', 'PGkgY2xhc3M9ImZhIGZhLXdpZmkiPjwvaT4'] , c_d, 'Icons', 'list', "", 'General')
conf.UI_REFRESH = ccd('UI_REFRESH', 0 , c_d, 'Refresh interval', 'integer', "", 'General')
conf.DAYS_TO_KEEP_EVENTS = ccd('DAYS_TO_KEEP_EVENTS', 90 , c_d, 'Delete events days', 'integer', '', 'General')
conf.HRS_TO_KEEP_NEWDEV = ccd('HRS_TO_KEEP_NEWDEV', 0 , c_d, 'Keep new devices for', 'integer', "0", 'General')
conf.API_CUSTOM_SQL = ccd('API_CUSTOM_SQL', 'SELECT * FROM Devices WHERE dev_PresentLastScan = 0' , c_d, 'Custom endpoint', 'text', '', 'General')
conf.NETWORK_DEVICE_TYPES = ccd('NETWORK_DEVICE_TYPES', ['AP', 'Gateway', 'Firewall', 'Hypervisor', 'Powerline', 'Switch', 'WLAN', 'PLC', 'Router','USB LAN Adapter', 'USB WIFI Adapter', 'Internet'] , c_d, 'Network device types', 'list', '', 'General')
# UI
conf.UI_LANG = ccd('UI_LANG', 'English' , c_d, 'Language Interface', 'text.select', "['English', 'French', 'German', 'Norwegian', 'Russian', 'Spanish', 'Italian (it_it)', 'Portuguese (pt_br)', 'Polish (pl_pl)', 'Turkish (tr_tr)', 'Chinese (zh_cn)' ]", 'UI')
conf.UI_NOT_RANDOM_MAC = ccd('UI_NOT_RANDOM_MAC', [] , c_d, 'Exlude from Random Prefix', 'list', "", 'UI')
conf.UI_ICONS = ccd('UI_ICONS', ['PGkgY2xhc3M9ImZhIGZhLWNvbXB1dGVyIj48L2k+', 'PGkgY2xhc3M9ImZhIGZhLWV0aGVybmV0Ij48L2k+', 'PGkgY2xhc3M9ImZhIGZhLWdhbWVwYWQiPjwvaT4', 'PGkgY2xhc3M9ImZhIGZhLWdsb2JlIj48L2k+', 'PGkgY2xhc3M9ImZhIGZhLWxhcHRvcCI+PC9pPg==', 'PGkgY2xhc3M9ImZhIGZhLWxpZ2h0YnVsYiI+PC9pPg==', 'PGkgY2xhc3M9ImZhIGZhLXNoaWVsZCI+PC9pPg==', 'PGkgY2xhc3M9ImZhIGZhLXdpZmkiPjwvaT4'] , c_d, 'Icons', 'list', "", 'UI')
conf.UI_REFRESH = ccd('UI_REFRESH', 0 , c_d, 'Refresh interval', 'integer', "", 'UI')
conf.UI_DEV_SECTIONS = ccd('UI_DEV_SECTIONS', [] , c_d, 'Show sections', 'text.multiselect', "['Tile Cards', 'Device Presence']", 'UI')
conf.UI_PRESENCE = ccd('UI_PRESENCE', ['online', 'offline', 'archived'] , c_d, 'Include in presence', 'text.multiselect', "['online', 'offline', 'archived']", 'UI')
conf.UI_MY_DEVICES = ccd('UI_MY_DEVICES', ['online', 'offline', 'archived', 'new', 'down'] , c_d, 'Include in My Devices', 'text.multiselect', "['online', 'offline', 'archived', 'new', 'down']", 'UI')
# Init timezone in case it changed
conf.tz = timezone(conf.TIMEZONE)

View File

@@ -61,6 +61,7 @@ def process_scan (db):
skip_repeated_notifications (db)
# Clear current scan as processed
# TODO comment below for CurrentScan debugging
db.sql.execute ("DELETE FROM CurrentScan")
# Commit changes

View File

@@ -14,7 +14,8 @@ from logger import mylog
from helper import timeNowTZ, updateState, get_file_content, write_file, get_setting, get_setting_value
from api import update_api
from plugin_utils import logEventStatusCounts, get_plugin_string, get_plugin_setting_obj, print_plugin_info, list_to_csv, combine_plugin_objects, resolve_wildcards_arr, handle_empty, custom_plugin_decoder, decode_and_rename_files
from notification import Notification_obj
from notification import Notification_obj, write_notification
#-------------------------------------------------------------------------------
class plugin_param:
@@ -750,6 +751,9 @@ class plugin_object_class:
def check_and_run_user_event(db, all_plugins, pluginsState):
# Check if the log file exists
logFile = os.path.join(logPath, "execution_queue.log")
# track if not an API event
show_events_completed = False
if not os.path.exists(logFile):
return pluginsState
@@ -767,8 +771,10 @@ def check_and_run_user_event(db, all_plugins, pluginsState):
event, param = columns
if event == 'test':
show_events_completed = True
pluginsState = handle_test(param, db, all_plugins, pluginsState)
if event == 'run':
show_events_completed = True
pluginsState = handle_run(param, db, all_plugins, pluginsState)
if event == 'update_api':
# update API endpoints
@@ -777,6 +783,10 @@ def check_and_run_user_event(db, all_plugins, pluginsState):
# Clear the log file
open(logFile, "w").close()
# only show pop up if not an API event
if show_events_completed:
write_notification('[Ad-hoc events] All Events executed', 'interrupt', timeNowTZ())
return pluginsState