Compare commits

..
630 Commits
Author SHA1 Message Date
shamoon 3e01fc12e4 Merge pull request #1602 from benphelps/fix/issue-1599
Fix: Retrieve ping url from config rather than as query parameter
2023-06-11 10:04:34 -07:00
shamoon 1fb7be7457 Retrieve ping url from config rather than as query parameter 2023-06-11 09:50:41 -07:00
Dan 0d6ccb036e Translated using Weblate (Ukrainian)
Currently translated at 100.0% (465 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-06-11 16:47:46 +02:00
Nonoss117 7af36eb106 Translated using Weblate (French)
Currently translated at 100.0% (465 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-06-11 16:47:45 +02:00
gallegonovato 1d80955649 Translated using Weblate (Spanish)
Currently translated at 100.0% (465 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-06-11 16:47:45 +02:00
shamoon a50e939123 Merge pull request #1596 from benphelps/revert-1574-widget-boxed
Revert "Added optional boxed styling for information widgets and refactored information widgets"
2023-06-10 23:30:55 -07:00
shamoon 6b2930ab8d Revert "Added optional boxed styling for information widgets and refactored information widgets" 2023-06-10 23:30:44 -07:00
Ben Phelps 347761fcad Merge pull request #1574 from denispapec/widget-boxed
Added optional boxed styling for information widgets and refactored information widgets
2023-06-11 08:02:20 +03:00
shamoon 2fabaa700b Merge pull request #1579 from denispapec/portainer-fix
Fixes for portainer and kubernetes and error component
2023-06-10 19:38:04 -07:00
shamoon 68b6192d8c Fix full height layout on tall screens 2023-06-09 09:01:19 -07:00
shamoon 0101e8ccb9 make portainer error detection more specific 2023-06-08 09:42:35 -07:00
shamoon 2da66b504b lint lidarr widget.js 2023-06-08 07:17:58 -07:00
Anonymous b882065d5e Translated using Weblate (Indonesian)
Currently translated at 3.2% (15 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/id/
2023-06-08 16:17:16 +02:00
Anonymous 0be0fa71d3 Translated using Weblate (Slovenian)
Currently translated at 96.5% (449 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-06-08 16:17:16 +02:00
Anonymous fe647fe67a Translated using Weblate (Greek)
Currently translated at 30.7% (143 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-06-08 16:17:16 +02:00
Anonymous ee5fa003ee Translated using Weblate (Korean)
Currently translated at 37.2% (173 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-06-08 16:17:15 +02:00
Anonymous 19bcf40d31 Translated using Weblate (Slovak)
Currently translated at 1.9% (9 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-06-08 16:17:15 +02:00
Anonymous d06d6f7e44 Translated using Weblate (Thai)
Currently translated at 10.1% (47 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-06-08 16:17:15 +02:00
Anonymous b5c4e36a53 Translated using Weblate (Latvian)
Currently translated at 25.3% (118 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-06-08 16:17:14 +02:00
Anonymous 4382bab64b Translated using Weblate (Japanese)
Currently translated at 80.2% (373 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-06-08 16:17:14 +02:00
Anonymous 678819d065 Translated using Weblate (Ukrainian)
Currently translated at 99.7% (464 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-06-08 16:17:14 +02:00
Anonymous 1dea651d8b Translated using Weblate (Esperanto)
Currently translated at 31.1% (145 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-06-08 16:17:13 +02:00
Anonymous c29e351afc Translated using Weblate (Hindi)
Currently translated at 1.9% (9 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-06-08 16:17:13 +02:00
Anonymous 2493e608e8 Translated using Weblate (Malay)
Currently translated at 53.9% (251 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-06-08 16:17:13 +02:00
Anonymous bfb326bd73 Translated using Weblate (Danish)
Currently translated at 42.3% (197 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-06-08 16:17:12 +02:00
Anonymous fabb65995c Translated using Weblate (Czech)
Currently translated at 95.4% (444 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-06-08 16:17:12 +02:00
Anonymous 1ca12714e0 Translated using Weblate (Arabic)
Currently translated at 55.9% (260 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-06-08 16:17:12 +02:00
Anonymous 36717ede61 Translated using Weblate (Serbian)
Currently translated at 1.9% (9 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-06-08 16:17:11 +02:00
Anonymous 7fc313cc73 Translated using Weblate (Turkish)
Currently translated at 84.5% (393 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-06-08 16:17:11 +02:00
Anonymous 6794fa1429 Translated using Weblate (Bulgarian)
Currently translated at 9.8% (46 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-06-08 16:17:11 +02:00
Anonymous 1097a46669 Translated using Weblate (Telugu)
Currently translated at 46.2% (215 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-06-08 16:17:10 +02:00
Anonymous 193582c8ae Translated using Weblate (Finnish)
Currently translated at 38.0% (177 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-06-08 16:17:10 +02:00
Anonymous aacc2fae9d Translated using Weblate (Yue (Traditional))
Currently translated at 25.1% (117 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-06-08 16:17:10 +02:00
Anonymous ac99f65188 Translated using Weblate (Portuguese (Brazil))
Currently translated at 86.8% (404 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-06-08 16:17:09 +02:00
Anonymous 1f9ee368c6 Translated using Weblate (Romanian)
Currently translated at 32.2% (150 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-06-08 16:17:09 +02:00
Anonymous 4c4da54d99 Translated using Weblate (Hebrew)
Currently translated at 21.5% (100 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-06-08 16:17:09 +02:00
Anonymous 7d51a9b10c Translated using Weblate (Hungarian)
Currently translated at 23.0% (107 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-06-08 16:17:08 +02:00
Anonymous e9722e8946 Translated using Weblate (Croatian)
Currently translated at 98.4% (458 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-06-08 16:17:08 +02:00
Anonymous e03c891703 Translated using Weblate (Swedish)
Currently translated at 27.9% (130 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-06-08 16:17:08 +02:00
Anonymous 10cfe20e8a Translated using Weblate (Polish)
Currently translated at 80.4% (374 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-06-08 16:17:07 +02:00
Anonymous fd74618b8f Translated using Weblate (Catalan)
Currently translated at 55.9% (260 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-06-08 16:17:07 +02:00
Anonymous b72d894a30 Translated using Weblate (Chinese (Traditional))
Currently translated at 98.9% (460 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-06-08 16:17:07 +02:00
Anonymous 7ca6f36125 Translated using Weblate (Dutch)
Currently translated at 51.8% (241 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-06-08 16:17:06 +02:00
Anonymous 877a091fc0 Translated using Weblate (Vietnamese)
Currently translated at 9.4% (44 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-06-08 16:17:06 +02:00
Anonymous 6584a3194f Translated using Weblate (Norwegian Bokmål)
Currently translated at 16.9% (79 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-06-08 16:17:06 +02:00
Anonymous 8fa1831b31 Translated using Weblate (Italian)
Currently translated at 61.5% (286 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-06-08 16:17:05 +02:00
Anonymous a01713c6e6 Translated using Weblate (Chinese (Simplified))
Currently translated at 95.2% (443 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-06-08 16:17:05 +02:00
Anonymous 637f745ee7 Translated using Weblate (Russian)
Currently translated at 88.8% (413 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-06-08 16:17:05 +02:00
Anonymous 8e89f39979 Translated using Weblate (Portuguese)
Currently translated at 86.8% (404 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-06-08 16:17:05 +02:00
Anonymous 2b0cddb05f Translated using Weblate (French)
Currently translated at 99.7% (464 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-06-08 16:17:04 +02:00
Anonymous f780deca62 Translated using Weblate (Spanish)
Currently translated at 99.7% (464 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-06-08 16:17:04 +02:00
Anonymous a19304e7e7 Translated using Weblate (German)
Currently translated at 98.2% (457 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-06-08 16:17:04 +02:00
Hosted Weblate 3d0cc6aeeb Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/
2023-06-08 16:16:16 +02:00
Dan 7588dd03db Translated using Weblate (Ukrainian)
Currently translated at 100.0% (465 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-06-08 16:16:12 +02:00
Nonoss117 b934fc429d Translated using Weblate (French)
Currently translated at 100.0% (465 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-06-08 16:16:12 +02:00
gallegonovato 07c0c0faf4 Translated using Weblate (Spanish)
Currently translated at 100.0% (465 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-06-08 16:16:12 +02:00
shamoon 350e27c32b Merge pull request #1587 from benphelps/fix/remove-lidarr-album
Change: lidarr use artist instead of album
2023-06-08 07:16:05 -07:00
shamoon ea50a851f3 Change lidarr to artist instead of album 2023-06-08 07:15:35 -07:00
shamoon 27958c9f69 Merge pull request #1571 from rkokkelk/issue/1496
Fix: use service labels instead of container for service discovery with Docker Swarm
2023-06-08 00:35:22 -07:00
shamoon 3383b553d5 Merge pull request #1583 from benphelps/fix/issue-1577
Fix: potentially avoid `album` api call in lidarr widget, allow useWidgetAPI to not actually send a request
2023-06-07 14:23:49 -07:00
shamoon 4245f1070a fix docker service discovery, code styling 2023-06-07 14:06:23 -07:00
shamoon c92d1caf80 Allow useWidgetAPI to not actually send a request 2023-06-07 13:43:53 -07:00
Denis Papec 91e0ec2f83 Fixes for portainer and kubernetes widget error messages, and error messages for services behind the reverse proxy
Signed-off-by: Denis Papec <denis.papec@gmail.com>
2023-06-07 00:54:51 +01:00
shamoon 774ca4b3b2 Merge pull request #1575 from nathan-sankbeil/feat/gzip
Support proxying compressed responses
2023-06-06 14:11:23 -07:00
Anonymous bcd9289849 Translated using Weblate (Indonesian)
Currently translated at 3.2% (15 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/id/
2023-06-06 22:33:35 +02:00
Anonymous 0e9ca01c18 Translated using Weblate (Slovenian)
Currently translated at 96.7% (450 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-06-06 22:33:35 +02:00
Anonymous 614ce65871 Translated using Weblate (Greek)
Currently translated at 30.9% (144 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-06-06 22:33:34 +02:00
Anonymous b085a1a2d1 Translated using Weblate (Korean)
Currently translated at 37.4% (174 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-06-06 22:33:34 +02:00
Anonymous 715f3d9d27 Translated using Weblate (Slovak)
Currently translated at 1.9% (9 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-06-06 22:33:34 +02:00
Anonymous a1fedf98e5 Translated using Weblate (Thai)
Currently translated at 10.1% (47 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-06-06 22:33:33 +02:00
Anonymous 249dfa7a92 Translated using Weblate (Latvian)
Currently translated at 25.5% (119 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-06-06 22:33:33 +02:00
Anonymous bb09d85d80 Translated using Weblate (Japanese)
Currently translated at 80.4% (374 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-06-06 22:33:32 +02:00
Anonymous 4f386bb2af Translated using Weblate (Ukrainian)
Currently translated at 99.1% (461 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-06-06 22:33:32 +02:00
Anonymous d98607072c Translated using Weblate (Esperanto)
Currently translated at 31.3% (146 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-06-06 22:33:31 +02:00
Anonymous 93440ae8d1 Translated using Weblate (Hindi)
Currently translated at 1.9% (9 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-06-06 22:33:31 +02:00
Anonymous 0f5deba5e3 Translated using Weblate (Malay)
Currently translated at 54.1% (252 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-06-06 22:33:31 +02:00
Anonymous e398e4acc5 Translated using Weblate (Danish)
Currently translated at 42.3% (197 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-06-06 22:33:30 +02:00
Anonymous 0447bb0413 Translated using Weblate (Czech)
Currently translated at 95.6% (445 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-06-06 22:33:30 +02:00
Anonymous 577f8fecfd Translated using Weblate (Arabic)
Currently translated at 56.1% (261 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-06-06 22:33:29 +02:00
Anonymous 9523f72c97 Translated using Weblate (Serbian)
Currently translated at 1.9% (9 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-06-06 22:33:29 +02:00
Anonymous 7bcd405f77 Translated using Weblate (Turkish)
Currently translated at 84.7% (394 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-06-06 22:33:29 +02:00
Anonymous 3ab5862bf1 Translated using Weblate (Bulgarian)
Currently translated at 9.8% (46 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-06-06 22:33:28 +02:00
Anonymous a00ef03ce5 Translated using Weblate (Telugu)
Currently translated at 46.4% (216 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-06-06 22:33:28 +02:00
Anonymous 95ecc55467 Translated using Weblate (Finnish)
Currently translated at 38.2% (178 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-06-06 22:33:27 +02:00
Anonymous db7fdd2a4f Translated using Weblate (Yue (Traditional))
Currently translated at 25.3% (118 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-06-06 22:33:27 +02:00
Anonymous a2a6cd150f Translated using Weblate (Portuguese (Brazil))
Currently translated at 87.0% (405 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-06-06 22:33:26 +02:00
Anonymous 26d17e9a3a Translated using Weblate (Romanian)
Currently translated at 32.4% (151 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-06-06 22:33:26 +02:00
Anonymous 46b988eeea Translated using Weblate (Hebrew)
Currently translated at 21.7% (101 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-06-06 22:33:26 +02:00
Anonymous 4682b5a9a2 Translated using Weblate (Hungarian)
Currently translated at 23.2% (108 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-06-06 22:33:25 +02:00
Anonymous e2c8b2000f Translated using Weblate (Croatian)
Currently translated at 98.7% (459 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-06-06 22:33:25 +02:00
Anonymous ff7ee31497 Translated using Weblate (Swedish)
Currently translated at 28.1% (131 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-06-06 22:33:24 +02:00
Anonymous f66dc86e24 Translated using Weblate (Polish)
Currently translated at 80.6% (375 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-06-06 22:33:24 +02:00
Anonymous a2204a3de9 Translated using Weblate (Catalan)
Currently translated at 56.1% (261 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-06-06 22:33:23 +02:00
Anonymous 4cf8302d4f Translated using Weblate (Chinese (Traditional))
Currently translated at 99.1% (461 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-06-06 22:33:23 +02:00
Anonymous 63247f3a9f Translated using Weblate (Dutch)
Currently translated at 52.0% (242 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-06-06 22:33:23 +02:00
Anonymous 51a1562ea9 Translated using Weblate (Vietnamese)
Currently translated at 9.4% (44 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-06-06 22:33:22 +02:00
Anonymous ece83fd531 Translated using Weblate (Norwegian Bokmål)
Currently translated at 16.9% (79 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-06-06 22:33:22 +02:00
Anonymous 86cb124894 Translated using Weblate (Italian)
Currently translated at 61.7% (287 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-06-06 22:33:22 +02:00
Anonymous 4c55eee55b Translated using Weblate (Chinese (Simplified))
Currently translated at 95.4% (444 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-06-06 22:33:21 +02:00
Anonymous 3061654eeb Translated using Weblate (Russian)
Currently translated at 89.0% (414 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-06-06 22:33:21 +02:00
Anonymous bcdbcb2cb7 Translated using Weblate (Portuguese)
Currently translated at 87.0% (405 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-06-06 22:33:21 +02:00
Anonymous 7367bd4a1f Translated using Weblate (French)
Currently translated at 99.1% (461 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-06-06 22:33:20 +02:00
Anonymous fd0d644474 Translated using Weblate (Spanish)
Currently translated at 99.1% (461 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-06-06 22:33:20 +02:00
Anonymous a054747285 Translated using Weblate (German)
Currently translated at 98.4% (458 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-06-06 22:33:19 +02:00
shamoon 2c62f180a9 Merge pull request #1560 from Schoggi0815/feature/sonarr-radarr-queue-list
Feature/sonarr radarr queue list
2023-06-06 13:31:13 -07:00
shamoon dd4ee44302 Simplify sonarr / radarr queues, better handle some errors 2023-06-05 22:23:21 -07:00
nsankbeil 3a29262256 feat: support compressed responses 2023-06-05 21:44:58 -04:00
Matteo Bossi 5b3d1cc6e0 Make styling more consistent and add toggle to opt-in instead of opting out 2023-06-06 01:14:10 +02:00
Denis Papec a55fe939cb Further improvements to simplify information widgets
Signed-off-by: Denis Papec <denis.papec@gmail.com>
2023-06-05 23:18:18 +01:00
shamoon c1a68a79ee Merge pull request #1572 from Cyb3rzombie/paperlessngx_token
Enhancement: add support for auth token in paperless-ngx widget
2023-06-05 11:06:14 -07:00
Cyb3rzombie 8f0cd7e088 Add support for auth token 2023-06-05 18:26:11 +02:00
RoyK f656c2b46d fix(service-helper): service detection with Docker Swarm
The current implementation of service detection focusses on containers.
However when using Docker Swarm this limits automatic service detection
to the containers running on the same node as homepage (or
docker-proxy). Detecting other services in the docker swarm is with the
current implementation not possible.

This commit fixes this by getting the appropriate labels from services
when Docker swarm is configured in the config file. This ensures that
the appropriate labels are gathered from the service definition instead
of the container definiation, thus allowing for automatic service
detection for the entire Docker swarm. Please note that in order for
this to function the homepage (or dockerproxy) should be running on a
manager node. Only the manager node is able to gather all the relevant
service labels.

Fixes: #752, #970, #955, #1255, #1045, #1496
2023-06-05 16:06:14 +02:00
Milo Ivir f05ac3247d Translated using Weblate (Croatian)
Currently translated at 99.5% (459 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-06-04 17:50:52 +02:00
Nonoss117 7e54b80d73 Translated using Weblate (French)
Currently translated at 100.0% (461 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-06-04 17:50:51 +02:00
Denis Papec d4fd923be5 Refactored information widgets, improve widget-boxed style
Signed-off-by: Denis Papec <denis.papec@gmail.com>
2023-06-03 03:01:21 +01:00
Denis Papec c79d45f91e Add optional boxed styling and error component to information widgets
Signed-off-by: Denis Papec <denis.papec@gmail.com>
2023-06-03 02:14:38 +01:00
Matteo Bossi 0eab4e7943 Fix Mobile view 2023-06-02 15:46:43 +02:00
Matteo Bossi 28e39e46ae Add queue list 2023-06-02 14:57:27 +02:00
Yıldırım Manisalı caa1b94fd6 Translated using Weblate (Turkish)
Currently translated at 85.4% (394 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-06-01 13:50:54 +02:00
KaiYi Chang 967fd6817a Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (461 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-05-31 05:50:39 +02:00
liimee f3b5d73533 Translated using Weblate (Indonesian)
Currently translated at 3.2% (15 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/id/
2023-05-29 08:51:30 +02:00
shamoon 18cf4e7d5d Merge pull request #1554 from mscreations/dynamic_env_vars
Enhancement: substitute environment vars in container labels
2023-05-28 23:20:16 -07:00
shamoon 56644ac487 Support env substitution for k8s 2023-05-28 23:03:04 -07:00
Jon e6d95e29ee Translate environment vars in labels 2023-05-29 01:14:03 -04:00
shamoon 8673548c88 Merge pull request #1552 from benphelps/fix/issue-1415
Fix: Handle k8s widget metrics call fails
2023-05-28 19:57:53 -07:00
shamoon bd5c10e907 Handle k8s widget metrics call fails 2023-05-28 19:57:39 -07:00
shamoon 2bbe5b04c7 Update bug_report.yml 2023-05-28 19:49:02 -07:00
shamoon 498089a8fa Merge pull request #1551 from benphelps/fix/issue-1547
Fix: Properly encode qbittorrent credentials
2023-05-28 19:47:24 -07:00
shamoon 0a5eb1ae75 Properly encode qbittorrent credentials 2023-05-28 19:46:28 -07:00
shamoon 6dfddf739e Merge pull request #1548 from benphelps/fix/issue-1546
Enhancement: support settings layout as a list
2023-05-28 10:04:57 -07:00
shamoon febb4cc6d5 Support settings layout as a list 2023-05-28 09:51:44 -07:00
Anonymous 7dfa7412ef Translated using Weblate (Indonesian)
Currently translated at 100.0% (0 of 0 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/id/
2023-05-28 08:26:01 +02:00
liimee 665ff66217 Added translation using Weblate (Indonesian) 2023-05-28 08:24:37 +02:00
gallegonovato 37d36750de Translated using Weblate (Spanish)
Currently translated at 100.0% (461 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-05-27 11:50:10 +02:00
shamoonandDavid Moor 5850a48ec9 Include right margin on greeting widget
Closes #224

Co-Authored-By: David Moor <dave@ducks-n-tworms.co.uk>
2023-05-26 08:21:02 -07:00
shamoon 1f85da934f Merge pull request #1545 from benphelps/fix/hass-custom-label-support
Fix: support using docker labels for HASS widget custom
2023-05-25 23:20:59 -07:00
shamoon 4948485c50 Support using docker labels for HASS widget custom 2023-05-25 23:15:45 -07:00
Julian Ortlieb fc668aa9d0 Translated using Weblate (German)
Currently translated at 99.3% (458 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-05-25 11:51:47 +02:00
shamoon f28284fa77 Merge pull request #1542 from theshaun/support_older_qnap
Correctly use sys_tempc instead of cpu_tempc in QNAP widget
2023-05-24 07:14:51 -07:00
theshaun cd14dbde58 Correctly use sys_tempc instead of cpu_tempc 2023-05-24 20:59:34 +10:00
Dan 5ee9f46a5a Translated using Weblate (Ukrainian)
Currently translated at 100.0% (461 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-05-24 06:52:52 +02:00
libook 73db271c87 Translated using Weblate (Chinese (Simplified))
Currently translated at 96.3% (444 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-05-24 06:52:52 +02:00
Nonoss117 864470b53c Translated using Weblate (French)
Currently translated at 100.0% (461 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-24 06:52:51 +02:00
shamoon 1b984abd91 Fix error port display, again 2023-05-23 03:37:56 -07:00
Anonymous b960813ed9 Translated using Weblate (Slovenian)
Currently translated at 97.6% (450 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-05-22 19:52:52 +02:00
Anonymous d6363d4636 Translated using Weblate (Greek)
Currently translated at 31.2% (144 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-05-22 19:52:52 +02:00
Anonymous 42681d8884 Translated using Weblate (Korean)
Currently translated at 37.7% (174 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-05-22 19:52:51 +02:00
Anonymous 7da1fd3a41 Translated using Weblate (Slovak)
Currently translated at 1.9% (9 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-05-22 19:52:51 +02:00
Anonymous 1de449f925 Translated using Weblate (Thai)
Currently translated at 10.1% (47 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-05-22 19:52:51 +02:00
Anonymous e4a3570a77 Translated using Weblate (Latvian)
Currently translated at 25.8% (119 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-05-22 19:52:50 +02:00
Anonymous 0e83953ac7 Translated using Weblate (Japanese)
Currently translated at 81.1% (374 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-05-22 19:52:50 +02:00
Anonymous 8e548fb249 Translated using Weblate (Ukrainian)
Currently translated at 97.6% (450 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-05-22 19:52:50 +02:00
Anonymous c3168df04b Translated using Weblate (Esperanto)
Currently translated at 31.6% (146 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-05-22 19:52:49 +02:00
Anonymous 4b915467f2 Translated using Weblate (Hindi)
Currently translated at 1.9% (9 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-05-22 19:52:49 +02:00
Anonymous 4f53c1e4e4 Translated using Weblate (Malay)
Currently translated at 54.6% (252 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-05-22 19:52:49 +02:00
Anonymous f3f946a649 Translated using Weblate (Danish)
Currently translated at 42.7% (197 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-05-22 19:52:48 +02:00
Anonymous d633f70c45 Translated using Weblate (Czech)
Currently translated at 96.5% (445 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-05-22 19:52:48 +02:00
Anonymous c893a6e829 Translated using Weblate (Arabic)
Currently translated at 56.6% (261 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-05-22 19:52:48 +02:00
Anonymous ae55441f44 Translated using Weblate (Serbian)
Currently translated at 1.9% (9 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-05-22 19:52:47 +02:00
Anonymous d59dce8a36 Translated using Weblate (Turkish)
Currently translated at 68.5% (316 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-05-22 19:52:47 +02:00
Anonymous fa3a438d30 Translated using Weblate (Bulgarian)
Currently translated at 9.9% (46 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-05-22 19:52:47 +02:00
Anonymous c9a69c0c77 Translated using Weblate (Telugu)
Currently translated at 46.8% (216 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-05-22 19:52:46 +02:00
Anonymous 07cb004ecb Translated using Weblate (Finnish)
Currently translated at 38.6% (178 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-05-22 19:52:46 +02:00
Anonymous 678ddf9c11 Translated using Weblate (Yue (Traditional))
Currently translated at 25.5% (118 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-05-22 19:52:46 +02:00
Anonymous 618b006350 Translated using Weblate (Portuguese (Brazil))
Currently translated at 87.8% (405 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-05-22 19:52:45 +02:00
Anonymous 60c423f7cf Translated using Weblate (Romanian)
Currently translated at 32.7% (151 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-05-22 19:52:45 +02:00
Anonymous bccef494d7 Translated using Weblate (Hebrew)
Currently translated at 21.9% (101 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-05-22 19:52:45 +02:00
Anonymous 4539ef7bb0 Translated using Weblate (Hungarian)
Currently translated at 23.4% (108 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-05-22 19:52:44 +02:00
Anonymous abb9a6f66f Translated using Weblate (Croatian)
Currently translated at 93.9% (433 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-05-22 19:52:44 +02:00
Anonymous 98e5ceb93a Translated using Weblate (Swedish)
Currently translated at 28.4% (131 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-05-22 19:52:44 +02:00
Anonymous fa5b4f9ebe Translated using Weblate (Polish)
Currently translated at 81.3% (375 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-05-22 19:52:43 +02:00
Anonymous 06b24907b9 Translated using Weblate (Catalan)
Currently translated at 56.6% (261 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-05-22 19:52:43 +02:00
Anonymous 2f9bec8544 Translated using Weblate (Chinese (Traditional))
Currently translated at 95.6% (441 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-05-22 19:52:43 +02:00
Anonymous 43a3a71f72 Translated using Weblate (Dutch)
Currently translated at 52.4% (242 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-05-22 19:52:42 +02:00
Anonymous 8261a504e4 Translated using Weblate (Vietnamese)
Currently translated at 9.5% (44 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-05-22 19:52:42 +02:00
Anonymous a0c29cdd05 Translated using Weblate (Norwegian Bokmål)
Currently translated at 17.1% (79 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-05-22 19:52:42 +02:00
Anonymous 4c6cf7da18 Translated using Weblate (Italian)
Currently translated at 62.2% (287 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-05-22 19:52:41 +02:00
Anonymous 8cf783bf43 Translated using Weblate (Chinese (Simplified))
Currently translated at 96.3% (444 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-05-22 19:52:41 +02:00
Anonymous 55732ccac6 Translated using Weblate (Russian)
Currently translated at 89.8% (414 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-05-22 19:52:41 +02:00
Anonymous 33bd39301e Translated using Weblate (Portuguese)
Currently translated at 87.8% (405 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-05-22 19:52:41 +02:00
Anonymous 200706d612 Translated using Weblate (French)
Currently translated at 98.9% (456 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-22 19:52:40 +02:00
Anonymous 891f770d1e Translated using Weblate (Spanish)
Currently translated at 98.9% (456 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-05-22 19:52:40 +02:00
Anonymous 7b8c84df5a Translated using Weblate (German)
Currently translated at 96.3% (444 of 461 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-05-22 19:52:39 +02:00
Hosted Weblate f29b137a9e Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/
2023-05-22 19:51:09 +02:00
Nonoss117 e97bdb9ec4 Translated using Weblate (French)
Currently translated at 100.0% (457 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-22 19:51:05 +02:00
gallegonovato 1291707e2f Translated using Weblate (Spanish)
Currently translated at 100.0% (457 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-05-22 19:51:05 +02:00
Georges-Antoine Assiandshamoon cdd7b2d44b Enhanced glances widget (#1534)
* Enhanced glances widget (resource match)

* Make widget clickable + cleanup helperrs

* Prevent unused glances API calls

---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2023-05-22 10:50:58 -07:00
Anonymous 3bc750bfe7 Translated using Weblate (Slovenian)
Currently translated at 98.6% (451 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-05-21 18:14:14 +02:00
Anonymous a5b041eb6f Translated using Weblate (Greek)
Currently translated at 31.5% (144 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-05-21 18:14:14 +02:00
Anonymous f3dad538f3 Translated using Weblate (Korean)
Currently translated at 38.0% (174 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-05-21 18:14:13 +02:00
Anonymous f61d8fb924 Translated using Weblate (Slovak)
Currently translated at 1.9% (9 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-05-21 18:14:13 +02:00
Anonymous e3fd1dfc49 Translated using Weblate (Thai)
Currently translated at 10.2% (47 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-05-21 18:14:13 +02:00
Anonymous d00a6efc41 Translated using Weblate (Latvian)
Currently translated at 26.0% (119 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-05-21 18:14:12 +02:00
Anonymous 73b5175294 Translated using Weblate (Japanese)
Currently translated at 81.8% (374 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-05-21 18:14:12 +02:00
Anonymous 94540f828b Translated using Weblate (Ukrainian)
Currently translated at 98.6% (451 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-05-21 18:14:12 +02:00
Anonymous 940bb01c12 Translated using Weblate (Esperanto)
Currently translated at 32.1% (147 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-05-21 18:14:12 +02:00
Anonymous 5d2d81d0dd Translated using Weblate (Hindi)
Currently translated at 1.9% (9 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-05-21 18:14:11 +02:00
Anonymous 48f2d4348d Translated using Weblate (Malay)
Currently translated at 55.3% (253 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-05-21 18:14:11 +02:00
Anonymous 16cf1cba98 Translated using Weblate (Danish)
Currently translated at 43.3% (198 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-05-21 18:14:10 +02:00
Anonymous 982f594040 Translated using Weblate (Czech)
Currently translated at 97.5% (446 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-05-21 18:14:10 +02:00
Anonymous ea025cedf0 Translated using Weblate (Arabic)
Currently translated at 57.3% (262 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-05-21 18:14:10 +02:00
Anonymous 70519a53a5 Translated using Weblate (Serbian)
Currently translated at 1.9% (9 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-05-21 18:14:10 +02:00
Anonymous 551b53e143 Translated using Weblate (Turkish)
Currently translated at 69.3% (317 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-05-21 18:14:09 +02:00
Anonymous 9f75009f42 Translated using Weblate (Bulgarian)
Currently translated at 10.0% (46 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-05-21 18:14:09 +02:00
Anonymous 148710dfd8 Translated using Weblate (Telugu)
Currently translated at 47.4% (217 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-05-21 18:14:08 +02:00
Anonymous 319042ea19 Translated using Weblate (Finnish)
Currently translated at 38.9% (178 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-05-21 18:14:08 +02:00
Anonymous a9a7a7d6b1 Translated using Weblate (Yue (Traditional))
Currently translated at 25.8% (118 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-05-21 18:14:07 +02:00
Anonymous 0bd639cad8 Translated using Weblate (Portuguese (Brazil))
Currently translated at 88.8% (406 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-05-21 18:14:07 +02:00
Anonymous febc8eaf73 Translated using Weblate (Romanian)
Currently translated at 33.2% (152 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-05-21 18:14:07 +02:00
Anonymous 268cdcab19 Translated using Weblate (Hebrew)
Currently translated at 22.1% (101 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-05-21 18:14:06 +02:00
Anonymous 1caf6126c8 Translated using Weblate (Hungarian)
Currently translated at 23.6% (108 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-05-21 18:14:06 +02:00
Anonymous 82ae597a23 Translated using Weblate (Croatian)
Currently translated at 94.9% (434 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-05-21 18:14:05 +02:00
Anonymous be82a83f4d Translated using Weblate (Swedish)
Currently translated at 28.8% (132 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-05-21 18:14:05 +02:00
Anonymous 1e00867697 Translated using Weblate (Polish)
Currently translated at 82.2% (376 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-05-21 18:14:05 +02:00
Anonymous db030f2e72 Translated using Weblate (Catalan)
Currently translated at 57.3% (262 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-05-21 18:14:04 +02:00
Anonymous 03ed353762 Translated using Weblate (Chinese (Traditional))
Currently translated at 96.7% (442 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-05-21 18:14:03 +02:00
Anonymous d63d62885b Translated using Weblate (Dutch)
Currently translated at 52.9% (242 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-05-21 18:14:03 +02:00
Anonymous b23ba74cce Translated using Weblate (Vietnamese)
Currently translated at 9.6% (44 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-05-21 18:14:03 +02:00
Anonymous 4150158b8d Translated using Weblate (Norwegian Bokmål)
Currently translated at 17.2% (79 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-05-21 18:14:02 +02:00
Anonymous fde331a2c2 Translated using Weblate (Italian)
Currently translated at 63.0% (288 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-05-21 18:14:02 +02:00
Anonymous e40e995f66 Translated using Weblate (Chinese (Simplified))
Currently translated at 97.3% (445 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-05-21 18:14:01 +02:00
Anonymous f706e4eccd Translated using Weblate (Russian)
Currently translated at 90.8% (415 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-05-21 18:14:01 +02:00
Anonymous e5d42a65c7 Translated using Weblate (Portuguese)
Currently translated at 88.8% (406 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-05-21 18:14:01 +02:00
Anonymous 9a5d9f241a Translated using Weblate (French)
Currently translated at 98.6% (451 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-21 18:14:00 +02:00
Anonymous b3ecf152f0 Translated using Weblate (Spanish)
Currently translated at 98.4% (450 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-05-21 18:14:00 +02:00
Anonymous 715d3abdb5 Translated using Weblate (German)
Currently translated at 97.3% (445 of 457 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-05-21 18:13:59 +02:00
Salvatore Gabriele La Grecaandshamoon 36eaaafd88 Added PiAlert widget [WIP] (#1493)
* Added PiAlert widget

* pialert: comments clean

* Syntax changes to piAlert widget

---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2023-05-21 09:12:14 -07:00
Anonymous c8eccc71a4 Translated using Weblate (Slovenian)
Currently translated at 99.5% (451 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-05-21 17:16:10 +02:00
Anonymous abc4735b8f Translated using Weblate (Greek)
Currently translated at 31.7% (144 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-05-21 17:16:10 +02:00
Anonymous 2fe14dbd9a Translated using Weblate (Korean)
Currently translated at 38.4% (174 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-05-21 17:16:10 +02:00
Anonymous 1b9e0dbf41 Translated using Weblate (Slovak)
Currently translated at 1.9% (9 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-05-21 17:16:09 +02:00
Anonymous edbfb857f1 Translated using Weblate (Thai)
Currently translated at 10.3% (47 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-05-21 17:16:09 +02:00
Anonymous a94fe86fb9 Translated using Weblate (Latvian)
Currently translated at 26.2% (119 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-05-21 17:16:08 +02:00
Anonymous 4f5d6ed099 Translated using Weblate (Japanese)
Currently translated at 82.5% (374 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-05-21 17:16:08 +02:00
Anonymous e964dd5f74 Translated using Weblate (Ukrainian)
Currently translated at 99.5% (451 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-05-21 17:16:08 +02:00
Anonymous 40c18f2a46 Translated using Weblate (Esperanto)
Currently translated at 32.4% (147 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-05-21 17:16:07 +02:00
Anonymous defae64b65 Translated using Weblate (Hindi)
Currently translated at 1.9% (9 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-05-21 17:16:07 +02:00
Anonymous 7a7b695c6b Translated using Weblate (Malay)
Currently translated at 55.8% (253 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-05-21 17:16:07 +02:00
Anonymous 31178f2212 Translated using Weblate (Danish)
Currently translated at 43.7% (198 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-05-21 17:16:06 +02:00
Anonymous 2b8a120a9b Translated using Weblate (Czech)
Currently translated at 98.4% (446 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-05-21 17:16:06 +02:00
Anonymous 3742fee9c0 Translated using Weblate (Arabic)
Currently translated at 57.8% (262 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-05-21 17:16:06 +02:00
Anonymous a8f48920a4 Translated using Weblate (Serbian)
Currently translated at 1.9% (9 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-05-21 17:16:05 +02:00
Anonymous 79a4130e1a Translated using Weblate (Turkish)
Currently translated at 69.9% (317 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-05-21 17:16:05 +02:00
Anonymous 477d48e6c7 Translated using Weblate (Bulgarian)
Currently translated at 10.1% (46 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-05-21 17:16:04 +02:00
Anonymous fcf3499098 Translated using Weblate (Telugu)
Currently translated at 47.9% (217 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-05-21 17:16:04 +02:00
Anonymous b3d4397961 Translated using Weblate (Finnish)
Currently translated at 39.2% (178 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-05-21 17:16:04 +02:00
Anonymous a6e3d28cc3 Translated using Weblate (Yue (Traditional))
Currently translated at 26.0% (118 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-05-21 17:16:03 +02:00
Anonymous c1c9e70372 Translated using Weblate (Portuguese (Brazil))
Currently translated at 89.6% (406 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-05-21 17:16:03 +02:00
Anonymous b027772787 Translated using Weblate (Romanian)
Currently translated at 33.5% (152 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-05-21 17:16:02 +02:00
Anonymous 99c6e6c43e Translated using Weblate (Hebrew)
Currently translated at 22.2% (101 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-05-21 17:16:02 +02:00
Anonymous 1d48cf4fdc Translated using Weblate (Hungarian)
Currently translated at 23.8% (108 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-05-21 17:16:02 +02:00
Anonymous 81d4c86368 Translated using Weblate (Croatian)
Currently translated at 95.8% (434 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-05-21 17:16:01 +02:00
Anonymous 4f6afc72fc Translated using Weblate (Swedish)
Currently translated at 29.1% (132 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-05-21 17:16:01 +02:00
Anonymous 269e70a086 Translated using Weblate (Polish)
Currently translated at 83.0% (376 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-05-21 17:16:00 +02:00
Anonymous 675aaba5d4 Translated using Weblate (Catalan)
Currently translated at 57.8% (262 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-05-21 17:16:00 +02:00
Anonymous 30dc155526 Translated using Weblate (Chinese (Traditional))
Currently translated at 97.5% (442 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-05-21 17:16:00 +02:00
Anonymous c7a60f5645 Translated using Weblate (Dutch)
Currently translated at 53.4% (242 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-05-21 17:15:59 +02:00
Anonymous e439c3e5da Translated using Weblate (Vietnamese)
Currently translated at 9.7% (44 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-05-21 17:15:59 +02:00
Anonymous 3a57f9f685 Translated using Weblate (Norwegian Bokmål)
Currently translated at 17.4% (79 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-05-21 17:15:59 +02:00
Anonymous 4b4537f532 Translated using Weblate (Italian)
Currently translated at 63.5% (288 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-05-21 17:15:58 +02:00
Anonymous 80fe8ef62e Translated using Weblate (Chinese (Simplified))
Currently translated at 98.2% (445 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-05-21 17:15:58 +02:00
Anonymous 99d859dc08 Translated using Weblate (Russian)
Currently translated at 91.6% (415 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-05-21 17:15:58 +02:00
Anonymous 49b4997245 Translated using Weblate (Portuguese)
Currently translated at 89.6% (406 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-05-21 17:15:57 +02:00
Anonymous 2d9cf1e06a Translated using Weblate (French)
Currently translated at 99.5% (451 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-21 17:15:57 +02:00
Anonymous ff2177fa5e Translated using Weblate (Spanish)
Currently translated at 99.3% (450 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-05-21 17:15:57 +02:00
Anonymous 18a597617d Translated using Weblate (German)
Currently translated at 98.2% (445 of 453 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-05-21 17:15:56 +02:00
Smexhy 5443d17bf3 Translated using Weblate (Czech)
Currently translated at 98.8% (446 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-05-21 17:13:48 +02:00
KaiYi Chang d31129ee03 Translated using Weblate (Chinese (Traditional))
Currently translated at 98.0% (442 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-05-21 17:13:48 +02:00
Shaun Walkerandshamoon cf7c68261f Add support for QNAP instances with multiple volumes (#1528)
* Add support for pfSense API

* Fix linting issues

* remove a line

* rename cpu to load in default block

* Re-order container blocks to ensure defaults show

* clean up

* Add support for multiple volumes as well as defining the volume you want to track

* QNAP widget syntax corrections, translate invalid

---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2023-05-21 08:13:40 -07:00
shamoon a59e8e6efd Merge pull request #1529 from benphelps/fix/issue-1527
Fix: Add try catch for ping
2023-05-20 09:49:36 -07:00
shamoon f1a33f10ed Add try catch for ping 2023-05-20 09:48:18 -07:00
Antonis Triantafyllopoulos cead87dcd0 Translated using Weblate (Greek)
Currently translated at 31.9% (144 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-05-20 14:51:01 +02:00
gallegonovato cb7abb62b8 Translated using Weblate (Spanish)
Currently translated at 99.7% (450 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-05-20 14:51:00 +02:00
shamoon 7e005e51cc Fix background filters outside viewport 2023-05-20 03:17:47 -07:00
shamoon 1ed1ce4001 Merge pull request #1526 from benphelps/fix/issue-1524
Fix: background filters are not full height
2023-05-20 02:44:12 -07:00
shamoon 8a92d92b22 Make background wrapper full height 2023-05-20 02:43:07 -07:00
shamoon 6046f7911e Merge pull request #1519 from theshaun/main
QNAP plugin, fix key expiry issue
2023-05-19 13:28:23 -07:00
shamoon a9d3873579 QNAP widget make sure re-auth status = 200 2023-05-19 12:45:32 -07:00
theshaun d402be2b78 clean up 2023-05-19 12:45:32 -07:00
theshaun 2ca46b595b Fix issue with key expiring and not updating correctly 2023-05-19 12:45:32 -07:00
theshaun db2481cf0e Re-order container blocks to ensure defaults show 2023-05-19 12:45:32 -07:00
theshaun 865206802c rename cpu to load in default block 2023-05-19 12:45:32 -07:00
theshaun 668779ede1 remove a line 2023-05-19 12:45:32 -07:00
theshaun 1ca2407256 Fix linting issues 2023-05-19 12:45:32 -07:00
theshaun 3240b7a169 Add support for pfSense API 2023-05-19 12:45:32 -07:00
shamoon 4aeb3882af Merge pull request #1522 from benphelps/fix/issue-1521
Fix: Include backdrop classes in css build
2023-05-19 12:32:52 -07:00
shamoon 54ccd7ffb0 Include backdrop classes in css build 2023-05-19 12:32:18 -07:00
Andrej Kralj 411e24ef94 Translated using Weblate (Slovenian)
Currently translated at 100.0% (451 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-05-19 08:48:25 +02:00
Antonis Triantafyllopoulos 5fecf9baa7 Translated using Weblate (Greek)
Currently translated at 31.4% (142 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-05-19 08:48:24 +02:00
Dan bdcd7835ac Translated using Weblate (Ukrainian)
Currently translated at 100.0% (451 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-05-19 08:48:24 +02:00
Smexhy c023b414c1 Translated using Weblate (Czech)
Currently translated at 98.8% (446 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-05-19 08:48:23 +02:00
Nonoss117 d3f85bf628 Translated using Weblate (French)
Currently translated at 100.0% (451 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-19 08:48:23 +02:00
shamoon ba21ae60d7 url error log 2023-05-18 00:26:32 -07:00
shamoon 328875d0f5 Merge pull request #1513 from davidosomething/fix-error-url
error hostname:port/path was missing colon
2023-05-17 18:05:03 -07:00
David O'Trakoun 4f3396cf32 error hostname:port/path was missing colon 2023-05-17 20:03:08 -04:00
shamoon be7aa5835a Remove visiblechildren slice
Closes #1512
2023-05-17 14:23:03 -07:00
shamoon d87c5e100d Update container.jsx 2023-05-17 13:21:50 -07:00
shamoon ec25267235 Merge pull request #1511 from brunoccr/main
Fix Slice error on container.jsx
2023-05-17 13:21:32 -07:00
Bruno Rossetto cc36ad19ee Fix Slice error on container.jsx 2023-05-17 17:02:46 -03:00
Anonymous 1091447b8b Translated using Weblate (Slovenian)
Currently translated at 98.6% (445 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-05-17 19:41:38 +02:00
Anonymous 143d684f72 Translated using Weblate (Greek)
Currently translated at 30.5% (138 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-05-17 19:41:38 +02:00
Anonymous 38ee11543a Translated using Weblate (Korean)
Currently translated at 38.5% (174 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-05-17 19:41:37 +02:00
Anonymous f1e67f7504 Translated using Weblate (Slovak)
Currently translated at 1.9% (9 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-05-17 19:41:37 +02:00
Anonymous 43e7f9dbc0 Translated using Weblate (Thai)
Currently translated at 10.4% (47 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-05-17 19:41:36 +02:00
Anonymous 68fe6afc21 Translated using Weblate (Latvian)
Currently translated at 26.3% (119 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-05-17 19:41:36 +02:00
Anonymous 5aaa50bae3 Translated using Weblate (Japanese)
Currently translated at 82.9% (374 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-05-17 19:41:35 +02:00
Anonymous 2896b6f4ed Translated using Weblate (Ukrainian)
Currently translated at 98.0% (442 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-05-17 19:41:35 +02:00
Anonymous dd8e21632e Translated using Weblate (Esperanto)
Currently translated at 32.5% (147 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-05-17 19:41:35 +02:00
Anonymous b76c132953 Translated using Weblate (Hindi)
Currently translated at 1.9% (9 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-05-17 19:41:34 +02:00
Anonymous 193338fb00 Translated using Weblate (Malay)
Currently translated at 56.0% (253 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-05-17 19:41:34 +02:00
Anonymous 5478555509 Translated using Weblate (Danish)
Currently translated at 43.9% (198 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-05-17 19:41:33 +02:00
Anonymous 9354faf485 Translated using Weblate (Czech)
Currently translated at 98.6% (445 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-05-17 19:41:33 +02:00
Anonymous 410d96ef03 Translated using Weblate (Arabic)
Currently translated at 58.0% (262 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-05-17 19:41:33 +02:00
Anonymous 7a48323558 Translated using Weblate (Serbian)
Currently translated at 1.9% (9 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-05-17 19:41:32 +02:00
Anonymous b8e7979719 Translated using Weblate (Turkish)
Currently translated at 70.2% (317 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-05-17 19:41:32 +02:00
Anonymous bf83acf066 Translated using Weblate (Bulgarian)
Currently translated at 10.1% (46 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-05-17 19:41:31 +02:00
Anonymous a381da6a14 Translated using Weblate (Telugu)
Currently translated at 48.1% (217 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-05-17 19:41:31 +02:00
Anonymous 4bbca70c92 Translated using Weblate (Finnish)
Currently translated at 39.4% (178 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-05-17 19:41:30 +02:00
Anonymous 1fff750f6c Translated using Weblate (Yue (Traditional))
Currently translated at 26.1% (118 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-05-17 19:41:30 +02:00
Anonymous 4963eb4ec0 Translated using Weblate (Portuguese (Brazil))
Currently translated at 90.0% (406 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-05-17 19:41:30 +02:00
Anonymous fcbeff9f2e Translated using Weblate (Romanian)
Currently translated at 33.7% (152 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-05-17 19:41:29 +02:00
Anonymous f26ea08da8 Translated using Weblate (Hebrew)
Currently translated at 22.3% (101 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-05-17 19:41:29 +02:00
Anonymous fb06c9d51c Translated using Weblate (Hungarian)
Currently translated at 23.9% (108 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-05-17 19:41:28 +02:00
Anonymous e03c1ef990 Translated using Weblate (Croatian)
Currently translated at 96.2% (434 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-05-17 19:41:28 +02:00
Anonymous c5465f8e42 Translated using Weblate (Swedish)
Currently translated at 29.2% (132 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-05-17 19:41:27 +02:00
Anonymous 7102f1bd67 Translated using Weblate (Polish)
Currently translated at 83.3% (376 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-05-17 19:41:27 +02:00
Anonymous b0d1449481 Translated using Weblate (Catalan)
Currently translated at 58.0% (262 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-05-17 19:41:27 +02:00
Anonymous d7191477d1 Translated using Weblate (Chinese (Traditional))
Currently translated at 92.0% (415 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-05-17 19:41:26 +02:00
Anonymous 42069d9502 Translated using Weblate (Dutch)
Currently translated at 53.6% (242 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-05-17 19:41:25 +02:00
Anonymous 65aaacd3d1 Translated using Weblate (Vietnamese)
Currently translated at 9.7% (44 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-05-17 19:41:25 +02:00
Anonymous 59e801e6cc Translated using Weblate (Norwegian Bokmål)
Currently translated at 17.5% (79 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-05-17 19:41:25 +02:00
Anonymous cb87a0f45c Translated using Weblate (Italian)
Currently translated at 63.8% (288 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-05-17 19:41:24 +02:00
Anonymous 31ae68567e Translated using Weblate (Chinese (Simplified))
Currently translated at 98.6% (445 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-05-17 19:41:24 +02:00
Anonymous 41d04de4ff Translated using Weblate (Russian)
Currently translated at 92.0% (415 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-05-17 19:41:23 +02:00
Anonymous 03abda2242 Translated using Weblate (Portuguese)
Currently translated at 90.0% (406 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-05-17 19:41:23 +02:00
Anonymous f30abd58e8 Translated using Weblate (French)
Currently translated at 98.6% (445 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-17 19:41:22 +02:00
Anonymous b0f53361fc Translated using Weblate (Spanish)
Currently translated at 98.6% (445 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-05-17 19:41:22 +02:00
Anonymous 583caf9d9e Translated using Weblate (German)
Currently translated at 98.6% (445 of 451 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-05-17 19:41:22 +02:00
mspzyzh dabf2b25e7 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (445 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-05-17 19:39:22 +02:00
emre-54andshamoon 03eb1b1112 Add evcc widget (#1473)
* added all evcc related files

* changed units

* bugfix changed first value to pvPower insted of homePower

* deleted proxy.js

* delted battary label and german translation

* Code style changes to evcc widget

---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2023-05-17 10:39:15 -07:00
Andrej Kralj a0665c17b8 Translated using Weblate (Slovenian)
Currently translated at 100.0% (445 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-05-17 15:08:34 +02:00
Marek 66a565b637 Translated using Weblate (Czech)
Currently translated at 100.0% (445 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-05-17 15:08:33 +02:00
Serbanescu Bogdan 922358a9c3 Translated using Weblate (Romanian)
Currently translated at 34.1% (152 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-05-17 15:08:33 +02:00
mspzyzh 2031929dfb Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (445 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-05-17 15:08:32 +02:00
Nonoss117 f0e16f2b0f Translated using Weblate (French)
Currently translated at 100.0% (445 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-17 15:08:32 +02:00
gallegonovato 7a7bca3deb Translated using Weblate (Spanish)
Currently translated at 100.0% (445 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-05-17 15:08:31 +02:00
Simon 8263e53025 Translated using Weblate (German)
Currently translated at 100.0% (445 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-05-17 15:08:31 +02:00
shamoon e41fae1b81 Update PULL_REQUEST_TEMPLATE.md 2023-05-15 19:32:39 -07:00
Anonymous 7555b21211 Translated using Weblate (Slovenian)
Currently translated at 97.5% (434 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-05-15 06:27:36 +02:00
Anonymous 1c7c11f093 Translated using Weblate (Greek)
Currently translated at 31.0% (138 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-05-15 06:27:36 +02:00
Anonymous 7f7c99c361 Translated using Weblate (Korean)
Currently translated at 39.1% (174 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-05-15 06:27:35 +02:00
Anonymous 79199dccfe Translated using Weblate (Slovak)
Currently translated at 2.0% (9 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-05-15 06:27:35 +02:00
Anonymous 1027eb00a0 Translated using Weblate (Thai)
Currently translated at 10.5% (47 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-05-15 06:27:34 +02:00
Anonymous f09bbd293c Translated using Weblate (Latvian)
Currently translated at 26.7% (119 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-05-15 06:27:34 +02:00
Anonymous ad04c056ca Translated using Weblate (Japanese)
Currently translated at 84.0% (374 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-05-15 06:27:34 +02:00
Anonymous e316175cce Translated using Weblate (Ukrainian)
Currently translated at 99.3% (442 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-05-15 06:27:34 +02:00
Anonymous b50d001756 Translated using Weblate (Esperanto)
Currently translated at 33.0% (147 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-05-15 06:27:33 +02:00
Anonymous 03a75e287a Translated using Weblate (Hindi)
Currently translated at 2.0% (9 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-05-15 06:27:33 +02:00
Anonymous bc4c22b0a7 Translated using Weblate (Malay)
Currently translated at 56.8% (253 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-05-15 06:27:33 +02:00
Anonymous ad53770edd Translated using Weblate (Danish)
Currently translated at 44.4% (198 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-05-15 06:27:32 +02:00
Anonymous ee9af5cf05 Translated using Weblate (Czech)
Currently translated at 95.9% (427 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-05-15 06:27:32 +02:00
Anonymous 9aa230fafb Translated using Weblate (Arabic)
Currently translated at 58.8% (262 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-05-15 06:27:32 +02:00
Anonymous ad14d100df Translated using Weblate (Serbian)
Currently translated at 2.0% (9 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-05-15 06:27:31 +02:00
Anonymous 51b8b9e61e Translated using Weblate (Turkish)
Currently translated at 71.2% (317 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-05-15 06:27:31 +02:00
Anonymous 836c61effa Translated using Weblate (Bulgarian)
Currently translated at 10.3% (46 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-05-15 06:27:30 +02:00
Anonymous 14de8b690d Translated using Weblate (Telugu)
Currently translated at 48.7% (217 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-05-15 06:27:30 +02:00
Anonymous d0a08edc3c Translated using Weblate (Finnish)
Currently translated at 40.0% (178 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-05-15 06:27:30 +02:00
Anonymous 2d56220115 Translated using Weblate (Yue (Traditional))
Currently translated at 26.5% (118 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-05-15 06:27:29 +02:00
Anonymous 16c4b8d8a4 Translated using Weblate (Portuguese (Brazil))
Currently translated at 91.2% (406 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-05-15 06:27:28 +02:00
Anonymous 062b0e468a Translated using Weblate (Romanian)
Currently translated at 33.9% (151 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-05-15 06:27:28 +02:00
Anonymous a49f3114a0 Translated using Weblate (Hebrew)
Currently translated at 22.6% (101 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-05-15 06:27:28 +02:00
Anonymous 538a718f15 Translated using Weblate (Hungarian)
Currently translated at 24.2% (108 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-05-15 06:27:27 +02:00
Anonymous f5e5e8bb40 Translated using Weblate (Croatian)
Currently translated at 97.5% (434 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-05-15 06:27:27 +02:00
Anonymous affd585fad Translated using Weblate (Swedish)
Currently translated at 29.6% (132 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-05-15 06:27:26 +02:00
Anonymous 89a790a4a6 Translated using Weblate (Polish)
Currently translated at 84.4% (376 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-05-15 06:27:26 +02:00
Anonymous 5b70cdc892 Translated using Weblate (Catalan)
Currently translated at 58.8% (262 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-05-15 06:27:26 +02:00
Anonymous 27d4117da7 Translated using Weblate (Chinese (Traditional))
Currently translated at 93.2% (415 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-05-15 06:27:25 +02:00
Anonymous 4f4cf5beab Translated using Weblate (Dutch)
Currently translated at 54.3% (242 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-05-15 06:27:25 +02:00
Anonymous 73f850459d Translated using Weblate (Vietnamese)
Currently translated at 9.8% (44 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-05-15 06:27:24 +02:00
Anonymous b764f58013 Translated using Weblate (Norwegian Bokmål)
Currently translated at 17.7% (79 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-05-15 06:27:24 +02:00
Anonymous cb5c246aaf Translated using Weblate (Italian)
Currently translated at 64.7% (288 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-05-15 06:27:24 +02:00
Anonymous 3b413c0030 Translated using Weblate (Chinese (Simplified))
Currently translated at 91.9% (409 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-05-15 06:27:23 +02:00
Anonymous 811d18d18d Translated using Weblate (Russian)
Currently translated at 93.2% (415 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-05-15 06:27:23 +02:00
Anonymous a5a42fb9f7 Translated using Weblate (Portuguese)
Currently translated at 91.2% (406 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-05-15 06:27:23 +02:00
Anonymous 57fdf5e76e Translated using Weblate (French)
Currently translated at 99.3% (442 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-15 06:27:22 +02:00
Anonymous 92d3963804 Translated using Weblate (Spanish)
Currently translated at 99.3% (442 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-05-15 06:27:22 +02:00
Anonymous 61aff6bb56 Translated using Weblate (German)
Currently translated at 83.3% (371 of 445 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-05-15 06:27:21 +02:00
Dan 1f41d36aa4 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (442 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-05-15 06:25:41 +02:00
Nonoss117 ec2df8fc49 Translated using Weblate (French)
Currently translated at 100.0% (442 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-15 06:25:41 +02:00
gallegonovato cae12feac6 Translated using Weblate (Spanish)
Currently translated at 100.0% (442 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-05-15 06:25:41 +02:00
shamoon 135f738249 Merge pull request #1503 from grimsi/caddy
Implement Caddy widget
2023-05-14 21:25:35 -07:00
shamoon bc981aae3d Include port in error messages 2023-05-14 21:24:09 -07:00
Simon Grimme 516423c8bd Implement Caddy widget 2023-05-15 02:12:56 +02:00
Anonymous ef1dfc7323 Translated using Weblate (Slovenian)
Currently translated at 98.1% (434 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-05-13 22:45:54 +02:00
Anonymous ac2ec69b54 Translated using Weblate (Greek)
Currently translated at 31.2% (138 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-05-13 22:45:53 +02:00
Anonymous 11a52de651 Translated using Weblate (Korean)
Currently translated at 39.3% (174 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-05-13 22:45:53 +02:00
Anonymous 44ebf7c59f Translated using Weblate (Slovak)
Currently translated at 2.0% (9 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-05-13 22:45:53 +02:00
Anonymous abac88e353 Translated using Weblate (Thai)
Currently translated at 10.6% (47 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-05-13 22:45:52 +02:00
Anonymous 29d5ce063f Translated using Weblate (Latvian)
Currently translated at 26.9% (119 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-05-13 22:45:52 +02:00
Anonymous b502726300 Translated using Weblate (Japanese)
Currently translated at 84.6% (374 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-05-13 22:45:52 +02:00
Anonymous acf7afd2ae Translated using Weblate (Ukrainian)
Currently translated at 98.1% (434 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-05-13 22:45:51 +02:00
Anonymous b53bc9f768 Translated using Weblate (Esperanto)
Currently translated at 33.2% (147 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-05-13 22:45:51 +02:00
Anonymous 22bc651e13 Translated using Weblate (Hindi)
Currently translated at 2.0% (9 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-05-13 22:45:51 +02:00
Anonymous 32b95bbbc4 Translated using Weblate (Malay)
Currently translated at 57.2% (253 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-05-13 22:45:51 +02:00
Anonymous 811758df81 Translated using Weblate (Danish)
Currently translated at 44.7% (198 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-05-13 22:45:50 +02:00
Anonymous 48e68241c6 Translated using Weblate (Czech)
Currently translated at 96.6% (427 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-05-13 22:45:50 +02:00
Anonymous 712b5c151d Translated using Weblate (Arabic)
Currently translated at 59.2% (262 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-05-13 22:45:50 +02:00
Anonymous f79c1be558 Translated using Weblate (Serbian)
Currently translated at 2.0% (9 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-05-13 22:45:49 +02:00
Anonymous 81909f1fea Translated using Weblate (Turkish)
Currently translated at 71.7% (317 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-05-13 22:45:49 +02:00
Anonymous b9df862ac0 Translated using Weblate (Bulgarian)
Currently translated at 10.4% (46 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-05-13 22:45:49 +02:00
Anonymous 5d671857cd Translated using Weblate (Telugu)
Currently translated at 49.0% (217 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-05-13 22:45:48 +02:00
Anonymous 2b59cfc4b9 Translated using Weblate (Finnish)
Currently translated at 40.2% (178 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-05-13 22:45:48 +02:00
Anonymous f90c79bd70 Translated using Weblate (Yue (Traditional))
Currently translated at 26.6% (118 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-05-13 22:45:48 +02:00
Anonymous 28ace5e9da Translated using Weblate (Portuguese (Brazil))
Currently translated at 91.8% (406 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-05-13 22:45:47 +02:00
Anonymous a90daa9e7e Translated using Weblate (Romanian)
Currently translated at 34.1% (151 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-05-13 22:45:47 +02:00
Anonymous 369f145be8 Translated using Weblate (Hebrew)
Currently translated at 22.8% (101 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-05-13 22:45:47 +02:00
Anonymous 07e6700b3b Translated using Weblate (Hungarian)
Currently translated at 24.4% (108 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-05-13 22:45:46 +02:00
Anonymous e1a322cbba Translated using Weblate (Croatian)
Currently translated at 98.1% (434 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-05-13 22:45:46 +02:00
Anonymous 202d80b2da Translated using Weblate (Swedish)
Currently translated at 29.8% (132 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-05-13 22:45:46 +02:00
Anonymous 8aa9df891c Translated using Weblate (Polish)
Currently translated at 85.0% (376 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-05-13 22:45:45 +02:00
Anonymous 4e7c2763eb Translated using Weblate (Catalan)
Currently translated at 59.2% (262 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-05-13 22:45:45 +02:00
Anonymous a9286d86cd Translated using Weblate (Chinese (Traditional))
Currently translated at 93.8% (415 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-05-13 22:45:45 +02:00
Anonymous b98e716d3a Translated using Weblate (Dutch)
Currently translated at 54.7% (242 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-05-13 22:45:44 +02:00
Anonymous 8622017d5e Translated using Weblate (Vietnamese)
Currently translated at 9.9% (44 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-05-13 22:45:44 +02:00
Anonymous 28c8e5e5b2 Translated using Weblate (Norwegian Bokmål)
Currently translated at 17.8% (79 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-05-13 22:45:44 +02:00
Anonymous f16b538689 Translated using Weblate (Italian)
Currently translated at 65.1% (288 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-05-13 22:45:44 +02:00
Anonymous 595d4d1253 Translated using Weblate (Chinese (Simplified))
Currently translated at 92.5% (409 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-05-13 22:45:43 +02:00
Anonymous be9c281cad Translated using Weblate (Russian)
Currently translated at 93.8% (415 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-05-13 22:45:43 +02:00
Anonymous 5b442c24c9 Translated using Weblate (Portuguese)
Currently translated at 91.8% (406 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-05-13 22:45:43 +02:00
Anonymous 9fd107fef2 Translated using Weblate (French)
Currently translated at 98.1% (434 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-13 22:45:42 +02:00
Anonymous 48a4486bcf Translated using Weblate (Spanish)
Currently translated at 98.1% (434 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-05-13 22:45:42 +02:00
Anonymous a86d166348 Translated using Weblate (German)
Currently translated at 83.9% (371 of 442 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-05-13 22:45:42 +02:00
Shaun Walkerandshamoon 77f4c8bf54 Add pfSense API widget (#1491)
* Add support for pfSense API

* Fix linting issues

* remove a line

* rename cpu to load in default block

* Re-order container blocks to ensure defaults show

* simplify pfsense widget, rename, limit blocks

---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2023-05-13 13:44:33 -07:00
Andrej Kralj 9617583ee8 Translated using Weblate (Slovenian)
Currently translated at 100.0% (434 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-05-13 14:52:14 +02:00
George Stefanakis 0f7342a382 Translated using Weblate (Greek)
Currently translated at 31.7% (138 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-05-13 14:52:14 +02:00
Dan 9c4e51e395 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (434 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-05-13 14:52:13 +02:00
Milo Ivir 1511394546 Translated using Weblate (Croatian)
Currently translated at 100.0% (434 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-05-13 14:52:13 +02:00
Nonoss117 93d625ed5d Translated using Weblate (French)
Currently translated at 100.0% (434 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-13 14:52:13 +02:00
gallegonovato bba3f08a8f Translated using Weblate (Spanish)
Currently translated at 100.0% (434 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-05-13 14:52:12 +02:00
fruppster+ky4astj9@gmail.com 48130626d0 Translated using Weblate (German)
Currently translated at 85.4% (371 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-05-13 14:52:12 +02:00
shamoon 6324c895ea Merge pull request #1485 from flor0/main
Add support for dashboard-icons SVG file format
2023-05-11 09:59:49 -07:00
shamoon 866bb1c330 Update container.jsx 2023-05-09 16:43:58 -07:00
shamoon 20e3c16089 Remove narrow unit display 2023-05-09 16:43:53 -07:00
Florian Rupp ccbe11e20c add support for dashboard-icons svg format 2023-05-09 23:29:55 +02:00
Anonymous 7d877fb8e0 Translated using Weblate (Slovenian)
Currently translated at 95.6% (415 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-05-09 15:05:32 +02:00
Anonymous 56fe2336b9 Translated using Weblate (Greek)
Currently translated at 25.3% (110 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-05-09 15:05:32 +02:00
Anonymous 5109ef682a Translated using Weblate (Korean)
Currently translated at 40.0% (174 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-05-09 15:05:31 +02:00
Anonymous d527899650 Translated using Weblate (Slovak)
Currently translated at 2.0% (9 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-05-09 15:05:31 +02:00
Anonymous bdd4c10eb6 Translated using Weblate (Thai)
Currently translated at 10.8% (47 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-05-09 15:05:31 +02:00
Anonymous 7a5f951c6a Translated using Weblate (Latvian)
Currently translated at 27.4% (119 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-05-09 15:05:30 +02:00
Anonymous df1eab9369 Translated using Weblate (Japanese)
Currently translated at 86.1% (374 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-05-09 15:05:30 +02:00
Anonymous 0d7192ebc5 Translated using Weblate (Ukrainian)
Currently translated at 99.0% (430 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-05-09 15:05:30 +02:00
Anonymous e358dfc9f4 Translated using Weblate (Esperanto)
Currently translated at 33.8% (147 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-05-09 15:05:29 +02:00
Anonymous 344223769d Translated using Weblate (Hindi)
Currently translated at 2.0% (9 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-05-09 15:05:29 +02:00
Anonymous c916b68463 Translated using Weblate (Malay)
Currently translated at 58.2% (253 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-05-09 15:05:29 +02:00
Anonymous a0499ffebb Translated using Weblate (Danish)
Currently translated at 45.6% (198 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-05-09 15:05:28 +02:00
Anonymous 5d480b9eba Translated using Weblate (Czech)
Currently translated at 98.3% (427 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-05-09 15:05:28 +02:00
Anonymous 8ef419f60d Translated using Weblate (Arabic)
Currently translated at 60.3% (262 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-05-09 15:05:28 +02:00
Anonymous 4c8b088b39 Translated using Weblate (Serbian)
Currently translated at 2.0% (9 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-05-09 15:05:27 +02:00
Anonymous 41e5fc2e9d Translated using Weblate (Turkish)
Currently translated at 73.0% (317 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-05-09 15:05:27 +02:00
Anonymous a42fdca997 Translated using Weblate (Bulgarian)
Currently translated at 10.5% (46 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-05-09 15:05:27 +02:00
Anonymous 7b5a94b67c Translated using Weblate (Telugu)
Currently translated at 50.0% (217 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-05-09 15:05:26 +02:00
Anonymous 0e61006559 Translated using Weblate (Finnish)
Currently translated at 41.0% (178 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-05-09 15:05:26 +02:00
Anonymous d55536c3f0 Translated using Weblate (Yue (Traditional))
Currently translated at 27.1% (118 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-05-09 15:05:25 +02:00
Anonymous 5c83ec4910 Translated using Weblate (Portuguese (Brazil))
Currently translated at 93.5% (406 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-05-09 15:05:25 +02:00
Anonymous e011586078 Translated using Weblate (Romanian)
Currently translated at 34.7% (151 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-05-09 15:05:24 +02:00
Anonymous 543da08a1b Translated using Weblate (Hebrew)
Currently translated at 23.2% (101 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-05-09 15:05:24 +02:00
Anonymous f812c3c2c2 Translated using Weblate (Hungarian)
Currently translated at 24.8% (108 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-05-09 15:05:23 +02:00
Anonymous b95f07fdd0 Translated using Weblate (Croatian)
Currently translated at 96.0% (417 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-05-09 15:05:23 +02:00
Anonymous 3b33a04d94 Translated using Weblate (Swedish)
Currently translated at 30.4% (132 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-05-09 15:05:22 +02:00
Anonymous 22aab11bae Translated using Weblate (Polish)
Currently translated at 86.6% (376 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-05-09 15:05:22 +02:00
Anonymous ca500d3bc4 Translated using Weblate (Catalan)
Currently translated at 60.3% (262 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-05-09 15:05:22 +02:00
Anonymous 68981ccf74 Translated using Weblate (Chinese (Traditional))
Currently translated at 95.6% (415 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-05-09 15:05:21 +02:00
Anonymous 00178e86a1 Translated using Weblate (Dutch)
Currently translated at 55.7% (242 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-05-09 15:05:21 +02:00
Anonymous 85b4230f8d Translated using Weblate (Vietnamese)
Currently translated at 10.1% (44 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-05-09 15:05:20 +02:00
Anonymous cd97bd7e57 Translated using Weblate (Norwegian Bokmål)
Currently translated at 18.2% (79 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-05-09 15:05:20 +02:00
Anonymous bd55e204fa Translated using Weblate (Italian)
Currently translated at 66.3% (288 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-05-09 15:05:20 +02:00
Anonymous 6f93e322d0 Translated using Weblate (Chinese (Simplified))
Currently translated at 94.2% (409 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-05-09 15:05:19 +02:00
Anonymous 81e9a7bcde Translated using Weblate (Russian)
Currently translated at 95.6% (415 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-05-09 15:05:19 +02:00
Anonymous 90cc12b9d1 Translated using Weblate (Portuguese)
Currently translated at 93.5% (406 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-05-09 15:05:18 +02:00
Anonymous cf13d53c3d Translated using Weblate (French)
Currently translated at 99.0% (430 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-09 15:05:18 +02:00
Anonymous 87ea01ce0a Translated using Weblate (Spanish)
Currently translated at 99.0% (430 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-05-09 15:05:17 +02:00
Anonymous 449cb11f7b Translated using Weblate (German)
Currently translated at 83.6% (363 of 434 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-05-09 15:05:17 +02:00
Dan 3ee0621640 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (430 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-05-09 15:03:50 +02:00
gallegonovato 2857cc337a Translated using Weblate (Spanish)
Currently translated at 100.0% (430 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-05-09 15:03:50 +02:00
shamoon 07fb55e17f Merge pull request #1470 from theshaun/main
Prelim support for QNAP NAS
2023-05-09 06:03:42 -07:00
Marek dce095413f Translated using Weblate (Czech)
Currently translated at 99.3% (427 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-05-09 09:49:38 +02:00
Nonoss117 e39e10063d Translated using Weblate (French)
Currently translated at 100.0% (430 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-09 09:49:38 +02:00
shamoon df19ad7016 QNAP code style, temp formatting 2023-05-08 08:06:58 -07:00
Anonymous 892fc0842d Translated using Weblate (Slovenian)
Currently translated at 96.5% (415 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-05-07 16:19:18 +02:00
Anonymous 5934db8954 Translated using Weblate (Greek)
Currently translated at 25.5% (110 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-05-07 16:19:17 +02:00
Anonymous 6f9d795f69 Translated using Weblate (Korean)
Currently translated at 40.4% (174 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-05-07 16:19:17 +02:00
Anonymous ee3b5a5612 Translated using Weblate (Slovak)
Currently translated at 2.0% (9 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-05-07 16:19:17 +02:00
Anonymous 185e68f89d Translated using Weblate (Thai)
Currently translated at 10.9% (47 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-05-07 16:19:16 +02:00
Anonymous ab976baca6 Translated using Weblate (Latvian)
Currently translated at 27.6% (119 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-05-07 16:19:16 +02:00
Anonymous 563ece0bd9 Translated using Weblate (Japanese)
Currently translated at 86.9% (374 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-05-07 16:19:16 +02:00
Anonymous 7560715b73 Translated using Weblate (Ukrainian)
Currently translated at 96.9% (417 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-05-07 16:19:15 +02:00
Anonymous afb18bc36a Translated using Weblate (Esperanto)
Currently translated at 34.1% (147 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-05-07 16:19:15 +02:00
Anonymous 33a0c5a477 Translated using Weblate (Hindi)
Currently translated at 2.0% (9 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-05-07 16:19:15 +02:00
Anonymous e745863294 Translated using Weblate (Malay)
Currently translated at 58.8% (253 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-05-07 16:19:14 +02:00
Anonymous 33d61d2543 Translated using Weblate (Danish)
Currently translated at 46.0% (198 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-05-07 16:19:14 +02:00
Anonymous 131ae3f0b9 Translated using Weblate (Czech)
Currently translated at 96.2% (414 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-05-07 16:19:14 +02:00
Anonymous 597565c650 Translated using Weblate (Arabic)
Currently translated at 60.9% (262 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-05-07 16:19:13 +02:00
Anonymous 2d4f56114c Translated using Weblate (Serbian)
Currently translated at 2.0% (9 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-05-07 16:19:13 +02:00
Anonymous 30a187efde Translated using Weblate (Turkish)
Currently translated at 73.7% (317 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-05-07 16:19:13 +02:00
Anonymous 9b5518ba86 Translated using Weblate (Bulgarian)
Currently translated at 10.6% (46 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-05-07 16:19:12 +02:00
Anonymous 41710fb73b Translated using Weblate (Telugu)
Currently translated at 50.4% (217 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-05-07 16:19:12 +02:00
Anonymous 04e2b0aad8 Translated using Weblate (Finnish)
Currently translated at 41.3% (178 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-05-07 16:19:12 +02:00
Anonymous 1c75a20dcd Translated using Weblate (Yue (Traditional))
Currently translated at 27.4% (118 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-05-07 16:19:11 +02:00
Anonymous a6b4508bf5 Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.4% (406 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-05-07 16:19:11 +02:00
Anonymous 1009e4c634 Translated using Weblate (Romanian)
Currently translated at 35.1% (151 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-05-07 16:19:11 +02:00
Anonymous 3fc1d7ed3d Translated using Weblate (Hebrew)
Currently translated at 23.4% (101 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-05-07 16:19:10 +02:00
Anonymous ea47e922cc Translated using Weblate (Hungarian)
Currently translated at 25.1% (108 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-05-07 16:19:10 +02:00
Anonymous 7e6383a3bf Translated using Weblate (Croatian)
Currently translated at 96.9% (417 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-05-07 16:19:10 +02:00
Anonymous b11a970012 Translated using Weblate (Swedish)
Currently translated at 30.6% (132 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-05-07 16:19:09 +02:00
Anonymous a05fc1777f Translated using Weblate (Polish)
Currently translated at 87.4% (376 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-05-07 16:19:09 +02:00
Anonymous 0e13aa33af Translated using Weblate (Catalan)
Currently translated at 60.9% (262 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-05-07 16:19:09 +02:00
Anonymous f215901895 Translated using Weblate (Chinese (Traditional))
Currently translated at 96.5% (415 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-05-07 16:19:08 +02:00
Anonymous 2b920442a3 Translated using Weblate (Dutch)
Currently translated at 56.2% (242 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-05-07 16:19:08 +02:00
Anonymous b3f1fe7d99 Translated using Weblate (Vietnamese)
Currently translated at 10.2% (44 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-05-07 16:19:08 +02:00
Anonymous 5c861a27c6 Translated using Weblate (Norwegian Bokmål)
Currently translated at 18.3% (79 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-05-07 16:19:08 +02:00
Anonymous 449b1f82b4 Translated using Weblate (Italian)
Currently translated at 66.9% (288 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-05-07 16:19:07 +02:00
Anonymous eb469e1918 Translated using Weblate (Chinese (Simplified))
Currently translated at 95.1% (409 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-05-07 16:19:07 +02:00
Anonymous befb2310ca Translated using Weblate (Russian)
Currently translated at 96.5% (415 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-05-07 16:19:07 +02:00
Anonymous cadf5028e0 Translated using Weblate (Portuguese)
Currently translated at 94.4% (406 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-05-07 16:19:06 +02:00
Anonymous 8f00b7344f Translated using Weblate (French)
Currently translated at 99.7% (429 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-07 16:19:05 +02:00
Anonymous 3496af1559 Translated using Weblate (Spanish)
Currently translated at 99.7% (429 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-05-07 16:19:05 +02:00
Anonymous d290734099 Translated using Weblate (German)
Currently translated at 84.4% (363 of 430 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-05-07 16:19:05 +02:00
Ado Nishimura 272973922e Translated using Weblate (Japanese)
Currently translated at 87.1% (374 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-05-07 16:17:53 +02:00
Nonoss117 437bf8d1f1 Translated using Weblate (French)
Currently translated at 100.0% (429 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-07 16:17:53 +02:00
gallegonovato 7a4a861778 Translated using Weblate (Spanish)
Currently translated at 100.0% (429 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-05-07 16:17:53 +02:00
Salvatore Gabriele La Grecaandshamoon defc1195b2 PiHole widget: added new Percentage block (#1471)
* PiHole widget: added new Percentage block

* update pi-hole percentage

---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2023-05-07 07:17:46 -07:00
theshaun b4f700c185 Prelim support for QNAP NAS 2023-05-07 20:01:57 +10:00
Anonymous 9b0c0af8b8 Translated using Weblate (Slovenian)
Currently translated at 96.7% (415 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-05-07 06:12:43 +02:00
Anonymous 69309e5be7 Translated using Weblate (Greek)
Currently translated at 25.6% (110 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-05-07 06:12:42 +02:00
Anonymous 5cf06c969a Translated using Weblate (Korean)
Currently translated at 40.5% (174 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-05-07 06:12:42 +02:00
Anonymous 728e0c4a87 Translated using Weblate (Slovak)
Currently translated at 2.0% (9 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-05-07 06:12:42 +02:00
Anonymous 20d161ae19 Translated using Weblate (Thai)
Currently translated at 10.9% (47 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-05-07 06:12:41 +02:00
Anonymous 938f08481f Translated using Weblate (Latvian)
Currently translated at 27.7% (119 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-05-07 06:12:41 +02:00
Anonymous 8de022b721 Translated using Weblate (Japanese)
Currently translated at 3.4% (15 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-05-07 06:12:40 +02:00
Anonymous 527f4ee960 Translated using Weblate (Ukrainian)
Currently translated at 97.2% (417 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-05-07 06:12:40 +02:00
Anonymous cbf98c3fa5 Translated using Weblate (Esperanto)
Currently translated at 34.2% (147 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-05-07 06:12:39 +02:00
Anonymous 196a1f2d47 Translated using Weblate (Hindi)
Currently translated at 2.0% (9 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-05-07 06:12:39 +02:00
Anonymous 14d1196b30 Translated using Weblate (Malay)
Currently translated at 58.9% (253 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-05-07 06:12:38 +02:00
Anonymous e72c9fd83b Translated using Weblate (Danish)
Currently translated at 46.1% (198 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-05-07 06:12:38 +02:00
Anonymous a45ae11ff5 Translated using Weblate (Czech)
Currently translated at 96.5% (414 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-05-07 06:12:38 +02:00
Anonymous d8dd347ad1 Translated using Weblate (Arabic)
Currently translated at 61.0% (262 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-05-07 06:12:37 +02:00
Anonymous 997873baf2 Translated using Weblate (Serbian)
Currently translated at 2.0% (9 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-05-07 06:12:37 +02:00
Anonymous 1b3d51992b Translated using Weblate (Turkish)
Currently translated at 73.8% (317 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-05-07 06:12:36 +02:00
Anonymous 2407dbfaf5 Translated using Weblate (Bulgarian)
Currently translated at 10.7% (46 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-05-07 06:12:36 +02:00
Anonymous b6a9e5b7bb Translated using Weblate (Telugu)
Currently translated at 50.5% (217 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-05-07 06:12:36 +02:00
Anonymous 550bea2aa3 Translated using Weblate (Finnish)
Currently translated at 41.4% (178 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-05-07 06:12:35 +02:00
Anonymous 75de30dd76 Translated using Weblate (Yue (Traditional))
Currently translated at 27.5% (118 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-05-07 06:12:35 +02:00
Anonymous 2acfcfbf2f Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.6% (406 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-05-07 06:12:34 +02:00
Anonymous db93a2128c Translated using Weblate (Romanian)
Currently translated at 35.1% (151 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-05-07 06:12:34 +02:00
Anonymous 33b947a571 Translated using Weblate (Hebrew)
Currently translated at 23.5% (101 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-05-07 06:12:33 +02:00
Anonymous 5fe3c4077f Translated using Weblate (Hungarian)
Currently translated at 25.1% (108 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-05-07 06:12:33 +02:00
Anonymous 0fd92d0433 Translated using Weblate (Croatian)
Currently translated at 97.2% (417 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-05-07 06:12:33 +02:00
Anonymous 94faf3faaf Translated using Weblate (Swedish)
Currently translated at 30.7% (132 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-05-07 06:12:32 +02:00
Anonymous f40e130a0c Translated using Weblate (Polish)
Currently translated at 87.6% (376 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-05-07 06:12:31 +02:00
Anonymous e2bc98af4a Translated using Weblate (Catalan)
Currently translated at 61.0% (262 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-05-07 06:12:31 +02:00
Anonymous 79d568615a Translated using Weblate (Chinese (Traditional))
Currently translated at 96.7% (415 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-05-07 06:12:30 +02:00
Anonymous 70fc037830 Translated using Weblate (Dutch)
Currently translated at 56.4% (242 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-05-07 06:12:30 +02:00
Anonymous 757b2db0bc Translated using Weblate (Vietnamese)
Currently translated at 10.2% (44 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-05-07 06:12:30 +02:00
Anonymous b7f8f5d6a6 Translated using Weblate (Norwegian Bokmål)
Currently translated at 18.4% (79 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-05-07 06:12:29 +02:00
Anonymous 48d6fa7360 Translated using Weblate (Italian)
Currently translated at 67.1% (288 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-05-07 06:12:29 +02:00
Anonymous 991c33b410 Translated using Weblate (Chinese (Simplified))
Currently translated at 95.3% (409 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-05-07 06:12:28 +02:00
Anonymous 2ecdcf517c Translated using Weblate (Russian)
Currently translated at 96.7% (415 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-05-07 06:12:28 +02:00
Anonymous afc1584ffe Translated using Weblate (Portuguese)
Currently translated at 94.6% (406 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-05-07 06:12:27 +02:00
Anonymous 98f1e29dc5 Translated using Weblate (French)
Currently translated at 97.2% (417 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-07 06:12:27 +02:00
Anonymous 227fb3efee Translated using Weblate (Spanish)
Currently translated at 97.2% (417 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-05-07 06:12:27 +02:00
Anonymous de47e87461 Translated using Weblate (German)
Currently translated at 84.6% (363 of 429 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-05-07 06:12:26 +02:00
Andreandshamoon acc19ccca1 Add Tailscale Widget (#1468)
* Added tailscale widget

* finished tailscale widget

* Consolidated date comparison to it's own function

* Modified to follow Airbnb's style guide

* Removed refresh and added translations

* fix some tailscale translation strings

---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2023-05-06 21:09:33 -07:00
Dan 142be300e0 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (417 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-05-06 09:51:26 +02:00
Milo Ivir 2f4a5adb3e Translated using Weblate (Croatian)
Currently translated at 100.0% (417 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-05-06 09:51:25 +02:00
Eryk Michalak fa70b606e5 Translated using Weblate (Polish)
Currently translated at 90.1% (376 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-05-06 09:51:25 +02:00
Nonoss117 3e18be8709 Translated using Weblate (French)
Currently translated at 100.0% (417 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-06 09:51:24 +02:00
gallegonovato fc75fea5ad Translated using Weblate (Spanish)
Currently translated at 100.0% (417 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-05-06 09:51:24 +02:00
Anonymous 045620aa8c Translated using Weblate (Slovenian)
Currently translated at 99.5% (415 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-05-04 05:14:32 +02:00
Anonymous 17e97df0f3 Translated using Weblate (Greek)
Currently translated at 26.3% (110 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-05-04 05:14:32 +02:00
Anonymous 77c99e42a4 Translated using Weblate (Korean)
Currently translated at 41.7% (174 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-05-04 05:14:32 +02:00
Anonymous ba8cb2d148 Translated using Weblate (Slovak)
Currently translated at 2.1% (9 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-05-04 05:14:31 +02:00
Anonymous 14082aa58c Translated using Weblate (Thai)
Currently translated at 11.2% (47 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-05-04 05:14:31 +02:00
Anonymous e7ac03f10d Translated using Weblate (Latvian)
Currently translated at 28.5% (119 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-05-04 05:14:31 +02:00
Anonymous 87452abd03 Translated using Weblate (Japanese)
Currently translated at 3.5% (15 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-05-04 05:14:30 +02:00
Anonymous 12e9566254 Translated using Weblate (Ukrainian)
Currently translated at 99.5% (415 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-05-04 05:14:30 +02:00
Anonymous ed2ed8bb96 Translated using Weblate (Esperanto)
Currently translated at 35.2% (147 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-05-04 05:14:30 +02:00
Anonymous 790a964c69 Translated using Weblate (Hindi)
Currently translated at 2.1% (9 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-05-04 05:14:29 +02:00
Anonymous d76fdc828d Translated using Weblate (Malay)
Currently translated at 60.6% (253 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-05-04 05:14:29 +02:00
Anonymous 12de7b1c8c Translated using Weblate (Danish)
Currently translated at 47.4% (198 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-05-04 05:14:29 +02:00
Anonymous 60a7fc7700 Translated using Weblate (Czech)
Currently translated at 99.2% (414 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-05-04 05:14:29 +02:00
Anonymous 552700d7e1 Translated using Weblate (Arabic)
Currently translated at 62.8% (262 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-05-04 05:14:28 +02:00
Anonymous 0ed5935e2d Translated using Weblate (Serbian)
Currently translated at 2.1% (9 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-05-04 05:14:28 +02:00
Anonymous 700717b2b7 Translated using Weblate (Turkish)
Currently translated at 76.0% (317 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-05-04 05:14:28 +02:00
Anonymous d11d2ce75a Translated using Weblate (Bulgarian)
Currently translated at 11.0% (46 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-05-04 05:14:27 +02:00
Anonymous 8dc4678584 Translated using Weblate (Telugu)
Currently translated at 52.0% (217 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-05-04 05:14:27 +02:00
Anonymous 7d1a393b44 Translated using Weblate (Finnish)
Currently translated at 42.6% (178 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-05-04 05:14:27 +02:00
Anonymous 1b19039da3 Translated using Weblate (Yue (Traditional))
Currently translated at 28.2% (118 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-05-04 05:14:26 +02:00
Anonymous 37a5c586c0 Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.3% (406 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-05-04 05:14:26 +02:00
Anonymous 03ea447c75 Translated using Weblate (Romanian)
Currently translated at 36.2% (151 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-05-04 05:14:26 +02:00
Anonymous 2bed9ae486 Translated using Weblate (Hebrew)
Currently translated at 24.2% (101 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-05-04 05:14:25 +02:00
Anonymous 125a3a0ce7 Translated using Weblate (Hungarian)
Currently translated at 25.8% (108 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-05-04 05:14:25 +02:00
Anonymous 2a2597a72d Translated using Weblate (Croatian)
Currently translated at 99.5% (415 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-05-04 05:14:25 +02:00
Anonymous cc59181163 Translated using Weblate (Swedish)
Currently translated at 31.6% (132 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-05-04 05:14:24 +02:00
Anonymous 5e1d916b6f Translated using Weblate (Polish)
Currently translated at 70.0% (292 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-05-04 05:14:24 +02:00
Anonymous f1f355ecd1 Translated using Weblate (Catalan)
Currently translated at 62.8% (262 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-05-04 05:14:24 +02:00
Anonymous e59152db06 Translated using Weblate (Chinese (Traditional))
Currently translated at 99.5% (415 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-05-04 05:14:24 +02:00
Anonymous 2bf597e385 Translated using Weblate (Dutch)
Currently translated at 58.0% (242 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-05-04 05:14:23 +02:00
Anonymous 1749adc1ee Translated using Weblate (Vietnamese)
Currently translated at 10.5% (44 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-05-04 05:14:23 +02:00
Anonymous 68a8310406 Translated using Weblate (Norwegian Bokmål)
Currently translated at 18.9% (79 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-05-04 05:14:23 +02:00
Anonymous d40096cb0f Translated using Weblate (Italian)
Currently translated at 69.0% (288 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-05-04 05:14:22 +02:00
Anonymous c2d22e4839 Translated using Weblate (Chinese (Simplified))
Currently translated at 98.0% (409 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-05-04 05:14:22 +02:00
Anonymous 4f3b0e7bcb Translated using Weblate (Russian)
Currently translated at 99.5% (415 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-05-04 05:14:22 +02:00
Anonymous 75b7a5927a Translated using Weblate (Portuguese)
Currently translated at 97.3% (406 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-05-04 05:14:21 +02:00
Anonymous 5d080e218f Translated using Weblate (French)
Currently translated at 99.5% (415 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-05-04 05:14:21 +02:00
Anonymous cd61166449 Translated using Weblate (Spanish)
Currently translated at 99.5% (415 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-05-04 05:14:21 +02:00
Anonymous bd2f196ccd Translated using Weblate (German)
Currently translated at 87.0% (363 of 417 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-05-04 05:14:20 +02:00
Georges-Antoine Assiandshamoon 14a6ae4523 Replace fields in Nextcloud widget with file count and shared item count (#1455)
* New file and share count fields for Nextcloud

* Support "deprecated fields" for nextcloud widget

* Move to explicit checks

* Way more explicit render rules

---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2023-05-03 20:13:36 -07:00
Anonymous 27837c6db8 Translated using Weblate (Czech)
Currently translated at 99.7% (414 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-05-03 06:56:33 +02:00
Andrej Kralj 03b347fc88 Translated using Weblate (Slovenian)
Currently translated at 100.0% (415 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-05-03 06:56:30 +02:00
Marek 78efc220c4 Translated using Weblate (Czech)
Currently translated at 99.7% (414 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-05-03 06:56:30 +02:00
Chun Chi Hsieh fbd575bf70 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (415 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-05-03 06:56:30 +02:00
shamoon 7af9654c19 Update bug_report.yml 2023-05-02 10:38:07 -07:00
shamoon bbc343abae Merge pull request #1448 from juanmanuelbc/space
Fix: save space when services or bookmarks are not in use
2023-05-02 09:43:32 -07:00
Juan Manuel Bennàssar Carretero 3556d7c183 Fix: save space when services or bookmarks are not in use 2023-05-02 08:13:53 -07:00
Jag_k 57854ed168 Translated using Weblate (Russian)
Currently translated at 100.0% (415 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-05-02 09:49:03 +02:00
shamoonandDavid 442a76a57e Handle duplicate keys for bookmarks
Closes #1445

Co-Authored-By: David <davidsmejia@gmail.com>
2023-05-01 19:54:33 -07:00
shamoon dcb9d9e45c Merge pull request #1443 from davidsmejia/davidsmejia/fix-service-group-icons
fallback for --tw-text-opacity
2023-05-01 15:06:30 -07:00
davidsmejia 1de940dd90 fallback for --tw-text-opacity 2023-05-01 17:58:01 -04:00
shamoon 6867258449 Fix overflow non-square icons 2023-05-01 11:29:35 -07:00
98 changed files with 5358 additions and 1290 deletions

No files matched your search

+9 -2
View File
@@ -1,7 +1,7 @@
name: Bug report
description: Create a report to help us improve
title: "[Bug] "
labels: ["bug"]
labels: ["bug, unconfirmed"]
body:
- type: markdown
attributes:
@@ -69,11 +69,18 @@ body:
attributes:
label: Browser Logs
description: Please review and provide any logs from the browser, if relevant
- type: textarea
id: troubleshooting
attributes:
label: Troubleshooting
description: Please include output from your [troubleshooting tests](https://gethomepage.dev/en/more/troubleshooting/#service-widget-errors). If this is a service widget issue and you do not include any information here your issue will be closed. If it is not, indicate e.g. 'n/a'
validations:
required: true
- type: textarea
id: other
attributes:
label: Other
description: Please include output from your troubleshooting tests, if relevant. Include any other relevant details. E.g. service version or API version, docker version, etc.
description: Include any other relevant details. E.g. service version or API version, docker version, etc.
- type: checkboxes
id: pre-flight
attributes:
+5 -1
View File
@@ -3,7 +3,10 @@
<!--
Please include a summary of the change. Screenshots and / or videos can also be helpful if appropriate.
New service widgets should include example(s) of relevant relevant API output as well as a PR to the docs for the new widget. See the development guidelines for new widgets: https://gethomepage.dev/en/more/development/#service-widget-guidelines
*** Please see the development guidelines for new widgets: https://gethomepage.dev/en/more/development/#service-widget-guidelines
*** If you do not follow these guidelines your PR will likely be closed without review.
New service widgets should include example(s) of relevant relevant API output as well as a PR to the docs for the new widget.
-->
Closes # (issue)
@@ -22,5 +25,6 @@ What type of change does your PR introduce to Homepage?
## Checklist:
- [ ] If adding a service widget or a change that requires it, I have added a corresponding PR to the [documentation](https://github.com/benphelps/homepage-docs) here:
- [ ] If adding a new widget I have reviewed the [guidelines](https://gethomepage.dev/en/more/development/#service-widget-guidelines).
- [ ] If applicable, I have checked that all tests pass with e.g. `pnpm lint`.
- [ ] If applicable, I have tested my code for new features & regressions on both mobile & desktop devices, using the latest version of major browsers.
+69 -7
View File
@@ -179,18 +179,22 @@
"sonarr": {
"wanted": "مطلوب",
"queued": "في الإنتظار",
"series": "سلسلة"
"series": "سلسلة",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "مطلوب",
"missing": "مفقود",
"queued": "في الإنتظار",
"movies": "أفلام"
"movies": "أفلام",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "مطلوب",
"queued": "في الإنتظار",
"albums": "ألبومات"
"artists": "Artists"
},
"readarr": {
"wanted": "مطلوب",
@@ -220,7 +224,8 @@
"pihole": {
"queries": "الاستعلامات",
"blocked": "محظور",
"gravity": "الجاذبية"
"gravity": "الجاذبية",
"blocked_percent": "Blocked %"
},
"adguard": {
"queries": "الاستعلامات",
@@ -295,12 +300,16 @@
},
"glances": {
"cpu": "معالج",
"mem": "الذاكرة",
"wait": "الرجاء الإنتظار",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"quicklaunch": {
"bookmark": "مفضلة",
@@ -513,7 +522,9 @@
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+69 -7
View File
@@ -117,18 +117,22 @@
"sonarr": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
"series": "Series",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Wanted",
"queued": "Queued",
"movies": "Movies",
"missing": "Missing"
"missing": "Missing",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Wanted",
"queued": "Queued",
"albums": "Albums"
"artists": "Artists"
},
"readarr": {
"wanted": "Wanted",
@@ -158,7 +162,8 @@
"pihole": {
"queries": "Queries",
"blocked": "Blocked",
"gravity": "Gravity"
"gravity": "Gravity",
"blocked_percent": "Blocked %"
},
"adguard": {
"queries": "Queries",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Please wait",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"changedetectionio": {
"totalObserved": "Total Observed",
@@ -513,7 +522,9 @@
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"charge_power": "Charger",
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+69 -7
View File
@@ -26,7 +26,9 @@
"sonarr": {
"wanted": "Volgut",
"queued": "En cua",
"series": "Sèries"
"series": "Sèries",
"queue": "Queue",
"unknown": "Unknown"
},
"speedtest": {
"ping": "Ping",
@@ -99,7 +101,9 @@
"wanted": "Volgut",
"queued": "En cua",
"movies": "Pel·lícules",
"missing": "Faltant"
"missing": "Faltant",
"queue": "Queue",
"unknown": "Unknown"
},
"readarr": {
"wanted": "Volgut",
@@ -125,7 +129,8 @@
"pihole": {
"queries": "Consultes",
"blocked": "Bloquejat",
"gravity": "Gravity"
"gravity": "Gravity",
"blocked_percent": "Blocked %"
},
"portainer": {
"running": "Executant",
@@ -172,7 +177,7 @@
"lidarr": {
"wanted": "Volgut",
"queued": "En cua",
"albums": "Àlbums"
"artists": "Artists"
},
"adguard": {
"queries": "Consultes",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "Processador",
"mem": "Memòria",
"wait": "Si us plau, espereu",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"changedetectionio": {
"totalObserved": "Total d'observats",
@@ -513,7 +522,9 @@
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Supervisió",
"updates": "Actualitzacions"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+122 -60
View File
@@ -6,7 +6,7 @@
"downloads": "Fronta"
},
"truenas": {
"load": "Vytížení systému",
"load": "Zatížení systému",
"uptime": "Doba spuštění",
"alerts": "Upozornění",
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
@@ -34,32 +34,32 @@
"total": "Celkem",
"free": "Volné",
"used": "Využité",
"load": "Vytížení",
"load": "Zatížení",
"mem": "RAM",
"max": "Max",
"uptime": "UP",
"months": "mo",
"max": "Max.",
"uptime": "BĚŽÍ",
"months": "měs.",
"days": "d",
"hours": "h",
"minutes": "m",
"temp": "TEMP"
"temp": "TEPLOTA"
},
"unifi": {
"users": "Uživatelé",
"uptime": "Čas od startu systému",
"uptime": "Doba provozu systému",
"days": "Dnů",
"wan": "WAN",
"lan": "LAN",
"wlan": "WLAN",
"devices": "Zařízení",
"lan_devices": "LAN Zařízení",
"wlan_devices": "WLAN Zařízení",
"lan_users": "LAN Uživatelé",
"wlan_users": "WLAN Uživatelé",
"lan_devices": "Zařízení LAN",
"wlan_devices": "Zařízení WLAN",
"lan_users": "Uživatelé LAN",
"wlan_users": "Uživatelé WLAN",
"up": "BĚŽÍ",
"down": "NEBĚŽÍ",
"wait": "Počkejte prosím",
"empty_data": "Status podsystému neznámý"
"empty_data": "Stav podsystému neznámý"
},
"docker": {
"rx": "RX",
@@ -70,7 +70,7 @@
"error": "Chyba",
"unknown": "Neznámý",
"running": "Běží",
"starting": "Startuje",
"starting": "Spouští se",
"unhealthy": "Nezdravý",
"not_found": "Nenalezen",
"exited": "Ukončen",
@@ -79,13 +79,13 @@
},
"emby": {
"playing": "Přehrává",
"transcoding": "Transkódování",
"bitrate": "Bitrate",
"transcoding": "Překódovávání",
"bitrate": "Přenosová rychlost",
"no_active": "Žádný aktivní stream",
"movies": "Filmy",
"series": "Seriály",
"episodes": "Epizody",
"songs": "Písničky"
"songs": "Skladby"
},
"changedetectionio": {
"totalObserved": "Celkem zjištěno",
@@ -93,8 +93,8 @@
},
"tautulli": {
"playing": "Přehrává",
"transcoding": "Transkódování",
"bitrate": "Bitrate",
"transcoding": "Překódovávání",
"bitrate": "Přenosová rychlost",
"no_active": "Žádný aktivní stream"
},
"nzbget": {
@@ -106,7 +106,7 @@
"streams": "Aktivní streamy",
"movies": "Filmy",
"tv": "Seriály",
"albums": "Albums"
"albums": "Alba"
},
"sabnzbd": {
"rate": "Rychlost",
@@ -121,8 +121,8 @@
"transmission": {
"download": "Stahování",
"upload": "Nahrávání",
"leech": "Leecherů",
"seed": "Seedů"
"leech": "Leechované",
"seed": "Seedované"
},
"qbittorrent": {
"download": "Stahování",
@@ -133,18 +133,22 @@
"sonarr": {
"wanted": "Hledané",
"queued": "Ve frontě",
"series": "Seriály"
"series": "Seriály",
"unknown": "Unknown",
"queue": "Queue"
},
"radarr": {
"wanted": "Hledané",
"missing": "Chybějící",
"queued": "Ve frontě",
"movies": "Filmy"
"movies": "Filmy",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Hledané",
"queued": "Ve frontě",
"albums": "Alba"
"artists": "Artists"
},
"readarr": {
"wanted": "Hledané",
@@ -174,7 +178,8 @@
"pihole": {
"queries": "Dotazy",
"blocked": "Blokováno",
"gravity": "Gravity"
"gravity": "Gravity",
"blocked_percent": "Blokováno"
},
"adguard": {
"queries": "Dotazy",
@@ -188,9 +193,9 @@
"ping": "Ping"
},
"portainer": {
"running": "Běží",
"running": "Spuštěno",
"stopped": "Zastaveno",
"total": "Celkově"
"total": "Celkem"
},
"traefik": {
"routers": "Routery",
@@ -307,12 +312,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "RAM",
"wait": "Prosím počkejte",
"temp": "TEMP",
"uptime": "UP",
"temp": "TEPLOTA",
"uptime": "BĚŽÍ",
"days": "d",
"hours": "h"
"hours": "h",
"total": "Total",
"free": "Free",
"used": "Used",
"load": "Load",
"warn": "Warn"
},
"quicklaunch": {
"bookmark": "Záložka",
@@ -327,16 +336,16 @@
"up_to_date": "Žádné",
"available_update": "Systém",
"updates": "Aktualizace",
"child_bridges": "Podřadné můstky",
"child_bridges": "Podřízené můstky",
"child_bridges_status": "{{ok}}/{{total}}",
"up": "Zapnutý",
"pending": "Čeká se",
"down": "Vypnutý"
},
"watchtower": {
"containers_scanned": "Naskenováno",
"containers_scanned": "Prohledáno",
"containers_updated": "Aktualizováno",
"containers_failed": "Chyba"
"containers_failed": "Selhalo"
},
"autobrr": {
"approvedPushes": "Schváleno",
@@ -368,7 +377,7 @@
"ping": "Odezva"
},
"scrutiny": {
"passed": "Přijato",
"passed": "Úspěšné",
"failed": "Neúspěšné",
"unknown": "Neznámé"
},
@@ -378,15 +387,15 @@
},
"deluge": {
"upload": "Nahrávání",
"leech": "Leech",
"seed": "Seed",
"leech": "Leechované",
"seed": "Seedované",
"download": "Stahování"
},
"flood": {
"download": "Stahování",
"upload": "Nahrávání",
"leech": "Leech",
"seed": "Seed"
"leech": "Leechované",
"seed": "Seedované"
},
"tdarr": {
"queue": "Fronta",
@@ -416,8 +425,8 @@
"downloadstation": {
"download": "Stahování",
"upload": "Nahrávání",
"leech": "Leech",
"seed": "Seed"
"leech": "Leechované",
"seed": "Seedované"
},
"mikrotik": {
"cpuLoad": "Zatížení procesoru",
@@ -426,18 +435,18 @@
"numberOfLeases": "Pronájmy"
},
"xteve": {
"streams_all": "Všechny proudy",
"streams_active": "Aktivní proudy",
"streams_all": "Všechny streamy",
"streams_active": "Aktivní streamy",
"streams_xepg": "Kanály XEPG"
},
"opnsense": {
"cpu": "Zatížení procesoru",
"memory": "Aktivní paměť",
"wanUpload": "Nahrávání WAN",
"wanDownload": "WAN Stažení"
"wanDownload": "Stahování WAN"
},
"moonraker": {
"print_progress": "Progres",
"print_progress": "Průběh",
"printer_state": "Stav tiskárny",
"print_status": "Stav tisku",
"layers": "Vrstvy"
@@ -493,7 +502,7 @@
"people": "Lidé"
},
"diskstation": {
"days": "Dni",
"days": "dní",
"uptime": "Doba provozu",
"volumeAvailable": "K dispozici"
},
@@ -504,16 +513,18 @@
"time": "Čas"
},
"grafana": {
"dashboards": "Přístrojové panely",
"dashboards": "Nástěnky",
"datasources": "Zdroje dat",
"totalalerts": "Celkový počet upozornění",
"alertstriggered": "Spuštěné výstrahy"
},
"nextcloud": {
"cpuload": "CPU zatížení",
"cpuload": "Zatížení procesoru",
"memoryusage": "Využití paměti",
"freespace": "Volný prostor",
"activeusers": "Aktivní uživatelé"
"activeusers": "Aktivní uživatelé",
"numfiles": "Soubory",
"numshares": "Sdílené položky"
},
"kopia": {
"status": "Stav",
@@ -565,22 +576,73 @@
"booksDuration": "Trvání"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
"people_home": "Lidí doma",
"lights_on": "Rozsvícená světla",
"switches_on": "Zapnuté přepínače"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
"subscriptions": "Odběry",
"unread": "Nepřečteno"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
"shows": "Pořady",
"recordings": "Nahrávky",
"scheduled": "Naplánováno",
"passes": "Průchody"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
"monitoring": "Sledování",
"updates": "Aktualizace"
},
"tailscale": {
"address": "Adresa",
"expires": "Vyprší",
"never": "Nikdy",
"last_seen": "Naposledy viděno",
"now": "Nyní",
"years": "{{number}}r",
"weeks": "{{number}}t",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "Před {{value}}"
},
"qnap": {
"memUsage": "Využití paměti",
"systemTempC": "Teplota systému",
"poolUsage": "Využití fondu",
"cpuUsage": "Využití procesoru",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Prům. zatížení",
"memory": "Využití paměti",
"wanStatus": "Stav WAN",
"up": "Běží",
"down": "Neběží",
"temp": "Teplota",
"disk": "Využití disku",
"wanIP": "IP WAN"
},
"caddy": {
"upstreams": "Odesílání dat",
"requests": "Aktuální požadavky",
"requests_failed": "Selhavší požadavky"
},
"evcc": {
"watt_hour": "Wh",
"pv_power": "Produkce",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+69 -7
View File
@@ -9,12 +9,14 @@
"queued": "I Kø",
"movies": "Film",
"wanted": "Ønskede",
"missing": "Mangler"
"missing": "Mangler",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Ønsket",
"queued": "I Kø",
"albums": "Albums"
"artists": "Artists"
},
"jellyseerr": {
"available": "Tilgængelig",
@@ -68,12 +70,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "RAM",
"wait": "Vent venligst",
"uptime": "UP",
"days": "d",
"hours": "h",
"temp": "TEMP"
"temp": "TEMP",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"wmo": {
"1-day": "Hovedsageligt solrigt",
@@ -260,7 +266,9 @@
"sonarr": {
"wanted": "Ønsket",
"queued": "I Kø",
"series": "Serier"
"series": "Serier",
"queue": "Queue",
"unknown": "Unknown"
},
"readarr": {
"wanted": "Ønskede",
@@ -279,7 +287,8 @@
"pihole": {
"blocked": "Blokerede",
"gravity": "Gravity",
"queries": "Forespørgsler"
"queries": "Forespørgsler",
"blocked_percent": "Blocked %"
},
"portainer": {
"running": "Kørende",
@@ -513,7 +522,9 @@
"memoryusage": "Memory Usage",
"cpuload": "Cpu Load",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"never": "Never",
"last_seen": "Last Seen",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+112 -50
View File
@@ -5,7 +5,7 @@
"status": "Status",
"url": "URL",
"information": "Informationen",
"raw_error": "Unbearbeiteter Fehler",
"raw_error": "Roher Fehler",
"response_data": "Empfangene Daten"
},
"search": {
@@ -14,14 +14,14 @@
"resources": {
"total": "Gesamt",
"free": "Frei",
"used": "Gebraucht",
"used": "In Verwendung",
"load": "Last",
"cpu": "CPU",
"mem": "RAM",
"cpu": "Prozessor",
"mem": "Speicher",
"temp": "TEMP",
"max": "Max",
"uptime": "UP",
"months": "mo",
"months": "Mo.",
"days": "d",
"hours": "h",
"minutes": "m"
@@ -29,27 +29,27 @@
"docker": {
"rx": "Rx",
"tx": "Tx",
"mem": "Mem",
"mem": "Speicher",
"cpu": "Prozessor",
"offline": "Offline",
"error": "Fehler",
"unknown": "Unbekannt",
"running": "Running",
"starting": "Starting",
"running": "Laufend",
"starting": "Startet",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"not_found": "Nicht gefunden",
"exited": "Beendet",
"partial": "Teilweise",
"healthy": "Healthy"
},
"emby": {
"playing": "Spielen",
"transcoding": "Transcodierung",
"playing": "Aktuelle Wiedergaben",
"transcoding": "Transkodieren",
"bitrate": "Bitrate",
"no_active": "Keine aktiven Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"movies": "Filme",
"series": "Serien",
"episodes": "Folgen",
"songs": "Songs"
},
"tautulli": {
@@ -66,13 +66,17 @@
"sonarr": {
"wanted": "Gesucht",
"queued": "In Warteschlange",
"series": "Serien"
"series": "Serien",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Gesucht",
"queued": "In Warteschlange",
"movies": "Filme",
"missing": "Fehlt"
"missing": "Fehlt",
"queue": "Queue",
"unknown": "Unknown"
},
"readarr": {
"wanted": "Gesucht",
@@ -92,7 +96,8 @@
"pihole": {
"queries": "Abfragen",
"blocked": "Blockiert",
"gravity": "Gravity"
"gravity": "Gravity",
"blocked_percent": "Geblockt %"
},
"speedtest": {
"upload": "Upload",
@@ -172,7 +177,7 @@
"lidarr": {
"wanted": "Gesucht",
"queued": "In Warteschlange",
"albums": "Alben"
"artists": "Artists"
},
"adguard": {
"queries": "Anfragen",
@@ -215,30 +220,34 @@
"wan": "WAN",
"lan_users": "LAN Benutzer",
"wlan_users": "WLAN Benutzer",
"up": "SENDEN",
"up": "BEREIT",
"down": "EMPFANGEN",
"wait": "Bitte warten",
"lan": "LAN",
"wlan": "WLAN",
"devices": "Geräte",
"lan_devices": "LAN-Geräte",
"wlan_devices": "WLAN Geräte",
"empty_data": "Subsystem status unbekannt"
"wlan_devices": "WLAN-Geräte",
"empty_data": "Subsystem-Status unbekannt"
},
"plex": {
"streams": "Aktive Streams",
"movies": "Filme",
"tv": "TV Sendungen",
"albums": "Albums"
"albums": "Alben"
},
"glances": {
"cpu": "Prozessor",
"mem": "RAM",
"wait": "Bitte warten",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"days": "T",
"hours": "S",
"load": "Auslastung",
"warn": "Warnung",
"total": "Gesamt",
"free": "Frei",
"used": "Verwendet"
},
"changedetectionio": {
"totalObserved": "Gesamt beobachtet",
@@ -318,7 +327,7 @@
"child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"pending": "Ausstehend",
"down": "Down"
},
"autobrr": {
@@ -513,7 +522,9 @@
"cpuload": "CPU Last",
"memoryusage": "RAM Verbrauch",
"freespace": "Freier Speicher",
"activeusers": "Aktive Nutzer"
"activeusers": "Aktive Nutzer",
"numfiles": "Dateien",
"numshares": "Geteilte Elemente"
},
"kopia": {
"status": "Status",
@@ -523,12 +534,12 @@
"failed": "Fehlgeschlagen"
},
"unmanic": {
"active_workers": "Active Workers",
"total_workers": "Total Workers",
"records_total": "Queue Length"
"active_workers": "Aktive Worker",
"total_workers": "Alle Worker",
"records_total": "Länge der Warteschlange"
},
"healthchecks": {
"grace": "In Grace Period",
"grace": "In Karenzzeit",
"new": "Neu",
"up": "Online",
"down": "Offline",
@@ -542,9 +553,9 @@
"nodes": "Nodes"
},
"prometheus": {
"targets_up": "Targets Up",
"targets_down": "Targets Down",
"targets_total": "Total Targets"
"targets_up": "Ziele Up",
"targets_down": "Ziele Down",
"targets_total": "Alle Ziele"
},
"minecraft": {
"players": "Spieler",
@@ -554,33 +565,84 @@
"down": "Offline"
},
"ghostfolio": {
"gross_percent_max": "All time",
"gross_percent_max": "Alle Zeit",
"gross_percent_today": "Heute",
"gross_percent_1y": "Ein Jahr"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
"books": "Bücher",
"podcastsDuration": "Dauer",
"booksDuration": "Dauer"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
"people_home": "Personen daheim",
"lights_on": "Lichter an",
"switches_on": "Schalter an"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
"subscriptions": "Abonnements",
"unread": "Ungelesen"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
"recordings": "Aufnahmen",
"scheduled": "Geplant",
"passes": "Pässe"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
"monitoring": "Überwacht",
"updates": "Aktualisierungen"
},
"tailscale": {
"address": "Adresse",
"weeks": "{{number}}W",
"days": "{{number}}T",
"hours": "{{number}}S",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "Vor {{value}}",
"expires": "Läuft ab",
"last_seen": "Zuletzt gesehen",
"never": "Nie",
"now": "Jetzt",
"years": "{{number}}J"
},
"qnap": {
"cpuUsage": "CPU Nutzung",
"memUsage": "MEM Nutzung",
"systemTempC": "System Temp",
"poolUsage": "Pool Nutzung",
"volumeUsage": "Volume Usage",
"invalid": "Ungültig"
},
"pfsense": {
"load": "Durchschnittliche Last",
"temp": "Temp",
"disk": "Datenträgernutzung",
"wanIP": "WAN IP",
"memory": "Speichernutzung",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Aktuelle Anfragen",
"requests_failed": "Fehlgeschlagene Anfragen"
},
"evcc": {
"watt_hour": "Wh",
"pv_power": "Produktion",
"battery_soc": "Batterie",
"grid_power": "Grid",
"home_power": "Verbrauch",
"charge_power": "Ladegerät"
},
"pialert": {
"total": "Gesamt",
"connected": "Verbunden",
"new_devices": "Neue Geräte",
"down_alerts": "Down Alarme"
}
}
+97 -35
View File
@@ -2,7 +2,7 @@
"resources": {
"used": "χρησιμοποιημένο",
"load": "Φόρτωση",
"cpu": "CPU",
"cpu": "Επεξεργαστής",
"mem": "MEM",
"temp": "ΘΕΡΜΟΚΡΑΣΪΑ",
"total": "Σύνολο",
@@ -149,8 +149,8 @@
"songs": "Τραγούδια"
},
"flood": {
"download": "Κατέβασμα",
"upload": "Ανέβασμα",
"download": "Λήξη",
"upload": "Φόρτωση",
"leech": "Αφαίμαξη",
"seed": "Σπείρε"
},
@@ -159,21 +159,21 @@
"diffsDetected": "Εντοπίστηκαν διαφορές"
},
"tautulli": {
"playing": "Παίζει",
"transcoding": "Διακωδικοποίηση",
"playing": "Αναπαράγει",
"transcoding": "Μετακωδικοποίηση",
"bitrate": "Ρυθμός bit",
"no_active": "Δεν υπάρχουν ενεργές ροές"
},
"nzbget": {
"rate": "βαθμός",
"rate": "Ρυθμός",
"remaining": "Υπόλοιπο",
"downloaded": "Κατεβασμένο"
},
"plex": {
"streams": "Ενεργά Streams",
"streams": "Ενεργές Ροές",
"movies": "Ταινίες",
"tv": "Σειρές",
"albums": "Albums"
"tv": "Τηλεοπτικές εκπομπές",
"albums": "Άλμπουμ"
},
"sabnzbd": {
"rate": "Βαθμός",
@@ -199,39 +199,43 @@
},
"deluge": {
"download": "Κατέβασμα",
"upload": "Upload",
"upload": "Ανέβασμα",
"leech": "Leech",
"seed": "Seed"
},
"sonarr": {
"series": "Series",
"wanted": "Wanted",
"queued": "Queued"
"series": "Σειρές",
"wanted": "Επιθυμούντε",
"queued": "Σε σειρά",
"queue": "Queue",
"unknown": "Unknown"
},
"downloadstation": {
"download": "Download",
"upload": "Upload",
"download": "Μεταφόρτωση",
"upload": "Φόρτωση",
"leech": "Leech",
"seed": "Seed"
},
"radarr": {
"wanted": "Wanted",
"missing": "Missing",
"queued": "Queued",
"movies": "Movies"
"wanted": "Επιθυμούντε",
"missing": "Απουσιάζει",
"queued": "Σε σειρά",
"movies": "Ταινίες",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Wanted",
"queued": "Queued",
"albums": "Albums"
"wanted": "Θέλετε",
"queued": "Στη σειρά",
"artists": "Artists"
},
"readarr": {
"wanted": "Wanted",
"queued": "Queued",
"books": "Books"
"wanted": "Θέλετε",
"queued": "Στη σειρά",
"books": "Βιβλία"
},
"bazarr": {
"missingEpisodes": "Missing Episodes",
"missingEpisodes": "Επεισόδια που λείπουν",
"missingMovies": "Missing Movies"
},
"ombi": {
@@ -253,7 +257,8 @@
"pihole": {
"queries": "Queries",
"blocked": "Blocked",
"gravity": "Gravity"
"gravity": "Gravity",
"blocked_percent": "Blocked %"
},
"adguard": {
"queries": "Queries",
@@ -354,12 +359,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Please wait",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used",
"load": "Load"
},
"quicklaunch": {
"bookmark": "Bookmark",
@@ -530,7 +539,9 @@
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -570,17 +581,68 @@
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
"subscriptions": "Συνδρομές",
"unread": "Αδιάβαστο"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"shows": "Εκπομπές",
"recordings": "Εγγραφές",
"scheduled": "Προγραμματισμένα",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"never": "Never",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"expires": "Expires",
"last_seen": "Last Seen",
"now": "Now",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "Χρήση επεξεργαστή",
"memUsage": "Χρήση μνήμης",
"systemTempC": "Θερμοκρασία συστήματος",
"poolUsage": "Χρήση πισίνας",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Τρέχοντα αιτήματα",
"requests_failed": "Αποτυχημένα αιτήματα"
},
"evcc": {
"watt_hour": "Wh",
"pv_power": "Παραγωγή",
"battery_soc": "Μπαταρία",
"grid_power": "Πλέγμα",
"home_power": "Κατανάλωση",
"charge_power": "Φορτιστής"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+67 -5
View File
@@ -91,6 +91,14 @@
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"flood": {
"download": "Download",
@@ -102,6 +110,11 @@
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"changedetectionio": {
"totalObserved": "Total Observed",
"diffsDetected": "Diffs Detected"
@@ -158,6 +171,14 @@
"leech": "Leech",
"seed": "Seed"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"deluge": {
"download": "Download",
"upload": "Upload",
@@ -173,18 +194,22 @@
"sonarr": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
"series": "Series",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Wanted",
"missing": "Missing",
"queued": "Queued",
"movies": "Movies"
"movies": "Movies",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Wanted",
"queued": "Queued",
"albums": "Albums"
"artists": "Artists"
},
"readarr": {
"wanted": "Wanted",
@@ -211,9 +236,16 @@
"approved": "Approved",
"available": "Available"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"pihole": {
"queries": "Queries",
"blocked": "Blocked",
"blocked_percent": "Blocked %",
"gravity": "Gravity"
},
"adguard": {
@@ -232,6 +264,20 @@
"stopped": "Stopped",
"total": "Total"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"tdarr": {
"queue": "Queue",
"processed": "Processed",
@@ -315,10 +361,14 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"load": "Load",
"wait": "Please wait",
"temp": "TEMP",
"warn": "Warn",
"uptime": "UP",
"total": "Total",
"free": "Free",
"used": "Used",
"days": "d",
"hours": "h"
},
@@ -493,6 +543,16 @@
"origin_ip": "Origin IP",
"status": "Status"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"proxmoxbackupserver": {
"datastore_usage": "Datastore",
"failed_tasks_24h": "Failed Tasks 24h",
@@ -549,7 +609,9 @@
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
+69 -7
View File
@@ -131,18 +131,22 @@
"sonarr": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Serio"
"series": "Serio",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Wanted",
"missing": "Missing",
"queued": "Queued",
"movies": "Filmoj"
"movies": "Filmoj",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Wanted",
"queued": "Queued",
"albums": "Albumoj"
"artists": "Artists"
},
"readarr": {
"wanted": "Wanted",
@@ -172,7 +176,8 @@
"pihole": {
"queries": "Queries",
"blocked": "Blocked",
"gravity": "Gravity"
"gravity": "Gravity",
"blocked_percent": "Blocked %"
},
"adguard": {
"queries": "Queries",
@@ -251,12 +256,16 @@
},
"glances": {
"cpu": "Ĉefprocesoro",
"mem": "Memoro",
"wait": "Bonvolu atendi",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"quicklaunch": {
"bookmark": "Bookmark",
@@ -513,7 +522,9 @@
"activeusers": "Active Users",
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space"
"freespace": "Free Space",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+69 -7
View File
@@ -66,13 +66,17 @@
"sonarr": {
"wanted": "Buscando",
"queued": "En cola",
"series": "Series"
"series": "Series",
"queue": "Poner a la cola",
"unknown": "Desconocido"
},
"radarr": {
"wanted": "Buscando",
"queued": "En cola",
"movies": "Películas",
"missing": "Faltan"
"missing": "Faltan",
"queue": "Poner a la cola",
"unknown": "Desconocido"
},
"readarr": {
"wanted": "Buscando",
@@ -92,7 +96,8 @@
"pihole": {
"queries": "Consultas",
"blocked": "Bloqueado",
"gravity": "Gravedad"
"gravity": "Gravedad",
"blocked_percent": "% bloqueado"
},
"speedtest": {
"upload": "Subida",
@@ -172,7 +177,7 @@
"lidarr": {
"queued": "En cola",
"wanted": "Buscando",
"albums": "Álbumes"
"artists": "Artistas"
},
"adguard": {
"queries": "Consultas",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "Procesador",
"mem": "Memoria",
"wait": "Espera por favor",
"temp": "TEMPORAL",
"uptime": "ARRIBA",
"days": "Días",
"hours": "Horas"
"hours": "Horas",
"load": "Cargar",
"warn": "Advertir",
"total": "Total",
"free": "Libre",
"used": "Utilizado"
},
"changedetectionio": {
"totalObserved": "Total Observados",
@@ -513,7 +522,9 @@
"cpuload": "Carga de la CPU",
"memoryusage": "Uso de la memoria",
"freespace": "Espacio libre",
"activeusers": "Usuarios activos"
"activeusers": "Usuarios activos",
"numfiles": "Archivos",
"numshares": "Elementos compartidos"
},
"kopia": {
"status": "Estado",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Supervisión",
"updates": "Actualizaciones"
},
"tailscale": {
"address": "Dirección",
"expires": "Caduca en",
"never": "Nunca",
"last_seen": "Visto por última vez",
"now": "Ahora",
"years": "{{number}}años",
"hours": "{{number}}horas",
"minutes": "{{number}}minutos",
"seconds": "{{number}}segundos",
"ago": "Hace {{value}}",
"weeks": "{{number}}semanas",
"days": "{{number}}días"
},
"qnap": {
"cpuUsage": "Uso de la Cpu",
"memUsage": "Uso de la memoria",
"systemTempC": "Temperatura del sistema",
"poolUsage": "Comprobación del uso del grupo de memoria",
"volumeUsage": "Volumen utilizado",
"invalid": "No válido"
},
"pfsense": {
"load": "Promedio de carga",
"memory": "Memoria utilizada",
"wanStatus": "Estado de la WAN",
"up": "Arriba",
"down": "Abajo",
"temp": "Temperatura",
"disk": "Uso del disco",
"wanIP": "IP de la WAN"
},
"caddy": {
"upstreams": "Upstream (desarrollo de software)",
"requests": "Peticiones actuales",
"requests_failed": "Peticiones fallidas"
},
"evcc": {
"pv_power": "Producción",
"battery_soc": "Batería",
"grid_power": "Red",
"home_power": "Consumo",
"charge_power": "Cargador",
"watt_hour": "vatio-hora (Wh)"
},
"pialert": {
"total": "Total",
"connected": "Conectado",
"new_devices": "Nuevos dispositivos",
"down_alerts": "Alertas"
}
}
+69 -7
View File
@@ -94,18 +94,22 @@
"sonarr": {
"wanted": "Haluttu",
"queued": "Jonossa",
"series": "Sarja"
"series": "Sarja",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Haluttu",
"queued": "Jonossa",
"movies": "Elokuvia",
"missing": "Missing"
"missing": "Missing",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Haluttu",
"queued": "Jonossa",
"albums": "Albumeja"
"artists": "Artists"
},
"readarr": {
"wanted": "Haluttu",
@@ -135,7 +139,8 @@
"pihole": {
"queries": "Kyselyjä",
"blocked": "Estetty",
"gravity": "Vakavuus"
"gravity": "Vakavuus",
"blocked_percent": "Blocked %"
},
"adguard": {
"queries": "Kyselyjä",
@@ -234,11 +239,15 @@
"glances": {
"wait": "Please wait",
"cpu": "CPU",
"mem": "MEM",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"changedetectionio": {
"totalObserved": "Total Observed",
@@ -513,7 +522,9 @@
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numshares": "Shared Items",
"numfiles": "Files"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"watt_hour": "Wh",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+70 -8
View File
@@ -66,13 +66,17 @@
"sonarr": {
"wanted": "Demande",
"queued": "Attente",
"series": "Séries"
"series": "Séries",
"queue": "Attente",
"unknown": "Inconnu"
},
"radarr": {
"wanted": "Demande",
"queued": "Attente",
"movies": "Films",
"missing": "Manquant"
"missing": "Manquant",
"queue": "Attente",
"unknown": "Inconnu"
},
"readarr": {
"wanted": "Demande",
@@ -92,7 +96,8 @@
"pihole": {
"queries": "Requêtes",
"blocked": "Bloqué",
"gravity": "Listes dom. bloqués"
"gravity": "Listes dom. bloqués",
"blocked_percent": "Bloqué %"
},
"speedtest": {
"upload": "Envoi",
@@ -172,7 +177,7 @@
"lidarr": {
"wanted": "Demandé",
"queued": "En queue",
"albums": "Albums"
"artists": "Artistes"
},
"adguard": {
"queries": "Requêtes",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "Cpu",
"mem": "Mém",
"wait": "Merci de patienter",
"temp": "Temp",
"uptime": "Up",
"days": "j",
"hours": "h"
"hours": "h",
"load": "Charge",
"warn": "Alerte",
"total": "Total",
"free": "Libre",
"used": "Utilisé"
},
"changedetectionio": {
"totalObserved": "Total Observé",
@@ -392,7 +401,7 @@
"queue": "À traiter",
"processed": "Traité",
"errored": "En erreur",
"saved": "Economisé"
"saved": "Libéré"
},
"miniflux": {
"read": "Lu",
@@ -513,7 +522,9 @@
"freespace": "Espace Libre",
"activeusers": "Utilisateurs Actifs",
"cpuload": "Charge Cpu",
"memoryusage": "Utilisation Mémoire"
"memoryusage": "Utilisation Mémoire",
"numfiles": "Fichiers",
"numshares": "Partages"
},
"kopia": {
"status": "Statut",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Conteneurs",
"updates": "Mises à jour"
},
"tailscale": {
"address": "Adresse",
"expires": "Expire",
"never": "Jamais",
"last_seen": "Vu pour la dernière fois",
"now": "Maintenant",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "Il y a {{value}}"
},
"qnap": {
"cpuUsage": "Cpu",
"memUsage": "Mém",
"systemTempC": "Temp",
"poolUsage": "Pool",
"volumeUsage": "Volume",
"invalid": "Invalide"
},
"pfsense": {
"load": "Charge moy.",
"memory": "Util. Mém.",
"wanStatus": "Statut WAN",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Util. Disque",
"wanIP": "IP WAN"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Demandes en cours",
"requests_failed": "Demandes échouées"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Batterie",
"grid_power": "Grille",
"home_power": "Consommation",
"charge_power": "Chargeur",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connecté",
"new_devices": "Nouvel Appareil",
"down_alerts": "Alertes"
}
}
+69 -7
View File
@@ -94,18 +94,22 @@
"sonarr": {
"wanted": "מבוקש",
"queued": "בתור",
"series": "סדרות"
"series": "סדרות",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "מבוקש",
"queued": "בתור",
"movies": "סרטים",
"missing": "Missing"
"missing": "Missing",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "מבוקש",
"queued": "בתור",
"albums": "אלבומים"
"artists": "Artists"
},
"readarr": {
"wanted": "מבוקש",
@@ -135,7 +139,8 @@
"pihole": {
"queries": "שאילתות",
"blocked": "נחסם",
"gravity": "Gravity"
"gravity": "Gravity",
"blocked_percent": "Blocked %"
},
"adguard": {
"queries": "שאילתות",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Please wait",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"warn": "Warn",
"load": "Load",
"total": "Total",
"free": "Free",
"used": "Used"
},
"changedetectionio": {
"totalObserved": "Total Observed",
@@ -513,7 +522,9 @@
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+69 -7
View File
@@ -155,18 +155,22 @@
"sonarr": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
"series": "Series",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Wanted",
"missing": "Missing",
"queued": "Queued",
"movies": "Movies"
"movies": "Movies",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Wanted",
"queued": "Queued",
"albums": "Albums"
"artists": "Artists"
},
"overseerr": {
"pending": "Pending",
@@ -177,7 +181,8 @@
"pihole": {
"queries": "Queries",
"blocked": "Blocked",
"gravity": "Gravity"
"gravity": "Gravity",
"blocked_percent": "Blocked %"
},
"adguard": {
"queries": "Queries",
@@ -241,12 +246,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Please wait",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"quicklaunch": {
"bookmark": "Bookmark",
@@ -513,7 +522,9 @@
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+70 -8
View File
@@ -37,7 +37,8 @@
"pihole": {
"queries": "Upiti",
"blocked": "Blokirano",
"gravity": "Gravity"
"gravity": "Gravitacija",
"blocked_percent": "Blokirano %"
},
"adguard": {
"latency": "Kašnjenje",
@@ -124,18 +125,22 @@
"sonarr": {
"wanted": "Zatraženo",
"queued": "U redu čekanja",
"series": "Serije"
"series": "Serije",
"unknown": "Unknown",
"queue": "Queue"
},
"radarr": {
"wanted": "Zatraženo",
"queued": "U redu čekanja",
"movies": "Filmovi",
"missing": "Nedostaje"
"missing": "Nedostaje",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Zatraženo",
"queued": "U redu čekanja",
"albums": "Albumi"
"artists": "Artists"
},
"readarr": {
"wanted": "Zatraženo",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Pričekaj",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"used": "Korišteno",
"load": "Opterećenje",
"warn": "Upozori",
"total": "Ukupno",
"free": "Slobodno"
},
"changedetectionio": {
"totalObserved": "Ukupno promatrano",
@@ -473,7 +482,7 @@
"up": "Aktivne stranice",
"down": "Neaktivne stranice",
"uptime": "Radno vrijeme",
"incident": "Incident",
"incident": "Slučaj",
"m": "min"
},
"komga": {
@@ -513,7 +522,9 @@
"cpuload": "Cpu opterećenje",
"memoryusage": "Korištenje memorije",
"freespace": "Slobodna memorija",
"activeusers": "Aktivni korisnici"
"activeusers": "Aktivni korisnici",
"numfiles": "Datoteke",
"numshares": "Dijeljene stavke"
},
"kopia": {
"status": "Stanje",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Aktualiziranja"
},
"tailscale": {
"address": "Adresa",
"expires": "Isteče",
"never": "Nikada",
"last_seen": "Zadnje viđeno",
"now": "Sada",
"years": "{{number}} god",
"weeks": "{{number}} tj",
"days": "{{number}} dan(a)",
"hours": "{{number}} h",
"minutes": "{{number}} min",
"seconds": "{{number}} s",
"ago": "Prije {{value}}"
},
"qnap": {
"systemTempC": "Temperatura sustava",
"poolUsage": "Korištenje memorijskog skupa",
"cpuUsage": "Korištenje procesora",
"memUsage": "Korištenje memorije",
"volumeUsage": "Korištenje jedinice memorije",
"invalid": "Neispravno"
},
"pfsense": {
"load": "Prosječno opterećenje",
"memory": "Korištenje memorije",
"wanStatus": "Stanje WAN-a",
"up": "Up",
"down": "Down",
"temp": "Temperatura",
"disk": "Korištenje diska",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Glavne grane",
"requests": "Aktualni zahtjevi",
"requests_failed": "Neuspjeli zahtjevi"
},
"evcc": {
"pv_power": "Proizvodnja",
"battery_soc": "Baterija",
"grid_power": "Raspored",
"home_power": "Potrošnja",
"charge_power": "Punjač",
"watt_hour": "Wh"
},
"pialert": {
"total": "Ukupno",
"connected": "Povezano",
"new_devices": "Novi uređaji",
"down_alerts": "Obavijest o rušenju"
}
}
+70 -8
View File
@@ -31,9 +31,9 @@
"healthy": "Healthy"
},
"lidarr": {
"albums": "Albumok",
"wanted": "Keresett",
"queued": "Sorban áll"
"queued": "Sorban áll",
"artists": "Artists"
},
"readarr": {
"wanted": "Keresett",
@@ -108,13 +108,17 @@
"sonarr": {
"wanted": "Keresett",
"queued": "Sorban áll",
"series": "Sorozat"
"series": "Sorozat",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Keresett",
"queued": "Sorban áll",
"movies": "Filmek",
"missing": "Missing"
"missing": "Missing",
"queue": "Queue",
"unknown": "Unknown"
},
"ombi": {
"pending": "Függőben",
@@ -135,7 +139,8 @@
"pihole": {
"queries": "Lekérdezések",
"blocked": "Blokkolt",
"gravity": "Gravitáció"
"gravity": "Gravitáció",
"blocked_percent": "Blocked %"
},
"adguard": {
"queries": "Lekérdezések",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Please wait",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"changedetectionio": {
"totalObserved": "Total Observed",
@@ -513,7 +522,9 @@
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago",
"hours": "{{number}}h"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+648
View File
@@ -0,0 +1,648 @@
{
"nzbget": {
"downloaded": "Downloaded",
"rate": "Rate",
"remaining": "Remaining"
},
"plex": {
"streams": "Active Streams",
"albums": "Albums",
"movies": "Movies",
"tv": "TV Shows"
},
"sabnzbd": {
"rate": "Rate",
"queue": "Queue",
"timeleft": "Time Left"
},
"rutorrent": {
"active": "Active",
"upload": "Upload",
"download": "Download"
},
"transmission": {
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"qbittorrent": {
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"systemTempC": "System Temp",
"invalid": "Invalid"
},
"deluge": {
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"downloadstation": {
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"sonarr": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Series",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Wanted",
"missing": "Missing",
"queued": "Queued",
"movies": "Movies",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Wanted",
"queued": "Queued",
"artists": "Artists"
},
"readarr": {
"wanted": "Wanted",
"queued": "Queued",
"books": "Books"
},
"bazarr": {
"missingEpisodes": "Missing Episodes",
"missingMovies": "Missing Movies"
},
"ombi": {
"pending": "Pending",
"approved": "Approved",
"available": "Available"
},
"jellyseerr": {
"approved": "Approved",
"pending": "Pending",
"available": "Available"
},
"overseerr": {
"approved": "Approved",
"available": "Available",
"pending": "Pending",
"processing": "Processing"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"pihole": {
"queries": "Queries",
"blocked": "Blocked",
"blocked_percent": "Blocked %",
"gravity": "Gravity"
},
"adguard": {
"queries": "Queries",
"blocked": "Blocked",
"filtered": "Filtered",
"latency": "Latency"
},
"speedtest": {
"upload": "Upload",
"download": "Download",
"ping": "Ping"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"tdarr": {
"queue": "Queue",
"processed": "Processed",
"errored": "Errored",
"saved": "Saved"
},
"traefik": {
"routers": "Routers",
"services": "Services",
"middleware": "Middleware"
},
"npm": {
"disabled": "Disabled",
"enabled": "Enabled",
"total": "Total"
},
"navidrome": {
"nothing_streaming": "No Active Streams",
"please_wait": "Please Wait"
},
"coinmarketcap": {
"configure": "Configure one or more crypto currencies to track",
"1hour": "1 Hour",
"1day": "1 Day",
"7days": "7 Days",
"30days": "30 Days"
},
"prowlarr": {
"numberOfGrabs": "Grabs",
"numberOfQueries": "Queries",
"enableIndexers": "Indexers",
"numberOfFailGrabs": "Fail Grabs",
"numberOfFailQueries": "Fail Queries"
},
"gotify": {
"apps": "Applications",
"clients": "Clients",
"messages": "Messages"
},
"jackett": {
"configured": "Configured",
"errored": "Errored"
},
"strelaysrv": {
"numActiveSessions": "Sessions",
"numConnections": "Connections",
"dataRelayed": "Relayed",
"transferRate": "Rate"
},
"mastodon": {
"user_count": "Users",
"status_count": "Posts",
"domain_count": "Domains"
},
"medusa": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
},
"minecraft": {
"players": "Players",
"version": "Version",
"status": "Status",
"up": "Online",
"down": "Offline"
},
"authentik": {
"loginsLast24H": "Logins (24h)",
"failedLoginsLast24H": "Failed Logins (24h)",
"users": "Users"
},
"proxmox": {
"cpu": "CPU",
"lxc": "LXC",
"vms": "VMs",
"mem": "MEM"
},
"glances": {
"temp": "TEMP",
"warn": "Warn",
"uptime": "UP",
"total": "Total",
"free": "Free",
"cpu": "CPU",
"load": "Load",
"wait": "Please wait",
"used": "Used",
"days": "d",
"hours": "h"
},
"quicklaunch": {
"bookmark": "Bookmark",
"service": "Service",
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
},
"wmo": {
"0-night": "Clear",
"0-day": "Sunny",
"1-day": "Mainly Sunny",
"1-night": "Mainly Clear",
"2-day": "Partly Cloudy",
"2-night": "Partly Cloudy",
"56-day": "Light Freezing Drizzle",
"56-night": "Light Freezing Drizzle",
"3-day": "Cloudy",
"3-night": "Cloudy",
"45-day": "Foggy",
"45-night": "Foggy",
"48-day": "Foggy",
"48-night": "Foggy",
"51-day": "Light Drizzle",
"51-night": "Light Drizzle",
"53-day": "Drizzle",
"53-night": "Drizzle",
"55-day": "Heavy Drizzle",
"55-night": "Heavy Drizzle",
"57-day": "Freezing Drizzle",
"57-night": "Freezing Drizzle",
"61-day": "Light Rain",
"61-night": "Light Rain",
"63-day": "Rain",
"63-night": "Rain",
"71-day": "Light Snow",
"71-night": "Light Snow",
"73-day": "Snow",
"73-night": "Snow",
"65-day": "Heavy Rain",
"65-night": "Heavy Rain",
"66-day": "Freezing Rain",
"66-night": "Freezing Rain",
"67-day": "Freezing Rain",
"67-night": "Freezing Rain",
"75-day": "Heavy Snow",
"75-night": "Heavy Snow",
"77-day": "Snow Grains",
"77-night": "Snow Grains",
"80-day": "Light Showers",
"82-day": "Heavy Showers",
"82-night": "Heavy Showers",
"85-day": "Snow Showers",
"85-night": "Snow Showers",
"86-day": "Snow Showers",
"86-night": "Snow Showers",
"99-day": "Thunderstorm With Hail",
"99-night": "Thunderstorm With Hail",
"80-night": "Light Showers",
"81-day": "Showers",
"81-night": "Showers",
"95-day": "Thunderstorm",
"95-night": "Thunderstorm",
"96-day": "Thunderstorm With Hail",
"96-night": "Thunderstorm With Hail"
},
"homebridge": {
"available_update": "System",
"updates": "Updates",
"update_available": "Update Available",
"up_to_date": "Up to Date",
"child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
},
"healthchecks": {
"grace": "In Grace Period",
"down": "Offline",
"paused": "Paused",
"status": "Status",
"last_ping": "Last Ping",
"never": "No pings yet",
"new": "New",
"up": "Online"
},
"watchtower": {
"containers_scanned": "Scanned",
"containers_updated": "Updated",
"containers_failed": "Failed"
},
"autobrr": {
"approvedPushes": "Approved",
"rejectedPushes": "Rejected",
"filters": "Filters",
"indexers": "Indexers"
},
"tubearchivist": {
"downloads": "Queue",
"videos": "Videos",
"channels": "Channels",
"playlists": "Playlists"
},
"truenas": {
"load": "System Load",
"uptime": "Uptime",
"alerts": "Alerts",
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
},
"pyload": {
"speed": "Speed",
"active": "Active",
"queue": "Queue",
"total": "Total"
},
"gluetun": {
"public_ip": "Public IP",
"region": "Region",
"country": "Country"
},
"hdhomerun": {
"channels": "Channels",
"hd": "HD"
},
"paperlessngx": {
"inbox": "Inbox",
"total": "Total"
},
"nextdns": {
"wait": "Please Wait",
"no_devices": "No Device Data Received"
},
"mikrotik": {
"cpuLoad": "CPU Load",
"memoryUsed": "Memory Used",
"uptime": "Uptime",
"numberOfLeases": "Leases"
},
"xteve": {
"streams_all": "All Streams",
"streams_active": "Active Streams",
"streams_xepg": "XEPG Channels"
},
"opnsense": {
"cpu": "CPU Load",
"memory": "Active Memory",
"wanUpload": "WAN Upload",
"wanDownload": "WAN Download"
},
"moonraker": {
"print_status": "Print Status",
"printer_state": "Printer State",
"print_progress": "Progress",
"layers": "Layers"
},
"octoprint": {
"printer_state": "Status",
"temp_bed": "Bed temp",
"job_completion": "Completion",
"temp_tool": "Tool temp"
},
"cloudflared": {
"origin_ip": "Origin IP",
"status": "Status"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"proxmoxbackupserver": {
"datastore_usage": "Datastore",
"failed_tasks_24h": "Failed Tasks 24h",
"cpu_usage": "CPU",
"memory_usage": "Memory"
},
"immich": {
"videos": "Videos",
"storage": "Storage",
"users": "Users",
"photos": "Photos"
},
"uptimekuma": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime",
"incident": "Incident",
"m": "m"
},
"komga": {
"libraries": "Libraries",
"series": "Series",
"books": "Books"
},
"diskstation": {
"days": "Days",
"uptime": "Uptime",
"volumeAvailable": "Available"
},
"mylar": {
"series": "Series",
"issues": "Issues",
"wanted": "Wanted"
},
"photoprism": {
"people": "People",
"albums": "Albums",
"photos": "Photos",
"videos": "Videos"
},
"fileflows": {
"queue": "Queue",
"processing": "Processing",
"processed": "Processed",
"time": "Time"
},
"grafana": {
"dashboards": "Dashboards",
"datasources": "Data Sources",
"totalalerts": "Total Alerts",
"alertstriggered": "Alerts Triggered"
},
"nextcloud": {
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
"nextrun": "Next Run",
"size": "Size",
"failed": "Failed",
"lastrun": "Last Run"
},
"unmanic": {
"active_workers": "Active Workers",
"total_workers": "Total Workers",
"records_total": "Queue Length"
},
"ghostfolio": {
"gross_percent_max": "All time",
"gross_percent_today": "Today",
"gross_percent_1y": "One year"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"podcastsDuration": "Duration",
"books": "Books",
"booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"weather": {
"wait": "Harap tunggu",
"current": "Current Location",
"allow": "Click to allow",
"updating": "Updating"
},
"search": {
"placeholder": "Telusuri…"
},
"unifi": {
"lan_devices": "LAN Devices",
"wlan_devices": "WLAN Devices",
"lan_users": "LAN Users",
"users": "Users",
"uptime": "System Uptime",
"days": "Days",
"wan": "WAN",
"lan": "LAN",
"wlan": "WLAN",
"devices": "Devices",
"wlan_users": "WLAN Users",
"up": "UP",
"down": "DOWN",
"wait": "Please wait",
"empty_data": "Subsystem status unknown"
},
"docker": {
"rx": "RX",
"tx": "TX",
"mem": "MEM",
"cpu": "CPU",
"running": "Running",
"offline": "Offline",
"error": "Error",
"unknown": "Unknown",
"healthy": "Healthy",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial"
},
"freshrss": {
"unread": "Unread",
"subscriptions": "Subscriptions"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"omada": {
"connectedAp": "Connected APs",
"activeUser": "Active devices",
"alerts": "Alerts",
"connectedGateway": "Connected gateways",
"connectedSwitches": "Connected switches"
},
"portainer": {
"running": "Running",
"stopped": "Stopped",
"total": "Total"
},
"miniflux": {
"read": "Read",
"unread": "Unread"
},
"scrutiny": {
"passed": "Passed",
"failed": "Failed",
"unknown": "Unknown"
},
"pterodactyl": {
"servers": "Servers",
"nodes": "Nodes"
},
"prometheus": {
"targets_up": "Targets Up",
"targets_down": "Targets Down",
"targets_total": "Total Targets"
},
"common": {
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
},
"widget": {
"missing_type": "Missing Widget Type: {{type}}",
"api_error": "API Error",
"information": "Informasi",
"status": "Status",
"url": "URL",
"raw_error": "Raw Error",
"response_data": "Response Data"
},
"resources": {
"cpu": "CPU",
"mem": "MEM",
"total": "Total",
"free": "Free",
"used": "Used",
"load": "Load",
"temp": "TEMP",
"max": "Max",
"uptime": "UP",
"months": "mo",
"hours": "h",
"days": "d",
"minutes": "m"
},
"ping": {
"error": "Error",
"ping": "Ping"
},
"emby": {
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
},
"evcc": {
"pv_power": "Production",
"home_power": "Consumption",
"charge_power": "Charger",
"battery_soc": "Battery",
"grid_power": "Grid",
"watt_hour": "Wh"
},
"flood": {
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"changedetectionio": {
"totalObserved": "Total Observed",
"diffsDetected": "Diffs Detected"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"tautulli": {
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams"
}
}
+69 -7
View File
@@ -81,13 +81,17 @@
"sonarr": {
"series": "Serie",
"wanted": "Richiesti",
"queued": "In coda"
"queued": "In coda",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Richiesti",
"queued": "In coda",
"movies": "Film",
"missing": "Mancanti"
"missing": "Mancanti",
"queue": "Queue",
"unknown": "Unknown"
},
"readarr": {
"wanted": "Richiesti",
@@ -107,7 +111,8 @@
"pihole": {
"queries": "Richieste",
"blocked": "Bloccati",
"gravity": "Severità"
"gravity": "Severità",
"blocked_percent": "Blocked %"
},
"npm": {
"enabled": "Attivi",
@@ -172,7 +177,7 @@
"lidarr": {
"wanted": "Mancanti",
"queued": "In coda",
"albums": "Album"
"artists": "Artists"
},
"adguard": {
"queries": "Interrogazioni",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Attendere prego",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"changedetectionio": {
"totalObserved": "Totale Osservato",
@@ -513,7 +522,9 @@
"memoryusage": "Memory Usage",
"cpuload": "Cpu Load",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"never": "Never",
"address": "Address",
"expires": "Expires",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago",
"days": "{{number}}d"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+402 -340
View File
@@ -1,38 +1,42 @@
{
"navidrome": {
"nothing_streaming": "No Active Streams",
"please_wait": "Please Wait"
"nothing_streaming": "アクティブストリームなし",
"please_wait": "お待ちください"
},
"npm": {
"total": "Total",
"enabled": "Enabled",
"disabled": "Disabled"
"total": "合計",
"enabled": "有効",
"disabled": "無効"
},
"strelaysrv": {
"numActiveSessions": "Sessions",
"numConnections": "Connections",
"numActiveSessions": "セッション",
"numConnections": "コネクション",
"dataRelayed": "Relayed",
"transferRate": "Rate"
"transferRate": "レート"
},
"glances": {
"mem": "MEM",
"cpu": "CPU",
"wait": "Please wait",
"temp": "TEMP",
"wait": "お待ちください",
"temp": "温度",
"uptime": "UP",
"days": "d",
"hours": "h"
"days": "日",
"hours": "時間",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"autobrr": {
"filters": "Filters",
"filters": "フィルター",
"indexers": "Indexers",
"approvedPushes": "Approved",
"rejectedPushes": "Rejected"
"approvedPushes": "承認済",
"rejectedPushes": "却下"
},
"gluetun": {
"region": "Region",
"country": "Country",
"public_ip": "Public IP"
"region": "地域",
"country": "国",
"public_ip": "パブリックIP"
},
"common": {
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
@@ -42,337 +46,342 @@
"api_error": "APIエラー",
"information": "情報",
"missing_type": "見つからないウィジェットタイプ: {{type}}",
"status": "ステータス",
"status": "状態",
"url": "URL",
"raw_error": "生のエラー",
"response_data": "レスポンスデータ"
},
"weather": {
"current": "Current Location",
"allow": "Click to allow",
"updating": "Updating",
"wait": "Please wait"
"current": "現在地",
"allow": "クリックで許可",
"updating": "アップデート中",
"wait": "お待ちください"
},
"search": {
"placeholder": "Search…"
"placeholder": "検索…"
},
"resources": {
"cpu": "CPU",
"total": "Total",
"free": "Free",
"used": "Used",
"load": "Load",
"total": "合計",
"free": "フリー",
"used": "使用",
"load": "ロード",
"mem": "MEM",
"temp": "TEMP",
"temp": "温度",
"max": "Max",
"uptime": "UP",
"months": "mo",
"days": "d",
"hours": "h",
"minutes": "m"
"months": "月",
"days": "日",
"hours": "時間",
"minutes": "分"
},
"unifi": {
"users": "Users",
"uptime": "System Uptime",
"days": "Days",
"users": "ユーザ",
"uptime": "システム・アップタイム",
"days": "日",
"wan": "WAN",
"lan": "LAN",
"wlan": "WLAN",
"devices": "Devices",
"lan_devices": "LAN Devices",
"wlan_devices": "WLAN Devices",
"lan_users": "LAN Users",
"wlan_users": "WLAN Users",
"devices": "デバイス",
"lan_devices": "LAN デバイス",
"wlan_devices": "WLAN デバイス",
"lan_users": "LAN ユーザ",
"wlan_users": "WLAN ユーザ",
"up": "UP",
"down": "DOWN",
"wait": "Please wait",
"empty_data": "Subsystem status unknown"
"wait": "お待ちください",
"empty_data": "サブシステム状態・不明"
},
"docker": {
"rx": "RX",
"tx": "TX",
"mem": "MEM",
"cpu": "CPU",
"offline": "Offline",
"error": "Error",
"unknown": "Unknown",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
"offline": "オフライン",
"error": "エラー",
"unknown": "不明",
"running": "起動中",
"starting": "起動中",
"unhealthy": "非健全",
"not_found": "不明",
"exited": "終了",
"partial": "部分的",
"healthy": "健全"
},
"ping": {
"error": "Error",
"error": "エラー",
"ping": "Ping"
},
"emby": {
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
"playing": "再生中",
"transcoding": "変換中",
"bitrate": "ビットレート",
"no_active": "アクティブ・ストリーム無し",
"movies": "映画",
"series": "シリーズ",
"episodes": "エピソード",
"songs": "曲"
},
"flood": {
"download": "Download",
"upload": "Upload",
"download": "ダウンロード",
"upload": "アップロード",
"leech": "Leech",
"seed": "Seed"
},
"changedetectionio": {
"totalObserved": "Total Observed",
"diffsDetected": "Diffs Detected"
"totalObserved": "全観測数",
"diffsDetected": "変更数"
},
"tautulli": {
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams"
"playing": "再生中",
"transcoding": "変換中",
"bitrate": "ビットレート",
"no_active": "アクティブストリームなし"
},
"omada": {
"connectedAp": "Connected APs",
"activeUser": "Active devices",
"alerts": "Alerts",
"connectedGateway": "Connected gateways",
"connectedSwitches": "Connected switches"
"connectedAp": "接続されたAP",
"activeUser": "アクティブデバイス",
"alerts": "アラート",
"connectedGateway": "接続されたゲートウェイ",
"connectedSwitches": "接続スイッチ"
},
"nzbget": {
"rate": "Rate",
"remaining": "Remaining",
"downloaded": "Downloaded"
"rate": "速度",
"remaining": "残り",
"downloaded": "ダウンロード"
},
"plex": {
"streams": "Active Streams",
"movies": "Movies",
"tv": "TV Shows",
"albums": "Albums"
"streams": "アクティブストリーム",
"movies": "映画",
"tv": "テレビ番組",
"albums": "アルバム"
},
"sabnzbd": {
"rate": "Rate",
"queue": "Queue",
"timeleft": "Time Left"
"rate": "速度",
"queue": "キュー",
"timeleft": "残り時間"
},
"rutorrent": {
"active": "Active",
"upload": "Upload",
"download": "Download"
"active": "アクティブ",
"upload": "アップロード",
"download": "ダウンロード"
},
"transmission": {
"download": "Download",
"upload": "Upload",
"download": "ダウンロード",
"upload": "アップロード",
"leech": "Leech",
"seed": "Seed"
},
"qbittorrent": {
"download": "Download",
"upload": "Upload",
"download": "ダウンロード",
"upload": "アップロード",
"leech": "Leech",
"seed": "Seed"
},
"deluge": {
"download": "Download",
"upload": "Upload",
"download": "ダウンロード",
"upload": "アップロード",
"leech": "Leech",
"seed": "Seed"
},
"downloadstation": {
"download": "Download",
"upload": "Upload",
"download": "ダウンロード",
"upload": "アップロード",
"leech": "Leech",
"seed": "Seed"
},
"sonarr": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
"wanted": "募集中",
"queued": "待機中",
"series": "シリーズ",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Wanted",
"missing": "Missing",
"queued": "Queued",
"movies": "Movies"
"wanted": "募集中",
"missing": "不明",
"queued": "キュー",
"movies": "映画",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Wanted",
"queued": "Queued",
"albums": "Albums"
"wanted": "募集中",
"queued": "キュー",
"artists": "Artists"
},
"readarr": {
"wanted": "Wanted",
"queued": "Queued",
"books": "Books"
"wanted": "募集中",
"queued": "待機中",
"books": "書籍"
},
"bazarr": {
"missingEpisodes": "Missing Episodes",
"missingMovies": "Missing Movies"
"missingEpisodes": "欠番エピソード",
"missingMovies": "不明・映画"
},
"ombi": {
"pending": "Pending",
"approved": "Approved",
"available": "Available"
"pending": "保留中",
"approved": "承認済",
"available": "利用可"
},
"jellyseerr": {
"pending": "Pending",
"approved": "Approved",
"available": "Available"
"pending": "保留中",
"approved": "承認済",
"available": "利用可"
},
"overseerr": {
"pending": "Pending",
"processing": "Processing",
"approved": "Approved",
"available": "Available"
"pending": "保留中",
"processing": "処理中",
"approved": "承認済",
"available": "利用可"
},
"pihole": {
"queries": "Queries",
"blocked": "Blocked",
"gravity": "Gravity"
"queries": "クエリ",
"blocked": "ブロック中",
"gravity": "グラビティ",
"blocked_percent": "Blocked %"
},
"adguard": {
"queries": "Queries",
"blocked": "Blocked",
"filtered": "Filtered",
"latency": "Latency"
"queries": "クエリ",
"blocked": "ブロック中",
"filtered": "フィルタ済",
"latency": "遅延"
},
"speedtest": {
"upload": "Upload",
"download": "Download",
"upload": "アップロード",
"download": "ダウンロード",
"ping": "Ping"
},
"portainer": {
"running": "Running",
"stopped": "Stopped",
"total": "Total"
"running": "起動中",
"stopped": "停止中",
"total": "合計"
},
"tdarr": {
"queue": "Queue",
"processed": "Processed",
"errored": "Errored",
"saved": "Saved"
"queue": "キュー",
"processed": "処理済み",
"errored": "エラー",
"saved": "保存"
},
"traefik": {
"routers": "Routers",
"services": "Services",
"middleware": "Middleware"
"routers": "ルーター",
"services": "サービス",
"middleware": "ミドルウェア"
},
"coinmarketcap": {
"configure": "Configure one or more crypto currencies to track",
"1hour": "1 Hour",
"1day": "1 Day",
"7days": "7 Days",
"30days": "30 Days"
"configure": "1つ以上の暗号通貨を設定して追跡",
"1hour": "1時間",
"1day": "1日",
"7days": "7日間",
"30days": "30日間"
},
"gotify": {
"apps": "Applications",
"clients": "Clients",
"messages": "Messages"
"apps": "アプリケーション",
"clients": "クライアント",
"messages": "メッセージ"
},
"prowlarr": {
"enableIndexers": "Indexers",
"numberOfGrabs": "Grabs",
"numberOfQueries": "Queries",
"numberOfQueries": "クエリ",
"numberOfFailGrabs": "Fail Grabs",
"numberOfFailQueries": "Fail Queries"
},
"jackett": {
"configured": "Configured",
"errored": "Errored"
"configured": "設定済",
"errored": "エラー"
},
"mastodon": {
"user_count": "Users",
"status_count": "Posts",
"domain_count": "Domains"
"user_count": "ユーザー",
"status_count": "ポスト",
"domain_count": "ドメイン"
},
"miniflux": {
"read": "Read",
"unread": "Unread"
},
"authentik": {
"users": "Users",
"loginsLast24H": "Logins (24h)",
"failedLoginsLast24H": "Failed Logins (24h)"
"users": "ユーザー",
"loginsLast24H": "ログイン (24時間)",
"failedLoginsLast24H": "ログイン失敗(24時間)"
},
"proxmox": {
"mem": "MEM",
"cpu": "CPU",
"lxc": "LXC",
"vms": "VMs"
"vms": "VM"
},
"quicklaunch": {
"bookmark": "Bookmark",
"service": "Service",
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"bookmark": "ブックマーク",
"service": "サービス",
"search": "検索",
"custom": "カスタム",
"visit": "訪問",
"url": "URL"
},
"wmo": {
"0-day": "Sunny",
"1-day": "Mainly Sunny",
"0-night": "Clear",
"1-night": "Mainly Clear",
"2-day": "Partly Cloudy",
"2-night": "Partly Cloudy",
"3-day": "Cloudy",
"3-night": "Cloudy",
"45-day": "Foggy",
"45-night": "Foggy",
"48-day": "Foggy",
"48-night": "Foggy",
"51-day": "Light Drizzle",
"51-night": "Light Drizzle",
"53-day": "Drizzle",
"53-night": "Drizzle",
"55-day": "Heavy Drizzle",
"55-night": "Heavy Drizzle",
"56-day": "Light Freezing Drizzle",
"56-night": "Light Freezing Drizzle",
"57-day": "Freezing Drizzle",
"57-night": "Freezing Drizzle",
"61-day": "Light Rain",
"61-night": "Light Rain",
"63-day": "Rain",
"63-night": "Rain",
"67-night": "Freezing Rain",
"71-day": "Light Snow",
"65-day": "Heavy Rain",
"65-night": "Heavy Rain",
"66-day": "Freezing Rain",
"66-night": "Freezing Rain",
"67-day": "Freezing Rain",
"71-night": "Light Snow",
"73-day": "Snow",
"73-night": "Snow",
"75-day": "Heavy Snow",
"75-night": "Heavy Snow",
"77-day": "Snow Grains",
"77-night": "Snow Grains",
"80-day": "Light Showers",
"80-night": "Light Showers",
"81-day": "Showers",
"81-night": "Showers",
"82-day": "Heavy Showers",
"82-night": "Heavy Showers",
"85-day": "Snow Showers",
"85-night": "Snow Showers",
"86-day": "Snow Showers",
"86-night": "Snow Showers",
"95-day": "Thunderstorm",
"95-night": "Thunderstorm",
"96-day": "Thunderstorm With Hail",
"96-night": "Thunderstorm With Hail",
"99-day": "Thunderstorm With Hail",
"99-night": "Thunderstorm With Hail"
"0-day": "晴れ",
"1-day": "ほぼ晴れ",
"0-night": "晴れ",
"1-night": "ほぼ晴れ",
"2-day": "一時くもり",
"2-night": "一部くもり",
"3-day": "くもり",
"3-night": "くもり",
"45-day": "霧",
"45-night": "霧",
"48-day": "霧",
"48-night": "霧",
"51-day": "霧雨",
"51-night": "霧雨",
"53-day": "霧雨",
"53-night": "霧雨",
"55-day": "霧雨",
"55-night": "霧雨",
"56-day": "霧雨",
"56-night": "霧雨",
"57-day": "霧雨",
"57-night": "霧雨",
"61-day": "小雨",
"61-night": "小雨",
"63-day": "雨",
"63-night": "雨",
"67-night": "雨",
"71-day": "雪",
"65-day": "大雨",
"65-night": "大雨",
"66-day": "雨",
"66-night": "雨",
"67-day": "雨",
"71-night": "雪",
"73-day": "雪",
"73-night": "雪",
"75-day": "大雪",
"75-night": "大雪",
"77-day": "粒雪",
"77-night": "粒雪",
"80-day": "にわか雨",
"80-night": "にわか雨",
"81-day": "にわか雨",
"81-night": "にわか雨",
"82-day": "強いにわか雨",
"82-night": "強いにわか雨",
"85-day": "にわか雪",
"85-night": "にわか雪",
"86-day": "にわか雪",
"86-night": "にわか雪",
"95-day": "雷雨",
"95-night": "雷雨",
"96-day": "雷雨・ひょう",
"96-night": "雷雨・ひょう",
"99-day": "雷雨・ひょう",
"99-night": "雷雨・ひょう"
},
"homebridge": {
"available_update": "System",
"updates": "Updates",
"update_available": "Update Available",
"up_to_date": "Up to Date",
"available_update": "システム",
"updates": "アップデート",
"update_available": "更新あり",
"up_to_date": "最新",
"child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
@@ -380,67 +389,67 @@
"down": "Down"
},
"watchtower": {
"containers_scanned": "Scanned",
"containers_updated": "Updated",
"containers_failed": "Failed"
"containers_scanned": "スキャン済",
"containers_updated": "更新済",
"containers_failed": "失敗"
},
"tubearchivist": {
"downloads": "Queue",
"videos": "Videos",
"channels": "Channels",
"playlists": "Playlists"
"downloads": "キュー",
"videos": "ビデオ",
"channels": "チャンネル",
"playlists": "プレイリスト"
},
"truenas": {
"load": "System Load",
"uptime": "Uptime",
"alerts": "Alerts",
"load": "システム負荷",
"uptime": "稼働時間",
"alerts": "アラート",
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
},
"pyload": {
"speed": "Speed",
"active": "Active",
"queue": "Queue",
"total": "Total"
"speed": "スピード",
"active": "アクティブ",
"queue": "キュー",
"total": "合計"
},
"hdhomerun": {
"channels": "Channels",
"channels": "チャンネル",
"hd": "HD"
},
"scrutiny": {
"passed": "Passed",
"failed": "Failed",
"unknown": "Unknown"
"passed": "合格",
"failed": "失敗",
"unknown": "不明"
},
"paperlessngx": {
"inbox": "Inbox",
"total": "Total"
"inbox": "受信箱",
"total": "合計"
},
"nextdns": {
"wait": "Please Wait",
"no_devices": "No Device Data Received"
"wait": "お待ちください",
"no_devices": "デバイス データを受信していません"
},
"mikrotik": {
"cpuLoad": "CPU Load",
"memoryUsed": "Memory Used",
"uptime": "Uptime",
"numberOfLeases": "Leases"
"cpuLoad": "CPU負荷",
"memoryUsed": "使用メモリ",
"uptime": "稼働時間",
"numberOfLeases": "リース"
},
"xteve": {
"streams_all": "All Streams",
"streams_active": "Active Streams",
"streams_xepg": "XEPG Channels"
"streams_all": "全ストリーム",
"streams_active": "アクティブ・ストリーム",
"streams_xepg": "XEPGチャンネル"
},
"opnsense": {
"cpu": "CPU Load",
"memory": "Active Memory",
"wanUpload": "WAN Upload",
"wanDownload": "WAN Download"
"cpu": "CPU負荷",
"memory": "アクティブ・メモリ",
"wanUpload": "WANアップロード",
"wanDownload": "WANダウンロード"
},
"moonraker": {
"printer_state": "Printer State",
"print_status": "Print Status",
"print_progress": "Progress",
"layers": "Layers"
"printer_state": "プリンタの状態",
"print_status": "印刷状況",
"print_progress": "進捗状況",
"layers": "レイヤー"
},
"medusa": {
"wanted": "Wanted",
@@ -448,139 +457,192 @@
"series": "Series"
},
"octoprint": {
"temp_bed": "Bed temp",
"printer_state": "Status",
"temp_tool": "Tool temp",
"job_completion": "Completion"
"temp_bed": "ベッド温度",
"printer_state": "状態",
"temp_tool": "ツール温度",
"job_completion": "完了"
},
"cloudflared": {
"origin_ip": "Origin IP",
"status": "Status"
"origin_ip": "オリジンIP",
"status": "状態"
},
"proxmoxbackupserver": {
"datastore_usage": "Datastore",
"failed_tasks_24h": "Failed Tasks 24h",
"failed_tasks_24h": "失敗タスク(24h)",
"cpu_usage": "CPU",
"memory_usage": "Memory"
"memory_usage": "メモリ"
},
"immich": {
"users": "Users",
"photos": "Photos",
"videos": "Videos",
"storage": "Storage"
"users": "ユーザ",
"photos": "写真",
"videos": "ビデオ",
"storage": "ストレージ"
},
"uptimekuma": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime",
"up": "サイトUp",
"down": "サイトDown",
"uptime": "稼働時間",
"incident": "Incident",
"m": "m"
},
"komga": {
"libraries": "Libraries",
"series": "Series",
"books": "Books"
"libraries": "ライブラリ",
"series": "シリーズ",
"books": "書籍"
},
"mylar": {
"series": "Series",
"series": "シリーズ",
"issues": "Issues",
"wanted": "Wanted"
},
"photoprism": {
"albums": "Albums",
"photos": "Photos",
"videos": "Videos",
"people": "People"
"albums": "アルバム",
"photos": "写真",
"videos": "ビデオ",
"people": "人"
},
"diskstation": {
"days": "Days",
"uptime": "Uptime",
"volumeAvailable": "Available"
"days": "日",
"uptime": "稼働時間",
"volumeAvailable": "利用可能"
},
"fileflows": {
"queue": "Queue",
"processing": "Processing",
"processed": "Processed",
"time": "Time"
"queue": "キュー",
"processing": "処理中",
"processed": "処理済み",
"time": "時間"
},
"grafana": {
"dashboards": "Dashboards",
"datasources": "Data Sources",
"totalalerts": "Total Alerts",
"alertstriggered": "Alerts Triggered"
"dashboards": "ダッシュ ボード",
"datasources": "データソース",
"totalalerts": "アラート総数",
"alertstriggered": "トリガーされたアラート"
},
"nextcloud": {
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"cpuload": "CPU負荷",
"memoryusage": "メモリ使用量",
"freespace": "空き容量",
"activeusers": "アクティブユーザー",
"numfiles": "ファイル",
"numshares": "共有アイテム"
},
"kopia": {
"status": "Status",
"size": "Size",
"lastrun": "Last Run",
"nextrun": "Next Run",
"failed": "Failed"
"status": "状態",
"size": "サイズ",
"lastrun": "最終実行",
"nextrun": "次の実行",
"failed": "失敗"
},
"unmanic": {
"active_workers": "Active Workers",
"total_workers": "Total Workers",
"records_total": "Queue Length"
"active_workers": "アクティブ・ワーカー",
"total_workers": "トータル・ワーカー",
"records_total": "キューの長さ"
},
"healthchecks": {
"never": "No pings yet",
"never": "まだPingはありません",
"new": "New",
"up": "Online",
"grace": "In Grace Period",
"down": "Offline",
"paused": "Paused",
"status": "Status",
"last_ping": "Last Ping"
"up": "オンライン",
"grace": "猶予期間中",
"down": "オフライン",
"paused": "一時停止中",
"status": "状態",
"last_ping": "最後のPing"
},
"pterodactyl": {
"servers": "Servers",
"nodes": "Nodes"
"servers": "サーバ",
"nodes": "ノード"
},
"prometheus": {
"targets_up": "Targets Up",
"targets_down": "Targets Down",
"targets_total": "Total Targets"
"targets_up": "ターゲットUp",
"targets_down": "ターゲット Down",
"targets_total": "ターゲット合計"
},
"minecraft": {
"players": "Players",
"version": "Version",
"status": "Status",
"up": "Online",
"down": "Offline"
"players": "プレイヤー",
"version": "バージョン",
"status": "状態",
"up": "オンライン",
"down": "オフライン"
},
"ghostfolio": {
"gross_percent_max": "All time",
"gross_percent_today": "Today",
"gross_percent_1y": "One year"
"gross_percent_max": "全期間",
"gross_percent_today": "今日",
"gross_percent_1y": "1年"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
"podcasts": "ポッドキャスト",
"books": "書籍",
"podcastsDuration": "時間",
"booksDuration": "時間"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
"people_home": "ホーム人数",
"lights_on": "点灯",
"switches_on": "スイッチオン"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
"subscriptions": "購読",
"unread": "未読"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"shows": "ショー",
"recordings": "レコーディング",
"scheduled": "予定済",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
"updates": "アップデート"
},
"tailscale": {
"address": "アドレス",
"expires": "失効",
"never": "なし",
"last_seen": "最終日時",
"now": "現在",
"years": "{{number}}年",
"weeks": "{{number}}月",
"days": "{{number}}日",
"hours": "{{number}}時間",
"minutes": "{{number}}分",
"seconds": "{{number}}秒",
"ago": "{{value}} 前"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"up": "Up",
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"watt_hour": "Wh",
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+69 -7
View File
@@ -163,18 +163,22 @@
"sonarr": {
"wanted": "요청",
"queued": "대기 중",
"series": "시리즈"
"series": "시리즈",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "요청",
"missing": "빠짐",
"queued": "대기 중",
"movies": "영화"
"movies": "영화",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "요청",
"queued": "대기 중",
"albums": "앨범"
"artists": "Artists"
},
"readarr": {
"wanted": "요청",
@@ -204,7 +208,8 @@
"pihole": {
"queries": "쿼리",
"blocked": "차단됨",
"gravity": "Gravity"
"gravity": "Gravity",
"blocked_percent": "Blocked %"
},
"adguard": {
"queries": "쿼리",
@@ -300,12 +305,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Please wait",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"quicklaunch": {
"bookmark": "Bookmark",
@@ -534,7 +543,9 @@
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP",
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"down_alerts": "Down Alerts",
"new_devices": "New Devices"
}
}
+69 -7
View File
@@ -154,18 +154,22 @@
"sonarr": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
"series": "Series",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Wanted",
"missing": "Missing",
"queued": "Queued",
"movies": "Filmas"
"movies": "Filmas",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Wanted",
"queued": "Queued",
"albums": "Albumi"
"artists": "Artists"
},
"readarr": {
"wanted": "Wanted",
@@ -195,7 +199,8 @@
"pihole": {
"queries": "Queries",
"blocked": "Blocked",
"gravity": "Gravity"
"gravity": "Gravity",
"blocked_percent": "Blocked %"
},
"adguard": {
"queries": "Queries",
@@ -289,12 +294,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Please wait",
"uptime": "UP",
"days": "d",
"hours": "h",
"temp": "TEMP"
"temp": "TEMP",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"quicklaunch": {
"bookmark": "Bookmark",
@@ -513,7 +522,9 @@
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+70 -8
View File
@@ -33,8 +33,8 @@
},
"lidarr": {
"queued": "Dibaris Gilir",
"albums": "Album",
"wanted": "Mahu"
"wanted": "Mahu",
"artists": "Artists"
},
"readarr": {
"wanted": "Mahu",
@@ -66,12 +66,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Sila tunggu",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"quicklaunch": {
"bookmark": "Tandabuku",
@@ -229,13 +233,17 @@
"sonarr": {
"wanted": "Mahu",
"queued": "Dibaris Gilir",
"series": "Bersiri"
"series": "Bersiri",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Mahu",
"missing": "Hilang",
"queued": "Dibaris Gilir",
"movies": "Filem"
"movies": "Filem",
"queue": "Queue",
"unknown": "Unknown"
},
"bazarr": {
"missingEpisodes": "Episod Yang Hilang",
@@ -255,7 +263,8 @@
"pihole": {
"queries": "Permintaan",
"blocked": "Disekat",
"gravity": "Gravity"
"gravity": "Gravity",
"blocked_percent": "Blocked %"
},
"adguard": {
"queries": "Permintaan",
@@ -513,7 +522,9 @@
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+69 -7
View File
@@ -66,13 +66,17 @@
"sonarr": {
"wanted": "Ønsket",
"queued": "I kø",
"series": "Serie"
"series": "Serie",
"unknown": "Unknown",
"queue": "Queue"
},
"radarr": {
"wanted": "Ønsket",
"queued": "I kø",
"movies": "Filmer",
"missing": "Missing"
"missing": "Missing",
"queue": "Queue",
"unknown": "Unknown"
},
"readarr": {
"wanted": "Wanted",
@@ -92,7 +96,8 @@
"pihole": {
"queries": "Spørringer",
"blocked": "Blokkert",
"gravity": "Gravitet"
"gravity": "Gravitet",
"blocked_percent": "Blocked %"
},
"speedtest": {
"upload": "Opplasting",
@@ -172,7 +177,7 @@
"lidarr": {
"wanted": "Wanted",
"queued": "Queued",
"albums": "Albums"
"artists": "Artists"
},
"adguard": {
"queries": "Queries",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Please wait",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"changedetectionio": {
"totalObserved": "Total Observed",
@@ -513,7 +522,9 @@
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+69 -7
View File
@@ -82,13 +82,17 @@
"sonarr": {
"wanted": "Gezocht",
"queued": "In de wachtrij",
"series": "Series"
"series": "Series",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"movies": "Films",
"wanted": "Gezocht",
"queued": "In de wachtrij",
"missing": "Missend"
"missing": "Missend",
"queue": "Queue",
"unknown": "Unknown"
},
"readarr": {
"wanted": "Gezocht",
@@ -108,7 +112,8 @@
"pihole": {
"queries": "Queries",
"blocked": "Geblokkeerd",
"gravity": "Gravity"
"gravity": "Gravity",
"blocked_percent": "Blocked %"
},
"traefik": {
"routers": "Routers",
@@ -172,7 +177,7 @@
"lidarr": {
"wanted": "Gezocht",
"queued": "In de wachtrij",
"albums": "Albums"
"artists": "Artists"
},
"adguard": {
"queries": "Queries",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Please wait",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"changedetectionio": {
"totalObserved": "Totaal waargenomen",
@@ -513,7 +522,9 @@
"cpuload": "Cpu Belasting",
"memoryusage": "Geheugen Gebruik",
"freespace": "Vrije Ruimte",
"activeusers": "Actieve Gebruikers"
"activeusers": "Actieve Gebruikers",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+141 -79
View File
@@ -16,22 +16,22 @@
"cpu": "CPU",
"mem": "PAM",
"temp": "TEMP.",
"max": "Max",
"uptime": "UP",
"max": "Maks",
"uptime": "CZAS",
"months": "miesiąc",
"days": "dni",
"hours": "h",
"minutes": "minuty"
"hours": "godz",
"minutes": "min"
},
"emby": {
"no_active": "Brak aktywnych strumieni",
"playing": "Odtwarzanie",
"transcoding": "Transkodowanie",
"bitrate": "Bitrate",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
"movies": "Filmy",
"series": "Seriale",
"episodes": "Odcinki",
"songs": "Piosenki"
},
"tautulli": {
"playing": "Odtwarzanie",
@@ -79,11 +79,11 @@
"error": "Błąd",
"unknown": "Nieznany",
"running": "Działa",
"starting": "Startować",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"starting": "Rozpoczynanie",
"unhealthy": "Niezdrowe",
"not_found": "Nie znaleziono",
"exited": "Exited",
"partial": "Partial",
"partial": "Częściowe",
"healthy": "Zdrowy"
},
"nzbget": {
@@ -110,18 +110,22 @@
"sonarr": {
"wanted": "Poszukiwane",
"queued": "W kolejce",
"series": "Seriale"
"series": "Seriale",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Poszukiwane",
"queued": "W kolejce",
"movies": "Filmy",
"missing": "Brakujące"
"missing": "Brakujące",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Poszukiwane",
"queued": "W kolejce",
"albums": "Albumy"
"artists": "Artists"
},
"readarr": {
"wanted": "Poszukiwane",
@@ -151,7 +155,8 @@
"pihole": {
"queries": "Zapytania",
"blocked": "Zablokowane",
"gravity": "Gravity"
"gravity": "Grawitacja",
"blocked_percent": "Blocked %"
},
"traefik": {
"routers": "Routery",
@@ -229,16 +234,20 @@
"streams": "Aktywne strumienie",
"movies": "Filmy",
"tv": "Seriale",
"albums": "Albums"
"albums": "Albumy"
},
"glances": {
"cpu": "Procesor",
"mem": "Pamięć",
"wait": "Proszę czekać",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"uptime": "CZAS",
"days": "dni",
"hours": "godz",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"changedetectionio": {
"diffsDetected": "Wykryto różnic",
@@ -305,10 +314,10 @@
"quicklaunch": {
"bookmark": "Zakładka",
"service": "Usługi",
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
"search": "Wyszukaj",
"custom": "Niestandardowe",
"visit": "Odwiedź",
"url": "Adres URL"
},
"homebridge": {
"available_update": "System",
@@ -318,7 +327,7 @@
"child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"pending": "Oczekujące",
"down": "Down"
},
"autobrr": {
@@ -369,7 +378,7 @@
},
"scrutiny": {
"passed": "Powodzenie",
"failed": "Niepowodzenie",
"failed": "Nieudane",
"unknown": "Nieznane"
},
"paperlessngx": {
@@ -445,13 +454,13 @@
"medusa": {
"wanted": "Poszukiwane",
"queued": "Zakolejkowane",
"series": "Seria"
"series": "Seriale"
},
"octoprint": {
"printer_state": "Status",
"temp_tool": "Tool temp",
"temp_bed": "Bed temp",
"job_completion": "Completion"
"job_completion": "Ukończono"
},
"cloudflared": {
"origin_ip": "Origin IP",
@@ -461,84 +470,86 @@
"datastore_usage": "Datastore",
"failed_tasks_24h": "Failed Tasks 24h",
"cpu_usage": "CPU",
"memory_usage": "Memory"
"memory_usage": "Pamięć"
},
"immich": {
"users": "Users",
"photos": "Photos",
"videos": "Videos",
"storage": "Storage"
"users": "Użytkownicy",
"photos": "Zdjęcia",
"videos": "Filmy",
"storage": "Pamięć"
},
"uptimekuma": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime",
"incident": "Incident",
"m": "m"
"down": "Niedziałające strony",
"uptime": "Czas działania",
"incident": "Incydent",
"m": "min"
},
"komga": {
"libraries": "Libraries",
"series": "Series",
"books": "Books"
"libraries": "Biblioteki",
"series": "Seriale",
"books": "Książki"
},
"mylar": {
"series": "Series",
"issues": "Issues",
"series": "Seriale",
"issues": "Zgłoszenia",
"wanted": "Wanted"
},
"photoprism": {
"albums": "Albums",
"photos": "Photos",
"videos": "Videos",
"people": "People"
"albums": "Albumy",
"photos": "Zdjęcia",
"videos": "Filmy",
"people": "Ludzie"
},
"diskstation": {
"uptime": "Uptime",
"volumeAvailable": "Available",
"days": "Days"
"uptime": "Czas działania",
"volumeAvailable": "Dostępne",
"days": "Dni"
},
"fileflows": {
"queue": "Queue",
"processing": "Processing",
"queue": "Kolejka",
"processing": "Przetwarzanie",
"processed": "Processed",
"time": "Time"
"time": "Czas"
},
"grafana": {
"dashboards": "Dashboards",
"datasources": "Data Sources",
"datasources": "Źródła danych",
"totalalerts": "Total Alerts",
"alertstriggered": "Alerts Triggered"
},
"nextcloud": {
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"cpuload": "Obciążenie CPU",
"memoryusage": "Użycie pamięci",
"freespace": "Wolna przestrzeń",
"activeusers": "Aktywni użytkownicy",
"numfiles": "Pliki",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
"size": "Size",
"lastrun": "Last Run",
"size": "Rozmiar",
"lastrun": "Ostatnie uruchomienie",
"nextrun": "Next Run",
"failed": "Failed"
"failed": "Nieudane"
},
"unmanic": {
"active_workers": "Active Workers",
"active_workers": "Aktywni pracownicy",
"total_workers": "Total Workers",
"records_total": "Queue Length"
"records_total": "Długość kolejki"
},
"healthchecks": {
"new": "New",
"new": "Nowy",
"up": "Online",
"grace": "In Grace Period",
"down": "Offline",
"paused": "Paused",
"paused": "Zatrzymane",
"status": "Status",
"last_ping": "Last Ping",
"never": "No pings yet"
},
"pterodactyl": {
"servers": "Servers",
"servers": "Serwery",
"nodes": "Nodes"
},
"prometheus": {
@@ -547,22 +558,22 @@
"targets_total": "Total Targets"
},
"minecraft": {
"players": "Players",
"version": "Version",
"players": "Gracze",
"version": "Wersja",
"status": "Status",
"up": "Online",
"down": "Offline"
},
"ghostfolio": {
"gross_percent_today": "Today",
"gross_percent_1y": "One year",
"gross_percent_today": "Dzisiaj",
"gross_percent_1y": "Rok",
"gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
"podcasts": "Podcasty",
"books": "Książki",
"podcastsDuration": "Czas trwania",
"booksDuration": "Czas trwania"
},
"homeassistant": {
"people_home": "People Home",
@@ -570,17 +581,68 @@
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
"subscriptions": "Subskrypcje",
"unread": "Nieprzeczytane"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"recordings": "Nagrywanie",
"scheduled": "W kolejce",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
"updates": "Aktualizacje"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+69 -7
View File
@@ -112,18 +112,22 @@
"sonarr": {
"wanted": "Desejado",
"queued": "Na fila",
"series": "Séries"
"series": "Séries",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Desejado",
"queued": "Na fila",
"movies": "Filmes",
"missing": "Faltando"
"missing": "Faltando",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Desejado",
"queued": "Na fila",
"albums": "Álbuns"
"artists": "Artists"
},
"readarr": {
"wanted": "Desejado",
@@ -153,7 +157,8 @@
"pihole": {
"queries": "Consultas",
"blocked": "Bloqueados",
"gravity": "Gravidade"
"gravity": "Gravidade",
"blocked_percent": "Blocked %"
},
"adguard": {
"queries": "Consultas",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Por favor aguarde",
"temp": "TEMP",
"uptime": "LIGADO",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"changedetectionio": {
"totalObserved": "Observados",
@@ -513,7 +522,9 @@
"cpuload": "Carga de CPU",
"memoryusage": "Memória Utilizada",
"freespace": "Espaço Livre",
"activeusers": "Usuários Ativos"
"activeusers": "Usuários Ativos",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"hours": "{{number}}h",
"days": "{{number}}d",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"systemTempC": "System Temp",
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+69 -7
View File
@@ -66,13 +66,17 @@
"sonarr": {
"wanted": "Desejada",
"queued": "Em fila",
"series": "Séries"
"series": "Séries",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Desejado",
"queued": "Fila",
"movies": "Filmes",
"missing": "Faltando"
"missing": "Faltando",
"queue": "Queue",
"unknown": "Unknown"
},
"readarr": {
"wanted": "Desejados",
@@ -92,7 +96,8 @@
"pihole": {
"queries": "Consultas",
"blocked": "Bloqueado",
"gravity": "Gravidade"
"gravity": "Gravidade",
"blocked_percent": "Blocked %"
},
"speedtest": {
"upload": "Envio",
@@ -185,7 +190,7 @@
"lidarr": {
"queued": "Enfileirado",
"wanted": "Desejado",
"albums": "Álbuns"
"artists": "Artists"
},
"adguard": {
"queries": "Consultas",
@@ -246,12 +251,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Por favor, aguarde",
"temp": "TEMP",
"uptime": "Cima",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"changedetectionio": {
"totalObserved": "Total Observado",
@@ -522,7 +531,9 @@
"cpuload": "Carga de CPU",
"memoryusage": "Memória Utilizada",
"freespace": "Espaço Livre",
"activeusers": "Utilizadores Ativos"
"activeusers": "Utilizadores Ativos",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Estado",
@@ -591,5 +602,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanIP": "WAN IP",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+71 -9
View File
@@ -44,7 +44,8 @@
"pihole": {
"queries": "Cereri",
"blocked": "Blocate",
"gravity": "Gravity"
"gravity": "Gravity",
"blocked_percent": "Blocked %"
},
"adguard": {
"blocked": "Blocate",
@@ -133,18 +134,22 @@
"sonarr": {
"wanted": "Dorite",
"queued": "În coadă",
"series": "Seriale"
"series": "Seriale",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"queued": "În coadă",
"wanted": "Dorite",
"movies": "Filme",
"missing": "Missing"
"missing": "Missing",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Dorite",
"queued": "În coadă",
"albums": "Albume"
"artists": "Artists"
},
"readarr": {
"wanted": "Dorite",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "Procesor",
"mem": "Memorie",
"wait": "Te rugam sa astepti",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"changedetectionio": {
"totalObserved": "Total Observed",
@@ -404,7 +413,7 @@
},
"common": {
"bibyterate": "{{valoare, rata(bits: fals; binar: adevarat)}}",
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
"bibitrate": "{{valoare, rata(biti: adevarat; binar: adevarat)}}"
},
"omada": {
"connectedAp": "Connected APs",
@@ -513,7 +522,9 @@
"activeusers": "Active Users",
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space"
"freespace": "Free Space",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -581,6 +592,57 @@
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
"updates": "Acutalizari"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"new_devices": "New Devices",
"down_alerts": "Down Alerts",
"total": "Total",
"connected": "Connected"
}
}
+216 -154
View File
@@ -5,7 +5,7 @@
"status": "Статус",
"information": "Информация",
"url": "URL",
"raw_error": "Raw Error",
"raw_error": "Необработанная ошибка",
"response_data": "Данные ответа"
},
"search": {
@@ -66,18 +66,22 @@
"sonarr": {
"wanted": "Хотел",
"queued": "В очереди",
"series": "Серии"
"series": "Серии",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Хотел",
"queued": "В очереди",
"movies": "Фильмы",
"missing": "Пропущено"
"missing": "Пропущено",
"queue": "Queue",
"unknown": "Unknown"
},
"readarr": {
"wanted": "Wanted",
"queued": "Queued",
"books": "Books"
"wanted": "Хотел",
"queued": "В очереди",
"books": "Книги"
},
"ombi": {
"pending": "Ожидание",
@@ -92,7 +96,8 @@
"pihole": {
"queries": "Запросы",
"blocked": "Заблокировано",
"gravity": "Сила тяжести"
"gravity": "Сила тяжести",
"blocked_percent": "Blocked %"
},
"speedtest": {
"upload": "Отдача",
@@ -150,10 +155,10 @@
},
"prowlarr": {
"enableIndexers": "Индексаторы",
"numberOfGrabs": "Grabs",
"numberOfGrabs": "Захваты",
"numberOfQueries": "Запросы",
"numberOfFailGrabs": "Fail Grabs",
"numberOfFailQueries": "Fail Queries"
"numberOfFailGrabs": "Неудачные захваты",
"numberOfFailQueries": "Неудачные запросы"
},
"transmission": {
"download": "Загрузка",
@@ -172,7 +177,7 @@
"lidarr": {
"wanted": "Хотел",
"queued": "В очереди",
"albums": "Альбомы"
"artists": "Artists"
},
"adguard": {
"queries": "Запросы",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "Процессор",
"mem": "Память",
"wait": "Пожалуйста, подождите",
"temp": "Температура",
"uptime": "Работает",
"days": "д",
"hours": "ч"
"hours": "ч",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"changedetectionio": {
"totalObserved": "Всего наблюдаемых",
@@ -247,16 +256,16 @@
"wmo": {
"0-day": "Солнечно",
"0-night": "Ясно",
"71-night": "Light Snow",
"73-day": "Snow",
"73-night": "Snow",
"75-day": "Heavy Snow",
"75-night": "Heavy Snow",
"77-day": "Snow Grains",
"77-night": "Snow Grains",
"80-day": "Light Showers",
"80-night": "Light Showers",
"81-day": "Showers",
"71-night": "Лёгкий снег",
"73-day": "Снег",
"73-night": "Снег",
"75-day": "Сильный снегопад",
"75-night": "Сильный снегопад",
"77-day": "Снежные зёрна",
"77-night": "Снежные зёрна",
"80-day": "Слабый дождь",
"80-night": "Слабый дождь",
"81-day": "Ливень",
"1-day": "Преимущественно солнечно",
"1-night": "Преимущественно ясно",
"2-day": "Переменная облачность",
@@ -273,41 +282,41 @@
"53-night": "Моросит",
"55-day": "Сильно моросит",
"55-night": "Сильно моросит",
"56-day": "Light Freezing Drizzle",
"56-night": "Light Freezing Drizzle",
"57-day": "Freezing Drizzle",
"57-night": "Freezing Drizzle",
"61-day": "Light Rain",
"61-night": "Light Rain",
"63-day": "Rain",
"63-night": "Rain",
"65-day": "Heavy Rain",
"65-night": "Heavy Rain",
"66-day": "Freezing Rain",
"66-night": "Freezing Rain",
"67-day": "Freezing Rain",
"67-night": "Freezing Rain",
"71-day": "Light Snow",
"81-night": "Showers",
"82-day": "Heavy Showers",
"82-night": "Heavy Showers",
"85-day": "Snow Showers",
"85-night": "Snow Showers",
"86-day": "Snow Showers",
"86-night": "Snow Showers",
"95-day": "Thunderstorm",
"95-night": "Thunderstorm",
"96-day": "Thunderstorm With Hail",
"96-night": "Thunderstorm With Hail",
"99-day": "Thunderstorm With Hail",
"99-night": "Thunderstorm With Hail"
"56-day": "Лёгкая изморозь",
"56-night": "Лёгкая изморозь",
"57-day": "Изморозь",
"57-night": "Изморозь",
"61-day": "Лёгкий дождь",
"61-night": "Лёгкий дождь",
"63-day": "Дождь",
"63-night": "Дождь",
"65-day": "Сильный дождь",
"65-night": "Сильный дождь",
"66-day": "Ледяной дождь",
"66-night": "Ледяной дождь",
"67-day": "Ледяной дождь",
"67-night": "Ледяной дождь",
"71-day": "Лёгкий снег",
"81-night": "Ливень",
"82-day": "Сильный ливень",
"82-night": "Сильный ливень",
"85-day": "Снегопад",
"85-night": "Снегопад",
"86-day": "Снегопад",
"86-night": "Снегопад",
"95-day": "Гроза",
"95-night": "Гроза",
"96-day": "Гроза с градом",
"96-night": "Гроза с градом",
"99-day": "Гроза с градом",
"99-night": "Гроза с градом"
},
"quicklaunch": {
"bookmark": "Закладка",
"service": "Сервис",
"search": "Поиск",
"custom": "Пользовательский",
"visit": "Visit",
"visit": "Посетить",
"url": "URL"
},
"homebridge": {
@@ -317,9 +326,9 @@
"up_to_date": "Обновлено",
"child_bridges_status": "{{ok}}/{{total}}",
"child_bridges": "Дочерние мосты",
"up": "Up",
"up": "Включено",
"pending": "В ожидании",
"down": "Down"
"down": "Выключено"
},
"autobrr": {
"approvedPushes": "Одобрено",
@@ -330,7 +339,7 @@
"watchtower": {
"containers_scanned": "Отсканировано",
"containers_updated": "Обновлено",
"containers_failed": "Failed"
"containers_failed": "Неудачно"
},
"tubearchivist": {
"downloads": "Очередь",
@@ -350,17 +359,17 @@
},
"pyload": {
"speed": "Скорость",
"active": "Active",
"active": "Активный",
"queue": "Очередь",
"total": "Total"
"total": "Всего"
},
"gluetun": {
"public_ip": "Public IP",
"region": "Region",
"country": "Country"
"public_ip": "Публичный IP",
"region": "Регион",
"country": "Страна"
},
"hdhomerun": {
"channels": "Channels",
"channels": "Каналы",
"hd": "HD"
},
"ping": {
@@ -368,12 +377,12 @@
"ping": "Пинг"
},
"scrutiny": {
"failed": "Failed",
"unknown": "Unknown",
"passed": "Passed"
"failed": "Неудачно",
"unknown": "Неизвестный",
"passed": "Пройдено"
},
"paperlessngx": {
"inbox": "Inbox",
"inbox": "Входящие",
"total": "Всего"
},
"deluge": {
@@ -399,8 +408,8 @@
"unread": "Непрочитанные"
},
"nextdns": {
"wait": "Please Wait",
"no_devices": "No Device Data Received"
"wait": "Пожалуйста, подождите",
"no_devices": "Данные устройства не получены"
},
"common": {
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
@@ -420,27 +429,27 @@
"seed": "Сиды"
},
"mikrotik": {
"cpuLoad": "CPU Load",
"memoryUsed": "Memory Used",
"uptime": "Uptime",
"numberOfLeases": "Leases"
"cpuLoad": "Загрузка процессора",
"memoryUsed": "Использование памяти",
"uptime": "Время работы",
"numberOfLeases": "Аренды"
},
"xteve": {
"streams_all": "All Streams",
"streams_active": "Active Streams",
"streams_xepg": "XEPG Channels"
"streams_all": "Все трансляции",
"streams_active": "Активные трансляции",
"streams_xepg": "XEPG-каналы"
},
"opnsense": {
"cpu": "CPU Load",
"memory": "Active Memory",
"wanUpload": "WAN Upload",
"wanDownload": "WAN Download"
"cpu": "Загрузка процессора",
"memory": "Активная память",
"wanUpload": "Отдача через WAN",
"wanDownload": "Загрузка через WAN"
},
"moonraker": {
"printer_state": "Printer State",
"print_status": "Print Status",
"print_progress": "Progress",
"layers": "Layers"
"printer_state": "Состояние принтера",
"print_status": "Статус печати",
"print_progress": "Прогресс",
"layers": "Слои"
},
"medusa": {
"wanted": "Хотел",
@@ -448,89 +457,91 @@
"series": "Сериалы"
},
"octoprint": {
"printer_state": "Status",
"temp_tool": "Tool temp",
"temp_bed": "Bed temp",
"job_completion": "Completion"
"printer_state": "Статус",
"temp_tool": "Температура инструмента",
"temp_bed": "Температура стола",
"job_completion": "Завершение"
},
"cloudflared": {
"origin_ip": "Origin IP",
"status": "Status"
"origin_ip": "IP источника",
"status": "Статус"
},
"proxmoxbackupserver": {
"datastore_usage": "Datastore",
"failed_tasks_24h": "Failed Tasks 24h",
"cpu_usage": "CPU",
"memory_usage": "Memory"
"datastore_usage": "Хранилище данных",
"failed_tasks_24h": "Неудачные задачи 24ч",
"cpu_usage": "Процессор",
"memory_usage": "Память"
},
"immich": {
"users": "Users",
"photos": "Photos",
"videos": "Videos",
"storage": "Storage"
"users": "Пользователи",
"photos": "Фотографии",
"videos": "Видео",
"storage": "Хранилище"
},
"uptimekuma": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime",
"incident": "Incident",
"m": "m"
"up": "Сайтов включено",
"down": "Сайтов выключено",
"uptime": "Время работы",
"incident": "Инцидент",
"m": "м"
},
"komga": {
"libraries": "Libraries",
"series": "Series",
"books": "Books"
"libraries": "Библиотеки",
"series": "Серии",
"books": "Книги"
},
"mylar": {
"series": "Series",
"issues": "Issues",
"wanted": "Wanted"
"series": "Серии",
"issues": "Проблемы",
"wanted": "Хотел"
},
"photoprism": {
"albums": "Albums",
"photos": "Photos",
"videos": "Videos",
"people": "People"
"albums": "Альбомы",
"photos": "Фотографии",
"videos": "Видео",
"people": "Люди"
},
"diskstation": {
"days": "Days",
"uptime": "Uptime",
"volumeAvailable": "Available"
"days": "Дней",
"uptime": "Время работы",
"volumeAvailable": "Доступно"
},
"fileflows": {
"queue": "Queue",
"processing": "Processing",
"processed": "Processed",
"time": "Time"
"queue": "Очередь",
"processing": "Обработка",
"processed": "Обработано",
"time": "Время"
},
"grafana": {
"dashboards": "Dashboards",
"datasources": "Data Sources",
"totalalerts": "Total Alerts",
"alertstriggered": "Alerts Triggered"
"dashboards": "Панели мониторинга",
"datasources": "Источники данных",
"totalalerts": "Всего уведомлений",
"alertstriggered": "Уведомлений сработало"
},
"nextcloud": {
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"cpuload": "Загрузка процессора",
"memoryusage": "Использование памяти",
"freespace": "Свободное место",
"activeusers": "Активные пользователи",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
"size": "Size",
"lastrun": "Last Run",
"nextrun": "Next Run",
"failed": "Failed"
"status": "Статус",
"size": "Размер",
"lastrun": "Последний запуск",
"nextrun": "Следующий запуск",
"failed": "Неудачно"
},
"unmanic": {
"active_workers": "Active Workers",
"total_workers": "Total Workers",
"records_total": "Queue Length"
"active_workers": "Активные воркеры",
"total_workers": "Всего воркеров",
"records_total": "Длина запроса"
},
"healthchecks": {
"new": "Новые",
"up": "Онлайн",
"grace": "In Grace Period",
"grace": "В льготный период",
"down": "Офлайн",
"paused": "Приостановлено",
"status": "Статус",
@@ -538,13 +549,13 @@
"never": "Пока нет пингов"
},
"pterodactyl": {
"servers": "Servers",
"nodes": "Nodes"
"servers": "Сервера",
"nodes": "Узлы"
},
"prometheus": {
"targets_up": "Targets Up",
"targets_down": "Targets Down",
"targets_total": "Total Targets"
"targets_up": "Целей включено",
"targets_down": "Целей выключено",
"targets_total": "Всего целей"
},
"minecraft": {
"players": "Игроков",
@@ -554,33 +565,84 @@
"down": "Офлайн"
},
"ghostfolio": {
"gross_percent_today": "Today",
"gross_percent_1y": "One year",
"gross_percent_max": "All time"
"gross_percent_today": "Сегодня",
"gross_percent_1y": "1 год",
"gross_percent_max": "За всё время"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
"podcasts": "Подкасты",
"books": "Книги",
"podcastsDuration": "Продолжительность",
"booksDuration": "Продолжительность"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
"people_home": "Людей дома",
"lights_on": "Включено света",
"switches_on": "Включено переключателей"
},
"freshrss": {
"subscriptions": "Подписки",
"unread": "Непрочитанные"
},
"channelsdvrserver": {
"shows": "Shows",
"shows": "Сериалы",
"recordings": "Записи",
"scheduled": "Запланировано",
"passes": "Passes"
"passes": "Пройдено"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
"monitoring": "Мониторинг",
"updates": "Обновления"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"disk": "Disk Usage",
"wanIP": "WAN IP",
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"home_power": "Consumption",
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+69 -7
View File
@@ -273,18 +273,22 @@
"sonarr": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
"series": "Series",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Wanted",
"missing": "Missing",
"queued": "Queued",
"movies": "Movies"
"movies": "Movies",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Wanted",
"queued": "Queued",
"albums": "Albums"
"artists": "Artists"
},
"readarr": {
"wanted": "Wanted",
@@ -314,7 +318,8 @@
"pihole": {
"queries": "Queries",
"blocked": "Blocked",
"gravity": "Gravity"
"gravity": "Gravity",
"blocked_percent": "Blocked %"
},
"adguard": {
"queries": "Queries",
@@ -397,12 +402,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Please wait",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"quicklaunch": {
"bookmark": "Bookmark",
@@ -534,7 +543,9 @@
"freespace": "Free Space",
"activeusers": "Active Users",
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage"
"memoryusage": "Memory Usage",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"years": "{{number}}y",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"disk": "Disk Usage",
"down": "Down",
"temp": "Temp",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+82 -20
View File
@@ -17,7 +17,8 @@
"pihole": {
"queries": "Poizvedbe",
"blocked": "Blokirano",
"gravity": "Gravitacija"
"gravity": "Gravitacija",
"blocked_percent": "Blokirano %"
},
"adguard": {
"filtered": "Filtrirano",
@@ -68,7 +69,9 @@
"cpuload": "CPU obremenitev",
"memoryusage": "Uporabljen spomin",
"freespace": "Prostor na voljo",
"activeusers": "Aktivni uporabniki"
"activeusers": "Aktivni uporabniki",
"numfiles": "Datotek",
"numshares": "Deljeno"
},
"kopia": {
"status": "Stanje",
@@ -193,10 +196,10 @@
"streams": "Aktivna vsebina",
"movies": "Filmi",
"tv": "TV serije",
"albums": "Albums"
"albums": "Albumi"
},
"sabnzbd": {
"rate": "Hitrost prenosa",
"rate": "Hitrost",
"queue": "Vrsta",
"timeleft": "Preostali čas"
},
@@ -232,18 +235,22 @@
"sonarr": {
"wanted": "Iskano",
"queued": "V vrsti",
"series": "Serije"
"series": "Serije",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Iskano",
"missing": "Manjkajoče",
"missing": "Manjka",
"queued": "V vrsti",
"movies": "Filmi"
"movies": "Filmi",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Iskano",
"queued": "V vrsti",
"albums": "Albumi"
"artists": "Artists"
},
"readarr": {
"wanted": "Iskano",
@@ -281,7 +288,7 @@
"enabled": "Omogočen"
},
"coinmarketcap": {
"configure": "Konfigurirajte eno ali več kripto valut za sledenje",
"configure": "Nastavite eno ali več kripto valut za sledenje",
"1hour": "1 ura",
"1day": "1 dan",
"7days": "7 dni",
@@ -341,18 +348,22 @@
},
"proxmox": {
"lxc": "LXC",
"vms": "VM-ji",
"vms": "VM",
"mem": "MEM",
"cpu": "CPU"
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Prosim počakajte",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "u"
"hours": "u",
"free": "Free",
"load": "Load",
"warn": "Warn",
"total": "Total",
"used": "Used"
},
"authentik": {
"users": "Uporabniki",
@@ -521,10 +532,10 @@
"storage": "Shramba"
},
"uptimekuma": {
"up": "Povezanih strani",
"down": "Nepovezanih strani",
"up": "Deluje",
"down": "Ne deluje",
"uptime": "Čas delovanja",
"incident": "Težave",
"incident": "Incident",
"m": "m"
},
"komga": {
@@ -561,11 +572,11 @@
"audiobookshelf": {
"podcasts": "Podcasti",
"books": "Knjige",
"podcastsDuration": "Dolžina",
"booksDuration": "Dolžina"
"podcastsDuration": "Trajanje",
"booksDuration": "Trajanje"
},
"homeassistant": {
"people_home": "Ljudi doma",
"people_home": "Ljudje doma",
"lights_on": "Vklopljene luči",
"switches_on": "Vklopljena stikala"
},
@@ -580,7 +591,58 @@
"passes": "Prehodi"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
"monitoring": "Se spremlja",
"updates": "Posodobitve"
},
"tailscale": {
"address": "Naslov",
"expires": "Poteče",
"never": "Nikoli",
"last_seen": "Viden",
"now": "Sedaj",
"years": "{{number}}l",
"weeks": "{{number}}t",
"days": "{{number}}d",
"hours": "{{number}}u",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} nazaj"
},
"qnap": {
"cpuUsage": "CPU",
"memUsage": "MEM",
"systemTempC": "Temperatura",
"poolUsage": "Prostor",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Povp. obremenitev",
"memory": "Poraba spomina",
"wanStatus": "WAN Status",
"up": "Nalaganje",
"down": "Prenašanje",
"temp": "Temperatura",
"disk": "Poraba diska",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Pretok gor",
"requests": "Trenutnih zahtev",
"requests_failed": "Neuspešnih zahtev"
},
"evcc": {
"pv_power": "Proizvodnja",
"battery_soc": "Baterija",
"grid_power": "Omrežje",
"home_power": "Poraba",
"charge_power": "Polnilec",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+69 -7
View File
@@ -117,18 +117,22 @@
"sonarr": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
"series": "Series",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Wanted",
"queued": "Queued",
"movies": "Movies",
"missing": "Missing"
"missing": "Missing",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Wanted",
"queued": "Queued",
"albums": "Albums"
"artists": "Artists"
},
"readarr": {
"wanted": "Wanted",
@@ -158,7 +162,8 @@
"pihole": {
"queries": "Queries",
"blocked": "Blocked",
"gravity": "Gravity"
"gravity": "Gravity",
"blocked_percent": "Blocked %"
},
"adguard": {
"queries": "Queries",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Please wait",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"changedetectionio": {
"totalObserved": "Total Observed",
@@ -513,7 +522,9 @@
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"now": "Now",
"years": "{{number}}y",
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"memory": "Mem Usage",
"load": "Load Avg",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+69 -7
View File
@@ -88,18 +88,22 @@
"sonarr": {
"wanted": "Eftersöker",
"queued": "I kö",
"series": "Serier"
"series": "Serier",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Eftersöker",
"queued": "I kö",
"movies": "Filmer",
"missing": "Missing"
"missing": "Missing",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Eftersöker",
"queued": "I kö",
"albums": "Album"
"artists": "Artists"
},
"readarr": {
"wanted": "Eftersökt",
@@ -129,7 +133,8 @@
"pihole": {
"blocked": "Blockerad",
"queries": "Förfrågningar",
"gravity": "Gravity"
"gravity": "Gravity",
"blocked_percent": "Blocked %"
},
"speedtest": {
"upload": "Uppladdning",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Vänligen vänta",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"changedetectionio": {
"totalObserved": "Total Observed",
@@ -513,7 +522,9 @@
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+69 -7
View File
@@ -111,18 +111,22 @@
"sonarr": {
"wanted": "కావలెను",
"queued": "క్యూయూఎడ్",
"series": "సిరీస్"
"series": "సిరీస్",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "కావలెను",
"queued": "క్యూయూఎడ్",
"movies": "సినిమాలు",
"missing": "మిస్సింగ్"
"missing": "మిస్సింగ్",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "కావలెను",
"queued": "క్యూయూఎడ్",
"albums": "ఆల్బములు"
"artists": "Artists"
},
"bazarr": {
"missingEpisodes": "ఎపిసోడ్‌లు లేవు",
@@ -147,7 +151,8 @@
"pihole": {
"queries": "ప్రశ్నలు",
"blocked": "నిరోధించబడింది",
"gravity": "గురుత్వాకర్షణ"
"gravity": "గురుత్వాకర్షణ",
"blocked_percent": "Blocked %"
},
"speedtest": {
"upload": "అప్లోడ్",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "సీపియూ",
"mem": "MEM",
"wait": "దయచేసి వేచి ఉండండి",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"changedetectionio": {
"totalObserved": "మొత్తం గమనించబడింది",
@@ -513,7 +522,9 @@
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"cpuload": "Cpu Load",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+69 -7
View File
@@ -190,7 +190,9 @@
"sonarr": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
"series": "Series",
"queue": "Queue",
"unknown": "Unknown"
},
"readarr": {
"queued": "Queued",
@@ -216,12 +218,14 @@
"wanted": "Wanted",
"missing": "Missing",
"queued": "Queued",
"movies": "Movies"
"movies": "Movies",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Wanted",
"queued": "Queued",
"albums": "Albums"
"artists": "Artists"
},
"ombi": {
"pending": "Pending",
@@ -242,7 +246,8 @@
"pihole": {
"queries": "Queries",
"blocked": "Blocked",
"gravity": "Gravity"
"gravity": "Gravity",
"blocked_percent": "Blocked %"
},
"adguard": {
"queries": "Queries",
@@ -309,12 +314,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Please wait",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"quicklaunch": {
"bookmark": "Bookmark",
@@ -513,7 +522,9 @@
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"address": "Address",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+110 -48
View File
@@ -24,13 +24,13 @@
"used": "Kullanımda",
"load": "Yük",
"mem": "MEM",
"temp": "TEMP",
"max": "Max",
"uptime": "UP",
"months": "mo",
"days": "d",
"hours": "h",
"minutes": "m"
"temp": "Geçici",
"max": "En Yüksek",
"uptime": "Çalışma Süresi",
"months": "Ay",
"days": "Gün",
"hours": "Saat",
"minutes": "Dakika"
},
"unifi": {
"users": "Kullanıcılar",
@@ -57,23 +57,23 @@
"offline": "Çevrimdışı",
"error": "Hata",
"unknown": "Bilinmiyor",
"running": "Running",
"starting": "Starting",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
"running": "Çalışan",
"starting": "Başlatılıyor",
"unhealthy": "Sağlıksız",
"not_found": "Bulunamadı",
"exited": "Durduruldu",
"partial": "Parçalı",
"healthy": "Sağlık"
},
"emby": {
"playing": "Oynatılıyor",
"transcoding": "Dönüştürülüyor",
"bitrate": "Bit Oranı",
"no_active": "Aktif akış yok",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
"movies": "Filmler",
"series": "Diziler",
"episodes": "Bölümler",
"songs": "Şarkılar"
},
"tautulli": {
"playing": "Oynatılıyor",
@@ -90,7 +90,7 @@
"streams": "Aktif Akış",
"movies": "Filmler",
"tv": "TV Showları",
"albums": "Albums"
"albums": "Albümler"
},
"sabnzbd": {
"rate": "Oran",
@@ -117,18 +117,22 @@
"sonarr": {
"wanted": "Aranan",
"queued": "Kuyrukta",
"series": "Seriler"
"series": "Seriler",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Aranan",
"queued": "Kuyrukta",
"movies": "Filmler",
"missing": "Kayıp"
"missing": "Kayıp",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Aranan",
"queued": "Kuyrukta",
"albums": "Albümler"
"artists": "Artists"
},
"readarr": {
"wanted": "Aranan",
@@ -158,7 +162,8 @@
"pihole": {
"queries": "Sorgular",
"blocked": "Engellenen",
"gravity": "Yer Çekimi"
"gravity": "Yer Çekimi",
"blocked_percent": "Engellenen %"
},
"adguard": {
"queries": "Sorgular",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "İşlemci",
"mem": "Bellek",
"wait": "Lütfen bekleyiniz",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"temp": "Sıcaklık",
"uptime": "Çalışma Süresi",
"days": "Gün",
"hours": "Saat",
"load": "Yük",
"warn": "Uyarı",
"total": "Toplam",
"free": "Boş",
"used": "Kullanım"
},
"changedetectionio": {
"totalObserved": "Toplam Gözlenen",
@@ -306,9 +315,9 @@
"bookmark": "Yer İmi",
"service": "Hizmet",
"search": "Ara",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
"custom": "Özel",
"visit": "Ziyaret",
"url": "Link"
},
"homebridge": {
"available_update": "Sistem",
@@ -379,14 +388,14 @@
"deluge": {
"download": "İndir",
"upload": "Yükle",
"leech": "Leech",
"leech": "Tüketici",
"seed": "Tohum"
},
"flood": {
"download": "İndir",
"upload": "Yükle",
"leech": "Leech",
"seed": "Tohum"
"leech": "Tüketici",
"seed": "Sağlayıcı"
},
"tdarr": {
"queue": "Sıra",
@@ -416,7 +425,7 @@
"downloadstation": {
"download": "İndir",
"upload": "Yükle",
"leech": "Leech",
"leech": "Tüketici",
"seed": "Tohum"
},
"mikrotik": {
@@ -443,7 +452,7 @@
"layers": "Katmanlar"
},
"medusa": {
"wanted": "Wanted",
"wanted": "Aranan",
"queued": "Kuyrukta",
"series": "Seri"
},
@@ -513,7 +522,9 @@
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -547,11 +558,11 @@
"targets_total": "Total Targets"
},
"minecraft": {
"players": "Players",
"version": "Version",
"status": "Status",
"up": "Online",
"down": "Offline"
"players": "Oyuncular",
"version": "Versiyon",
"status": "Durum",
"up": "Çevrimiçi",
"down": "Çevrimdışı"
},
"ghostfolio": {
"gross_percent_today": "Today",
@@ -570,17 +581,68 @@
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
"subscriptions": "Abonelikler",
"unread": "Okunmamış"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
"shows": "Diziler",
"recordings": "Kayıtlar",
"scheduled": "Planlanmış",
"passes": "Geçilenler"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"never": "Asla",
"last_seen": "Son Görülme",
"now": "Şimdi",
"years": "{{number}} Yıl",
"weeks": "{{number}} Hafta",
"days": "{{number}} Gün",
"hours": "{{number}} Saat",
"minutes": "{{number}} Dakika",
"seconds": "{{number}} Saniye",
"ago": "{{value}} Önce",
"address": "Adres",
"expires": "Geciken"
},
"qnap": {
"cpuUsage": "İşlemci Kullanımı",
"memUsage": "Bellek Kullanımı",
"systemTempC": "Sistem Sıcaklığı",
"poolUsage": "Havuz Kullanımı",
"volumeUsage": "Alan Kullanımı",
"invalid": "Geçersiz"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Akış",
"requests": "Anlık İstekler",
"requests_failed": "Başarısız İstekler"
},
"evcc": {
"pv_power": "Üretim",
"battery_soc": "Batarya",
"grid_power": "Güç",
"home_power": "Tüketim",
"charge_power": "Şarj",
"watt_hour": "Watt/Saat"
},
"pialert": {
"total": "Toplam",
"connected": "Bağlandı",
"new_devices": "Yeni Cihazlar",
"down_alerts": "Düşme Uyarıları"
}
}
+70 -8
View File
@@ -127,7 +127,7 @@
"total": "Всього",
"free": "Вільно",
"used": "Використано",
"load": "Навантаження",
"load": "Завантаження",
"mem": "Пам'ять",
"temp": "TEMP",
"max": "Max",
@@ -232,18 +232,22 @@
"sonarr": {
"wanted": "Розшукується",
"queued": "У черзі",
"series": "Серії"
"series": "Серії",
"queue": "Черга",
"unknown": "Невідомо"
},
"radarr": {
"wanted": "Розшукується",
"missing": "Відсутній",
"queued": "У черзі",
"movies": "Фільми"
"movies": "Фільми",
"queue": "Черга",
"unknown": "Невідомо"
},
"lidarr": {
"wanted": "Розшукується",
"queued": "У черзі",
"albums": "Альбоми"
"artists": "Виконавці"
},
"traefik": {
"middleware": "Проміжне програмне забезпечення",
@@ -277,7 +281,8 @@
"pihole": {
"queries": "Запити",
"blocked": "Заблоковано",
"gravity": "Гравітація"
"gravity": "Гравітація",
"blocked_percent": "Заблоковано %"
},
"adguard": {
"queries": "Запити",
@@ -357,12 +362,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "Пам'ять",
"wait": "Будь ласка, зачекайте",
"temp": "TEMP",
"uptime": "Відправка",
"days": "д",
"hours": "г"
"hours": "г",
"load": "Завантаження",
"warn": "Увага",
"total": "Всього",
"free": "Вільний",
"used": "Використовується"
},
"quicklaunch": {
"bookmark": "Закладка",
@@ -513,7 +522,9 @@
"cpuload": "Навантаження Cpu",
"memoryusage": "Використання пам'яті",
"freespace": "Вільного місця",
"activeusers": "Активні користувачі"
"activeusers": "Активні користувачі",
"numfiles": "Файли",
"numshares": "Спільні елементи"
},
"kopia": {
"status": "Статус",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Спостереження",
"updates": "Оновлення"
},
"tailscale": {
"address": "Адреса",
"expires": "Дійсний до",
"never": "Ніколи",
"last_seen": "Востаннє у мережі",
"now": "Зараз",
"years": "{{number}}р",
"weeks": "{{number}}тиж",
"days": "{{number}}д",
"hours": "{{number}}год",
"minutes": "{{number}}хв",
"seconds": "{{number}}с",
"ago": "{{value}} тому"
},
"qnap": {
"cpuUsage": "Використання CPU",
"memUsage": "Використання пам'яті",
"systemTempC": "Температура системи",
"poolUsage": "Використання пулу",
"volumeUsage": "Гучність",
"invalid": "Недійсний"
},
"pfsense": {
"load": "Середнє завантаження",
"memory": "Використання пам'яті",
"wanStatus": "Статус WAN",
"up": "Вгору",
"down": "Вниз",
"temp": "Температура",
"disk": "Використання диска",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Потоки",
"requests": "Поточні запити",
"requests_failed": "Невдалі запити"
},
"evcc": {
"pv_power": "Виробництво",
"battery_soc": "Батарея",
"grid_power": "Сітка",
"home_power": "Споживання",
"charge_power": "Зарядний пристрій",
"watt_hour": "Вт/год"
},
"pialert": {
"total": "Всього",
"connected": "Підключено",
"new_devices": "Нові пристрої",
"down_alerts": "Сповіщення про збій"
}
}
+69 -7
View File
@@ -66,13 +66,17 @@
"sonarr": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
"series": "Series",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Wanted",
"queued": "Queued",
"movies": "Phim",
"missing": "Missing"
"missing": "Missing",
"queue": "Queue",
"unknown": "Unknown"
},
"readarr": {
"wanted": "Đang tìm",
@@ -92,7 +96,8 @@
"pihole": {
"queries": "Queries",
"blocked": "Blocked",
"gravity": "Gravity"
"gravity": "Gravity",
"blocked_percent": "Blocked %"
},
"speedtest": {
"upload": "Upload",
@@ -172,7 +177,7 @@
"lidarr": {
"wanted": "Wanted",
"queued": "Queued",
"albums": "Albums"
"artists": "Artists"
},
"adguard": {
"queries": "Queries",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Please wait",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"changedetectionio": {
"totalObserved": "Total Observed",
@@ -513,7 +522,9 @@
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"status": "Status",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"hours": "{{number}}h",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+69 -7
View File
@@ -94,18 +94,22 @@
"sonarr": {
"wanted": "想睇",
"queued": "排緊隊",
"series": "電視劇"
"series": "電視劇",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "想睇",
"queued": "排緊隊",
"movies": "電影",
"missing": "Missing"
"missing": "Missing",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "想睇",
"queued": "排緊隊",
"albums": "專輯"
"artists": "Artists"
},
"readarr": {
"wanted": "想睇",
@@ -135,7 +139,8 @@
"pihole": {
"queries": "查詢",
"blocked": "封鎖",
"gravity": "重力"
"gravity": "重力",
"blocked_percent": "Blocked %"
},
"adguard": {
"queries": "查詢",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Please wait",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"changedetectionio": {
"totalObserved": "Total Observed",
@@ -513,7 +522,9 @@
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users"
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
},
"kopia": {
"lastrun": "Last Run",
@@ -582,5 +593,56 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+94 -32
View File
@@ -33,7 +33,7 @@
"cpu": "处理器",
"offline": "离线",
"error": "错误",
"unknown": "未知",
"unknown": "未知问题",
"starting": "启动中",
"unhealthy": "不健康的",
"not_found": "未找到",
@@ -66,13 +66,17 @@
"sonarr": {
"wanted": "想看",
"queued": "排队",
"series": "系列"
"series": "系列",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "想看",
"queued": "队列",
"movies": "电影",
"missing": "丢失"
"missing": "丢失",
"queue": "Queue",
"unknown": "Unknown"
},
"readarr": {
"wanted": "订阅",
@@ -92,7 +96,8 @@
"pihole": {
"queries": "查询",
"blocked": "阻止",
"gravity": "重力"
"gravity": "重力",
"blocked_percent": "拦截 %"
},
"speedtest": {
"upload": "上传",
@@ -124,7 +129,7 @@
"pending": "待办",
"approved": "已批准",
"available": "可用",
"processing": "Processing"
"processing": "处理中"
},
"sabnzbd": {
"rate": "速率",
@@ -172,7 +177,7 @@
"lidarr": {
"wanted": "订阅",
"queued": "队列",
"albums": "相册"
"artists": "Artists"
},
"adguard": {
"queries": "查询",
@@ -233,12 +238,16 @@
},
"glances": {
"cpu": "处理器",
"mem": "内存",
"wait": "请稍等",
"temp": "温度",
"uptime": "运行时间",
"days": "天",
"hours": "时"
"hours": "时",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used"
},
"changedetectionio": {
"totalObserved": "观察到的总数",
@@ -315,7 +324,7 @@
"updates": "更新",
"update_available": "有可用的更新",
"up_to_date": "Up to Date",
"child_bridges": "Child Bridges",
"child_bridges": "子网桥",
"child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "待定中",
@@ -328,8 +337,8 @@
"indexers": "索引器"
},
"watchtower": {
"containers_scanned": "以扫描",
"containers_updated": "以升级",
"containers_scanned": "已扫描",
"containers_updated": "已升级",
"containers_failed": "失败"
},
"tubearchivist": {
@@ -355,8 +364,8 @@
"total": "Total"
},
"gluetun": {
"public_ip": "Public IP",
"region": "Region",
"public_ip": "公网 IP",
"region": "区域",
"country": "国家"
},
"hdhomerun": {
@@ -420,10 +429,10 @@
"seed": "做种"
},
"mikrotik": {
"cpuLoad": "处理器负载",
"memoryUsed": "内存使用",
"cpuLoad": "处理器",
"memoryUsed": "内存",
"uptime": "运行时间",
"numberOfLeases": "已连接"
"numberOfLeases": "租约"
},
"xteve": {
"streams_all": "所有播放活动",
@@ -431,15 +440,15 @@
"streams_xepg": "XEPG 频道"
},
"opnsense": {
"cpu": "处理器负载",
"memory": "空闲内存",
"cpu": "处理器",
"memory": "内存",
"wanUpload": "WAN上传",
"wanDownload": "WAN下载"
},
"moonraker": {
"printer_state": "打印机状态",
"print_status": "打印状态",
"print_progress": "Progress",
"print_progress": "打印进程",
"layers": "层"
},
"medusa": {
@@ -448,14 +457,14 @@
"series": "Series"
},
"octoprint": {
"printer_state": "Status",
"printer_state": "打印机状态",
"temp_tool": "喷头温度",
"temp_bed": "平台温度",
"job_completion": "完成度"
},
"cloudflared": {
"origin_ip": "源IP",
"status": "Status"
"status": "状态"
},
"proxmoxbackupserver": {
"datastore_usage": "数据存储",
@@ -510,10 +519,12 @@
"alertstriggered": "触发的警报"
},
"nextcloud": {
"cpuload": "处理器负载",
"memoryusage": "内存占用",
"cpuload": "处理器",
"memoryusage": "内存",
"freespace": "剩余空间",
"activeusers": "活跃用户"
"activeusers": "活跃用户",
"numfiles": "Files",
"numshares": "共享项目"
},
"kopia": {
"status": "状态",
@@ -542,12 +553,12 @@
"nodes": "节点"
},
"prometheus": {
"targets_up": "目标离线",
"targets_up": "目标上线",
"targets_down": "目标在线",
"targets_total": "总目标"
},
"minecraft": {
"players": "播放中",
"players": "玩家",
"version": "版本",
"status": "状态",
"up": "在线的",
@@ -565,9 +576,9 @@
"booksDuration": "持续时间"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
"people_home": "房间",
"lights_on": "照明开",
"switches_on": "开关开"
},
"freshrss": {
"subscriptions": "订阅",
@@ -577,10 +588,61 @@
"shows": "节目",
"recordings": "录像",
"scheduled": "已计划的",
"passes": "Passes"
"passes": "通行证"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
"monitoring": "监测中",
"updates": "可更新"
},
"tailscale": {
"address": "地址",
"expires": "失效",
"never": "从不",
"last_seen": "最后上线",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} 以前",
"now": "现在",
"years": "{{number}}年",
"weeks": "{{number}}周"
},
"qnap": {
"cpuUsage": "处理器",
"memUsage": "内存",
"systemTempC": "系统温度",
"poolUsage": "存储池",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "平均负载",
"memory": "内存",
"wanStatus": "WAN 状态",
"up": "上传",
"down": "下载",
"temp": "温度",
"disk": "磁盘",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "上游",
"requests": "当前请求",
"requests_failed": "失败请求"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}
+141 -79
View File
@@ -6,7 +6,7 @@
"information": "資訊",
"url": "網址",
"raw_error": "原始錯誤",
"response_data": "回復數據"
"response_data": "回應資料"
},
"weather": {
"current": "目前位置",
@@ -21,24 +21,24 @@
"mem": "記憶體",
"cpu": "處理器",
"error": "錯誤",
"unknown": "未知的",
"unknown": "未知",
"running": "執行中",
"starting": "啟動中",
"unhealthy": "不健康的",
"not_found": "未找到",
"exited": "Exited",
"partial": "Partial",
"healthy": "健康的"
"exited": "已退出",
"partial": "部分",
"healthy": "健康"
},
"emby": {
"playing": "正在播放",
"transcoding": "轉碼",
"bitrate": "位元率",
"no_active": "無播放活動",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
"movies": "電影",
"series": "影集",
"episodes": "集",
"songs": "曲目"
},
"tautulli": {
"playing": "正在播放",
@@ -61,13 +61,13 @@
"load": "負載",
"cpu": "CPU",
"mem": "記憶體",
"temp": "TEMP",
"max": "Max",
"uptime": "UP",
"months": "mo",
"days": "d",
"hours": "h",
"minutes": "m"
"temp": "溫度",
"max": "最大",
"uptime": "運作時間",
"months": "月",
"days": "日",
"hours": "時",
"minutes": "分"
},
"nzbget": {
"rate": "速率",
@@ -88,17 +88,21 @@
"movies": "電影",
"wanted": "關注中",
"queued": "已加入佇列",
"missing": "缺少"
"missing": "缺少",
"queue": "Queue",
"unknown": "Unknown"
},
"sonarr": {
"wanted": "關注中",
"queued": "已加入佇列",
"series": "影集"
"series": "影集",
"queue": "Queue",
"unknown": "Unknown"
},
"readarr": {
"wanted": "關注中",
"queued": "已加入佇列",
"books": "書籍"
"books": "叢書"
},
"ombi": {
"pending": "待下載",
@@ -114,7 +118,8 @@
"pihole": {
"queries": "查詢",
"blocked": "已阻擋",
"gravity": "Gravity"
"gravity": "阻擋清單",
"blocked_percent": "已封鎖 %"
},
"speedtest": {
"upload": "上行速率",
@@ -122,8 +127,8 @@
"ping": "Ping"
},
"portainer": {
"running": "運行中",
"stopped": "未運行",
"running": "運作中",
"stopped": "已停止",
"total": "全部"
},
"traefik": {
@@ -162,7 +167,7 @@
"seed": "已完成下載"
},
"jackett": {
"configured": "已配置",
"configured": "已設置",
"errored": "發生錯誤"
},
"bazarr": {
@@ -172,7 +177,7 @@
"lidarr": {
"wanted": "關注中",
"queued": "已加入佇列",
"albums": "專輯"
"artists": "Artists"
},
"adguard": {
"queries": "查詢",
@@ -199,8 +204,8 @@
},
"authentik": {
"users": "使用者",
"loginsLast24H": "登錄(24h)",
"failedLoginsLast24H": "登錄失敗(24h)"
"loginsLast24H": "登入 (過去 24 小時)",
"failedLoginsLast24H": "登入失敗 (過去 24 小時)"
},
"proxmox": {
"mem": "記憶體",
@@ -210,42 +215,46 @@
},
"unifi": {
"users": "使用者",
"uptime": "系統運行時間",
"uptime": "系統運作時間",
"days": "天",
"wan": "WAN",
"lan_users": "LAN使用者",
"wlan_users": "WLAN使用者",
"lan_users": "有線使用者",
"wlan_users": "無線使用者",
"up": "上線",
"down": "離線",
"wait": "請稍後",
"lan": "LAN",
"wlan": "WLAN",
"devices": "設備",
"lan_devices": "LAN設備",
"wlan_devices": "WLAN設備",
"lan_devices": "有線設備",
"wlan_devices": "無線設備",
"empty_data": "子系統狀態未知"
},
"plex": {
"streams": "正在播放",
"movies": "電影",
"tv": "影集",
"albums": "Albums"
"albums": "專輯"
},
"glances": {
"cpu": "CPU",
"mem": "記憶體",
"wait": "請稍後",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"temp": "溫度",
"uptime": "運行時間",
"days": "天",
"hours": "時",
"free": "未使用",
"used": "已使用",
"load": "負載量",
"warn": "警告",
"total": "總共"
},
"changedetectionio": {
"totalObserved": "總監測數",
"diffsDetected": "偵測到的變更"
},
"wmo": {
"0-day": "晴",
"0-day": "晴天",
"0-night": "晴朗",
"71-day": "小雪",
"71-night": "小雪",
@@ -307,8 +316,8 @@
"service": "服務",
"search": "搜尋",
"custom": "自訂",
"visit": "Visit",
"url": "URL"
"visit": "造訪",
"url": "網址"
},
"homebridge": {
"available_update": "系統",
@@ -317,9 +326,9 @@
"up_to_date": "已更新至最新",
"child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
"up": "在線",
"pending": "處理中",
"down": "離線"
},
"autobrr": {
"approvedPushes": "已核准",
@@ -350,7 +359,7 @@
},
"pyload": {
"speed": "速度",
"active": "運行中",
"active": "執行中",
"queue": "佇列",
"total": "全部"
},
@@ -479,7 +488,7 @@
"komga": {
"libraries": "文庫",
"series": "叢刊",
"books": "書刊"
"books": "叢書"
},
"mylar": {
"series": "系列",
@@ -513,19 +522,21 @@
"cpuload": "處理器負載",
"memoryusage": "記憶體用量",
"freespace": "可用空間",
"activeusers": "活躍用戶"
"activeusers": "活躍用戶",
"numfiles": "檔案",
"numshares": "已分享"
},
"kopia": {
"status": "狀態",
"size": "檔案大小",
"lastrun": "上次運行",
"nextrun": "下次運行",
"lastrun": "上次執行",
"nextrun": "下次執行",
"failed": "失敗"
},
"unmanic": {
"active_workers": "Active Workers",
"total_workers": "Total Workers",
"records_total": "Queue Length"
"active_workers": "在線工作程序",
"total_workers": "總工作程序",
"records_total": "佇列長度"
},
"healthchecks": {
"new": "新建立",
@@ -538,49 +549,100 @@
"never": "尚未檢查"
},
"pterodactyl": {
"servers": "Servers",
"nodes": "Nodes"
"servers": "伺服器",
"nodes": "節點"
},
"prometheus": {
"targets_up": "Targets Up",
"targets_down": "Targets Down",
"targets_total": "Total Targets"
"targets_up": "目標上線",
"targets_down": "目標離線",
"targets_total": "目標總數"
},
"minecraft": {
"players": "Players",
"version": "Version",
"status": "Status",
"up": "Online",
"down": "Offline"
"players": "玩家",
"version": "版本",
"status": "狀態",
"up": "上線",
"down": "離線"
},
"ghostfolio": {
"gross_percent_today": "Today",
"gross_percent_1y": "One year",
"gross_percent_max": "All time"
"gross_percent_today": "今日",
"gross_percent_1y": "一年",
"gross_percent_max": "所有時間"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
"podcasts": "播客",
"books": "叢書",
"podcastsDuration": "歷時",
"booksDuration": "歷時"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
"people_home": "在家人數",
"lights_on": "燈亮著",
"switches_on": "開關開著"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
"subscriptions": "訂閱",
"unread": "未讀"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
"shows": "節目",
"recordings": "錄影",
"scheduled": "已排定",
"passes": "通行證"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
"monitoring": "監測中",
"updates": "可更新"
},
"tailscale": {
"address": "位址",
"expires": "已失效",
"never": "未曾",
"last_seen": "上次連線",
"now": "現在",
"years": "{{number}} 年",
"hours": "{{number}} 小時",
"minutes": "{{number}} 分鐘",
"seconds": "{{number}} 秒",
"ago": "{{value}} 前",
"weeks": "{{number}} 週",
"days": "{{number}} 天"
},
"qnap": {
"cpuUsage": "CPU 使用率",
"memUsage": "記憶體使用率",
"systemTempC": "系統溫度",
"poolUsage": "儲存池使用率",
"volumeUsage": "儲存區用量",
"invalid": "無效的"
},
"pfsense": {
"load": "平均負載量",
"memory": "記憶體使用率",
"wanStatus": "網際網路狀態",
"up": "已連線",
"down": "已離線",
"temp": "溫度",
"disk": "硬碟使用率",
"wanIP": "網際網路 IP"
},
"caddy": {
"upstreams": "上行",
"requests": "目前請求數",
"requests_failed": "失敗請求"
},
"evcc": {
"grid_power": "電網",
"home_power": "電源使用率",
"charge_power": "充電",
"pv_power": "正式環境",
"battery_soc": "電池",
"watt_hour": "瓦時 (Wh)"
},
"pialert": {
"total": "全部",
"connected": "已連線",
"new_devices": "新裝置",
"down_alerts": "離線警告"
}
}
+1 -1
View File
@@ -4,7 +4,7 @@ export default function List({ bookmarks }) {
return (
<ul className="mt-3 flex flex-col">
{bookmarks.map((bookmark) => (
<Item key={bookmark.name} bookmark={bookmark} />
<Item key={`${bookmark.name}-${bookmark.href}`} bookmark={bookmark} />
))}
</ul>
);
+1 -1
View File
@@ -161,7 +161,7 @@ export default function QuickLaunch({servicesAndBookmarks, searchString, setSear
)} type="text" autoCorrect="false" ref={searchField} value={searchString} onChange={handleSearchChange} onKeyDown={handleSearchKeyDown} />
{results.length > 0 && <ul className="max-h-[60vh] overflow-y-auto m-2">
{results.map((r, i) => (
<li key={r.container ?? r.app ?? r.name}>
<li key={r.container ?? r.app ?? `${r.name}-${r.href}`}>
<button type="button" data-index={i} onMouseEnter={handleItemHover} className={classNames(
"flex flex-row w-full items-center justify-between rounded-md text-sm md:text-xl py-2 px-4 cursor-pointer text-theme-700 dark:text-theme-200",
i === currentItemIndex && "bg-theme-300/50 dark:bg-theme-700/50",
+25 -1
View File
@@ -24,6 +24,8 @@ export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "log
width,
height,
objectFit: "contain",
maxHeight: "100%",
maxWidth: "100%",
}}
alt={alt}
/>
@@ -46,7 +48,7 @@ export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "log
maxWidth: '100%',
maxHeight: '100%',
background: settings.iconStyle === "theme" ?
`rgb(var(--color-${ theme === "dark" ? 300 : 900 }) / var(--tw-text-opacity))` :
`rgb(var(--color-${ theme === "dark" ? 300 : 900 }) / var(--tw-text-opacity, 1))` :
"linear-gradient(180deg, rgb(var(--color-logo-start)), rgb(var(--color-logo-stop)))",
mask: `url(${iconSource}) no-repeat center / contain`,
WebkitMask: `url(${iconSource}) no-repeat center / contain`,
@@ -55,7 +57,27 @@ export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "log
);
}
// fallback to dashboard-icons
if (icon.endsWith(".svg")) {
const iconName = icon.replace(".svg", "");
return (
<Image
src={`https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/svg/${iconName}.svg`}
width={width}
height={height}
style={{
width,
height,
objectFit: "contain",
maxHeight: "100%",
maxWidth: "100%"
}}
alt={alt}
/>
);
}
const iconName = icon.replace(".png", "");
return (
<Image
@@ -66,6 +88,8 @@ export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "log
width,
height,
objectFit: "contain",
maxHeight: "100%",
maxWidth: "100%"
}}
alt={alt}
/>
+2 -2
View File
@@ -3,7 +3,7 @@ import classNames from "classnames";
import List from "components/services/list";
import ResolvedIcon from "components/resolvedicon";
export default function ServicesGroup({ services, layout, fiveColumns }) {
export default function ServicesGroup({ group, services, layout, fiveColumns }) {
return (
<div
key={services.name}
@@ -21,7 +21,7 @@ export default function ServicesGroup({ services, layout, fiveColumns }) {
}
<h2 className="text-theme-800 dark:text-theme-300 text-xl font-medium">{services.name}</h2>
</div>
<List services={services.services} layout={layout} />
<List group={group} services={services.services} layout={layout} />
</div>
);
}
+2 -2
View File
@@ -11,7 +11,7 @@ import Kubernetes from "widgets/kubernetes/component";
import { SettingsContext } from "utils/contexts/settings";
import ResolvedIcon from "components/resolvedicon";
export default function Item({ service }) {
export default function Item({ service, group }) {
const hasLink = service.href && service.href !== "#";
const { settings } = useContext(SettingsContext);
const showStats = (service.showStats === false) ? false : settings.showStats;
@@ -77,7 +77,7 @@ export default function Item({ service }) {
<div className="absolute top-0 right-0 w-1/2 flex flex-row justify-end gap-2 mr-2">
{service.ping && (
<div className="flex-shrink-0 flex items-center justify-center cursor-pointer">
<Ping service={service} />
<Ping group={group} service={service.name} />
<span className="sr-only">Ping status</span>
</div>
)}
+2 -2
View File
@@ -14,7 +14,7 @@ const columnMap = [
"grid-cols-1 md:grid-cols-2 lg:grid-cols-8",
];
export default function List({ services, layout }) {
export default function List({ group, services, layout }) {
return (
<ul
className={classNames(
@@ -23,7 +23,7 @@ export default function List({ services, layout }) {
)}
>
{services.map((service) => (
<Item key={service.container ?? service.app ?? service.name} service={service} />
<Item key={service.container ?? service.app ?? service.name} service={service} group={group} />
))}
</ul>
);
+4 -4
View File
@@ -1,9 +1,9 @@
import { useTranslation } from "react-i18next";
import useSWR from "swr";
export default function Ping({ service }) {
export default function Ping({ group, service }) {
const { t } = useTranslation();
const { data, error } = useSWR(`/api/ping?${new URLSearchParams({ping: service.ping}).toString()}`, {
const { data, error } = useSWR(`/api/ping?${new URLSearchParams({ group, service }).toString()}`, {
refreshInterval: 30000
});
@@ -23,7 +23,7 @@ export default function Ping({ service }) {
);
}
const statusText = `${service.ping}: HTTP status ${data.status}`;
const statusText = `${service}: HTTP status ${data.status}`;
if (data.status > 403) {
return (
@@ -35,7 +35,7 @@ export default function Ping({ service }) {
return (
<div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={statusText}>
<div className="text-[8px] font-bold text-emerald-500/80">{t("common.ms", { value: data.latency, style: "unit", unit: "millisecond", unitDisplay: "narrow", maximumFractionDigits: 0 })}</div>
<div className="text-[8px] font-bold text-emerald-500/80">{t("common.ms", { value: data.latency, style: "unit", unit: "millisecond", maximumFractionDigits: 0 })}</div>
</div>
);
+4 -2
View File
@@ -15,7 +15,9 @@ export default function Container({ error = false, children, service }) {
return <Error service={service} error={error} />
}
let visibleChildren = children;
const childrenArray = Array.isArray(children) ? children : [children];
let visibleChildren = childrenArray;
const fields = service?.widget?.fields;
const type = service?.widget?.type;
if (fields && type) {
@@ -24,7 +26,7 @@ export default function Container({ error = false, children, service }) {
// fields: [ "resources.cpu", "resources.mem", "field"]
// or even
// fields: [ "resources.cpu", "widget_type.field" ]
visibleChildren = children?.filter(child => fields.some(field => {
visibleChildren = childrenArray?.filter(child => fields.some(field => {
let fullField = field;
if (!field.includes(".")) {
fullField = `${type}.${field}`;
+4 -2
View File
@@ -9,10 +9,12 @@ function displayData(data) {
return (data.type === 'Buffer') ? Buffer.from(data).toString() : JSON.stringify(data, 4);
}
export default function Error({ error: err }) {
export default function Error({ error }) {
const { t } = useTranslation();
const { error } = err?.data ?? { error: err };
if (error?.data?.error) {
error = error.data.error; // eslint-disable-line no-param-reassign
}
return (
<details className="px-1 pb-1">
+78 -12
View File
@@ -1,11 +1,14 @@
import useSWR from "swr";
import { useContext } from "react";
import { BiError } from "react-icons/bi";
import { FaMemory, FaRegClock, FaThermometerHalf } from "react-icons/fa";
import { FiCpu } from "react-icons/fi";
import { FiCpu, FiHardDrive } from "react-icons/fi";
import { useTranslation } from "next-i18next";
import UsageBar from "../resources/usage-bar";
import { SettingsContext } from "utils/contexts/settings";
const cpuSensorLabels = ["cpu_thermal", "Core", "Tctl"];
function convertToFahrenheit(t) {
@@ -14,6 +17,7 @@ function convertToFahrenheit(t) {
export default function Widget({ options }) {
const { t, i18n } = useTranslation();
const { settings } = useContext(SettingsContext);
const { data, error } = useSWR(
`/api/widgets/glances?${new URLSearchParams({ lang: i18n.language, ...options }).toString()}`, {
@@ -88,8 +92,16 @@ export default function Widget({ options }) {
}
const tempPercent = Math.round((mainTemp / maxTemp) * 100);
let disks = [];
if (options.disk) {
disks = Array.isArray(options.disk)
? options.disk.map((disk) => data.fs.find((d) => d.mnt_point === disk)).filter((d) => d)
: [data.fs.find((d) => d.mnt_point === options.disk)].filter((d) => d);
}
return (
<div className="flex flex-col max-w:full sm:basis-auto self-center grow-0 flex-wrap ml-4">
<a href={options.url} target={settings.target ?? "_blank"} className="flex flex-col max-w:full sm:basis-auto self-center grow-0 flex-wrap">
<div className="flex flex-row self-center flex-wrap justify-between">
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
<FiCpu className="text-theme-800 dark:text-theme-200 w-5 h-5" />
@@ -97,7 +109,7 @@ export default function Widget({ options }) {
<div className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5">
{t("common.number", {
value: data.quicklook.cpu,
value: data.cpu.total,
style: "unit",
unit: "percent",
maximumFractionDigits: 0,
@@ -105,7 +117,20 @@ export default function Widget({ options }) {
</div>
<div className="pr-1">{t("glances.cpu")}</div>
</div>
<UsageBar percent={data.quicklook.cpu} />
{options.expanded && (
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5 pr-1">
{t("common.number", {
value: data.load.min15,
style: "unit",
unit: "percent",
maximumFractionDigits: 0,
})}
</div>
<div className="pr-1">{t("glances.load")}</div>
</span>
)}
<UsageBar percent={data.cpu.total} />
</div>
</div>
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
@@ -113,18 +138,46 @@ export default function Widget({ options }) {
<div className="flex flex-col ml-3 text-left min-w-[85px]">
<div className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5">
{t("common.number", {
value: data.quicklook.mem,
style: "unit",
unit: "percent",
maximumFractionDigits: 0,
{t("common.bytes", {
value: data.mem.free,
maximumFractionDigits: 1,
binary: true,
})}
</div>
<div className="pr-1">{t("glances.mem")}</div>
<div className="pr-1">{t("glances.free")}</div>
</div>
<UsageBar percent={data.quicklook.mem} />
{options.expanded && (
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5 pr-1">
{t("common.bytes", {
value: data.mem.total,
maximumFractionDigits: 1,
binary: true,
})}
</div>
<div className="pr-1">{t("glances.total")}</div>
</span>
)}
<UsageBar percent={data.mem.percent} />
</div>
</div>
{disks.map((disk) => (
<div key={disk.mnt_point} className="flex-none flex flex-row items-center mr-3 py-1.5">
<FiHardDrive className="text-theme-800 dark:text-theme-200 w-5 h-5" />
<div className="flex flex-col ml-3 text-left min-w-[85px]">
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5">{t("common.bytes", { value: disk.free })}</div>
<div className="pr-1">{t("glances.free")}</div>
</span>
{options.expanded && (
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5 pr-1">{t("common.bytes", { value: disk.size })}</div>
<div className="pr-1">{t("glances.total")}</div>
</span>
)}
<UsageBar percent={disk.percent} />
</div>
</div>))}
{options.cputemp && mainTemp > 0 &&
(<div className="flex-none flex flex-row items-center mr-3 py-1.5">
<FaThermometerHalf className="text-theme-800 dark:text-theme-200 w-5 h-5" />
@@ -140,6 +193,19 @@ export default function Widget({ options }) {
</div>
<div className="pr-1">{t("glances.temp")}</div>
</span>
{options.expanded && (
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5 pr-1">
{t("common.number", {
value: maxTemp,
maximumFractionDigits: 1,
style: "unit",
unit
})}
</div>
<div className="pr-1">{t("glances.warn")}</div>
</span>
)}
<UsageBar percent={tempPercent} />
</div>
</div>)}
@@ -160,6 +226,6 @@ export default function Widget({ options }) {
{options.label && (
<div className="pt-1 text-center text-theme-800 dark:text-theme-200 text-xs">{options.label}</div>
)}
</div>
</a>
);
}
+1 -1
View File
@@ -13,7 +13,7 @@ export default function Greeting({ options }) {
if (options.text) {
return (
<div className="flex flex-row items-center justify-start">
<span className={`text-theme-800 dark:text-theme-200 ${textSizes[options.text_size || "xl"]}`}>
<span className={`text-theme-800 dark:text-theme-200 mr-3 ${textSizes[options.text_size || "xl"]}`}>
{options.text}
</span>
</div>
@@ -0,0 +1,18 @@
export default function QueueEntry({ title, activity, timeLeft, progress}) {
return (
<div className="text-theme-700 dark:text-theme-200 relative h-5 rounded-md bg-theme-200/50 dark:bg-theme-900/20 m-1 px-1 flex">
<div
className="absolute h-5 rounded-md bg-theme-200 dark:bg-theme-900/40 z-0 -ml-1"
style={{
width: `${progress}%`,
}}
/>
<div className="text-xs z-10 self-center ml-2 relative h-4 grow mr-2">
<div className="absolute w-full whitespace-nowrap text-ellipsis overflow-hidden text-left">{title}</div>
</div>
<div className="self-center text-xs flex justify-end mr-1.5 pl-1 z-10 text-ellipsis overflow-hidden whitespace-nowrap">
{timeLeft ? `${activity} - ${timeLeft}` : activity}
</div>
</div>
);
}
+35 -18
View File
@@ -1,12 +1,22 @@
import { performance } from "perf_hooks";
import { getServiceItem } from "utils/config/service-helpers";
import createLogger from "utils/logger";
import { httpProxy } from "utils/proxy/http";
const logger = createLogger("ping");
export default async function handler(req, res) {
const { ping: pingURL } = req.query;
const { group, service } = req.query;
const serviceItem = await getServiceItem(group, service);
if (!serviceItem) {
logger.debug(`No service item found for group ${group} named ${service}`);
return res.status(400).send({
error: "Unable to find service, see log for details.",
});
}
const { ping: pingURL } = serviceItem;
if (!pingURL) {
logger.debug("No ping URL specified");
@@ -14,22 +24,29 @@ export default async function handler(req, res) {
error: "No ping URL given",
});
}
let startTime = performance.now();
let [status] = await httpProxy(pingURL, {
method: "HEAD"
});
let endTime = performance.now();
if (status > 403) {
// try one more time as a GET in case HEAD is rejected for whatever reason
startTime = performance.now();
[status] = await httpProxy(pingURL);
endTime = performance.now();
}
return res.status(200).json({
status,
latency: endTime - startTime
});
try {
let startTime = performance.now();
let [status] = await httpProxy(pingURL, {
method: "HEAD"
});
let endTime = performance.now();
if (status > 403) {
// try one more time as a GET in case HEAD is rejected for whatever reason
startTime = performance.now();
[status] = await httpProxy(pingURL);
endTime = performance.now();
}
return res.status(200).json({
status,
latency: endTime - startTime
});
} catch (e) {
logger.debug("Error attempting ping: %s", JSON.stringify(e));
return res.status(400).send({
error: 'Error attempting ping, see logs.',
});
}
}
+20 -8
View File
@@ -40,20 +40,32 @@ async function retrieveFromGlancesAPI(privateWidgetOptions, endpoint) {
}
export default async function handler(req, res) {
const { index } = req.query;
const { index, cputemp: includeCpuTemp, uptime: includeUptime, disk: includeDisks } = req.query;
const privateWidgetOptions = await getPrivateWidgetOptions("glances", index);
try {
const quicklookData = await retrieveFromGlancesAPI(privateWidgetOptions, "quicklook");
const cpuData = await retrieveFromGlancesAPI(privateWidgetOptions, "cpu");
const loadData = await retrieveFromGlancesAPI(privateWidgetOptions, "load");
const memoryData = await retrieveFromGlancesAPI(privateWidgetOptions, "mem");
const data = {
quicklook: quicklookData
cpu: cpuData,
load: loadData,
mem: memoryData,
}
// Disabled by default, dont call unless needed
if (includeUptime) {
data.uptime = await retrieveFromGlancesAPI(privateWidgetOptions, "uptime");
}
if (includeCpuTemp) {
data.sensors = await retrieveFromGlancesAPI(privateWidgetOptions, "sensors");
}
if (includeDisks) {
data.fs = await retrieveFromGlancesAPI(privateWidgetOptions, "fs");
}
data.uptime = await retrieveFromGlancesAPI(privateWidgetOptions, "uptime");
data.sensors = await retrieveFromGlancesAPI(privateWidgetOptions, "sensors");
return res.status(200).send(data);
} catch (e) {
+19 -12
View File
@@ -52,18 +52,25 @@ export default async function handler(req, res) {
memTotal += mem;
});
const nodeMetrics = await metricsApi.getNodeMetrics();
nodeMetrics.items.forEach((nodeMetric) => {
const cpu = parseCpu(nodeMetric.usage.cpu);
const mem = parseMemory(nodeMetric.usage.memory);
cpuUsage += cpu;
memUsage += mem;
nodeMap[nodeMetric.metadata.name].cpu.load = cpu;
nodeMap[nodeMetric.metadata.name].cpu.percent = (cpu / nodeMap[nodeMetric.metadata.name].cpu.total) * 100;
nodeMap[nodeMetric.metadata.name].memory.used = mem;
nodeMap[nodeMetric.metadata.name].memory.free = nodeMap[nodeMetric.metadata.name].memory.total - mem;
nodeMap[nodeMetric.metadata.name].memory.percent = (mem / nodeMap[nodeMetric.metadata.name].memory.total) * 100;
});
try {
const nodeMetrics = await metricsApi.getNodeMetrics();
nodeMetrics.items.forEach((nodeMetric) => {
const cpu = parseCpu(nodeMetric.usage.cpu);
const mem = parseMemory(nodeMetric.usage.memory);
cpuUsage += cpu;
memUsage += mem;
nodeMap[nodeMetric.metadata.name].cpu.load = cpu;
nodeMap[nodeMetric.metadata.name].cpu.percent = (cpu / nodeMap[nodeMetric.metadata.name].cpu.total) * 100;
nodeMap[nodeMetric.metadata.name].memory.used = mem;
nodeMap[nodeMetric.metadata.name].memory.free = nodeMap[nodeMetric.metadata.name].memory.total - mem;
nodeMap[nodeMetric.metadata.name].memory.percent = (mem / nodeMap[nodeMetric.metadata.name].memory.total) * 100;
});
} catch (error) {
logger.error("Error getting metrics, ensure you have metrics-server installed: s", JSON.stringify(error));
return res.status(500).send({
error: "Error getting metrics, check logs for more details"
});
}
const cluster = {
cpu: {
+14 -11
View File
@@ -252,7 +252,7 @@ function Home({ initialSettings }) {
/>
<meta name="theme-color" content={themes[initialSettings.color || "slate"][initialSettings.theme || "dark"]} />
</Head>
<div className="relative container m-auto flex flex-col justify-between z-10 h-full">
<div className="relative container m-auto flex flex-col justify-start z-10 h-full">
<div
className={classNames(
"flex flex-row flex-wrap justify-between",
@@ -286,15 +286,15 @@ function Home({ initialSettings }) {
)}
</div>
{services && (
{services?.length > 0 && (
<div className="flex flex-wrap p-4 sm:p-8 sm:pt-4 items-start pb-2">
{services.map((group) => (
<ServicesGroup key={group.name} services={group} layout={initialSettings.layout?.[group.name]} fiveColumns={settings.fiveColumns} />
<ServicesGroup key={group.name} group={group.name} services={group} layout={initialSettings.layout?.[group.name]} fiveColumns={settings.fiveColumns} />
))}
</div>
)}
{bookmarks && (
{bookmarks?.length > 0 && (
<div className={`grow flex flex-wrap pt-0 p-4 sm:p-8 gap-2 grid-cols-1 lg:grid-cols-2 lg:grid-cols-${Math.min(6, bookmarks.length)}`}>
{bookmarks.map((group) => (
<BookmarksGroup key={group.name} group={group} />
@@ -302,14 +302,16 @@ function Home({ initialSettings }) {
</div>
)}
<div className="flex p-8 pb-0 w-full justify-end">
{!initialSettings?.color && <ColorToggle />}
<Revalidate />
{!initialSettings?.theme && <ThemeToggle />}
</div>
<div className="flex flex-col mt-auto p-8 w-full">
<div className="flex w-full justify-end">
{!initialSettings?.color && <ColorToggle />}
<Revalidate />
{!initialSettings?.theme && <ThemeToggle />}
</div>
<div className="flex p-8 pt-4 w-full justify-end">
{!initialSettings?.hideVersion && <Version />}
<div className="flex mt-4 w-full justify-end">
{!initialSettings?.hideVersion && <Version />}
</div>
</div>
</div>
</>
@@ -359,6 +361,7 @@ export default function Wrapper({ initialSettings, fallback }) {
<div
id="inner_wrapper"
className={classNames(
'fixed overflow-auto w-full h-full',
backgroundBlur && `backdrop-blur${initialSettings.background.blur.length ? '-' : ""}${initialSettings.background.blur}`,
backgroundSaturate && `backdrop-saturate-${initialSettings.background.saturate}`,
backgroundBrightness && `backdrop-brightness-${initialSettings.background.brightness}`,
+16 -1
View File
@@ -65,5 +65,20 @@ export function getSettings() {
const settingsYaml = join(process.cwd(), "config", "settings.yaml");
const rawFileContents = readFileSync(settingsYaml, "utf8");
const fileContents = substituteEnvironmentVars(rawFileContents);
return yaml.load(fileContents) ?? {};
const initialSettings = yaml.load(fileContents) ?? {};
if (initialSettings.layout) {
// support yaml list but old spec was object so convert to that
// see https://github.com/benphelps/homepage/issues/1546
if (Array.isArray(initialSettings.layout)) {
const layoutItems = initialSettings.layout
initialSettings.layout = {}
layoutItems.forEach(i => {
const name = Object.keys(i)[0]
initialSettings.layout[name] = i[name]
})
}
}
return initialSettings
}
+39 -26
View File
@@ -63,10 +63,10 @@ export async function servicesFromDocker() {
const serviceServers = await Promise.all(
Object.keys(servers).map(async (serverName) => {
try {
const isSwarm = !!servers[serverName].swarm;
const docker = new Docker(getDockerArguments(serverName).conn);
const containers = await docker.listContainers({
all: true,
});
const listProperties = { all: true };
const containers = await ((isSwarm) ? docker.listServices(listProperties) : docker.listContainers(listProperties));
// bad docker connections can result in a <Buffer ...> object?
// in any case, this ensures the result is the expected array
@@ -76,17 +76,19 @@ export async function servicesFromDocker() {
const discovered = containers.map((container) => {
let constructedService = null;
const containerLabels = isSwarm ? shvl.get(container, 'Spec.Labels') : container.Labels;
const containerName = isSwarm ? shvl.get(container, 'Spec.Name') : container.Names[0];
Object.keys(container.Labels).forEach((label) => {
Object.keys(containerLabels).forEach((label) => {
if (label.startsWith("homepage.")) {
if (!constructedService) {
constructedService = {
container: container.Names[0].replace(/^\//, ""),
container: containerName.replace(/^\//, ""),
server: serverName,
type: 'service'
};
}
shvl.set(constructedService, label.replace("homepage.", ""), container.Labels[label]);
shvl.set(constructedService, label.replace("homepage.", ""), substituteEnvironmentVars(containerLabels[label]));
}
});
@@ -168,14 +170,14 @@ export async function servicesFromKubernetes() {
.filter((ingress) => ingress.metadata.annotations && ingress.metadata.annotations[`${ANNOTATION_BASE}/href`])
ingressList.items.push(...traefikServices);
}
if (!ingressList) {
return [];
}
const services = ingressList.items
.filter((ingress) => ingress.metadata.annotations && ingress.metadata.annotations[`${ANNOTATION_BASE}/enabled`] === 'true')
.map((ingress) => {
const constructedService = {
let constructedService = {
app: ingress.metadata.name,
namespace: ingress.metadata.namespace,
href: ingress.metadata.annotations[`${ANNOTATION_BASE}/href`] || getUrlFromIngress(ingress),
@@ -202,6 +204,12 @@ export async function servicesFromKubernetes() {
}
});
try {
constructedService = JSON.parse(substituteEnvironmentVars(JSON.stringify(constructedService)));
} catch (e) {
logger.error("Error attempting k8s environment variable substitution.");
}
return constructedService;
});
@@ -267,10 +275,11 @@ export function cleanServiceGroups(groups) {
namespace, // kubernetes widget
app,
podSelector,
wan, // opnsense widget,
wan, // opnsense widget, pfsense widget
enableBlocks, // emby/jellyfin
enableNowPlaying,
volume, // diskstation widget
volume, // diskstation widget,
enableQueue, // sonarr/radarr
} = cleanedService.widget;
const fieldsList = typeof fields === 'string' ? JSON.parse(fields) : fields;
@@ -299,14 +308,17 @@ export function cleanServiceGroups(groups) {
if (app) cleanedService.widget.app = app;
if (podSelector) cleanedService.widget.podSelector = podSelector;
}
if (type === "opnsense") {
if (["opnsense", "pfsense"].includes(type)) {
if (wan) cleanedService.widget.wan = wan;
}
if (type === "emby" || type === "jellyfin") {
if (["emby", "jellyfin"].includes(type)) {
if (enableBlocks !== undefined) cleanedService.widget.enableBlocks = JSON.parse(enableBlocks);
if (enableNowPlaying !== undefined) cleanedService.widget.enableNowPlaying = JSON.parse(enableNowPlaying);
}
if (type === "diskstation") {
if (["sonarr", "radarr"].includes(type)) {
if (enableQueue !== undefined) cleanedService.widget.enableQueue = JSON.parse(enableQueue);
}
if (["diskstation", "qnap"].includes(type)) {
if (volume) cleanedService.widget.volume = volume;
}
}
@@ -316,16 +328,13 @@ export function cleanServiceGroups(groups) {
}));
}
export default async function getServiceWidget(group, service) {
export async function getServiceItem(group, service) {
const configuredServices = await servicesFromConfig();
const serviceGroup = configuredServices.find((g) => g.name === group);
if (serviceGroup) {
const serviceEntry = serviceGroup.services.find((s) => s.name === service);
if (serviceEntry) {
const { widget } = serviceEntry;
return widget;
}
if (serviceEntry) return serviceEntry;
}
const discoveredServices = await servicesFromDocker();
@@ -333,20 +342,24 @@ export default async function getServiceWidget(group, service) {
const dockerServiceGroup = discoveredServices.find((g) => g.name === group);
if (dockerServiceGroup) {
const dockerServiceEntry = dockerServiceGroup.services.find((s) => s.name === service);
if (dockerServiceEntry) {
const { widget } = dockerServiceEntry;
return widget;
}
if (dockerServiceEntry) return dockerServiceEntry;
}
const kubernetesServices = await servicesFromKubernetes();
const kubernetesServiceGroup = kubernetesServices.find((g) => g.name === group);
if (kubernetesServiceGroup) {
const kubernetesServiceEntry = kubernetesServiceGroup.services.find((s) => s.name === service);
if (kubernetesServiceEntry) {
const { widget } = kubernetesServiceEntry;
return widget;
}
if (kubernetesServiceEntry) return kubernetesServiceEntry;
}
return false;
}
export default async function getServiceWidget(group, service) {
const serviceItem = await getServiceItem(group, service);
if (serviceItem) {
const { widget } = serviceItem;
return widget;
}
return false;
+12 -12
View File
@@ -5,8 +5,6 @@ import yaml from "js-yaml";
import checkAndCopyConfig, { substituteEnvironmentVars } from "utils/config/config";
const exemptWidgets = ["search"];
export async function widgetsFromConfig() {
checkAndCopyConfig("widgets.yaml");
@@ -32,15 +30,17 @@ export async function cleanWidgetGroups(widgets) {
return widgets.map((widget, index) => {
const sanitizedOptions = widget.options;
const optionKeys = Object.keys(sanitizedOptions);
if (!exemptWidgets.includes(widget.type)) {
["url", "username", "password", "key"].forEach((pO) => {
if (optionKeys.includes(pO)) {
// allow URL in search
if (widget.type !== "search" && pO !== "key") {
delete sanitizedOptions[pO];
}
}
});
// delete private options from the sanitized options
["username", "password", "key"].forEach((pO) => {
if (optionKeys.includes(pO)) {
delete sanitizedOptions[pO];
}
});
// delete url from the sanitized options if the widget is not a search or glances widgeth
if (widget.type !== "search" && widget.type !== "glances" && optionKeys.includes("url")) {
delete sanitizedOptions.url;
}
return {
@@ -78,4 +78,4 @@ export async function getPrivateWidgetOptions(type, widgetIndex) {
});
return (type !== undefined && widgetIndex !== undefined) ? privateOptions.find(o => o.type === type && o.options.index === parseInt(widgetIndex, 10))?.options : privateOptions;
}
}
+7
View File
@@ -32,6 +32,7 @@ export default async function credentialedProxyHandler(req, res, map) {
"authentik",
"cloudflared",
"ghostfolio",
"tailscale",
"truenas",
"pterodactyl",
].includes(widget.type))
@@ -54,6 +55,12 @@ export default async function credentialedProxyHandler(req, res, map) {
} else {
headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`;
}
} else if (widget.type === "paperlessngx") {
if (widget.key) {
headers.Authorization = `Token ${widget.key}`;
} else {
headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`;
}
} else {
headers["X-API-Key"] = `${widget.key}`;
}
+8 -1
View File
@@ -57,7 +57,14 @@ export default async function genericProxyHandler(req, res, map) {
}
if (status >= 400) {
logger.debug("HTTP Error %d calling %s//%s%s...", status, url.protocol, url.hostname, url.pathname);
logger.debug(
"HTTP Error %d calling %s//%s%s%s...",
status,
url.protocol,
url.hostname,
url.port ? `:${url.port}` : '',
url.pathname
);
return res.status(status).json({error: {message: "HTTP Error", url: sanitizeErrorURL(url), resultData}});
}
+18 -3
View File
@@ -1,5 +1,7 @@
/* eslint-disable prefer-promise-reject-errors */
/* eslint-disable no-param-reassign */
import { createUnzip } from "node:zlib";
import { http, https } from "follow-redirects";
import { addCookieToJar, setCookieHeader } from "./cookie-jar";
@@ -28,12 +30,19 @@ function handleRequest(requestor, url, params) {
const request = requestor.request(url, params, (response) => {
const data = [];
const contentEncoding = response.headers['content-encoding']?.trim().toLowerCase();
response.on("data", (chunk) => {
let responseContent = response;
if (contentEncoding === 'gzip' || contentEncoding === 'deflate') {
responseContent = createUnzip();
response.pipe(responseContent);
}
responseContent.on("data", (chunk) => {
data.push(chunk);
});
response.on("end", () => {
responseContent.on("end", () => {
addCookieToJar(url, response.headers);
resolve([response.statusCode, response.headers["content-type"], Buffer.concat(data), response.headers]);
});
@@ -81,7 +90,13 @@ export async function httpProxy(url, params = {}) {
return [status, contentType, data, responseHeaders];
}
catch (err) {
logger.error("Error calling %s//%s%s...", constructedUrl.protocol, constructedUrl.hostname, constructedUrl.pathname);
logger.error(
"Error calling %s//%s%s%s...",
constructedUrl.protocol,
constructedUrl.hostname,
constructedUrl.port ? `:${constructedUrl.port}` : '',
constructedUrl.pathname
);
logger.error(err);
return [500, "application/json", { error: {message: err?.message ?? "Unknown error", url, rawError: err} }, null];
}
+5 -1
View File
@@ -7,7 +7,11 @@ export default function useWidgetAPI(widget, ...options) {
if (options && options[1]?.refreshInterval) {
config.refreshInterval = options[1].refreshInterval;
}
const { data, error, mutate } = useSWR(formatProxyUrl(widget, ...options), config);
let url = formatProxyUrl(widget, ...options)
if (options[0] === "") {
url = null
}
const { data, error, mutate } = useSWR(url, config);
// make the data error the top-level error
return { data, error: data?.error ?? error, mutate }
}
+39
View File
@@ -0,0 +1,39 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data: resultData, error: resultError } = useWidgetAPI(widget, "result");
if (resultError) {
return <Container service={service} error={resultError} />;
}
if (!resultData) {
return (
<Container service={service}>,
<Block label="caddy.upstreams" />
<Block label="caddy.requests" />
<Block label="caddy.requests_failed" />
</Container>
);
}
const upstreams = resultData.length;
const requests = resultData.reduce((acc, val) => acc + val.num_requests, 0);
const requestsFailed = resultData.reduce((acc, val) => acc + val.fails, 0);
return (
<Container service={service}>
<Block label="caddy.upstreams" value={t("common.number", { value: upstreams })} />
<Block label="caddy.requests" value={t("common.number", { value: requests })} />
<Block label="caddy.requests_failed" value={t("common.number", { value: requestsFailed })} />
</Container>
);
}
+8
View File
@@ -0,0 +1,8 @@
import genericProxyHandler from "utils/proxy/handlers/generic";
const widget = {
api: "{url}/reverse_proxy/upstreams",
proxyHandler: genericProxyHandler,
};
export default widget;
+6 -1
View File
@@ -16,7 +16,12 @@ export default function Component({ service }) {
}
if (!data) {
return <Container service={service} />;
return (
<Container service={service}>
<Block label="changedetectionio.diffsDetected" />
<Block label="changedetectionio.totalObserved" />
</Container>
);
}
const totalObserved = Object.keys(data).length;
+6
View File
@@ -6,6 +6,7 @@ const components = {
authentik: dynamic(() => import("./authentik/component")),
autobrr: dynamic(() => import("./autobrr/component")),
bazarr: dynamic(() => import("./bazarr/component")),
caddy: dynamic(() => import("./caddy/component")),
changedetectionio: dynamic(() => import("./changedetectionio/component")),
channelsdvrserver: dynamic(() => import("./channelsdvrserver/component")),
cloudflared: dynamic(() => import("./cloudflared/component")),
@@ -16,6 +17,7 @@ const components = {
docker: dynamic(() => import("./docker/component")),
kubernetes: dynamic(() => import("./kubernetes/component")),
emby: dynamic(() => import("./emby/component")),
evcc: dynamic(() => import("./evcc/component")),
fileflows: dynamic(() => import("./fileflows/component")),
flood: dynamic(() => import("./flood/component")),
freshrss: dynamic(() => import("./freshrss/component")),
@@ -52,8 +54,10 @@ const components = {
opnsense: dynamic(() => import("./opnsense/component")),
overseerr: dynamic(() => import("./overseerr/component")),
paperlessngx: dynamic(() => import("./paperlessngx/component")),
pfsense: dynamic(() => import("./pfsense/component")),
photoprism: dynamic(() => import("./photoprism/component")),
proxmoxbackupserver: dynamic(() => import("./proxmoxbackupserver/component")),
pialert: dynamic(() => import("./pialert/component")),
pihole: dynamic(() => import("./pihole/component")),
plex: dynamic(() => import("./plex/component")),
portainer: dynamic(() => import("./portainer/component")),
@@ -63,6 +67,7 @@ const components = {
pterodactyl: dynamic(() => import("./pterodactyl/component")),
pyload: dynamic(() => import("./pyload/component")),
qbittorrent: dynamic(() => import("./qbittorrent/component")),
qnap: dynamic(() => import("./qnap/component")),
radarr: dynamic(() => import("./radarr/component")),
readarr: dynamic(() => import("./readarr/component")),
rutorrent: dynamic(() => import("./rutorrent/component")),
@@ -71,6 +76,7 @@ const components = {
sonarr: dynamic(() => import("./sonarr/component")),
speedtest: dynamic(() => import("./speedtest/component")),
strelaysrv: dynamic(() => import("./strelaysrv/component")),
tailscale: dynamic(() => import("./tailscale/component")),
tautulli: dynamic(() => import("./tautulli/component")),
tdarr: dynamic(() => import("./tdarr/component")),
traefik: dynamic(() => import("./traefik/component")),
+36
View File
@@ -0,0 +1,36 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data: stateData, error: stateError } = useWidgetAPI(widget, "state");
if (stateError) {
return <Container service={service} error={stateError} />;
}
if (!stateData) {
return (
<Container service={service}>,
<Block label="evcc.pv_power" />
<Block label="evcc.grid_power" />
<Block label="evcc.home_power" />
<Block label="evcc.charge_power"/>
</Container>
);
}
return (
<Container service={service}>
<Block label="evcc.pv_power" value={`${t("common.number", { value: stateData.result.pvPower })} ${t("evcc.watt_hour")}`} />
<Block label="evcc.grid_power" value={`${t("common.number", { value: stateData.result.gridPower })} ${t("evcc.watt_hour")}`} />
<Block label="evcc.home_power" value={`${t("common.number", { value: stateData.result.homePower })} ${t("evcc.watt_hour")}`} />
<Block label="evcc.charge_power" value={`${t("common.number", { value: stateData.result.loadpoints[0].chargePower })} ${t("evcc.watt_hour")}`} />
</Container>
);
}
+14
View File
@@ -0,0 +1,14 @@
import genericProxyHandler from "utils/proxy/handlers/generic";
const widget = {
api: "{url}/api/{endpoint}",
proxyHandler: genericProxyHandler,
mappings: {
state: {
endpoint: "state",
}
},
};
export default widget;
+8
View File
@@ -71,6 +71,14 @@ export default async function homeassistantProxyHandler(req, res) {
let queries = defaultQueries;
if (!widget.fields && widget.custom) {
if (typeof widget.custom === 'string') {
try {
widget.custom = JSON.parse(widget.custom)
} catch (error) {
logger.debug("Error parsing HASS widget custom label: %s", JSON.stringify(error));
return res.status(400).json({ error: "Error parsing widget custom label" });
}
}
queries = widget.custom.slice(0, 4);
}
+1 -1
View File
@@ -16,7 +16,7 @@ export default function Component({ service }) {
`/api/kubernetes/stats/${widget.namespace}/${widget.app}?${podSelectorString}`);
if (statsError || statusError) {
return <Container service={service} error={t("widget.api_error")} />;
return <Container service={service} error={statsError ?? statusError} />;
}
if (statusData && statusData.status !== "running") {
+6 -6
View File
@@ -9,21 +9,21 @@ export default function Component({ service }) {
const { widget } = service;
const { data: albumsData, error: albumsError } = useWidgetAPI(widget, "album");
const { data: artistsData, error: artistsError } = useWidgetAPI(widget, "artist");
const { data: wantedData, error: wantedError } = useWidgetAPI(widget, "wanted/missing");
const { data: queueData, error: queueError } = useWidgetAPI(widget, "queue/status");
if (albumsError || wantedError || queueError) {
const finalError = albumsError ?? wantedError ?? queueError;
if (artistsError || wantedError || queueError) {
const finalError = artistsError ?? wantedError ?? queueError;
return <Container service={service} error={finalError} />;
}
if (!albumsData || !wantedData || !queueData) {
if (!artistsData || !wantedData || !queueData) {
return (
<Container service={service}>
<Block label="lidarr.wanted" />
<Block label="lidarr.queued" />
<Block label="lidarr.albums" />
<Block label="lidarr.artists" />
</Container>
);
}
@@ -32,7 +32,7 @@ export default function Component({ service }) {
<Container service={service}>
<Block label="lidarr.wanted" value={t("common.number", { value: wantedData.totalRecords })} />
<Block label="lidarr.queued" value={t("common.number", { value: queueData.totalCount })} />
<Block label="lidarr.albums" value={t("common.number", { value: albumsData.have })} />
<Block label="lidarr.artists" value={t("common.number", { value: artistsData.length })} />
</Container>
);
}
+2 -6
View File
@@ -1,16 +1,12 @@
import genericProxyHandler from "utils/proxy/handlers/generic";
import { jsonArrayFilter } from "utils/proxy/api-helpers";
const widget = {
api: "{url}/api/v1/{endpoint}?apikey={key}",
proxyHandler: genericProxyHandler,
mappings: {
album: {
endpoint: "album",
map: (data) => ({
have: jsonArrayFilter(data, (item) => item?.statistics?.percentOfTracks === 100).length,
}),
artist: {
endpoint: "artist",
},
"wanted/missing": {
endpoint: "wanted/missing",
+30 -6
View File
@@ -1,4 +1,5 @@
import { useTranslation } from "next-i18next";
import { useMemo } from "react";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
@@ -10,6 +11,25 @@ export default function Component({ service }) {
const { widget } = service;
const { data: nextcloudData, error: nextcloudError } = useWidgetAPI(widget, "serverinfo");
// Support for deprecated fields (cpuload, memoryusage)
const [showCpuLoad, showMemoryUsage] = useMemo(() => {
// Default values if fields is not set
if (!widget.fields) return [false, false];
// Allows for backwards compatibility with existing values of fields
if (widget.fields.length <= 4) return [true, true];
// If all fields are enabled, drop cpuload and memoryusage
if (widget.fields.length === 6) return [false, false];
const hasCpuLoad = widget.fields?.includes('cpuload');
const hasMemoryUsage = widget.fields?.includes('memoryusage');
// If (for some reason) 5 fields are set, drop memoryusage
if (hasCpuLoad && hasMemoryUsage) return [true, false];
return [!hasCpuLoad, !hasMemoryUsage]
}, [widget.fields]);
if (nextcloudError) {
return <Container service={service} error={nextcloudError} />;
}
@@ -17,23 +37,27 @@ export default function Component({ service }) {
if (!nextcloudData) {
return (
<Container service={service}>
<Block label="nextcloud.cpuload" />
<Block label="nextcloud.memoryusage" />
{showCpuLoad && <Block label="nextcloud.cpuload" />}
{showMemoryUsage && <Block label="nextcloud.memoryusage" />}
<Block label="nextcloud.freespace" />
<Block label="nextcloud.activeusers" />
<Block label="nextcloud.numfiles" />
<Block label="nextcloud.numshares" />
</Container>
);
}
const nextcloudInfo = nextcloudData.ocs.data.nextcloud;
const { nextcloud: nextcloudInfo, activeUsers } = nextcloudData.ocs.data;
const memoryUsage = 100 * ((parseFloat(nextcloudInfo.system.mem_total) - parseFloat(nextcloudInfo.system.mem_free)) / parseFloat(nextcloudInfo.system.mem_total));
return (
<Container service={service}>
<Block label="nextcloud.cpuload" value={t("common.percent", { value: nextcloudInfo.system.cpuload[0] })} />
<Block label="nextcloud.memoryusage" value={t("common.percent", { value:memoryUsage })} />
{showCpuLoad && <Block label="nextcloud.cpuload" value={t("common.percent", { value: nextcloudInfo.system.cpuload[0] })} />}
{showMemoryUsage && <Block label="nextcloud.memoryusage" value={t("common.percent", { value:memoryUsage })} />}
<Block label="nextcloud.freespace" value={t("common.bbytes", { value: nextcloudInfo.system.freespace, maximumFractionDigits: 1 })} />
<Block label="nextcloud.activeusers" value={t("common.number", { value: nextcloudData.ocs.data.activeUsers.last5minutes })} />
<Block label="nextcloud.activeusers" value={t("common.number", { value: activeUsers.last24hours })} />
<Block label="nextcloud.numfiles" value={t("common.number", { value: nextcloudInfo.storage.num_files })} />
<Block label="nextcloud.numshares" value={t("common.number", { value: nextcloudInfo.shares.num_shares })} />
</Container>
);
}
+2 -2
View File
@@ -1,8 +1,8 @@
import genericProxyHandler from "utils/proxy/handlers/generic";
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
const widget = {
api: "{url}/api/{endpoint}",
proxyHandler: genericProxyHandler,
proxyHandler: credentialedProxyHandler,
mappings: {
"statistics": {
+51
View File
@@ -0,0 +1,51 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data: systemData, error: systemError } = useWidgetAPI(widget, "system");
const { data: interfaceData, error: interfaceError } = useWidgetAPI(widget, "interface");
const showWanIP = widget.fields?.filter(f => f !== 'wanIP').length <= 4 && widget.fields?.includes('wanIP');
const showDiskUsage = widget.fields?.filter(f => f !== 'disk').length <= 4 && widget.fields?.includes('disk');
if (systemError || interfaceError) {
const finalError = systemError ?? interfaceError;
return <Container service={service} error={finalError} />;
}
if (!systemData || !interfaceData) {
return (
<Container service={service}>
<Block label="pfsense.load" />
<Block label="pfsense.memory" />
<Block label="pfsense.temp" />
<Block label="pfsense.wanStatus" />
{showWanIP && <Block label="pfsense.wanIP" />}
{showDiskUsage && <Block label="pfsense.disk" />}
</Container>
);
}
const wan = interfaceData.data.filter(l => l.hwif === widget.wan)[0];
return (
<Container service={service}>
<Block label="pfsense.load" value={systemData.data.load_avg[0]} />
<Block label="pfsense.memory" value={t("common.percent", { value: (systemData.data.mem_usage * 100).toFixed(2) })} />
<Block label="pfsense.temp" value={t("common.number", { value: systemData.data.temp_c, style: "unit", unit: "celsius" })} />
<Block label="pfsense.wanStatus" value={wan.status === "up" ?
<span className="text-green-500">{t("pfsense.up")}</span>:
<span className="text-red-500">{t("pfsense.down")}</span>}
/>
{showWanIP && <Block label="pfsense.wanIP" value={wan.ipaddr} />}
{showDiskUsage && <Block label="pfsense.disk" value={t("common.percent", { value: (systemData.data.disk_usage * 100).toFixed(2) })} />}
</Container>
);
}
+24
View File
@@ -0,0 +1,24 @@
import genericProxyHandler from "utils/proxy/handlers/generic";
const widget = {
api: "{url}/api/v1/{endpoint}",
proxyHandler: genericProxyHandler,
mappings: {
system: {
endpoint: "status/system",
validate: [
"data"
]
},
interface: {
endpoint: "status/interface",
validate: [
"data"
]
}
},
};
export default widget;
+37
View File
@@ -0,0 +1,37 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data: pialertData, error: pialertError } = useWidgetAPI(widget, "data");
if (pialertError) {
return <Container service={service} error={pialertError} />;
}
if (!pialertData) {
return (
<Container service={service}>
<Block label="pialert.total" />
<Block label="pialert.connected" />
<Block label="pialert.new_devices" />
<Block label="pialert.down_alerts" />
</Container>
);
}
return (
<Container service={service}>
<Block label="pialert.total" value={t("common.number", { value: parseInt(pialertData[0], 10) })} />
<Block label="pialert.connected" value={t("common.number", { value: parseInt(pialertData[1], 10) })} />
<Block label="pialert.new_devices" value={t("common.number", { value: parseInt(pialertData[3], 10) })} />
<Block label="pialert.down_alerts" value={t("common.number", { value: parseInt(pialertData[4], 10) })} />
</Container>
);
}
+14
View File
@@ -0,0 +1,14 @@
import genericProxyHandler from "utils/proxy/handlers/generic";
const widget = {
api: "{url}/php/server/devices.php?action=getDevicesTotals",
proxyHandler: genericProxyHandler,
mappings: {
"data": {
endpoint: "data",
},
},
};
export default widget;
+2
View File
@@ -20,6 +20,7 @@ export default function Component({ service }) {
<Container service={service}>
<Block label="pihole.queries" />
<Block label="pihole.blocked" />
<Block label="pihole.blocked_percent" />
<Block label="pihole.gravity" />
</Container>
);
@@ -29,6 +30,7 @@ export default function Component({ service }) {
<Container service={service}>
<Block label="pihole.queries" value={t("common.number", { value: parseInt(piholeData.dns_queries_today, 10) })} />
<Block label="pihole.blocked" value={t("common.number", { value: parseInt(piholeData.ads_blocked_today, 10) })} />
<Block label="pihole.blocked_percent" value={t("common.percent", { value: parseFloat(piholeData.ads_percentage_today.toPrecision(3)) })} />
<Block label="pihole.gravity" value={t("common.number", { value: parseInt(piholeData.domains_being_blocked, 10) })} />
</Container>
);
+1
View File
@@ -10,6 +10,7 @@ const widget = {
validate: [
"dns_queries_today",
"ads_blocked_today",
"ads_percentage_today",
"domains_being_blocked"
]
},
+3 -6
View File
@@ -1,12 +1,8 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data: containersData, error: containersError } = useWidgetAPI(widget, "docker/containers/json", {
@@ -27,8 +23,9 @@ export default function Component({ service }) {
);
}
if (containersData.error) {
return <Container service={service} error={t("widget.api_error")} />;
if (containersData.error || containersData.message) {
// containersData can be itself an error object e.g. if environment fails
return <Container service={service} error={ containersData?.error ?? containersData } />;
}
const running = containersData.filter((c) => c.State === "running").length;
+1 -1
View File
@@ -8,7 +8,7 @@ const logger = createLogger("qbittorrentProxyHandler");
async function login(widget) {
logger.debug("qBittorrent is rejecting the request, logging in.");
const loginUrl = new URL(`${widget.url}/api/v2/auth/login`).toString();
const loginBody = `username=${encodeURI(widget.username)}&password=${encodeURI(widget.password)}`;
const loginBody = `username=${encodeURIComponent(widget.username)}&password=${encodeURIComponent(widget.password)}`;
const loginParams = {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
+79
View File
@@ -0,0 +1,79 @@
/* eslint no-underscore-dangle: ["error", { "allow": ["_text", "_cdata"] }] */
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation("common");
const { widget } = service;
const { data: statusData, error: statusError } = useWidgetAPI(widget, "status");
if (statusError) {
return <Container service={service} error={statusError} />;
}
if (!statusData) {
return (
<Container service={service}>
<Block label="qnap.cpuUsage" />
<Block label="qnap.memUsage" />
<Block label="qnap.systemTempC" />
<Block label={(widget.volume) ? "qnap.volumeUsage" : "qnap.poolUsage" } />
</Container>
);
}
const cpuUsage = statusData.system.cpu_usage._cdata.replace(' %','');
const totalMemory = statusData.system.total_memory._cdata;
const freeMemory = statusData.system.free_memory._cdata;
const systemTempC = statusData.system.sys_tempc._text;
let volumeTotalSize = 0;
let volumeFreeSize = 0;
let validVolume = true;
if (Array.isArray(statusData.volume.volumeUseList.volumeUse)) {
if (widget.volume) {
const volumeSelected = statusData.volume.volumeList.volume.findIndex(vl => vl.volumeLabel._cdata === widget.volume);
if (volumeSelected !== -1) {
volumeTotalSize = statusData.volume.volumeUseList.volumeUse[volumeSelected].total_size._cdata;
volumeFreeSize = statusData.volume.volumeUseList.volumeUse[volumeSelected].free_size._cdata;
} else {
validVolume = false;
}
} else {
statusData.volume.volumeUseList.volumeUse.forEach((volume) => {
volumeTotalSize += parseInt(volume.total_size._cdata, 10);
volumeFreeSize += parseInt(volume.free_size._cdata, 10);
});
}
} else {
volumeTotalSize = statusData.volume.volumeUseList.volumeUse.total_size._cdata;
volumeFreeSize = statusData.volume.volumeUseList.volumeUse.free_size._cdata;
}
return (
<Container service={service}>
<Block
label="qnap.cpuUsage"
value={t("common.percent", { value: (cpuUsage) })}
/>
<Block
label="qnap.memUsage"
value={t("common.percent", { value: (((totalMemory - freeMemory) / totalMemory) * 100).toFixed(0) })}
/>
<Block
label="qnap.systemTempC"
value={t("common.number", { value: systemTempC, maximumFractionDigits: 1, style: "unit", unit: "celsius" })}
/>
<Block
label={(widget.volume) ? "qnap.volumeUsage" : "qnap.poolUsage" }
value={(validVolume) ? t("common.percent", { value: (((volumeTotalSize - volumeFreeSize) / volumeTotalSize) * 100).toFixed(0) }) : t("qnap.invalid") }
/>
</Container>
);
}
+104
View File
@@ -0,0 +1,104 @@
/* eslint no-underscore-dangle: ["error", { "allow": ["_text", "_cdata"] }] */
import cache from "memory-cache";
import { xml2json } from "xml-js";
import { httpProxy } from "utils/proxy/http";
import { formatApiCall } from "utils/proxy/api-helpers";
import getServiceWidget from "utils/config/service-helpers";
import createLogger from "utils/logger";
const proxyName = "qnapProxyHandler";
const sessionTokenCacheKey = `${proxyName}__sessionToken`;
const logger = createLogger(proxyName);
async function login(widget, service) {
const endpoint = "{url}/cgi-bin/authLogin.cgi";
const loginUrl = new URL(formatApiCall(endpoint, widget));
const headers = { "Content-Type": "application/x-www-form-urlencoded" };
const [, , data,] = await httpProxy(loginUrl, {
method: "POST",
body: new URLSearchParams({
user: widget.username,
pwd: Buffer.from(`${widget.password}`).toString("base64")
}).toString(),
headers,
});
try {
const dataDecoded = xml2json(data.toString(), { compact: true });
const jsonData = JSON.parse(dataDecoded);
const token = jsonData.QDocRoot.authSid._cdata;
cache.put(`${sessionTokenCacheKey}.${service}`, token);
return { token };
} catch (e) {
logger.error("Unable to login to QNAP API: %s", e);
}
return { token: false };
}
async function apiCall(widget, endpoint, service) {
let key = cache.get(`${sessionTokenCacheKey}.${service}`);
let apiUrl = new URL(formatApiCall(`${endpoint}&sid=${key}`, widget));
let [status, contentType, data, responseHeaders] = await httpProxy(apiUrl);
if (status === 404) {
logger.error("QNAP API rejected the request, attempting to obtain new session token");
key = await login(widget, service);
apiUrl = new URL(formatApiCall(`${endpoint}&sid=${key}`, widget));
[status, contentType, data, responseHeaders] = await httpProxy(apiUrl);
}
if (status !== 200) {
logger.error("Error getting data from QNAP: %s status %d. Data: %s", apiUrl, status, data);
return { status, contentType, data: null, responseHeaders };
}
let dataDecoded = JSON.parse(xml2json(data.toString(), { compact: true }).toString());
if (dataDecoded.QDocRoot.authPassed._cdata === '0') {
logger.error("QNAP API rejected the request, attempting to obtain new session token");
key = await login(widget, service);
apiUrl = new URL(formatApiCall(`${endpoint}&sid=${key}`, widget));
[status, contentType, data, responseHeaders] = await httpProxy(apiUrl);
if (status !== 200) {
logger.error("Error getting data from QNAP: %s status %d. Data: %s", apiUrl, status, data);
return { status, contentType, data: null, responseHeaders };
}
dataDecoded = JSON.parse(xml2json(data.toString(), { compact: true }).toString());
}
return { status, contentType, data: dataDecoded, responseHeaders };
}
export default async function qnapProxyHandler(req, res) {
const { group, service } = req.query;
if (!group || !service) {
logger.debug("Invalid or missing service '%s' or group '%s'", service, group);
return res.status(400).json({ error: "Invalid proxy service type" });
}
const widget = await getServiceWidget(group, service);
if (!widget) {
logger.debug("Invalid or missing widget for service '%s' in group '%s'", service, group);
return res.status(400).json({ error: "Invalid proxy service type" });
}
if (!cache.get(`${sessionTokenCacheKey}.${service}`)) {
await login(widget, service);
}
const { data: systemStatsData } = await apiCall(widget, "{url}/cgi-bin/management/manaRequest.cgi?subfunc=sysinfo&hd=no&multicpu=1", service);
const { data: volumeStatsData } = await apiCall(widget, "{url}/cgi-bin/management/chartReq.cgi?chart_func=disk_usage&disk_select=all&include=all", service);
return res.status(200).send({
system: systemStatsData.QDocRoot.func.ownContent.root,
volume: volumeStatsData.QDocRoot
});
}
+8
View File
@@ -0,0 +1,8 @@
import qnapProxyHandler from "./proxy";
const widget = {
api: "{url}",
proxyHandler: qnapProxyHandler,
};
export default widget;
+43 -9
View File
@@ -1,22 +1,41 @@
import { useTranslation } from "next-i18next";
import { useCallback } from 'react';
import QueueEntry from "../../components/widgets/queue/queueEntry";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
function getProgress(sizeLeft, size) {
return sizeLeft === 0 ? 100 : (1 - sizeLeft / size) * 100
}
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data: moviesData, error: moviesError } = useWidgetAPI(widget, "movie");
const { data: queuedData, error: queuedError } = useWidgetAPI(widget, "queue/status");
const { data: queueDetailsData, error: queueDetailsError } = useWidgetAPI(widget, "queue/details");
if (moviesError || queuedError) {
const finalError = moviesError ?? queuedError;
const formatDownloadState = useCallback((downloadState) => {
switch (downloadState) {
case "importPending":
return "import pending";
case "failedPending":
return "failed pending";
default:
return downloadState;
}
}, []);
if (moviesError || queuedError || queueDetailsError) {
const finalError = moviesError ?? queuedError ?? queueDetailsError;
return <Container service={service} error={finalError} />;
}
if (!moviesData || !queuedData) {
if (!moviesData || !queuedData || !queueDetailsData) {
return (
<Container service={service}>
<Block label="radarr.wanted" />
@@ -27,12 +46,27 @@ export default function Component({ service }) {
);
}
const enableQueue = widget?.enableQueue && Array.isArray(queueDetailsData) && queueDetailsData.length > 0;
return (
<Container service={service}>
<Block label="radarr.wanted" value={t("common.number", { value: moviesData.wanted })} />
<Block label="radarr.missing" value={t("common.number", { value: moviesData.missing })} />
<Block label="radarr.queued" value={t("common.number", { value: queuedData.totalCount })} />
<Block label="radarr.movies" value={t("common.number", { value: moviesData.have })} />
</Container>
<>
<Container service={service}>
<Block label="radarr.wanted" value={t("common.number", { value: moviesData.wanted })} />
<Block label="radarr.missing" value={t("common.number", { value: moviesData.missing })} />
<Block label="radarr.queued" value={t("common.number", { value: queuedData.totalCount })} />
<Block label="radarr.movies" value={t("common.number", { value: moviesData.have })} />
</Container>
{enableQueue &&
queueDetailsData.map((queueEntry) => (
<QueueEntry
progress={getProgress(queueEntry.sizeLeft, queueEntry.size)}
timeLeft={queueEntry.timeLeft}
title={moviesData.all.find((entry) => entry.id === queueEntry.movieId)?.title ?? t("radarr.unknown")}
activity={formatDownloadState(queueEntry.trackedDownloadState)}
key={`${queueEntry.movieId}-${queueEntry.sizeLeft}`}
/>
))
}
</>
);
}
+33 -1
View File
@@ -1,5 +1,5 @@
import genericProxyHandler from "utils/proxy/handlers/generic";
import { jsonArrayFilter } from "utils/proxy/api-helpers";
import { asJson, jsonArrayFilter } from "utils/proxy/api-helpers";
const widget = {
api: "{url}/api/v3/{endpoint}?apikey={key}",
@@ -12,6 +12,7 @@ const widget = {
wanted: jsonArrayFilter(data, (item) => item.monitored && !item.hasFile && item.isAvailable).length,
have: jsonArrayFilter(data, (item) => item.hasFile).length,
missing: jsonArrayFilter(data, (item) => item.monitored && !item.hasFile).length,
all: asJson(data),
}),
},
"queue/status": {
@@ -20,6 +21,37 @@ const widget = {
"totalCount"
]
},
"queue/details": {
endpoint: "queue/details",
map: (data) => asJson(data).map((entry) => ({
trackedDownloadState: entry.trackedDownloadState,
trackedDownloadStatus: entry.trackedDownloadStatus,
timeLeft: entry.timeleft,
size: entry.size,
sizeLeft: entry.sizeleft,
movieId: entry.movieId ?? entry.id,
status: entry.status
})).sort((a, b) => {
const downloadingA = a.trackedDownloadState === "downloading"
const downloadingB = b.trackedDownloadState === "downloading"
if (downloadingA && !downloadingB) {
return -1;
}
if (downloadingB && !downloadingA) {
return 1;
}
const percentA = a.sizeLeft / a.size;
const percentB = b.sizeLeft / b.size;
if (percentA < percentB) {
return -1;
}
if (percentA > percentB) {
return 1;
}
return 0;
})
},
},
};
+52 -8
View File
@@ -1,9 +1,26 @@
import { useTranslation } from "next-i18next";
import { useCallback } from 'react';
import QueueEntry from "../../components/widgets/queue/queueEntry";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
function getProgress(sizeLeft, size) {
return sizeLeft === 0 ? 100 : (1 - sizeLeft / size) * 100
}
function getTitle(queueEntry, seriesData) {
let title = ''
const seriesTitle = seriesData.find((entry) => entry.id === queueEntry.seriesId)?.title;
if (seriesTitle) title += `${seriesTitle}: `;
const { episodeTitle } = queueEntry;
if (episodeTitle) title += episodeTitle;
if (title === '') return null;
return title;
}
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
@@ -11,13 +28,25 @@ export default function Component({ service }) {
const { data: wantedData, error: wantedError } = useWidgetAPI(widget, "wanted/missing");
const { data: queuedData, error: queuedError } = useWidgetAPI(widget, "queue");
const { data: seriesData, error: seriesError } = useWidgetAPI(widget, "series");
const { data: queueDetailsData, error: queueDetailsError } = useWidgetAPI(widget, "queue/details");
if (wantedError || queuedError || seriesError) {
const finalError = wantedError ?? queuedError ?? seriesError;
const formatDownloadState = useCallback((downloadState) => {
switch (downloadState) {
case "importPending":
return "import pending";
case "failedPending":
return "failed pending";
default:
return downloadState;
}
}, []);
if (wantedError || queuedError || seriesError || queueDetailsError) {
const finalError = wantedError ?? queuedError ?? seriesError ?? queueDetailsError;
return <Container service={service} error={finalError} />;
}
if (!wantedData || !queuedData || !seriesData) {
if (!wantedData || !queuedData || !seriesData || !queueDetailsData) {
return (
<Container service={service}>
<Block label="sonarr.wanted" />
@@ -27,11 +56,26 @@ export default function Component({ service }) {
);
}
const enableQueue = widget?.enableQueue && Array.isArray(queueDetailsData) && queueDetailsData.length > 0;
return (
<Container service={service}>
<Block label="sonarr.wanted" value={t("common.number", { value: wantedData.totalRecords })} />
<Block label="sonarr.queued" value={t("common.number", { value: queuedData.totalRecords })} />
<Block label="sonarr.series" value={t("common.number", { value: seriesData.total })} />
</Container>
<>
<Container service={service}>
<Block label="sonarr.wanted" value={t("common.number", { value: wantedData.totalRecords })} />
<Block label="sonarr.queued" value={t("common.number", { value: queuedData.totalRecords })} />
<Block label="sonarr.series" value={t("common.number", { value: seriesData.length })} />
</Container>
{enableQueue &&
queueDetailsData.map((queueEntry) => (
<QueueEntry
progress={getProgress(queueEntry.sizeLeft, queueEntry.size)}
timeLeft={queueEntry.timeLeft}
title={getTitle(queueEntry, seriesData) ?? t("sonarr.unknown")}
activity={formatDownloadState(queueEntry.trackedDownloadState)}
key={`${queueEntry.seriesId}-${queueEntry.sizeLeft}`}
/>
))
}
</>
);
}
+37 -3
View File
@@ -8,9 +8,10 @@ const widget = {
mappings: {
series: {
endpoint: "series",
map: (data) => ({
total: asJson(data).length,
})
map: (data) => asJson(data).map((entry) => ({
title: entry.title,
id: entry.id
}))
},
queue: {
endpoint: "queue",
@@ -24,6 +25,39 @@ const widget = {
"totalRecords"
]
},
"queue/details": {
endpoint: "queue/details",
map: (data) => asJson(data).map((entry) => ({
trackedDownloadState: entry.trackedDownloadState,
trackedDownloadStatus: entry.trackedDownloadStatus,
timeLeft: entry.timeleft,
size: entry.size,
sizeLeft: entry.sizeleft,
seriesId: entry.seriesId,
episodeTitle: entry.episode?.title ?? entry.title,
episodeId: entry.episodeId ?? entry.id,
status: entry.status,
})).sort((a, b) => {
const downloadingA = a.trackedDownloadState === "downloading"
const downloadingB = b.trackedDownloadState === "downloading"
if (downloadingA && !downloadingB) {
return -1;
}
if (downloadingB && !downloadingA) {
return 1;
}
const percentA = a.sizeLeft / a.size;
const percentB = b.sizeLeft / b.size;
if (percentA < percentB) {
return -1;
}
if (percentA > percentB) {
return 1;
}
return 0;
})
}
},
};
-1
View File
@@ -38,7 +38,6 @@ export default function Component({ service }) {
value: speedtestData.data.ping,
style: "unit",
unit: "millisecond",
unitDisplay: "narrow",
})}
/>
</Container>
+72
View File
@@ -0,0 +1,72 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data: statsData, error: statsError } = useWidgetAPI(widget, "device");
if (statsError) {
return <Container service={service} error={statsError} />;
}
if (!statsData) {
return (
<Container service={service}>
<Block label="tailscale.address" />
<Block label="tailscale.last_seen" />
<Block label="tailscale.expires" />
</Container>
);
}
const {
addresses: [address],
keyExpiryDisabled,
lastSeen,
expires,
} = statsData;
const now = new Date();
const compareDifferenceInTwoDates = (priorDate, futureDate) => {
const diff = futureDate.getTime() - priorDate.getTime();
const diffInYears = Math.ceil(diff / (1000 * 60 * 60 * 24 * 365));
if (diffInYears > 1) return t("tailscale.years", { number: diffInYears });
const diffInWeeks = Math.ceil(diff / (1000 * 60 * 60 * 24 * 7));
if (diffInWeeks > 1) return t("tailscale.weeks", { number: diffInWeeks });
const diffInDays = Math.ceil(diff / (1000 * 60 * 60 * 24));
if (diffInDays > 1) return t("tailscale.days", { number: diffInDays });
const diffInHours = Math.ceil(diff / (1000 * 60 * 60));
if (diffInHours > 1) return t("tailscale.hours", { number: diffInHours });
const diffInMinutes = Math.ceil(diff / (1000 * 60));
if (diffInMinutes > 1) return t("tailscale.minutes", { number: diffInMinutes });
const diffInSeconds = Math.ceil(diff / 1000);
if (diffInSeconds > 10) return t("tailscale.seconds", { number: diffInSeconds });
return "Now";
};
const getLastSeen = () => {
const date = new Date(lastSeen);
const diff = compareDifferenceInTwoDates(date, now);
return diff === "Now" ? t("tailscale.now") : t("tailscale.ago", { value: diff });
};
const getExpiry = () => {
if (keyExpiryDisabled) return t("tailscale.never");
const date = new Date(expires);
return compareDifferenceInTwoDates(now, date);
};
return (
<Container service={service}>
<Block label="tailscale.address" value={address} />
<Block label="tailscale.last_seen" value={getLastSeen()} />
<Block label="tailscale.expires" value={getExpiry()} />
</Container>
);
}
+14
View File
@@ -0,0 +1,14 @@
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
const widget = {
api: "https://api.tailscale.com/api/v2/{endpoint}/{deviceid}",
proxyHandler: credentialedProxyHandler,
mappings: {
device: {
endpoint: "device",
},
},
};
export default widget;
+12
View File
@@ -3,6 +3,7 @@ import audiobookshelf from "./audiobookshelf/widget";
import authentik from "./authentik/widget";
import autobrr from "./autobrr/widget";
import bazarr from "./bazarr/widget";
import caddy from "./caddy/widget";
import changedetectionio from "./changedetectionio/widget";
import channelsdvrserver from "./channelsdvrserver/widget";
import cloudflared from "./cloudflared/widget";
@@ -11,6 +12,7 @@ import deluge from "./deluge/widget";
import diskstation from "./diskstation/widget";
import downloadstation from "./downloadstation/widget";
import emby from "./emby/widget";
import evcc from "./evcc/widget";
import fileflows from "./fileflows/widget";
import flood from "./flood/widget";
import freshrss from "./freshrss/widget";
@@ -46,8 +48,10 @@ import ombi from "./ombi/widget";
import opnsense from "./opnsense/widget";
import overseerr from "./overseerr/widget";
import paperlessngx from "./paperlessngx/widget";
import pfsense from "./pfsense/widget";
import photoprism from "./photoprism/widget";
import proxmoxbackupserver from "./proxmoxbackupserver/widget";
import pialert from "./pialert/widget";
import pihole from "./pihole/widget";
import plex from "./plex/widget";
import portainer from "./portainer/widget";
@@ -57,6 +61,7 @@ import proxmox from "./proxmox/widget";
import pterodactyl from "./pterodactyl/widget";
import pyload from "./pyload/widget";
import qbittorrent from "./qbittorrent/widget";
import qnap from "./qnap/widget";
import radarr from "./radarr/widget";
import readarr from "./readarr/widget";
import rutorrent from "./rutorrent/widget";
@@ -65,6 +70,7 @@ import scrutiny from "./scrutiny/widget";
import sonarr from "./sonarr/widget";
import speedtest from "./speedtest/widget";
import strelaysrv from "./strelaysrv/widget";
import tailscale from "./tailscale/widget";
import tautulli from "./tautulli/widget";
import tdarr from "./tdarr/widget";
import traefik from "./traefik/widget";
@@ -84,6 +90,7 @@ const widgets = {
authentik,
autobrr,
bazarr,
caddy,
changedetectionio,
channelsdvrserver,
cloudflared,
@@ -92,6 +99,7 @@ const widgets = {
diskstation,
downloadstation,
emby,
evcc,
fileflows,
flood,
freshrss,
@@ -128,8 +136,10 @@ const widgets = {
opnsense,
overseerr,
paperlessngx,
pfsense,
photoprism,
proxmoxbackupserver,
pialert,
pihole,
plex,
portainer,
@@ -139,6 +149,7 @@ const widgets = {
pterodactyl,
pyload,
qbittorrent,
qnap,
radarr,
readarr,
rutorrent,
@@ -147,6 +158,7 @@ const widgets = {
sonarr,
speedtest,
strelaysrv,
tailscale,
tautulli,
tdarr,
traefik,
+24 -1
View File
@@ -32,4 +32,27 @@ module.exports = {
},
},
plugins: [tailwindForms, tailwindScrollbars],
};
// always include these in build as classes are dynamically constructed
safelist: [
'backdrop-blur',
'backdrop-blur-sm',
'backdrop-blur-md',
'backdrop-blur-xl',
'backdrop-saturate-0',
'backdrop-saturate-50',
'backdrop-saturate-100',
'backdrop-saturate-150',
'backdrop-saturate-200',
'backdrop-brightness-0',
'backdrop-brightness-50',
'backdrop-brightness-75',
'backdrop-brightness-90',
'backdrop-brightness-95',
'backdrop-brightness-100',
'backdrop-brightness-105',
'backdrop-brightness-110',
'backdrop-brightness-125',
'backdrop-brightness-150',
'backdrop-brightness-200',
],
}