Compare commits

...

789 Commits

Author SHA1 Message Date
shamoon
2faaaf5a9c Merge pull request #1763 from jnsgruk/main
chore: update package-lock.json
2023-08-02 17:54:12 -07:00
Jon Seager
8d91aeaf9d chore: update package-lock.json 2023-08-02 17:34:21 +01:00
shamoon
2609694dd7 Merge pull request #1762 from benphelps/fix/issue-1757
Fix: handle service container stopped causes crash in v0.6.24
2023-08-02 08:05:26 -07:00
shamoon
9c5521ba35 Fix: handle service object not found 2023-08-02 08:04:16 -07:00
Anonymous
6ae351b2ba Translated using Weblate (Basque)
Currently translated at 6.6% (33 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eu/
2023-08-02 07:31:53 +02:00
Anonymous
7116b093cb Translated using Weblate (Indonesian)
Currently translated at 4.8% (24 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/id/
2023-08-02 07:31:53 +02:00
Anonymous
c5aa89e533 Translated using Weblate (Slovenian)
Currently translated at 94.2% (471 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-08-02 07:31:53 +02:00
Anonymous
69b660b829 Translated using Weblate (Greek)
Currently translated at 28.6% (143 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-08-02 07:31:52 +02:00
Anonymous
ceca1d8ae7 Translated using Weblate (Korean)
Currently translated at 34.6% (173 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-08-02 07:31:52 +02:00
Anonymous
1369a356a8 Translated using Weblate (Slovak)
Currently translated at 1.8% (9 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-08-02 07:31:51 +02:00
Anonymous
a6014d3d06 Translated using Weblate (Thai)
Currently translated at 9.4% (47 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-08-02 07:31:51 +02:00
Anonymous
5de0f4f61e Translated using Weblate (Latvian)
Currently translated at 23.6% (118 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-08-02 07:31:51 +02:00
Anonymous
1371767481 Translated using Weblate (Japanese)
Currently translated at 77.0% (385 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-08-02 07:31:50 +02:00
Anonymous
8534fcfa58 Translated using Weblate (Ukrainian)
Currently translated at 95.8% (479 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-08-02 07:31:50 +02:00
Anonymous
0bc8d74694 Translated using Weblate (Esperanto)
Currently translated at 29.0% (145 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-08-02 07:31:50 +02:00
Anonymous
11b2bd6db1 Translated using Weblate (Hindi)
Currently translated at 1.8% (9 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-08-02 07:31:49 +02:00
Anonymous
3b943cabed Translated using Weblate (Malay)
Currently translated at 50.2% (251 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-08-02 07:31:49 +02:00
Anonymous
5a14917aa7 Translated using Weblate (Danish)
Currently translated at 39.4% (197 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-08-02 07:31:49 +02:00
Anonymous
7583b3dfd1 Translated using Weblate (Czech)
Currently translated at 88.8% (444 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-08-02 07:31:48 +02:00
Anonymous
ec61e2dd23 Translated using Weblate (Arabic)
Currently translated at 52.4% (262 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-08-02 07:31:48 +02:00
Anonymous
5bda68d51d Translated using Weblate (Serbian)
Currently translated at 1.8% (9 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-08-02 07:31:48 +02:00
Anonymous
c75e3cdf40 Translated using Weblate (Turkish)
Currently translated at 78.6% (393 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-08-02 07:31:47 +02:00
Anonymous
2029df1ed0 Translated using Weblate (Bulgarian)
Currently translated at 9.2% (46 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-08-02 07:31:47 +02:00
Anonymous
eb475e8655 Translated using Weblate (Telugu)
Currently translated at 43.0% (215 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-08-02 07:31:47 +02:00
Anonymous
bfada0f5f3 Translated using Weblate (Finnish)
Currently translated at 35.4% (177 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-08-02 07:31:46 +02:00
Anonymous
6e33e62540 Translated using Weblate (Yue (Traditional))
Currently translated at 23.4% (117 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-08-02 07:31:46 +02:00
Anonymous
b6ff3da1f0 Translated using Weblate (Portuguese (Brazil))
Currently translated at 92.2% (461 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-08-02 07:31:45 +02:00
Anonymous
ae14158f35 Translated using Weblate (Romanian)
Currently translated at 30.0% (150 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-08-02 07:31:45 +02:00
Anonymous
149e653e59 Translated using Weblate (Hebrew)
Currently translated at 20.0% (100 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-08-02 07:31:45 +02:00
Anonymous
05a90e83ef Translated using Weblate (Hungarian)
Currently translated at 94.2% (471 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-08-02 07:31:44 +02:00
Anonymous
e7430af074 Translated using Weblate (Croatian)
Currently translated at 94.0% (470 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-08-02 07:31:44 +02:00
Anonymous
0752ffce90 Translated using Weblate (Swedish)
Currently translated at 26.4% (132 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-08-02 07:31:44 +02:00
Anonymous
2451fae52a Translated using Weblate (Polish)
Currently translated at 74.8% (374 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-08-02 07:31:43 +02:00
Anonymous
fa45d09568 Translated using Weblate (Catalan)
Currently translated at 52.0% (260 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-08-02 07:31:43 +02:00
Anonymous
5806ac91b0 Translated using Weblate (Chinese (Traditional))
Currently translated at 92.0% (460 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-08-02 07:31:42 +02:00
Anonymous
92114046dd Translated using Weblate (Dutch)
Currently translated at 48.2% (241 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-08-02 07:31:42 +02:00
Anonymous
4fee35d05a Translated using Weblate (Vietnamese)
Currently translated at 8.8% (44 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-08-02 07:31:41 +02:00
Anonymous
2685f92229 Translated using Weblate (Norwegian Bokmål)
Currently translated at 16.0% (80 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-08-02 07:31:41 +02:00
Anonymous
bb1f9f162a Translated using Weblate (Italian)
Currently translated at 94.0% (470 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-08-02 07:31:41 +02:00
Anonymous
687dda0665 Translated using Weblate (Chinese (Simplified))
Currently translated at 88.8% (444 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-08-02 07:31:40 +02:00
Anonymous
23a06ec87e Translated using Weblate (Russian)
Currently translated at 85.2% (426 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-08-02 07:31:40 +02:00
Anonymous
3002dd2531 Translated using Weblate (Portuguese)
Currently translated at 83.0% (415 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-08-02 07:31:39 +02:00
Anonymous
068150b603 Translated using Weblate (French)
Currently translated at 98.8% (494 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-08-02 07:31:39 +02:00
Anonymous
e97af12f69 Translated using Weblate (Spanish)
Currently translated at 98.8% (494 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-08-02 07:31:39 +02:00
Anonymous
93566320db Translated using Weblate (German)
Currently translated at 91.4% (457 of 500 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-08-02 07:31:38 +02:00
Ben Phelps
9c4d1cf108 Merge pull request #1749 from benphelps/charts-widget
Glances Charts Widget
2023-08-02 08:29:53 +03:00
Ben Phelps
daa7ef2a3d add pure info metric 2023-08-02 06:04:54 +03:00
Ben Phelps
09d44da087 add effect overlay target 2023-08-02 06:04:20 +03:00
Ben Phelps
9d10de9949 update placeholder blocks 2023-08-02 06:04:04 +03:00
Ben Phelps
a0ffb46a6f bump up quicklook z 2023-08-02 03:54:34 +03:00
gallegonovato
3e8a8c649b Translated using Weblate (Spanish)
Currently translated at 100.0% (494 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-08-01 20:06:35 +02:00
Ben Phelps
0c8131f27e add gpu metric 2023-08-01 16:45:09 +03:00
Ben Phelps
cd2c24d47b rework position prop 2023-08-01 16:39:46 +03:00
Ben Phelps
b77909a360 refactor widget 2023-08-01 13:05:17 +03:00
Ben Phelps
3fa72e48cc Merge branch 'main' into charts-widget 2023-08-01 04:46:44 +03:00
Ben Phelps
9aba70d214 glances widget test 1 2023-08-01 03:54:19 +03:00
Nonoss117
302bff865c Translated using Weblate (French)
Currently translated at 100.0% (494 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-07-31 18:09:32 +02:00
shamoon
7cb5bcd468 Merge pull request #1746 from benphelps/fix/issue-1743
Fix: authentik queries failing
2023-07-31 09:03:47 -07:00
shamoon
804d9f66de Fix authentik queries 2023-07-31 09:01:55 -07:00
shamoon
489cfb5f10 Merge pull request #1744 from benphelps/fix/resources-0-percent
Fix: usage bar 0% displays '0'
2023-07-31 08:32:28 -07:00
shamoon
45ee37c86d Fix for usage bar percent is 0 2023-07-31 08:31:15 -07:00
shamoon
5221ed06ed Merge pull request #1742 from benphelps/fix/issue-1741
Fix: default resources refresh rate
2023-07-30 22:23:10 -07:00
shamoon
206e5034c5 Include default resource refresh rate 2023-07-30 22:22:30 -07:00
Anonymous
62e294a715 Translated using Weblate (Basque)
Currently translated at 6.6% (33 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eu/
2023-07-30 16:20:40 +02:00
Anonymous
f7aa4f13c8 Translated using Weblate (Indonesian)
Currently translated at 4.8% (24 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/id/
2023-07-30 16:20:40 +02:00
Anonymous
e9c7118e53 Translated using Weblate (Slovenian)
Currently translated at 95.3% (471 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-07-30 16:20:40 +02:00
Anonymous
43ee714fb0 Translated using Weblate (Greek)
Currently translated at 28.9% (143 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-07-30 16:20:39 +02:00
Anonymous
a4b5cb490c Translated using Weblate (Korean)
Currently translated at 35.0% (173 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-07-30 16:20:39 +02:00
Anonymous
f3eefd917c Translated using Weblate (Slovak)
Currently translated at 1.8% (9 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-07-30 16:20:39 +02:00
Anonymous
d2d2041dd1 Translated using Weblate (Thai)
Currently translated at 9.5% (47 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-07-30 16:20:38 +02:00
Anonymous
962c345083 Translated using Weblate (Latvian)
Currently translated at 23.8% (118 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-07-30 16:20:38 +02:00
Anonymous
34bea0c076 Translated using Weblate (Japanese)
Currently translated at 77.9% (385 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-07-30 16:20:38 +02:00
Anonymous
32d803c54b Translated using Weblate (Ukrainian)
Currently translated at 96.9% (479 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-07-30 16:20:37 +02:00
Anonymous
e884707bfc Translated using Weblate (Esperanto)
Currently translated at 29.3% (145 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-07-30 16:20:37 +02:00
Anonymous
00b0265350 Translated using Weblate (Hindi)
Currently translated at 1.8% (9 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-07-30 16:20:37 +02:00
Anonymous
c987df8f81 Translated using Weblate (Malay)
Currently translated at 50.8% (251 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-07-30 16:20:36 +02:00
Anonymous
94b2c9c822 Translated using Weblate (Danish)
Currently translated at 39.8% (197 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-07-30 16:20:36 +02:00
Anonymous
ee4b0ca450 Translated using Weblate (Czech)
Currently translated at 89.8% (444 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-07-30 16:20:36 +02:00
Anonymous
70ab398432 Translated using Weblate (Arabic)
Currently translated at 53.0% (262 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-07-30 16:20:35 +02:00
Anonymous
4b752bb63a Translated using Weblate (Serbian)
Currently translated at 1.8% (9 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-07-30 16:20:35 +02:00
Anonymous
7a18ec05f1 Translated using Weblate (Turkish)
Currently translated at 79.5% (393 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-07-30 16:20:35 +02:00
Anonymous
1666034f1f Translated using Weblate (Bulgarian)
Currently translated at 9.3% (46 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-07-30 16:20:34 +02:00
Anonymous
d935cb35bf Translated using Weblate (Telugu)
Currently translated at 43.5% (215 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-07-30 16:20:34 +02:00
Anonymous
f5d1ae2c4e Translated using Weblate (Finnish)
Currently translated at 35.8% (177 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-07-30 16:20:33 +02:00
Anonymous
0482e86cd1 Translated using Weblate (Yue (Traditional))
Currently translated at 23.6% (117 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-07-30 16:20:33 +02:00
Anonymous
67608ef79f Translated using Weblate (Portuguese (Brazil))
Currently translated at 93.3% (461 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-07-30 16:20:32 +02:00
Anonymous
59520e4a69 Translated using Weblate (Romanian)
Currently translated at 30.3% (150 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-07-30 16:20:32 +02:00
Anonymous
1ae33d6925 Translated using Weblate (Hebrew)
Currently translated at 20.2% (100 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-07-30 16:20:31 +02:00
Anonymous
aecf77c0ef Translated using Weblate (Hungarian)
Currently translated at 95.3% (471 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-07-30 16:20:31 +02:00
Anonymous
ea8514fc19 Translated using Weblate (Croatian)
Currently translated at 95.1% (470 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-07-30 16:20:31 +02:00
Anonymous
e338328c23 Translated using Weblate (Swedish)
Currently translated at 26.7% (132 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-07-30 16:20:30 +02:00
Anonymous
8138dd832d Translated using Weblate (Polish)
Currently translated at 75.7% (374 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-07-30 16:20:30 +02:00
Anonymous
1a63587ceb Translated using Weblate (Catalan)
Currently translated at 52.6% (260 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-07-30 16:20:30 +02:00
Anonymous
e5490fd5e8 Translated using Weblate (Chinese (Traditional))
Currently translated at 93.1% (460 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-07-30 16:20:29 +02:00
Anonymous
16ecd7b426 Translated using Weblate (Dutch)
Currently translated at 48.7% (241 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-07-30 16:20:29 +02:00
Anonymous
9053ef53f3 Translated using Weblate (Vietnamese)
Currently translated at 8.9% (44 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-07-30 16:20:28 +02:00
Anonymous
0071cadfac Translated using Weblate (Norwegian Bokmål)
Currently translated at 16.1% (80 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-07-30 16:20:28 +02:00
Anonymous
791e9fd95a Translated using Weblate (Italian)
Currently translated at 95.1% (470 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-07-30 16:20:28 +02:00
Anonymous
f1ad45a010 Translated using Weblate (Chinese (Simplified))
Currently translated at 89.8% (444 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-07-30 16:20:27 +02:00
Anonymous
e4a4c64c2b Translated using Weblate (Russian)
Currently translated at 86.2% (426 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-07-30 16:20:27 +02:00
Anonymous
c3dce716ee Translated using Weblate (Portuguese)
Currently translated at 84.0% (415 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-07-30 16:20:26 +02:00
Anonymous
ec12139da2 Translated using Weblate (French)
Currently translated at 99.1% (490 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-07-30 16:20:26 +02:00
Anonymous
e957a03334 Translated using Weblate (Spanish)
Currently translated at 96.9% (479 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-07-30 16:20:26 +02:00
Anonymous
e64a4108b2 Translated using Weblate (German)
Currently translated at 92.5% (457 of 494 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-07-30 16:20:25 +02:00
Nonoss117
31ec795c61 Translated using Weblate (French)
Currently translated at 100.0% (490 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-07-30 16:19:36 +02:00
Stephen Donchez
992516cebd Feature: UrBackup Widget (#1735)
* Add initial UrBackup widget with counts of ok, errored, and out-of date clients

* Add configurable number of days since last backup before a client is considered out-of-date

* Don't count a lack of recent (or error free) image backup if image backup isn't supported.

* Add support for reporting total disk usage

* add support for "fields" from services.yaml

* fix field filtering, syntax

* Consolidate urbackup code, syntax changes

* Revert pnpm changes

* re-add urbackup-server-api

---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2023-07-30 07:19:31 -07:00
Anonymous
2f4d4e52be Translated using Weblate (Basque)
Currently translated at 6.7% (33 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eu/
2023-07-30 07:19:10 +02:00
Anonymous
1f0d1bc393 Translated using Weblate (Indonesian)
Currently translated at 4.8% (24 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/id/
2023-07-30 07:19:09 +02:00
Anonymous
d3c0ad2190 Translated using Weblate (Slovenian)
Currently translated at 96.1% (471 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-07-30 07:19:09 +02:00
Anonymous
523909f63b Translated using Weblate (Greek)
Currently translated at 29.1% (143 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-07-30 07:19:08 +02:00
Anonymous
fbf20d5b8e Translated using Weblate (Korean)
Currently translated at 35.3% (173 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-07-30 07:19:08 +02:00
Anonymous
9bbb28dbc2 Translated using Weblate (Slovak)
Currently translated at 1.8% (9 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-07-30 07:19:08 +02:00
Anonymous
8aeff333d8 Translated using Weblate (Thai)
Currently translated at 9.5% (47 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-07-30 07:19:07 +02:00
Anonymous
e4e822a1e2 Translated using Weblate (Latvian)
Currently translated at 24.0% (118 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-07-30 07:19:07 +02:00
Anonymous
5ec8a1204d Translated using Weblate (Japanese)
Currently translated at 78.5% (385 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-07-30 07:19:06 +02:00
Anonymous
f6484bb23c Translated using Weblate (Ukrainian)
Currently translated at 97.7% (479 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-07-30 07:19:06 +02:00
Anonymous
0996cba02e Translated using Weblate (Esperanto)
Currently translated at 29.5% (145 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-07-30 07:19:06 +02:00
Anonymous
291baa97b7 Translated using Weblate (Hindi)
Currently translated at 1.8% (9 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-07-30 07:19:05 +02:00
Anonymous
cc7b5350ac Translated using Weblate (Malay)
Currently translated at 51.2% (251 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-07-30 07:19:05 +02:00
Anonymous
8e41853d58 Translated using Weblate (Danish)
Currently translated at 40.2% (197 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-07-30 07:19:04 +02:00
Anonymous
eb08d989ad Translated using Weblate (Czech)
Currently translated at 90.6% (444 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-07-30 07:19:04 +02:00
Anonymous
c142991a21 Translated using Weblate (Arabic)
Currently translated at 53.4% (262 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-07-30 07:19:04 +02:00
Anonymous
6d403511ce Translated using Weblate (Serbian)
Currently translated at 1.8% (9 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-07-30 07:19:03 +02:00
Anonymous
40d6afcec2 Translated using Weblate (Turkish)
Currently translated at 80.2% (393 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-07-30 07:19:03 +02:00
Anonymous
634e169d0d Translated using Weblate (Bulgarian)
Currently translated at 9.3% (46 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-07-30 07:19:02 +02:00
Anonymous
25d7fb8930 Translated using Weblate (Telugu)
Currently translated at 43.8% (215 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-07-30 07:19:02 +02:00
Anonymous
04ff059379 Translated using Weblate (Finnish)
Currently translated at 36.1% (177 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-07-30 07:19:02 +02:00
Anonymous
8d347d8b26 Translated using Weblate (Yue (Traditional))
Currently translated at 23.8% (117 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-07-30 07:19:01 +02:00
Anonymous
61aac831cb Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.0% (461 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-07-30 07:19:01 +02:00
Anonymous
6bdad76366 Translated using Weblate (Romanian)
Currently translated at 30.6% (150 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-07-30 07:19:00 +02:00
Anonymous
36f48cf863 Translated using Weblate (Hebrew)
Currently translated at 20.4% (100 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-07-30 07:19:00 +02:00
Anonymous
771f5493fd Translated using Weblate (Hungarian)
Currently translated at 96.1% (471 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-07-30 07:18:59 +02:00
Anonymous
84cca259a6 Translated using Weblate (Croatian)
Currently translated at 95.9% (470 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-07-30 07:18:59 +02:00
Anonymous
5a3f141f9d Translated using Weblate (Swedish)
Currently translated at 26.9% (132 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-07-30 07:18:59 +02:00
Anonymous
f5855514fa Translated using Weblate (Polish)
Currently translated at 76.3% (374 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-07-30 07:18:58 +02:00
Anonymous
76ff3d142c Translated using Weblate (Catalan)
Currently translated at 53.0% (260 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-07-30 07:18:57 +02:00
Anonymous
b5ec54b319 Translated using Weblate (Chinese (Traditional))
Currently translated at 93.8% (460 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-07-30 07:18:57 +02:00
Anonymous
4545b785f0 Translated using Weblate (Dutch)
Currently translated at 49.1% (241 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-07-30 07:18:57 +02:00
Anonymous
f66a4e4a42 Translated using Weblate (Vietnamese)
Currently translated at 8.9% (44 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-07-30 07:18:56 +02:00
Anonymous
1590029aec Translated using Weblate (Norwegian Bokmål)
Currently translated at 16.3% (80 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-07-30 07:18:56 +02:00
Anonymous
cf8efb38f7 Translated using Weblate (Italian)
Currently translated at 95.9% (470 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-07-30 07:18:55 +02:00
Anonymous
9058613b97 Translated using Weblate (Chinese (Simplified))
Currently translated at 90.6% (444 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-07-30 07:18:55 +02:00
Anonymous
fcecdd3c4a Translated using Weblate (Russian)
Currently translated at 86.9% (426 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-07-30 07:18:55 +02:00
Anonymous
7fbac755bc Translated using Weblate (Portuguese)
Currently translated at 84.6% (415 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-07-30 07:18:54 +02:00
Anonymous
99a55c85bb Translated using Weblate (French)
Currently translated at 97.7% (479 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-07-30 07:18:54 +02:00
Anonymous
19c56de8b0 Translated using Weblate (Spanish)
Currently translated at 97.7% (479 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-07-30 07:18:53 +02:00
Anonymous
59c7bcb392 Translated using Weblate (German)
Currently translated at 93.2% (457 of 490 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-07-30 07:18:53 +02:00
Hosted Weblate
556cb0f039 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/
2023-07-30 07:17:41 +02:00
liimee
9054561212 Translated using Weblate (Indonesian)
Currently translated at 4.9% (24 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/id/
2023-07-30 07:17:37 +02:00
Robert
d2c565da27 Translated using Weblate (Portuguese (Brazil))
Currently translated at 95.8% (467 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-07-30 07:17:37 +02:00
Nitzan Miranda
7e05adc02a Add Azure DevOps (#1715)
* add azure pullrequrests

* add creatorId

* rename azurePullrequests->azurePullRequests

* pass creatorId to FE

* expose userEmail to frontend

* tolower

* remove unused code

* merge to AzureDevOps

* fix userEmail

* remove whitespace in const and set true endpoint in widget

* use widget params in endpoint

* change approvedNotCompleted to Approved

* change to lower

* rename

* rename

* merge widgets together

* limit pipeline result to 1 result

* Better handle azuredevops PR call failures

* change to have repositoryId and not branchName

* Fix field filtering, avoid PR call if not needed

---------

Co-authored-by: Nitzan Miranda <Nitzan.Miranda@bagirasys.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2023-07-29 22:17:30 -07:00
Dan
ac61dc5d0c Translated using Weblate (Ukrainian)
Currently translated at 100.0% (487 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-07-28 04:28:33 +02:00
gallegonovato
e9ebf67cda Translated using Weblate (Spanish)
Currently translated at 100.0% (487 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-07-28 04:28:33 +02:00
Anonymous
4d50ca21dc Translated using Weblate (Basque)
Currently translated at 6.7% (33 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eu/
2023-07-27 07:07:59 +02:00
Anonymous
4a051bdaed Translated using Weblate (Indonesian)
Currently translated at 3.0% (15 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/id/
2023-07-27 07:07:59 +02:00
Anonymous
846181eaeb Translated using Weblate (Slovenian)
Currently translated at 96.7% (471 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-07-27 07:07:58 +02:00
Anonymous
6de158897c Translated using Weblate (Greek)
Currently translated at 29.3% (143 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-07-27 07:07:58 +02:00
Anonymous
3f1fdc2426 Translated using Weblate (Korean)
Currently translated at 35.5% (173 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-07-27 07:07:58 +02:00
Anonymous
970842cee2 Translated using Weblate (Slovak)
Currently translated at 1.8% (9 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-07-27 07:07:57 +02:00
Anonymous
4203d2d45c Translated using Weblate (Thai)
Currently translated at 9.6% (47 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-07-27 07:07:57 +02:00
Anonymous
51c386e9b3 Translated using Weblate (Latvian)
Currently translated at 24.2% (118 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-07-27 07:07:57 +02:00
Anonymous
e39734e101 Translated using Weblate (Japanese)
Currently translated at 79.0% (385 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-07-27 07:07:56 +02:00
Anonymous
29a7336b74 Translated using Weblate (Ukrainian)
Currently translated at 98.5% (480 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-07-27 07:07:56 +02:00
Anonymous
4863bf9249 Translated using Weblate (Esperanto)
Currently translated at 29.7% (145 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-07-27 07:07:55 +02:00
Anonymous
f7ffb87e7c Translated using Weblate (Hindi)
Currently translated at 1.8% (9 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-07-27 07:07:55 +02:00
Anonymous
5b9a478a0f Translated using Weblate (Malay)
Currently translated at 51.5% (251 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-07-27 07:07:55 +02:00
Anonymous
28acc9207c Translated using Weblate (Danish)
Currently translated at 40.4% (197 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-07-27 07:07:54 +02:00
Anonymous
5aa82ae928 Translated using Weblate (Czech)
Currently translated at 91.1% (444 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-07-27 07:07:54 +02:00
Anonymous
7aa3220e50 Translated using Weblate (Arabic)
Currently translated at 53.7% (262 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-07-27 07:07:54 +02:00
Anonymous
de47fc6e7f Translated using Weblate (Serbian)
Currently translated at 1.8% (9 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-07-27 07:07:53 +02:00
Anonymous
8658d24d15 Translated using Weblate (Turkish)
Currently translated at 80.6% (393 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-07-27 07:07:53 +02:00
Anonymous
9dfc9f261b Translated using Weblate (Bulgarian)
Currently translated at 9.4% (46 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-07-27 07:07:52 +02:00
Anonymous
bd229a7f8f Translated using Weblate (Telugu)
Currently translated at 44.1% (215 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-07-27 07:07:52 +02:00
Anonymous
bb2b2de97e Translated using Weblate (Finnish)
Currently translated at 36.3% (177 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-07-27 07:07:52 +02:00
Anonymous
b94a4834c1 Translated using Weblate (Yue (Traditional))
Currently translated at 24.0% (117 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-07-27 07:07:51 +02:00
Anonymous
078b1cbfd6 Translated using Weblate (Portuguese (Brazil))
Currently translated at 82.9% (404 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-07-27 07:07:51 +02:00
Anonymous
70aab41ffc Translated using Weblate (Romanian)
Currently translated at 30.8% (150 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-07-27 07:07:50 +02:00
Anonymous
8ebc7937c1 Translated using Weblate (Hebrew)
Currently translated at 20.5% (100 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-07-27 07:07:50 +02:00
Anonymous
f28ce55e42 Translated using Weblate (Hungarian)
Currently translated at 98.3% (479 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-07-27 07:07:49 +02:00
Anonymous
d7be22c7c8 Translated using Weblate (Croatian)
Currently translated at 96.5% (470 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-07-27 07:07:49 +02:00
Anonymous
f1e7b2b92f Translated using Weblate (Swedish)
Currently translated at 27.1% (132 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-07-27 07:07:48 +02:00
Anonymous
05ca31ecb6 Translated using Weblate (Polish)
Currently translated at 76.7% (374 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-07-27 07:07:48 +02:00
Anonymous
c379f3592e Translated using Weblate (Catalan)
Currently translated at 53.3% (260 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-07-27 07:07:48 +02:00
Anonymous
c43cec32d0 Translated using Weblate (Chinese (Traditional))
Currently translated at 94.4% (460 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-07-27 07:07:47 +02:00
Anonymous
c48d10adcb Translated using Weblate (Dutch)
Currently translated at 49.4% (241 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-07-27 07:07:47 +02:00
Anonymous
28026a7fa1 Translated using Weblate (Vietnamese)
Currently translated at 9.0% (44 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-07-27 07:07:47 +02:00
Anonymous
16daf4e97c Translated using Weblate (Norwegian Bokmål)
Currently translated at 16.4% (80 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-07-27 07:07:46 +02:00
Anonymous
374e0c215e Translated using Weblate (Italian)
Currently translated at 96.5% (470 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-07-27 07:07:46 +02:00
Anonymous
2c84b378ef Translated using Weblate (Chinese (Simplified))
Currently translated at 91.1% (444 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-07-27 07:07:45 +02:00
Anonymous
2b21d50ce2 Translated using Weblate (Russian)
Currently translated at 87.4% (426 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-07-27 07:07:45 +02:00
Anonymous
3572b53ad6 Translated using Weblate (Portuguese)
Currently translated at 85.2% (415 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-07-27 07:07:45 +02:00
Anonymous
fc39c1b45a Translated using Weblate (Spanish)
Currently translated at 98.5% (480 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-07-27 07:07:44 +02:00
Anonymous
259cb955d0 Translated using Weblate (German)
Currently translated at 93.8% (457 of 487 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-07-27 07:07:44 +02:00
fredodiable
420aa896d7 Feature: GameDig Widget (#1717)
* Adding Counter-Strike: Global Offensive (CSGO)

Adding Counter-Strike: Global Offensive (CSGO) widget

* Changed to GameDig

Converted csgo widget to gamedig
Added game server type as widget parameter
Added more fields

* Limited widget displayed fields to 4

* Moved fields limit to gamedig widget
2023-07-26 22:06:45 -07:00
shamoon
6586af17a3 Merge pull request #1729 from Mega-Volti/main
Enable custom refresh rate for resource widget
2023-07-26 21:54:41 -07:00
Mega-Volti
454d8d03c2 Add custom refresh rate setting to resources
Simplify resources refresh variable, enforce minimum

Add custom refresh rate to uptime

Add custom refresh rate to memory

Add custom refresh rate to disk

Add custom refresh rate to cputemp

Add custom refresh rate to CPU
2023-07-26 21:54:00 -07:00
Mega-Volti
1560bb7762 Support custom colors for icons (#1724)
* Add custom colors to resolvedicon.jsx

Enables appending a color code (e.g. "#123456") to all mdi and si icons, in order to change their color to a per-icon custom one.

* Streamline code for custom icon colors in resolvedicon.jsx 

Removed redundant if statement when defaulting to theme colors if no custom icon color code is provided

* Update resolvedicon.jsx

Remove unnecessary variable, restoring the fallback code in case no custom icon color is provided.

* Update resolvedicon.jsx - test for custom color suffix

Changed if condition from string.match to string.test and expanded regex to also include upper case letters.

* Update resolvedicon.jsx - DRY

Removed repetition, slimmed down if statement.

Also reverse previous commit as it did not work as intended.

* Update resolvedicon.jsx - upper case color hex codes

Update regular expression to also allow for upper case letters as part of the hex color code, as either are valid when describing an objects color.

* Refactor custom color code

---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2023-07-25 17:31:42 -07:00
shamoon
e23dc8f277 Merge pull request #1725 from benphelps/fix/issue-1720
Ensure spacing with custom logo
2023-07-25 12:03:27 -07:00
shamoon
115bb432ff Ensure spacing with custom logo 2023-07-25 12:02:13 -07:00
shamoon
f4fa098f6b Merge pull request #1718 from artstorm/kopia-source
Add snapshot host and path to Kopia widget
2023-07-24 09:29:12 -07:00
Johan Steen
92ed6dc1cb Add snapshot host and path to Kopia widget 2023-07-24 12:28:03 +07:00
shamoon
e265a7c645 Merge pull request #1714 from FabyoSK/patch-1
Update README.md
2023-07-23 08:05:29 -07:00
Fábio Alves
aa9b682f5f Update README.md 2023-07-23 13:58:03 -01:00
Dan
d2c1226d74 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (480 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-07-23 12:04:55 +02:00
The Re
c749c02ff5 Translated using Weblate (Hungarian)
Currently translated at 99.7% (479 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-07-23 12:04:55 +02:00
Nonoss117
a6c6b6f4c7 Translated using Weblate (French)
Currently translated at 100.0% (480 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-07-23 12:04:52 +02:00
gallegonovato
7022ae9be2 Translated using Weblate (Spanish)
Currently translated at 100.0% (480 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-07-23 12:04:52 +02:00
shamoon
e4e6bbab93 Merge pull request #1704 from rauenzi/disclosure-collapse
Improve disclosure collapse animation
2023-07-22 00:55:06 -07:00
Zack Rauen
2d1aed4252 Improve disclosure collapse animation 2023-07-22 00:50:54 -07:00
shamoon
0adf5e69e0 Merge pull request #1706 from benphelps/fix/issue-1702
Fix: error when fields specified via labels in 0.6.23
2023-07-20 23:04:16 -07:00
shamoon
f410dd302b Fixes handling of fields specified via labels 2023-07-20 23:03:15 -07:00
Anonymous
89e3857773 Translated using Weblate (Basque)
Currently translated at 6.8% (33 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eu/
2023-07-20 23:48:08 +02:00
Anonymous
376a665591 Translated using Weblate (Indonesian)
Currently translated at 3.1% (15 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/id/
2023-07-20 23:48:08 +02:00
Anonymous
f230260633 Translated using Weblate (Slovenian)
Currently translated at 98.1% (471 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-07-20 23:48:08 +02:00
Anonymous
d223687e07 Translated using Weblate (Greek)
Currently translated at 29.7% (143 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-07-20 23:48:07 +02:00
Anonymous
a8c2e6500b Translated using Weblate (Korean)
Currently translated at 36.0% (173 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-07-20 23:48:07 +02:00
Anonymous
5f3a657eba Translated using Weblate (Slovak)
Currently translated at 1.8% (9 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-07-20 23:48:06 +02:00
Anonymous
f76d3509ce Translated using Weblate (Thai)
Currently translated at 9.7% (47 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-07-20 23:48:06 +02:00
Anonymous
f313be4e41 Translated using Weblate (Latvian)
Currently translated at 24.5% (118 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-07-20 23:48:05 +02:00
Anonymous
38235a05fb Translated using Weblate (Japanese)
Currently translated at 80.2% (385 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-07-20 23:48:05 +02:00
Anonymous
b49d9ca409 Translated using Weblate (Ukrainian)
Currently translated at 98.3% (472 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-07-20 23:48:05 +02:00
Anonymous
80432b88b1 Translated using Weblate (Esperanto)
Currently translated at 30.2% (145 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-07-20 23:48:04 +02:00
Anonymous
54ad99d83f Translated using Weblate (Hindi)
Currently translated at 1.8% (9 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-07-20 23:48:04 +02:00
Anonymous
687f992b56 Translated using Weblate (Malay)
Currently translated at 52.2% (251 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-07-20 23:48:03 +02:00
Anonymous
b880b3496b Translated using Weblate (Danish)
Currently translated at 41.0% (197 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-07-20 23:48:03 +02:00
Anonymous
9879b3e272 Translated using Weblate (Czech)
Currently translated at 92.5% (444 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-07-20 23:48:03 +02:00
Anonymous
308d1e16c6 Translated using Weblate (Arabic)
Currently translated at 54.5% (262 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-07-20 23:48:02 +02:00
Anonymous
a898be0bd7 Translated using Weblate (Serbian)
Currently translated at 1.8% (9 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-07-20 23:48:02 +02:00
Anonymous
095acc098e Translated using Weblate (Turkish)
Currently translated at 81.8% (393 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-07-20 23:48:02 +02:00
Anonymous
feaf1ed503 Translated using Weblate (Bulgarian)
Currently translated at 9.5% (46 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-07-20 23:48:01 +02:00
Anonymous
ab03d4b1ec Translated using Weblate (Telugu)
Currently translated at 44.7% (215 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-07-20 23:48:01 +02:00
Anonymous
8633db187f Translated using Weblate (Finnish)
Currently translated at 36.8% (177 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-07-20 23:48:00 +02:00
Anonymous
9952123468 Translated using Weblate (Yue (Traditional))
Currently translated at 24.3% (117 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-07-20 23:48:00 +02:00
Anonymous
d1fc7a0e07 Translated using Weblate (Portuguese (Brazil))
Currently translated at 84.1% (404 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-07-20 23:48:00 +02:00
Anonymous
b03a0103e8 Translated using Weblate (Romanian)
Currently translated at 31.2% (150 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-07-20 23:47:59 +02:00
Anonymous
d0f5d0bbb0 Translated using Weblate (Hebrew)
Currently translated at 20.8% (100 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-07-20 23:47:59 +02:00
Anonymous
972a9ab395 Translated using Weblate (Hungarian)
Currently translated at 25.0% (120 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-07-20 23:47:58 +02:00
Anonymous
b9f144f576 Translated using Weblate (Croatian)
Currently translated at 97.9% (470 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-07-20 23:47:58 +02:00
Anonymous
b98131cdac Translated using Weblate (Swedish)
Currently translated at 27.5% (132 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-07-20 23:47:58 +02:00
Anonymous
b404337e1f Translated using Weblate (Polish)
Currently translated at 77.9% (374 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-07-20 23:47:57 +02:00
Anonymous
7ff8ba7c6a Translated using Weblate (Catalan)
Currently translated at 54.1% (260 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-07-20 23:47:57 +02:00
Anonymous
027b85997b Translated using Weblate (Chinese (Traditional))
Currently translated at 95.8% (460 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-07-20 23:47:57 +02:00
Anonymous
b5c1b54168 Translated using Weblate (Dutch)
Currently translated at 50.2% (241 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-07-20 23:47:56 +02:00
Anonymous
d6201a670b Translated using Weblate (Vietnamese)
Currently translated at 9.1% (44 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-07-20 23:47:55 +02:00
Anonymous
f412b988b6 Translated using Weblate (Norwegian Bokmål)
Currently translated at 16.6% (80 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-07-20 23:47:55 +02:00
Anonymous
b9f468bcd9 Translated using Weblate (Italian)
Currently translated at 97.9% (470 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-07-20 23:47:55 +02:00
Anonymous
8386dc2774 Translated using Weblate (Chinese (Simplified))
Currently translated at 92.5% (444 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-07-20 23:47:54 +02:00
Anonymous
492e8fa5fd Translated using Weblate (Russian)
Currently translated at 88.7% (426 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-07-20 23:47:54 +02:00
Anonymous
3b0cd4c3d6 Translated using Weblate (Portuguese)
Currently translated at 86.4% (415 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-07-20 23:47:54 +02:00
Anonymous
8571209026 Translated using Weblate (French)
Currently translated at 98.3% (472 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-07-20 23:47:53 +02:00
Anonymous
0a2dd3f740 Translated using Weblate (Spanish)
Currently translated at 98.3% (472 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-07-20 23:47:53 +02:00
Anonymous
b957f57dc5 Translated using Weblate (German)
Currently translated at 95.2% (457 of 480 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-07-20 23:47:52 +02:00
shamoon
460c67be77 Merge pull request #1701 from Nizzan943/feat/add-azure-pipelines
Adding Azure Pipelines
2023-07-20 14:46:48 -07:00
Nitzan Miranda
04cccfdd60 Adds azure pipelines widget
Add translation for result and status
remove buildId value translation
Fixes syntax in azure pipelines
hide running status if finished
2023-07-20 14:45:10 -07:00
shamoon
179512672a Merge pull request #1705 from benphelps/fix/issue-1703
Fix: Handle cpu sensors without `warning` property
2023-07-20 14:41:12 -07:00
shamoon
60fa4205d3 Handle sensors without warning property 2023-07-20 14:40:27 -07:00
Milo Ivir
dfa9e3b8fa Translated using Weblate (Croatian)
Currently translated at 99.5% (470 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-07-20 22:06:57 +02:00
shamoon
6e581913ea Merge pull request #1676 from markwalet/improve-proxmox
Improve proxmox
2023-07-20 06:12:40 -07:00
shamoon
77ac06993b Merge pull request #1699 from benphelps/fix/errors-in-1603
Fix more errors from PR #1603
2023-07-19 23:44:46 -07:00
shamoon
08ac9fe7c9 Fix glances widget key warnings 2023-07-19 23:43:23 -07:00
shamoon
6ceaf3686c Fix weather icon DOM warnings 2023-07-19 23:43:23 -07:00
shamoon
82c54f197d Merge pull request #1698 from benphelps/fix/issue-1697
Fixes oversized logo in 0.6.22
2023-07-19 22:58:58 -07:00
shamoon
597a8d8b9a Fixes oversized logo 2023-07-19 22:56:11 -07:00
Dan
2aeb3f4c89 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (472 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-07-18 17:02:15 +02:00
Ash Ed
29f3217abb Translated using Weblate (Russian)
Currently translated at 90.2% (426 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-07-18 17:02:15 +02:00
gallegonovato
7f83623ded Translated using Weblate (Spanish)
Currently translated at 100.0% (472 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-07-16 12:00:52 +02:00
Nonoss117
2843ae3f79 Translated using Weblate (French)
Currently translated at 100.0% (472 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-07-15 08:48:03 +02:00
Anonymous
ba1b075cb8 Translated using Weblate (Basque)
Currently translated at 6.9% (33 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eu/
2023-07-14 08:21:59 +02:00
Anonymous
f063e20dab Translated using Weblate (Indonesian)
Currently translated at 3.1% (15 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/id/
2023-07-14 08:21:59 +02:00
Anonymous
176b8fe6a9 Translated using Weblate (Slovenian)
Currently translated at 99.7% (471 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-07-14 08:21:59 +02:00
Anonymous
d71893903e Translated using Weblate (Greek)
Currently translated at 30.2% (143 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-07-14 08:21:58 +02:00
Anonymous
84d82309b0 Translated using Weblate (Korean)
Currently translated at 36.6% (173 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-07-14 08:21:58 +02:00
Anonymous
d7f6113fd9 Translated using Weblate (Slovak)
Currently translated at 1.9% (9 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-07-14 08:21:58 +02:00
Anonymous
cacdd2348a Translated using Weblate (Thai)
Currently translated at 9.9% (47 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-07-14 08:21:58 +02:00
Anonymous
f091f8a6ad Translated using Weblate (Latvian)
Currently translated at 25.0% (118 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-07-14 08:21:57 +02:00
Anonymous
5636537998 Translated using Weblate (Japanese)
Currently translated at 81.5% (385 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-07-14 08:21:57 +02:00
Anonymous
d49c3dfa06 Translated using Weblate (Ukrainian)
Currently translated at 99.7% (471 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-07-14 08:21:57 +02:00
Anonymous
d612c0073b Translated using Weblate (Esperanto)
Currently translated at 30.7% (145 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-07-14 08:21:57 +02:00
Anonymous
36e63e9736 Translated using Weblate (Hindi)
Currently translated at 1.9% (9 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-07-14 08:21:56 +02:00
Anonymous
328fd8b6b6 Translated using Weblate (Malay)
Currently translated at 53.1% (251 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-07-14 08:21:56 +02:00
Anonymous
5ef4638d88 Translated using Weblate (Danish)
Currently translated at 41.7% (197 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-07-14 08:21:56 +02:00
Anonymous
2251b0cb3e Translated using Weblate (Czech)
Currently translated at 94.0% (444 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-07-14 08:21:55 +02:00
Anonymous
d97e729e41 Translated using Weblate (Arabic)
Currently translated at 55.5% (262 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-07-14 08:21:55 +02:00
Anonymous
b6e8952d82 Translated using Weblate (Serbian)
Currently translated at 1.9% (9 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-07-14 08:21:55 +02:00
Anonymous
3d18618fc1 Translated using Weblate (Turkish)
Currently translated at 83.2% (393 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-07-14 08:21:55 +02:00
Anonymous
cc4bf9d221 Translated using Weblate (Bulgarian)
Currently translated at 9.7% (46 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-07-14 08:21:54 +02:00
Anonymous
96e9a5cc72 Translated using Weblate (Telugu)
Currently translated at 45.5% (215 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-07-14 08:21:54 +02:00
Anonymous
a8bb116ea1 Translated using Weblate (Finnish)
Currently translated at 37.5% (177 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-07-14 08:21:54 +02:00
Anonymous
7f8b66f72d Translated using Weblate (Yue (Traditional))
Currently translated at 24.7% (117 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-07-14 08:21:54 +02:00
Anonymous
44fbc31dd6 Translated using Weblate (Portuguese (Brazil))
Currently translated at 85.5% (404 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-07-14 08:21:53 +02:00
Anonymous
449d170430 Translated using Weblate (Romanian)
Currently translated at 31.7% (150 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-07-14 08:21:53 +02:00
Anonymous
e34fd362d2 Translated using Weblate (Hebrew)
Currently translated at 21.1% (100 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-07-14 08:21:53 +02:00
Anonymous
e4392fc821 Translated using Weblate (Hungarian)
Currently translated at 25.4% (120 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-07-14 08:21:53 +02:00
Anonymous
4dc4ba9b2c Translated using Weblate (Croatian)
Currently translated at 99.3% (469 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-07-14 08:21:52 +02:00
Anonymous
9b33d1acf1 Translated using Weblate (Swedish)
Currently translated at 27.9% (132 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-07-14 08:21:52 +02:00
Anonymous
160352d436 Translated using Weblate (Polish)
Currently translated at 79.2% (374 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-07-14 08:21:52 +02:00
Anonymous
b3e9bb6cc2 Translated using Weblate (Catalan)
Currently translated at 55.0% (260 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-07-14 08:21:52 +02:00
Anonymous
ad1a3f8395 Translated using Weblate (Chinese (Traditional))
Currently translated at 97.4% (460 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-07-14 08:21:51 +02:00
Anonymous
b4af77d3c4 Translated using Weblate (Dutch)
Currently translated at 51.0% (241 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-07-14 08:21:51 +02:00
Anonymous
95f1c31e9c Translated using Weblate (Vietnamese)
Currently translated at 9.3% (44 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-07-14 08:21:51 +02:00
Anonymous
3b2f7561be Translated using Weblate (Norwegian Bokmål)
Currently translated at 16.9% (80 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-07-14 08:21:51 +02:00
Anonymous
2deae19940 Translated using Weblate (Italian)
Currently translated at 99.5% (470 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-07-14 08:21:50 +02:00
Anonymous
4e4e366e4e Translated using Weblate (Chinese (Simplified))
Currently translated at 94.0% (444 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-07-14 08:21:50 +02:00
Anonymous
de6e777312 Translated using Weblate (Russian)
Currently translated at 87.5% (413 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-07-14 08:21:50 +02:00
Anonymous
bd467ab01f Translated using Weblate (Portuguese)
Currently translated at 87.9% (415 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-07-14 08:21:50 +02:00
Anonymous
376ab9a6f3 Translated using Weblate (French)
Currently translated at 99.7% (471 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-07-14 08:21:49 +02:00
Anonymous
48f9bf4f7e Translated using Weblate (Spanish)
Currently translated at 99.7% (471 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-07-14 08:21:49 +02:00
Anonymous
23fd4a5a73 Translated using Weblate (German)
Currently translated at 96.8% (457 of 472 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-07-14 08:21:49 +02:00
shamoon
5a7e97222c Merge pull request #1685 from jonathann92/fix-tautulli-sort
Fix: Handle tautulli response when unable to connect to Plex
2023-07-13 23:19:11 -07:00
shamoon
7844991617 Show plex connection error 2023-07-13 23:03:10 -07:00
shamoon
ae4a2e3cf6 Merge pull request #1684 from benphelps/feature-coinmarketcap-slugs
Feature: support coinmarketcap slugs
2023-07-13 22:41:51 -07:00
jonathann92
aeac95db48 early exit if tautulli's data is an empty object
Fix for when tautulli cannot reach to plex
2023-07-13 22:08:00 -07:00
shamoon
1e60553904 Allow coinmarketcap slugs 2023-07-13 21:39:45 -07:00
shamoon
276edb2069 Better handle invalid coinmarketcap data 2023-07-13 17:14:47 -07:00
Mark Walet
43b5263f41 Improve proxmox widget 2023-07-13 18:39:11 +02:00
alpine8
d75505acc8 Translated using Weblate (Norwegian Bokmål)
Currently translated at 16.9% (80 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-07-12 02:52:27 +02:00
shamoon
2d8af6eaf6 Merge pull request #1673 from jnsgruk/conf-dir-override
Override config directory with env var.
2023-07-10 20:54:38 -07:00
antaanimosity
9f4ac4e41e Translated using Weblate (Basque)
Currently translated at 7.0% (33 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eu/
2023-07-10 21:48:24 +02:00
Jon Seager
ca396ce96b Override config directory with env var.
Until this change, the config directory was assumed
to be located at '/config'. This patch retains that
default behaviour, but enables users/devs to override
that behaviour by setting the HOMEPAGE_CONFIG_DIR
variable.
2023-07-10 15:48:51 +01:00
Anonymous
9c0bd8b07a Translated using Weblate (Basque)
Currently translated at 100.0% (0 of 0 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eu/
2023-07-09 20:32:29 +02:00
Smexhy
885058dd41 Translated using Weblate (Czech)
Currently translated at 94.2% (444 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-07-09 20:32:27 +02:00
antaanimosity
c6b6b4d71b Added translation using Weblate (Basque) 2023-07-09 20:31:43 +02:00
Andrej Kralj
8f953c0d16 Translated using Weblate (Slovenian)
Currently translated at 100.0% (471 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-07-06 13:47:58 +02:00
shamoon
d1f83c0359 Update http.js 2023-07-03 22:12:17 -07:00
shamoon
eb9721334d Merge pull request #1656 from nathan-sankbeil/fix/gzip
Handle missing EOF when decompressing responses
2023-07-03 22:10:50 -07:00
Vincenzo
2279dd37f0 Translated using Weblate (Italian)
Currently translated at 100.0% (471 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-07-03 22:30:47 +02:00
Nonoss117
10d9b2d831 Translated using Weblate (French)
Currently translated at 100.0% (471 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-07-03 22:30:45 +02:00
Denis Papec
1cda437120 Translated using Weblate (English)
Currently translated at 100.0% (471 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/en/
2023-07-03 22:30:44 +02:00
nsankbeil
5640798fe4 fix: handle missing EOF when decompressing response
Closes: #1609
2023-07-03 11:49:16 -04:00
My Random Thoughts
1439b6cc9c Translated using Weblate (English)
Currently translated at 100.0% (471 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/en/
2023-07-01 12:41:42 +02:00
shamoon
2e892ac906 Merge pull request #1640 from benphelps/feature/handle-invalid-service-fields
Handle invalid fields syntax in service labels
2023-06-28 08:50:04 -07:00
shamoon
a2fe1eef7a Handle invalid fields syntax in service labels 2023-06-28 08:49:25 -07:00
Milo Ivir
b04ed36adb Translated using Weblate (Croatian)
Currently translated at 99.5% (469 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-06-26 21:50:38 +02:00
Ado Nishimura
d734343b31 Translated using Weblate (Japanese)
Currently translated at 81.7% (385 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-06-23 17:53:02 +02:00
Dan
8ad0c9c171 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (471 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-06-23 17:53:02 +02:00
Nonoss117
b9edea5286 Translated using Weblate (French)
Currently translated at 100.0% (471 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-06-23 17:53:01 +02:00
Y0plait
27baf17e08 Translated using Weblate (French)
Currently translated at 100.0% (471 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-06-23 17:53:01 +02:00
gallegonovato
2a4c449b77 Translated using Weblate (Spanish)
Currently translated at 100.0% (471 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-06-23 17:53:00 +02:00
shamoon
04d9ceed1a Merge pull request #1629 from benphelps/collapsible-bookmarks
Feature: add collapsible feature to bookmarks
2023-06-22 11:52:07 -07:00
shamoon
b32d610532 Adds collapsible feature to bookmarks 2023-06-22 11:51:38 -07:00
shamoon
1b6e5c4a8d Update group.jsx 2023-06-22 11:51:12 -07:00
shamoon
33492bda3a Merge pull request #1626 from ionyx0/main
Feature: collapsible layout sections
2023-06-22 11:45:00 -07:00
shamoon
714e0a4517 Use Disclosure component for collapsible service groups, add transition
hide collapse arrow if disabled

dont break layout for icons in group title

no-shadow
2023-06-22 10:46:39 -07:00
Alex Higgins
041fae1fb3 Adds ability to collapse layout sections
Reverts pnpm lock file changes

Make entire section above list clickable.

Implement in headlessui instead of pulling in new library.

Remove unecessary packages and clean up ESLint errors
2023-06-22 10:00:04 -07:00
shamoon
0936ba2b6b Update package-lock.json 2023-06-22 09:57:21 -07:00
Anonymous
1d78881a5f Translated using Weblate (Indonesian)
Currently translated at 3.1% (15 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/id/
2023-06-20 19:47:24 +02:00
Anonymous
60463721b8 Translated using Weblate (Slovenian)
Currently translated at 95.3% (449 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-06-20 19:47:23 +02:00
Anonymous
68f755710e Translated using Weblate (Greek)
Currently translated at 30.3% (143 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-06-20 19:47:23 +02:00
Anonymous
84d12b0b21 Translated using Weblate (Korean)
Currently translated at 36.7% (173 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-06-20 19:47:23 +02:00
Anonymous
0598b8bcf5 Translated using Weblate (Slovak)
Currently translated at 1.9% (9 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-06-20 19:47:22 +02:00
Anonymous
ebca1050c4 Translated using Weblate (Thai)
Currently translated at 9.9% (47 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-06-20 19:47:22 +02:00
Anonymous
cc92890dca Translated using Weblate (Latvian)
Currently translated at 25.0% (118 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-06-20 19:47:22 +02:00
Anonymous
768db388cb Translated using Weblate (Japanese)
Currently translated at 81.5% (384 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-06-20 19:47:21 +02:00
Anonymous
03276eced4 Translated using Weblate (Ukrainian)
Currently translated at 99.5% (469 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-06-20 19:47:21 +02:00
Anonymous
2e34ab9f1e Translated using Weblate (Esperanto)
Currently translated at 30.7% (145 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-06-20 19:47:21 +02:00
Anonymous
c997b2c87c Translated using Weblate (Hindi)
Currently translated at 1.9% (9 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-06-20 19:47:20 +02:00
Anonymous
ef1be0bb3f Translated using Weblate (Malay)
Currently translated at 53.2% (251 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-06-20 19:47:20 +02:00
Anonymous
92f5bdf659 Translated using Weblate (Danish)
Currently translated at 41.8% (197 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-06-20 19:47:20 +02:00
Anonymous
4ba88229ae Translated using Weblate (Czech)
Currently translated at 94.2% (444 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-06-20 19:47:19 +02:00
Anonymous
5dde0ae1fa Translated using Weblate (Arabic)
Currently translated at 55.6% (262 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-06-20 19:47:19 +02:00
Anonymous
8f4d64913c Translated using Weblate (Serbian)
Currently translated at 1.9% (9 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-06-20 19:47:19 +02:00
Anonymous
ae060903a0 Translated using Weblate (Turkish)
Currently translated at 83.4% (393 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-06-20 19:47:18 +02:00
Anonymous
81cf03fa87 Translated using Weblate (Bulgarian)
Currently translated at 9.7% (46 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-06-20 19:47:18 +02:00
Anonymous
d9aa1dfdbf Translated using Weblate (Telugu)
Currently translated at 45.6% (215 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-06-20 19:47:18 +02:00
Anonymous
7e01545e14 Translated using Weblate (Finnish)
Currently translated at 37.5% (177 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-06-20 19:47:17 +02:00
Anonymous
5f21c20a59 Translated using Weblate (Yue (Traditional))
Currently translated at 24.8% (117 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-06-20 19:47:17 +02:00
Anonymous
e552524d99 Translated using Weblate (Portuguese (Brazil))
Currently translated at 85.7% (404 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-06-20 19:47:16 +02:00
Anonymous
794902cbd5 Translated using Weblate (Romanian)
Currently translated at 31.8% (150 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-06-20 19:47:16 +02:00
Anonymous
58695dbe75 Translated using Weblate (Hebrew)
Currently translated at 21.2% (100 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-06-20 19:47:16 +02:00
Anonymous
514d827ff4 Translated using Weblate (Hungarian)
Currently translated at 25.4% (120 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-06-20 19:47:15 +02:00
Anonymous
25f7064286 Translated using Weblate (Croatian)
Currently translated at 97.2% (458 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-06-20 19:47:15 +02:00
Anonymous
112f376aa8 Translated using Weblate (Swedish)
Currently translated at 27.6% (130 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-06-20 19:47:15 +02:00
Anonymous
4fd107ab45 Translated using Weblate (Polish)
Currently translated at 79.4% (374 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-06-20 19:47:14 +02:00
Anonymous
197d8acbe8 Translated using Weblate (Catalan)
Currently translated at 55.2% (260 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-06-20 19:47:14 +02:00
Anonymous
0d8f6545dd Translated using Weblate (Chinese (Traditional))
Currently translated at 97.6% (460 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-06-20 19:47:14 +02:00
Anonymous
f83dd71682 Translated using Weblate (Dutch)
Currently translated at 51.1% (241 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-06-20 19:47:13 +02:00
Anonymous
a25f136628 Translated using Weblate (Vietnamese)
Currently translated at 9.3% (44 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-06-20 19:47:13 +02:00
Anonymous
958428db29 Translated using Weblate (Norwegian Bokmål)
Currently translated at 16.7% (79 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-06-20 19:47:13 +02:00
Anonymous
297c253c33 Translated using Weblate (Italian)
Currently translated at 70.7% (333 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-06-20 19:47:12 +02:00
Anonymous
3021190959 Translated using Weblate (Chinese (Simplified))
Currently translated at 94.2% (444 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-06-20 19:47:12 +02:00
Anonymous
3a8e9ece9b Translated using Weblate (Russian)
Currently translated at 87.6% (413 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-06-20 19:47:12 +02:00
Anonymous
8678c67d97 Translated using Weblate (Portuguese)
Currently translated at 88.1% (415 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-06-20 19:47:11 +02:00
Anonymous
2a7ca65907 Translated using Weblate (French)
Currently translated at 99.5% (469 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-06-20 19:47:11 +02:00
Anonymous
edcd7508c9 Translated using Weblate (Spanish)
Currently translated at 99.5% (469 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-06-20 19:47:11 +02:00
Anonymous
3e691ab446 Translated using Weblate (German)
Currently translated at 97.0% (457 of 471 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-06-20 19:47:10 +02:00
shamoon
dc85100e32 Merge pull request #1623 from dimitricappelle/kavita
Adding Kavita
2023-06-20 10:46:18 -07:00
Quan Dong
3161c459b8 Translated using Weblate (Chinese (Simplified))
Currently translated at 94.6% (444 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-06-20 17:51:17 +02:00
dimitricappelle
940ce359bf Adding Kavita 2023-06-20 17:05:07 +02:00
mikmik
bc2695323c Translated using Weblate (Hungarian)
Currently translated at 25.5% (120 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-06-19 06:14:47 +02:00
Dan
751777a4ad Translated using Weblate (Ukrainian)
Currently translated at 100.0% (469 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-06-18 10:48:01 +02:00
Daniele Luisetto
34b8689da7 Translated using Weblate (Italian)
Currently translated at 71.0% (333 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-06-18 10:48:01 +02:00
Nonoss117
58b7f8f79a Translated using Weblate (French)
Currently translated at 100.0% (469 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-06-18 10:48:00 +02:00
gallegonovato
93515578c0 Translated using Weblate (Spanish)
Currently translated at 100.0% (469 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-06-18 10:48:00 +02:00
Anonymous
009aae7a38 Translated using Weblate (Indonesian)
Currently translated at 3.1% (15 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/id/
2023-06-16 08:41:41 +02:00
Anonymous
15c8c5552c Translated using Weblate (Slovenian)
Currently translated at 95.7% (449 of 469 strings)

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

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-06-16 08:41:40 +02:00
Anonymous
3ecc6fbae9 Translated using Weblate (Korean)
Currently translated at 36.8% (173 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-06-16 08:41:40 +02:00
Anonymous
3f60fff12d Translated using Weblate (Slovak)
Currently translated at 1.9% (9 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-06-16 08:41:39 +02:00
Anonymous
f8e2e4bf79 Translated using Weblate (Thai)
Currently translated at 10.0% (47 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-06-16 08:41:39 +02:00
Anonymous
62026cfe9c Translated using Weblate (Latvian)
Currently translated at 25.1% (118 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-06-16 08:41:39 +02:00
Anonymous
3f8553ce7f Translated using Weblate (Japanese)
Currently translated at 81.8% (384 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-06-16 08:41:38 +02:00
Anonymous
39e30e87d7 Translated using Weblate (Ukrainian)
Currently translated at 99.1% (465 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-06-16 08:41:38 +02:00
Anonymous
9925865385 Translated using Weblate (Esperanto)
Currently translated at 30.9% (145 of 469 strings)

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

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-06-16 08:41:37 +02:00
Anonymous
3841642178 Translated using Weblate (Malay)
Currently translated at 53.5% (251 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-06-16 08:41:37 +02:00
Anonymous
d6c68415d1 Translated using Weblate (Danish)
Currently translated at 42.0% (197 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-06-16 08:41:37 +02:00
Anonymous
1184b5a2b9 Translated using Weblate (Czech)
Currently translated at 94.6% (444 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-06-16 08:41:36 +02:00
Anonymous
b506558754 Translated using Weblate (Arabic)
Currently translated at 55.8% (262 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-06-16 08:41:36 +02:00
Anonymous
4a08aee090 Translated using Weblate (Serbian)
Currently translated at 1.9% (9 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-06-16 08:41:35 +02:00
Anonymous
c4a7ac9dc6 Translated using Weblate (Turkish)
Currently translated at 83.7% (393 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-06-16 08:41:35 +02:00
Anonymous
283a52f843 Translated using Weblate (Bulgarian)
Currently translated at 9.8% (46 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-06-16 08:41:35 +02:00
Anonymous
bb2083b2ec Translated using Weblate (Telugu)
Currently translated at 45.8% (215 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-06-16 08:41:34 +02:00
Anonymous
444ef3f48b Translated using Weblate (Finnish)
Currently translated at 37.7% (177 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-06-16 08:41:34 +02:00
Anonymous
853e741bfa Translated using Weblate (Yue (Traditional))
Currently translated at 24.9% (117 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-06-16 08:41:33 +02:00
Anonymous
cf55092ba6 Translated using Weblate (Portuguese (Brazil))
Currently translated at 86.1% (404 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-06-16 08:41:32 +02:00
Anonymous
6488e786e1 Translated using Weblate (Romanian)
Currently translated at 31.9% (150 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-06-16 08:41:32 +02:00
Anonymous
2260d250d6 Translated using Weblate (Hebrew)
Currently translated at 21.3% (100 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-06-16 08:41:32 +02:00
Anonymous
dcdc93cf06 Translated using Weblate (Hungarian)
Currently translated at 22.8% (107 of 469 strings)

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

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-06-16 08:41:31 +02:00
Anonymous
80c93a4e83 Translated using Weblate (Swedish)
Currently translated at 27.7% (130 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-06-16 08:41:31 +02:00
Anonymous
634077b5b6 Translated using Weblate (Polish)
Currently translated at 79.7% (374 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-06-16 08:41:30 +02:00
Anonymous
e4212074fe Translated using Weblate (Catalan)
Currently translated at 55.4% (260 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-06-16 08:41:30 +02:00
Anonymous
af9bca282d Translated using Weblate (Chinese (Traditional))
Currently translated at 98.0% (460 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-06-16 08:41:30 +02:00
Anonymous
4b4b871181 Translated using Weblate (Dutch)
Currently translated at 51.3% (241 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-06-16 08:41:29 +02:00
Anonymous
3065d95765 Translated using Weblate (Vietnamese)
Currently translated at 9.3% (44 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-06-16 08:41:29 +02:00
Anonymous
fe3f7ffdf3 Translated using Weblate (Norwegian Bokmål)
Currently translated at 16.8% (79 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-06-16 08:41:28 +02:00
Anonymous
2319a6ffb7 Translated using Weblate (Italian)
Currently translated at 60.9% (286 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-06-16 08:41:28 +02:00
Anonymous
d2c123e031 Translated using Weblate (Chinese (Simplified))
Currently translated at 94.4% (443 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-06-16 08:41:28 +02:00
Anonymous
91d359d5e6 Translated using Weblate (Russian)
Currently translated at 88.0% (413 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-06-16 08:41:27 +02:00
Anonymous
4abdce068e Translated using Weblate (Portuguese)
Currently translated at 88.4% (415 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-06-16 08:41:27 +02:00
Anonymous
98b4682bfe Translated using Weblate (French)
Currently translated at 99.1% (465 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-06-16 08:41:27 +02:00
Anonymous
af2cf43639 Translated using Weblate (Spanish)
Currently translated at 99.1% (465 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-06-16 08:41:26 +02:00
Anonymous
c29c92dafb Translated using Weblate (German)
Currently translated at 97.4% (457 of 469 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-06-16 08:41:26 +02:00
Hosted Weblate
079f8d13b5 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-16 08:40:19 +02:00
Karl0ss
8df11acbe8 JDownloader Widget - Add Total Queue and Remaining In Queue (#1612)
undefined
2023-06-15 23:40:10 -07:00
Dan
af00e44550 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (468 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-06-16 06:50:35 +02:00
Ali
19918ef68b Translated using Weblate (Arabic)
Currently translated at 55.9% (262 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-06-16 06:50:34 +02:00
Nonoss117
211c694e4e Translated using Weblate (French)
Currently translated at 100.0% (468 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-06-16 06:50:34 +02:00
gallegonovato
35499cffbc Translated using Weblate (Spanish)
Currently translated at 100.0% (468 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-06-16 06:50:33 +02:00
shamoon
9f265c4381 Merge pull request #1603 from denispapec/header-boxed-widget
Added boxed widgets header styling and error component to information widgets
2023-06-13 20:49:19 -07:00
Anonymous
2807575283 Translated using Weblate (Indonesian)
Currently translated at 3.2% (15 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/id/
2023-06-14 05:47:14 +02:00
Anonymous
315bda6ba1 Translated using Weblate (Slovenian)
Currently translated at 95.9% (449 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-06-14 05:47:14 +02:00
Anonymous
c5b044d196 Translated using Weblate (Greek)
Currently translated at 30.5% (143 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-06-14 05:47:13 +02:00
Anonymous
dbfa14cb51 Translated using Weblate (Korean)
Currently translated at 36.9% (173 of 468 strings)

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

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

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-06-14 05:47:12 +02:00
Anonymous
fb7f32589b Translated using Weblate (Latvian)
Currently translated at 25.2% (118 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-06-14 05:47:12 +02:00
Anonymous
3423bbc0ee Translated using Weblate (Japanese)
Currently translated at 82.0% (384 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-06-14 05:47:11 +02:00
Anonymous
3d1b18f660 Translated using Weblate (Ukrainian)
Currently translated at 99.3% (465 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-06-14 05:47:11 +02:00
Anonymous
d353166b59 Translated using Weblate (Esperanto)
Currently translated at 30.9% (145 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-06-14 05:47:11 +02:00
Anonymous
3d19d65cb6 Translated using Weblate (Hindi)
Currently translated at 1.9% (9 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-06-14 05:47:10 +02:00
Anonymous
a8d130d5cb Translated using Weblate (Malay)
Currently translated at 53.6% (251 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-06-14 05:47:10 +02:00
Anonymous
626d636aae Translated using Weblate (Danish)
Currently translated at 42.0% (197 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-06-14 05:47:10 +02:00
Anonymous
0f6a4c624c Translated using Weblate (Czech)
Currently translated at 94.8% (444 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-06-14 05:47:09 +02:00
Anonymous
543573fbdb Translated using Weblate (Arabic)
Currently translated at 55.5% (260 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-06-14 05:47:09 +02:00
Anonymous
211c723f04 Translated using Weblate (Serbian)
Currently translated at 1.9% (9 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-06-14 05:47:08 +02:00
Anonymous
f3708189ef Translated using Weblate (Turkish)
Currently translated at 83.9% (393 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-06-14 05:47:08 +02:00
Anonymous
91b828e97c Translated using Weblate (Bulgarian)
Currently translated at 9.8% (46 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-06-14 05:47:08 +02:00
Anonymous
a6320bc794 Translated using Weblate (Telugu)
Currently translated at 45.9% (215 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-06-14 05:47:07 +02:00
Anonymous
f3a7c1164b Translated using Weblate (Finnish)
Currently translated at 37.8% (177 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-06-14 05:47:07 +02:00
Anonymous
fd93df77aa Translated using Weblate (Yue (Traditional))
Currently translated at 25.0% (117 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-06-14 05:47:06 +02:00
Anonymous
452d36c158 Translated using Weblate (Portuguese (Brazil))
Currently translated at 86.3% (404 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-06-14 05:47:05 +02:00
Anonymous
26cff34634 Translated using Weblate (Romanian)
Currently translated at 32.0% (150 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-06-14 05:47:05 +02:00
Anonymous
1021e562d8 Translated using Weblate (Hebrew)
Currently translated at 21.3% (100 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-06-14 05:47:04 +02:00
Anonymous
9d2df38391 Translated using Weblate (Hungarian)
Currently translated at 22.8% (107 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-06-14 05:47:04 +02:00
Anonymous
f3176a25ad Translated using Weblate (Croatian)
Currently translated at 97.8% (458 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-06-14 05:47:04 +02:00
Anonymous
f92c5aa1e3 Translated using Weblate (Swedish)
Currently translated at 27.7% (130 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-06-14 05:47:03 +02:00
Anonymous
e0a6a88ba1 Translated using Weblate (Polish)
Currently translated at 79.9% (374 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-06-14 05:47:03 +02:00
Anonymous
ae1d7e0866 Translated using Weblate (Catalan)
Currently translated at 55.5% (260 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-06-14 05:47:02 +02:00
Anonymous
8cc044544e Translated using Weblate (Chinese (Traditional))
Currently translated at 98.2% (460 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-06-14 05:47:02 +02:00
Anonymous
368032c931 Translated using Weblate (Dutch)
Currently translated at 51.4% (241 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-06-14 05:47:01 +02:00
Anonymous
03ba36c593 Translated using Weblate (Vietnamese)
Currently translated at 9.4% (44 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-06-14 05:47:01 +02:00
Anonymous
9a6a580953 Translated using Weblate (Norwegian Bokmål)
Currently translated at 16.8% (79 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-06-14 05:47:00 +02:00
Anonymous
1582ba9438 Translated using Weblate (Italian)
Currently translated at 61.1% (286 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-06-14 05:47:00 +02:00
Anonymous
a6a9180aa0 Translated using Weblate (Chinese (Simplified))
Currently translated at 94.6% (443 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-06-14 05:47:00 +02:00
Anonymous
8d41834c2a Translated using Weblate (Russian)
Currently translated at 88.2% (413 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-06-14 05:46:59 +02:00
Anonymous
28335ca3af Translated using Weblate (Portuguese)
Currently translated at 88.6% (415 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-06-14 05:46:59 +02:00
Anonymous
1e7a2cbbc4 Translated using Weblate (French)
Currently translated at 99.3% (465 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-06-14 05:46:58 +02:00
Anonymous
250b1a3c53 Translated using Weblate (Spanish)
Currently translated at 99.3% (465 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-06-14 05:46:58 +02:00
Anonymous
3f25df954f Translated using Weblate (German)
Currently translated at 97.6% (457 of 468 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-06-14 05:46:58 +02:00
shamoon
7afe62df2a Merge pull request #1608 from karl0ss/benphelpsJdownloader
Working Jdownloader
2023-06-13 20:45:57 -07:00
shamoon
b437ccde2f Another attempt to catch zlib decompression errors 2023-06-13 19:21:12 -07:00
shamoon
abcea88d0a Try to handle zlib errors 2023-06-13 15:23:19 -07:00
shamoon
3ee6650e6d fix homebridge proxy logging 2023-06-13 15:16:49 -07:00
shamoon
106eec8cdb Merge pull request #1607 from dan5py/fix/1606
Update Traefik API
2023-06-13 14:56:09 -07:00
Dan5py
4a97fce841 Support old traefik CRD group 2023-06-13 22:04:56 +02:00
Karl Hudgell
f1d6a990ac Working Jdownloader 2023-06-13 20:30:09 +01:00
Dan5py
fce680d981 Fixes #1606 2023-06-13 21:02:06 +02:00
Ado Nishimura
dcb3dccdc8 Translated using Weblate (Japanese)
Currently translated at 82.5% (384 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-06-13 13:52:29 +02:00
Danilo
7c8638467e Translated using Weblate (Portuguese)
Currently translated at 89.2% (415 of 465 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-06-13 13:52:28 +02:00
Denis Papec
1622069063 Fixes for existing header styles, fix for glances
Signed-off-by: Denis Papec <denis.papec@gmail.com>
2023-06-12 01:15:46 +01:00
Denis Papec
6f750dd83c Further improvements to simplify information widgets
Signed-off-by: Denis Papec <denis.papec@gmail.com>
2023-06-12 01:15:30 +01:00
Denis Papec
cd5162e39c Refactored information widgets, improve widget-boxed style
Signed-off-by: Denis Papec <denis.papec@gmail.com>
2023-06-12 01:15:19 +01:00
Denis Papec
c5b6dcc1e0 Add optional boxed styling and error component to information widgets
Signed-off-by: Denis Papec <denis.papec@gmail.com>
2023-06-12 01:15:09 +01:00
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
168 changed files with 9730 additions and 2126 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:

View File

@@ -141,7 +141,7 @@ pnpm dev
Open [http://localhost:3000](http://localhost:3000) to start.
This is a [Next.js](https://nextjs.org/) application, see their doucmentation for more information:
This is a [Next.js](https://nextjs.org/) application, see their documentation for more information:
## Contributors

971
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -16,6 +16,7 @@
"compare-versions": "^5.0.1",
"dockerode": "^3.3.4",
"follow-redirects": "^1.15.2",
"gamedig": "^4.0.6",
"i18next": "^21.9.2",
"js-yaml": "^4.1.0",
"json-rpc-2.0": "^1.4.1",
@@ -29,10 +30,12 @@
"react-dom": "^18.2.0",
"react-i18next": "^11.18.6",
"react-icons": "^4.4.0",
"recharts": "^2.7.2",
"shvl": "^3.0.0",
"swr": "^1.3.0",
"systeminformation": "^5.17.12",
"tough-cookie": "^4.1.2",
"urbackup-server-api": "^0.8.9",
"winston": "^3.8.2",
"xml-js": "^1.6.11"
},

680
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -23,7 +23,7 @@
"free": "متاح",
"used": "مستخدم",
"load": "الضغط",
"mem": "MEM",
"mem": "الذاكرة",
"temp": "TEMP",
"max": "Max",
"uptime": "UP",
@@ -134,14 +134,15 @@
"episodes": "Episodes"
},
"changedetectionio": {
"totalObserved": "Total Observed",
"totalObserved": "مجموع الملاحظات",
"diffsDetected": "Diffs Detected"
},
"tautulli": {
"playing": "يشتغل",
"transcoding": "التحويل",
"bitrate": "معدل البت",
"no_active": "No Active Streams"
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"nzbget": {
"rate": "معدل",
@@ -179,18 +180,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": "مطلوب",
@@ -296,12 +301,22 @@
},
"glances": {
"cpu": "معالج",
"mem": "الذاكرة",
"wait": "الرجاء الإنتظار",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"quicklaunch": {
"bookmark": "مفضلة",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -89,7 +89,8 @@
"playing": "Възпроизвежда",
"transcoding": "Конвертира",
"bitrate": "Честота",
"no_active": "Няма активни потоци"
"no_active": "Няма активни потоци",
"plex_connection_error": "Check Plex Connection"
},
"nzbget": {
"rate": "Rate",
@@ -117,18 +118,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",
@@ -234,12 +239,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Total Observed",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"grid_power": "Grid",
"home_power": "Consumption",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

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",
@@ -78,7 +80,8 @@
"playing": "Reproduint",
"transcoding": "Transcodificant",
"bitrate": "Taxa de bits",
"no_active": "Sense transmissions actives"
"no_active": "Sense transmissions actives",
"plex_connection_error": "Check Plex Connection"
},
"nzbget": {
"rate": "Taxa",
@@ -99,7 +102,9 @@
"wanted": "Volgut",
"queued": "En cua",
"movies": "Pel·lícules",
"missing": "Faltant"
"missing": "Faltant",
"queue": "Queue",
"unknown": "Unknown"
},
"readarr": {
"wanted": "Volgut",
@@ -173,7 +178,7 @@
"lidarr": {
"wanted": "Volgut",
"queued": "En cua",
"albums": "Àlbums"
"artists": "Artists"
},
"adguard": {
"queries": "Consultes",
@@ -234,12 +239,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Total d'observats",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"totalUsed": "Used Storage",
"noRecent": "Out of Date"
}
}

View File

@@ -30,12 +30,12 @@
"placeholder": "Hledat…"
},
"resources": {
"cpu": "PROC",
"cpu": "CPU",
"total": "Celkem",
"free": "Volné",
"used": "Využité",
"load": "Zatížení",
"mem": "PAM",
"mem": "RAM",
"max": "Max.",
"uptime": "BĚŽÍ",
"months": "měs.",
@@ -46,8 +46,8 @@
},
"unifi": {
"users": "Uživatelé",
"uptime": "Doba provozu systému",
"days": "Dnů",
"uptime": "Doba provozu",
"days": "dní",
"wan": "WAN",
"lan": "LAN",
"wlan": "WLAN",
@@ -56,16 +56,16 @@
"wlan_devices": "Zařízení WLAN",
"lan_users": "Uživatelé LAN",
"wlan_users": "Uživatelé WLAN",
"up": "BĚŽÍ",
"down": "NEBĚŽÍ",
"up": "FUNKČNÍ",
"down": "NEFUNKČNÍ",
"wait": "Počkejte prosím",
"empty_data": "Stav podsystému neznámý"
},
"docker": {
"rx": "RX",
"tx": "TX",
"mem": "PAM",
"cpu": "PROC",
"mem": "RAM",
"cpu": "CPU",
"offline": "Offline",
"error": "Chyba",
"unknown": "Neznámý",
@@ -95,7 +95,8 @@
"playing": "Přehrává",
"transcoding": "Překódovávání",
"bitrate": "Přenosová rychlost",
"no_active": "Žádný aktivní stream"
"no_active": "Žádný aktivní stream",
"plex_connection_error": "Check Plex Connection"
},
"nzbget": {
"rate": "Rychlost",
@@ -133,18 +134,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é",
@@ -175,7 +180,7 @@
"queries": "Dotazy",
"blocked": "Blokováno",
"gravity": "Gravity",
"blocked_percent": "Blokováno %"
"blocked_percent": "Blokováno"
},
"adguard": {
"queries": "Dotazy",
@@ -301,19 +306,29 @@
"failedLoginsLast24H": "Neúspěšná přihlášení (24h)"
},
"proxmox": {
"mem": "PAM",
"cpu": "PROC",
"mem": "RAM",
"cpu": "CPU",
"lxc": "LXC",
"vms": "Virtuální Stroje"
},
"glances": {
"cpu": "PROC",
"mem": "PAM",
"cpu": "CPU",
"wait": "Prosím počkejte",
"temp": "TEPLOTA",
"uptime": "BĚŽÍ",
"days": "d",
"hours": "h"
"hours": "h",
"total": "Total",
"free": "Free",
"used": "Used",
"load": "Load",
"warn": "Warn",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"quicklaunch": {
"bookmark": "Záložka",
@@ -324,8 +339,8 @@
"url": "URL"
},
"homebridge": {
"update_available": "Dostupná aktualizace",
"up_to_date": "Aktuální",
"update_available": "Dostupná",
"up_to_date": "Žádné",
"available_update": "Systém",
"updates": "Aktualizace",
"child_bridges": "Podřízené můstky",
@@ -369,7 +384,7 @@
"ping": "Odezva"
},
"scrutiny": {
"passed": "Přijato",
"passed": "Úspěšné",
"failed": "Neúspěšné",
"unknown": "Neznámé"
},
@@ -461,7 +476,7 @@
"proxmoxbackupserver": {
"datastore_usage": "Datové úložiště",
"failed_tasks_24h": "Neúspěšné úlohy 24h",
"cpu_usage": "PROC",
"cpu_usage": "CPU",
"memory_usage": "Paměť"
},
"immich": {
@@ -494,7 +509,7 @@
"people": "Lidé"
},
"diskstation": {
"days": "Dni",
"days": "dní",
"uptime": "Doba provozu",
"volumeAvailable": "K dispozici"
},
@@ -604,7 +619,9 @@
"memUsage": "Využití paměti",
"systemTempC": "Teplota systému",
"poolUsage": "Využití fondu",
"cpuUsage": "Využití procesoru"
"cpuUsage": "Využití procesoru",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Prům. zatížení",
@@ -623,10 +640,54 @@
},
"evcc": {
"watt_hour": "Wh",
"pv_power": "Production",
"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"
},
"jdownloader": {
"downloadSpeed": "Download Speed",
"downloadCount": "Queue Count",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"map": "Map",
"currentPlayers": "Current players",
"name": "Name",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

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,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"wmo": {
"1-day": "Hovedsageligt solrigt",
@@ -228,7 +240,8 @@
"playing": "Afspiller",
"transcoding": "Transcoder",
"bitrate": "Bitrate",
"no_active": "Ingen Aktive Streams"
"no_active": "Ingen Aktive Streams",
"plex_connection_error": "Check Plex Connection"
},
"nzbget": {
"rate": "Rate",
@@ -260,7 +273,9 @@
"sonarr": {
"wanted": "Ønsket",
"queued": "I Kø",
"series": "Serier"
"series": "Serier",
"queue": "Queue",
"unknown": "Unknown"
},
"readarr": {
"wanted": "Ønskede",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadSpeed": "Download Speed",
"downloadCount": "Queue Count",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -56,7 +56,8 @@
"playing": "Spielen",
"transcoding": "Transcodierung",
"bitrate": "Bitrate",
"no_active": "Keine aktiven Streams"
"no_active": "Keine aktiven Streams",
"plex_connection_error": "Check Plex Connection"
},
"rutorrent": {
"active": "Aktiv",
@@ -66,13 +67,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",
@@ -173,7 +178,7 @@
"lidarr": {
"wanted": "Gesucht",
"queued": "In Warteschlange",
"albums": "Alben"
"artists": "Artists"
},
"adguard": {
"queries": "Anfragen",
@@ -234,12 +239,22 @@
},
"glances": {
"cpu": "Prozessor",
"mem": "RAM",
"wait": "Bitte warten",
"temp": "TEMP",
"uptime": "UP",
"days": "T",
"hours": "S"
"hours": "S",
"load": "Auslastung",
"warn": "Warnung",
"total": "Gesamt",
"free": "Frei",
"used": "Verwendet",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap",
"crit": "Crit",
"read": "Read"
},
"changedetectionio": {
"totalObserved": "Gesamt beobachtet",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Nutzung",
"memUsage": "MEM Nutzung",
"systemTempC": "System Temp",
"poolUsage": "Pool Nutzung"
"poolUsage": "Pool Nutzung",
"volumeUsage": "Volume Usage",
"invalid": "Ungültig"
},
"pfsense": {
"load": "Durchschnittliche Last",
@@ -623,10 +640,54 @@
},
"evcc": {
"watt_hour": "Wh",
"pv_power": "Production",
"battery_soc": "Battery",
"pv_power": "Produktion",
"battery_soc": "Batterie",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger"
"home_power": "Verbrauch",
"charge_power": "Ladegerät"
},
"pialert": {
"total": "Gesamt",
"connected": "Verbunden",
"new_devices": "Neue Geräte",
"down_alerts": "Down Alarme"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"bots": "Bots",
"ping": "Ping",
"maxPlayers": "Max players"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved",
"inProgress": "In Progress"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -159,21 +159,22 @@
"diffsDetected": "Εντοπίστηκαν διαφορές"
},
"tautulli": {
"playing": "Παίζει",
"transcoding": "Διακωδικοποίηση",
"playing": "Αναπαράγει",
"transcoding": "Μετακωδικοποίηση",
"bitrate": "Ρυθμός bit",
"no_active": "Δεν υπάρχουν ενεργές ροές"
"no_active": "Δεν υπάρχουν ενεργές ροές",
"plex_connection_error": "Check Plex Connection"
},
"nzbget": {
"rate": "βαθμός",
"rate": "Ρυθμός",
"remaining": "Υπόλοιπο",
"downloaded": "Κατεβασμένο"
},
"plex": {
"streams": "Ενεργά Streams",
"streams": "Ενεργές Ροές",
"movies": "Ταινίες",
"tv": "Σειρές",
"albums": "Δίσκοι"
"tv": "Τηλεοπτικές εκπομπές",
"albums": "Άλμπουμ"
},
"sabnzbd": {
"rate": "Βαθμός",
@@ -199,14 +200,16 @@
},
"deluge": {
"download": "Κατέβασμα",
"upload": "Φόρτωση",
"upload": "Ανέβασμα",
"leech": "Leech",
"seed": "Seed"
},
"sonarr": {
"series": "Σειρές",
"wanted": "Επιθυμούντε",
"queued": "Σε σειρά"
"queued": "Σε σειρά",
"queue": "Queue",
"unknown": "Unknown"
},
"downloadstation": {
"download": "Μεταφόρτωση",
@@ -218,12 +221,14 @@
"wanted": "Επιθυμούντε",
"missing": "Απουσιάζει",
"queued": "Σε σειρά",
"movies": "Ταινίες"
"movies": "Ταινίες",
"queue": "Queue",
"unknown": "Unknown"
},
"lidarr": {
"wanted": "Θέλετε",
"queued": "Στη σειρά",
"albums": "Δίσκοι"
"artists": "Artists"
},
"readarr": {
"wanted": "Θέλετε",
@@ -355,12 +360,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"quicklaunch": {
"bookmark": "Bookmark",
@@ -604,7 +619,9 @@
"cpuUsage": "Χρήση επεξεργαστή",
"memUsage": "Χρήση μνήμης",
"systemTempC": "Θερμοκρασία συστήματος",
"poolUsage": "Χρήση πλειάδας"
"poolUsage": "Χρήση πισίνας",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -618,15 +635,59 @@
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
"requests": "Τρέχοντα αιτήματα",
"requests_failed": "Αποτυχημένα αιτήματα"
},
"evcc": {
"watt_hour": "Wh",
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger"
"pv_power": "Παραγωγή",
"battery_soc": "Μπαταρία",
"grid_power": "Πλέγμα",
"home_power": "Κατανάλωση",
"charge_power": "Φορτιστής"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"myPrs": "My PRs",
"approved": "Approved",
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

77
public/locales/en/common.json Executable file → Normal file
View File

@@ -92,7 +92,7 @@
"episodes": "Episodes",
"songs": "Songs"
},
"evcc": {
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
@@ -129,7 +129,8 @@
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams"
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"omada": {
"connectedAp": "Connected APs",
@@ -175,7 +176,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"deluge": {
"download": "Download",
@@ -192,18 +195,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",
@@ -230,6 +237,12 @@
"approved": "Approved",
"available": "Available"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"pihole": {
"queries": "Queries",
"blocked": "Blocked",
@@ -349,12 +362,22 @@
},
"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"
"hours": "h",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"quicklaunch": {
"bookmark": "Bookmark",
@@ -637,5 +660,43 @@
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"jdownloader": {
"downloadCount": "Queue",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size",
"downloadSpeed": "Speed"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"urbackup": {
"ok" : "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -87,7 +87,8 @@
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams"
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"nzbget": {
"rate": "Rate",
@@ -131,18 +132,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",
@@ -252,12 +257,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"quicklaunch": {
"bookmark": "Bookmark",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -56,7 +56,8 @@
"playing": "Reproduciendo",
"transcoding": "Transcodificando",
"bitrate": "Tasa de bits",
"no_active": "Sin transmisiones activas"
"no_active": "Sin transmisiones activas",
"plex_connection_error": "Comprueba la conexión a Plex"
},
"rutorrent": {
"active": "Activo",
@@ -66,13 +67,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",
@@ -173,7 +178,7 @@
"lidarr": {
"queued": "En cola",
"wanted": "Buscando",
"albums": "Álbumes"
"artists": "Artistas"
},
"adguard": {
"queries": "Consultas",
@@ -234,12 +239,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Total Observados",
@@ -604,7 +619,9 @@
"cpuUsage": "Uso de la Cpu",
"memUsage": "Uso de la memoria",
"systemTempC": "Temperatura del sistema",
"poolUsage": "Comprobación del uso del grupo de memoria"
"poolUsage": "Comprobación del uso del grupo de memoria",
"volumeUsage": "Volumen utilizado",
"invalid": "No válido"
},
"pfsense": {
"load": "Promedio de carga",
@@ -622,11 +639,55 @@
"requests_failed": "Peticiones fallidas"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
"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"
},
"jdownloader": {
"downloadCount": "Cola",
"downloadSpeed": "Velocidad",
"downloadBytesRemaining": "Restante",
"downloadTotalBytes": "Tamaño"
},
"kavita": {
"seriesCount": "Serie",
"totalFiles": "Archivos"
},
"gamedig": {
"name": "Nombre",
"map": "Mapa",
"currentPlayers": "Jugadores actuales",
"players": "Jugadores",
"maxPlayers": "Jugadores máximos",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Resultado",
"status": "Estado",
"buildId": "Identificador de la construcción",
"succeeded": "Exitoso",
"notStarted": "Sin empezar",
"failed": "Fallido",
"canceled": "Cancelado",
"inProgress": "En curso",
"totalPrs": "RP totales",
"myPrs": "Mis logros",
"approved": "Aprobados"
},
"urbackup": {
"ok": "De acuerdo",
"errored": "Errores",
"noRecent": "Caducado",
"totalUsed": "Almacenamiento usado"
}
}

View File

@@ -0,0 +1,693 @@
{
"wmo": {
"95-night": "Thunderstorm",
"96-day": "Thunderstorm With Hail",
"96-night": "Thunderstorm With Hail",
"99-day": "Thunderstorm With Hail",
"0-day": "Sunny",
"0-night": "Clear",
"1-day": "Mainly Sunny",
"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",
"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",
"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",
"99-night": "Thunderstorm With Hail"
},
"homebridge": {
"updates": "Updates",
"available_update": "System",
"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"
},
"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": "Informazioa",
"status": "Status",
"url": "URL",
"raw_error": "Raw Error",
"response_data": "Response Data"
},
"weather": {
"current": "Current Location",
"allow": "Click to allow",
"updating": "Eguneratzen",
"wait": "Itxaron mesedez"
},
"search": {
"placeholder": "Bilatu…"
},
"resources": {
"cpu": "CPU",
"mem": "MEM",
"total": "Guztira",
"free": "Free",
"used": "Erabilita",
"load": "Load",
"temp": "TEMP",
"max": "Max",
"uptime": "UP",
"months": "mo",
"days": "d",
"hours": "h",
"minutes": "m"
},
"unifi": {
"users": "Users",
"uptime": "System Uptime",
"days": "Egun",
"wan": "WAN",
"lan": "LAN",
"wlan": "WLAN",
"devices": "Gailuak",
"lan_devices": "LAN Gailuak",
"wlan_devices": "WLAN Gailuak",
"lan_users": "LAN Erabiltzaileak",
"wlan_users": "WLAN Erabiltzaileak",
"up": "UP",
"down": "DOWN",
"wait": "Itxaron mesedez",
"empty_data": "Subsystem status unknown"
},
"docker": {
"rx": "RX",
"tx": "TX",
"mem": "MEM",
"cpu": "CPU",
"running": "Running",
"offline": "Offline",
"error": "Error",
"unknown": "Ezezaguna",
"healthy": "Osasuntsu",
"starting": "Abiarazten",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial"
},
"ping": {
"error": "Errorea",
"ping": "Ping"
},
"emby": {
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bit-tasa",
"no_active": "No Active Streams",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Abestiak"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"flood": {
"download": "Download",
"upload": "Upload",
"leech": "Leech",
"seed": "Seed"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"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",
"plex_connection_error": "Check Plex Connection"
},
"omada": {
"connectedAp": "Connected APs",
"activeUser": "Active devices",
"alerts": "Alerts",
"connectedGateway": "Connected gateways",
"connectedSwitches": "Connected switches"
},
"nzbget": {
"rate": "Rate",
"remaining": "Remaining",
"downloaded": "Downloaded"
},
"plex": {
"streams": "Active Streams",
"albums": "Albums",
"movies": "Movies",
"tv": "TV Shows"
},
"sabnzbd": {
"rate": "Rate",
"queue": "Queue",
"timeleft": "Time Left"
},
"rutorrent": {
"active": "Active",
"upload": "Kargatu",
"download": "Deskargatu"
},
"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",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"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": {
"pending": "Pending",
"approved": "Approved",
"available": "Available"
},
"overseerr": {
"pending": "Pending",
"processing": "Processing",
"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": {
"queries": "Queries",
"blocked": "Blocked",
"filtered": "Filtered",
"latency": "Latency"
},
"speedtest": {
"upload": "Upload",
"download": "Download",
"ping": "Ping"
},
"portainer": {
"running": "Running",
"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",
"errored": "Errored",
"saved": "Saved"
},
"traefik": {
"routers": "Routers",
"services": "Services",
"middleware": "Middleware"
},
"navidrome": {
"nothing_streaming": "No Active Streams",
"please_wait": "Please Wait"
},
"npm": {
"enabled": "Enabled",
"disabled": "Disabled",
"total": "Total"
},
"coinmarketcap": {
"configure": "Configure one or more crypto currencies to track",
"1hour": "1 Hour",
"1day": "1 Day",
"7days": "7 Days",
"30days": "30 Days"
},
"gotify": {
"apps": "Applications",
"clients": "Clients",
"messages": "Messages"
},
"prowlarr": {
"enableIndexers": "Indexers",
"numberOfGrabs": "Grabs",
"numberOfQueries": "Queries",
"numberOfFailGrabs": "Fail Grabs",
"numberOfFailQueries": "Fail Queries"
},
"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": "Jokalariak",
"version": "Version",
"status": "Status",
"up": "Online",
"down": "Offline"
},
"miniflux": {
"read": "Read",
"unread": "Unread"
},
"authentik": {
"users": "Users",
"loginsLast24H": "Logins (24h)",
"failedLoginsLast24H": "Failed Logins (24h)"
},
"proxmox": {
"mem": "MEM",
"cpu": "CPU",
"lxc": "LXC",
"vms": "VMs"
},
"glances": {
"cpu": "CPU",
"load": "Load",
"wait": "Please wait",
"temp": "TEMP",
"warn": "Warn",
"uptime": "UP",
"total": "Total",
"free": "Free",
"used": "Used",
"days": "d",
"hours": "h",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"quicklaunch": {
"bookmark": "Bookmark",
"service": "Service",
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
},
"healthchecks": {
"new": "New",
"up": "Online",
"grace": "In Grace Period",
"down": "Offline",
"paused": "Paused",
"status": "Status",
"last_ping": "Last Ping",
"never": "No pings yet"
},
"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"
},
"scrutiny": {
"passed": "Passed",
"failed": "Failed",
"unknown": "Unknown"
},
"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": {
"printer_state": "Printer State",
"print_status": "Print Status",
"print_progress": "Progress",
"layers": "Layers"
},
"octoprint": {
"printer_state": "Status",
"temp_tool": "Tool temp",
"temp_bed": "Bed temp",
"job_completion": "Completion"
},
"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": {
"users": "Users",
"photos": "Photos",
"videos": "Videos",
"storage": "Storage"
},
"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": {
"albums": "Albums",
"photos": "Photos",
"videos": "Videos",
"people": "People"
},
"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",
"size": "Size",
"lastrun": "Last Run",
"nextrun": "Next Run",
"failed": "Failed"
},
"unmanic": {
"active_workers": "Active Workers",
"total_workers": "Total Workers",
"records_total": "Queue Length"
},
"pterodactyl": {
"servers": "Servers",
"nodes": "Nodes"
},
"prometheus": {
"targets_up": "Targets Up",
"targets_down": "Targets Down",
"targets_total": "Total Targets"
},
"ghostfolio": {
"gross_percent_today": "Today",
"gross_percent_1y": "One year",
"gross_percent_max": "All time"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"jdownloader": {
"downloadCount": "Queue",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size",
"downloadSpeed": "Speed"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"currentPlayers": "Current players",
"name": "Name",
"map": "Map",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"notStarted": "Not Started",
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -62,7 +62,8 @@
"playing": "Toistaa",
"transcoding": "Transkoodaa",
"bitrate": "Bittinopeus",
"no_active": "Ei aktiivisia striimejä"
"no_active": "Ei aktiivisia striimejä",
"plex_connection_error": "Check Plex Connection"
},
"nzbget": {
"rate": "Nopeus",
@@ -94,18 +95,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",
@@ -235,11 +240,21 @@
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Total Observed",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -5,8 +5,8 @@
"status": "Statut",
"information": "Information",
"url": "URL",
"raw_error": "Raw Error",
"response_data": "Response Data"
"raw_error": "Erreur brute",
"response_data": "Données de réponse"
},
"search": {
"placeholder": "Recherche…"
@@ -56,7 +56,8 @@
"playing": "En lecture",
"transcoding": "Transcodage",
"bitrate": "Débit",
"no_active": "Aucun flux actif"
"no_active": "Aucun flux actif",
"plex_connection_error": "Vérifier la connexion à Plex"
},
"rutorrent": {
"active": "Actif",
@@ -66,13 +67,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",
@@ -173,7 +178,7 @@
"lidarr": {
"wanted": "Demandé",
"queued": "En queue",
"albums": "Albums"
"artists": "Artistes"
},
"adguard": {
"queries": "Requêtes",
@@ -234,12 +239,22 @@
},
"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é",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Total Observé",
@@ -393,7 +408,7 @@
"queue": "À traiter",
"processed": "Traité",
"errored": "En erreur",
"saved": "Economisé"
"saved": "Libéré"
},
"miniflux": {
"read": "Lu",
@@ -570,7 +585,7 @@
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lumières allumées",
"switches_on": "Switches On"
"switches_on": "Commutateur On"
},
"freshrss": {
"unread": "Non lu",
@@ -604,7 +619,9 @@
"cpuUsage": "Cpu",
"memUsage": "Mém",
"systemTempC": "Temp",
"poolUsage": "Pool"
"poolUsage": "Pool",
"volumeUsage": "Volume",
"invalid": "Invalide"
},
"pfsense": {
"load": "Charge moy.",
@@ -623,10 +640,54 @@
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"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"
},
"jdownloader": {
"downloadCount": "Total en attente",
"downloadSpeed": "Vitesse de téléchargement",
"downloadBytesRemaining": "Restant",
"downloadTotalBytes": "Taille"
},
"kavita": {
"seriesCount": "Séries",
"totalFiles": "Fichiers"
},
"gamedig": {
"name": "Nom",
"map": "Carte",
"currentPlayers": "Joueurs actuels",
"players": "Joueurs",
"maxPlayers": "Joueurs max",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Résultat",
"status": "Statut",
"buildId": "Build ID",
"succeeded": "Réussi",
"notStarted": "Arrêté",
"failed": "Échoué",
"canceled": "Annulé",
"inProgress": "En cours",
"totalPrs": "PRs Total",
"myPrs": "Mes PRs",
"approved": "Approuvé"
},
"urbackup": {
"ok": "Ok",
"errored": "Erreurs",
"noRecent": "Obsolète",
"totalUsed": "Esp. Utilisé"
}
}

View File

@@ -62,7 +62,8 @@
"playing": "מנגן",
"transcoding": "מקודד",
"bitrate": "סיביות",
"no_active": "אין הזרמות פעילות"
"no_active": "אין הזרמות פעילות",
"plex_connection_error": "Check Plex Connection"
},
"nzbget": {
"rate": "יחס",
@@ -94,18 +95,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": "מבוקש",
@@ -234,12 +239,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Total Observed",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"myPrs": "My PRs",
"totalPrs": "Total PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -117,7 +117,8 @@
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams"
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"nzbget": {
"rate": "Rate",
@@ -155,18 +156,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",
@@ -242,12 +247,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"quicklaunch": {
"bookmark": "Bookmark",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"myPrs": "My PRs",
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -104,7 +104,8 @@
"playing": "Reprodukcija",
"transcoding": "Prekodiranje",
"bitrate": "Stopa bitova",
"no_active": "Nema aktivnih prijenosa"
"no_active": "Nema aktivnih prijenosa",
"plex_connection_error": "Provjeri Plex vezu"
},
"nzbget": {
"rate": "Stopa",
@@ -125,18 +126,22 @@
"sonarr": {
"wanted": "Zatraženo",
"queued": "U redu čekanja",
"series": "Serije"
"series": "Serije",
"unknown": "Nepoznato",
"queue": "Red čekanja"
},
"radarr": {
"wanted": "Zatraženo",
"queued": "U redu čekanja",
"movies": "Filmovi",
"missing": "Nedostaje"
"missing": "Nedostaje",
"queue": "Red čekanja",
"unknown": "Nepoznato"
},
"lidarr": {
"wanted": "Zatraženo",
"queued": "U redu čekanja",
"albums": "Albumi"
"artists": "Umjetnici"
},
"readarr": {
"wanted": "Zatraženo",
@@ -234,12 +239,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Ukupno promatrano",
@@ -474,7 +489,7 @@
"up": "Aktivne stranice",
"down": "Neaktivne stranice",
"uptime": "Radno vrijeme",
"incident": "Incident",
"incident": "Slučaj",
"m": "min"
},
"komga": {
@@ -604,29 +619,75 @@
"systemTempC": "Temperatura sustava",
"poolUsage": "Korištenje memorijskog skupa",
"cpuUsage": "Korištenje procesora",
"memUsage": "Korištenje memorije"
"memUsage": "Korištenje memorije",
"volumeUsage": "Korištenje jedinice memorije",
"invalid": "Neispravno"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"load": "Prosječno opterećenje",
"memory": "Korištenje memorije",
"wanStatus": "Stanje WAN-a",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"temp": "Temperatura",
"disk": "Korištenje diska",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
"upstreams": "Glavne grane",
"requests": "Aktualni zahtjevi",
"requests_failed": "Neuspjeli zahtjevi"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"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"
},
"jdownloader": {
"downloadCount": "Red čekanja",
"downloadSpeed": "Brzina",
"downloadBytesRemaining": "Preostalo",
"downloadTotalBytes": "Veličina"
},
"kavita": {
"seriesCount": "Serije",
"totalFiles": "Datoteke"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"noRecent": "Out of Date",
"totalUsed": "Used Storage",
"ok": "Ok",
"errored": "Errors"
}
}

View File

@@ -4,15 +4,15 @@
"free": "Szabad",
"used": "Használt",
"load": "Terhelés",
"cpu": "CPU",
"cpu": "Processzor",
"mem": "MEM",
"temp": "TEMP",
"max": "Max",
"uptime": "UP",
"months": "mo",
"days": "d",
"hours": "h",
"minutes": "m"
"uptime": "FUT",
"months": "",
"days": "n",
"hours": "ó",
"minutes": "p"
},
"docker": {
"rx": "RX",
@@ -20,20 +20,20 @@
"mem": "MEM",
"cpu": "CPU",
"offline": "Offline",
"error": "Error",
"unknown": "Unknown",
"unhealthy": "Unhealthy",
"running": "Running",
"starting": "Starting",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"healthy": "Healthy"
"error": "Hiba",
"unknown": "Ismeretlen",
"unhealthy": "Egészségtelen",
"running": "Futó",
"starting": "Indul",
"not_found": "Nem található",
"exited": "Kilépett",
"partial": "Részleges",
"healthy": "Egészséges"
},
"lidarr": {
"albums": "Albumok",
"wanted": "Keresett",
"queued": "Sorban áll"
"queued": "Sorban áll",
"artists": "Előadók"
},
"readarr": {
"wanted": "Keresett",
@@ -48,16 +48,16 @@
"missing_type": "Hiányzó Widget Típus: {{type}}",
"api_error": "API Hiba",
"status": "Státusz",
"information": "Information",
"information": "Információ",
"url": "URL",
"raw_error": "Raw Error",
"response_data": "Response Data"
"raw_error": "Nyers hiba",
"response_data": "Válaszadatok"
},
"weather": {
"current": "Aktuális hely",
"allow": "Kattints az engedélyezéshez",
"updating": "Frissítés",
"wait": "Kérlek várj"
"wait": "Kérk várjon"
},
"search": {
"placeholder": "Keresés…"
@@ -67,16 +67,17 @@
"transcoding": "Átkódolás",
"bitrate": "Bitráta",
"no_active": "Nincs aktív lejátszás",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
"movies": "Film",
"series": "Sorozat",
"episodes": "Epizód",
"songs": "Zeneszám"
},
"tautulli": {
"playing": "Lejátszás folyamatban",
"transcoding": "Átkódolás",
"bitrate": "Bitráta",
"no_active": "Nincs aktív lejátszás"
"no_active": "Nincs aktív lejátszás",
"plex_connection_error": "Plex kapcsolat ellenőrzése"
},
"nzbget": {
"rate": "Ráta",
@@ -108,13 +109,17 @@
"sonarr": {
"wanted": "Keresett",
"queued": "Sorban áll",
"series": "Sorozat"
"series": "Sorozat",
"queue": "Várólista",
"unknown": "Ismeretlen"
},
"radarr": {
"wanted": "Keresett",
"queued": "Sorban áll",
"movies": "Filmek",
"missing": "Missing"
"missing": "Hiányzik",
"queue": "Várólista",
"unknown": "Ismeretlen"
},
"ombi": {
"pending": "Függőben",
@@ -130,13 +135,13 @@
"pending": "Függőben",
"approved": "Engedélyezett",
"available": "Elérhető",
"processing": "Processing"
"processing": "Feldolgozás"
},
"pihole": {
"queries": "Lekérdezések",
"blocked": "Blokkolt",
"gravity": "Gravitáció",
"blocked_percent": "Blocked %"
"blocked_percent": "Blokkolt %"
},
"adguard": {
"queries": "Lekérdezések",
@@ -188,445 +193,501 @@
"errored": "Hibás"
},
"mastodon": {
"user_count": "Users",
"status_count": "Posts",
"domain_count": "Domains"
"user_count": "Felhasználók",
"status_count": "Posztok",
"domain_count": "Domainek"
},
"strelaysrv": {
"numActiveSessions": "Sessions",
"numConnections": "Connections",
"dataRelayed": "Relayed",
"transferRate": "Rate"
"numActiveSessions": "Munkamenetek",
"numConnections": "Csatlakozások",
"dataRelayed": "Átirányított",
"transferRate": "Ráta"
},
"authentik": {
"users": "Users",
"loginsLast24H": "Logins (24h)",
"failedLoginsLast24H": "Failed Logins (24h)"
"users": "Felhasználók",
"loginsLast24H": "Bejelentkezések (24 óra)",
"failedLoginsLast24H": "Sikertelen bejelentkezések (24h)"
},
"proxmox": {
"mem": "MEM",
"cpu": "CPU",
"mem": "RAM",
"cpu": "Processzor",
"lxc": "LXC",
"vms": "VMs"
"vms": "VM-ek"
},
"unifi": {
"users": "Users",
"uptime": "System Uptime",
"days": "Days",
"users": "Felhasználók",
"uptime": "Rendszer üzemidő",
"days": "Napok",
"wan": "WAN",
"lan_users": "LAN Users",
"wlan_users": "WLAN Users",
"up": "UP",
"down": "DOWN",
"wait": "Please wait",
"lan_users": "LAN Felhasználók",
"wlan_users": "WLAN Felhasználók",
"up": "FUT",
"down": "ÁLL",
"wait": "Kérjük várjon",
"lan": "LAN",
"wlan": "WLAN",
"devices": "Devices",
"lan_devices": "LAN Devices",
"wlan_devices": "WLAN Devices",
"empty_data": "Subsystem status unknown"
"devices": "Eszközök",
"lan_devices": "LAN Eszközök",
"wlan_devices": "WLAN Eszközök",
"empty_data": "Az alrendszer állapota ismeretlen"
},
"plex": {
"streams": "Active Streams",
"movies": "Movies",
"tv": "TV Shows",
"albums": "Albums"
"streams": "Aktív Stream-ek",
"movies": "Filmek",
"tv": "TV műsorok",
"albums": "Albumok"
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Please wait",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"cpu": "Processzor",
"wait": "Kérjük várjon",
"temp": "HŐMÉRSÉKLET",
"uptime": "FUT",
"days": "n",
"hours": "ó",
"load": "Kapacitáskihasználás",
"warn": "Figyelmeztet",
"total": "Összes",
"free": "Szabad",
"used": "Felhasznált",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Total Observed",
"diffsDetected": "Diffs Detected"
"totalObserved": "Összes Megfigyelt",
"diffsDetected": "Észlelt különbségek"
},
"wmo": {
"0-day": "Sunny",
"0-night": "Clear",
"3-day": "Cloudy",
"3-night": "Cloudy",
"45-day": "Foggy",
"53-day": "Drizzle",
"56-night": "Light Freezing Drizzle",
"57-day": "Freezing Drizzle",
"1-day": "Mainly Sunny",
"1-night": "Mainly Clear",
"2-day": "Partly Cloudy",
"2-night": "Partly Cloudy",
"45-night": "Foggy",
"48-day": "Foggy",
"48-night": "Foggy",
"51-day": "Light Drizzle",
"51-night": "Light Drizzle",
"57-night": "Freezing Drizzle",
"61-day": "Light Rain",
"61-night": "Light Rain",
"53-night": "Drizzle",
"55-day": "Heavy Drizzle",
"55-night": "Heavy Drizzle",
"56-day": "Light Freezing Drizzle",
"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",
"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": "Napos",
"0-night": "Derült",
"3-day": "Felhős",
"3-night": "Felhős",
"45-day": "Ködös",
"53-day": "Szitálás",
"56-night": "Enyhe fagyos szitálás",
"57-day": "Fagyos szitálás",
"1-day": "Többnyire napos",
"1-night": "Többnyire derült",
"2-day": "Részben felhős",
"2-night": "Részben felhős",
"45-night": "Ködös",
"48-day": "Ködös",
"48-night": "Ködös",
"51-day": "Enyhe szitálás",
"51-night": "Enyhe szitálás",
"57-night": "Fagyos szitálás",
"61-day": "Enyhe eső",
"61-night": "Enyhe eső",
"53-night": "Szitálás",
"55-day": "Erős szitálás",
"55-night": "Erős szitálás",
"56-day": "Enyhe fagyos szitálás",
"63-day": "Eső",
"63-night": "Eső",
"65-day": "Heves eső",
"65-night": "Heves eső",
"66-day": "Ónos eső",
"66-night": "Ónos eső",
"67-day": "Ónos eső",
"67-night": "Ónos eső",
"71-day": "Enyhe havazás",
"71-night": "Enyhe havazás",
"73-day": "",
"73-night": "",
"75-day": "Erős havazás",
"75-night": "Erős havazás",
"77-day": "Hódara",
"77-night": "Hódara",
"80-day": "Enyhe záporok",
"80-night": "Enyhe záporok",
"81-day": "Záporok",
"81-night": "Záporok",
"82-day": "Heves záporok",
"82-night": "Heves záporok",
"85-day": "Hózáporok",
"85-night": "Hózáporok",
"86-day": "Hózáporok",
"86-night": "Hózáporok",
"95-day": "Zivatar",
"95-night": "Zivatar",
"96-day": "Zivatar jégesővel",
"96-night": "Zivatar jégesővel",
"99-day": "Zivatar jégesővel",
"99-night": "Zivatar jégesővel"
},
"quicklaunch": {
"bookmark": "Bookmark",
"service": "Service",
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"bookmark": "Könyvjelző",
"service": "Szolgáltatás",
"search": "Keresés",
"custom": "Egyedi",
"visit": "Megnéz",
"url": "URL"
},
"homebridge": {
"available_update": "System",
"updates": "Updates",
"update_available": "Update Available",
"up_to_date": "Up to Date",
"child_bridges": "Child Bridges",
"available_update": "Rendszer",
"updates": "Frissítések",
"update_available": "Elérhető Frissítés",
"up_to_date": "Naprakész",
"child_bridges": "Gyerek Hidak",
"child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"down": "Down"
"up": "Fut",
"pending": "Függőben",
"down": "Áll"
},
"autobrr": {
"approvedPushes": "Approved",
"rejectedPushes": "Rejected",
"filters": "Filters",
"indexers": "Indexers"
"approvedPushes": "Jóváhagyott",
"rejectedPushes": "Elutasított",
"filters": "Szűrők",
"indexers": "Indexelők"
},
"watchtower": {
"containers_scanned": "Scanned",
"containers_updated": "Updated",
"containers_failed": "Failed"
"containers_scanned": "Beolvasott",
"containers_updated": "Frissített",
"containers_failed": "Sikertelen"
},
"tubearchivist": {
"downloads": "Queue",
"videos": "Videos",
"channels": "Channels",
"playlists": "Playlists"
"downloads": "Várólista",
"videos": "Videók",
"channels": "Csatornák",
"playlists": "Lejátszási listák"
},
"truenas": {
"load": "System Load",
"uptime": "Uptime",
"alerts": "Alerts",
"load": "Rendszerterheltség",
"uptime": "Üzemidő",
"alerts": "Riasztások",
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
},
"navidrome": {
"nothing_streaming": "No Active Streams",
"please_wait": "Please Wait"
"nothing_streaming": "Nincsenek Aktív Stream-ek",
"please_wait": "Kérjük Várjon"
},
"pyload": {
"speed": "Speed",
"active": "Active",
"queue": "Queue",
"total": "Total"
"speed": "Sebesség",
"active": "Aktív",
"queue": "Várólista",
"total": "Összes"
},
"gluetun": {
"public_ip": "Public IP",
"region": "Region",
"country": "Country"
"public_ip": "Nyilvános IP-cím",
"region": "Régió",
"country": "Ország"
},
"hdhomerun": {
"channels": "Channels",
"channels": "Csatornák",
"hd": "HD"
},
"ping": {
"error": "Error",
"error": "Hiba",
"ping": "Ping"
},
"scrutiny": {
"passed": "Passed",
"failed": "Failed",
"unknown": "Unknown"
"passed": "Megfelelt",
"failed": "Sikertelen",
"unknown": "Ismeretlen"
},
"paperlessngx": {
"inbox": "Inbox",
"total": "Total"
"inbox": "Beérkezett",
"total": "Összes"
},
"deluge": {
"download": "Download",
"download": "Letöltés",
"seed": "Seed",
"upload": "Upload",
"upload": "Feltöltés",
"leech": "Leech"
},
"flood": {
"download": "Download",
"upload": "Upload",
"download": "Letöltés",
"upload": "Feltöltés",
"leech": "Leech",
"seed": "Seed"
},
"tdarr": {
"queue": "Queue",
"processed": "Processed",
"errored": "Errored",
"saved": "Saved"
"queue": "Várólista",
"processed": "Feldolgozott",
"errored": "Hibás",
"saved": "Mentett"
},
"miniflux": {
"read": "Read",
"unread": "Unread"
"read": "Olvasott",
"unread": "Olvasatlan"
},
"nextdns": {
"wait": "Please Wait",
"no_devices": "No Device Data Received"
"wait": "Kérjük Várjon",
"no_devices": "Nincs fogadott eszközadat"
},
"common": {
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
},
"omada": {
"activeUser": "Active devices",
"alerts": "Alerts",
"connectedAp": "Connected APs",
"connectedGateway": "Connected gateways",
"connectedSwitches": "Connected switches"
"activeUser": "Aktív eszközök",
"alerts": "Riasztások",
"connectedAp": "Csatlakoztatott AP-k",
"connectedGateway": "Csatlakoztatott gateway-ek",
"connectedSwitches": "Csatlakoztatott switch-ek"
},
"downloadstation": {
"download": "Download",
"upload": "Upload",
"download": "Letöltés",
"upload": "Feltöltés",
"leech": "Leech",
"seed": "Seed"
},
"mikrotik": {
"cpuLoad": "CPU Load",
"memoryUsed": "Memory Used",
"uptime": "Uptime",
"numberOfLeases": "Leases"
"cpuLoad": "Processzor Terhelés",
"memoryUsed": "Felhasznált Memória",
"uptime": "Üzemidő",
"numberOfLeases": "Bérletek"
},
"xteve": {
"streams_all": "All Streams",
"streams_active": "Active Streams",
"streams_xepg": "XEPG Channels"
"streams_all": "Minden Stream",
"streams_active": "Aktív Stream-ek",
"streams_xepg": "XEPG Csatornák"
},
"opnsense": {
"cpu": "CPU Load",
"memory": "Active Memory",
"wanUpload": "WAN Upload",
"wanDownload": "WAN Download"
"cpu": "Processzor Terhelés",
"memory": "Aktív Memória",
"wanUpload": "WAN Feltöltés",
"wanDownload": "WAN Letöltés"
},
"moonraker": {
"layers": "Layers",
"printer_state": "Printer State",
"print_status": "Print Status",
"print_progress": "Progress"
"layers": "Rétegek",
"printer_state": "Nyomtató Állapota",
"print_status": "Nyomtatás Állapota",
"print_progress": "Folyamat"
},
"medusa": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
"wanted": "Keresett",
"queued": "Sorba állítva",
"series": "Sorozatok"
},
"octoprint": {
"printer_state": "Status",
"temp_tool": "Tool temp",
"temp_bed": "Bed temp",
"job_completion": "Completion"
"printer_state": "Állapot",
"temp_tool": "Szerszám hőmérséklet",
"temp_bed": "Ágy Hőmérséklet",
"job_completion": "Teljesítés"
},
"cloudflared": {
"origin_ip": "Origin IP",
"status": "Status"
"origin_ip": "Eredeti IP",
"status": "Állapot"
},
"proxmoxbackupserver": {
"datastore_usage": "Datastore",
"failed_tasks_24h": "Failed Tasks 24h",
"cpu_usage": "CPU",
"memory_usage": "Memory"
"datastore_usage": "Adattár",
"failed_tasks_24h": "Sikertelen feladatok 24h",
"cpu_usage": "Processzor",
"memory_usage": "Memória"
},
"immich": {
"users": "Users",
"photos": "Photos",
"videos": "Videos",
"storage": "Storage"
"users": "Felhasználók",
"photos": "Fényképek",
"videos": "Videók",
"storage": "Tárhely"
},
"uptimekuma": {
"up": "Sites Up",
"down": "Sites Down",
"uptime": "Uptime",
"incident": "Incident",
"m": "m"
"up": "Futó Webhelyek",
"down": "Nem Elérhető Webhelyek",
"uptime": "Üzemidő",
"incident": "Incidens",
"m": "perc"
},
"komga": {
"libraries": "Libraries",
"series": "Series",
"books": "Books"
"libraries": "Könyvtárak",
"series": "Sorozatok",
"books": "Könyvek"
},
"mylar": {
"series": "Series",
"issues": "Issues",
"wanted": "Wanted"
"series": "Sorozatok",
"issues": "Problémák",
"wanted": "Keresett"
},
"photoprism": {
"albums": "Albums",
"photos": "Photos",
"videos": "Videos",
"people": "People"
"albums": "Albumok",
"photos": "Fényképek",
"videos": "Videók",
"people": "Emberek"
},
"diskstation": {
"days": "Days",
"uptime": "Uptime",
"volumeAvailable": "Available"
"days": "Napok",
"uptime": "Üzemidő",
"volumeAvailable": "Elérhető"
},
"fileflows": {
"queue": "Queue",
"processing": "Processing",
"processed": "Processed",
"time": "Time"
"queue": "Várólista",
"processing": "Feldolgozás",
"processed": "Feldolgozott",
"time": "Idő"
},
"grafana": {
"dashboards": "Dashboards",
"datasources": "Data Sources",
"totalalerts": "Total Alerts",
"alertstriggered": "Alerts Triggered"
"dashboards": "Műszerfalak",
"datasources": "Adatforrások",
"totalalerts": "Összes Riasztás",
"alertstriggered": "Aktivált riasztások"
},
"nextcloud": {
"cpuload": "Cpu Load",
"memoryusage": "Memory Usage",
"freespace": "Free Space",
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
"cpuload": "Processzor Terhelés",
"memoryusage": "Memória Használat",
"freespace": "Szabad hely",
"activeusers": "Aktív Felhasználók",
"numfiles": "Fájlok",
"numshares": "Megosztott Elemek"
},
"kopia": {
"status": "Status",
"size": "Size",
"lastrun": "Last Run",
"nextrun": "Next Run",
"failed": "Failed"
"status": "Állapot",
"size": "Méret",
"lastrun": "Legutóbbi futtatás",
"nextrun": "Következő Futtatás",
"failed": "Sikertelen"
},
"unmanic": {
"active_workers": "Active Workers",
"total_workers": "Total Workers",
"records_total": "Queue Length"
"active_workers": "Aktív Dolgozók",
"total_workers": "Összes Dolgozó",
"records_total": "Várólista Hossza"
},
"healthchecks": {
"new": "New",
"new": "Új",
"up": "Online",
"grace": "In Grace Period",
"grace": "Türelmi idő alatt",
"down": "Offline",
"paused": "Paused",
"status": "Status",
"last_ping": "Last Ping",
"never": "No pings yet"
"paused": "Szünetel",
"status": "Állapot",
"last_ping": "Legutóbbi Ping",
"never": "Még nincsenek ping-ek"
},
"pterodactyl": {
"servers": "Servers",
"nodes": "Nodes"
"servers": "Szerverek",
"nodes": "Node-ok"
},
"prometheus": {
"targets_up": "Targets Up",
"targets_down": "Targets Down",
"targets_total": "Total Targets"
"targets_up": "Célpontok Futnak",
"targets_down": "Célpontok Állnak",
"targets_total": "Összes Célpont"
},
"minecraft": {
"players": "Players",
"version": "Version",
"status": "Status",
"players": "Lejátszók",
"version": "Verzió",
"status": "Állapot",
"up": "Online",
"down": "Offline"
},
"ghostfolio": {
"gross_percent_today": "Today",
"gross_percent_1y": "One year",
"gross_percent_max": "All time"
"gross_percent_today": "Ma",
"gross_percent_1y": "Egy év",
"gross_percent_max": "Mindig"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
"podcasts": "Podcast",
"books": "Könyv",
"podcastsDuration": "Időtartam",
"booksDuration": "Időtartam"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
"people_home": "Emberek otthon",
"lights_on": "Fények bekapcsolva",
"switches_on": "Kapcsolók felkapcsolva"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
"subscriptions": "Előfizetések",
"unread": "Olvasatlan"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
"shows": "Műsorok",
"recordings": "Felvételek",
"scheduled": "Ütemezett",
"passes": "Engedélyek"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
"monitoring": "Nyomonkövetés",
"updates": "Frissítések"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"address": "Cím",
"expires": "Lejár",
"never": "Soha",
"last_seen": "Utoljára látott",
"now": "Most",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago",
"ago": "{{value}} Ezelőtt",
"hours": "{{number}}h"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"cpuUsage": "Processzor Használat",
"memUsage": "Memória Használat",
"systemTempC": "Rendszerhőmérséklet",
"poolUsage": "Pool Használat",
"volumeUsage": "Kötet Használat",
"invalid": "Érvénytelen"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"load": "Átlagos terhelés",
"memory": "RAM Használat",
"wanStatus": "WAN Állapot",
"up": "Fut",
"down": "Áll",
"temp": "Hőmérséklet",
"disk": "Lemezhasználat",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
"upstreams": "Upstreamek",
"requests": "Jelenlegi kérelmek",
"requests_failed": "Sikertelen kérelmek"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"pv_power": "Termelés",
"battery_soc": "Akkumulátor",
"grid_power": "Rács",
"home_power": "Fogyasztás",
"charge_power": "Töltő",
"watt_hour": "Wh"
},
"pialert": {
"total": "Összes",
"connected": "Csatlakoztatott",
"new_devices": "Új Eszközök",
"down_alerts": "Leállási Figyelmeztetések"
},
"jdownloader": {
"downloadSpeed": "Sebesség",
"downloadCount": "Összes függőben lévő",
"downloadTotalBytes": "Méret",
"downloadBytesRemaining": "Fennmaradó"
},
"kavita": {
"seriesCount": "Sorozatok",
"totalFiles": "Fájlok"
},
"gamedig": {
"ping": "Ping",
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots"
},
"azuredevops": {
"status": "Status",
"myPrs": "My PRs",
"approved": "Approved",
"result": "Result",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -0,0 +1,693 @@
{
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"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": "Lokasi Saat Ini",
"allow": "Klik untuk mengizinkan",
"updating": "Memperbarui"
},
"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": "Luang",
"used": "Digunakan",
"load": "Load",
"temp": "TEMP",
"max": "Maks",
"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",
"plex_connection_error": "Check Plex Connection"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -7,12 +7,12 @@
"rx": "RX",
"error": "Errore",
"unknown": "Sconosciuto",
"running": "Running",
"starting": "Starting",
"running": "In esecuzione",
"starting": "In avvio",
"unhealthy": "Unhealthy",
"not_found": "Not Found",
"exited": "Exited",
"partial": "Partial",
"not_found": "Non trovato",
"exited": "Uscito",
"partial": "Parziale",
"healthy": "Healthy"
},
"emby": {
@@ -20,16 +20,17 @@
"transcoding": "Transcodifica",
"bitrate": "Bitrate",
"no_active": "Nessuno Stream Attivo",
"movies": "Movies",
"series": "Series",
"episodes": "Episodes",
"songs": "Songs"
"movies": "Film",
"series": "Serie",
"episodes": "Episodi",
"songs": "Canzoni"
},
"tautulli": {
"playing": "In riproduzione",
"transcoding": "Transcodifica",
"bitrate": "Bitrate",
"no_active": "Nessuno Stream Attivo"
"no_active": "Nessuno Stream Attivo",
"plex_connection_error": "Check Plex Connection"
},
"speedtest": {
"upload": "Upload",
@@ -81,13 +82,17 @@
"sonarr": {
"series": "Serie",
"wanted": "Richiesti",
"queued": "In coda"
"queued": "In coda",
"queue": "Coda",
"unknown": "Sconosciuto"
},
"radarr": {
"wanted": "Richiesti",
"queued": "In coda",
"movies": "Film",
"missing": "Mancanti"
"missing": "Mancanti",
"queue": "Coda",
"unknown": "Sconosciuto"
},
"readarr": {
"wanted": "Richiesti",
@@ -108,7 +113,7 @@
"queries": "Richieste",
"blocked": "Bloccati",
"gravity": "Severità",
"blocked_percent": "Blocked %"
"blocked_percent": "Bloccato %"
},
"npm": {
"enabled": "Attivi",
@@ -171,9 +176,9 @@
"missingMovies": "Film Mancanti"
},
"lidarr": {
"wanted": "Mancanti",
"wanted": "Richiesto",
"queued": "In coda",
"albums": "Album"
"artists": "Artisti"
},
"adguard": {
"queries": "Interrogazioni",
@@ -224,22 +229,32 @@
"devices": "Dispositivi",
"lan_devices": "Dispositivi LAN",
"wlan_devices": "Dispositivi WLAN",
"empty_data": "Subsystem status unknown"
"empty_data": "Stato del sottosistema sconosciuto"
},
"plex": {
"streams": "Trasmissioni attive",
"movies": "Film",
"tv": "Programma televisivo",
"albums": "Albums"
"albums": "Album"
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Attendere prego",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Carico",
"warn": "Avviso",
"total": "Totale",
"free": "Libero",
"used": "Usato",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Totale Osservato",
@@ -306,9 +321,9 @@
"quicklaunch": {
"bookmark": "Segnalibro",
"service": "Servizio",
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"search": "Cerca",
"custom": "Personalizzato",
"visit": "Visita",
"url": "URL"
},
"homebridge": {
@@ -319,7 +334,7 @@
"child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}",
"up": "Up",
"pending": "Pending",
"pending": "In attesa",
"down": "Down"
},
"autobrr": {
@@ -424,7 +439,7 @@
"cpuLoad": "Carico della CPU",
"memoryUsed": "Memoria Utilizzata",
"uptime": "Tempo di attività",
"numberOfLeases": "Lease"
"numberOfLeases": "Rilasci"
},
"xteve": {
"streams_all": "Tutti gli stream",
@@ -432,201 +447,247 @@
"streams_xepg": "Canali XEPG"
},
"opnsense": {
"cpu": "Carico CPU",
"cpu": "Carico della CPU",
"memory": "Memoria in uso",
"wanUpload": "WAN Upload",
"wanDownload": "WAN Download"
},
"moonraker": {
"printer_state": "Printer State",
"print_status": "Print Status",
"print_progress": "Progress",
"layers": "Layers"
"printer_state": "Stato stampante",
"print_status": "Stato Stampante",
"print_progress": "Avanzamento",
"layers": "Livelli"
},
"medusa": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
"wanted": "Richiesto",
"queued": "In coda",
"series": "Serie"
},
"octoprint": {
"printer_state": "Status",
"printer_state": "Stato",
"temp_tool": "Tool temp",
"temp_bed": "Bed temp",
"job_completion": "Completion"
"job_completion": "Completamento"
},
"cloudflared": {
"origin_ip": "Origin IP",
"status": "Status"
"origin_ip": "IP sorgente",
"status": "Stato"
},
"proxmoxbackupserver": {
"datastore_usage": "Datastore",
"failed_tasks_24h": "Failed Tasks 24h",
"failed_tasks_24h": "Attività Non Riuscite 24h",
"cpu_usage": "CPU",
"memory_usage": "Memory"
"memory_usage": "Memoria"
},
"immich": {
"users": "Users",
"photos": "Photos",
"videos": "Videos",
"storage": "Storage"
"users": "Utenti",
"photos": "Foto",
"videos": "Video",
"storage": "Memoria"
},
"uptimekuma": {
"up": "Sites Up",
"down": "Sites Down",
"up": "Siti On",
"down": "Siti Down",
"uptime": "Uptime",
"incident": "Incident",
"incident": "Incidente",
"m": "m"
},
"komga": {
"libraries": "Libraries",
"series": "Series",
"books": "Books"
"libraries": "Librerie",
"series": "Serie",
"books": "Libri"
},
"mylar": {
"series": "Series",
"issues": "Issues",
"wanted": "Wanted"
"series": "Serie",
"issues": "Problemi",
"wanted": "Richiesto"
},
"photoprism": {
"albums": "Albums",
"photos": "Photos",
"videos": "Videos",
"people": "People"
"albums": "Album",
"photos": "Foto",
"videos": "Video",
"people": "Persone"
},
"diskstation": {
"days": "Days",
"days": "Giorni",
"uptime": "Uptime",
"volumeAvailable": "Available"
"volumeAvailable": "Disponibile"
},
"fileflows": {
"queue": "Queue",
"processing": "Processing",
"processed": "Processed",
"time": "Time"
"queue": "Coda",
"processing": "In Lavorazione",
"processed": "Elaborato",
"time": "Tempo"
},
"grafana": {
"dashboards": "Dashboards",
"datasources": "Data Sources",
"totalalerts": "Total Alerts",
"alertstriggered": "Alerts Triggered"
"datasources": "Origine dei Dati",
"totalalerts": "Avvisi Totali",
"alertstriggered": "Avvisi Attivati"
},
"nextcloud": {
"memoryusage": "Memory Usage",
"cpuload": "Cpu Load",
"freespace": "Free Space",
"activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
"memoryusage": "Uso della Memoria",
"cpuload": "Carico della CPU",
"freespace": "Spazio Libero",
"activeusers": "Utenti Attivi",
"numfiles": "File",
"numshares": "Oggetti Condivisi"
},
"kopia": {
"status": "Status",
"size": "Size",
"lastrun": "Last Run",
"nextrun": "Next Run",
"failed": "Failed"
"status": "Stato",
"size": "Dimensione",
"lastrun": "Ultima esecuzione",
"nextrun": "Prossima esecuzione",
"failed": "Fallito"
},
"unmanic": {
"active_workers": "Active Workers",
"total_workers": "Total Workers",
"records_total": "Queue Length"
"active_workers": "Lavoratori Attivi",
"total_workers": "Lavoratori Totali",
"records_total": "Lunghezza della Coda"
},
"healthchecks": {
"new": "New",
"new": "Nuovo",
"up": "Online",
"grace": "In Grace Period",
"grace": "Periodo di Tolleranza",
"down": "Offline",
"paused": "Paused",
"status": "Status",
"last_ping": "Last Ping",
"never": "No pings yet"
"paused": "In Pausa",
"status": "Stato",
"last_ping": "Ultimo Ping",
"never": "Ancora nessun ping"
},
"pterodactyl": {
"servers": "Servers",
"nodes": "Nodes"
"servers": "Server",
"nodes": "Nodi"
},
"prometheus": {
"targets_up": "Targets Up",
"targets_down": "Targets Down",
"targets_total": "Total Targets"
"targets_total": "Targets Totali"
},
"minecraft": {
"players": "Players",
"version": "Version",
"status": "Status",
"players": "Giocatori",
"version": "Versione",
"status": "Stato",
"up": "Online",
"down": "Offline"
},
"ghostfolio": {
"gross_percent_today": "Today",
"gross_percent_1y": "One year",
"gross_percent_max": "All time"
"gross_percent_today": "Oggi",
"gross_percent_1y": "Un anno",
"gross_percent_max": "Sempre"
},
"audiobookshelf": {
"podcasts": "Podcasts",
"books": "Books",
"podcastsDuration": "Duration",
"booksDuration": "Duration"
"podcasts": "Podcast",
"books": "Libri",
"podcastsDuration": "Durata",
"booksDuration": "Durata"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
"people_home": "Persone a Casa",
"lights_on": "Luci Accese",
"switches_on": "Switch Accesi"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
"subscriptions": "Iscrizioni",
"unread": "Non letto"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
"shows": "Spettacoli",
"recordings": "Registrazioni",
"scheduled": "Programmati",
"passes": "Tessere"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
"monitoring": "Monitoraggio",
"updates": "Aggiornamenti"
},
"tailscale": {
"never": "Never",
"address": "Address",
"expires": "Expires",
"last_seen": "Last Seen",
"now": "Now",
"never": "Mai",
"address": "Indirizzo",
"expires": "Scade",
"last_seen": "Ultima visualizzazione",
"now": "Adesso",
"years": "{{number}}y",
"weeks": "{{number}}w",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago",
"ago": "{{value}} Fa",
"days": "{{number}}d"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"cpuUsage": "Utilizzo CPU",
"memUsage": "Utilizzo MEM",
"systemTempC": "Temp sistema",
"poolUsage": "Utilizzo Pool",
"volumeUsage": "Utilizzo Volume",
"invalid": "Invalido"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"load": "Carico Medio",
"memory": "Uso Memoria",
"wanStatus": "Stato WAN",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
"temp": "Temperatura",
"disk": "Uso Disco",
"wanIP": "IP WAN"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
"upstreams": "Upstream",
"requests": "Richieste correnti",
"requests_failed": "Richieste fallite"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"pv_power": "Produzione",
"battery_soc": "Batteria",
"grid_power": "Griglia",
"home_power": "Consumo",
"charge_power": "Caricatore",
"watt_hour": "Wh"
},
"pialert": {
"total": "Totali",
"connected": "Connesso",
"new_devices": "Nuovi Dispositivi",
"down_alerts": "Avvisi di Disservizio"
},
"jdownloader": {
"downloadCount": "Coda",
"downloadSpeed": "Velocità Download",
"downloadBytesRemaining": "Residuo",
"downloadTotalBytes": "Dimensione"
},
"kavita": {
"seriesCount": "Serie",
"totalFiles": "File"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"myPrs": "My PRs",
"approved": "Approved",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -15,13 +15,23 @@
"transferRate": "レート"
},
"glances": {
"mem": "MEM",
"cpu": "CPU",
"wait": "お待ちください",
"temp": "温度",
"uptime": "UP",
"days": "日",
"hours": "時間"
"hours": "時間",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"autobrr": {
"filters": "フィルター",
@@ -59,7 +69,7 @@
"resources": {
"cpu": "CPU",
"total": "合計",
"free": "フリー",
"free": "Free",
"used": "使用",
"load": "ロード",
"mem": "MEM",
@@ -132,7 +142,8 @@
"playing": "再生中",
"transcoding": "変換中",
"bitrate": "ビットレート",
"no_active": "アクティブストリームなし"
"no_active": "アクティブストリームなし",
"plex_connection_error": "Check Plex Connection"
},
"omada": {
"connectedAp": "接続されたAP",
@@ -189,18 +200,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": "募集中",
@@ -231,7 +246,7 @@
"queries": "クエリ",
"blocked": "ブロック中",
"gravity": "グラビティ",
"blocked_percent": "Blocked %"
"blocked_percent": "ブロック %"
},
"adguard": {
"queries": "クエリ",
@@ -601,10 +616,12 @@
"ago": "{{value}} 前"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"cpuUsage": "CPU使用量",
"memUsage": "MEM使用量",
"systemTempC": "システム温度",
"poolUsage": "プール使用量",
"volumeUsage": "ボリューム使用量",
"invalid": "Invalid"
},
"pfsense": {
"up": "Up",
@@ -623,10 +640,54 @@
},
"evcc": {
"watt_hour": "Wh",
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger"
"pv_power": "発電量",
"battery_soc": "バッテリー",
"grid_power": "グリッド",
"home_power": "消費",
"charge_power": "チャージャー"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -111,7 +111,8 @@
"playing": "재생 중",
"transcoding": "트랜스코딩",
"bitrate": "비트레이트",
"no_active": "활성 스트림 없음"
"no_active": "활성 스트림 없음",
"plex_connection_error": "Check Plex Connection"
},
"omada": {
"connectedAp": "연결된 AP",
@@ -163,18 +164,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": "요청",
@@ -301,12 +306,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"quicklaunch": {
"bookmark": "Bookmark",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"temp": "Temp",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"down_alerts": "Down Alerts",
"new_devices": "New Devices"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"ping": "Ping",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -97,7 +97,8 @@
"playing": "Atskaņo",
"transcoding": "Pārkodē",
"bitrate": "Bitrate",
"no_active": "Nav aktīvu straumju"
"no_active": "Nav aktīvu straumju",
"plex_connection_error": "Check Plex Connection"
},
"omada": {
"connectedAp": "Savienotie piekļuves punkti",
@@ -154,18 +155,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",
@@ -290,12 +295,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"quicklaunch": {
"bookmark": "Bookmark",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -33,8 +33,8 @@
},
"lidarr": {
"queued": "Dibaris Gilir",
"albums": "Album",
"wanted": "Mahu"
"wanted": "Mahu",
"artists": "Artists"
},
"readarr": {
"wanted": "Mahu",
@@ -66,12 +66,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"quicklaunch": {
"bookmark": "Tandabuku",
@@ -196,7 +206,8 @@
"playing": "Sedang Dimainkan",
"transcoding": "Transkoding",
"bitrate": "Kadar bit",
"no_active": "Tiada Strim Aktif"
"no_active": "Tiada Strim Aktif",
"plex_connection_error": "Check Plex Connection"
},
"plex": {
"streams": "Strim Aktif",
@@ -229,13 +240,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",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -56,7 +56,8 @@
"playing": "Spiller",
"transcoding": "Transkoding",
"bitrate": "Bitrate",
"no_active": "Ingen aktive strømmer"
"no_active": "Ingen aktive strømmer",
"plex_connection_error": "Check Plex Connection"
},
"rutorrent": {
"active": "Aktiv",
@@ -66,13 +67,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",
@@ -173,7 +178,7 @@
"lidarr": {
"wanted": "Wanted",
"queued": "Queued",
"albums": "Albums"
"artists": "Artists"
},
"adguard": {
"queries": "Queries",
@@ -234,12 +239,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Total Observed",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Filer"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -72,7 +72,8 @@
"playing": "Afspelen",
"transcoding": "Transcodering",
"bitrate": "Bitsnelheid",
"no_active": "Geen Actieve Streams"
"no_active": "Geen Actieve Streams",
"plex_connection_error": "Check Plex Connection"
},
"rutorrent": {
"active": "Actief",
@@ -82,13 +83,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",
@@ -173,7 +178,7 @@
"lidarr": {
"wanted": "Gezocht",
"queued": "In de wachtrij",
"albums": "Albums"
"artists": "Artists"
},
"adguard": {
"queries": "Queries",
@@ -234,12 +239,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Totaal waargenomen",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -37,7 +37,8 @@
"playing": "Odtwarzanie",
"transcoding": "Transkodowanie",
"bitrate": "Bitrate",
"no_active": "Brak aktywnych strumieni"
"no_active": "Brak aktywnych strumieni",
"plex_connection_error": "Check Plex Connection"
},
"speedtest": {
"download": "Pobieranie",
@@ -110,18 +111,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",
@@ -234,12 +239,22 @@
},
"glances": {
"cpu": "Procesor",
"mem": "Pamięć",
"wait": "Proszę czekać",
"temp": "TEMP",
"uptime": "CZAS",
"days": "dni",
"hours": "godz"
"hours": "godz",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"diffsDetected": "Wykryto różnic",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"myPrs": "My PRs",
"approved": "Approved",
"result": "Result",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -90,7 +90,8 @@
"playing": "Reproduzindo",
"transcoding": "Transcodificando",
"bitrate": "Taxa de bits",
"no_active": "Sem transmissões ativas"
"no_active": "Sem transmissões ativas",
"plex_connection_error": "Verifique a conexão do Plex"
},
"nzbget": {
"rate": "Taxa",
@@ -112,18 +113,22 @@
"sonarr": {
"wanted": "Desejado",
"queued": "Na fila",
"series": "Séries"
"series": "Séries",
"queue": "Fila",
"unknown": "Desconhecido"
},
"radarr": {
"wanted": "Desejado",
"queued": "Na fila",
"movies": "Filmes",
"missing": "Faltando"
"missing": "Faltando",
"queue": "Fila",
"unknown": "Desconhecido"
},
"lidarr": {
"wanted": "Desejado",
"queued": "Na fila",
"albums": "Álbuns"
"artists": "Artistas"
},
"readarr": {
"wanted": "Desejado",
@@ -154,7 +159,7 @@
"queries": "Consultas",
"blocked": "Bloqueados",
"gravity": "Gravidade",
"blocked_percent": "Blocked %"
"blocked_percent": "Bloqueado %"
},
"adguard": {
"queries": "Consultas",
@@ -234,12 +239,22 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Por favor aguarde",
"temp": "TEMP",
"uptime": "LIGADO",
"days": "d",
"hours": "h"
"hours": "h",
"load": "Carga",
"warn": "Aviso",
"total": "Total",
"free": "Livre",
"used": "Usado",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Observados",
@@ -515,8 +530,8 @@
"memoryusage": "Memória Utilizada",
"freespace": "Espaço Livre",
"activeusers": "Usuários Ativos",
"numfiles": "Files",
"numshares": "Shared Items"
"numfiles": "Arquivos",
"numshares": "Itens Compartilhados"
},
"kopia": {
"status": "Status",
@@ -573,60 +588,106 @@
"switches_on": "Interruptores Ligados"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
"subscriptions": "Assinaturas",
"unread": "Não lida"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"recordings": "Gravações",
"scheduled": "Agendado",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
"monitoring": "Monitorando",
"updates": "Atualizações"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"address": "Endereço",
"expires": "Expira",
"never": "Nunca",
"last_seen": "Visto pela última vez",
"now": "Agora",
"years": "{{number}}a",
"weeks": "{{number}}s",
"hours": "{{number}}h",
"days": "{{number}}d",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
"ago": "{{value}} Atrás"
},
"qnap": {
"systemTempC": "System Temp",
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"poolUsage": "Pool Usage"
"systemTempC": "Temp Sistema",
"cpuUsage": "Uso CPU",
"memUsage": "Uso MEM",
"poolUsage": "Pool Usage",
"volumeUsage": "Uso Volume",
"invalid": "Invalido"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"load": "Média de carga",
"memory": "Uso Mem",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"disk": "Uso de disco",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
"requests": "Solicitações atuais",
"requests_failed": "Solicitações com falha"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"pv_power": "Produção",
"battery_soc": "Bateria",
"grid_power": "Grade",
"home_power": "Consumo",
"charge_power": "Carregador",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Conectado",
"new_devices": "Novos dispositivos",
"down_alerts": "Alertas de Quedas"
},
"jdownloader": {
"downloadCount": "Fila",
"downloadSpeed": "Velocidade de download",
"downloadBytesRemaining": "Restante",
"downloadTotalBytes": "Tamanho"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Arquivos"
},
"gamedig": {
"name": "Nome",
"map": "Mapa",
"currentPlayers": "Jogadores atuais",
"players": "Jogadores",
"maxPlayers": "Jogadores Max",
"bots": "Robos",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -56,7 +56,8 @@
"playing": "Reproduzindo",
"transcoding": "Transcodificação",
"bitrate": "Taxa de bits",
"no_active": "Sem streams ativas"
"no_active": "Sem streams ativas",
"plex_connection_error": "Check Plex Connection"
},
"rutorrent": {
"active": "Ativo",
@@ -66,13 +67,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",
@@ -186,7 +191,7 @@
"lidarr": {
"queued": "Enfileirado",
"wanted": "Desejado",
"albums": "Álbuns"
"artists": "Artists"
},
"adguard": {
"queries": "Consultas",
@@ -247,12 +252,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Total Observado",
@@ -582,12 +597,12 @@
"switches_on": "Interruptores Ligados"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
"subscriptions": "Assinaturas",
"unread": "Não lida"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"recordings": "Gravações",
"scheduled": "Scheduled",
"passes": "Passes"
},
@@ -613,7 +628,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -627,15 +644,59 @@
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
"requests": "Solicitações atuais",
"requests_failed": "Solicitações com falha"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
"pv_power": "Produção",
"battery_soc": "Bateria",
"grid_power": "Grade",
"home_power": "Consumo",
"charge_power": "Carregador",
"watt_hour": "Kw"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"approved": "Approved",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -92,7 +92,8 @@
"no_active": "Niciun stream activ",
"playing": "Activ",
"transcoding": "Transcodare",
"bitrate": "Bitrate"
"bitrate": "Bitrate",
"plex_connection_error": "Check Plex Connection"
},
"nzbget": {
"rate": "Rată",
@@ -134,18 +135,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",
@@ -234,12 +239,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Total Observed",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"new_devices": "New Devices",
"down_alerts": "Down Alerts",
"total": "Total",
"connected": "Connected"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved",
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -56,7 +56,8 @@
"playing": "Воспроизведение",
"transcoding": "Транскодирование",
"bitrate": "Битрейт",
"no_active": "Нет активных трансляций"
"no_active": "Нет активных трансляций",
"plex_connection_error": "Проверьте соединение с Plex"
},
"rutorrent": {
"active": "Активный",
@@ -64,18 +65,22 @@
"download": "Загрузка"
},
"sonarr": {
"wanted": "Хотел",
"wanted": "Желаемое",
"queued": "В очереди",
"series": "Серии"
"series": "Серии",
"queue": "Очередь",
"unknown": "Unknown"
},
"radarr": {
"wanted": "Хотел",
"wanted": "Желаемое",
"queued": "В очереди",
"movies": "Фильмы",
"missing": "Пропущено"
"missing": "Пропущено",
"queue": "Очередь",
"unknown": "Unknown"
},
"readarr": {
"wanted": "Хотел",
"wanted": "Желаемое",
"queued": "В очереди",
"books": "Книги"
},
@@ -171,9 +176,9 @@
"missingMovies": "Отсутствующие фильмы"
},
"lidarr": {
"wanted": "Хотел",
"wanted": "Желаемое",
"queued": "В очереди",
"albums": "Альбомы"
"artists": "Артисты"
},
"adguard": {
"queries": "Запросы",
@@ -234,12 +239,22 @@
},
"glances": {
"cpu": "Процессор",
"mem": "Память",
"wait": "Пожалуйста, подождите",
"temp": "Температура",
"uptime": "Работает",
"days": "д",
"hours": "ч"
"hours": "ч",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Всего наблюдаемых",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Использование пула",
"volumeUsage": "Использование тома",
"invalid": "Invalid"
},
"pfsense": {
"disk": "Disk Usage",
@@ -617,16 +634,60 @@
"temp": "Temp"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
"upstreams": "Апстримы",
"requests": "Текущие запросы",
"requests_failed": "Неудачные запросы"
},
"evcc": {
"home_power": "Consumption",
"home_power": "Потребление",
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"charge_power": "Charger",
"charge_power": "Зарядка",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "Новые устройства",
"down_alerts": "Оповещения о сбоях"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -221,7 +221,8 @@
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams"
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"omada": {
"connectedAp": "Connected APs",
@@ -273,18 +274,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",
@@ -398,12 +403,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"quicklaunch": {
"bookmark": "Bookmark",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"succeeded": "Succeeded",
"notStarted": "Not Started",
"inProgress": "In Progress",
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"failed": "Failed",
"canceled": "Canceled",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -168,7 +168,8 @@
"transcoding": "Transkodira",
"bitrate": "Pasovna širina",
"playing": "Predvaja",
"no_active": "Ni aktivne vsebine"
"no_active": "Ni aktivne vsebine",
"plex_connection_error": "Check Plex Connection"
},
"flood": {
"download": "Prenos",
@@ -235,18 +236,22 @@
"sonarr": {
"wanted": "Iskano",
"queued": "V vrsti",
"series": "Serije"
"series": "Serije",
"queue": "Vrsta",
"unknown": "Neznano"
},
"radarr": {
"wanted": "Iskano",
"missing": "Manjka",
"queued": "V vrsti",
"movies": "Filmi"
"movies": "Filmi",
"queue": "Vrsta",
"unknown": "Neznano"
},
"lidarr": {
"wanted": "Iskano",
"queued": "V vrsti",
"albums": "Albumi"
"artists": "Avtorji"
},
"readarr": {
"wanted": "Iskano",
@@ -350,12 +355,22 @@
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Prosim počakajte",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "u"
"hours": "u",
"free": "Prosto",
"load": "Obremenitev",
"warn": "Opoz.",
"total": "Skupaj",
"used": "V uporabi",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"authentik": {
"users": "Uporabniki",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU",
"memUsage": "MEM",
"systemTempC": "Temperatura",
"poolUsage": "Prostor"
"poolUsage": "Prostor",
"volumeUsage": "Prostora",
"invalid": "Neveljavno"
},
"pfsense": {
"load": "Povp. obremenitev",
@@ -622,11 +639,55 @@
"requests_failed": "Neuspešnih zahtev"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"pv_power": "Proizvodnja",
"battery_soc": "Baterija",
"grid_power": "Omrežje",
"home_power": "Poraba",
"charge_power": "Polnilec",
"watt_hour": "Wh"
},
"pialert": {
"total": "Skupaj",
"connected": "Povezanih",
"new_devices": "Nove naprave",
"down_alerts": "Izključeno"
},
"jdownloader": {
"downloadCount": "Vrsta",
"downloadSpeed": "Hitrost prenosa",
"downloadBytesRemaining": "Še ostane",
"downloadTotalBytes": "Velikost"
},
"kavita": {
"seriesCount": "Serije",
"totalFiles": "Datoteke"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -79,7 +79,8 @@
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams"
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"nzbget": {
"rate": "Rate",
@@ -117,18 +118,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",
@@ -234,12 +239,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Total Observed",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"memory": "Mem Usage",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -62,7 +62,8 @@
"playing": "Spelar",
"transcoding": "Omkodning",
"bitrate": "Bitrate",
"no_active": "Inga aktiva strömmar"
"no_active": "Inga aktiva strömmar",
"plex_connection_error": "Check Plex Connection"
},
"nzbget": {
"rate": "Hastighet",
@@ -88,18 +89,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",
@@ -234,12 +239,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Total Observed",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"totalFiles": "Files",
"seriesCount": "Series"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"approved": "Approved",
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -79,7 +79,8 @@
"playing": "ఆడుతున్నారు",
"transcoding": "ట్రాన్స్‌కోడింగ్",
"bitrate": "బిట్రేట్",
"no_active": "యాక్టివ్ స్ట్రీమ్‌లు లేవు"
"no_active": "యాక్టివ్ స్ట్రీమ్‌లు లేవు",
"plex_connection_error": "Check Plex Connection"
},
"nzbget": {
"rate": "రేట్",
@@ -111,18 +112,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": "ఎపిసోడ్‌లు లేవు",
@@ -234,12 +239,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "మొత్తం గమనించబడింది",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"totalFiles": "Files",
"seriesCount": "Series"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"myPrs": "My PRs",
"approved": "Approved",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -139,7 +139,8 @@
"playing": "Playing",
"transcoding": "Transcoding",
"bitrate": "Bitrate",
"no_active": "No Active Streams"
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"omada": {
"connectedAp": "Connected APs",
@@ -190,7 +191,9 @@
"sonarr": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
"series": "Series",
"queue": "Queue",
"unknown": "Unknown"
},
"readarr": {
"queued": "Queued",
@@ -216,12 +219,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",
@@ -310,12 +315,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"quicklaunch": {
"bookmark": "Bookmark",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

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,29 +57,30 @@
"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",
"transcoding": "Dönüştürülüyor",
"bitrate": "Bit Oranı",
"no_active": "Aktif akış yok"
"no_active": "Aktif akış yok",
"plex_connection_error": "Check Plex Connection"
},
"nzbget": {
"rate": "Oran",
@@ -90,7 +91,7 @@
"streams": "Aktif Akış",
"movies": "Filmler",
"tv": "TV Showları",
"albums": "Albums"
"albums": "Albümler"
},
"sabnzbd": {
"rate": "Oran",
@@ -117,18 +118,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",
@@ -159,7 +164,7 @@
"queries": "Sorgular",
"blocked": "Engellenen",
"gravity": "Yer Çekimi",
"blocked_percent": "Blocked %"
"blocked_percent": "Engellenen %"
},
"adguard": {
"queries": "Sorgular",
@@ -234,12 +239,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Toplam Gözlenen",
@@ -307,9 +322,9 @@
"bookmark": "Yer İmi",
"service": "Hizmet",
"search": "Ara",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
"custom": "Özel",
"visit": "Ziyaret",
"url": "Link"
},
"homebridge": {
"available_update": "Sistem",
@@ -380,14 +395,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",
@@ -417,7 +432,7 @@
"downloadstation": {
"download": "İndir",
"upload": "Yükle",
"leech": "Leech",
"leech": "Tüketici",
"seed": "Tohum"
},
"mikrotik": {
@@ -444,7 +459,7 @@
"layers": "Katmanlar"
},
"medusa": {
"wanted": "Wanted",
"wanted": "Aranan",
"queued": "Kuyrukta",
"series": "Seri"
},
@@ -550,11 +565,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",
@@ -573,38 +588,40 @@
"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": "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",
"address": "Address",
"expires": "Expires"
"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": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"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",
@@ -617,16 +634,60 @@
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
"upstreams": "Akış",
"requests": "Anlık İstekler",
"requests_failed": "Başarısız İstekler"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
"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ı"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -127,7 +127,7 @@
"total": "Всього",
"free": "Вільно",
"used": "Використано",
"load": "Навантаження",
"load": "Завантаження",
"mem": "Пам'ять",
"temp": "TEMP",
"max": "Max",
@@ -198,7 +198,8 @@
"playing": "Відтворення",
"transcoding": "Перекодування",
"bitrate": "Бітрейт",
"no_active": "Немає активних потоків"
"no_active": "Немає активних потоків",
"plex_connection_error": "Перевірте з'єднання Plex"
},
"nzbget": {
"rate": "Швидкість",
@@ -232,18 +233,22 @@
"sonarr": {
"wanted": "Розшукується",
"queued": "У черзі",
"series": "Серії"
"series": "Серії",
"queue": "Черга",
"unknown": "Невідомо"
},
"radarr": {
"wanted": "Розшукується",
"missing": "Відсутній",
"queued": "У черзі",
"movies": "Фільми"
"movies": "Фільми",
"queue": "Черга",
"unknown": "Невідомо"
},
"lidarr": {
"wanted": "Розшукується",
"queued": "У черзі",
"albums": "Альбоми"
"artists": "Виконавці"
},
"traefik": {
"middleware": "Проміжне програмне забезпечення",
@@ -358,12 +363,22 @@
},
"glances": {
"cpu": "CPU",
"mem": "Пам'ять",
"wait": "Будь ласка, зачекайте",
"temp": "TEMP",
"uptime": "Відправка",
"days": "д",
"hours": "г"
"hours": "г",
"load": "Завантаження",
"warn": "Увага",
"total": "Всього",
"free": "Вільний",
"used": "Використовується",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"quicklaunch": {
"bookmark": "Закладка",
@@ -604,7 +619,9 @@
"cpuUsage": "Використання CPU",
"memUsage": "Використання пам'яті",
"systemTempC": "Температура системи",
"poolUsage": "Використання пулу"
"poolUsage": "Використання пулу",
"volumeUsage": "Гучність",
"invalid": "Недійсний"
},
"pfsense": {
"load": "Середнє завантаження",
@@ -617,16 +634,60 @@
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
"upstreams": "Потоки",
"requests": "Поточні запити",
"requests_failed": "Невдалі запити"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
"pv_power": "Виробництво",
"battery_soc": "Батарея",
"grid_power": "Сітка",
"home_power": "Споживання",
"charge_power": "Зарядний пристрій",
"watt_hour": "Вт/год"
},
"pialert": {
"total": "Всього",
"connected": "Підключено",
"new_devices": "Нові пристрої",
"down_alerts": "Сповіщення про збій"
},
"jdownloader": {
"downloadCount": "Черга",
"downloadSpeed": "Швидкість",
"downloadBytesRemaining": "Залишилося",
"downloadTotalBytes": "Розмір"
},
"kavita": {
"seriesCount": "Серій",
"totalFiles": "Файлів"
},
"gamedig": {
"name": "Назва",
"map": "Мапа",
"currentPlayers": "Поточні гравці",
"players": "Гравці",
"maxPlayers": "Максимум гравців",
"bots": "Ботів",
"ping": "Пінг"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -56,7 +56,8 @@
"playing": "Đang chơi",
"transcoding": "Chuyển định dạng",
"bitrate": "Bitrate",
"no_active": "No Active Streams"
"no_active": "No Active Streams",
"plex_connection_error": "Check Plex Connection"
},
"rutorrent": {
"active": "Hoạt động",
@@ -66,13 +67,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",
@@ -173,7 +178,7 @@
"lidarr": {
"wanted": "Wanted",
"queued": "Queued",
"albums": "Albums"
"artists": "Artists"
},
"adguard": {
"queries": "Queries",
@@ -234,12 +239,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Total Observed",
@@ -604,7 +619,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -13,7 +13,8 @@
"playing": "播放緊",
"no_active": "無任何活動",
"transcoding": "轉碼緊",
"bitrate": "比特率"
"bitrate": "比特率",
"plex_connection_error": "Check Plex Connection"
},
"transmission": {
"download": "下載速度",
@@ -94,18 +95,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": "想睇",
@@ -234,12 +239,22 @@
},
"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",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "Total Observed",
@@ -604,7 +619,9 @@
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage"
"memUsage": "MEM Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@@ -628,5 +645,49 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -56,7 +56,8 @@
"playing": "播放中",
"transcoding": "转码",
"bitrate": "比特率",
"no_active": "暂无播放"
"no_active": "暂无播放",
"plex_connection_error": "Check Plex Connection"
},
"rutorrent": {
"active": "活动中",
@@ -66,13 +67,17 @@
"sonarr": {
"wanted": "想看",
"queued": "排队",
"series": "系列"
"series": "系列",
"queue": "Queue",
"unknown": "Unknown"
},
"radarr": {
"wanted": "想看",
"queued": "队列",
"movies": "电影",
"missing": "丢失"
"missing": "丢失",
"queue": "Queue",
"unknown": "Unknown"
},
"readarr": {
"wanted": "订阅",
@@ -173,7 +178,7 @@
"lidarr": {
"wanted": "订阅",
"queued": "队列",
"albums": "相册"
"artists": "Artists"
},
"adguard": {
"queries": "查询",
@@ -234,12 +239,22 @@
},
"glances": {
"cpu": "处理器",
"mem": "内存",
"wait": "请稍等",
"temp": "温度",
"uptime": "运行时间",
"days": "天",
"hours": "时"
"hours": "时",
"load": "Load",
"warn": "Warn",
"total": "Total",
"free": "Free",
"used": "Used",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "观察到的总数",
@@ -550,7 +565,7 @@
"targets_total": "总目标"
},
"minecraft": {
"players": "播放中",
"players": "玩家",
"version": "版本",
"status": "状态",
"up": "在线的",
@@ -604,7 +619,9 @@
"cpuUsage": "处理器",
"memUsage": "内存",
"systemTempC": "系统温度",
"poolUsage": "存储池"
"poolUsage": "存储池",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "平均负载",
@@ -622,11 +639,55 @@
"requests_failed": "失败请求"
},
"evcc": {
"pv_power": "Production",
"pv_power": "正式环境",
"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"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"canceled": "Canceled",
"inProgress": "In Progress",
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -6,7 +6,7 @@
"information": "資訊",
"url": "網址",
"raw_error": "原始錯誤",
"response_data": "回復數據"
"response_data": "回應資料"
},
"weather": {
"current": "目前位置",
@@ -21,14 +21,14 @@
"mem": "記憶體",
"cpu": "處理器",
"error": "錯誤",
"unknown": "未知",
"unknown": "未知",
"running": "執行中",
"starting": "啟動中",
"unhealthy": "不健康的",
"not_found": "未找到",
"exited": "已退出",
"partial": "部分",
"healthy": "健康"
"healthy": "健康"
},
"emby": {
"playing": "正在播放",
@@ -44,7 +44,8 @@
"playing": "正在播放",
"transcoding": "轉碼",
"bitrate": "位元率",
"no_active": "無播放活動"
"no_active": "無播放活動",
"plex_connection_error": "Check Plex Connection"
},
"jellyseerr": {
"pending": "待下載",
@@ -63,9 +64,9 @@
"mem": "記憶體",
"temp": "溫度",
"max": "最大",
"uptime": "運時間",
"uptime": "運時間",
"months": "月",
"days": "",
"days": "",
"hours": "時",
"minutes": "分"
},
@@ -88,12 +89,16 @@
"movies": "電影",
"wanted": "關注中",
"queued": "已加入佇列",
"missing": "缺少"
"missing": "缺少",
"queue": "Queue",
"unknown": "Unknown"
},
"sonarr": {
"wanted": "關注中",
"queued": "已加入佇列",
"series": "影集"
"series": "影集",
"queue": "Queue",
"unknown": "Unknown"
},
"readarr": {
"wanted": "關注中",
@@ -115,7 +120,7 @@
"queries": "查詢",
"blocked": "已阻擋",
"gravity": "阻擋清單",
"blocked_percent": "Blocked %"
"blocked_percent": "已封鎖 %"
},
"speedtest": {
"upload": "上行速率",
@@ -123,8 +128,8 @@
"ping": "Ping"
},
"portainer": {
"running": "運中",
"stopped": "未運行",
"running": "運中",
"stopped": "已停止",
"total": "全部"
},
"traefik": {
@@ -163,7 +168,7 @@
"seed": "已完成下載"
},
"jackett": {
"configured": "已置",
"configured": "已置",
"errored": "發生錯誤"
},
"bazarr": {
@@ -173,7 +178,7 @@
"lidarr": {
"wanted": "關注中",
"queued": "已加入佇列",
"albums": "專輯"
"artists": "Artists"
},
"adguard": {
"queries": "查詢",
@@ -200,8 +205,8 @@
},
"authentik": {
"users": "使用者",
"loginsLast24H": "登錄(24h)",
"failedLoginsLast24H": "登失敗(24h)"
"loginsLast24H": "登入 (過去 24 小時)",
"failedLoginsLast24H": "登失敗 (過去 24 小時)"
},
"proxmox": {
"mem": "記憶體",
@@ -211,19 +216,19 @@
},
"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": {
@@ -234,19 +239,29 @@
},
"glances": {
"cpu": "CPU",
"mem": "記憶體",
"wait": "請稍後",
"temp": "溫度",
"uptime": "運行時間",
"days": "天",
"hours": "時"
"hours": "時",
"free": "未使用",
"used": "已使用",
"load": "負載量",
"warn": "警告",
"total": "總共",
"crit": "Crit",
"read": "Read",
"write": "Write",
"gpu": "GPU",
"mem": "Mem",
"swap": "Swap"
},
"changedetectionio": {
"totalObserved": "總監測數",
"diffsDetected": "偵測到的變更"
},
"wmo": {
"0-day": "晴",
"0-day": "晴",
"0-night": "晴朗",
"71-day": "小雪",
"71-night": "小雪",
@@ -308,7 +323,7 @@
"service": "服務",
"search": "搜尋",
"custom": "自訂",
"visit": "訪",
"visit": "訪",
"url": "網址"
},
"homebridge": {
@@ -351,7 +366,7 @@
},
"pyload": {
"speed": "速度",
"active": "行中",
"active": "行中",
"queue": "佇列",
"total": "全部"
},
@@ -515,14 +530,14 @@
"memoryusage": "記憶體用量",
"freespace": "可用空間",
"activeusers": "活躍用戶",
"numfiles": "Files",
"numshares": "Shared Items"
"numfiles": "檔案",
"numshares": "已分享"
},
"kopia": {
"status": "狀態",
"size": "檔案大小",
"lastrun": "上次行",
"nextrun": "下次行",
"lastrun": "上次行",
"nextrun": "下次行",
"failed": "失敗"
},
"unmanic": {
@@ -587,46 +602,92 @@
"updates": "可更新"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago",
"weeks": "{{number}}w",
"days": "{{number}}d"
"address": "位址",
"expires": "已失效",
"never": "未曾",
"last_seen": "上次連線",
"now": "現在",
"years": "{{number}}",
"hours": "{{number}} 小時",
"minutes": "{{number}} 分鐘",
"seconds": "{{number}}",
"ago": "{{value}} ",
"weeks": "{{number}}",
"days": "{{number}}"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"cpuUsage": "CPU 使用率",
"memUsage": "記憶體使用率",
"systemTempC": "系統溫度",
"poolUsage": "儲存池使用率",
"volumeUsage": "儲存區用量",
"invalid": "無效的"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
"load": "平均負載量",
"memory": "記憶體使用率",
"wanStatus": "網際網路狀態",
"up": "已連線",
"down": "已離線",
"temp": "溫度",
"disk": "硬碟使用率",
"wanIP": "網際網路 IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
"upstreams": "上行",
"requests": "目前請求數",
"requests_failed": "失敗請求"
},
"evcc": {
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"pv_power": "Production",
"battery_soc": "Battery",
"watt_hour": "Wh"
"grid_power": "電網",
"home_power": "電源使用率",
"charge_power": "充電",
"pv_power": "正式環境",
"battery_soc": "電池",
"watt_hour": "瓦時 (Wh)"
},
"pialert": {
"total": "全部",
"connected": "已連線",
"new_devices": "新裝置",
"down_alerts": "離線警告"
},
"jdownloader": {
"downloadCount": "Queue Count",
"downloadSpeed": "Download Speed",
"downloadBytesRemaining": "Remaining",
"downloadTotalBytes": "Size"
},
"kavita": {
"seriesCount": "Series",
"totalFiles": "Files"
},
"gamedig": {
"name": "Name",
"map": "Map",
"currentPlayers": "Current players",
"players": "Players",
"maxPlayers": "Max players",
"bots": "Bots",
"ping": "Ping"
},
"azuredevops": {
"result": "Result",
"status": "Status",
"buildId": "Build ID",
"succeeded": "Succeeded",
"notStarted": "Not Started",
"failed": "Failed",
"canceled": "Canceled",
"inProgress": "In Progress",
"totalPrs": "Total PRs",
"myPrs": "My PRs",
"approved": "Approved"
},
"urbackup": {
"ok": "Ok",
"errored": "Errors",
"noRecent": "Out of Date",
"totalUsed": "Used Storage"
}
}

View File

@@ -1,13 +1,48 @@
import { useRef } from "react";
import classNames from "classnames";
import { Disclosure, Transition } from '@headlessui/react';
import { MdKeyboardArrowDown } from "react-icons/md";
import ErrorBoundary from "components/errorboundry";
import List from "components/bookmarks/list";
export default function BookmarksGroup({ group }) {
export default function BookmarksGroup({ group, disableCollapse }) {
const panel = useRef();
return (
<div key={group.name} className="flex-1">
<h2 className="text-theme-800 dark:text-theme-300 text-xl font-medium">{group.name}</h2>
<ErrorBoundary>
<List bookmarks={group.bookmarks} />
</ErrorBoundary>
<Disclosure defaultOpen>
{({ open }) => (
<>
<Disclosure.Button disabled={disableCollapse} className="flex w-full select-none items-center group">
<h2 className="text-theme-800 dark:text-theme-300 text-xl font-medium">{group.name}</h2>
<MdKeyboardArrowDown className={classNames(
disableCollapse ? 'hidden' : '',
'transition-all opacity-0 group-hover:opacity-100 ml-auto text-theme-800 dark:text-theme-300 text-xl',
open ? '' : 'rotate-90'
)} />
</Disclosure.Button>
<Transition
// Otherwise the transition group does display: none and cancels animation
className="!block"
unmount={false}
beforeLeave={() => {
panel.current.style.height = `${panel.current.scrollHeight}px`;
setTimeout(() => {panel.current.style.height = `0`}, 1);
}}
beforeEnter={() => {
panel.current.style.height = `0px`;
setTimeout(() => {panel.current.style.height = `${panel.current.scrollHeight}px`}, 1);
}}
>
<Disclosure.Panel className="transition-all overflow-hidden duration-300 ease-out" ref={panel} static>
<ErrorBoundary>
<List bookmarks={group.bookmarks} />
</ErrorBoundary>
</Disclosure.Panel>
</Transition>
</>
)}
</Disclosure>
</div>
);
}

View File

@@ -145,7 +145,7 @@ export default function QuickLaunch({servicesAndBookmarks, searchString, setSear
return (
<div className={classNames(
"relative z-20 ease-in-out duration-300 transition-opacity",
"relative z-40 ease-in-out duration-300 transition-opacity",
hidden && !isOpen && "hidden",
!hidden && isOpen && "opacity-100",
!isOpen && "opacity-0",

View File

@@ -33,11 +33,22 @@ export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "log
}
// check mdi- or si- prefixed icons
const prefix = icon.split("-")[0]
const prefix = icon.split("-")[0];
if (prefix in iconSetURLs) {
// get icon source
const iconName = icon.replace(`${prefix}-`, "").replace(".svg", "");
// default to theme setting
let iconName = icon.replace(`${prefix}-`, "").replace(".svg", "");
let iconColor = settings.iconStyle === "theme" ?
`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)))";
// use custom hex color if provided
const colorMatches = icon.match(/[#][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]$/i)
if (colorMatches?.length) {
iconName = icon.replace(`${prefix}-`, "").replace(".svg", "").replace(`-${colorMatches[0]}`, "");
iconColor = `${colorMatches[0]}`;
}
const iconSource = `${iconSetURLs[prefix]}${iconName}.svg`;
return (
@@ -47,16 +58,13 @@ export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "log
height,
maxWidth: '100%',
maxHeight: '100%',
background: settings.iconStyle === "theme" ?
`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)))",
background: `${iconColor}`,
mask: `url(${iconSource}) no-repeat center / contain`,
WebkitMask: `url(${iconSource}) no-repeat center / contain`,
}}
/>
);
}
// fallback to dashboard-icons
if (icon.endsWith(".svg")) {

View File

@@ -1,9 +1,15 @@
import { useRef } from "react";
import classNames from "classnames";
import { Disclosure, Transition } from '@headlessui/react';
import { MdKeyboardArrowDown } from "react-icons/md";
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, disableCollapse }) {
const panel = useRef();
return (
<div
key={services.name}
@@ -13,15 +19,42 @@ export default function ServicesGroup({ services, layout, fiveColumns }) {
"flex-1 p-1"
)}
>
<div className="flex select-none items-center">
{layout?.icon &&
<div className="flex-shrink-0 mr-2 w-7 h-7">
<ResolvedIcon icon={layout.icon} />
</div>
}
<h2 className="text-theme-800 dark:text-theme-300 text-xl font-medium">{services.name}</h2>
</div>
<List services={services.services} layout={layout} />
<Disclosure defaultOpen>
{({ open }) => (
<>
<Disclosure.Button disabled={disableCollapse} className="flex w-full select-none items-center group">
{layout?.icon &&
<div className="flex-shrink-0 mr-2 w-7 h-7">
<ResolvedIcon icon={layout.icon} />
</div>
}
<h2 className="flex text-theme-800 dark:text-theme-300 text-xl font-medium">{services.name}</h2>
<MdKeyboardArrowDown className={classNames(
disableCollapse ? 'hidden' : '',
'transition-all opacity-0 group-hover:opacity-100 ml-auto text-theme-800 dark:text-theme-300 text-xl',
open ? '' : 'rotate-90'
)} />
</Disclosure.Button>
<Transition
// Otherwise the transition group does display: none and cancels animation
className="!block"
unmount={false}
beforeLeave={() => {
panel.current.style.height = `${panel.current.scrollHeight}px`;
setTimeout(() => {panel.current.style.height = `0`}, 1);
}}
beforeEnter={() => {
panel.current.style.height = `0px`;
setTimeout(() => {panel.current.style.height = `${panel.current.scrollHeight}px`}, 1);
}}
>
<Disclosure.Panel className="transition-all overflow-hidden duration-300 ease-out" ref={panel} static>
<List group={group} services={services.services} layout={layout} />
</Disclosure.Panel>
</Transition>
</>
)}
</Disclosure>
</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;
@@ -34,9 +34,9 @@ export default function Item({ service }) {
<div
className={`${
hasLink ? "cursor-pointer " : " "
}transition-all h-15 mb-2 p-1 rounded-md font-medium text-theme-700 dark:text-theme-200 dark:hover:text-theme-300 shadow-md shadow-theme-900/10 dark:shadow-theme-900/20 bg-theme-100/20 hover:bg-theme-300/20 dark:bg-white/5 dark:hover:bg-white/10 relative`}
}transition-all h-15 mb-2 p-1 rounded-md font-medium text-theme-700 dark:text-theme-200 dark:hover:text-theme-300 shadow-md shadow-theme-900/10 dark:shadow-theme-900/20 bg-theme-100/20 hover:bg-theme-300/20 dark:bg-white/5 dark:hover:bg-white/10 relative overflow-clip`}
>
<div className="flex select-none">
<div className="flex select-none z-0">
{service.icon &&
(hasLink ? (
<a
@@ -60,24 +60,24 @@ export default function Item({ service }) {
rel="noreferrer"
className="flex-1 flex items-center justify-between rounded-r-md "
>
<div className="flex-1 px-2 py-2 text-sm text-left">
<div className="flex-1 px-2 py-2 text-sm text-left z-10">
{service.name}
<p className="text-theme-500 dark:text-theme-300 text-xs font-light">{service.description}</p>
</div>
</a>
) : (
<div className="flex-1 flex items-center justify-between rounded-r-md ">
<div className="flex-1 px-2 py-2 text-sm text-left">
<div className="flex-1 px-2 py-2 text-sm text-left z-10">
{service.name}
<p className="text-theme-500 dark:text-theme-300 text-xs font-light">{service.description}</p>
</div>
</div>
)}
<div className="absolute top-0 right-0 w-1/2 flex flex-row justify-end gap-2 mr-2">
<div className="absolute top-0 right-0 w-1/2 flex flex-row justify-end gap-2 mr-2 z-30">
{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 (

View File

@@ -15,8 +15,11 @@ export default function Container({ error = false, children, service }) {
return <Error service={service} error={error} />
}
let visibleChildren = children;
const fields = service?.widget?.fields;
const childrenArray = Array.isArray(children) ? children : [children];
let visibleChildren = childrenArray;
let fields = service?.widget?.fields;
if (typeof fields === 'string') fields = JSON.parse(service.widget.fields);
const type = service?.widget?.type;
if (fields && type) {
// if the field contains a "." then it most likely contains a common loc value
@@ -24,7 +27,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,6 +1,9 @@
import { useState, useEffect } from "react";
import { useTranslation } from "next-i18next";
import Container from "../widget/container";
import Raw from "../widget/raw";
const textSizes = {
"4xl": "text-4xl",
"3xl": "text-3xl",
@@ -17,7 +20,7 @@ export default function DateTime({ options }) {
const { i18n } = useTranslation();
const [date, setDate] = useState("");
const dateLocale = locale ?? i18n.language;
useEffect(() => {
const dateFormat = new Intl.DateTimeFormat(dateLocale, { ...format });
const interval = setInterval(() => {
@@ -27,12 +30,14 @@ export default function DateTime({ options }) {
}, [date, setDate, dateLocale, format]);
return (
<div className="flex flex-col justify-center first:ml-0 ml-4">
<div className="flex flex-row items-center grow justify-end">
<span className={`text-theme-800 dark:text-theme-200 tabular-nums ${textSizes[textSize || "lg"]}`}>
{date}
</span>
</div>
</div>
<Container options={options}>
<Raw>
<div className="flex flex-row items-center grow justify-end">
<span className={`text-theme-800 dark:text-theme-200 tabular-nums ${textSizes[textSize || "lg"]}`}>
{date}
</span>
</div>
</Raw>
</Container>
);
}

View File

@@ -1,10 +1,15 @@
import useSWR from "swr";
import { BiError } from "react-icons/bi";
import { useContext } from "react";
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 Error from "../widget/error";
import Resource from "../widget/resource";
import Resources from "../widget/resources";
import WidgetLabel from "../widget/widget_label";
import { SettingsContext } from "utils/contexts/settings";
const cpuSensorLabels = ["cpu_thermal", "Core", "Tctl"];
@@ -14,6 +19,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()}`, {
@@ -22,52 +28,19 @@ export default function Widget({ options }) {
);
if (error || data?.error) {
return (
<div className="flex flex-col justify-center first:ml-0 ml-4">
<div className="flex flex-row items-center justify-end">
<div className="flex flex-row items-center">
<BiError className="w-8 h-8 text-theme-800 dark:text-theme-200" />
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-sm">{t("widget.api_error")}</span>
</div>
</div>
</div>
</div>
);
return <Error options={options} />
}
if (!data) {
return (
<div className="flex flex-col max-w:full sm:basis-auto self-center grow-0 flex-wrap ml-4">
<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" />
<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 text-xs">
{t("glances.wait")}
</div>
</div>
<UsageBar percent="0" />
</div>
</div>
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
<FaMemory className="text-theme-800 dark:text-theme-200 w-5 h-5" />
<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 text-xs">
{t("glances.wait")}
</div>
</div>
<UsageBar percent="0" />
</div>
</div>
</div>
{options.label && (
<div className="ml-6 pt-1 text-center text-theme-800 dark:text-theme-200 text-xs">{options.label}</div>
)}
</div>
);
return <Resources options={options}>
<Resource icon={FiCpu} label={t("glances.wait")} percentage="0" />
<Resource icon={FaMemory} label={t("glances.wait")} percentage="0" />
{ options.cputemp && <Resource icon={FaThermometerHalf} label={t("glances.wait")} percentage="0" /> }
{ options.disk && !Array.isArray(options.disk) && <Resource key={options.disk} icon={FiHardDrive} label={t("glances.wait")} percentage="0" /> }
{ options.disk && Array.isArray(options.disk) && options.disk.map((disk) => <Resource key={`disk_${disk.mnt_point}`} icon={FiHardDrive} label={t("glances.wait")} percentage="0" /> ) }
{ options.uptime && <Resource icon={FaRegClock} label={t("glances.wait")} percentage="0" /> }
{ options.label && <WidgetLabel label={options.label} /> }
</Resources>;
}
const unit = options.units === "imperial" ? "fahrenheit" : "celsius";
@@ -77,7 +50,7 @@ export default function Widget({ options }) {
if (options.cputemp && cpuSensors) {
try {
mainTemp = cpuSensors.reduce((acc, s) => acc + s.value, 0) / cpuSensors.length;
maxTemp = Math.max(cpuSensors.reduce((acc, s) => acc + s.warning, 0) / cpuSensors.length, maxTemp);
maxTemp = Math.max(cpuSensors.reduce((acc, s) => acc + (s.warning > 0 ? s.warning : 0), 0) / cpuSensors.length, maxTemp);
if (unit === "fahrenheit") {
mainTemp = convertToFahrenheit(mainTemp);
maxTemp = convertToFahrenheit(maxTemp);
@@ -88,78 +61,93 @@ 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">
<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" />
<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.cpu,
style: "unit",
unit: "percent",
maximumFractionDigits: 0,
})}
</div>
<div className="pr-1">{t("glances.cpu")}</div>
</div>
<UsageBar percent={data.quicklook.cpu} />
</div>
</div>
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
<FaMemory className="text-theme-800 dark:text-theme-200 w-5 h-5" />
<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,
})}
</div>
<div className="pr-1">{t("glances.mem")}</div>
</div>
<UsageBar percent={data.quicklook.mem} />
</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" />
<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.number", {
value: mainTemp,
maximumFractionDigits: 1,
style: "unit",
unit
})}
</div>
<div className="pr-1">{t("glances.temp")}</div>
</span>
<UsageBar percent={tempPercent} />
</div>
</div>)}
{options.uptime && data.uptime &&
(<div className="flex-none flex flex-row items-center mr-3 py-1.5">
<FaRegClock 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">
{data.uptime.replace(" days,", t("glances.days")).replace(/:\d\d:\d\d$/g, t("glances.hours"))}
</div>
<div className="pr-1">{t("glances.uptime")}</div>
</span>
<UsageBar percent={Math.round((new Date().getSeconds() / 60) * 100)} />
</div>
</div>)}
</div>
{options.label && (
<div className="pt-1 text-center text-theme-800 dark:text-theme-200 text-xs">{options.label}</div>
)}
</div>
<Resources options={options} target={settings.target ?? "_blank"}>
<Resource
icon={FiCpu}
value={t("common.number", {
value: data.cpu.total,
style: "unit",
unit: "percent",
maximumFractionDigits: 0,
})}
label={t("glances.cpu")}
expandedValue={t("common.number", {
value: data.load.min15,
style: "unit",
unit: "percent",
maximumFractionDigits: 0
})}
expandedLabel={t("glances.load")}
percentage={data.cpu.total}
expanded={options.expanded}
/>
<Resource
icon={FaMemory}
value={t("common.bytes", {
value: data.mem.free,
maximumFractionDigits: 1,
binary: true,
})}
label={t("glances.free")}
expandedValue={t("common.bytes", {
value: data.mem.total,
maximumFractionDigits: 1,
binary: true,
})}
expandedLabel={t("glances.total")}
percentage={data.mem.percent}
expanded={options.expanded}
/>
{disks.map((disk) => (
<Resource key={`disk_${disk.mnt_point}`}
icon={FiHardDrive}
value={t("common.bytes", { value: disk.free })}
label={t("glances.free")}
expandedValue={t("common.bytes", { value: disk.size })}
expandedLabel={t("glances.total")}
percentage={disk.percent}
expanded={options.expanded}
/>
))}
{options.cputemp && mainTemp > 0 &&
<Resource
icon={FaThermometerHalf}
value={t("common.number", {
value: mainTemp,
maximumFractionDigits: 1,
style: "unit",
unit
})}
label={t("glances.temp")}
expandedValue={t("common.number", {
value: maxTemp,
maximumFractionDigits: 1,
style: "unit",
unit
})}
expandedLabel={t("glances.warn")}
percentage={tempPercent}
expanded={options.expanded}
/>
}
{options.uptime && data.uptime &&
<Resource
icon={FaRegClock}
value={data.uptime.replace(" days,", t("glances.days")).replace(/:\d\d:\d\d$/g, t("glances.hours"))}
label={t("glances.uptime")}
percentage={Math.round((new Date().getSeconds() / 60) * 100).toString()}
/>
}
{options.label && <WidgetLabel label={options.label} />}
</Resources>
);
}

View File

@@ -1,3 +1,6 @@
import Container from "../widget/container";
import Raw from "../widget/raw";
const textSizes = {
"4xl": "text-4xl",
"3xl": "text-3xl",
@@ -11,12 +14,12 @@ const textSizes = {
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"]}`}>
return <Container options={options}>
<Raw>
<span className={`text-theme-800 dark:text-theme-200 mr-3 ${textSizes[options.text_size || "xl"]}`}>
{options.text}
</span>
</div>
);
</Raw>
</Container>;
}
}

View File

@@ -1,12 +1,15 @@
import useSWR from "swr";
import { BiError } from "react-icons/bi";
import { useTranslation } from "next-i18next";
import Error from "../widget/error";
import Container from "../widget/container";
import Raw from "../widget/raw";
import Node from "./node";
export default function Widget({ options }) {
const { cluster, nodes } = options;
const { t, i18n } = useTranslation();
const { i18n } = useTranslation();
const defaultData = {
cpu: {
@@ -18,7 +21,7 @@ export default function Widget({ options }) {
used: 0,
total: 0,
free: 0,
precent: 0
percent: 0
}
};
@@ -29,23 +32,12 @@ export default function Widget({ options }) {
);
if (error || data?.error) {
return (
<div className="flex flex-col justify-center first:ml-0 ml-4">
<div className="flex flex-row items-center justify-end">
<div className="flex flex-row items-center">
<BiError className="w-8 h-8 text-theme-800 dark:text-theme-200" />
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-sm">{t("widget.api_error")}</span>
</div>
</div>
</div>
</div>
);
return <Error options={options} />
}
if (!data) {
return (
<div className="flex flex-col max-w:full sm:basis-auto self-center grow-0 flex-wrap">
return <Container options={options}>
<Raw>
<div className="flex flex-row self-center flex-wrap justify-between">
{cluster.show &&
<Node type="cluster" key="cluster" options={options.cluster} data={defaultData} />
@@ -54,12 +46,12 @@ export default function Widget({ options }) {
<Node type="node" key="nodes" options={options.nodes} data={defaultData} />
}
</div>
</div>
);
</Raw>
</Container>;
}
return (
<div className="flex flex-col max-w:full sm:basis-auto self-center grow-0 flex-wrap">
return <Container options={options}>
<Raw>
<div className="flex flex-row self-center flex-wrap justify-between">
{cluster.show &&
<Node key="cluster" type="cluster" options={options.cluster} data={data.cluster} />
@@ -69,6 +61,6 @@ export default function Widget({ options }) {
<Node key={node.name} type="node" options={options.nodes} data={node} />)
}
</div>
</div>
);
</Raw>
</Container>;
}

View File

@@ -3,8 +3,7 @@ import { FiAlertTriangle, FiCpu, FiServer } from "react-icons/fi";
import { SiKubernetes } from "react-icons/si";
import { useTranslation } from "next-i18next";
import UsageBar from "./usage-bar";
import UsageBar from "../resources/usage-bar";
export default function Node({ type, options, data }) {
const { t } = useTranslation();
@@ -29,7 +28,7 @@ export default function Node({ type, options, data }) {
<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.cpu.percent,
value: data?.cpu?.percent ?? 0,
style: "unit",
unit: "percent",
maximumFractionDigits: 0
@@ -37,18 +36,18 @@ export default function Node({ type, options, data }) {
</div>
<FiCpu className="text-theme-800 dark:text-theme-200 w-3 h-3" />
</div>
<UsageBar percent={data.cpu.percent} />
<UsageBar percent={data?.cpu?.percent ?? 0} />
<div className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5">
{t("common.bytes", {
value: data.memory.free,
value: data?.memory?.free ?? 0,
maximumFractionDigits: 0,
binary: true
})}
</div>
<FaMemory className="text-theme-800 dark:text-theme-200 w-3 h-3" />
</div>
<UsageBar percent={data.memory.percent} />
<UsageBar percent={data?.memory?.percent} />
{options.showLabel && (
<div className="pt-1 text-center text-theme-800 dark:text-theme-200 text-xs">{type === "cluster" ? options.label : data.name}</div>
)}

View File

@@ -1,12 +0,0 @@
export default function UsageBar({ percent }) {
return (
<div className="mt-0.5 w-full bg-theme-800/30 rounded-full h-1 dark:bg-theme-200/20">
<div
className="bg-theme-800/70 h-1 rounded-full dark:bg-theme-200/50 transition-all duration-1000"
style={{
width: `${percent}%`,
}}
/>
</div>
);
}

View File

@@ -1,62 +1,71 @@
import Container from "../widget/container";
import Raw from "../widget/raw";
import ResolvedIcon from "components/resolvedicon"
export default function Logo({ options }) {
return (
<div className="w-12 h-12 flex flex-row items-center align-middle mr-3 self-center">
{options.icon ?
<ResolvedIcon icon={options.icon} width={48} height={48} /> :
<Container options={options}>
<Raw>
{options.icon ?
<div className="mr-3">
<ResolvedIcon icon={options.icon} width={48} height={48} />
</div> :
// fallback to homepage logo
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 1024 1024"
style={{
enableBackground: "new 0 0 1024 1024",
}}
xmlSpace="preserve"
className="w-full h-full"
>
<style>
{
".st0{display:none}.st3{stroke-linecap:square}.st3,.st4{fill:none;stroke:#fff;stroke-miterlimit:10}.st6{display:inline;fill:#333}.st7{fill:#fff}"
}
</style>
<g id="Icon">
<path
d="M771.9 191c27.7 0 50.1 26.5 50.1 59.3v186.4l-100.2.3V250.3c0-32.8 22.4-59.3 50.1-59.3z"
style={{
fill: "rgba(var(--color-logo-start))",
}}
/>
<linearGradient
id="homepage_logo_gradient"
gradientUnits="userSpaceOnUse"
x1={200.746}
y1={225.015}
x2={764.986}
y2={789.255}
>
<stop
offset={0}
<div className="w-12 h-12">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 1024 1024"
style={{
enableBackground: "new 0 0 1024 1024",
}}
xmlSpace="preserve"
className="w-full h-full"
>
<style>
{
".st0{display:none}.st3{stroke-linecap:square}.st3,.st4{fill:none;stroke:#fff;stroke-miterlimit:10}.st6{display:inline;fill:#333}.st7{fill:#fff}"
}
</style>
<g id="Icon">
<path
d="M771.9 191c27.7 0 50.1 26.5 50.1 59.3v186.4l-100.2.3V250.3c0-32.8 22.4-59.3 50.1-59.3z"
style={{
stopColor: "rgba(var(--color-logo-start))",
fill: "rgba(var(--color-logo-start))",
}}
/>
<stop
offset={1}
<linearGradient
id="homepage_logo_gradient"
gradientUnits="userSpaceOnUse"
x1={200.746}
y1={225.015}
x2={764.986}
y2={789.255}
>
<stop
offset={0}
style={{
stopColor: "rgba(var(--color-logo-start))",
}}
/>
<stop
offset={1}
style={{
stopColor: "rgba(var(--color-logo-stop))",
}}
/>
</linearGradient>
<path
d="M721.8 250.3c0-32.7 22.4-59.3 50.1-59.3H253.1c-27.7 0-50.1 26.5-50.1 59.3v582.2l90.2-75.7-.1-130.3H375v61.8l88-73.8 258.8 217.9V250.6"
style={{
stopColor: "rgba(var(--color-logo-stop))",
fill: "url(#homepage_logo_gradient)",
}}
/>
</linearGradient>
<path
d="M721.8 250.3c0-32.7 22.4-59.3 50.1-59.3H253.1c-27.7 0-50.1 26.5-50.1 59.3v582.2l90.2-75.7-.1-130.3H375v61.8l88-73.8 258.8 217.9V250.6"
style={{
fill: "url(#homepage_logo_gradient)",
}}
/>
</g>
</svg>
</g>
</svg>
</div>
}
</div>
</Raw>
</Container>
)
}

View File

@@ -1,37 +1,31 @@
import useSWR from "swr";
import { BiError } from "react-icons/bi";
import { useTranslation } from "next-i18next";
import Error from "../widget/error";
import Container from "../widget/container";
import Raw from "../widget/raw";
import Node from "./node";
export default function Longhorn({ options }) {
const { expanded, total, labels, include, nodes } = options;
const { t } = useTranslation();
const { data, error } = useSWR(`/api/widgets/longhorn`, {
refreshInterval: 1500
});
if (error || data?.error) {
return (
<div className="flex flex-col max-w:full sm:basis-auto self-center grow-0 flex-wrap">
<BiError className="text-theme-800 dark:text-theme-200 w-5 h-5" />
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-xs">{t("widget.api_error")}</span>
</div>
</div>
);
return <Error options={options} />
}
if (!data) {
return (
<div className="flex flex-col max-w:full sm:basis-auto self-center grow-0 flex-wrap">
return <Container options={options}>
<Raw>
<div className="flex flex-row self-center flex-wrap justify-between" />
</div>
);
</Raw>
</Container>;
}
return (
<div className="flex flex-col max-w:full sm:basis-auto self-center grow-0 flex-wrap">
return <Container options={options}>
<Raw>
<div className="flex flex-row self-center flex-wrap justify-between">
{data.nodes
.filter((node) => {
@@ -52,6 +46,6 @@ export default function Longhorn({ options }) {
</div>
)}
</div>
</div>
);
</Raw>
</Container>;
}

View File

@@ -1,32 +1,20 @@
import { FiHardDrive } from "react-icons/fi";
import { useTranslation } from "next-i18next";
import { FaThermometerHalf } from "react-icons/fa";
import UsageBar from "../resources/usage-bar";
import Resource from "../widget/resource";
import WidgetLabel from "../widget/widget_label";
export default function Node({ data, expanded, labels }) {
const { t } = useTranslation();
return (
<>
<div 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: data.node.available })}</div>
<div className="pr-1">{t("resources.free")}</div>
</span>
{expanded && (
<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: data.node.maximum })}</div>
<div className="pr-1">{t("resources.total")}</div>
</span>
)}
<UsageBar percent={Math.round(((data.node.maximum - data.node.available) / data.node.maximum) * 100)} />
</div>
</div>
{labels && (
<div className="ml-6 pt-1 text-center text-theme-800 dark:text-theme-200 text-xs">{data.node.id}</div>
)}
</>
);
return <Resource
icon={FaThermometerHalf}
value={t("common.bytes", { value: data.node.available })}
label={t("resources.free")}
expandedValue={t("common.bytes", { value: data.node.maximum })}
expandedLabel={t("resources.total")}
percentage={Math.round(((data.node.maximum - data.node.available) / data.node.maximum) * 100)}
expanded={expanded}
>{ labels && <WidgetLabel label={data.node.id} /> }
</Resource>
}

View File

@@ -1,7 +0,0 @@
import mapIcon from "utils/weather/openmeteo-condition-map";
export default function Icon({ condition, timeOfDay }) {
const IconComponent = mapIcon(condition, timeOfDay);
return <IconComponent className="w-10 h-10 text-theme-800 dark:text-theme-200" />;
}

View File

@@ -1,11 +1,16 @@
import useSWR from "swr";
import { useState } from "react";
import { BiError } from "react-icons/bi";
import { WiCloudDown } from "react-icons/wi";
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
import { useTranslation } from "next-i18next";
import Icon from "./icon";
import Error from "../widget/error";
import Container from "../widget/container";
import ContainerButton from "../widget/container_button";
import WidgetIcon from "../widget/widget_icon";
import PrimaryText from "../widget/primary_text";
import SecondaryText from "../widget/secondary_text";
import mapIcon from "../../../utils/weather/openmeteo-condition-map";
function Widget({ options }) {
const { t } = useTranslation();
@@ -15,60 +20,33 @@ function Widget({ options }) {
);
if (error || data?.error) {
return (
<div className="flex flex-col justify-center first:ml-0 ml-4 mr-2">
<div className="flex flex-row items-center justify-end">
<div className="flex flex-col items-center">
<BiError className="w-8 h-8 text-theme-800 dark:text-theme-200" />
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-sm">{t("widget.api_error")}</span>
<span className="text-theme-800 dark:text-theme-200 text-xs">-</span>
</div>
</div>
</div>
</div>
);
return <Error options={options} />
}
if (!data) {
return (
<div className="flex flex-col justify-center first:ml-0 ml-4 mr-2">
<div className="flex flex-row items-center justify-end">
<div className="flex flex-col items-center">
<WiCloudDown className="w-8 h-8 text-theme-800 dark:text-theme-200" />
</div>
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-sm">{t("weather.updating")}</span>
<span className="text-theme-800 dark:text-theme-200 text-xs">{t("weather.wait")}</span>
</div>
</div>
</div>
);
return <Container options={options}>
<PrimaryText>{t("weather.updating")}</PrimaryText>
<SecondaryText>{t("weather.wait")}</SecondaryText>
<WidgetIcon icon={WiCloudDown} size="l" />
</Container>;
}
const unit = options.units === "metric" ? "celsius" : "fahrenheit";
const condition = data.current_weather.weathercode;
const timeOfDay = data.current_weather.time > data.daily.sunrise[0] && data.current_weather.time < data.daily.sunset[0] ? "day" : "night";
return (
<div className="flex flex-col justify-center first:ml-0 ml-4 mr-2">
<div className="flex flex-row items-center justify-end">
<div className="flex flex-col items-center">
<Icon condition={data.current_weather.weathercode} timeOfDay={timeOfDay} />
</div>
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-sm">
{options.label && `${options.label}, `}
{t("common.number", {
value: data.current_weather.temperature,
style: "unit",
unit,
})}
</span>
<span className="text-theme-800 dark:text-theme-200 text-xs">{t(`wmo.${data.current_weather.weathercode}-${timeOfDay}`)}</span>
</div>
</div>
</div>
);
return <Container options={options}>
<PrimaryText>
{options.label && `${options.label}, `}
{t("common.number", {
value: data.current_weather.temperature,
style: "unit",
unit,
})}
</PrimaryText>
<SecondaryText>{t(`wmo.${data.current_weather.weathercode}-${timeOfDay}`)}</SecondaryText>
<WidgetIcon icon={mapIcon(condition, timeOfDay)} size="xl" />
</Container>;
}
export default function OpenMeteo({ options }) {
@@ -103,27 +81,11 @@ export default function OpenMeteo({ options }) {
// if (!requesting && !location) requestLocation();
if (!location) {
return (
<button
type="button"
onClick={() => requestLocation()}
className="flex flex-col justify-center first:ml-0 ml-4 mr-2"
>
<div className="flex flex-row items-center justify-end">
<div className="flex flex-col items-center">
{requesting ? (
<MdLocationSearching className="w-6 h-6 text-theme-800 dark:text-theme-200 animate-pulse" />
) : (
<MdLocationDisabled className="w-6 h-6 text-theme-800 dark:text-theme-200" />
)}
</div>
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-sm">{t("weather.current")}</span>
<span className="text-theme-800 dark:text-theme-200 text-xs">{t("weather.allow")}</span>
</div>
</div>
</button>
);
return <ContainerButton options={options} callback={requestLocation} >
<PrimaryText>{t("weather.current")}</PrimaryText>
<SecondaryText>{t("weather.allow")}</SecondaryText>
<WidgetIcon icon={ requesting ? MdLocationSearching : MdLocationDisabled} size="m" pulse />
</ContainerButton>;
}
return <Widget options={{ ...location, ...options }} />;

View File

@@ -1,7 +0,0 @@
import mapIcon from "utils/weather/owm-condition-map";
export default function Icon({ condition, timeOfDay }) {
const IconComponent = mapIcon(condition, timeOfDay);
return <IconComponent className="w-10 h-10 text-theme-800 dark:text-theme-200" />;
}

View File

@@ -1,11 +1,16 @@
import useSWR from "swr";
import { useState } from "react";
import { BiError } from "react-icons/bi";
import { WiCloudDown } from "react-icons/wi";
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
import { useTranslation } from "next-i18next";
import Icon from "./icon";
import Error from "../widget/error";
import Container from "../widget/container";
import ContainerButton from "../widget/container_button";
import PrimaryText from "../widget/primary_text";
import SecondaryText from "../widget/secondary_text";
import WidgetIcon from "../widget/widget_icon";
import mapIcon from "../../../utils/weather/owm-condition-map";
function Widget({ options }) {
const { t, i18n } = useTranslation();
@@ -15,58 +20,27 @@ function Widget({ options }) {
);
if (error || data?.cod === 401 || data?.error) {
return (
<div className="flex flex-col justify-center first:ml-auto ml-4 mr-2">
<div className="flex flex-row items-center justify-end">
<div className="hidden sm:flex flex-col items-center">
<BiError className="w-8 h-8 text-theme-800 dark:text-theme-200" />
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-sm">{t("widget.api_error")}</span>
<span className="text-theme-800 dark:text-theme-200 text-xs">-</span>
</div>
</div>
</div>
</div>
);
return <Error options={options} />
}
if (!data) {
return (
<div className="flex flex-col justify-center first:ml-auto ml-4 mr-2">
<div className="flex flex-row items-center justify-end">
<div className="hidden sm:flex flex-col items-center">
<WiCloudDown className="w-8 h-8 text-theme-800 dark:text-theme-200" />
</div>
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-sm">{t("weather.updating")}</span>
<span className="text-theme-800 dark:text-theme-200 text-xs">{t("weather.wait")}</span>
</div>
</div>
</div>
);
return <Container options={options}>
<PrimaryText>{t("weather.updating")}</PrimaryText>
<SecondaryText>{t("weather.wait")}</SecondaryText>
<WidgetIcon icon={WiCloudDown} size="l" />
</Container>;
}
const unit = options.units === "metric" ? "celsius" : "fahrenheit";
return (
<div className="flex flex-col justify-center first:ml-auto ml-2 mr-2">
<div className="flex flex-row items-center justify-end">
<div className="hidden sm:flex flex-col items-center">
<Icon
condition={data.weather[0].id}
timeOfDay={data.dt > data.sys.sunrise && data.dt < data.sys.sunset ? "day" : "night"}
/>
</div>
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-sm">
{options.label && `${options.label}, `}
{t("common.number", { value: data.main.temp, style: "unit", unit })}
</span>
<span className="text-theme-800 dark:text-theme-200 text-xs">{data.weather[0].description}</span>
</div>
</div>
</div>
);
const condition = data.weather[0].id;
const timeOfDay = data.dt > data.sys.sunrise && data.dt < data.sys.sunset ? "day" : "night";
return <Container options={options}>
<PrimaryText>{options.label && `${options.label}, ` }{t("common.number", { value: data.main.temp, style: "unit", unit })}</PrimaryText>
<SecondaryText>{data.weather[0].description}</SecondaryText>
<WidgetIcon icon={mapIcon(condition, timeOfDay)} size="xl" />
</Container>;
}
export default function OpenWeatherMap({ options }) {
@@ -98,30 +72,12 @@ export default function OpenWeatherMap({ options }) {
}
};
// if (!requesting && !location) requestLocation();
if (!location) {
return (
<button
type="button"
onClick={() => requestLocation()}
className="flex flex-col justify-center first:ml-auto ml-4 mr-2"
>
<div className="flex flex-row items-center justify-end">
<div className="hidden sm:flex flex-col items-center">
{requesting ? (
<MdLocationSearching className="w-6 h-6 text-theme-800 dark:text-theme-200 animate-pulse" />
) : (
<MdLocationDisabled className="w-6 h-6 text-theme-800 dark:text-theme-200" />
)}
</div>
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-sm">{t("weather.current")}</span>
<span className="text-theme-800 dark:text-theme-200 text-xs">{t("weather.allow")}</span>
</div>
</div>
</button>
);
return <ContainerButton options={options} callback={requestLocation} >
<PrimaryText>{t("weather.current")}</PrimaryText>
<SecondaryText>{t("weather.allow")}</SecondaryText>
<WidgetIcon icon={requesting ? MdLocationSearching : MdLocationDisabled} size="m" pulse />
</ContainerButton>;
}
return <Widget options={{ ...location, ...options }} />;

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,79 +1,41 @@
import useSWR from "swr";
import { FiCpu } from "react-icons/fi";
import { BiError } from "react-icons/bi";
import { useTranslation } from "next-i18next";
import UsageBar from "./usage-bar";
import Resource from "../widget/resource";
import Error from "../widget/error";
export default function Cpu({ expanded }) {
export default function Cpu({ expanded, refresh = 1500 }) {
const { t } = useTranslation();
const { data, error } = useSWR(`/api/widgets/resources?type=cpu`, {
refreshInterval: 1500,
refreshInterval: refresh,
});
if (error || data?.error) {
return (
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
<BiError className="text-theme-800 dark:text-theme-200 w-5 h-5" />
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-xs">{t("widget.api_error")}</span>
</div>
</div>
);
return <Error />
}
if (!data) {
return (
<div className="flex-none flex flex-row items-center mr-3 py-1.5 animate-pulse">
<FiCpu className="text-theme-800 dark:text-theme-200 w-5 h-5" />
<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 pr-1">-</div>
<div className="pr-1">{t("resources.cpu")}</div>
</div>
{expanded && (
<div className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5 pr-1">-</div>
<div className="pr-1">{t("resources.load")}</div>
</div>
)}
<UsageBar percent={0} />
</div>
</div>
);
return <Resource icon={FiCpu} value="-" label={t("resources.cpu")} expandedValue="-"
expandedLabel={t("resources.load")} percentage="0" expanded={expanded} />
}
const percent = data.cpu.usage;
return (
<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" />
<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 pr-1">
{t("common.number", {
value: data.cpu.usage,
style: "unit",
unit: "percent",
maximumFractionDigits: 0,
})}
</div>
<div className="pr-1">{t("resources.cpu")}</div>
</div>
{expanded && (
<div 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.cpu.load,
maximumFractionDigits: 2,
})}
</div>
<div className="pr-1">{t("resources.load")}</div>
</div>
)}
<UsageBar percent={percent} />
</div>
</div>
);
return <Resource
icon={FiCpu}
value={t("common.number", {
value: data.cpu.usage,
style: "unit",
unit: "percent",
maximumFractionDigits: 0,
})}
label={t("resources.cpu")}
expandedValue={t("common.number", {
value: data.cpu.load,
maximumFractionDigits: 2,
})}
expandedLabel={t("resources.load")}
percentage={data.cpu.usage}
expanded={expanded}
/>
}

View File

@@ -1,50 +1,34 @@
import useSWR from "swr";
import { FaThermometerHalf } from "react-icons/fa";
import { BiError } from "react-icons/bi";
import { useTranslation } from "next-i18next";
import UsageBar from "./usage-bar";
import Resource from "../widget/resource";
import Error from "../widget/error";
function convertToFahrenheit(t) {
return t * 9/5 + 32
}
export default function CpuTemp({ expanded, units }) {
export default function CpuTemp({ expanded, units, refresh = 1500 }) {
const { t } = useTranslation();
const { data, error } = useSWR(`/api/widgets/resources?type=cputemp`, {
refreshInterval: 1500,
refreshInterval: refresh,
});
if (error || data?.error) {
return (
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
<BiError className="text-theme-800 dark:text-theme-200 w-5 h-5" />
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-xs">{t("widget.api_error")}</span>
</div>
</div>
);
return <Error />
}
if (!data || !data.cputemp) {
return (
<div className="flex-none flex flex-row items-center mr-3 py-1.5 animate-pulse">
<FaThermometerHalf 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">-</div>
<div className="pr-1">{t("resources.temp")}</div>
</span>
{expanded && (
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5">-</div>
<div className="pr-1">{t("resources.max")}</div>
</span>
)}
</div>
</div>
);
return <Resource
icon={FaThermometerHalf}
value="-"
label={t("resources.temp")}
expandedValue="-"
expandedLabel={t("resources.max")}
expanded={expanded}
/>;
}
let mainTemp = data.cputemp.main;
@@ -54,38 +38,24 @@ export default function CpuTemp({ expanded, units }) {
const unit = units === "imperial" ? "fahrenheit" : "celsius";
mainTemp = (unit === "celsius") ? mainTemp : convertToFahrenheit(mainTemp);
const maxTemp = (unit === "celsius") ? data.cputemp.max : convertToFahrenheit(data.cputemp.max);
const percent = Math.round((mainTemp / maxTemp) * 100);
return (
<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" />
<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.number", {
value: mainTemp,
maximumFractionDigits: 1,
style: "unit",
unit
})}
</div>
<div className="pr-1">{t("resources.temp")}</div>
</span>
{expanded && (
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5">
{t("common.number", {
value: maxTemp,
maximumFractionDigits: 1,
style: "unit",
unit
})}
</div>
<div className="pr-1">{t("resources.max")}</div>
</span>
)}
<UsageBar percent={percent} />
</div>
</div>
);
return <Resource
icon={FaThermometerHalf}
value={t("common.number", {
value: mainTemp,
maximumFractionDigits: 1,
style: "unit",
unit
})}
label={t("resources.temp")}
expandedValue={t("common.number", {
value: maxTemp,
maximumFractionDigits: 1,
style: "unit",
unit
})}
expandedLabel={t("resources.max")}
percentage={Math.round((mainTemp / maxTemp) * 100)}
expanded={expanded}
/>;
}

View File

@@ -1,68 +1,43 @@
import useSWR from "swr";
import { FiHardDrive } from "react-icons/fi";
import { BiError } from "react-icons/bi";
import { useTranslation } from "next-i18next";
import UsageBar from "./usage-bar";
import Resource from "../widget/resource";
import Error from "../widget/error";
export default function Disk({ options, expanded }) {
export default function Disk({ options, expanded, refresh = 1500 }) {
const { t } = useTranslation();
const { data, error } = useSWR(`/api/widgets/resources?type=disk&target=${options.disk}`, {
refreshInterval: 1500,
refreshInterval: refresh,
});
if (error || data?.error) {
return (
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
<BiError className="text-theme-800 dark:text-theme-200 w-5 h-5" />
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-xs">{t("widget.api_error")}</span>
</div>
</div>
);
return <Error options={options} />
}
if (!data) {
return (
<div className="flex-none flex flex-row items-center mr-3 py-1.5 animate-pulse">
<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 pr-1">-</div>
<div className="pr-1">{t("resources.free")}</div>
</span>
{expanded && (
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5 pr-1">-</div>
<div className="pr-1">{t("resources.total")}</div>
</span>
)}
<UsageBar percent={0} />
</div>
</div>
);
return <Resource
icon={FiHardDrive}
value="-"
label={t("resources.free")}
expandedValue="-"
expandedLabel={t("resources.total")}
expanded={expanded}
percentage="0"
/>;
}
// data.drive.used not accurate?
const percent = Math.round(((data.drive.size - data.drive.available) / data.drive.size) * 100);
return (
<div 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 pr-1">{t("common.bytes", { value: data.drive.available })}</div>
<div className="pr-1">{t("resources.free")}</div>
</span>
{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.drive.size })}</div>
<div className="pr-1">{t("resources.total")}</div>
</span>
)}
<UsageBar percent={percent} />
</div>
</div>
);
return <Resource
icon={FiHardDrive}
value={t("common.bytes", { value: data.drive.available })}
label={t("resources.free")}
expandedValue={t("common.bytes", { value: data.drive.size })}
expandedLabel={t("resources.total")}
percentage={percent}
expanded={expanded}
/>;
}

View File

@@ -1,75 +1,42 @@
import useSWR from "swr";
import { FaMemory } from "react-icons/fa";
import { BiError } from "react-icons/bi";
import { useTranslation } from "next-i18next";
import UsageBar from "./usage-bar";
import Resource from "../widget/resource";
import Error from "../widget/error";
export default function Memory({ expanded }) {
export default function Memory({ expanded, refresh = 1500 }) {
const { t } = useTranslation();
const { data, error } = useSWR(`/api/widgets/resources?type=memory`, {
refreshInterval: 1500,
refreshInterval: refresh,
});
if (error || data?.error) {
return (
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
<BiError className="text-theme-800 dark:text-theme-200 w-5 h-5" />
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-xs">{t("widget.api_error")}</span>
</div>
</div>
);
return <Error />
}
if (!data) {
return (
<div className="flex-none flex flex-row items-center mr-3 py-1.5 animate-pulse">
<FaMemory 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 pr-1">-</div>
<div className="pr-1">{t("resources.free")}</div>
</span>
{expanded && (
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5 pr-1">-</div>
<div className="pr-1">{t("resources.total")}</div>
</span>
)}
<UsageBar percent={0} />
</div>
</div>
);
return <Resource
icon={FaMemory}
value="-"
label={t("resources.free")}
expandedValue="-"
expandedLabel={t("resources.total")}
expanded={expanded}
percentage="0"
/>;
}
const percent = Math.round((data.memory.active / data.memory.total) * 100);
return (
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
<FaMemory 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 pr-1">
{t("common.bytes", { value: data.memory.available, maximumFractionDigits: 1, binary: true })}
</div>
<div className="pr-1">{t("resources.free")}</div>
</span>
{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.memory.total,
maximumFractionDigits: 1,
binary: true,
})}
</div>
<div className="pr-1">{t("resources.total")}</div>
</span>
)}
<UsageBar percent={percent} />
</div>
</div>
);
return <Resource
icon={FaMemory}
value={t("common.bytes", { value: data.memory.available, maximumFractionDigits: 1, binary: true })}
label={t("resources.free")}
expandedValue={t("common.bytes", { value: data.memory.total, maximumFractionDigits: 1, binary: true })}
expandedLabel={t("resources.total")}
percentage={percent}
expanded={expanded}
/>;
}

View File

@@ -1,3 +1,6 @@
import Container from "../widget/container";
import Raw from "../widget/raw";
import Disk from "./disk";
import Cpu from "./cpu";
import Memory from "./memory";
@@ -6,20 +9,23 @@ import Uptime from "./uptime";
export default function Resources({ options }) {
const { expanded, units } = options;
return (
<div className="flex flex-col max-w:full sm:basis-auto self-center grow-0 flex-wrap">
let { refresh } = options;
if (!refresh) refresh = 1500;
refresh = Math.max(refresh, 1000);
return <Container options={options}>
<Raw>
<div className="flex flex-row self-center flex-wrap justify-between">
{options.cpu && <Cpu expanded={expanded} />}
{options.memory && <Memory expanded={expanded} />}
{options.cpu && <Cpu expanded={expanded} refresh={refresh} />}
{options.memory && <Memory expanded={expanded} refresh={refresh} />}
{Array.isArray(options.disk)
? options.disk.map((disk) => <Disk key={disk} options={{ disk }} expanded={expanded} />)
: options.disk && <Disk options={options} expanded={expanded} />}
{options.cputemp && <CpuTemp expanded={expanded} units={units} />}
{options.uptime && <Uptime />}
? options.disk.map((disk) => <Disk key={disk} options={{ disk }} expanded={expanded} refresh={refresh} />)
: options.disk && <Disk options={options} expanded={expanded} refresh={refresh} />}
{options.cputemp && <CpuTemp expanded={expanded} units={units} refresh={refresh} />}
{options.uptime && <Uptime refresh={refresh} />}
</div>
{options.label && (
<div className="ml-6 pt-1 text-center text-theme-800 dark:text-theme-200 text-xs">{options.label}</div>
)}
</div>
);
</Raw>
</Container>;
}

View File

@@ -1,66 +1,36 @@
import useSWR from "swr";
import { FaRegClock } from "react-icons/fa";
import { BiError } from "react-icons/bi";
import { useTranslation } from "next-i18next";
import UsageBar from "./usage-bar";
import Resource from "../widget/resource";
import Error from "../widget/error";
export default function Uptime() {
export default function Uptime({ refresh = 1500 }) {
const { t } = useTranslation();
const { data, error } = useSWR(`/api/widgets/resources?type=uptime`, {
refreshInterval: 1500,
refreshInterval: refresh,
});
if (error || data?.error) {
return (
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
<BiError className="text-theme-800 dark:text-theme-200 w-5 h-5" />
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-xs">{t("widget.api_error")}</span>
</div>
</div>
);
return <Error />
}
if (!data) {
return (
<div className="flex-none flex flex-row items-center mr-3 py-1.5 animate-pulse">
<FaRegClock 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">-</div>
<div className="pr-1">{t("resources.temp")}</div>
</span>
</div>
</div>
);
return <Resource icon={FaRegClock} value="-" label={t("resources.uptime")} percentage="0" />;
}
const mo = Math.floor(data.uptime / (3600 * 24 * 31));
const d = Math.floor(data.uptime % (3600 * 24 * 31) / (3600 * 24));
const h = Math.floor(data.uptime % (3600 * 24) / 3600);
const m = Math.floor(data.uptime % 3600 / 60);
let uptime;
if (mo > 0) uptime = `${mo}${t("resources.months")} ${d}${t("resources.days")}`;
else if (d > 0) uptime = `${d}${t("resources.days")} ${h}${t("resources.hours")}`;
else uptime = `${h}${t("resources.hours")} ${m}${t("resources.minutes")}`;
const percent = Math.round((new Date().getSeconds() / 60) * 100);
const percent = Math.round((new Date().getSeconds() / 60) * 100).toString();
return (
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
<FaRegClock 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">
{uptime}
</div>
<div className="pr-1">{t("resources.uptime")}</div>
</span>
<UsageBar percent={percent} />
</div>
</div>
);
return <Resource icon={FaRegClock} value={uptime} label={t("resources.uptime")} percentage={percent} />;
}

View File

@@ -1,10 +1,13 @@
import { useState, useEffect, Fragment } from "react";
import { useState, useEffect, useCallback, Fragment } from "react";
import { useTranslation } from "next-i18next";
import { FiSearch } from "react-icons/fi";
import { SiDuckduckgo, SiMicrosoftbing, SiGoogle, SiBaidu, SiBrave } from "react-icons/si";
import { Listbox, Transition } from "@headlessui/react";
import classNames from "classnames";
import ContainerForm from "../widget/container_form";
import Raw from "../widget/raw";
export const searchProviders = {
google: {
name: "Google",
@@ -76,14 +79,9 @@ export default function Search({ options }) {
setSelectedProvider(storedProvider);
}
}, [availableProviderIds]);
if (!availableProviderIds) {
return null;
}
function handleSubmit(event) {
const submitCallback = useCallback(event => {
const q = encodeURIComponent(query);
const { url } = selectedProvider;
if (url) {
window.open(`${url}${q}`, options.target || "_blank");
@@ -94,6 +92,10 @@ export default function Search({ options }) {
event.preventDefault();
event.target.reset();
setQuery("");
}, [options.target, options.url, query, selectedProvider]);
if (!availableProviderIds) {
return null;
}
const onChangeProvider = (provider) => {
@@ -101,77 +103,79 @@ export default function Search({ options }) {
localStorage.setItem(localStorageKey, provider.name);
}
return (
<form className="flex-col relative h-8 my-4 min-w-fit grow first:ml-0 ml-4" onSubmit={handleSubmit}>
<div className="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none w-full text-theme-800 dark:text-white" />
<input
type="text"
className="
overflow-hidden w-full h-full rounded-md
text-xs text-theme-900 dark:text-white
placeholder-theme-900 dark:placeholder-white/80
bg-white/50 dark:bg-white/10
focus:ring-theme-500 dark:focus:ring-white/50
focus:border-theme-500 dark:focus:border-white/50
border border-theme-300 dark:border-theme-200/50"
placeholder={t("search.placeholder")}
onChange={(s) => setQuery(s.currentTarget.value)}
required
autoCapitalize="off"
autoCorrect="off"
autoComplete="off"
// eslint-disable-next-line jsx-a11y/no-autofocus
autoFocus={options.focus}
/>
<Listbox as="div" value={selectedProvider} onChange={onChangeProvider} className="relative text-left" disabled={availableProviderIds?.length === 1}>
<div>
<Listbox.Button
className="
absolute right-0.5 bottom-0.5 rounded-r-md px-4 py-2 border-1
text-white font-medium text-sm
bg-theme-600/40 dark:bg-white/10
focus:ring-theme-500 dark:focus:ring-white/50"
return <ContainerForm options={options} callback={submitCallback} additionalClassNames="grow" >
<Raw>
<div className="flex-col relative h-8 my-4 min-w-fit">
<div className="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none w-full text-theme-800 dark:text-white" />
<input
type="text"
className="
overflow-hidden w-full h-full rounded-md
text-xs text-theme-900 dark:text-white
placeholder-theme-900 dark:placeholder-white/80
bg-white/50 dark:bg-white/10
focus:ring-theme-500 dark:focus:ring-white/50
focus:border-theme-500 dark:focus:border-white/50
border border-theme-300 dark:border-theme-200/50"
placeholder={t("search.placeholder")}
onChange={(s) => setQuery(s.currentTarget.value)}
required
autoCapitalize="off"
autoCorrect="off"
autoComplete="off"
// eslint-disable-next-line jsx-a11y/no-autofocus
autoFocus={options.focus}
/>
<Listbox as="div" value={selectedProvider} onChange={onChangeProvider} className="relative text-left" disabled={availableProviderIds?.length === 1}>
<div>
<Listbox.Button
className="
absolute right-0.5 bottom-0.5 rounded-r-md px-4 py-2 border-1
text-white font-medium text-sm
bg-theme-600/40 dark:bg-white/10
focus:ring-theme-500 dark:focus:ring-white/50"
>
<selectedProvider.icon className="text-white w-3 h-3" />
<span className="sr-only">{t("search.search")}</span>
</Listbox.Button>
</div>
<Transition
as={Fragment}
enter="transition ease-out duration-100"
enterFrom="transform opacity-0 scale-95"
enterTo="transform opacity-100 scale-100"
leave="transition ease-in duration-75"
leaveFrom="transform opacity-100 scale-100"
leaveTo="transform opacity-0 scale-95"
>
<selectedProvider.icon className="text-white w-3 h-3" />
<span className="sr-only">{t("search.search")}</span>
</Listbox.Button>
</div>
<Transition
as={Fragment}
enter="transition ease-out duration-100"
enterFrom="transform opacity-0 scale-95"
enterTo="transform opacity-100 scale-100"
leave="transition ease-in duration-75"
leaveFrom="transform opacity-100 scale-100"
leaveTo="transform opacity-0 scale-95"
>
<Listbox.Options
className="absolute right-0 z-10 mt-1 origin-top-right rounded-md
bg-theme-100 dark:bg-theme-600 shadow-lg
ring-1 ring-black ring-opacity-5 focus:outline-none"
>
<div className="flex flex-col">
{availableProviderIds.map((providerId) => {
const p = searchProviders[providerId];
return (
<Listbox.Option key={providerId} value={p} as={Fragment}>
{({ active }) => (
<li
className={classNames(
"rounded-md cursor-pointer",
active ? "bg-theme-600/10 dark:bg-white/10 dark:text-gray-900" : "dark:text-gray-100"
)}
>
<p.icon className="h-4 w-4 mx-4 my-2" />
</li>
)}
</Listbox.Option>
);
})}
</div>
</Listbox.Options>
</Transition>
</Listbox>
</form>
);
<Listbox.Options
className="absolute right-0 z-10 mt-1 origin-top-right rounded-md
bg-theme-100 dark:bg-theme-600 shadow-lg
ring-1 ring-black ring-opacity-5 focus:outline-none"
>
<div className="flex flex-col">
{availableProviderIds.map((providerId) => {
const p = searchProviders[providerId];
return (
<Listbox.Option key={providerId} value={p} as={Fragment}>
{({ active }) => (
<li
className={classNames(
"rounded-md cursor-pointer",
active ? "bg-theme-600/10 dark:bg-white/10 dark:text-gray-900" : "dark:text-gray-100"
)}
>
<p.icon className="h-4 w-4 mx-4 my-2" />
</li>
)}
</Listbox.Option>
);
})}
</div>
</Listbox.Options>
</Transition>
</Listbox>
</div>
</Raw>
</ContainerForm>;
}

View File

@@ -3,6 +3,12 @@ import { MdSettingsEthernet } from "react-icons/md";
import { useTranslation } from "next-i18next";
import { SiUbiquiti } from "react-icons/si";
import Error from "../widget/error";
import Container from "../widget/container";
import Raw from "../widget/raw";
import WidgetIcon from "../widget/widget_icon";
import PrimaryText from "../widget/primary_text";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Widget({ options }) {
@@ -13,35 +19,16 @@ export default function Widget({ options }) {
const { data: statsData, error: statsError } = useWidgetAPI(options, "stat/sites", { index: options.index });
if (statsError) {
return (
<div className="flex flex-col justify-center first:ml-0 ml-4">
<div className="flex flex-row items-center justify-end">
<div className="flex flex-col items-center">
<BiError className="w-8 h-8 text-theme-800 dark:text-theme-200" />
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-sm">{t("widget.api_error")}</span>
</div>
</div>
</div>
</div>
);
return <Error options={options} />
}
const defaultSite = options.site ? statsData?.data.find(s => s.desc === options.site) : statsData?.data?.find(s => s.name === "default");
if (!defaultSite) {
return (
<div className="flex flex-col justify-center first:ml-0 ml-4">
<div className="flex flex-row items-center justify-end">
<div className="flex flex-col items-center">
<SiUbiquiti className="w-5 h-5 text-theme-800 dark:text-theme-200" />
</div>
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-xs">{t("unifi.wait")}</span>
</div>
</div>
</div>
);
return <Container options={options}>
<PrimaryText>{t("unifi.wait")}</PrimaryText>
<WidgetIcon icon={SiUbiquiti} />
</Container>;
}
const wan = defaultSite.health.find(h => h.subsystem === "wan");
@@ -56,8 +43,9 @@ export default function Widget({ options }) {
const dataEmpty = !(wan.show || lan.show || wlan.show || uptime);
return (
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
return <Container options={options}>
<Raw>
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
<div className="flex flex-col">
<div className="flex flex-row ml-3 mb-0.5">
<SiUbiquiti className="text-theme-800 dark:text-theme-200 w-3 h-3 mr-1" />
@@ -141,6 +129,7 @@ export default function Widget({ options }) {
</div>
</div>}
</div>
</div>
);
</div>
</Raw>
</Container>
}

View File

@@ -1,7 +0,0 @@
import mapIcon from "utils/weather/condition-map";
export default function Icon({ condition, timeOfDay }) {
const IconComponent = mapIcon(condition, timeOfDay);
return <IconComponent className="w-10 h-10 text-theme-800 dark:text-theme-200" />;
}

View File

@@ -1,11 +1,16 @@
import useSWR from "swr";
import { useState } from "react";
import { BiError } from "react-icons/bi";
import { WiCloudDown } from "react-icons/wi";
import { MdLocationDisabled, MdLocationSearching } from "react-icons/md";
import { useTranslation } from "next-i18next";
import Icon from "./icon";
import Error from "../widget/error";
import Container from "../widget/container";
import PrimaryText from "../widget/primary_text";
import SecondaryText from "../widget/secondary_text";
import WidgetIcon from "../widget/widget_icon";
import ContainerButton from "../widget/container_button";
import mapIcon from "../../../utils/weather/condition-map";
function Widget({ options }) {
const { t, i18n } = useTranslation();
@@ -15,59 +20,33 @@ function Widget({ options }) {
);
if (error || data?.error) {
return (
<div className="flex flex-col justify-center first:ml-0 ml-4 mr-2">
<div className="flex flex-row items-center justify-end">
<div className="flex flex-col items-center">
<BiError className="w-8 h-8 text-theme-800 dark:text-theme-200" />
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-sm">{t("widget.api_error")}</span>
<span className="text-theme-800 dark:text-theme-200 text-xs">-</span>
</div>
</div>
</div>
</div>
);
return <Error options={options} />
}
if (!data) {
return (
<div className="flex flex-col justify-center first:ml-0 ml-4 mr-2">
<div className="flex flex-row items-center justify-end">
<div className="flex flex-col items-center">
<WiCloudDown className="w-8 h-8 text-theme-800 dark:text-theme-200" />
</div>
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-sm">{t("weather.updating")}</span>
<span className="text-theme-800 dark:text-theme-200 text-xs">{t("weather.wait")}</span>
</div>
</div>
</div>
);
return <Container options={options}>
<PrimaryText>{t("weather.updating")}</PrimaryText>
<SecondaryText>{t("weather.wait")}</SecondaryText>
<WidgetIcon icon={WiCloudDown} size="l" />
</Container>;
}
const unit = options.units === "metric" ? "celsius" : "fahrenheit";
const condition = data.current.condition.code;
const timeOfDay = data.current.is_day ? "day" : "night";
return (
<div className="flex flex-col justify-center first:ml-0 ml-4 mr-2">
<div className="flex flex-row items-center justify-end">
<div className="flex flex-col items-center">
<Icon condition={data.current.condition.code} timeOfDay={data.current.is_day ? "day" : "night"} />
</div>
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-sm">
{options.label && `${options.label}, `}
{t("common.number", {
value: options.units === "metric" ? data.current.temp_c : data.current.temp_f,
style: "unit",
unit,
})}
</span>
<span className="text-theme-800 dark:text-theme-200 text-xs">{data.current.condition.text}</span>
</div>
</div>
</div>
);
return <Container options={options}>
<PrimaryText>
{options.label && `${options.label}, `}
{t("common.number", {
value: options.units === "metric" ? data.current.temp_c : data.current.temp_f,
style: "unit",
unit,
})}
</PrimaryText>
<SecondaryText>{data.current.condition.text}</SecondaryText>
<WidgetIcon icon={mapIcon(condition, timeOfDay)} size="xl" />
</Container>;
}
export default function WeatherApi({ options }) {
@@ -99,30 +78,12 @@ export default function WeatherApi({ options }) {
}
};
// if (!requesting && !location) requestLocation();
if (!location) {
return (
<button
type="button"
onClick={() => requestLocation()}
className="flex flex-col justify-center first:ml-0 ml-4 mr-2"
>
<div className="flex flex-row items-center justify-end">
<div className="flex flex-col items-center">
{requesting ? (
<MdLocationSearching className="w-6 h-6 text-theme-800 dark:text-theme-200 animate-pulse" />
) : (
<MdLocationDisabled className="w-6 h-6 text-theme-800 dark:text-theme-200" />
)}
</div>
<div className="flex flex-col ml-3 text-left">
<span className="text-theme-800 dark:text-theme-200 text-sm">{t("weather.current")}</span>
<span className="text-theme-800 dark:text-theme-200 text-xs">{t("weather.allow")}</span>
</div>
</div>
</button>
);
return <ContainerButton options={options} callback={requestLocation} >
<PrimaryText>{t("weather.current")}</PrimaryText>
<SecondaryText>{t("weather.allow")}</SecondaryText>
<WidgetIcon icon={requesting ? MdLocationSearching : MdLocationDisabled} size="m" pulse />
</ContainerButton>;
}
return <Widget options={{ ...location, ...options }} />;

View File

@@ -17,13 +17,13 @@ const widgetMappings = {
kubernetes: dynamic(() => import("components/widgets/kubernetes/kubernetes")),
};
export default function Widget({ widget }) {
export default function Widget({ widget, style }) {
const InfoWidget = widgetMappings[widget.type];
if (InfoWidget) {
return (
<ErrorBoundary>
<InfoWidget options={widget.options} />
<InfoWidget options={{ ...widget.options, style }} />
</ErrorBoundary>
);
}

View File

@@ -0,0 +1,54 @@
import classNames from "classnames";
import WidgetIcon from "./widget_icon";
import PrimaryText from "./primary_text";
import SecondaryText from "./secondary_text";
import Raw from "./raw";
export function getAllClasses(options, additionalClassNames = '') {
if (options?.style?.header === "boxedWidgets") {
return classNames(
"flex flex-col justify-center first:ml-0 ml-2 mr-2",
"mt-2 m:mb-0 rounded-md shadow-md shadow-theme-900/10 dark:shadow-theme-900/20 bg-theme-100/20 dark:bg-white/5 p-2 pl-3 pr-3",
additionalClassNames
);
}
let widgetAlignedClasses = "flex flex-col max-w:full sm:basis-auto self-center grow-0 flex-wrap";
if (options?.style?.isRightAligned) {
widgetAlignedClasses = "flex flex-col justify-center first:ml-auto ml-2 mr-2 ";
}
return classNames(
widgetAlignedClasses,
additionalClassNames
);
}
export function getInnerBlock(children) {
// children won't be an array if it's Raw component
return Array.isArray(children) && <div className="flex flex-row items-center justify-end">
<div className="flex flex-col items-center">{children.find(child => child.type === WidgetIcon)}</div>
<div className="flex flex-col ml-3 text-left">
{children.find(child => child.type === PrimaryText)}
{children.find(child => child.type === SecondaryText)}
</div>
</div>;
}
export function getBottomBlock(children) {
if (children.type !== Raw) {
return children.find(child => child.type === Raw) || [];
}
return [children];
}
export default function Container({ children = [], options, additionalClassNames = '' }) {
return (
<div className={getAllClasses(options, additionalClassNames)}>
{getInnerBlock(children)}
{getBottomBlock(children)}
</div>
);
}

View File

@@ -0,0 +1,10 @@
import { getAllClasses, getInnerBlock, getBottomBlock } from "./container";
export default function ContainerButton ({ children = [], options, additionalClassNames = '', callback }) {
return (
<button type="button" onClick={callback} className={getAllClasses(options, additionalClassNames)}>
{getInnerBlock(children)}
{getBottomBlock(children)}
</button>
);
}

View File

@@ -0,0 +1,10 @@
import { getAllClasses, getInnerBlock, getBottomBlock } from "./container";
export default function ContainerForm ({ children = [], options, additionalClassNames = '', callback }) {
return (
<form type="button" onSubmit={callback} className={getAllClasses(options, additionalClassNames)}>
{getInnerBlock(children)}
{getBottomBlock(children)}
</form>
);
}

View File

@@ -0,0 +1,10 @@
import { getAllClasses, getInnerBlock, getBottomBlock } from "./container";
export default function ContainerLink ({ children = [], options, additionalClassNames = '', target }) {
return (
<a href={options.url} target={target} className={getAllClasses(options, additionalClassNames)}>
{getInnerBlock(children)}
{getBottomBlock(children)}
</a>
);
}

View File

@@ -0,0 +1,15 @@
import { useTranslation } from "react-i18next";
import { BiError } from "react-icons/bi";
import Container from "./container";
import PrimaryText from "./primary_text";
import WidgetIcon from "./widget_icon";
export default function Error({ options }) {
const { t } = useTranslation();
return <Container options={options}>
<PrimaryText>{t("widget.api_error")}</PrimaryText>
<WidgetIcon icon={BiError} size="l" />
</Container>;
}

View File

@@ -0,0 +1,5 @@
export default function PrimaryText({ children }) {
return (
<span className="text-theme-800 dark:text-theme-200 text-sm">{children}</span>
);
}

View File

@@ -0,0 +1,7 @@
export default function Raw({ children }) {
if (children.type === Raw) {
return [children];
}
return children;
}

View File

@@ -0,0 +1,22 @@
import UsageBar from "../resources/usage-bar";
export default function Resource({ children, icon, value, label, expandedValue = "", expandedLabel = "", percentage, expanded = false }) {
const Icon = icon;
return <div className="flex-none flex flex-row items-center mr-3 py-1.5">
<Icon className="text-theme-800 dark:text-theme-200 w-5 h-5"/>
<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">{value}</div>
<div className="pr-1">{label}</div>
</div>
{ expanded && <div className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5">{expandedValue}</div>
<div className="pr-1">{expandedLabel}</div>
</div>
}
{ percentage >= 0 && <UsageBar percent={percentage} /> }
{ children }
</div>
</div>;
}

View File

@@ -0,0 +1,17 @@
import ContainerLink from "./container_link";
import Resource from "./resource";
import Raw from "./raw";
import WidgetLabel from "./widget_label";
export default function Resources({ options, children, target }) {
const widgetParts = [].concat(...children);
return <ContainerLink options={options} target={target}>
<Raw>
<div className="flex flex-row self-center flex-wrap justify-between">
{ widgetParts.filter(child => child && child.type === Resource) }
</div>
{ widgetParts.filter(child => child && child.type === WidgetLabel) }
</Raw>
</ContainerLink>;
}

View File

@@ -0,0 +1,5 @@
export default function SecondaryText({ children }) {
return (
<span className="text-theme-800 dark:text-theme-200 text-xs">{children}</span>
);
}

View File

@@ -0,0 +1,17 @@
export default function WidgetIcon({ icon, size = "s", pulse = false }) {
const Icon = icon;
let additionalClasses = "text-theme-800 dark:text-theme-200 ";
switch (size) {
case "m": additionalClasses += "w-6 h-6 "; break;
case "l": additionalClasses += "w-8 h-8 "; break;
case "xl": additionalClasses += "w-10 h-10 "; break;
default: additionalClasses += "w-5 h-5 ";
}
if (pulse) {
additionalClasses += "animate-pulse ";
}
return <Icon className={additionalClasses} />;
}

View File

@@ -0,0 +1,3 @@
export default function WidgetLabel({ label = "" }) {
return <div className="pt-1 text-center text-theme-800 dark:text-theme-200 text-xs">{label}</div>
}

View File

@@ -2,7 +2,7 @@ import { join } from "path";
import { createHash } from "crypto";
import { readFileSync } from "fs";
import checkAndCopyConfig from "utils/config/config";
import checkAndCopyConfig, { CONF_DIR } from "utils/config/config";
const configs = ["docker.yaml", "settings.yaml", "services.yaml", "bookmarks.yaml", "widgets.yaml"];
@@ -15,7 +15,7 @@ function hash(buffer) {
export default async function handler(req, res) {
const hashes = configs.map((config) => {
checkAndCopyConfig(config);
const configYaml = join(process.cwd(), "config", config);
const configYaml = join(CONF_DIR, config);
return hash(readFileSync(configYaml, "utf8"));
});

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

@@ -22,6 +22,7 @@ export default async function handler(req, res) {
if (widget?.mappings) {
const mapping = widget?.mappings?.[req.query.endpoint];
const mappingParams = mapping?.params;
const optionalParams = mapping?.optionalParams;
const map = mapping?.map;
const endpoint = mapping?.endpoint;
const endpointProxy = mapping?.proxyHandler || serviceProxyHandler;
@@ -40,9 +41,17 @@ export default async function handler(req, res) {
req.query.endpoint = formatApiCall(endpoint, segments);
}
if (req.query.query && mappingParams) {
if (req.query.query && (mappingParams || optionalParams)) {
const queryParams = JSON.parse(req.query.query);
const query = new URLSearchParams(mappingParams.map((p) => [p, queryParams[p]]));
let filteredOptionalParams = []
if (optionalParams) filteredOptionalParams = optionalParams.filter(p => queryParams[p] !== undefined);
let params = [];
if (mappingParams) params = params.concat(mappingParams);
if (filteredOptionalParams) params = params.concat(filteredOptionalParams);
const query = new URLSearchParams(params.map((p) => [p, queryParams[p]]));
req.query.endpoint = `${req.query.endpoint}?${query}`;
}

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

@@ -46,7 +46,7 @@ function parseLonghornData(data) {
export default async function handler(req, res) {
const settings = getSettings();
const longhornSettings = settings?.providers?.longhorn;
const longhornSettings = settings?.providers?.longhorn || {};
const {url, username, password} = longhornSettings;
if (!url) {

View File

@@ -160,6 +160,7 @@ const headerStyles = {
"m-4 mb-0 sm:m-8 sm:mb-0 rounded-md shadow-md shadow-theme-900/10 dark:shadow-theme-900/20 bg-theme-100/20 dark:bg-white/5 p-3",
underlined: "m-4 mb-0 sm:m-8 sm:mb-1 border-b-2 pb-4 border-theme-800 dark:border-theme-200/50",
clean: "m-4 mb-0 sm:m-8 sm:mb-0",
boxedWidgets: "m-4 mb-0 sm:m-8 sm:mb-0 sm:mt-1",
};
function Home({ initialSettings }) {
@@ -208,6 +209,7 @@ function Home({ initialSettings }) {
searchProvider = searchProviders[searchWidget.options?.provider];
}
}
const headerStyle = initialSettings?.headerStyle || "underlined";
useEffect(() => {
function handleKeyDown(e) {
@@ -252,11 +254,11 @@ 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",
headerStyles[initialSettings.headerStyle || "underlined"]
headerStyles[headerStyle]
)}
>
<QuickLaunch
@@ -272,14 +274,17 @@ function Home({ initialSettings }) {
{widgets
.filter((widget) => !rightAlignedWidgets.includes(widget.type))
.map((widget, i) => (
<Widget key={i} widget={widget} />
<Widget key={i} widget={widget} style={{ header: headerStyle, isRightAligned: false}} />
))}
<div className="m-auto sm:ml-2 flex flex-wrap grow sm:basis-auto justify-between md:justify-end">
<div className={classNames(
"m-auto flex flex-wrap grow sm:basis-auto justify-between md:justify-end",
headerStyle === "boxedWidgets" ? "sm:ml-4" : "sm:ml-2"
)}>
{widgets
.filter((widget) => rightAlignedWidgets.includes(widget.type))
.map((widget, i) => (
<Widget key={i} widget={widget} />
<Widget key={i} widget={widget} style={{ header: headerStyle, isRightAligned: true}} />
))}
</div>
</>
@@ -289,7 +294,13 @@ function Home({ initialSettings }) {
{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}
disableCollapse={settings.disableCollapse} />
))}
</div>
)}
@@ -297,19 +308,24 @@ function Home({ initialSettings }) {
{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} />
<BookmarksGroup
key={group.name}
group={group}
disableCollapse={settings.disableCollapse} />
))}
</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>
</>
@@ -357,8 +373,9 @@ export default function Wrapper({ initialSettings, fallback }) {
style={wrappedStyle}
>
<div
id="inner_wrapper"
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}`,

Some files were not shown because too many files have changed in this diff Show More