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
shamoon
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 Assi
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 Greca
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 Walker
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-54
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 Walker
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 Greca
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
Andre
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 Assi
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
shamoon
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

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:

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.

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"
}
}

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"
}
}

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"
}
}

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á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á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"
}
}

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"
}
}

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"
}
}

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"
}
}

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",

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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"
}
}

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ı"
}
}

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": "Сповіщення про збій"
}
}

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"
}
}

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"
}
}

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"
}
}

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": "離線警告"
}
}

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>
);

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",

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}
/>

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>
);
}

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>
)}

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>
);

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>
);

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}`;

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">

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>
);
}

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>

View File

@@ -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>
);
}

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.',
});
}
}

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) {

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: {

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}`,

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
}

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;

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;
}
}

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}`;
}

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}});
}

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];
}

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 }
}

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>
);
}

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;

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;

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")),

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>
);
}

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;

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);
}

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") {

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>
);
}

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",

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>
);
}

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": {

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>
);
}

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;

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>
);
}

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;

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>
);

View File

@@ -10,6 +10,7 @@ const widget = {
validate: [
"dns_queries_today",
"ads_blocked_today",
"ads_percentage_today",
"domains_being_blocked"
]
},

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;

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" },

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
src/widgets/qnap/proxy.js Normal file
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
});
}

View File

@@ -0,0 +1,8 @@
import qnapProxyHandler from "./proxy";
const widget = {
api: "{url}",
proxyHandler: qnapProxyHandler,
};
export default widget;

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}`}
/>
))
}
</>
);
}

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;
})
},
},
};

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}`}
/>
))
}
</>
);
}

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;
})
}
},
};

View File

@@ -38,7 +38,6 @@ export default function Component({ service }) {
value: speedtestData.data.ping,
style: "unit",
unit: "millisecond",
unitDisplay: "narrow",
})}
/>
</Container>

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>
);
}

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;

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,

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',
],
}