Compare commits

..

666 Commits

Author SHA1 Message Date
shamoon
6046f7911e Merge pull request #1519 from theshaun/main
QNAP plugin, fix key expiry issue
2023-05-19 13:28:23 -07:00
shamoon
a9d3873579 QNAP widget make sure re-auth status = 200 2023-05-19 12:45:32 -07:00
theshaun
d402be2b78 clean up 2023-05-19 12:45:32 -07:00
theshaun
2ca46b595b Fix issue with key expiring and not updating correctly 2023-05-19 12:45:32 -07:00
theshaun
db2481cf0e Re-order container blocks to ensure defaults show 2023-05-19 12:45:32 -07:00
theshaun
865206802c rename cpu to load in default block 2023-05-19 12:45:32 -07:00
theshaun
668779ede1 remove a line 2023-05-19 12:45:32 -07:00
theshaun
1ca2407256 Fix linting issues 2023-05-19 12:45:32 -07:00
theshaun
3240b7a169 Add support for pfSense API 2023-05-19 12:45:32 -07:00
shamoon
4aeb3882af Merge pull request #1522 from benphelps/fix/issue-1521
Fix: Include backdrop classes in css build
2023-05-19 12:32:52 -07:00
shamoon
54ccd7ffb0 Include backdrop classes in css build 2023-05-19 12:32:18 -07:00
Andrej Kralj
411e24ef94 Translated using Weblate (Slovenian)
Currently translated at 100.0% (451 of 451 strings)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* changed units

* bugfix changed first value to pvPower insted of homePower

* deleted proxy.js

* delted battary label and german translation

* Code style changes to evcc widget

---------

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* Fix linting issues

* remove a line

* rename cpu to load in default block

* Re-order container blocks to ensure defaults show

* simplify pfsense widget, rename, limit blocks

---------

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* update pi-hole percentage

---------

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* finished tailscale widget

* Consolidated date comparison to it's own function

* Modified to follow Airbnb's style guide

* Removed refresh and added translations

* fix some tailscale translation strings

---------

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* Support "deprecated fields" for nextcloud widget

* Move to explicit checks

* Way more explicit render rules

---------

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

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

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

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

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

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

Co-Authored-By: David <davidsmejia@gmail.com>
2023-05-01 19:54:33 -07:00
shamoon
dcb9d9e45c Merge pull request #1443 from davidsmejia/davidsmejia/fix-service-group-icons
fallback for --tw-text-opacity
2023-05-01 15:06:30 -07:00
davidsmejia
1de940dd90 fallback for --tw-text-opacity 2023-05-01 17:58:01 -04:00
shamoon
6867258449 Fix overflow non-square icons 2023-05-01 11:29:35 -07:00
David
f692e71991 Add Support for Simple Icons + Add optional theme colors for icons (#1438)
* add support for simple-icons si- prefix

* add iconStyle setting

* lowercase comment

* add supported prefix comment

* Apply suggestions from code review

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>

---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2023-05-01 11:06:05 -07:00
shamoon
f4ffc2d29b Merge pull request #1437 from GAntoine/hide-widget-on-error-setting
Add setting to hide widgets on failure
2023-05-01 08:18:36 -07:00
Tirarex
8141f38807 Translated using Weblate (Russian)
Currently translated at 64.8% (269 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-05-01 08:11:49 +02:00
Jag_k
c3e57f7235 Translated using Weblate (Russian)
Currently translated at 64.8% (269 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-05-01 08:11:49 +02:00
Игорь Бесчастнов
9913bfb31b Translated using Weblate (Russian)
Currently translated at 31.0% (129 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-05-01 07:34:51 +02:00
Tirarex
ac331f51d8 Translated using Weblate (Russian)
Currently translated at 31.0% (129 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-05-01 07:34:51 +02:00
Jag_k
9aeb392197 Translated using Weblate (Russian)
Currently translated at 31.0% (129 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-05-01 07:34:51 +02:00
Georges-Antoine Assi
bd1c2b1881 Add setting to hide widgets on failure 2023-04-30 19:09:37 -04:00
Dan
8600718c1d Translated using Weblate (Ukrainian)
Currently translated at 100.0% (415 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-04-30 16:50:59 +02:00
Milo Ivir
f1a1bc573e Translated using Weblate (Croatian)
Currently translated at 100.0% (415 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-04-30 16:50:59 +02:00
Juan Manuel Bennàssar Carretero
cf466f2f8f Translated using Weblate (Catalan)
Currently translated at 63.1% (262 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-04-30 16:50:58 +02:00
饶方瞳
9c2db44226 Translated using Weblate (Chinese (Simplified))
Currently translated at 98.5% (409 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-04-30 16:50:58 +02:00
Nonoss117
1f89c6e699 Translated using Weblate (French)
Currently translated at 100.0% (415 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-04-30 16:50:58 +02:00
gallegonovato
1a7dd88a41 Translated using Weblate (Spanish)
Currently translated at 100.0% (415 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-04-30 16:50:57 +02:00
shamoon
eb8229b75c Merge pull request #1433 from CiyLei/docker_multiple_names
solving docker multiple names
2023-04-30 07:12:37 -07:00
Ciy
1b34db1109 solving docker multiple names 2023-04-30 14:45:27 +08:00
shamoon
3d654e03c6 Update CONTRIBUTING.md 2023-04-27 14:29:11 -07:00
Anonymous
863fd797a2 Translated using Weblate (Slovenian)
Currently translated at 99.2% (412 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-04-27 20:23:43 +02:00
Anonymous
f320f1a9fc Translated using Weblate (Greek)
Currently translated at 26.5% (110 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-04-27 20:23:43 +02:00
Anonymous
d078a72a0b Translated using Weblate (Korean)
Currently translated at 41.9% (174 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-04-27 20:23:42 +02:00
Anonymous
86d14e3617 Translated using Weblate (Slovak)
Currently translated at 2.1% (9 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-04-27 20:23:42 +02:00
Anonymous
2626429159 Translated using Weblate (Thai)
Currently translated at 11.3% (47 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-04-27 20:23:42 +02:00
Anonymous
b5098f6a9d Translated using Weblate (Latvian)
Currently translated at 28.6% (119 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-04-27 20:23:41 +02:00
Anonymous
c78275bac5 Translated using Weblate (Japanese)
Currently translated at 3.6% (15 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-04-27 20:23:41 +02:00
Anonymous
ca03b3e829 Translated using Weblate (Ukrainian)
Currently translated at 99.5% (413 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-04-27 20:23:41 +02:00
Anonymous
ce4535077b Translated using Weblate (Esperanto)
Currently translated at 35.4% (147 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-04-27 20:23:40 +02:00
Anonymous
010d643a0b Translated using Weblate (Hindi)
Currently translated at 2.1% (9 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-04-27 20:23:40 +02:00
Anonymous
b038e857ee Translated using Weblate (Malay)
Currently translated at 60.9% (253 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-04-27 20:23:40 +02:00
Anonymous
fb344c546c Translated using Weblate (Danish)
Currently translated at 47.7% (198 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-04-27 20:23:39 +02:00
Anonymous
49284289e6 Translated using Weblate (Czech)
Currently translated at 94.4% (392 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-04-27 20:23:39 +02:00
Anonymous
095061ab1b Translated using Weblate (Arabic)
Currently translated at 63.1% (262 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-04-27 20:23:39 +02:00
Anonymous
7d9da4f6e2 Translated using Weblate (Serbian)
Currently translated at 2.1% (9 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-04-27 20:23:38 +02:00
Anonymous
f21df70a68 Translated using Weblate (Turkish)
Currently translated at 76.3% (317 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-04-27 20:23:35 +02:00
Anonymous
85ba5fde70 Translated using Weblate (Bulgarian)
Currently translated at 11.0% (46 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-04-27 20:23:34 +02:00
Anonymous
b323ba6561 Translated using Weblate (Telugu)
Currently translated at 52.2% (217 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-04-27 20:23:31 +02:00
Anonymous
a5ed55e723 Translated using Weblate (Finnish)
Currently translated at 42.8% (178 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-04-27 20:23:26 +02:00
Anonymous
2b2a001d7c Translated using Weblate (Yue (Traditional))
Currently translated at 28.4% (118 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-04-27 20:23:26 +02:00
Anonymous
0146872514 Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.8% (406 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-04-27 20:23:25 +02:00
Anonymous
73c03a21e1 Translated using Weblate (Romanian)
Currently translated at 36.3% (151 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-04-27 20:23:25 +02:00
Anonymous
9e29be6445 Translated using Weblate (Hebrew)
Currently translated at 24.3% (101 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-04-27 20:23:16 +02:00
Anonymous
e44faf6e9b Translated using Weblate (Hungarian)
Currently translated at 26.0% (108 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-04-27 20:23:16 +02:00
Anonymous
72215b115b Translated using Weblate (Croatian)
Currently translated at 99.2% (412 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-04-27 20:23:15 +02:00
Anonymous
d8d3e199d3 Translated using Weblate (Swedish)
Currently translated at 31.8% (132 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-04-27 20:23:15 +02:00
Anonymous
a04efd512e Translated using Weblate (Polish)
Currently translated at 70.3% (292 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-04-27 20:23:15 +02:00
Anonymous
99163f63cd Translated using Weblate (Catalan)
Currently translated at 62.6% (260 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-04-27 20:23:14 +02:00
Anonymous
3836ae31c8 Translated using Weblate (Chinese (Traditional))
Currently translated at 86.5% (359 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-04-27 20:23:14 +02:00
Anonymous
88a2f213a1 Translated using Weblate (Dutch)
Currently translated at 58.3% (242 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-04-27 20:23:14 +02:00
Anonymous
14957bed15 Translated using Weblate (Vietnamese)
Currently translated at 10.6% (44 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-04-27 20:23:13 +02:00
Anonymous
19d227db28 Translated using Weblate (Norwegian Bokmål)
Currently translated at 19.0% (79 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-04-27 20:23:13 +02:00
Anonymous
7213912ab3 Translated using Weblate (Italian)
Currently translated at 69.3% (288 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-04-27 20:23:13 +02:00
Anonymous
943b405fca Translated using Weblate (Chinese (Simplified))
Currently translated at 96.3% (400 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-04-27 20:23:12 +02:00
Anonymous
76d386c417 Translated using Weblate (Russian)
Currently translated at 11.5% (48 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-04-27 20:23:12 +02:00
Anonymous
83771e53c4 Translated using Weblate (Portuguese)
Currently translated at 97.8% (406 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-04-27 20:23:12 +02:00
Anonymous
274f78312b Translated using Weblate (French)
Currently translated at 99.5% (413 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-04-27 20:23:07 +02:00
Anonymous
550336957d Translated using Weblate (Spanish)
Currently translated at 99.5% (413 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-04-27 20:23:06 +02:00
Anonymous
e7ed506346 Translated using Weblate (German)
Currently translated at 87.4% (363 of 415 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-04-27 20:23:06 +02:00
Dan
025db434a9 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (413 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-04-27 20:22:31 +02:00
Juan Manuel Bennàssar Carretero
22bb5471a1 Translated using Weblate (Catalan)
Currently translated at 62.9% (260 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-04-27 20:22:31 +02:00
Juan Manuel Bennàssar Carretero
9d8768f4a7 Translated using Weblate (Spanish)
Currently translated at 100.0% (413 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-04-27 20:22:31 +02:00
Richy HBM
f4f58409a2 Add Whats Up Docker widget (#1150)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2023-04-27 11:21:57 -07:00
shamoon
dc3019da80 Merge pull request #1419 from juanmanuelbc/mb
Fix: align services and widgets
2023-04-27 02:24:04 -07:00
Anonymous
adab1734fc Translated using Weblate (Slovenian)
Currently translated at 99.7% (412 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-04-27 11:23:14 +02:00
Anonymous
3549dfe1da Translated using Weblate (Greek)
Currently translated at 26.6% (110 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-04-27 11:23:14 +02:00
Anonymous
1afcc32ee3 Translated using Weblate (Korean)
Currently translated at 42.1% (174 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-04-27 11:23:13 +02:00
Anonymous
72af36b761 Translated using Weblate (Slovak)
Currently translated at 2.1% (9 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-04-27 11:23:13 +02:00
Anonymous
e7e71fd05d Translated using Weblate (Thai)
Currently translated at 11.3% (47 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-04-27 11:23:13 +02:00
Anonymous
db9638654e Translated using Weblate (Latvian)
Currently translated at 28.8% (119 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-04-27 11:23:13 +02:00
Anonymous
308257fad9 Translated using Weblate (Japanese)
Currently translated at 3.6% (15 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-04-27 11:23:12 +02:00
Anonymous
f44b83913b Translated using Weblate (Ukrainian)
Currently translated at 99.7% (412 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-04-27 11:23:12 +02:00
Anonymous
efaf2d87fb Translated using Weblate (Esperanto)
Currently translated at 35.5% (147 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-04-27 11:23:12 +02:00
Anonymous
dc9d984251 Translated using Weblate (Hindi)
Currently translated at 2.1% (9 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-04-27 11:23:11 +02:00
Anonymous
46a2706c6c Translated using Weblate (Malay)
Currently translated at 61.2% (253 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-04-27 11:23:11 +02:00
Anonymous
9899bb5ef7 Translated using Weblate (Danish)
Currently translated at 47.9% (198 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-04-27 11:23:11 +02:00
Anonymous
91f0cdfdca Translated using Weblate (Czech)
Currently translated at 94.9% (392 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-04-27 11:23:10 +02:00
Anonymous
660cbcba64 Translated using Weblate (Arabic)
Currently translated at 63.4% (262 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-04-27 11:23:10 +02:00
Anonymous
a05fba0bae Translated using Weblate (Serbian)
Currently translated at 2.1% (9 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-04-27 11:23:10 +02:00
Anonymous
3e80b0e6dc Translated using Weblate (Turkish)
Currently translated at 76.7% (317 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-04-27 11:23:09 +02:00
Anonymous
d2a3bf7227 Translated using Weblate (Bulgarian)
Currently translated at 11.1% (46 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-04-27 11:23:09 +02:00
Anonymous
e9d633a7f4 Translated using Weblate (Telugu)
Currently translated at 52.5% (217 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-04-27 11:23:09 +02:00
Anonymous
0e4c63f8d3 Translated using Weblate (Finnish)
Currently translated at 43.0% (178 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-04-27 11:23:08 +02:00
Anonymous
d12ee3eb46 Translated using Weblate (Yue (Traditional))
Currently translated at 28.5% (118 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-04-27 11:23:08 +02:00
Anonymous
97dbc6412f Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.3% (406 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-04-27 11:23:07 +02:00
Anonymous
042d3640d7 Translated using Weblate (Romanian)
Currently translated at 36.5% (151 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-04-27 11:23:07 +02:00
Anonymous
878ceebecb Translated using Weblate (Hebrew)
Currently translated at 24.4% (101 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-04-27 11:23:07 +02:00
Anonymous
21b8166a7a Translated using Weblate (Hungarian)
Currently translated at 26.1% (108 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-04-27 11:23:06 +02:00
Anonymous
99afd9af8b Translated using Weblate (Croatian)
Currently translated at 99.7% (412 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-04-27 11:23:06 +02:00
Anonymous
c197d67fb9 Translated using Weblate (Swedish)
Currently translated at 31.9% (132 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-04-27 11:23:06 +02:00
Anonymous
f9a4fedb6a Translated using Weblate (Polish)
Currently translated at 70.7% (292 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-04-27 11:23:05 +02:00
Anonymous
a458561d58 Translated using Weblate (Catalan)
Currently translated at 62.7% (259 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-04-27 11:23:05 +02:00
Anonymous
51a0ee4882 Translated using Weblate (Chinese (Traditional))
Currently translated at 86.9% (359 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-04-27 11:23:05 +02:00
Anonymous
8b8238d672 Translated using Weblate (Dutch)
Currently translated at 58.5% (242 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-04-27 11:23:04 +02:00
Anonymous
eaa76cd61a Translated using Weblate (Vietnamese)
Currently translated at 10.6% (44 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-04-27 11:23:04 +02:00
Anonymous
7ad47f005b Translated using Weblate (Norwegian Bokmål)
Currently translated at 19.1% (79 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-04-27 11:23:04 +02:00
Anonymous
00ee97aad3 Translated using Weblate (Italian)
Currently translated at 69.7% (288 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-04-27 11:23:03 +02:00
Anonymous
c9eef883d2 Translated using Weblate (Chinese (Simplified))
Currently translated at 96.8% (400 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-04-27 11:23:03 +02:00
Anonymous
b9d16c8383 Translated using Weblate (Russian)
Currently translated at 11.6% (48 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-04-27 11:23:03 +02:00
Anonymous
71adb8eb83 Translated using Weblate (Portuguese)
Currently translated at 98.3% (406 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-04-27 11:23:02 +02:00
Anonymous
a8ef543934 Translated using Weblate (French)
Currently translated at 99.7% (412 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-04-27 11:23:02 +02:00
Anonymous
c9c8625a74 Translated using Weblate (Spanish)
Currently translated at 99.7% (412 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-04-27 11:23:01 +02:00
Anonymous
b64a94e7de Translated using Weblate (German)
Currently translated at 87.8% (363 of 413 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-04-27 11:23:01 +02:00
shamoon
abe8b3a5ee Merge pull request #1418 from juanmanuelbc/plex_albums
Feature: add albums to Plex service widget
2023-04-27 02:19:31 -07:00
shamoon
9de376d51c simplify plex music logic 2023-04-27 02:12:21 -07:00
Juan Manuel Bennàssar Carretero
3e02823980 Fix: align services and widgets 2023-04-27 11:04:45 +02:00
Juan Manuel Bennàssar Carretero
de11f81234 Feature: add albums to Plex service widget 2023-04-27 10:12:12 +02:00
Andrej Kralj
830d4687cd Translated using Weblate (Slovenian)
Currently translated at 100.0% (412 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-04-25 14:48:12 +02:00
Dan
df6058967f Translated using Weblate (Ukrainian)
Currently translated at 100.0% (412 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-04-25 14:48:11 +02:00
shamoon
cf3fc1d64b Merge pull request #1405 from ervwalter/square-icons
force icons to fit withing a 32x32 square
2023-04-23 21:15:59 -07:00
Andrej Kralj
8cc36a2fb4 Translated using Weblate (Slovenian)
Currently translated at 28.1% (116 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-04-23 18:48:28 +02:00
Erv Walter
5080301efe force icons to fit withing a 32x32 square 2023-04-23 16:12:08 +00:00
shamoon
0313140d5b Merge pull request #1401 from mynameisbogdan/prowlarr-grabs 2023-04-22 09:09:17 -07:00
Milo Ivir
415d846c40 Translated using Weblate (Croatian)
Currently translated at 100.0% (412 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-04-22 16:48:45 +02:00
Nonoss117
5182dad983 Translated using Weblate (French)
Currently translated at 100.0% (412 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-04-22 16:48:45 +02:00
gallegonovato
ef942c1485 Translated using Weblate (Spanish)
Currently translated at 100.0% (412 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-04-22 16:48:44 +02:00
Bogdan
08edae7713 Fix grabs data for Prowlarr 2023-04-22 09:31:35 +03:00
shamoon
dd6a870998 Try to get unique name for service item key and in quicklaunch 2023-04-21 17:55:35 -07:00
shamoon
26b78641d4 Merge pull request #1397 from benphelps/fix/issue-1395
Fix: quick launch services show as bookmarks
2023-04-21 08:56:56 -07:00
shamoon
b5ada5ef11 Add type field to services from api 2023-04-21 08:50:15 -07:00
Anonymous
9b21adbf39 Translated using Weblate (Slovenian)
Currently translated at 24.7% (102 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-04-20 20:58:14 +02:00
Anonymous
9f6639d63e Translated using Weblate (Greek)
Currently translated at 26.6% (110 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-04-20 20:58:13 +02:00
Anonymous
19947b7a74 Translated using Weblate (Korean)
Currently translated at 42.2% (174 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-04-20 20:58:12 +02:00
Anonymous
dd02b1675b Translated using Weblate (Slovak)
Currently translated at 2.1% (9 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-04-20 20:58:12 +02:00
Anonymous
db7d987f6c Translated using Weblate (Thai)
Currently translated at 11.4% (47 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-04-20 20:58:11 +02:00
Anonymous
41013f5ba3 Translated using Weblate (Latvian)
Currently translated at 28.8% (119 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-04-20 20:58:11 +02:00
Anonymous
bbe6779a0e Translated using Weblate (Japanese)
Currently translated at 3.6% (15 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-04-20 20:58:11 +02:00
Anonymous
8104d12674 Translated using Weblate (Ukrainian)
Currently translated at 98.5% (406 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-04-20 20:58:10 +02:00
Anonymous
657e3d30be Translated using Weblate (Esperanto)
Currently translated at 35.6% (147 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-04-20 20:58:10 +02:00
Anonymous
1372befc72 Translated using Weblate (Hindi)
Currently translated at 2.1% (9 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-04-20 20:58:10 +02:00
Anonymous
39a44a4266 Translated using Weblate (Malay)
Currently translated at 61.4% (253 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-04-20 20:58:09 +02:00
Anonymous
c6e4db338a Translated using Weblate (Danish)
Currently translated at 48.0% (198 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-04-20 20:58:09 +02:00
Anonymous
6976d9a7e3 Translated using Weblate (Czech)
Currently translated at 95.1% (392 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-04-20 20:58:09 +02:00
Anonymous
3a26d99029 Translated using Weblate (Arabic)
Currently translated at 63.5% (262 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-04-20 20:58:08 +02:00
Anonymous
c65c4d0780 Translated using Weblate (Serbian)
Currently translated at 2.1% (9 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-04-20 20:58:08 +02:00
Anonymous
1770599ef7 Translated using Weblate (Turkish)
Currently translated at 76.9% (317 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-04-20 20:58:07 +02:00
Anonymous
f5d39dd993 Translated using Weblate (Bulgarian)
Currently translated at 11.1% (46 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-04-20 20:58:07 +02:00
Anonymous
50083334d6 Translated using Weblate (Telugu)
Currently translated at 52.6% (217 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-04-20 20:58:06 +02:00
Anonymous
ccc0fa5b03 Translated using Weblate (Finnish)
Currently translated at 43.2% (178 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-04-20 20:58:06 +02:00
Anonymous
043ed57bbe Translated using Weblate (Yue (Traditional))
Currently translated at 28.6% (118 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-04-20 20:58:05 +02:00
Anonymous
a007e12c0f Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.5% (406 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-04-20 20:58:05 +02:00
Anonymous
88efb402c5 Translated using Weblate (Romanian)
Currently translated at 36.6% (151 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-04-20 20:58:04 +02:00
Anonymous
b93605d8e3 Translated using Weblate (Hebrew)
Currently translated at 24.5% (101 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-04-20 20:58:04 +02:00
Anonymous
5be4743507 Translated using Weblate (Hungarian)
Currently translated at 26.2% (108 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-04-20 20:58:03 +02:00
Anonymous
adb394ade6 Translated using Weblate (Croatian)
Currently translated at 99.0% (408 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-04-20 20:58:03 +02:00
Anonymous
d7374384ad Translated using Weblate (Swedish)
Currently translated at 32.0% (132 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-04-20 20:58:02 +02:00
Anonymous
bc964c853a Translated using Weblate (Polish)
Currently translated at 70.8% (292 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-04-20 20:58:02 +02:00
Anonymous
ba350f438b Translated using Weblate (Catalan)
Currently translated at 62.8% (259 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-04-20 20:58:02 +02:00
Anonymous
6c0dc966af Translated using Weblate (Chinese (Traditional))
Currently translated at 87.1% (359 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-04-20 20:58:01 +02:00
Anonymous
ce370ea2ce Translated using Weblate (Dutch)
Currently translated at 58.7% (242 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-04-20 20:58:01 +02:00
Anonymous
0d823c707d Translated using Weblate (Vietnamese)
Currently translated at 10.6% (44 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-04-20 20:58:00 +02:00
Anonymous
9807e38a54 Translated using Weblate (Norwegian Bokmål)
Currently translated at 19.1% (79 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-04-20 20:58:00 +02:00
Anonymous
808acb9751 Translated using Weblate (Italian)
Currently translated at 69.9% (288 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-04-20 20:58:00 +02:00
Anonymous
791d84d714 Translated using Weblate (Chinese (Simplified))
Currently translated at 97.0% (400 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-04-20 20:57:59 +02:00
Anonymous
7b04263e2b Translated using Weblate (Russian)
Currently translated at 11.6% (48 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-04-20 20:57:59 +02:00
Anonymous
57dea7593e Translated using Weblate (Portuguese)
Currently translated at 98.5% (406 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-04-20 20:57:58 +02:00
Anonymous
e5d9eae9f1 Translated using Weblate (French)
Currently translated at 99.0% (408 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-04-20 20:57:58 +02:00
Anonymous
3e00793907 Translated using Weblate (Spanish)
Currently translated at 99.0% (408 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-04-20 20:57:57 +02:00
Anonymous
af6198737b Translated using Weblate (German)
Currently translated at 88.1% (363 of 412 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-04-20 20:57:57 +02:00
Milo Ivir
91cd423e5b Translated using Weblate (Croatian)
Currently translated at 100.0% (408 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-04-20 20:55:58 +02:00
Juan Manuel Bennàssar Carretero
e4b0e9dc37 Translated using Weblate (Catalan)
Currently translated at 63.4% (259 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-04-20 20:55:58 +02:00
Nonoss117
876e6c4040 Translated using Weblate (French)
Currently translated at 100.0% (408 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-04-20 20:55:58 +02:00
gallegonovato
541d2c1f8b Translated using Weblate (Spanish)
Currently translated at 100.0% (408 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-04-20 20:55:58 +02:00
Juan Manuel Bennàssar Carretero
30fccfe8b7 Translated using Weblate (Spanish)
Currently translated at 100.0% (408 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-04-20 20:55:58 +02:00
shamoon
7b697a88de Merge pull request #1384 from fancybits/add-channels
Add Channels DVR Server widget
2023-04-20 11:55:51 -07:00
shamoon
656cb4ba30 Merge pull request #1383 from mcclurec/transmission-rpc-url
Allow setting rpcUrl path for Transmission widget
2023-04-20 10:09:50 -07:00
Jon Maddox
3acbdda45e add Channels DVR Server widget 2023-04-19 16:24:02 -04:00
Colin
66dabe9872 Allow setting Transmission rpcUrl 2023-04-19 11:08:18 -07:00
shamoon
0904776971 Merge pull request #1380 from benphelps/feature/background-filters
Feature: support blur, saturation & brightness filters for background images
2023-04-19 08:30:18 -07:00
Anonymous
9dbce59417 Translated using Weblate (Slovenian)
Currently translated at 25.0% (102 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-04-19 17:28:35 +02:00
Anonymous
7b82dfc4be Translated using Weblate (Greek)
Currently translated at 26.9% (110 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-04-19 17:28:35 +02:00
Anonymous
dca8996285 Translated using Weblate (Korean)
Currently translated at 42.6% (174 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-04-19 17:28:34 +02:00
Anonymous
4452ca77d8 Translated using Weblate (Slovak)
Currently translated at 2.2% (9 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-04-19 17:28:34 +02:00
Anonymous
03197f2eb2 Translated using Weblate (Thai)
Currently translated at 11.5% (47 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-04-19 17:28:34 +02:00
Anonymous
fef65e8440 Translated using Weblate (Latvian)
Currently translated at 29.1% (119 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-04-19 17:28:33 +02:00
Anonymous
27805862c8 Translated using Weblate (Japanese)
Currently translated at 3.6% (15 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-04-19 17:28:33 +02:00
Anonymous
ea7d5828d5 Translated using Weblate (Ukrainian)
Currently translated at 99.5% (406 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-04-19 17:28:33 +02:00
Anonymous
0829a21b48 Translated using Weblate (Esperanto)
Currently translated at 36.0% (147 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-04-19 17:28:32 +02:00
Anonymous
6b3ca6ac9a Translated using Weblate (Hindi)
Currently translated at 2.2% (9 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-04-19 17:28:32 +02:00
Anonymous
ada24eb069 Translated using Weblate (Malay)
Currently translated at 62.0% (253 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-04-19 17:28:32 +02:00
Anonymous
023e6bbe23 Translated using Weblate (Danish)
Currently translated at 48.5% (198 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-04-19 17:28:31 +02:00
Anonymous
517bba8ed4 Translated using Weblate (Czech)
Currently translated at 96.0% (392 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-04-19 17:28:31 +02:00
Anonymous
61fd5d2fcc Translated using Weblate (Arabic)
Currently translated at 64.2% (262 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-04-19 17:28:31 +02:00
Anonymous
e133be83db Translated using Weblate (Serbian)
Currently translated at 2.2% (9 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-04-19 17:28:30 +02:00
Anonymous
eae0b25c0f Translated using Weblate (Turkish)
Currently translated at 77.6% (317 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-04-19 17:28:30 +02:00
Anonymous
2518d9ca5f Translated using Weblate (Bulgarian)
Currently translated at 11.2% (46 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-04-19 17:28:29 +02:00
Anonymous
c362c928c2 Translated using Weblate (Telugu)
Currently translated at 53.1% (217 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-04-19 17:28:29 +02:00
Anonymous
bc0af4128d Translated using Weblate (Finnish)
Currently translated at 43.6% (178 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-04-19 17:28:28 +02:00
Anonymous
a07175b49c Translated using Weblate (Yue (Traditional))
Currently translated at 28.9% (118 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue_Hant/
2023-04-19 17:28:28 +02:00
Anonymous
46b31e752b Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.5% (406 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-04-19 17:28:27 +02:00
Anonymous
cfe10b061f Translated using Weblate (Romanian)
Currently translated at 37.0% (151 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-04-19 17:28:27 +02:00
Anonymous
e2e7d82dc6 Translated using Weblate (Hebrew)
Currently translated at 24.7% (101 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-04-19 17:28:27 +02:00
Anonymous
18d1e40604 Translated using Weblate (Hungarian)
Currently translated at 26.4% (108 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-04-19 17:28:26 +02:00
Anonymous
f53176d5b2 Translated using Weblate (Croatian)
Currently translated at 99.5% (406 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-04-19 17:28:26 +02:00
Anonymous
f0bdc9df8a Translated using Weblate (Swedish)
Currently translated at 32.3% (132 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-04-19 17:28:26 +02:00
Anonymous
6947be08da Translated using Weblate (Polish)
Currently translated at 71.5% (292 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-04-19 17:28:25 +02:00
Anonymous
ec71540547 Translated using Weblate (Catalan)
Currently translated at 63.4% (259 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-04-19 17:28:25 +02:00
Anonymous
46e228c4a1 Translated using Weblate (Chinese (Traditional))
Currently translated at 87.9% (359 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-04-19 17:28:25 +02:00
Anonymous
d5c8b48363 Translated using Weblate (Dutch)
Currently translated at 59.3% (242 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-04-19 17:28:24 +02:00
Anonymous
e0b4ce05c8 Translated using Weblate (Vietnamese)
Currently translated at 10.7% (44 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-04-19 17:28:24 +02:00
Anonymous
bbefa459ee Translated using Weblate (Norwegian Bokmål)
Currently translated at 19.3% (79 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-04-19 17:28:24 +02:00
Anonymous
162e79d867 Translated using Weblate (Italian)
Currently translated at 70.5% (288 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-04-19 17:28:23 +02:00
Anonymous
197bc5327d Translated using Weblate (Chinese (Simplified))
Currently translated at 98.0% (400 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-04-19 17:28:23 +02:00
Anonymous
ac6242e2f2 Translated using Weblate (Russian)
Currently translated at 11.7% (48 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-04-19 17:28:23 +02:00
Anonymous
6d3d6fe302 Translated using Weblate (Portuguese)
Currently translated at 99.5% (406 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-04-19 17:28:22 +02:00
Anonymous
f0eb695070 Translated using Weblate (French)
Currently translated at 99.5% (406 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-04-19 17:28:22 +02:00
Anonymous
c168a93f72 Translated using Weblate (Spanish)
Currently translated at 99.5% (406 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-04-19 17:28:21 +02:00
Anonymous
415710cdb3 Translated using Weblate (German)
Currently translated at 88.9% (363 of 408 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-04-19 17:28:21 +02:00
Andrej Kralj
291eba01ab Translated using Weblate (Slovenian)
Currently translated at 25.1% (102 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-04-19 17:27:04 +02:00
Heng-Yi Wu
e8713a95c0 Add FreshRSS widget (#1377)
* feat: add FreshRSS widget

* refactor: revert credentialed.js

* refactor: custom proxy handler for FreshRSS

* refactor: cache the token as long as possible

During installation, the salt is generated and remains constant unless
the user re-installs the FreshRSS instance.
2023-04-19 08:26:58 -07:00
shamoon
1aa559537a Update proxy.js 2023-04-19 07:02:33 -07:00
shamoon
55bc247c9e Support blur, saturation & brightness filters for background images 2023-04-18 22:51:46 -07:00
Anonymous
4794c8e2ed Translated using Weblate (Slovenian)
Currently translated at 100.0% (0 of 0 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sl/
2023-04-19 06:46:08 +02:00
Andrej Kralj
56ad8cb927 Added translation using Weblate (Slovenian) 2023-04-19 06:45:24 +02:00
shamoon
063950af05 Merge pull request #1379 from benphelps/fix/issue-1375
Fix: Glances include cpu tempts labeled `Tctl`
2023-04-18 15:42:21 -07:00
shamoon
f2fc78b63f Glances include cpu tempts labeled Tctl 2023-04-18 12:09:02 -07:00
Dan
9f91cd27f3 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (406 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-04-18 12:48:39 +02:00
SekoiaTree
932c479729 Translated using Weblate (Esperanto)
Currently translated at 36.2% (147 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-04-18 12:48:38 +02:00
Henrique Miraldo
db9ccaae2e Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (406 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-04-18 12:48:38 +02:00
Milo Ivir
188ca3186f Translated using Weblate (Croatian)
Currently translated at 100.0% (406 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-04-18 12:48:37 +02:00
Mateusz Sarna
58f35f0940 Translated using Weblate (Polish)
Currently translated at 71.9% (292 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-04-18 12:48:37 +02:00
Henrique Miraldo
af61aa23c1 Translated using Weblate (Portuguese)
Currently translated at 100.0% (406 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-04-18 12:48:36 +02:00
Juan Manuel Bennàssar Carretero
d5812d8c81 Translated using Weblate (Spanish)
Currently translated at 100.0% (406 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-04-18 12:48:36 +02:00
shamoon
9b6755e87e Merge pull request #1362 from benphelps/feature/ping-4xx
Accept http 401 / 403 for ping
2023-04-14 12:49:50 -07:00
gallegonovato
a47e481330 Translated using Weblate (Spanish)
Currently translated at 100.0% (406 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-04-14 21:49:12 +02:00
shamoon
6d1db78709 Accept http 401 / 403 for ping 2023-04-14 12:05:28 -07:00
Dan
1132ac90fb Translated using Weblate (Ukrainian)
Currently translated at 99.7% (405 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-04-13 15:48:17 +02:00
Nonoss117
6debae1a20 Translated using Weblate (French)
Currently translated at 100.0% (406 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-04-13 15:48:17 +02:00
Anonymous
a074d4b15f Translated using Weblate (Greek)
Currently translated at 27.0% (110 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-04-12 10:14:58 +02:00
Anonymous
e98bc2de0f Translated using Weblate (Korean)
Currently translated at 42.8% (174 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ko/
2023-04-12 10:14:58 +02:00
Anonymous
45934cea88 Translated using Weblate (Slovak)
Currently translated at 2.2% (9 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sk/
2023-04-12 10:14:58 +02:00
Anonymous
bdc6d8d746 Translated using Weblate (Thai)
Currently translated at 11.5% (47 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/th/
2023-04-12 10:14:57 +02:00
Anonymous
07277d76f2 Translated using Weblate (Latvian)
Currently translated at 29.3% (119 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/lv/
2023-04-12 10:14:57 +02:00
Anonymous
af58c5ceee Translated using Weblate (Japanese)
Currently translated at 3.6% (15 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ja/
2023-04-12 10:14:57 +02:00
Anonymous
09d4a50aeb Translated using Weblate (Ukrainian)
Currently translated at 99.2% (403 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/uk/
2023-04-12 10:14:56 +02:00
Anonymous
0bbea6d9d0 Translated using Weblate (Esperanto)
Currently translated at 25.3% (103 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/eo/
2023-04-12 10:14:56 +02:00
Anonymous
69e355cc3c Translated using Weblate (Hindi)
Currently translated at 2.2% (9 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hi/
2023-04-12 10:14:56 +02:00
Anonymous
12b26049b0 Translated using Weblate (Malay)
Currently translated at 62.3% (253 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ms/
2023-04-12 10:14:55 +02:00
Anonymous
5ddff35d71 Translated using Weblate (Danish)
Currently translated at 48.7% (198 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/da/
2023-04-12 10:14:55 +02:00
Anonymous
0ab28e93bd Translated using Weblate (Czech)
Currently translated at 96.5% (392 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/cs/
2023-04-12 10:14:55 +02:00
Anonymous
2dd2cabf3e Translated using Weblate (Arabic)
Currently translated at 64.5% (262 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ar/
2023-04-12 10:14:54 +02:00
Anonymous
9a55199cd3 Translated using Weblate (Serbian)
Currently translated at 2.2% (9 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sr/
2023-04-12 10:14:54 +02:00
Anonymous
0223cf7ae3 Translated using Weblate (Turkish)
Currently translated at 78.0% (317 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/tr/
2023-04-12 10:14:53 +02:00
Anonymous
043f787b21 Translated using Weblate (Bulgarian)
Currently translated at 11.3% (46 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/bg/
2023-04-12 10:14:53 +02:00
Anonymous
6ccc6f2f17 Translated using Weblate (Telugu)
Currently translated at 53.4% (217 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/te/
2023-04-12 10:14:52 +02:00
Anonymous
1771ba1f5e Translated using Weblate (Finnish)
Currently translated at 43.8% (178 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fi/
2023-04-12 10:14:52 +02:00
Anonymous
d0b673ab5c Translated using Weblate (Yue)
Currently translated at 29.0% (118 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/yue/
2023-04-12 10:14:52 +02:00
Anonymous
359dd39e85 Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.2% (395 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-04-12 10:14:51 +02:00
Anonymous
0fe31d7a69 Translated using Weblate (Romanian)
Currently translated at 37.1% (151 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ro/
2023-04-12 10:14:51 +02:00
Anonymous
ad1a04035b Translated using Weblate (Hebrew)
Currently translated at 24.8% (101 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/he/
2023-04-12 10:14:50 +02:00
Anonymous
9678ad45dc Translated using Weblate (Hungarian)
Currently translated at 26.6% (108 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hu/
2023-04-12 10:14:50 +02:00
Anonymous
cc7cc6ae9d Translated using Weblate (Croatian)
Currently translated at 99.2% (403 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-04-12 10:14:50 +02:00
Anonymous
5e80c31e31 Translated using Weblate (Swedish)
Currently translated at 32.5% (132 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/sv/
2023-04-12 10:14:49 +02:00
Anonymous
8e895db576 Translated using Weblate (Polish)
Currently translated at 71.6% (291 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-04-12 10:14:49 +02:00
Anonymous
b780c9e460 Translated using Weblate (Catalan)
Currently translated at 63.5% (258 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-04-12 10:14:49 +02:00
Anonymous
ae3ee655bf Translated using Weblate (Chinese (Traditional))
Currently translated at 88.4% (359 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hant/
2023-04-12 10:14:48 +02:00
Anonymous
bf511f555a Translated using Weblate (Dutch)
Currently translated at 59.6% (242 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nl/
2023-04-12 10:14:48 +02:00
Anonymous
fff5abb60e Translated using Weblate (Vietnamese)
Currently translated at 10.8% (44 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/vi/
2023-04-12 10:14:47 +02:00
Anonymous
69060a7c59 Translated using Weblate (Norwegian Bokmål)
Currently translated at 19.4% (79 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/nb_NO/
2023-04-12 10:14:47 +02:00
Anonymous
ee00a4b352 Translated using Weblate (Italian)
Currently translated at 70.9% (288 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/it/
2023-04-12 10:14:46 +02:00
Anonymous
c9ccb82a54 Translated using Weblate (Chinese (Simplified))
Currently translated at 98.5% (400 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-04-12 10:14:46 +02:00
Anonymous
f29e96758c Translated using Weblate (Russian)
Currently translated at 11.8% (48 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ru/
2023-04-12 10:14:45 +02:00
Anonymous
99e889b3cb Translated using Weblate (Portuguese)
Currently translated at 97.2% (395 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-04-12 10:14:45 +02:00
Anonymous
4d25cd2580 Translated using Weblate (French)
Currently translated at 99.2% (403 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-04-12 10:14:45 +02:00
Anonymous
488e1349d8 Translated using Weblate (Spanish)
Currently translated at 99.2% (403 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-04-12 10:14:44 +02:00
Anonymous
2f9cbe657a Translated using Weblate (German)
Currently translated at 89.4% (363 of 406 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/de/
2023-04-12 10:14:44 +02:00
shamoon
4367319478 Merge pull request #1350 from hen-ter/homeassistant-widget
Added homeassistant widget
2023-04-12 01:14:04 -07:00
shamoon
352b4146f7 homeassistant widget minor code cleanup / changes
- limit to 4 blocks
- allow container to handle field filtering
2023-04-12 01:06:48 -07:00
henter
59448b7277 Added homeassistant widget 2023-04-11 20:54:13 +02:00
shamoon
dacb038126 Further widget validation cleanup 2023-04-11 11:15:08 -07:00
shamoon
a83d105764 Cleanup data validation 2023-04-11 11:05:30 -07:00
Milo Ivir
8476b97f7d Translated using Weblate (Croatian)
Currently translated at 100.0% (403 of 403 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-04-10 10:01:36 +02:00
Milo Ivir
d0905b9c44 Translated using Weblate (Croatian)
Currently translated at 71.4% (288 of 403 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/hr/
2023-04-09 15:25:32 +02:00
shamoon
0ae13d8ed3 Merge pull request #1335 from benphelps/5th-column-setting
Move 5th column behind setting
2023-04-07 22:42:42 -07:00
shamoon
91646888cd Move 5th column behind setting 2023-04-07 22:35:42 -07:00
shamoon
0416f53c04 Update group.jsx 2023-04-07 22:28:19 -07:00
shamoon
6dcec48669 Merge pull request #1334 from benphelps/feature-stats-control
Feature: Global & per-service docker stats control
2023-04-07 21:55:17 -07:00
shamoon
7e012993d8 Support per-service stats control 2023-04-07 21:34:33 -07:00
G. Petrakis
1a374dec3c Translated using Weblate (Greek)
Currently translated at 27.2% (110 of 403 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-04-08 04:49:31 +02:00
Felipe Nogueira
e6dd4f20a3 Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.0% (395 of 403 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt_BR/
2023-04-08 04:49:30 +02:00
zxb0303
336aa26263 Translated using Weblate (Chinese (Simplified))
Currently translated at 99.2% (400 of 403 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/zh_Hans/
2023-04-08 04:49:30 +02:00
Felipe Nogueira
fc05808fb2 Translated using Weblate (Portuguese)
Currently translated at 98.0% (395 of 403 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pt/
2023-04-08 04:49:30 +02:00
David Tornero
612d533a38 Translated using Weblate (Spanish)
Currently translated at 100.0% (403 of 403 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-04-08 04:49:29 +02:00
shamoon
7aa496f66f Update item.jsx 2023-04-06 21:53:49 -07:00
shamoon
48224f89a4 Allow show docker stats by default 2023-04-06 20:38:39 -07:00
shamoon
e4788cc7f6 Fix widget option boolean parsing with docker labels 2023-04-06 20:18:06 -07:00
shamoon
4824ed1a2c Fix data buffer parsing error 2023-04-06 07:03:06 -07:00
shamoon
cd95c93e68 Increase breakpoint for 5 columns 2023-04-05 23:25:08 -07:00
shamoon
379d2e59f1 preserve swr mutate 2023-04-05 22:45:27 -07:00
shamoon
64b43871c6 Try to fix false data parse errors 2023-04-05 22:17:52 -07:00
shamoon
5c84b90634 Rename discussion template 2023-04-05 16:19:27 -07:00
shamoon
4e138e3d0f Move FR template to discussion ,add config 2023-04-05 16:13:22 -07:00
Anonymous
8b38f12452 Translated using Weblate (Greek)
Currently translated at 100.0% (0 of 0 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/el/
2023-04-05 21:34:11 +02:00
Przemek
b3ea7b816d Translated using Weblate (Polish)
Currently translated at 72.2% (291 of 403 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/pl/
2023-04-05 21:33:57 +02:00
Juan Manuel Bennàssar Carretero
1bec7897f0 Translated using Weblate (Catalan)
Currently translated at 64.0% (258 of 403 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/ca/
2023-04-05 21:33:56 +02:00
Nonoss117
98422a0727 Translated using Weblate (French)
Currently translated at 99.5% (401 of 403 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/fr/
2023-04-05 21:33:56 +02:00
David Tornero
57c145c3d2 Translated using Weblate (Spanish)
Currently translated at 100.0% (403 of 403 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-04-05 21:33:56 +02:00
Juan Manuel Bennàssar Carretero
43233cf446 Translated using Weblate (Spanish)
Currently translated at 100.0% (403 of 403 strings)

Translation: Homepage/Homepage
Translate-URL: https://hosted.weblate.org/projects/homepage/homepage/es/
2023-04-05 21:33:55 +02:00
G. Petrakis
187df778bf Added translation using Weblate (Greek) 2023-04-05 21:32:53 +02:00
shamoon
d7dc328cdc Merge pull request #1191 from benphelps/feature/987
Add 5th column for 2xl screens
2023-04-05 08:54:41 -07:00
shamoon
066995702b Add 5th column for 2xl screens 2023-04-05 08:53:28 -07:00
shamoon
777c78363d Merge pull request #1187 from benphelps/fix-576-final
True fix for settings revert after container creation
2023-04-04 23:08:13 -07:00
shamoon
6701e3bd77 Use HOMEPAGE_BUILDTIME to revalidate container restart/recreate 2023-04-04 22:55:26 -07:00
shamoon
a42c50f1cc fix emby widget options interpolation 2023-04-04 19:08:52 -07:00
shamoon
2fbe4e5f24 Update cputemp.jsx 2023-04-04 17:05:22 -07:00
shamoon
a0fa6367ca Merge pull request #1161 from MrLemur/add-traefik-ingressroute
Feature: Add Traefik IngressRoute support for Kubernetes
2023-04-04 15:56:38 -07:00
shamoon
8378066bd4 Merge pull request #1182 from benphelps/fix-1181
Fix emby/jellyfin now playing > 1
2023-04-04 15:04:16 -07:00
shamoon
db85193bbf Fix emby/jellyfin now playing > 1 2023-04-04 15:00:09 -07:00
shamoon
364c7ce183 make osx-temperature-sensor optional 2023-04-04 14:27:44 -07:00
shamoon
48180604f9 Fix jellyfin / emby blocks boolean evaluation 2023-04-04 00:55:05 -07:00
shamoon
88089a8a11 Merge pull request #1174 from benphelps/fix-memory-calc
Fix memory display in v0.6.11
2023-04-03 23:29:12 -07:00
shamoon
2829f0b649 Update memory.jsx 2023-04-03 23:22:28 -07:00
shamoon
0d5856db1e Merge pull request #1172 from benphelps/cpu-temp-fixes
Fix glances cpu temp detection & fahrenheit conversion
2023-04-03 21:50:23 -07:00
shamoon
f3ec238a2c Fix glances cpu temp detection & fahrenheit conversion 2023-04-03 21:49:28 -07:00
Kassim Benhaddad
df714c7556 feat: add Traefik IngressRoute support for k8s 2023-03-29 23:19:56 +01:00
180 changed files with 6194 additions and 1356 deletions

View File

@@ -1,5 +1,3 @@
name: Feature request
description: Suggest an idea for this project
title: "[Feature Request] " title: "[Feature Request] "
labels: ["enhancement"] labels: ["enhancement"]
body: body:

View File

@@ -69,11 +69,18 @@ body:
attributes: attributes:
label: Browser Logs label: Browser Logs
description: Please review and provide any logs from the browser, if relevant description: Please review and provide any logs from the browser, if relevant
- type: textarea
id: troubleshooting
attributes:
label: Troubleshooting
description: Please include output from your [troubleshooting tests](https://gethomepage.dev/en/more/troubleshooting/#service-widget-errors). If this is a service widget issue and you do not include any information here your issue will be closed. If it is not, indicate e.g. 'n/a'
validations:
required: true
- type: textarea - type: textarea
id: other id: other
attributes: attributes:
label: Other label: Other
description: Please include output from your troubleshooting tests, if relevant. Include any other relevant details. E.g. service version or API version, docker version, etc. description: Include any other relevant details. E.g. service version or API version, docker version, etc.
- type: checkboxes - type: checkboxes
id: pre-flight id: pre-flight
attributes: attributes:

11
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: 🤔 Questions and Help
url: https://github.com/benphelps/homepage/discussions
about: This issue tracker is for bugs only, not general support questions. Please refer to our Discussions.
- name: 💬 Chat
url: https://discord.gg/k4ruYNrudu
about: Want to discuss homepage with others? Check out our chat.
- name: 🚀 Feature Request
url: https://github.com/benphelps/homepage/discussions/new?category=feature-requests
about: Remember to search for existing feature requests and "up-vote" any you like

View File

@@ -3,7 +3,10 @@
<!-- <!--
Please include a summary of the change. Screenshots and / or videos can also be helpful if appropriate. Please include a summary of the change. Screenshots and / or videos can also be helpful if appropriate.
New service widgets should include example(s) of relevant relevant API output as well as a PR to the docs for the new widget. See the development guidelines for new widgets: https://gethomepage.dev/en/more/development/#service-widget-guidelines *** Please see the development guidelines for new widgets: https://gethomepage.dev/en/more/development/#service-widget-guidelines
*** If you do not follow these guidelines your PR will likely be closed without review.
New service widgets should include example(s) of relevant relevant API output as well as a PR to the docs for the new widget.
--> -->
Closes # (issue) Closes # (issue)
@@ -22,5 +25,6 @@ What type of change does your PR introduce to Homepage?
## Checklist: ## Checklist:
- [ ] If adding a service widget or a change that requires it, I have added a corresponding PR to the [documentation](https://github.com/benphelps/homepage-docs) here: - [ ] If adding a service widget or a change that requires it, I have added a corresponding PR to the [documentation](https://github.com/benphelps/homepage-docs) here:
- [ ] If adding a new widget I have reviewed the [guidelines](https://gethomepage.dev/en/more/development/#service-widget-guidelines).
- [ ] If applicable, I have checked that all tests pass with e.g. `pnpm lint`. - [ ] If applicable, I have checked that all tests pass with e.g. `pnpm lint`.
- [ ] If applicable, I have tested my code for new features & regressions on both mobile & desktop devices, using the latest version of major browsers. - [ ] If applicable, I have tested my code for new features & regressions on both mobile & desktop devices, using the latest version of major browsers.

View File

@@ -31,6 +31,9 @@ Homepage includes a lot of configuration options and is often deploying in large
People *love* thorough bug reports. I'm not even kidding. People *love* thorough bug reports. I'm not even kidding.
## Development Guidelines
Please see the [documentation regarding development](https://gethomepage.dev/en/more/development/) and specifically the [guidelines for new service widgets](https://gethomepage.dev/en/more/development/#service-widget-guidelines) if you are considering making one.
## Use a Consistent Coding Style ## Use a Consistent Coding Style
This project follows the [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript), please follow it when submitting pull requests. This project follows the [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript), please follow it when submitting pull requests.

View File

@@ -29,7 +29,7 @@ COPY . .
SHELL ["/bin/ash", "-xeo", "pipefail", "-c"] SHELL ["/bin/ash", "-xeo", "pipefail", "-c"]
RUN npm run telemetry \ RUN npm run telemetry \
&& mkdir config && echo '---' > config/settings.yaml \ && mkdir config \
&& NEXT_PUBLIC_BUILDTIME=$BUILDTIME NEXT_PUBLIC_VERSION=$VERSION NEXT_PUBLIC_REVISION=$REVISION npm run build && NEXT_PUBLIC_BUILDTIME=$BUILDTIME NEXT_PUBLIC_VERSION=$VERSION NEXT_PUBLIC_REVISION=$REVISION npm run build
# Production image, copy all the files and run next # Production image, copy all the files and run next

View File

@@ -10,6 +10,8 @@ export PGID=${PGID:-0}
# while also supporting the lscr.io /config directory # while also supporting the lscr.io /config directory
[ ! -d "/app/config" ] && ln -s /config /app/config [ ! -d "/app/config" ] && ln -s /config /app/config
export HOMEPAGE_BUILDTIME=$(date +%s)
# Set privileges for /app but only if pid 1 user is root and we are dropping privileges. # Set privileges for /app but only if pid 1 user is root and we are dropping privileges.
# If container is run as an unprivileged user, it means owner already handled ownership setup on their own. # If container is run as an unprivileged user, it means owner already handled ownership setup on their own.
# Running chown in that case (as non-root) will cause error # Running chown in that case (as non-root) will cause error

6
package-lock.json generated
View File

@@ -21,7 +21,7 @@
"minecraft-ping-js": "^1.0.2", "minecraft-ping-js": "^1.0.2",
"next": "^12.3.1", "next": "^12.3.1",
"next-i18next": "^12.0.1", "next-i18next": "^12.0.1",
"osx-temperature-sensor": "^1.0.8", "osx-temperature-sensor": "*",
"pretty-bytes": "^6.0.0", "pretty-bytes": "^6.0.0",
"raw-body": "^2.5.1", "raw-body": "^2.5.1",
"react": "^18.2.0", "react": "^18.2.0",
@@ -52,6 +52,9 @@
"tailwind-scrollbar": "^2.0.1", "tailwind-scrollbar": "^2.0.1",
"tailwindcss": "^3.1.8", "tailwindcss": "^3.1.8",
"typescript": "^4.8.3" "typescript": "^4.8.3"
},
"optionalDependencies": {
"osx-temperature-sensor": "^1.0.8"
} }
}, },
"node_modules/@babel/runtime": { "node_modules/@babel/runtime": {
@@ -4034,6 +4037,7 @@
"resolved": "https://registry.npmjs.org/osx-temperature-sensor/-/osx-temperature-sensor-1.0.8.tgz", "resolved": "https://registry.npmjs.org/osx-temperature-sensor/-/osx-temperature-sensor-1.0.8.tgz",
"integrity": "sha512-Gl3b+bn7+oDDnqPa+4v/cg3yg9lnE8ppS7ivL3opBZh4i7h99JNmkm6zWmo0m2a83UUJu+C9D7lGP0OS8IlehA==", "integrity": "sha512-Gl3b+bn7+oDDnqPa+4v/cg3yg9lnE8ppS7ivL3opBZh4i7h99JNmkm6zWmo0m2a83UUJu+C9D7lGP0OS8IlehA==",
"hasInstallScript": true, "hasInstallScript": true,
"optional": true,
"os": [ "os": [
"darwin" "darwin"
], ],

View File

@@ -23,7 +23,6 @@
"minecraft-ping-js": "^1.0.2", "minecraft-ping-js": "^1.0.2",
"next": "^12.3.1", "next": "^12.3.1",
"next-i18next": "^12.0.1", "next-i18next": "^12.0.1",
"osx-temperature-sensor": "^1.0.8",
"pretty-bytes": "^6.0.0", "pretty-bytes": "^6.0.0",
"raw-body": "^2.5.1", "raw-body": "^2.5.1",
"react": "^18.2.0", "react": "^18.2.0",
@@ -54,5 +53,8 @@
"tailwind-scrollbar": "^2.0.1", "tailwind-scrollbar": "^2.0.1",
"tailwindcss": "^3.1.8", "tailwindcss": "^3.1.8",
"typescript": "^4.8.3" "typescript": "^4.8.3"
},
"optionalDependencies": {
"osx-temperature-sensor": "^1.0.8"
} }
} }

14
pnpm-lock.yaml generated
View File

@@ -40,9 +40,6 @@ dependencies:
next-i18next: next-i18next:
specifier: ^12.0.1 specifier: ^12.0.1
version: 12.1.0(next@12.3.4)(react-dom@18.2.0)(react@18.2.0) version: 12.1.0(next@12.3.4)(react-dom@18.2.0)(react@18.2.0)
osx-temperature-sensor:
specifier: ^1.0.8
version: 1.0.8
pretty-bytes: pretty-bytes:
specifier: ^6.0.0 specifier: ^6.0.0
version: 6.1.0 version: 6.1.0
@@ -80,6 +77,11 @@ dependencies:
specifier: ^1.6.11 specifier: ^1.6.11
version: 1.6.11 version: 1.6.11
optionalDependencies:
osx-temperature-sensor:
specifier: ^1.0.8
version: 1.0.8
devDependencies: devDependencies:
'@tailwindcss/forms': '@tailwindcss/forms':
specifier: ^0.5.3 specifier: ^0.5.3
@@ -645,6 +647,7 @@ packages:
/autoprefixer@10.4.14(postcss@8.4.21): /autoprefixer@10.4.14(postcss@8.4.21):
resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==}
engines: {node: ^10 || ^12 || >=14} engines: {node: ^10 || ^12 || >=14}
hasBin: true
peerDependencies: peerDependencies:
postcss: ^8.1.0 postcss: ^8.1.0
dependencies: dependencies:
@@ -1221,6 +1224,7 @@ packages:
/eslint-config-prettier@8.8.0(eslint@8.37.0): /eslint-config-prettier@8.8.0(eslint@8.37.0):
resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==}
hasBin: true
peerDependencies: peerDependencies:
eslint: '>=7.0.0' eslint: '>=7.0.0'
dependencies: dependencies:
@@ -2374,6 +2378,7 @@ packages:
/next@12.3.4(react-dom@18.2.0)(react@18.2.0): /next@12.3.4(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-VcyMJUtLZBGzLKo3oMxrEF0stxh8HwuW976pAzlHhI3t8qJ4SROjCrSh1T24bhrbjw55wfZXAbXPGwPt5FLRfQ==} resolution: {integrity: sha512-VcyMJUtLZBGzLKo3oMxrEF0stxh8HwuW976pAzlHhI3t8qJ4SROjCrSh1T24bhrbjw55wfZXAbXPGwPt5FLRfQ==}
engines: {node: '>=12.22.0'} engines: {node: '>=12.22.0'}
hasBin: true
peerDependencies: peerDependencies:
fibers: '>= 3.1.0' fibers: '>= 3.1.0'
node-sass: ^6.0.0 || ^7.0.0 node-sass: ^6.0.0 || ^7.0.0
@@ -2574,6 +2579,7 @@ packages:
os: [darwin] os: [darwin]
requiresBuild: true requiresBuild: true
dev: false dev: false
optional: true
/p-limit@3.1.0: /p-limit@3.1.0:
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
@@ -3229,6 +3235,7 @@ packages:
/tailwindcss@3.3.0(postcss@8.4.21): /tailwindcss@3.3.0(postcss@8.4.21):
resolution: {integrity: sha512-hOXlFx+YcklJ8kXiCAfk/FMyr4Pm9ck477G0m/us2344Vuj355IpoEDB5UmGAsSpTBmr+4ZhjzW04JuFXkb/fw==} resolution: {integrity: sha512-hOXlFx+YcklJ8kXiCAfk/FMyr4Pm9ck477G0m/us2344Vuj355IpoEDB5UmGAsSpTBmr+4ZhjzW04JuFXkb/fw==}
engines: {node: '>=12.13.0'} engines: {node: '>=12.13.0'}
hasBin: true
peerDependencies: peerDependencies:
postcss: ^8.0.9 postcss: ^8.0.9
dependencies: dependencies:
@@ -3450,6 +3457,7 @@ packages:
/update-browserslist-db@1.0.10(browserslist@4.21.5): /update-browserslist-db@1.0.10(browserslist@4.21.5):
resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==}
hasBin: true
peerDependencies: peerDependencies:
browserslist: '>= 4.21.0' browserslist: '>= 4.21.0'
dependencies: dependencies:

View File

@@ -151,7 +151,8 @@
"plex": { "plex": {
"streams": "Active Streams", "streams": "Active Streams",
"movies": "أفلام", "movies": "أفلام",
"tv": "مسلسلات" "tv": "مسلسلات",
"albums": "Albums"
}, },
"sabnzbd": { "sabnzbd": {
"rate": "معدل", "rate": "معدل",
@@ -219,7 +220,8 @@
"pihole": { "pihole": {
"queries": "الاستعلامات", "queries": "الاستعلامات",
"blocked": "محظور", "blocked": "محظور",
"gravity": "الجاذبية" "gravity": "الجاذبية",
"blocked_percent": "Blocked %"
}, },
"adguard": { "adguard": {
"queries": "الاستعلامات", "queries": "الاستعلامات",
@@ -512,7 +514,9 @@
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"scheduled": "Scheduled",
"passes": "Passes",
"shows": "Shows",
"recordings": "Recordings"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -99,7 +99,8 @@
"plex": { "plex": {
"streams": "Активни Потоци", "streams": "Активни Потоци",
"movies": "Филми", "movies": "Филми",
"tv": "Сериали" "tv": "Сериали",
"albums": "Albums"
}, },
"transmission": { "transmission": {
"download": "Сваляне", "download": "Сваляне",
@@ -157,7 +158,8 @@
"pihole": { "pihole": {
"queries": "Queries", "queries": "Queries",
"blocked": "Blocked", "blocked": "Blocked",
"gravity": "Gravity" "gravity": "Gravity",
"blocked_percent": "Blocked %"
}, },
"adguard": { "adguard": {
"queries": "Queries", "queries": "Queries",
@@ -512,7 +514,9 @@
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"charge_power": "Charger",
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"watt_hour": "Wh"
} }
} }

View File

@@ -125,7 +125,8 @@
"pihole": { "pihole": {
"queries": "Consultes", "queries": "Consultes",
"blocked": "Bloquejat", "blocked": "Bloquejat",
"gravity": "Gravity" "gravity": "Gravity",
"blocked_percent": "Blocked %"
}, },
"portainer": { "portainer": {
"running": "Executant", "running": "Executant",
@@ -183,7 +184,7 @@
"qbittorrent": { "qbittorrent": {
"download": "Descàrrega", "download": "Descàrrega",
"upload": "Pujada", "upload": "Pujada",
"leech": "Company", "leech": "Clients",
"seed": "Llavors" "seed": "Llavors"
}, },
"mastodon": { "mastodon": {
@@ -228,7 +229,8 @@
"plex": { "plex": {
"streams": "Transmissions actives", "streams": "Transmissions actives",
"movies": "Pel·lícules", "movies": "Pel·lícules",
"tv": "Programes de TV" "tv": "Sèries",
"albums": "Àlbums"
}, },
"glances": { "glances": {
"cpu": "Processador", "cpu": "Processador",
@@ -512,7 +514,9 @@
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Supervisió",
"updates": "Actualitzacions"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -6,7 +6,7 @@
"downloads": "Fronta" "downloads": "Fronta"
}, },
"truenas": { "truenas": {
"load": "Vytížení systému", "load": "Zatížení systému",
"uptime": "Doba spuštění", "uptime": "Doba spuštění",
"alerts": "Upozornění", "alerts": "Upozornění",
"time": "{{value, number(style: unit; unitDisplay: long;)}}" "time": "{{value, number(style: unit; unitDisplay: long;)}}"
@@ -34,32 +34,32 @@
"total": "Celkem", "total": "Celkem",
"free": "Volné", "free": "Volné",
"used": "Využité", "used": "Využité",
"load": "Vytížení", "load": "Zatížení",
"mem": "RAM", "mem": "RAM",
"max": "Max", "max": "Max.",
"uptime": "UP", "uptime": "BĚŽÍ",
"months": "mo", "months": "měs.",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
"minutes": "m", "minutes": "m",
"temp": "TEMP" "temp": "TEPLOTA"
}, },
"unifi": { "unifi": {
"users": "Uživatelé", "users": "Uživatelé",
"uptime": "Čas od startu systému", "uptime": "Doba provozu systému",
"days": "Dnů", "days": "Dnů",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
"wlan": "WLAN", "wlan": "WLAN",
"devices": "Zařízení", "devices": "Zařízení",
"lan_devices": "LAN Zařízení", "lan_devices": "Zařízení LAN",
"wlan_devices": "WLAN Zařízení", "wlan_devices": "Zařízení WLAN",
"lan_users": "LAN Uživatelé", "lan_users": "Uživatelé LAN",
"wlan_users": "WLAN Uživatelé", "wlan_users": "Uživatelé WLAN",
"up": "BĚŽÍ", "up": "BĚŽÍ",
"down": "NEBĚŽÍ", "down": "NEBĚŽÍ",
"wait": "Počkejte prosím", "wait": "Počkejte prosím",
"empty_data": "Status podsystému neznámý" "empty_data": "Stav podsystému neznámý"
}, },
"docker": { "docker": {
"rx": "RX", "rx": "RX",
@@ -70,7 +70,7 @@
"error": "Chyba", "error": "Chyba",
"unknown": "Neznámý", "unknown": "Neznámý",
"running": "Běží", "running": "Běží",
"starting": "Startuje", "starting": "Spouští se",
"unhealthy": "Nezdravý", "unhealthy": "Nezdravý",
"not_found": "Nenalezen", "not_found": "Nenalezen",
"exited": "Ukončen", "exited": "Ukončen",
@@ -79,13 +79,13 @@
}, },
"emby": { "emby": {
"playing": "Přehrává", "playing": "Přehrává",
"transcoding": "Transkódování", "transcoding": "Překódování",
"bitrate": "Bitrate", "bitrate": "Přenosová rychlost",
"no_active": "Žádný aktivní stream", "no_active": "Žádný aktivní stream",
"movies": "Filmy", "movies": "Filmy",
"series": "Seriály", "series": "Seriály",
"episodes": "Epizody", "episodes": "Epizody",
"songs": "Písničky" "songs": "Skladby"
}, },
"changedetectionio": { "changedetectionio": {
"totalObserved": "Celkem zjištěno", "totalObserved": "Celkem zjištěno",
@@ -93,8 +93,8 @@
}, },
"tautulli": { "tautulli": {
"playing": "Přehrává", "playing": "Přehrává",
"transcoding": "Transkódování", "transcoding": "Překódování",
"bitrate": "Bitrate", "bitrate": "Přenosová rychlost",
"no_active": "Žádný aktivní stream" "no_active": "Žádný aktivní stream"
}, },
"nzbget": { "nzbget": {
@@ -105,7 +105,8 @@
"plex": { "plex": {
"streams": "Aktivní streamy", "streams": "Aktivní streamy",
"movies": "Filmy", "movies": "Filmy",
"tv": "Seriály" "tv": "Seriály",
"albums": "Alba"
}, },
"sabnzbd": { "sabnzbd": {
"rate": "Rychlost", "rate": "Rychlost",
@@ -120,8 +121,8 @@
"transmission": { "transmission": {
"download": "Stahování", "download": "Stahování",
"upload": "Nahrávání", "upload": "Nahrávání",
"leech": "Leecherů", "leech": "Leechované",
"seed": "Seedů" "seed": "Seedované"
}, },
"qbittorrent": { "qbittorrent": {
"download": "Stahování", "download": "Stahování",
@@ -173,7 +174,8 @@
"pihole": { "pihole": {
"queries": "Dotazy", "queries": "Dotazy",
"blocked": "Blokováno", "blocked": "Blokováno",
"gravity": "Gravity" "gravity": "Gravity",
"blocked_percent": "Blokováno"
}, },
"adguard": { "adguard": {
"queries": "Dotazy", "queries": "Dotazy",
@@ -187,9 +189,9 @@
"ping": "Ping" "ping": "Ping"
}, },
"portainer": { "portainer": {
"running": "Běží", "running": "Spuštěno",
"stopped": "Zastaveno", "stopped": "Zastaveno",
"total": "Celkově" "total": "Celkem"
}, },
"traefik": { "traefik": {
"routers": "Routery", "routers": "Routery",
@@ -308,8 +310,8 @@
"cpu": "CPU", "cpu": "CPU",
"mem": "RAM", "mem": "RAM",
"wait": "Prosím počkejte", "wait": "Prosím počkejte",
"temp": "TEMP", "temp": "TEPLOTA",
"uptime": "UP", "uptime": "BĚŽÍ",
"days": "d", "days": "d",
"hours": "h" "hours": "h"
}, },
@@ -323,19 +325,19 @@
}, },
"homebridge": { "homebridge": {
"update_available": "Dostupná", "update_available": "Dostupná",
"up_to_date": "Žádné", "up_to_date": "Všechno aktuální",
"available_update": "Systém", "available_update": "Systém",
"updates": "Aktualizace", "updates": "Aktualizace",
"child_bridges": "Podřadné můstky", "child_bridges": "Podřízené můstky",
"child_bridges_status": "{{ok}}/{{total}}", "child_bridges_status": "{{ok}}/{{total}}",
"up": "Zapnutý", "up": "Zapnutý",
"pending": "Čeká se", "pending": "Čeká se",
"down": "Vypnutý" "down": "Vypnutý"
}, },
"watchtower": { "watchtower": {
"containers_scanned": "Naskenováno", "containers_scanned": "Prohledáno",
"containers_updated": "Aktualizováno", "containers_updated": "Aktualizováno",
"containers_failed": "Chyba" "containers_failed": "Selhalo"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Schváleno", "approvedPushes": "Schváleno",
@@ -367,7 +369,7 @@
"ping": "Odezva" "ping": "Odezva"
}, },
"scrutiny": { "scrutiny": {
"passed": "Přijato", "passed": "Úspěšné",
"failed": "Neúspěšné", "failed": "Neúspěšné",
"unknown": "Neznámé" "unknown": "Neznámé"
}, },
@@ -377,15 +379,15 @@
}, },
"deluge": { "deluge": {
"upload": "Nahrávání", "upload": "Nahrávání",
"leech": "Leech", "leech": "Leechované",
"seed": "Seed", "seed": "Seedované",
"download": "Stahování" "download": "Stahování"
}, },
"flood": { "flood": {
"download": "Stahování", "download": "Stahování",
"upload": "Nahrávání", "upload": "Nahrávání",
"leech": "Leech", "leech": "Leechované",
"seed": "Seed" "seed": "Seedované"
}, },
"tdarr": { "tdarr": {
"queue": "Fronta", "queue": "Fronta",
@@ -415,8 +417,8 @@
"downloadstation": { "downloadstation": {
"download": "Stahování", "download": "Stahování",
"upload": "Nahrávání", "upload": "Nahrávání",
"leech": "Leech", "leech": "Leechované",
"seed": "Seed" "seed": "Seedované"
}, },
"mikrotik": { "mikrotik": {
"cpuLoad": "Zatížení procesoru", "cpuLoad": "Zatížení procesoru",
@@ -425,18 +427,18 @@
"numberOfLeases": "Pronájmy" "numberOfLeases": "Pronájmy"
}, },
"xteve": { "xteve": {
"streams_all": "Všechny proudy", "streams_all": "Všechny streamy",
"streams_active": "Aktivní proudy", "streams_active": "Aktivní streamy",
"streams_xepg": "Kanály XEPG" "streams_xepg": "Kanály XEPG"
}, },
"opnsense": { "opnsense": {
"cpu": "Zatížení procesoru", "cpu": "Zatížení procesoru",
"memory": "Aktivní paměť", "memory": "Aktivní paměť",
"wanUpload": "Nahrávání WAN", "wanUpload": "Nahrávání WAN",
"wanDownload": "WAN Stažení" "wanDownload": "Stahování WAN"
}, },
"moonraker": { "moonraker": {
"print_progress": "Progres", "print_progress": "Průběh",
"printer_state": "Stav tiskárny", "printer_state": "Stav tiskárny",
"print_status": "Stav tisku", "print_status": "Stav tisku",
"layers": "Vrstvy" "layers": "Vrstvy"
@@ -492,7 +494,7 @@
"people": "Lidé" "people": "Lidé"
}, },
"diskstation": { "diskstation": {
"days": "Dni", "days": "dní",
"uptime": "Doba provozu", "uptime": "Doba provozu",
"volumeAvailable": "K dispozici" "volumeAvailable": "K dispozici"
}, },
@@ -503,16 +505,18 @@
"time": "Čas" "time": "Čas"
}, },
"grafana": { "grafana": {
"dashboards": "Přístrojové panely", "dashboards": "Nástěnky",
"datasources": "Zdroje dat", "datasources": "Zdroje dat",
"totalalerts": "Celkový počet upozornění", "totalalerts": "Celkový počet upozornění",
"alertstriggered": "Spuštěné výstrahy" "alertstriggered": "Spuštěné výstrahy"
}, },
"nextcloud": { "nextcloud": {
"cpuload": "CPU zatížení", "cpuload": "Zatížení procesoru",
"memoryusage": "Využití paměti", "memoryusage": "Využití paměti",
"freespace": "Volný prostor", "freespace": "Volný prostor",
"activeusers": "Aktivní uživatelé" "activeusers": "Aktivní uživatelé",
"numfiles": "Soubory",
"numshares": "Sdílené položky"
}, },
"kopia": { "kopia": {
"status": "Stav", "status": "Stav",
@@ -562,5 +566,67 @@
"books": "Knihy", "books": "Knihy",
"podcastsDuration": "Trvání", "podcastsDuration": "Trvání",
"booksDuration": "Trvání" "booksDuration": "Trvání"
},
"homeassistant": {
"people_home": "Lidí doma",
"lights_on": "Rozsvícená světla",
"switches_on": "Zapnuté přepínače"
},
"freshrss": {
"subscriptions": "Odběry",
"unread": "Nepřečteno"
},
"channelsdvrserver": {
"shows": "Pořady",
"recordings": "Nahrávky",
"scheduled": "Naplánováno",
"passes": "Průchody"
},
"whatsupdocker": {
"monitoring": "Sledování",
"updates": "Aktualizace"
},
"tailscale": {
"address": "Adresa",
"expires": "Vyprší",
"never": "Nikdy",
"last_seen": "Naposledy viděno",
"now": "Nyní",
"years": "{{number}}r",
"weeks": "{{number}}t",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "Před {{value}}"
},
"qnap": {
"memUsage": "Využití paměti",
"systemTempC": "Teplota systému",
"poolUsage": "Využití fondu",
"cpuUsage": "Využití procesoru"
},
"pfsense": {
"load": "Prům. zatížení",
"memory": "Využití paměti",
"wanStatus": "Stav WAN",
"up": "Běží",
"down": "Neběží",
"temp": "Teplota",
"disk": "Využití disku",
"wanIP": "IP WAN"
},
"caddy": {
"upstreams": "Odesílání dat",
"requests": "Aktuální požadavky",
"requests_failed": "Selhavší požadavky"
},
"evcc": {
"watt_hour": "Wh",
"pv_power": "Produkce",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger"
} }
} }

View File

@@ -2,7 +2,8 @@
"plex": { "plex": {
"movies": "Film", "movies": "Film",
"tv": "TV-Shows", "tv": "TV-Shows",
"streams": "Aktive Streams" "streams": "Aktive Streams",
"albums": "Albums"
}, },
"radarr": { "radarr": {
"queued": "I Kø", "queued": "I Kø",
@@ -278,7 +279,8 @@
"pihole": { "pihole": {
"blocked": "Blokerede", "blocked": "Blokerede",
"gravity": "Gravity", "gravity": "Gravity",
"queries": "Forespørgsler" "queries": "Forespørgsler",
"blocked_percent": "Blocked %"
}, },
"portainer": { "portainer": {
"running": "Kørende", "running": "Kørende",
@@ -512,7 +514,9 @@
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"podcasts": "Podcasts", "podcasts": "Podcasts",
"books": "Books", "books": "Books",
"podcastsDuration": "Duration" "podcastsDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"never": "Never",
"last_seen": "Last Seen",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -5,7 +5,7 @@
"status": "Status", "status": "Status",
"url": "URL", "url": "URL",
"information": "Informationen", "information": "Informationen",
"raw_error": "Unbearbeiteter Fehler", "raw_error": "Roher Fehler",
"response_data": "Empfangene Daten" "response_data": "Empfangene Daten"
}, },
"search": { "search": {
@@ -14,14 +14,14 @@
"resources": { "resources": {
"total": "Gesamt", "total": "Gesamt",
"free": "Frei", "free": "Frei",
"used": "Gebraucht", "used": "In Verwendung",
"load": "Last", "load": "Last",
"cpu": "CPU", "cpu": "Prozessor",
"mem": "RAM", "mem": "Speicher",
"temp": "TEMP", "temp": "TEMP",
"max": "Max", "max": "Max",
"uptime": "UP", "uptime": "UP",
"months": "mo", "months": "Mo.",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
"minutes": "m" "minutes": "m"
@@ -29,27 +29,27 @@
"docker": { "docker": {
"rx": "Rx", "rx": "Rx",
"tx": "Tx", "tx": "Tx",
"mem": "Mem", "mem": "Speicher",
"cpu": "Prozessor", "cpu": "Prozessor",
"offline": "Offline", "offline": "Offline",
"error": "Fehler", "error": "Fehler",
"unknown": "Unbekannt", "unknown": "Unbekannt",
"running": "Running", "running": "Laufend",
"starting": "Starting", "starting": "Startet",
"unhealthy": "Unhealthy", "unhealthy": "Unhealthy",
"not_found": "Not Found", "not_found": "Nicht gefunden",
"exited": "Exited", "exited": "Beendet",
"partial": "Partial", "partial": "Teilweise",
"healthy": "Healthy" "healthy": "Healthy"
}, },
"emby": { "emby": {
"playing": "Spielen", "playing": "Aktuelle Wiedergaben",
"transcoding": "Transcodierung", "transcoding": "Transkodieren",
"bitrate": "Bitrate", "bitrate": "Bitrate",
"no_active": "Keine aktiven Streams", "no_active": "Keine aktiven Streams",
"movies": "Movies", "movies": "Filme",
"series": "Series", "series": "Serien",
"episodes": "Episodes", "episodes": "Folgen",
"songs": "Songs" "songs": "Songs"
}, },
"tautulli": { "tautulli": {
@@ -92,7 +92,8 @@
"pihole": { "pihole": {
"queries": "Abfragen", "queries": "Abfragen",
"blocked": "Blockiert", "blocked": "Blockiert",
"gravity": "Gravity" "gravity": "Gravity",
"blocked_percent": "Geblockt %"
}, },
"speedtest": { "speedtest": {
"upload": "Upload", "upload": "Upload",
@@ -215,20 +216,21 @@
"wan": "WAN", "wan": "WAN",
"lan_users": "LAN Benutzer", "lan_users": "LAN Benutzer",
"wlan_users": "WLAN Benutzer", "wlan_users": "WLAN Benutzer",
"up": "SENDEN", "up": "BEREIT",
"down": "EMPFANGEN", "down": "EMPFANGEN",
"wait": "Bitte warten", "wait": "Bitte warten",
"lan": "LAN", "lan": "LAN",
"wlan": "WLAN", "wlan": "WLAN",
"devices": "Geräte", "devices": "Geräte",
"lan_devices": "LAN-Geräte", "lan_devices": "LAN-Geräte",
"wlan_devices": "WLAN Geräte", "wlan_devices": "WLAN-Geräte",
"empty_data": "Subsystem status unbekannt" "empty_data": "Subsystem-Status unbekannt"
}, },
"plex": { "plex": {
"streams": "Aktive Streams", "streams": "Aktive Streams",
"movies": "Filme", "movies": "Filme",
"tv": "TV Sendungen" "tv": "TV Sendungen",
"albums": "Alben"
}, },
"glances": { "glances": {
"cpu": "Prozessor", "cpu": "Prozessor",
@@ -236,8 +238,8 @@
"wait": "Bitte warten", "wait": "Bitte warten",
"temp": "TEMP", "temp": "TEMP",
"uptime": "UP", "uptime": "UP",
"days": "d", "days": "T",
"hours": "h" "hours": "S"
}, },
"changedetectionio": { "changedetectionio": {
"totalObserved": "Gesamt beobachtet", "totalObserved": "Gesamt beobachtet",
@@ -317,7 +319,7 @@
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}", "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up", "up": "Up",
"pending": "Pending", "pending": "Ausstehend",
"down": "Down" "down": "Down"
}, },
"autobrr": { "autobrr": {
@@ -512,7 +514,9 @@
"cpuload": "CPU Last", "cpuload": "CPU Last",
"memoryusage": "RAM Verbrauch", "memoryusage": "RAM Verbrauch",
"freespace": "Freier Speicher", "freespace": "Freier Speicher",
"activeusers": "Aktive Nutzer" "activeusers": "Aktive Nutzer",
"numfiles": "Dateien",
"numshares": "Geteilte Elemente"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -522,12 +526,12 @@
"failed": "Fehlgeschlagen" "failed": "Fehlgeschlagen"
}, },
"unmanic": { "unmanic": {
"active_workers": "Active Workers", "active_workers": "Aktive Worker",
"total_workers": "Total Workers", "total_workers": "Alle Worker",
"records_total": "Queue Length" "records_total": "Länge der Warteschlange"
}, },
"healthchecks": { "healthchecks": {
"grace": "In Grace Period", "grace": "In Karenzzeit",
"new": "Neu", "new": "Neu",
"up": "Online", "up": "Online",
"down": "Offline", "down": "Offline",
@@ -541,9 +545,9 @@
"nodes": "Nodes" "nodes": "Nodes"
}, },
"prometheus": { "prometheus": {
"targets_up": "Targets Up", "targets_up": "Ziele Up",
"targets_down": "Targets Down", "targets_down": "Ziele Down",
"targets_total": "Total Targets" "targets_total": "Alle Ziele"
}, },
"minecraft": { "minecraft": {
"players": "Spieler", "players": "Spieler",
@@ -553,14 +557,76 @@
"down": "Offline" "down": "Offline"
}, },
"ghostfolio": { "ghostfolio": {
"gross_percent_max": "All time", "gross_percent_max": "Alle Zeit",
"gross_percent_today": "Heute", "gross_percent_today": "Heute",
"gross_percent_1y": "Ein Jahr" "gross_percent_1y": "Ein Jahr"
}, },
"audiobookshelf": { "audiobookshelf": {
"podcasts": "Podcasts", "podcasts": "Podcasts",
"books": "Books", "books": "Bücher",
"podcastsDuration": "Duration", "podcastsDuration": "Dauer",
"booksDuration": "Duration" "booksDuration": "Dauer"
},
"homeassistant": {
"people_home": "Personen daheim",
"lights_on": "Lichter an",
"switches_on": "Schalter an"
},
"freshrss": {
"subscriptions": "Abonnements",
"unread": "Ungelesen"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Aufnahmen",
"scheduled": "Geplant",
"passes": "Pässe"
},
"whatsupdocker": {
"monitoring": "Überwacht",
"updates": "Aktualisierungen"
},
"tailscale": {
"address": "Adresse",
"weeks": "{{number}}W",
"days": "{{number}}T",
"hours": "{{number}}S",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "Vor {{value}}",
"expires": "Läuft ab",
"last_seen": "Zuletzt gesehen",
"never": "Nie",
"now": "Jetzt",
"years": "{{number}}J"
},
"qnap": {
"cpuUsage": "CPU Nutzung",
"memUsage": "MEM Nutzung",
"systemTempC": "System Temp",
"poolUsage": "Pool Nutzung"
},
"pfsense": {
"load": "Durchschnittliche Last",
"temp": "Temp",
"disk": "Datenträgernutzung",
"wanIP": "WAN IP",
"memory": "Speichernutzung",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Aktuelle Anfragen",
"requests_failed": "Fehlgeschlagene Anfragen"
},
"evcc": {
"watt_hour": "Wh",
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger"
} }
} }

View File

@@ -0,0 +1,632 @@
{
"resources": {
"used": "χρησιμοποιημένο",
"load": "Φόρτωση",
"cpu": "Επεξεργαστής",
"mem": "MEM",
"temp": "ΘΕΡΜΟΚΡΑΣΪΑ",
"total": "Σύνολο",
"free": "Δωρεάν",
"max": "Μέγιστο",
"uptime": "ΠΑΝΩ",
"months": "mo",
"days": "d",
"hours": "h",
"minutes": "m"
},
"omada": {
"activeUser": "Ενεργές συσκευές",
"alerts": "Ειδοποιήσεις",
"connectedAp": "Συνδεδεμένα APs",
"connectedGateway": "Συνδεδεμένα gateways",
"connectedSwitches": "Συνδεδεμένα switches"
},
"wmo": {
"0-night": "Clear",
"65-day": "Heavy Rain",
"65-night": "Heavy Rain",
"0-day": "Sunny",
"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",
"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"
},
"common": {
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
},
"widget": {
"missing_type": "Λείπει ο τύπος widget: {{type}}",
"api_error": "Σφάλμα API",
"information": "Πληροφορία",
"status": "Κατάσταση",
"url": "URL",
"raw_error": "Ανεπεξέργαστο σφάλμα",
"response_data": "Δεδομένα απόκρισης"
},
"weather": {
"current": "Τωρινή τοποθεσία",
"allow": "Κάντε κλικ για να επιτρέψετε",
"updating": "Ενημέρωση",
"wait": "Παρακαλώ περιμένετε"
},
"search": {
"placeholder": "Αναζήτηση…"
},
"unifi": {
"users": "Χρήστες",
"uptime": "Χρόνος λειτουργίας συστήματος",
"days": "Ημέρες",
"wan": "WAN",
"lan": "LAN",
"wlan": "WLAN",
"devices": "Συσκευές",
"lan_devices": "LAN Συσκευές",
"wlan_devices": "WLAN Συσκευές",
"lan_users": "LAN Χρήστες",
"wlan_users": "WLAN Χρήστες",
"up": "ΠΑΝΩ",
"down": "ΚΑΤΩ",
"wait": "Παρακαλώ περιμένετε",
"empty_data": "Άγνωστη κατάσταση υποσυστήματος"
},
"docker": {
"rx": "RX",
"tx": "TX",
"mem": "MEM",
"cpu": "CPU",
"running": "Τρέχων",
"offline": "Εκτός σύνδεσης",
"error": "Σφάλμα",
"unknown": "Άγνωστο",
"healthy": "Υγειές",
"exited": "Έκλεισε",
"starting": "Ξεκινάει",
"partial": "Μερικό",
"unhealthy": "Άρρωστο",
"not_found": "Δεν βρέθηκε"
},
"ping": {
"error": "Σφάλμα",
"ping": "Ping"
},
"emby": {
"playing": "Παίζει",
"transcoding": "Διακωδικοποίηση",
"bitrate": "Ρυθμός bit",
"no_active": "Δεν υπάρχουν ενεργές ροές",
"movies": "Ταινίες",
"series": "Σειρές",
"episodes": "Επεισόδια",
"songs": "Τραγούδια"
},
"flood": {
"download": "Λήξη",
"upload": "Φόρτωση",
"leech": "Αφαίμαξη",
"seed": "Σπείρε"
},
"changedetectionio": {
"totalObserved": "Συνολικά παρατηρηθείσα",
"diffsDetected": "Εντοπίστηκαν διαφορές"
},
"tautulli": {
"playing": "Παίζει",
"transcoding": "Διακωδικοποίηση",
"bitrate": "Ρυθμός bit",
"no_active": "Δεν υπάρχουν ενεργές ροές"
},
"nzbget": {
"rate": "βαθμός",
"remaining": "Υπόλοιπο",
"downloaded": "Κατεβασμένο"
},
"plex": {
"streams": "Ενεργά Streams",
"movies": "Ταινίες",
"tv": "Σειρές",
"albums": "Δίσκοι"
},
"sabnzbd": {
"rate": "Βαθμός",
"queue": "Ουρά",
"timeleft": "Χρόνος που απομένει"
},
"rutorrent": {
"active": "Ενεργό",
"upload": "Ανέβασμα",
"download": "Κατέβασμα"
},
"transmission": {
"download": "Κατέβασμα",
"upload": "Ανέβασμα",
"leech": "Leech",
"seed": "Seed"
},
"qbittorrent": {
"download": "Κατέβασμα",
"upload": "Ανέβασμα",
"leech": "Leech",
"seed": "Seed"
},
"deluge": {
"download": "Κατέβασμα",
"upload": "Φόρτωση",
"leech": "Leech",
"seed": "Seed"
},
"sonarr": {
"series": "Σειρές",
"wanted": "Επιθυμούντε",
"queued": "Σε σειρά"
},
"downloadstation": {
"download": "Μεταφόρτωση",
"upload": "Φόρτωση",
"leech": "Leech",
"seed": "Seed"
},
"radarr": {
"wanted": "Επιθυμούντε",
"missing": "Απουσιάζει",
"queued": "Σε σειρά",
"movies": "Ταινίες"
},
"lidarr": {
"wanted": "Θέλετε",
"queued": "Στη σειρά",
"albums": "Δίσκοι"
},
"readarr": {
"wanted": "Θέλετε",
"queued": "Στη σειρά",
"books": "Βιβλία"
},
"bazarr": {
"missingEpisodes": "Επεισόδια που λείπουν",
"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"
},
"pihole": {
"queries": "Queries",
"blocked": "Blocked",
"gravity": "Gravity",
"blocked_percent": "Blocked %"
},
"adguard": {
"queries": "Queries",
"blocked": "Blocked",
"filtered": "Filtered",
"latency": "Latency"
},
"speedtest": {
"upload": "Upload",
"download": "Download",
"ping": "Ping"
},
"portainer": {
"running": "Running",
"stopped": "Stopped",
"total": "Total"
},
"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"
},
"strelaysrv": {
"numActiveSessions": "Sessions",
"numConnections": "Connections",
"dataRelayed": "Relayed",
"transferRate": "Rate"
},
"jackett": {
"configured": "Configured",
"errored": "Errored"
},
"mastodon": {
"user_count": "Users",
"status_count": "Posts",
"domain_count": "Domains"
},
"medusa": {
"wanted": "Wanted",
"queued": "Queued",
"series": "Series"
},
"minecraft": {
"players": "Players",
"version": "Version",
"down": "Offline",
"status": "Status",
"up": "Online"
},
"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",
"mem": "MEM",
"wait": "Please wait",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "h"
},
"quicklaunch": {
"bookmark": "Bookmark",
"service": "Service",
"search": "Search",
"custom": "Custom",
"visit": "Visit",
"url": "URL"
},
"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": {
"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"
},
"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": {
"processed": "Processed",
"queue": "Queue",
"processing": "Processing",
"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": "Διάρκεια"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Συνδρομές",
"unread": "Αδιάβαστο"
},
"channelsdvrserver": {
"shows": "Εκπομπές",
"recordings": "Εγγραφές",
"scheduled": "Προγραμματισμένα",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"never": "Never",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"expires": "Expires",
"last_seen": "Last Seen",
"now": "Now",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "Χρήση επεξεργαστή",
"memUsage": "Χρήση μνήμης",
"systemTempC": "Θερμοκρασία συστήματος",
"poolUsage": "Χρήση πλειάδας"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"watt_hour": "Wh",
"pv_power": "Παραγωγή",
"battery_soc": "Μπαταρία",
"grid_power": "Πλέγμα",
"home_power": "Κατανάλωση",
"charge_power": "Charger"
}
}

View File

@@ -91,6 +91,14 @@
"series": "Series", "series": "Series",
"episodes": "Episodes", "episodes": "Episodes",
"songs": "Songs" "songs": "Songs"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
}, },
"flood": { "flood": {
"download": "Download", "download": "Download",
@@ -98,10 +106,25 @@
"leech": "Leech", "leech": "Leech",
"seed": "Seed" "seed": "Seed"
}, },
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"changedetectionio": { "changedetectionio": {
"totalObserved": "Total Observed", "totalObserved": "Total Observed",
"diffsDetected": "Diffs Detected" "diffsDetected": "Diffs Detected"
}, },
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"tautulli": { "tautulli": {
"playing": "Playing", "playing": "Playing",
"transcoding": "Transcoding", "transcoding": "Transcoding",
@@ -122,6 +145,7 @@
}, },
"plex": { "plex": {
"streams": "Active Streams", "streams": "Active Streams",
"albums": "Albums",
"movies": "Movies", "movies": "Movies",
"tv": "TV Shows" "tv": "TV Shows"
}, },
@@ -147,6 +171,12 @@
"leech": "Leech", "leech": "Leech",
"seed": "Seed" "seed": "Seed"
}, },
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"deluge": { "deluge": {
"download": "Download", "download": "Download",
"upload": "Upload", "upload": "Upload",
@@ -203,6 +233,7 @@
"pihole": { "pihole": {
"queries": "Queries", "queries": "Queries",
"blocked": "Blocked", "blocked": "Blocked",
"blocked_percent": "Blocked %",
"gravity": "Gravity" "gravity": "Gravity"
}, },
"adguard": { "adguard": {
@@ -221,6 +252,20 @@
"stopped": "Stopped", "stopped": "Stopped",
"total": "Total" "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": { "tdarr": {
"queue": "Queue", "queue": "Queue",
"processed": "Processed", "processed": "Processed",
@@ -482,6 +527,16 @@
"origin_ip": "Origin IP", "origin_ip": "Origin IP",
"status": "Status" "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": { "proxmoxbackupserver": {
"datastore_usage": "Datastore", "datastore_usage": "Datastore",
"failed_tasks_24h": "Failed Tasks 24h", "failed_tasks_24h": "Failed Tasks 24h",
@@ -538,7 +593,9 @@
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -571,5 +628,14 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
} }
} }

View File

@@ -1,18 +1,18 @@
{ {
"widget": { "widget": {
"missing_type": "Missing Widget Type: {{type}}", "missing_type": "Manka Tipo de Fenestraĵo: {{type}}",
"api_error": "API Error", "api_error": "Eraro de API",
"information": "Informo", "information": "Informo",
"status": "Stato", "status": "Stato",
"url": "URL", "url": "URL",
"raw_error": "Raw Error", "raw_error": "Kruda Eraro",
"response_data": "Response Data" "response_data": "Respondoj de Demandoj"
}, },
"weather": { "weather": {
"current": "Aktuala loko", "current": "Aktuala loko",
"allow": "Click to allow", "allow": "Klaku por permesi",
"updating": "Updating", "updating": "Ĝisdatiganta",
"wait": "Please wait" "wait": "Bonvolu atendi"
}, },
"search": { "search": {
"placeholder": "Serĉi…" "placeholder": "Serĉi…"
@@ -26,58 +26,58 @@
"mem": "MEM", "mem": "MEM",
"temp": "TEMP", "temp": "TEMP",
"months": "mo", "months": "mo",
"max": "Max", "max": "Maks",
"uptime": "UP", "uptime": "UP",
"days": "d", "days": "t",
"hours": "h", "hours": "h",
"minutes": "m" "minutes": "m"
}, },
"unifi": { "unifi": {
"users": "Uzantoj", "users": "Uzantoj",
"uptime": "System Uptime", "uptime": "Uptempo de la Sistemo",
"days": "Tagoj", "days": "Tagoj",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
"wlan": "WLAN", "wlan": "WLAN",
"devices": "Aparatoj", "devices": "Aparatoj",
"lan_devices": "LAN Devices", "lan_devices": "LAN-Aparatoj",
"wlan_devices": "WLAN Devices", "wlan_devices": "WLAN-Aparatoj",
"lan_users": "LAN Users", "lan_users": "LAN-Uzantoj",
"wlan_users": "WLAN Users", "wlan_users": "WLAN-Uzantoj",
"up": "UP", "up": "UP",
"down": "DOWN", "down": "DOWN",
"wait": "Please wait", "wait": "Bonvolu atendi",
"empty_data": "Subsystem status unknown" "empty_data": "Subsistemostatuso nekonata"
}, },
"docker": { "docker": {
"rx": "RX", "rx": "RX",
"tx": "TX", "tx": "TX",
"mem": "Memoro", "mem": "MEM",
"cpu": "Ĉefprocesoro", "cpu": "CPO",
"offline": "Offline", "offline": "Malkonekta",
"error": "Eraro", "error": "Eraro",
"unknown": "Nekonata", "unknown": "Nekonata",
"running": "Running", "running": "Rulata",
"starting": "Starting", "starting": "Lanĉante",
"unhealthy": "Unhealthy", "unhealthy": "Malsana",
"not_found": "Not Found", "not_found": "Ne trovita",
"exited": "Exited", "exited": "Eliris",
"partial": "Partial", "partial": "Parta",
"healthy": "Healthy" "healthy": "Sana"
}, },
"ping": { "ping": {
"error": "Eraro", "error": "Eraro",
"ping": "Ping" "ping": "Sondaĵo"
}, },
"emby": { "emby": {
"playing": "Ludante", "playing": "Ludante",
"transcoding": "Transcoding", "transcoding": "Transkodigo",
"bitrate": "Bitrate", "bitrate": "Bitrapido",
"no_active": "No Active Streams", "no_active": "No Active Streams",
"movies": "Movies", "movies": "Filmoj",
"series": "Series", "series": "Serioj",
"episodes": "Episodes", "episodes": "Epizodoj",
"songs": "Songs" "songs": "Kantoj"
}, },
"changedetectionio": { "changedetectionio": {
"totalObserved": "Total Observed", "totalObserved": "Total Observed",
@@ -97,7 +97,8 @@
"plex": { "plex": {
"streams": "Active Streams", "streams": "Active Streams",
"movies": "Filmoj", "movies": "Filmoj",
"tv": "Televidprogramoj" "tv": "Televidprogramoj",
"albums": "Albums"
}, },
"sabnzbd": { "sabnzbd": {
"rate": "Rate", "rate": "Rate",
@@ -171,7 +172,8 @@
"pihole": { "pihole": {
"queries": "Queries", "queries": "Queries",
"blocked": "Blocked", "blocked": "Blocked",
"gravity": "Gravity" "gravity": "Gravity",
"blocked_percent": "Blocked %"
}, },
"adguard": { "adguard": {
"queries": "Queries", "queries": "Queries",
@@ -382,8 +384,8 @@
"total": "Totalo" "total": "Totalo"
}, },
"flood": { "flood": {
"download": "Download", "download": "Elŝuti",
"upload": "Upload", "upload": "Alŝuti",
"leech": "Leech", "leech": "Leech",
"seed": "Seed" "seed": "Seed"
}, },
@@ -512,7 +514,9 @@
"activeusers": "Active Users", "activeusers": "Active Users",
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space" "freespace": "Free Space",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -18,8 +18,8 @@
"load": "Carga", "load": "Carga",
"cpu": "CPU", "cpu": "CPU",
"mem": "MEM", "mem": "MEM",
"temp": "TEMPORAL", "temp": "TEMP",
"max": "Máximo", "max": "Máx.",
"uptime": "ARRIBA", "uptime": "ARRIBA",
"months": "Meses", "months": "Meses",
"days": "Días", "days": "Días",
@@ -92,7 +92,8 @@
"pihole": { "pihole": {
"queries": "Consultas", "queries": "Consultas",
"blocked": "Bloqueado", "blocked": "Bloqueado",
"gravity": "Gravedad" "gravity": "Gravedad",
"blocked_percent": "% bloqueado"
}, },
"speedtest": { "speedtest": {
"upload": "Subida", "upload": "Subida",
@@ -118,7 +119,7 @@
"current": "Ubicación actual", "current": "Ubicación actual",
"allow": "Clic para permitir", "allow": "Clic para permitir",
"updating": "Actualizando", "updating": "Actualizando",
"wait": "Espere, por favor" "wait": "Espera, por favor"
}, },
"overseerr": { "overseerr": {
"pending": "Pendiente", "pending": "Pendiente",
@@ -158,7 +159,7 @@
"transmission": { "transmission": {
"download": "Bajada", "download": "Bajada",
"upload": "Subida", "upload": "Subida",
"leech": "Sanguijuela", "leech": "Compañeros",
"seed": "Semillas" "seed": "Semillas"
}, },
"jackett": { "jackett": {
@@ -183,7 +184,7 @@
"qbittorrent": { "qbittorrent": {
"download": "Bajada", "download": "Bajada",
"upload": "Subida", "upload": "Subida",
"leech": "Depender", "leech": "Pares",
"seed": "Semillas" "seed": "Semillas"
}, },
"mastodon": { "mastodon": {
@@ -213,11 +214,11 @@
"users": "Usuarios", "users": "Usuarios",
"uptime": "Tiempo de actividad", "uptime": "Tiempo de actividad",
"days": "Días", "days": "Días",
"wan": "Red WAN", "wan": "WAN",
"lan_users": "Usuarios LAN", "lan_users": "Usuarios LAN",
"wlan_users": "Usuarios WLAN", "wlan_users": "Usuarios WLAN",
"down": "CAÍDO", "down": "CAÍDO",
"wait": "Espere por favor", "wait": "Espera por favor",
"lan": "LAN", "lan": "LAN",
"wlan": "WLAN", "wlan": "WLAN",
"devices": "Dispositivos", "devices": "Dispositivos",
@@ -228,12 +229,13 @@
"plex": { "plex": {
"streams": "Transmisiones activas", "streams": "Transmisiones activas",
"movies": "Películas", "movies": "Películas",
"tv": "Programas de TV" "tv": "Series",
"albums": "Álbumes"
}, },
"glances": { "glances": {
"cpu": "Procesador", "cpu": "Procesador",
"mem": "Memoria", "mem": "Memoria",
"wait": "Espere por favor", "wait": "Espera por favor",
"temp": "TEMPORAL", "temp": "TEMPORAL",
"uptime": "ARRIBA", "uptime": "ARRIBA",
"days": "Días", "days": "Días",
@@ -277,20 +279,20 @@
"66-night": "Granizo", "66-night": "Granizo",
"67-night": "Granizo", "67-night": "Granizo",
"71-day": "Nevada Leve", "71-day": "Nevada Leve",
"71-night": "Nevada Leva", "71-night": "Nevada Leve",
"73-day": "Nevada", "73-day": "Nevada",
"73-night": "Nevada", "73-night": "Nevada",
"75-day": "Fuertes Nevadas", "75-day": "Fuertes Nevadas",
"75-night": "Fuertes Nevadas", "75-night": "Fuertes Nevadas",
"77-day": "Nevada Leve", "77-day": "Nevada Leve",
"77-night": "Nevada Leve", "77-night": "Nevada Leve",
"80-day": "llovizna", "80-day": "Llovizna",
"80-night": "Llovizna", "80-night": "Llovizna",
"81-day": "Lluvia", "81-day": "Lluvia",
"81-night": "Lluvia", "81-night": "Lluvia",
"82-day": "Chubascos", "82-day": "Chubascos",
"82-night": "Chubascos", "82-night": "Chubascos",
"85-day": "Chubascos", "85-day": "Lluvia de nieve",
"85-night": "Lluvia de nieve", "85-night": "Lluvia de nieve",
"86-day": "Lluvia de nieve", "86-day": "Lluvia de nieve",
"86-night": "Lluvia de nieve", "86-night": "Lluvia de nieve",
@@ -378,12 +380,12 @@
"deluge": { "deluge": {
"download": "Descarga", "download": "Descarga",
"upload": "Subida", "upload": "Subida",
"leech": "Depender", "leech": "Compañeros",
"seed": "Semilla" "seed": "Semillas"
}, },
"flood": { "flood": {
"download": "Descargar", "download": "Descarga",
"upload": "Subir", "upload": "Subida",
"leech": "Depender", "leech": "Depender",
"seed": "Semillas" "seed": "Semillas"
}, },
@@ -398,7 +400,7 @@
"unread": "Sin leer" "unread": "Sin leer"
}, },
"nextdns": { "nextdns": {
"wait": "Espere, por favor", "wait": "Espera, por favor",
"no_devices": "No se reciben datos del dispositivo" "no_devices": "No se reciben datos del dispositivo"
}, },
"common": { "common": {
@@ -415,7 +417,7 @@
"downloadstation": { "downloadstation": {
"download": "Descargar", "download": "Descargar",
"upload": "Subir", "upload": "Subir",
"leech": "Sanguijuela", "leech": "Compañeros",
"seed": "Semilla" "seed": "Semilla"
}, },
"mikrotik": { "mikrotik": {
@@ -425,8 +427,8 @@
"numberOfLeases": "Alquileres" "numberOfLeases": "Alquileres"
}, },
"xteve": { "xteve": {
"streams_all": "Todas las corrientes", "streams_all": "Todas las transmisiones",
"streams_active": "Corrientes activas", "streams_active": "Transmisiones activas",
"streams_xepg": "Canales XEPG" "streams_xepg": "Canales XEPG"
}, },
"opnsense": { "opnsense": {
@@ -437,7 +439,7 @@
}, },
"moonraker": { "moonraker": {
"printer_state": "Estado de la impresora", "printer_state": "Estado de la impresora",
"print_status": "Estado de la impresora", "print_status": "Estado de la impresión",
"print_progress": "Progreso", "print_progress": "Progreso",
"layers": "Capas" "layers": "Capas"
}, },
@@ -447,9 +449,9 @@
"series": "Serie" "series": "Serie"
}, },
"octoprint": { "octoprint": {
"temp_bed": "temperatura de la plataforma", "temp_bed": "Temperatura de la plataforma",
"printer_state": "Status", "printer_state": "Estado",
"temp_tool": "Herramienta de temperatura", "temp_tool": "Temperatura de la herramienta",
"job_completion": "Finalización" "job_completion": "Finalización"
}, },
"cloudflared": { "cloudflared": {
@@ -512,7 +514,9 @@
"cpuload": "Carga de la CPU", "cpuload": "Carga de la CPU",
"memoryusage": "Uso de la memoria", "memoryusage": "Uso de la memoria",
"freespace": "Espacio libre", "freespace": "Espacio libre",
"activeusers": "Usuarios activos" "activeusers": "Usuarios activos",
"numfiles": "Archivos",
"numshares": "Elementos compartidos"
}, },
"kopia": { "kopia": {
"status": "Estado", "status": "Estado",
@@ -533,7 +537,7 @@
"grace": "En Periodo de Gracia", "grace": "En Periodo de Gracia",
"paused": "Pausado", "paused": "Pausado",
"status": "Estado", "status": "Estado",
"last_ping": "Último Ping", "last_ping": "Último ping",
"never": "Aún no hay pings" "never": "Aún no hay pings"
}, },
"pterodactyl": { "pterodactyl": {
@@ -562,5 +566,67 @@
"books": "Libros", "books": "Libros",
"podcastsDuration": "Duración", "podcastsDuration": "Duración",
"booksDuration": "Duración" "booksDuration": "Duración"
},
"homeassistant": {
"people_home": "Inicio de personas",
"lights_on": "Luces encendidas",
"switches_on": "Encendido"
},
"freshrss": {
"subscriptions": "Suscripciones",
"unread": "Sin leer"
},
"channelsdvrserver": {
"shows": "Espectáculos",
"recordings": "Grabaciones",
"scheduled": "Programado",
"passes": "Pases"
},
"whatsupdocker": {
"monitoring": "Supervisión",
"updates": "Actualizaciones"
},
"tailscale": {
"address": "Dirección",
"expires": "Caduca en",
"never": "Nunca",
"last_seen": "Visto por última vez",
"now": "Ahora",
"years": "{{number}}años",
"hours": "{{number}}horas",
"minutes": "{{number}}minutos",
"seconds": "{{number}}segundos",
"ago": "Hace {{value}}",
"weeks": "{{number}}semanas",
"days": "{{number}}días"
},
"qnap": {
"cpuUsage": "Uso de la Cpu",
"memUsage": "Uso de la memoria",
"systemTempC": "Temperatura del sistema",
"poolUsage": "Comprobación del uso del grupo de memoria"
},
"pfsense": {
"load": "Promedio de carga",
"memory": "Memoria utilizada",
"wanStatus": "Estado de la WAN",
"up": "Arriba",
"down": "Abajo",
"temp": "Temperatura",
"disk": "Uso del disco",
"wanIP": "IP de la WAN"
},
"caddy": {
"upstreams": "Upstream (desarrollo de software)",
"requests": "Peticiones actuales",
"requests_failed": "Peticiones fallidas"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -135,7 +135,8 @@
"pihole": { "pihole": {
"queries": "Kyselyjä", "queries": "Kyselyjä",
"blocked": "Estetty", "blocked": "Estetty",
"gravity": "Vakavuus" "gravity": "Vakavuus",
"blocked_percent": "Blocked %"
}, },
"adguard": { "adguard": {
"queries": "Kyselyjä", "queries": "Kyselyjä",
@@ -228,7 +229,8 @@
"plex": { "plex": {
"streams": "Active Streams", "streams": "Active Streams",
"movies": "Movies", "movies": "Movies",
"tv": "TV Shows" "tv": "TV Shows",
"albums": "Albums"
}, },
"glances": { "glances": {
"wait": "Please wait", "wait": "Please wait",
@@ -512,7 +514,9 @@
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numshares": "Shared Items",
"numfiles": "Files"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"watt_hour": "Wh",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger"
} }
} }

View File

@@ -24,7 +24,7 @@
"months": "mo", "months": "mo",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
"minutes": "m" "minutes": "mn"
}, },
"docker": { "docker": {
"rx": "Rx", "rx": "Rx",
@@ -92,7 +92,8 @@
"pihole": { "pihole": {
"queries": "Requêtes", "queries": "Requêtes",
"blocked": "Bloqué", "blocked": "Bloqué",
"gravity": "Listes dom. bloqués" "gravity": "Listes dom. bloqués",
"blocked_percent": "Bloqué %"
}, },
"speedtest": { "speedtest": {
"upload": "Envoi", "upload": "Envoi",
@@ -228,15 +229,16 @@
"plex": { "plex": {
"streams": "Flux actif", "streams": "Flux actif",
"movies": "Films", "movies": "Films",
"tv": "Séries TV" "tv": "Séries TV",
"albums": "Albums"
}, },
"glances": { "glances": {
"cpu": "Cpu", "cpu": "Cpu",
"mem": "Mém", "mem": "Mém",
"wait": "Merci de patienter", "wait": "Merci de patienter",
"temp": "TEMP", "temp": "Temp",
"uptime": "UP", "uptime": "Up",
"days": "d", "days": "j",
"hours": "h" "hours": "h"
}, },
"changedetectionio": { "changedetectionio": {
@@ -512,7 +514,9 @@
"freespace": "Espace Libre", "freespace": "Espace Libre",
"activeusers": "Utilisateurs Actifs", "activeusers": "Utilisateurs Actifs",
"cpuload": "Charge Cpu", "cpuload": "Charge Cpu",
"memoryusage": "Utilisation Mémoire" "memoryusage": "Utilisation Mémoire",
"numfiles": "Fichiers",
"numshares": "Partages"
}, },
"kopia": { "kopia": {
"status": "Statut", "status": "Statut",
@@ -562,5 +566,67 @@
"books": "Livres", "books": "Livres",
"podcastsDuration": "Durée", "podcastsDuration": "Durée",
"booksDuration": "Durée" "booksDuration": "Durée"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lumières allumées",
"switches_on": "Switches On"
},
"freshrss": {
"unread": "Non lu",
"subscriptions": "Abonnements"
},
"channelsdvrserver": {
"shows": "Affichages",
"recordings": "Enregistrements",
"scheduled": "Planifié",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Conteneurs",
"updates": "Mises à jour"
},
"tailscale": {
"address": "Adresse",
"expires": "Expire",
"never": "Jamais",
"last_seen": "Vu pour la dernière fois",
"now": "Maintenant",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "Il y a {{value}}"
},
"qnap": {
"cpuUsage": "Cpu",
"memUsage": "Mém",
"systemTempC": "Temp",
"poolUsage": "Pool"
},
"pfsense": {
"load": "Charge moy.",
"memory": "Util. Mém.",
"wanStatus": "Statut WAN",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Util. Disque",
"wanIP": "IP WAN"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Demandes en cours",
"requests_failed": "Demandes échouées"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Batterie",
"grid_power": "Grille",
"home_power": "Consommation",
"charge_power": "Chargeur",
"watt_hour": "Wh"
} }
} }

View File

@@ -135,7 +135,8 @@
"pihole": { "pihole": {
"queries": "שאילתות", "queries": "שאילתות",
"blocked": "נחסם", "blocked": "נחסם",
"gravity": "Gravity" "gravity": "Gravity",
"blocked_percent": "Blocked %"
}, },
"adguard": { "adguard": {
"queries": "שאילתות", "queries": "שאילתות",
@@ -228,7 +229,8 @@
"plex": { "plex": {
"streams": "Active Streams", "streams": "Active Streams",
"movies": "Movies", "movies": "Movies",
"tv": "TV Shows" "tv": "TV Shows",
"albums": "Albums"
}, },
"glances": { "glances": {
"cpu": "CPU", "cpu": "CPU",
@@ -512,7 +514,9 @@
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -127,7 +127,8 @@
"plex": { "plex": {
"streams": "Active Streams", "streams": "Active Streams",
"movies": "Movies", "movies": "Movies",
"tv": "TV Shows" "tv": "TV Shows",
"albums": "Albums"
}, },
"sabnzbd": { "sabnzbd": {
"rate": "Rate", "rate": "Rate",
@@ -176,7 +177,8 @@
"pihole": { "pihole": {
"queries": "Queries", "queries": "Queries",
"blocked": "Blocked", "blocked": "Blocked",
"gravity": "Gravity" "gravity": "Gravity",
"blocked_percent": "Blocked %"
}, },
"adguard": { "adguard": {
"queries": "Queries", "queries": "Queries",
@@ -512,7 +514,9 @@
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -15,10 +15,10 @@
"load": "Opterećenje", "load": "Opterećenje",
"cpu": "CPU", "cpu": "CPU",
"mem": "MEM", "mem": "MEM",
"minutes": "m", "minutes": "min",
"max": "Max", "max": "Maks",
"uptime": "UP", "uptime": "UP",
"months": "mo", "months": "mj",
"temp": "TEMP", "temp": "TEMP",
"days": "d", "days": "d",
"hours": "h" "hours": "h"
@@ -37,7 +37,8 @@
"pihole": { "pihole": {
"queries": "Upiti", "queries": "Upiti",
"blocked": "Blokirano", "blocked": "Blokirano",
"gravity": "Čuvanje podataka" "gravity": "Gravitacija",
"blocked_percent": "Blokirano %"
}, },
"adguard": { "adguard": {
"latency": "Kašnjenje", "latency": "Kašnjenje",
@@ -78,26 +79,26 @@
"tx": "TX", "tx": "TX",
"mem": "MEM", "mem": "MEM",
"cpu": "CPU", "cpu": "CPU",
"offline": "Nepovezan", "offline": "Offline",
"error": "Greška", "error": "Greška",
"unknown": "Nepoznato", "unknown": "Nepoznato",
"running": "Running", "running": "Pokrenuto",
"starting": "Starting", "starting": "Pokretanje",
"unhealthy": "Unhealthy", "unhealthy": "Nefunkcionalno",
"not_found": "Not Found", "not_found": "Nepronađeno",
"exited": "Exited", "exited": "Zatoreno",
"partial": "Partial", "partial": "Djelomično",
"healthy": "Healthy" "healthy": "Funkcionalno"
}, },
"emby": { "emby": {
"playing": "Reprodukcija", "playing": "Reprodukcija",
"transcoding": "Prekodiranje", "transcoding": "Prekodiranje",
"bitrate": "Stopa bitova", "bitrate": "Stopa bitova",
"no_active": "Nema aktivnih prijenosa", "no_active": "Nema aktivnih prijenosa",
"movies": "Movies", "movies": "Filmovi",
"series": "Series", "series": "Serije",
"episodes": "Episodes", "episodes": "Epizode",
"songs": "Songs" "songs": "Pjesme"
}, },
"tautulli": { "tautulli": {
"playing": "Reprodukcija", "playing": "Reprodukcija",
@@ -223,12 +224,13 @@
"devices": "Uređaji", "devices": "Uređaji",
"lan_devices": "LAN uređaji", "lan_devices": "LAN uređaji",
"wlan_devices": "WLAN uređaji", "wlan_devices": "WLAN uređaji",
"empty_data": "Subsystem status unknown" "empty_data": "Stanje podsustava nepoznato"
}, },
"plex": { "plex": {
"streams": "Aktivni prijenosi", "streams": "Aktivni prijenosi",
"movies": "Filmovi", "movies": "Filmovi",
"tv": "TV emisije" "tv": "TV emisije",
"albums": "Albumi"
}, },
"glances": { "glances": {
"cpu": "CPU", "cpu": "CPU",
@@ -304,9 +306,9 @@
"quicklaunch": { "quicklaunch": {
"bookmark": "Straničnik", "bookmark": "Straničnik",
"service": "Usluga", "service": "Usluga",
"search": "Search", "search": "Traži",
"custom": "Custom", "custom": "Prilagođeno",
"visit": "Visit", "visit": "Posjeti",
"url": "URL" "url": "URL"
}, },
"homebridge": { "homebridge": {
@@ -317,7 +319,7 @@
"child_bridges": "Podređeni mosotvi", "child_bridges": "Podređeni mosotvi",
"child_bridges_status": "{{ok}}/{{total}}", "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up", "up": "Up",
"pending": "Pending", "pending": "Predstoji",
"down": "Down" "down": "Down"
}, },
"autobrr": { "autobrr": {
@@ -367,7 +369,7 @@
"ping": "Ping" "ping": "Ping"
}, },
"scrutiny": { "scrutiny": {
"passed": "Prošlo", "passed": "Uspjelo",
"failed": "Neuspjelo", "failed": "Neuspjelo",
"unknown": "Nepoznato" "unknown": "Nepoznato"
}, },
@@ -399,7 +401,7 @@
}, },
"nextdns": { "nextdns": {
"wait": "Pričekaj", "wait": "Pričekaj",
"no_devices": "Podaci o uređaju nisu primljeni" "no_devices": "Podaci uređaja nisu primljeni"
}, },
"common": { "common": {
"bibyterate": "{{value, rate(bits: false; binary: true)}}", "bibyterate": "{{value, rate(bits: false; binary: true)}}",
@@ -436,131 +438,195 @@
"wanDownload": "WAN preuzimanje" "wanDownload": "WAN preuzimanje"
}, },
"moonraker": { "moonraker": {
"printer_state": "Printer State", "printer_state": "Stanje pisača",
"print_status": "Print Status", "print_status": "Stanje ispisa",
"print_progress": "Progress", "print_progress": "Napredak",
"layers": "Layers" "layers": "Slojevi"
}, },
"medusa": { "medusa": {
"wanted": "Wanted", "wanted": "Zatraženo",
"queued": "Queued", "queued": "U redu čekanja",
"series": "Series" "series": "Serije"
}, },
"octoprint": { "octoprint": {
"printer_state": "Status", "printer_state": "Stanje",
"temp_tool": "Tool temp", "temp_tool": "Temperatura alata",
"temp_bed": "Bed temp", "temp_bed": "Temperatura platforme",
"job_completion": "Completion" "job_completion": "Dovršenost"
}, },
"cloudflared": { "cloudflared": {
"origin_ip": "Origin IP", "origin_ip": "IP izvora",
"status": "Status" "status": "Stanje"
}, },
"proxmoxbackupserver": { "proxmoxbackupserver": {
"datastore_usage": "Datastore", "datastore_usage": "Spremište podataka",
"failed_tasks_24h": "Failed Tasks 24h", "failed_tasks_24h": "Neuspjeli zadaci 24 h",
"cpu_usage": "CPU", "cpu_usage": "CPU",
"memory_usage": "Memory" "memory_usage": "Memorija"
}, },
"immich": { "immich": {
"users": "Users", "users": "Korisnici",
"photos": "Photos", "photos": "Fotografije",
"videos": "Videos", "videos": "Videa",
"storage": "Storage" "storage": "Spremište"
}, },
"uptimekuma": { "uptimekuma": {
"up": "Sites Up", "up": "Aktivne stranice",
"down": "Sites Down", "down": "Neaktivne stranice",
"uptime": "Uptime", "uptime": "Radno vrijeme",
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "min"
}, },
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Biblioteke",
"series": "Series", "series": "Serije",
"books": "Books" "books": "Knjige"
}, },
"mylar": { "mylar": {
"series": "Series", "series": "Serije",
"issues": "Issues", "issues": "Problemi",
"wanted": "Wanted" "wanted": "Zatraženo"
}, },
"photoprism": { "photoprism": {
"videos": "Videos", "videos": "Videa",
"albums": "Albums", "albums": "Albumi",
"photos": "Photos", "photos": "Fotografije",
"people": "People" "people": "Osobe"
}, },
"diskstation": { "diskstation": {
"days": "Days", "days": "Dani",
"uptime": "Uptime", "uptime": "Radno vrijeme",
"volumeAvailable": "Available" "volumeAvailable": "Dostupno"
}, },
"fileflows": { "fileflows": {
"queue": "Queue", "queue": "Red čekanja",
"processing": "Processing", "processing": "Obrada",
"processed": "Processed", "processed": "Obrađeno",
"time": "Time" "time": "Vrijeme"
}, },
"grafana": { "grafana": {
"alertstriggered": "Alerts Triggered", "alertstriggered": "Aktivirana upozorenja",
"dashboards": "Dashboards", "dashboards": "Pregledne ploče",
"datasources": "Data Sources", "datasources": "Izvori podataka",
"totalalerts": "Total Alerts" "totalalerts": "Ukupno upozorenja"
}, },
"nextcloud": { "nextcloud": {
"cpuload": "Cpu Load", "cpuload": "Cpu opterećenje",
"memoryusage": "Memory Usage", "memoryusage": "Korištenje memorije",
"freespace": "Free Space", "freespace": "Slobodna memorija",
"activeusers": "Active Users" "activeusers": "Aktivni korisnici",
"numfiles": "Datoteke",
"numshares": "Dijeljene stavke"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Stanje",
"size": "Size", "size": "Veličina",
"lastrun": "Last Run", "lastrun": "Zadnje pokretanje",
"nextrun": "Next Run", "nextrun": "Sljedeće pokretanje",
"failed": "Failed" "failed": "Neuspjelo"
}, },
"unmanic": { "unmanic": {
"active_workers": "Active Workers", "active_workers": "Aktivni radnici",
"total_workers": "Total Workers", "total_workers": "Ukupni radnici",
"records_total": "Queue Length" "records_total": "Količina zapisa u redu čekanja"
}, },
"healthchecks": { "healthchecks": {
"new": "New", "new": "Novo",
"up": "Online", "up": "Online",
"grace": "In Grace Period", "grace": "U razdoblju odgode",
"down": "Offline", "down": "Offline",
"paused": "Paused", "paused": "Zaustavljeno",
"status": "Status", "status": "Stanje",
"last_ping": "Last Ping", "last_ping": "Zadnji ping",
"never": "No pings yet" "never": "Još nema pingova"
}, },
"pterodactyl": { "pterodactyl": {
"servers": "Servers", "servers": "Serveri",
"nodes": "Nodes" "nodes": "Čvorovi"
}, },
"prometheus": { "prometheus": {
"targets_up": "Targets Up", "targets_up": "Aktivni ciljevi",
"targets_down": "Targets Down", "targets_down": "Neaktivni ciljevi",
"targets_total": "Total Targets" "targets_total": "Ukupno ciljeva"
}, },
"minecraft": { "minecraft": {
"players": "Players", "players": "Igrači",
"version": "Version", "version": "Verzija",
"status": "Status", "status": "Stanje",
"up": "Online", "up": "Online",
"down": "Offline" "down": "Offline"
}, },
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Danas",
"gross_percent_1y": "One year", "gross_percent_1y": "Jedna godina",
"gross_percent_max": "All time" "gross_percent_max": "Svo vrijeme"
}, },
"audiobookshelf": { "audiobookshelf": {
"podcasts": "Podcasts", "podcasts": "Podcasti",
"books": "Books", "books": "Knjige",
"podcastsDuration": "Duration", "podcastsDuration": "Trajanje",
"booksDuration": "Duration" "booksDuration": "Trajanje"
},
"homeassistant": {
"people_home": "Ljudi doma",
"lights_on": "Upaljena svjetla",
"switches_on": "Prekidači uključeni"
},
"freshrss": {
"subscriptions": "Pretplate",
"unread": "Nepročitano"
},
"channelsdvrserver": {
"scheduled": "Planirano",
"passes": "Prolazi",
"shows": "Emisije",
"recordings": "Snimanja"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Aktualiziranja"
},
"tailscale": {
"address": "Adresa",
"expires": "Isteče",
"never": "Nikada",
"last_seen": "Zadnje viđeno",
"now": "Sada",
"years": "{{number}} god",
"weeks": "{{number}} tj",
"days": "{{number}} dan(a)",
"hours": "{{number}} h",
"minutes": "{{number}} min",
"seconds": "{{number}} s",
"ago": "Prije {{value}}"
},
"qnap": {
"systemTempC": "Temperatura sustava",
"poolUsage": "Korištenje memorijskog skupa",
"cpuUsage": "Korištenje procesora",
"memUsage": "Korištenje memorije"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -135,7 +135,8 @@
"pihole": { "pihole": {
"queries": "Lekérdezések", "queries": "Lekérdezések",
"blocked": "Blokkolt", "blocked": "Blokkolt",
"gravity": "Gravitáció" "gravity": "Gravitáció",
"blocked_percent": "Blocked %"
}, },
"adguard": { "adguard": {
"queries": "Lekérdezések", "queries": "Lekérdezések",
@@ -228,7 +229,8 @@
"plex": { "plex": {
"streams": "Active Streams", "streams": "Active Streams",
"movies": "Movies", "movies": "Movies",
"tv": "TV Shows" "tv": "TV Shows",
"albums": "Albums"
}, },
"glances": { "glances": {
"cpu": "CPU", "cpu": "CPU",
@@ -512,7 +514,9 @@
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago",
"hours": "{{number}}h"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -107,7 +107,8 @@
"pihole": { "pihole": {
"queries": "Richieste", "queries": "Richieste",
"blocked": "Bloccati", "blocked": "Bloccati",
"gravity": "Severità" "gravity": "Severità",
"blocked_percent": "Blocked %"
}, },
"npm": { "npm": {
"enabled": "Attivi", "enabled": "Attivi",
@@ -228,7 +229,8 @@
"plex": { "plex": {
"streams": "Trasmissioni attive", "streams": "Trasmissioni attive",
"movies": "Film", "movies": "Film",
"tv": "Programma televisivo" "tv": "Programma televisivo",
"albums": "Albums"
}, },
"glances": { "glances": {
"cpu": "CPU", "cpu": "CPU",
@@ -512,7 +514,9 @@
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"never": "Never",
"address": "Address",
"expires": "Expires",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago",
"days": "{{number}}d"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -1,38 +1,38 @@
{ {
"navidrome": { "navidrome": {
"nothing_streaming": "No Active Streams", "nothing_streaming": "アクティブストリームなし",
"please_wait": "Please Wait" "please_wait": "お待ちください"
}, },
"npm": { "npm": {
"total": "Total", "total": "合計",
"enabled": "Enabled", "enabled": "有効",
"disabled": "Disabled" "disabled": "無効"
}, },
"strelaysrv": { "strelaysrv": {
"numActiveSessions": "Sessions", "numActiveSessions": "セッション",
"numConnections": "Connections", "numConnections": "コネクション",
"dataRelayed": "Relayed", "dataRelayed": "Relayed",
"transferRate": "Rate" "transferRate": "レート"
}, },
"glances": { "glances": {
"mem": "MEM", "mem": "MEM",
"cpu": "CPU", "cpu": "CPU",
"wait": "Please wait", "wait": "お待ちください",
"temp": "TEMP", "temp": "温度",
"uptime": "UP", "uptime": "UP",
"days": "d", "days": "",
"hours": "h" "hours": "時間"
}, },
"autobrr": { "autobrr": {
"filters": "Filters", "filters": "フィルター",
"indexers": "Indexers", "indexers": "Indexers",
"approvedPushes": "Approved", "approvedPushes": "承認済",
"rejectedPushes": "Rejected" "rejectedPushes": "却下"
}, },
"gluetun": { "gluetun": {
"region": "Region", "region": "地域",
"country": "Country", "country": "",
"public_ip": "Public IP" "public_ip": "パブリックIP"
}, },
"common": { "common": {
"bibyterate": "{{value, rate(bits: false; binary: true)}}", "bibyterate": "{{value, rate(bits: false; binary: true)}}",
@@ -42,336 +42,338 @@
"api_error": "APIエラー", "api_error": "APIエラー",
"information": "情報", "information": "情報",
"missing_type": "見つからないウィジェットタイプ: {{type}}", "missing_type": "見つからないウィジェットタイプ: {{type}}",
"status": "ステータス", "status": "状態",
"url": "URL", "url": "URL",
"raw_error": "生のエラー", "raw_error": "生のエラー",
"response_data": "レスポンスデータ" "response_data": "レスポンスデータ"
}, },
"weather": { "weather": {
"current": "Current Location", "current": "現在地",
"allow": "Click to allow", "allow": "クリックで許可",
"updating": "Updating", "updating": "アップデート中",
"wait": "Please wait" "wait": "お待ちください"
}, },
"search": { "search": {
"placeholder": "Search…" "placeholder": "検索…"
}, },
"resources": { "resources": {
"cpu": "CPU", "cpu": "CPU",
"total": "Total", "total": "合計",
"free": "Free", "free": "フリー",
"used": "Used", "used": "使用",
"load": "Load", "load": "ロード",
"mem": "MEM", "mem": "MEM",
"temp": "TEMP", "temp": "温度",
"max": "Max", "max": "Max",
"uptime": "UP", "uptime": "UP",
"months": "mo", "months": "",
"days": "d", "days": "",
"hours": "h", "hours": "時間",
"minutes": "m" "minutes": ""
}, },
"unifi": { "unifi": {
"users": "Users", "users": "ユーザ",
"uptime": "System Uptime", "uptime": "システム・アップタイム",
"days": "Days", "days": "",
"wan": "WAN", "wan": "WAN",
"lan": "LAN", "lan": "LAN",
"wlan": "WLAN", "wlan": "WLAN",
"devices": "Devices", "devices": "デバイス",
"lan_devices": "LAN Devices", "lan_devices": "LAN デバイス",
"wlan_devices": "WLAN Devices", "wlan_devices": "WLAN デバイス",
"lan_users": "LAN Users", "lan_users": "LAN ユーザ",
"wlan_users": "WLAN Users", "wlan_users": "WLAN ユーザ",
"up": "UP", "up": "UP",
"down": "DOWN", "down": "DOWN",
"wait": "Please wait", "wait": "お待ちください",
"empty_data": "Subsystem status unknown" "empty_data": "サブシステム状態・不明"
}, },
"docker": { "docker": {
"rx": "RX", "rx": "RX",
"tx": "TX", "tx": "TX",
"mem": "MEM", "mem": "MEM",
"cpu": "CPU", "cpu": "CPU",
"offline": "Offline", "offline": "オフライン",
"error": "Error", "error": "エラー",
"unknown": "Unknown", "unknown": "不明",
"running": "Running", "running": "起動中",
"starting": "Starting", "starting": "起動中",
"unhealthy": "Unhealthy", "unhealthy": "非健全",
"not_found": "Not Found", "not_found": "不明",
"exited": "Exited", "exited": "終了",
"partial": "Partial", "partial": "部分的",
"healthy": "Healthy" "healthy": "健全"
}, },
"ping": { "ping": {
"error": "Error", "error": "エラー",
"ping": "Ping" "ping": "Ping"
}, },
"emby": { "emby": {
"playing": "Playing", "playing": "再生中",
"transcoding": "Transcoding", "transcoding": "変換中",
"bitrate": "Bitrate", "bitrate": "ビットレート",
"no_active": "No Active Streams", "no_active": "アクティブ・ストリーム無し",
"movies": "Movies", "movies": "映画",
"series": "Series", "series": "シリーズ",
"episodes": "Episodes", "episodes": "エピソード",
"songs": "Songs" "songs": ""
}, },
"flood": { "flood": {
"download": "Download", "download": "ダウンロード",
"upload": "Upload", "upload": "アップロード",
"leech": "Leech", "leech": "Leech",
"seed": "Seed" "seed": "Seed"
}, },
"changedetectionio": { "changedetectionio": {
"totalObserved": "Total Observed", "totalObserved": "全観測数",
"diffsDetected": "Diffs Detected" "diffsDetected": "変更数"
}, },
"tautulli": { "tautulli": {
"playing": "Playing", "playing": "再生中",
"transcoding": "Transcoding", "transcoding": "変換中",
"bitrate": "Bitrate", "bitrate": "ビットレート",
"no_active": "No Active Streams" "no_active": "アクティブストリームなし"
}, },
"omada": { "omada": {
"connectedAp": "Connected APs", "connectedAp": "接続されたAP",
"activeUser": "Active devices", "activeUser": "アクティブデバイス",
"alerts": "Alerts", "alerts": "アラート",
"connectedGateway": "Connected gateways", "connectedGateway": "接続されたゲートウェイ",
"connectedSwitches": "Connected switches" "connectedSwitches": "接続スイッチ"
}, },
"nzbget": { "nzbget": {
"rate": "Rate", "rate": "速度",
"remaining": "Remaining", "remaining": "残り",
"downloaded": "Downloaded" "downloaded": "ダウンロード"
}, },
"plex": { "plex": {
"streams": "Active Streams", "streams": "アクティブストリーム",
"movies": "Movies", "movies": "映画",
"tv": "TV Shows" "tv": "テレビ番組",
"albums": "アルバム"
}, },
"sabnzbd": { "sabnzbd": {
"rate": "Rate", "rate": "速度",
"queue": "Queue", "queue": "キュー",
"timeleft": "Time Left" "timeleft": "残り時間"
}, },
"rutorrent": { "rutorrent": {
"active": "Active", "active": "アクティブ",
"upload": "Upload", "upload": "アップロード",
"download": "Download" "download": "ダウンロード"
}, },
"transmission": { "transmission": {
"download": "Download", "download": "ダウンロード",
"upload": "Upload", "upload": "アップロード",
"leech": "Leech", "leech": "Leech",
"seed": "Seed" "seed": "Seed"
}, },
"qbittorrent": { "qbittorrent": {
"download": "Download", "download": "ダウンロード",
"upload": "Upload", "upload": "アップロード",
"leech": "Leech", "leech": "Leech",
"seed": "Seed" "seed": "Seed"
}, },
"deluge": { "deluge": {
"download": "Download", "download": "ダウンロード",
"upload": "Upload", "upload": "アップロード",
"leech": "Leech", "leech": "Leech",
"seed": "Seed" "seed": "Seed"
}, },
"downloadstation": { "downloadstation": {
"download": "Download", "download": "ダウンロード",
"upload": "Upload", "upload": "アップロード",
"leech": "Leech", "leech": "Leech",
"seed": "Seed" "seed": "Seed"
}, },
"sonarr": { "sonarr": {
"wanted": "Wanted", "wanted": "募集中",
"queued": "Queued", "queued": "待機中",
"series": "Series" "series": "シリーズ"
}, },
"radarr": { "radarr": {
"wanted": "Wanted", "wanted": "募集中",
"missing": "Missing", "missing": "不明",
"queued": "Queued", "queued": "キュー",
"movies": "Movies" "movies": "映画"
}, },
"lidarr": { "lidarr": {
"wanted": "Wanted", "wanted": "募集中",
"queued": "Queued", "queued": "キュー",
"albums": "Albums" "albums": "アルバム"
}, },
"readarr": { "readarr": {
"wanted": "Wanted", "wanted": "募集中",
"queued": "Queued", "queued": "待機中",
"books": "Books" "books": "書籍"
}, },
"bazarr": { "bazarr": {
"missingEpisodes": "Missing Episodes", "missingEpisodes": "欠番エピソード",
"missingMovies": "Missing Movies" "missingMovies": "不明・映画"
}, },
"ombi": { "ombi": {
"pending": "Pending", "pending": "保留中",
"approved": "Approved", "approved": "承認済",
"available": "Available" "available": "利用可"
}, },
"jellyseerr": { "jellyseerr": {
"pending": "Pending", "pending": "保留中",
"approved": "Approved", "approved": "承認済",
"available": "Available" "available": "利用可"
}, },
"overseerr": { "overseerr": {
"pending": "Pending", "pending": "保留中",
"processing": "Processing", "processing": "処理中",
"approved": "Approved", "approved": "承認済",
"available": "Available" "available": "利用可"
}, },
"pihole": { "pihole": {
"queries": "Queries", "queries": "クエリ",
"blocked": "Blocked", "blocked": "ブロック中",
"gravity": "Gravity" "gravity": "グラビティ",
"blocked_percent": "Blocked %"
}, },
"adguard": { "adguard": {
"queries": "Queries", "queries": "クエリ",
"blocked": "Blocked", "blocked": "ブロック中",
"filtered": "Filtered", "filtered": "フィルタ済",
"latency": "Latency" "latency": "遅延"
}, },
"speedtest": { "speedtest": {
"upload": "Upload", "upload": "アップロード",
"download": "Download", "download": "ダウンロード",
"ping": "Ping" "ping": "Ping"
}, },
"portainer": { "portainer": {
"running": "Running", "running": "起動中",
"stopped": "Stopped", "stopped": "停止中",
"total": "Total" "total": "合計"
}, },
"tdarr": { "tdarr": {
"queue": "Queue", "queue": "キュー",
"processed": "Processed", "processed": "処理済み",
"errored": "Errored", "errored": "エラー",
"saved": "Saved" "saved": "保存"
}, },
"traefik": { "traefik": {
"routers": "Routers", "routers": "ルーター",
"services": "Services", "services": "サービス",
"middleware": "Middleware" "middleware": "ミドルウェア"
}, },
"coinmarketcap": { "coinmarketcap": {
"configure": "Configure one or more crypto currencies to track", "configure": "1つ以上の暗号通貨を設定して追跡",
"1hour": "1 Hour", "1hour": "1時間",
"1day": "1 Day", "1day": "1",
"7days": "7 Days", "7days": "7日間",
"30days": "30 Days" "30days": "30日間"
}, },
"gotify": { "gotify": {
"apps": "Applications", "apps": "アプリケーション",
"clients": "Clients", "clients": "クライアント",
"messages": "Messages" "messages": "メッセージ"
}, },
"prowlarr": { "prowlarr": {
"enableIndexers": "Indexers", "enableIndexers": "Indexers",
"numberOfGrabs": "Grabs", "numberOfGrabs": "Grabs",
"numberOfQueries": "Queries", "numberOfQueries": "クエリ",
"numberOfFailGrabs": "Fail Grabs", "numberOfFailGrabs": "Fail Grabs",
"numberOfFailQueries": "Fail Queries" "numberOfFailQueries": "Fail Queries"
}, },
"jackett": { "jackett": {
"configured": "Configured", "configured": "設定済",
"errored": "Errored" "errored": "エラー"
}, },
"mastodon": { "mastodon": {
"user_count": "Users", "user_count": "ユーザー",
"status_count": "Posts", "status_count": "ポスト",
"domain_count": "Domains" "domain_count": "ドメイン"
}, },
"miniflux": { "miniflux": {
"read": "Read", "read": "Read",
"unread": "Unread" "unread": "Unread"
}, },
"authentik": { "authentik": {
"users": "Users", "users": "ユーザー",
"loginsLast24H": "Logins (24h)", "loginsLast24H": "ログイン (24時間)",
"failedLoginsLast24H": "Failed Logins (24h)" "failedLoginsLast24H": "ログイン失敗(24時間)"
}, },
"proxmox": { "proxmox": {
"mem": "MEM", "mem": "MEM",
"cpu": "CPU", "cpu": "CPU",
"lxc": "LXC", "lxc": "LXC",
"vms": "VMs" "vms": "VM"
}, },
"quicklaunch": { "quicklaunch": {
"bookmark": "Bookmark", "bookmark": "ブックマーク",
"service": "Service", "service": "サービス",
"search": "Search", "search": "検索",
"custom": "Custom", "custom": "カスタム",
"visit": "Visit", "visit": "訪問",
"url": "URL" "url": "URL"
}, },
"wmo": { "wmo": {
"0-day": "Sunny", "0-day": "晴れ",
"1-day": "Mainly Sunny", "1-day": "ほぼ晴れ",
"0-night": "Clear", "0-night": "晴れ",
"1-night": "Mainly Clear", "1-night": "ほぼ晴れ",
"2-day": "Partly Cloudy", "2-day": "一時くもり",
"2-night": "Partly Cloudy", "2-night": "一部くもり",
"3-day": "Cloudy", "3-day": "くもり",
"3-night": "Cloudy", "3-night": "くもり",
"45-day": "Foggy", "45-day": "",
"45-night": "Foggy", "45-night": "",
"48-day": "Foggy", "48-day": "",
"48-night": "Foggy", "48-night": "",
"51-day": "Light Drizzle", "51-day": "霧雨",
"51-night": "Light Drizzle", "51-night": "霧雨",
"53-day": "Drizzle", "53-day": "霧雨",
"53-night": "Drizzle", "53-night": "霧雨",
"55-day": "Heavy Drizzle", "55-day": "霧雨",
"55-night": "Heavy Drizzle", "55-night": "霧雨",
"56-day": "Light Freezing Drizzle", "56-day": "霧雨",
"56-night": "Light Freezing Drizzle", "56-night": "霧雨",
"57-day": "Freezing Drizzle", "57-day": "霧雨",
"57-night": "Freezing Drizzle", "57-night": "霧雨",
"61-day": "Light Rain", "61-day": "小雨",
"61-night": "Light Rain", "61-night": "小雨",
"63-day": "Rain", "63-day": "",
"63-night": "Rain", "63-night": "",
"67-night": "Freezing Rain", "67-night": "",
"71-day": "Light Snow", "71-day": "",
"65-day": "Heavy Rain", "65-day": "大雨",
"65-night": "Heavy Rain", "65-night": "大雨",
"66-day": "Freezing Rain", "66-day": "",
"66-night": "Freezing Rain", "66-night": "",
"67-day": "Freezing Rain", "67-day": "",
"71-night": "Light Snow", "71-night": "",
"73-day": "Snow", "73-day": "",
"73-night": "Snow", "73-night": "",
"75-day": "Heavy Snow", "75-day": "大雪",
"75-night": "Heavy Snow", "75-night": "大雪",
"77-day": "Snow Grains", "77-day": "粒雪",
"77-night": "Snow Grains", "77-night": "粒雪",
"80-day": "Light Showers", "80-day": "にわか雨",
"80-night": "Light Showers", "80-night": "にわか雨",
"81-day": "Showers", "81-day": "にわか雨",
"81-night": "Showers", "81-night": "にわか雨",
"82-day": "Heavy Showers", "82-day": "強いにわか雨",
"82-night": "Heavy Showers", "82-night": "強いにわか雨",
"85-day": "Snow Showers", "85-day": "にわか雪",
"85-night": "Snow Showers", "85-night": "にわか雪",
"86-day": "Snow Showers", "86-day": "にわか雪",
"86-night": "Snow Showers", "86-night": "にわか雪",
"95-day": "Thunderstorm", "95-day": "雷雨",
"95-night": "Thunderstorm", "95-night": "雷雨",
"96-day": "Thunderstorm With Hail", "96-day": "雷雨・ひょう",
"96-night": "Thunderstorm With Hail", "96-night": "雷雨・ひょう",
"99-day": "Thunderstorm With Hail", "99-day": "雷雨・ひょう",
"99-night": "Thunderstorm With Hail" "99-night": "雷雨・ひょう"
}, },
"homebridge": { "homebridge": {
"available_update": "System", "available_update": "システム",
"updates": "Updates", "updates": "アップデート",
"update_available": "Update Available", "update_available": "更新あり",
"up_to_date": "Up to Date", "up_to_date": "最新",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}", "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up", "up": "Up",
@@ -379,67 +381,67 @@
"down": "Down" "down": "Down"
}, },
"watchtower": { "watchtower": {
"containers_scanned": "Scanned", "containers_scanned": "スキャン済",
"containers_updated": "Updated", "containers_updated": "更新済",
"containers_failed": "Failed" "containers_failed": "失敗"
}, },
"tubearchivist": { "tubearchivist": {
"downloads": "Queue", "downloads": "キュー",
"videos": "Videos", "videos": "ビデオ",
"channels": "Channels", "channels": "チャンネル",
"playlists": "Playlists" "playlists": "プレイリスト"
}, },
"truenas": { "truenas": {
"load": "System Load", "load": "システム負荷",
"uptime": "Uptime", "uptime": "稼働時間",
"alerts": "Alerts", "alerts": "アラート",
"time": "{{value, number(style: unit; unitDisplay: long;)}}" "time": "{{value, number(style: unit; unitDisplay: long;)}}"
}, },
"pyload": { "pyload": {
"speed": "Speed", "speed": "スピード",
"active": "Active", "active": "アクティブ",
"queue": "Queue", "queue": "キュー",
"total": "Total" "total": "合計"
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Channels", "channels": "チャンネル",
"hd": "HD" "hd": "HD"
}, },
"scrutiny": { "scrutiny": {
"passed": "Passed", "passed": "合格",
"failed": "Failed", "failed": "失敗",
"unknown": "Unknown" "unknown": "不明"
}, },
"paperlessngx": { "paperlessngx": {
"inbox": "Inbox", "inbox": "受信箱",
"total": "Total" "total": "合計"
}, },
"nextdns": { "nextdns": {
"wait": "Please Wait", "wait": "お待ちください",
"no_devices": "No Device Data Received" "no_devices": "デバイス データを受信していません"
}, },
"mikrotik": { "mikrotik": {
"cpuLoad": "CPU Load", "cpuLoad": "CPU負荷",
"memoryUsed": "Memory Used", "memoryUsed": "使用メモリ",
"uptime": "Uptime", "uptime": "稼働時間",
"numberOfLeases": "Leases" "numberOfLeases": "リース"
}, },
"xteve": { "xteve": {
"streams_all": "All Streams", "streams_all": "全ストリーム",
"streams_active": "Active Streams", "streams_active": "アクティブ・ストリーム",
"streams_xepg": "XEPG Channels" "streams_xepg": "XEPGチャンネル"
}, },
"opnsense": { "opnsense": {
"cpu": "CPU Load", "cpu": "CPU負荷",
"memory": "Active Memory", "memory": "アクティブ・メモリ",
"wanUpload": "WAN Upload", "wanUpload": "WANアップロード",
"wanDownload": "WAN Download" "wanDownload": "WANダウンロード"
}, },
"moonraker": { "moonraker": {
"printer_state": "Printer State", "printer_state": "プリンタの状態",
"print_status": "Print Status", "print_status": "印刷状況",
"print_progress": "Progress", "print_progress": "進捗状況",
"layers": "Layers" "layers": "レイヤー"
}, },
"medusa": { "medusa": {
"wanted": "Wanted", "wanted": "Wanted",
@@ -447,120 +449,184 @@
"series": "Series" "series": "Series"
}, },
"octoprint": { "octoprint": {
"temp_bed": "Bed temp", "temp_bed": "ベッド温度",
"printer_state": "Status", "printer_state": "状態",
"temp_tool": "Tool temp", "temp_tool": "ツール温度",
"job_completion": "Completion" "job_completion": "完了"
}, },
"cloudflared": { "cloudflared": {
"origin_ip": "Origin IP", "origin_ip": "オリジンIP",
"status": "Status" "status": "状態"
}, },
"proxmoxbackupserver": { "proxmoxbackupserver": {
"datastore_usage": "Datastore", "datastore_usage": "Datastore",
"failed_tasks_24h": "Failed Tasks 24h", "failed_tasks_24h": "失敗タスク(24h)",
"cpu_usage": "CPU", "cpu_usage": "CPU",
"memory_usage": "Memory" "memory_usage": "メモリ"
}, },
"immich": { "immich": {
"users": "Users", "users": "ユーザ",
"photos": "Photos", "photos": "写真",
"videos": "Videos", "videos": "ビデオ",
"storage": "Storage" "storage": "ストレージ"
}, },
"uptimekuma": { "uptimekuma": {
"up": "Sites Up", "up": "サイトUp",
"down": "Sites Down", "down": "サイトDown",
"uptime": "Uptime", "uptime": "稼働時間",
"incident": "Incident", "incident": "Incident",
"m": "m" "m": "m"
}, },
"komga": { "komga": {
"libraries": "Libraries", "libraries": "ライブラリ",
"series": "Series", "series": "シリーズ",
"books": "Books" "books": "書籍"
}, },
"mylar": { "mylar": {
"series": "Series", "series": "シリーズ",
"issues": "Issues", "issues": "Issues",
"wanted": "Wanted" "wanted": "Wanted"
}, },
"photoprism": { "photoprism": {
"albums": "Albums", "albums": "アルバム",
"photos": "Photos", "photos": "写真",
"videos": "Videos", "videos": "ビデオ",
"people": "People" "people": ""
}, },
"diskstation": { "diskstation": {
"days": "Days", "days": "",
"uptime": "Uptime", "uptime": "稼働時間",
"volumeAvailable": "Available" "volumeAvailable": "利用可能"
}, },
"fileflows": { "fileflows": {
"queue": "Queue", "queue": "キュー",
"processing": "Processing", "processing": "処理中",
"processed": "Processed", "processed": "処理済み",
"time": "Time" "time": "時間"
}, },
"grafana": { "grafana": {
"dashboards": "Dashboards", "dashboards": "ダッシュ ボード",
"datasources": "Data Sources", "datasources": "データソース",
"totalalerts": "Total Alerts", "totalalerts": "アラート総数",
"alertstriggered": "Alerts Triggered" "alertstriggered": "トリガーされたアラート"
}, },
"nextcloud": { "nextcloud": {
"cpuload": "Cpu Load", "cpuload": "CPU負荷",
"memoryusage": "Memory Usage", "memoryusage": "メモリ使用量",
"freespace": "Free Space", "freespace": "空き容量",
"activeusers": "Active Users" "activeusers": "アクティブユーザー",
"numfiles": "ファイル",
"numshares": "共有アイテム"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "状態",
"size": "Size", "size": "サイズ",
"lastrun": "Last Run", "lastrun": "最終実行",
"nextrun": "Next Run", "nextrun": "次の実行",
"failed": "Failed" "failed": "失敗"
}, },
"unmanic": { "unmanic": {
"active_workers": "Active Workers", "active_workers": "アクティブ・ワーカー",
"total_workers": "Total Workers", "total_workers": "トータル・ワーカー",
"records_total": "Queue Length" "records_total": "キューの長さ"
}, },
"healthchecks": { "healthchecks": {
"never": "No pings yet", "never": "まだPingはありません",
"new": "New", "new": "New",
"up": "Online", "up": "オンライン",
"grace": "In Grace Period", "grace": "猶予期間中",
"down": "Offline", "down": "オフライン",
"paused": "Paused", "paused": "一時停止中",
"status": "Status", "status": "状態",
"last_ping": "Last Ping" "last_ping": "最後のPing"
}, },
"pterodactyl": { "pterodactyl": {
"servers": "Servers", "servers": "サーバ",
"nodes": "Nodes" "nodes": "ノード"
}, },
"prometheus": { "prometheus": {
"targets_up": "Targets Up", "targets_up": "ターゲットUp",
"targets_down": "Targets Down", "targets_down": "ターゲット Down",
"targets_total": "Total Targets" "targets_total": "ターゲット合計"
}, },
"minecraft": { "minecraft": {
"players": "Players", "players": "プレイヤー",
"version": "Version", "version": "バージョン",
"status": "Status", "status": "状態",
"up": "Online", "up": "オンライン",
"down": "Offline" "down": "オフライン"
}, },
"ghostfolio": { "ghostfolio": {
"gross_percent_max": "All time", "gross_percent_max": "全期間",
"gross_percent_today": "Today", "gross_percent_today": "今日",
"gross_percent_1y": "One year" "gross_percent_1y": "1年"
}, },
"audiobookshelf": { "audiobookshelf": {
"podcasts": "Podcasts", "podcasts": "ポッドキャスト",
"books": "Books", "books": "書籍",
"podcastsDuration": "Duration", "podcastsDuration": "時間",
"booksDuration": "Duration" "booksDuration": "時間"
},
"homeassistant": {
"people_home": "ホーム人数",
"lights_on": "点灯",
"switches_on": "スイッチオン"
},
"freshrss": {
"subscriptions": "購読",
"unread": "未読"
},
"channelsdvrserver": {
"shows": "ショー",
"recordings": "レコーディング",
"scheduled": "予定済",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "アップデート"
},
"tailscale": {
"address": "アドレス",
"expires": "失効",
"never": "なし",
"last_seen": "最終日時",
"now": "現在",
"years": "{{number}}年",
"weeks": "{{number}}月",
"days": "{{number}}日",
"hours": "{{number}}時間",
"minutes": "{{number}}分",
"seconds": "{{number}}秒",
"ago": "{{value}} 前"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"up": "Up",
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"watt_hour": "Wh",
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger"
} }
} }

View File

@@ -128,7 +128,8 @@
"plex": { "plex": {
"streams": "활성 스트림", "streams": "활성 스트림",
"movies": "영화", "movies": "영화",
"tv": "TV 쇼" "tv": "TV 쇼",
"albums": "Albums"
}, },
"sabnzbd": { "sabnzbd": {
"rate": "비율", "rate": "비율",
@@ -203,7 +204,8 @@
"pihole": { "pihole": {
"queries": "쿼리", "queries": "쿼리",
"blocked": "차단됨", "blocked": "차단됨",
"gravity": "Gravity" "gravity": "Gravity",
"blocked_percent": "Blocked %"
}, },
"adguard": { "adguard": {
"queries": "쿼리", "queries": "쿼리",
@@ -533,7 +535,9 @@
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP",
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -114,7 +114,8 @@
"plex": { "plex": {
"streams": "Aktīvās straumes", "streams": "Aktīvās straumes",
"movies": "Filmas", "movies": "Filmas",
"tv": "TV pārraides" "tv": "TV pārraides",
"albums": "Albums"
}, },
"sabnzbd": { "sabnzbd": {
"rate": "Rate", "rate": "Rate",
@@ -194,7 +195,8 @@
"pihole": { "pihole": {
"queries": "Queries", "queries": "Queries",
"blocked": "Blocked", "blocked": "Blocked",
"gravity": "Gravity" "gravity": "Gravity",
"blocked_percent": "Blocked %"
}, },
"adguard": { "adguard": {
"queries": "Queries", "queries": "Queries",
@@ -512,7 +514,9 @@
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -201,7 +201,8 @@
"plex": { "plex": {
"streams": "Strim Aktif", "streams": "Strim Aktif",
"movies": "Filem", "movies": "Filem",
"tv": "Rancangan TV" "tv": "Rancangan TV",
"albums": "Albums"
}, },
"sabnzbd": { "sabnzbd": {
"rate": "Kadar", "rate": "Kadar",
@@ -254,7 +255,8 @@
"pihole": { "pihole": {
"queries": "Permintaan", "queries": "Permintaan",
"blocked": "Disekat", "blocked": "Disekat",
"gravity": "Gravity" "gravity": "Gravity",
"blocked_percent": "Blocked %"
}, },
"adguard": { "adguard": {
"queries": "Permintaan", "queries": "Permintaan",
@@ -512,7 +514,9 @@
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -92,7 +92,8 @@
"pihole": { "pihole": {
"queries": "Spørringer", "queries": "Spørringer",
"blocked": "Blokkert", "blocked": "Blokkert",
"gravity": "Gravitet" "gravity": "Gravitet",
"blocked_percent": "Blocked %"
}, },
"speedtest": { "speedtest": {
"upload": "Opplasting", "upload": "Opplasting",
@@ -228,7 +229,8 @@
"plex": { "plex": {
"streams": "Active Streams", "streams": "Active Streams",
"movies": "Movies", "movies": "Movies",
"tv": "TV Shows" "tv": "TV Shows",
"albums": "Albums"
}, },
"glances": { "glances": {
"cpu": "CPU", "cpu": "CPU",
@@ -512,7 +514,9 @@
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -108,7 +108,8 @@
"pihole": { "pihole": {
"queries": "Queries", "queries": "Queries",
"blocked": "Geblokkeerd", "blocked": "Geblokkeerd",
"gravity": "Gravity" "gravity": "Gravity",
"blocked_percent": "Blocked %"
}, },
"traefik": { "traefik": {
"routers": "Routers", "routers": "Routers",
@@ -228,7 +229,8 @@
"plex": { "plex": {
"streams": "Actieve Streams", "streams": "Actieve Streams",
"movies": "Films", "movies": "Films",
"tv": "TV Series" "tv": "TV Series",
"albums": "Albums"
}, },
"glances": { "glances": {
"cpu": "CPU", "cpu": "CPU",
@@ -512,7 +514,9 @@
"cpuload": "Cpu Belasting", "cpuload": "Cpu Belasting",
"memoryusage": "Geheugen Gebruik", "memoryusage": "Geheugen Gebruik",
"freespace": "Vrije Ruimte", "freespace": "Vrije Ruimte",
"activeusers": "Actieve Gebruikers" "activeusers": "Actieve Gebruikers",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Boeken", "books": "Boeken",
"podcastsDuration": "Duur", "podcastsDuration": "Duur",
"booksDuration": "Duur" "booksDuration": "Duur"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -15,23 +15,23 @@
"free": "Wolne", "free": "Wolne",
"cpu": "CPU", "cpu": "CPU",
"mem": "PAM", "mem": "PAM",
"temp": "TEMP", "temp": "TEMP.",
"max": "Max", "max": "Maks",
"uptime": "UP", "uptime": "CZAS",
"months": "mo", "months": "miesiąc",
"days": "d", "days": "dni",
"hours": "h", "hours": "godz",
"minutes": "m" "minutes": "min"
}, },
"emby": { "emby": {
"no_active": "Brak aktywnych strumieni", "no_active": "Brak aktywnych strumieni",
"playing": "Odtwarzanie", "playing": "Odtwarzanie",
"transcoding": "Transkodowanie", "transcoding": "Transkodowanie",
"bitrate": "Bitrate", "bitrate": "Bitrate",
"movies": "Movies", "movies": "Filmy",
"series": "Series", "series": "Seriale",
"episodes": "Episodes", "episodes": "Odcinki",
"songs": "Songs" "songs": "Piosenki"
}, },
"tautulli": { "tautulli": {
"playing": "Odtwarzanie", "playing": "Odtwarzanie",
@@ -79,11 +79,11 @@
"error": "Błąd", "error": "Błąd",
"unknown": "Nieznany", "unknown": "Nieznany",
"running": "Działa", "running": "Działa",
"starting": "Starting", "starting": "Rozpoczynanie",
"unhealthy": "Unhealthy", "unhealthy": "Niezdrowe",
"not_found": "Not Found", "not_found": "Nie znaleziono",
"exited": "Exited", "exited": "Exited",
"partial": "Partial", "partial": "Częściowe",
"healthy": "Zdrowy" "healthy": "Zdrowy"
}, },
"nzbget": { "nzbget": {
@@ -151,7 +151,8 @@
"pihole": { "pihole": {
"queries": "Zapytania", "queries": "Zapytania",
"blocked": "Zablokowane", "blocked": "Zablokowane",
"gravity": "Gravity" "gravity": "Grawitacja",
"blocked_percent": "Blocked %"
}, },
"traefik": { "traefik": {
"routers": "Routery", "routers": "Routery",
@@ -228,16 +229,17 @@
"plex": { "plex": {
"streams": "Aktywne strumienie", "streams": "Aktywne strumienie",
"movies": "Filmy", "movies": "Filmy",
"tv": "Seriale" "tv": "Seriale",
"albums": "Albumy"
}, },
"glances": { "glances": {
"cpu": "Procesor", "cpu": "Procesor",
"mem": "Pamięć", "mem": "Pamięć",
"wait": "Proszę czekać", "wait": "Proszę czekać",
"temp": "TEMP", "temp": "TEMP",
"uptime": "UP", "uptime": "CZAS",
"days": "d", "days": "dni",
"hours": "h" "hours": "godz"
}, },
"changedetectionio": { "changedetectionio": {
"diffsDetected": "Wykryto różnic", "diffsDetected": "Wykryto różnic",
@@ -304,10 +306,10 @@
"quicklaunch": { "quicklaunch": {
"bookmark": "Zakładka", "bookmark": "Zakładka",
"service": "Usługi", "service": "Usługi",
"search": "Search", "search": "Wyszukaj",
"custom": "Custom", "custom": "Niestandardowe",
"visit": "Visit", "visit": "Odwiedź",
"url": "URL" "url": "Adres URL"
}, },
"homebridge": { "homebridge": {
"available_update": "System", "available_update": "System",
@@ -317,7 +319,7 @@
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}", "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up", "up": "Up",
"pending": "Pending", "pending": "Oczekujące",
"down": "Down" "down": "Down"
}, },
"autobrr": { "autobrr": {
@@ -368,7 +370,7 @@
}, },
"scrutiny": { "scrutiny": {
"passed": "Powodzenie", "passed": "Powodzenie",
"failed": "Niepowodzenie", "failed": "Nieudane",
"unknown": "Nieznane" "unknown": "Nieznane"
}, },
"paperlessngx": { "paperlessngx": {
@@ -444,13 +446,13 @@
"medusa": { "medusa": {
"wanted": "Poszukiwane", "wanted": "Poszukiwane",
"queued": "Zakolejkowane", "queued": "Zakolejkowane",
"series": "Seria" "series": "Seriale"
}, },
"octoprint": { "octoprint": {
"printer_state": "Status", "printer_state": "Status",
"temp_tool": "Tool temp", "temp_tool": "Tool temp",
"temp_bed": "Bed temp", "temp_bed": "Bed temp",
"job_completion": "Completion" "job_completion": "Ukończono"
}, },
"cloudflared": { "cloudflared": {
"origin_ip": "Origin IP", "origin_ip": "Origin IP",
@@ -460,84 +462,86 @@
"datastore_usage": "Datastore", "datastore_usage": "Datastore",
"failed_tasks_24h": "Failed Tasks 24h", "failed_tasks_24h": "Failed Tasks 24h",
"cpu_usage": "CPU", "cpu_usage": "CPU",
"memory_usage": "Memory" "memory_usage": "Pamięć"
}, },
"immich": { "immich": {
"users": "Users", "users": "Użytkownicy",
"photos": "Photos", "photos": "Zdjęcia",
"videos": "Videos", "videos": "Filmy",
"storage": "Storage" "storage": "Pamięć"
}, },
"uptimekuma": { "uptimekuma": {
"up": "Sites Up", "up": "Sites Up",
"down": "Sites Down", "down": "Niedziałające strony",
"uptime": "Uptime", "uptime": "Czas działania",
"incident": "Incident", "incident": "Incydent",
"m": "m" "m": "min"
}, },
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Biblioteki",
"series": "Series", "series": "Seriale",
"books": "Books" "books": "Książki"
}, },
"mylar": { "mylar": {
"series": "Series", "series": "Seriale",
"issues": "Issues", "issues": "Zgłoszenia",
"wanted": "Wanted" "wanted": "Wanted"
}, },
"photoprism": { "photoprism": {
"albums": "Albums", "albums": "Albumy",
"photos": "Photos", "photos": "Zdjęcia",
"videos": "Videos", "videos": "Filmy",
"people": "People" "people": "Ludzie"
}, },
"diskstation": { "diskstation": {
"uptime": "Uptime", "uptime": "Czas działania",
"volumeAvailable": "Available", "volumeAvailable": "Dostępne",
"days": "Days" "days": "Dni"
}, },
"fileflows": { "fileflows": {
"queue": "Queue", "queue": "Kolejka",
"processing": "Processing", "processing": "Przetwarzanie",
"processed": "Processed", "processed": "Processed",
"time": "Time" "time": "Czas"
}, },
"grafana": { "grafana": {
"dashboards": "Dashboards", "dashboards": "Dashboards",
"datasources": "Data Sources", "datasources": "Źródła danych",
"totalalerts": "Total Alerts", "totalalerts": "Total Alerts",
"alertstriggered": "Alerts Triggered" "alertstriggered": "Alerts Triggered"
}, },
"nextcloud": { "nextcloud": {
"cpuload": "Cpu Load", "cpuload": "Obciążenie CPU",
"memoryusage": "Memory Usage", "memoryusage": "Użycie pamięci",
"freespace": "Free Space", "freespace": "Wolna przestrzeń",
"activeusers": "Active Users" "activeusers": "Aktywni użytkownicy",
"numfiles": "Pliki",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
"size": "Size", "size": "Rozmiar",
"lastrun": "Last Run", "lastrun": "Ostatnie uruchomienie",
"nextrun": "Next Run", "nextrun": "Next Run",
"failed": "Failed" "failed": "Nieudane"
}, },
"unmanic": { "unmanic": {
"active_workers": "Active Workers", "active_workers": "Aktywni pracownicy",
"total_workers": "Total Workers", "total_workers": "Total Workers",
"records_total": "Queue Length" "records_total": "Długość kolejki"
}, },
"healthchecks": { "healthchecks": {
"new": "New", "new": "Nowy",
"up": "Online", "up": "Online",
"grace": "In Grace Period", "grace": "In Grace Period",
"down": "Offline", "down": "Offline",
"paused": "Paused", "paused": "Zatrzymane",
"status": "Status", "status": "Status",
"last_ping": "Last Ping", "last_ping": "Last Ping",
"never": "No pings yet" "never": "No pings yet"
}, },
"pterodactyl": { "pterodactyl": {
"servers": "Servers", "servers": "Serwery",
"nodes": "Nodes" "nodes": "Nodes"
}, },
"prometheus": { "prometheus": {
@@ -546,21 +550,83 @@
"targets_total": "Total Targets" "targets_total": "Total Targets"
}, },
"minecraft": { "minecraft": {
"players": "Players", "players": "Gracze",
"version": "Version", "version": "Wersja",
"status": "Status", "status": "Status",
"up": "Online", "up": "Online",
"down": "Offline" "down": "Offline"
}, },
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Dzisiaj",
"gross_percent_1y": "One year", "gross_percent_1y": "Rok",
"gross_percent_max": "All time" "gross_percent_max": "All time"
}, },
"audiobookshelf": { "audiobookshelf": {
"podcasts": "Podcasts", "podcasts": "Podcasty",
"books": "Books", "books": "Książki",
"podcastsDuration": "Duration", "podcastsDuration": "Czas trwania",
"booksDuration": "Duration" "booksDuration": "Czas trwania"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subskrypcje",
"unread": "Nieprzeczytane"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Nagrywanie",
"scheduled": "W kolejce",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Aktualizacje"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -52,10 +52,10 @@
"load": "Carregamento", "load": "Carregamento",
"cpu": "CPU", "cpu": "CPU",
"mem": "MEM", "mem": "MEM",
"max": "Max", "max": "Máximo",
"temp": "TEMP", "temp": "TEMP",
"uptime": "UP", "uptime": "LIGADO",
"months": "mo", "months": "mês",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
"minutes": "m" "minutes": "m"
@@ -153,7 +153,8 @@
"pihole": { "pihole": {
"queries": "Consultas", "queries": "Consultas",
"blocked": "Bloqueados", "blocked": "Bloqueados",
"gravity": "Gravidade" "gravity": "Gravidade",
"blocked_percent": "Blocked %"
}, },
"adguard": { "adguard": {
"queries": "Consultas", "queries": "Consultas",
@@ -228,14 +229,15 @@
"plex": { "plex": {
"streams": "Transmissões ativas", "streams": "Transmissões ativas",
"movies": "Filmes", "movies": "Filmes",
"tv": "Séries de TV" "tv": "Séries de TV",
"albums": "Albums"
}, },
"glances": { "glances": {
"cpu": "CPU", "cpu": "CPU",
"mem": "MEM", "mem": "MEM",
"wait": "Por favor aguarde", "wait": "Por favor aguarde",
"temp": "TEMP", "temp": "TEMP",
"uptime": "UP", "uptime": "LIGADO",
"days": "d", "days": "d",
"hours": "h" "hours": "h"
}, },
@@ -316,9 +318,9 @@
"up_to_date": "Atualizado", "up_to_date": "Atualizado",
"child_bridges": "Pontes Filhas", "child_bridges": "Pontes Filhas",
"child_bridges_status": "{{ok}}/{{total}}", "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up", "up": "Ligado",
"pending": "Pendente", "pending": "Pendente",
"down": "Down" "down": "Desligado"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Aprovado", "approvedPushes": "Aprovado",
@@ -512,7 +514,9 @@
"cpuload": "Carga de CPU", "cpuload": "Carga de CPU",
"memoryusage": "Memória Utilizada", "memoryusage": "Memória Utilizada",
"freespace": "Espaço Livre", "freespace": "Espaço Livre",
"activeusers": "Usuários Ativos" "activeusers": "Usuários Ativos",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Livros", "books": "Livros",
"podcastsDuration": "Duração", "podcastsDuration": "Duração",
"booksDuration": "Duração" "booksDuration": "Duração"
},
"homeassistant": {
"people_home": "Pessoas em Casa",
"lights_on": "Luzes Ligadas",
"switches_on": "Interruptores Ligados"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"hours": "{{number}}h",
"days": "{{number}}d",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"systemTempC": "System Temp",
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -18,10 +18,10 @@
"load": "Carga", "load": "Carga",
"cpu": "CPU", "cpu": "CPU",
"mem": "MEM", "mem": "MEM",
"max": "Max", "max": "Máximo",
"temp": "TEMP", "temp": "TEMP",
"uptime": "UP", "uptime": "CIMA",
"months": "mo", "months": "mês",
"days": "d", "days": "d",
"hours": "h", "hours": "h",
"minutes": "m" "minutes": "m"
@@ -92,7 +92,8 @@
"pihole": { "pihole": {
"queries": "Consultas", "queries": "Consultas",
"blocked": "Bloqueado", "blocked": "Bloqueado",
"gravity": "Gravidade" "gravity": "Gravidade",
"blocked_percent": "Blocked %"
}, },
"speedtest": { "speedtest": {
"upload": "Envio", "upload": "Envio",
@@ -241,14 +242,15 @@
"plex": { "plex": {
"streams": "Streams Ativas", "streams": "Streams Ativas",
"movies": "Filmes", "movies": "Filmes",
"tv": "Series de TV" "tv": "Series de TV",
"albums": "Albums"
}, },
"glances": { "glances": {
"cpu": "CPU", "cpu": "CPU",
"mem": "MEM", "mem": "MEM",
"wait": "Por favor, aguarde", "wait": "Por favor, aguarde",
"temp": "TEMP", "temp": "TEMP",
"uptime": "UP", "uptime": "Cima",
"days": "d", "days": "d",
"hours": "h" "hours": "h"
}, },
@@ -331,7 +333,7 @@
"child_bridges_status": "{{ok}}/{{total}}", "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up", "up": "Up",
"pending": "Pendente", "pending": "Pendente",
"down": "Down" "down": "Baixo"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Aprovado", "approvedPushes": "Aprovado",
@@ -521,7 +523,9 @@
"cpuload": "Carga de CPU", "cpuload": "Carga de CPU",
"memoryusage": "Memória Utilizada", "memoryusage": "Memória Utilizada",
"freespace": "Espaço Livre", "freespace": "Espaço Livre",
"activeusers": "Utilizadores Ativos" "activeusers": "Utilizadores Ativos",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Estado", "status": "Estado",
@@ -550,8 +554,8 @@
"nodes": "Nós" "nodes": "Nós"
}, },
"prometheus": { "prometheus": {
"targets_up": "Targets Up", "targets_up": "Alvo ativo",
"targets_down": "Targets Down", "targets_down": "Alvo inativo",
"targets_total": "Total de Alvos" "targets_total": "Total de Alvos"
}, },
"minecraft": { "minecraft": {
@@ -571,5 +575,67 @@
"books": "Livros", "books": "Livros",
"podcastsDuration": "Duração", "podcastsDuration": "Duração",
"booksDuration": "Duração" "booksDuration": "Duração"
},
"homeassistant": {
"people_home": "Pessoas em Casa",
"lights_on": "Luzes Acesas",
"switches_on": "Interruptores Ligados"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanIP": "WAN IP",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -44,7 +44,8 @@
"pihole": { "pihole": {
"queries": "Cereri", "queries": "Cereri",
"blocked": "Blocate", "blocked": "Blocate",
"gravity": "Gravity" "gravity": "Gravity",
"blocked_percent": "Blocked %"
}, },
"adguard": { "adguard": {
"blocked": "Blocate", "blocked": "Blocate",
@@ -228,7 +229,8 @@
"plex": { "plex": {
"streams": "Fluxuri active", "streams": "Fluxuri active",
"movies": "Filme", "movies": "Filme",
"tv": "Seriale" "tv": "Seriale",
"albums": "Albums"
}, },
"glances": { "glances": {
"cpu": "Procesor", "cpu": "Procesor",
@@ -403,7 +405,7 @@
}, },
"common": { "common": {
"bibyterate": "{{valoare, rata(bits: fals; binar: adevarat)}}", "bibyterate": "{{valoare, rata(bits: fals; binar: adevarat)}}",
"bibitrate": "{{value, rate(bits: true; binary: true)}}" "bibitrate": "{{valoare, rata(biti: adevarat; binar: adevarat)}}"
}, },
"omada": { "omada": {
"connectedAp": "Connected APs", "connectedAp": "Connected APs",
@@ -512,7 +514,9 @@
"activeusers": "Active Users", "activeusers": "Active Users",
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space" "freespace": "Free Space",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Acutalizari"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -5,7 +5,7 @@
"status": "Статус", "status": "Статус",
"information": "Информация", "information": "Информация",
"url": "URL", "url": "URL",
"raw_error": "Raw Error", "raw_error": "Необработанная ошибка",
"response_data": "Данные ответа" "response_data": "Данные ответа"
}, },
"search": { "search": {
@@ -17,14 +17,14 @@
"used": "Использовано", "used": "Использовано",
"load": "Загрузка", "load": "Загрузка",
"cpu": "Процессор", "cpu": "Процессор",
"mem": "MEM", "mem": "Память",
"temp": "TEMP", "temp": "Температура",
"max": "Max", "max": "Макс.",
"uptime": "UP", "uptime": "UP",
"months": "mo", "months": "мес",
"days": "d", "days": "д",
"hours": "h", "hours": "ч",
"minutes": "m" "minutes": "м"
}, },
"docker": { "docker": {
"rx": "Rx", "rx": "Rx",
@@ -34,34 +34,34 @@
"offline": "Не в сети", "offline": "Не в сети",
"error": "Ошибка", "error": "Ошибка",
"unknown": "Неизвестный", "unknown": "Неизвестный",
"running": "Running", "running": "Запущенно",
"starting": "Starting", "starting": "Запускается",
"unhealthy": "Unhealthy", "unhealthy": "Не живой",
"not_found": "Not Found", "not_found": "Не найден",
"exited": "Exited", "exited": "Существует",
"partial": "Partial", "partial": "Частично",
"healthy": "Healthy" "healthy": "Живой"
}, },
"emby": { "emby": {
"playing": "Воспроизведение", "playing": "Воспроизведение",
"transcoding": "Транскодирование", "transcoding": "Транскодирование",
"bitrate": "Битрейт", "bitrate": "Битрейт",
"no_active": "Нет активных потоков", "no_active": "Нет активных потоков",
"movies": "Movies", "movies": "Фильмы",
"series": "Series", "series": "Сериалы",
"episodes": "Episodes", "episodes": "Эпизоды",
"songs": "Songs" "songs": "Песни"
}, },
"tautulli": { "tautulli": {
"playing": "Воспроизведение", "playing": "Воспроизведение",
"transcoding": "Транскодирование", "transcoding": "Транскодирование",
"bitrate": "Битрейт", "bitrate": "Битрейт",
"no_active": "No Active Streams" "no_active": "Нет активных трансляций"
}, },
"rutorrent": { "rutorrent": {
"active": "Активный", "active": "Активный",
"upload": "Загрузить", "upload": "Загрузка",
"download": "Скачать" "download": "Загрузка"
}, },
"sonarr": { "sonarr": {
"wanted": "Хотел", "wanted": "Хотел",
@@ -72,12 +72,12 @@
"wanted": "Хотел", "wanted": "Хотел",
"queued": "В очереди", "queued": "В очереди",
"movies": "Фильмы", "movies": "Фильмы",
"missing": "Missing" "missing": "Пропущено"
}, },
"readarr": { "readarr": {
"wanted": "Wanted", "wanted": "Хотел",
"queued": "Queued", "queued": "В очереди",
"books": "Books" "books": "Книги"
}, },
"ombi": { "ombi": {
"pending": "Ожидание", "pending": "Ожидание",
@@ -92,15 +92,16 @@
"pihole": { "pihole": {
"queries": "Запросы", "queries": "Запросы",
"blocked": "Заблокировано", "blocked": "Заблокировано",
"gravity": "Сила тяжести" "gravity": "Сила тяжести",
"blocked_percent": "Blocked %"
}, },
"speedtest": { "speedtest": {
"upload": "Загрузка", "upload": "Отдача",
"download": "Скачать", "download": "Загрузка",
"ping": "пинг" "ping": "Пинг"
}, },
"portainer": { "portainer": {
"running": "Запущено", "running": "Запущенно",
"stopped": "Остановлено", "stopped": "Остановлено",
"total": "Всего" "total": "Всего"
}, },
@@ -121,92 +122,92 @@
"updating": "Обновление" "updating": "Обновление"
}, },
"overseerr": { "overseerr": {
"pending": "Pending", "pending": "Ожидание",
"approved": "Approved", "approved": "Одобрено",
"available": "Available", "available": "Доступно",
"processing": "Processing" "processing": "Обработка"
}, },
"sabnzbd": { "sabnzbd": {
"rate": "Rate", "rate": "Оценка",
"queue": "Queue", "queue": "Очередь",
"timeleft": "Time Left" "timeleft": "Осталось времени"
}, },
"nzbget": { "nzbget": {
"rate": "Rate", "rate": "Оценка",
"remaining": "Remaining", "remaining": "Осталось",
"downloaded": "Downloaded" "downloaded": "Загружено"
}, },
"coinmarketcap": { "coinmarketcap": {
"configure": "Configure one or more crypto currencies to track", "configure": "Настройте одну или несколько криптовалют для отслеживания",
"1hour": "1 Hour", "1hour": "1 Час",
"1day": "1 Day", "1day": "1 День",
"7days": "7 Days", "7days": "7 Дней",
"30days": "30 Дней" "30days": "30 Дней"
}, },
"gotify": { "gotify": {
"apps": "Applications", "apps": "Приложения",
"clients": "Clients", "clients": "Клиенты",
"messages": "Messages" "messages": "Сообщения"
}, },
"prowlarr": { "prowlarr": {
"enableIndexers": "Indexers", "enableIndexers": "Индексаторы",
"numberOfGrabs": "Grabs", "numberOfGrabs": "Захваты",
"numberOfQueries": "Queries", "numberOfQueries": "Запросы",
"numberOfFailGrabs": "Fail Grabs", "numberOfFailGrabs": "Неудачные захваты",
"numberOfFailQueries": "Fail Queries" "numberOfFailQueries": "Неудачные запросы"
}, },
"transmission": { "transmission": {
"download": "Download", "download": "Загрузка",
"upload": "Upload", "upload": "Отдача",
"leech": "Leech", "leech": "Пиры",
"seed": "Seed" "seed": "Сиды"
}, },
"jackett": { "jackett": {
"configured": "Configured", "configured": "Настроено",
"errored": "Errored" "errored": "Ошибочно"
}, },
"bazarr": { "bazarr": {
"missingEpisodes": "Missing Episodes", "missingEpisodes": "Отсутствующие эпизоды",
"missingMovies": "Missing Movies" "missingMovies": "Отсутствующие фильмы"
}, },
"lidarr": { "lidarr": {
"wanted": "Wanted", "wanted": "Хотел",
"queued": "Queued", "queued": "В очереди",
"albums": "Albums" "albums": "Альбомы"
}, },
"adguard": { "adguard": {
"queries": "Queries", "queries": "Запросы",
"blocked": "Blocked", "blocked": "Заблокировано",
"filtered": "Filtered", "filtered": "Отсортировано",
"latency": "Latency" "latency": "Задержка"
}, },
"qbittorrent": { "qbittorrent": {
"download": "Download", "download": "Загрузка",
"upload": "Upload", "upload": "Отдача",
"leech": "Leech", "leech": "Пиры",
"seed": "Seed" "seed": "Сиды"
}, },
"mastodon": { "mastodon": {
"user_count": "Users", "user_count": "Пользователи",
"status_count": "Posts", "status_count": "Посты",
"domain_count": "Domains" "domain_count": "Домены"
}, },
"strelaysrv": { "strelaysrv": {
"numConnections": "Connections", "numConnections": "Соединения",
"dataRelayed": "Relayed", "dataRelayed": "Ретранслировано",
"transferRate": "Rate", "transferRate": "Оценка",
"numActiveSessions": "Sessions" "numActiveSessions": "Сессий"
}, },
"authentik": { "authentik": {
"users": "Users", "users": "Пользователи",
"loginsLast24H": "Logins (24h)", "loginsLast24H": "Входы (24ч)",
"failedLoginsLast24H": "Failed Logins (24h)" "failedLoginsLast24H": "Неудачные входы (24ч)"
}, },
"proxmox": { "proxmox": {
"mem": "MEM", "mem": "Память",
"cpu": "CPU", "cpu": "Процессор",
"lxc": "LXC", "lxc": "LXC",
"vms": "VMs" "vms": "Виртуальные машины"
}, },
"unifi": { "unifi": {
"users": "Пользователи", "users": "Пользователи",
@@ -215,151 +216,152 @@
"wan": "WAN", "wan": "WAN",
"lan_users": "Пользователи LAN", "lan_users": "Пользователи LAN",
"wlan_users": "Пользователи WLAN", "wlan_users": "Пользователи WLAN",
"up": "UP", "up": "Работает",
"down": "DOWN", "down": "Не работает",
"wait": "Подождите", "wait": "Пожалуйста, подождите",
"lan": "LAN", "lan": "LAN",
"wlan": "WLAN", "wlan": "WLAN",
"devices": "Устройства", "devices": "Устройства",
"lan_devices": "Устройства подключённые по LAN", "lan_devices": "Устройства подключённые по LAN",
"wlan_devices": "WLAN Devices", "wlan_devices": "Подключения WLAN",
"empty_data": "Subsystem status unknown" "empty_data": "Статус системы неизвестен"
}, },
"plex": { "plex": {
"streams": "Active Streams", "streams": "Активные трансляции",
"movies": "Movies", "movies": "Фильмы",
"tv": "TV Shows" "tv": "Передачи",
"albums": "Альбомы"
}, },
"glances": { "glances": {
"cpu": "CPU", "cpu": "Процессор",
"mem": "MEM", "mem": "Память",
"wait": "Please wait", "wait": "Пожалуйста, подождите",
"temp": "TEMP", "temp": "Температура",
"uptime": "UP", "uptime": "Работает",
"days": "d", "days": "д",
"hours": "h" "hours": "ч"
}, },
"changedetectionio": { "changedetectionio": {
"totalObserved": "Всего наблюдаемых", "totalObserved": "Всего наблюдаемых",
"diffsDetected": "Обнаружены различия" "diffsDetected": "Обнаружены различия"
}, },
"wmo": { "wmo": {
"0-day": "Sunny", "0-day": "Солнечно",
"0-night": "Clear", "0-night": "Ясно",
"71-night": "Light Snow", "71-night": "Лёгкий снег",
"73-day": "Snow", "73-day": "Снег",
"73-night": "Snow", "73-night": "Снег",
"75-day": "Heavy Snow", "75-day": "Сильный снегопад",
"75-night": "Heavy Snow", "75-night": "Сильный снегопад",
"77-day": "Snow Grains", "77-day": "Снежные зёрна",
"77-night": "Snow Grains", "77-night": "Снежные зёрна",
"80-day": "Light Showers", "80-day": "Слабый дождь",
"80-night": "Light Showers", "80-night": "Слабый дождь",
"81-day": "Showers", "81-day": "Ливень",
"1-day": "Mainly Sunny", "1-day": "Преимущественно солнечно",
"1-night": "Mainly Clear", "1-night": "Преимущественно ясно",
"2-day": "Partly Cloudy", "2-day": "Переменная облачность",
"2-night": "Partly Cloudy", "2-night": "Переменная облачность",
"3-day": "Cloudy", "3-day": "Облачно",
"3-night": "Cloudy", "3-night": "Облачно",
"45-day": "Foggy", "45-day": "Туманно",
"45-night": "Foggy", "45-night": "Туманно",
"48-day": "Foggy", "48-day": "Туманно",
"48-night": "Foggy", "48-night": "Туманно",
"51-day": "Light Drizzle", "51-day": "Слегка моросит",
"51-night": "Light Drizzle", "51-night": "Слегка моросит",
"53-day": "Drizzle", "53-day": "Моросит",
"53-night": "Drizzle", "53-night": "Моросит",
"55-day": "Heavy Drizzle", "55-day": "Сильно моросит",
"55-night": "Heavy Drizzle", "55-night": "Сильно моросит",
"56-day": "Light Freezing Drizzle", "56-day": "Лёгкая изморозь",
"56-night": "Light Freezing Drizzle", "56-night": "Лёгкая изморозь",
"57-day": "Freezing Drizzle", "57-day": "Изморозь",
"57-night": "Freezing Drizzle", "57-night": "Изморозь",
"61-day": "Light Rain", "61-day": "Лёгкий дождь",
"61-night": "Light Rain", "61-night": "Лёгкий дождь",
"63-day": "Rain", "63-day": "Дождь",
"63-night": "Rain", "63-night": "Дождь",
"65-day": "Heavy Rain", "65-day": "Сильный дождь",
"65-night": "Heavy Rain", "65-night": "Сильный дождь",
"66-day": "Freezing Rain", "66-day": "Ледяной дождь",
"66-night": "Freezing Rain", "66-night": "Ледяной дождь",
"67-day": "Freezing Rain", "67-day": "Ледяной дождь",
"67-night": "Freezing Rain", "67-night": "Ледяной дождь",
"71-day": "Light Snow", "71-day": "Лёгкий снег",
"81-night": "Showers", "81-night": "Ливень",
"82-day": "Heavy Showers", "82-day": "Сильный ливень",
"82-night": "Heavy Showers", "82-night": "Сильный ливень",
"85-day": "Snow Showers", "85-day": "Снегопад",
"85-night": "Snow Showers", "85-night": "Снегопад",
"86-day": "Snow Showers", "86-day": "Снегопад",
"86-night": "Snow Showers", "86-night": "Снегопад",
"95-day": "Thunderstorm", "95-day": "Гроза",
"95-night": "Thunderstorm", "95-night": "Гроза",
"96-day": "Thunderstorm With Hail", "96-day": "Гроза с градом",
"96-night": "Thunderstorm With Hail", "96-night": "Гроза с градом",
"99-day": "Thunderstorm With Hail", "99-day": "Гроза с градом",
"99-night": "Thunderstorm With Hail" "99-night": "Гроза с градом"
}, },
"quicklaunch": { "quicklaunch": {
"bookmark": "Bookmark", "bookmark": "Закладка",
"service": "Service", "service": "Сервис",
"search": "Search", "search": "Поиск",
"custom": "Custom", "custom": "Пользовательский",
"visit": "Visit", "visit": "Посетить",
"url": "URL" "url": "URL"
}, },
"homebridge": { "homebridge": {
"available_update": "System", "available_update": "Система",
"updates": "Updates", "updates": "Обновления",
"update_available": "Update Available", "update_available": "Доступные обновления",
"up_to_date": "Up to Date", "up_to_date": "Обновлено",
"child_bridges_status": "{{ok}}/{{total}}", "child_bridges_status": "{{ok}}/{{total}}",
"child_bridges": "Child Bridges", "child_bridges": "Дочерние мосты",
"up": "Up", "up": "Включено",
"pending": "Pending", "pending": "В ожидании",
"down": "Down" "down": "Выключено"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "Approved", "approvedPushes": "Одобрено",
"rejectedPushes": "Rejected", "rejectedPushes": "Отклонено",
"filters": "Filters", "filters": "Фильтры",
"indexers": "Indexers" "indexers": "Индексаторы"
}, },
"watchtower": { "watchtower": {
"containers_scanned": "Scanned", "containers_scanned": "Отсканировано",
"containers_updated": "Updated", "containers_updated": "Обновлено",
"containers_failed": "Failed" "containers_failed": "Неудачно"
}, },
"tubearchivist": { "tubearchivist": {
"downloads": "Queue", "downloads": "Очередь",
"videos": "Videos", "videos": "Видео",
"channels": "Channels", "channels": "Каналы",
"playlists": "Playlists" "playlists": "Плейлисты"
}, },
"truenas": { "truenas": {
"load": "System Load", "load": "Загрузка системы",
"uptime": "Uptime", "uptime": "Время работы",
"alerts": "Alerts", "alerts": "Уведомления",
"time": "{{value, number(style: unit; unitDisplay: long;)}}" "time": "{{value, number(style: unit; unitDisplay: long;)}}"
}, },
"navidrome": { "navidrome": {
"nothing_streaming": "No Active Streams", "nothing_streaming": "Нет активных трансляций",
"please_wait": "Please Wait" "please_wait": "Пожалуйста, подождите"
}, },
"pyload": { "pyload": {
"speed": "Speed", "speed": "Скорость",
"active": "Active", "active": "Активный",
"queue": "Queue", "queue": "Очередь",
"total": "Total" "total": "Всего"
}, },
"gluetun": { "gluetun": {
"public_ip": "Public IP", "public_ip": "Публичный IP",
"region": "Region", "region": "Регион",
"country": "Country" "country": "Страна"
}, },
"hdhomerun": { "hdhomerun": {
"channels": "Channels", "channels": "Каналы",
"hd": "HD" "hd": "HD"
}, },
"ping": { "ping": {
@@ -367,200 +369,264 @@
"ping": "Пинг" "ping": "Пинг"
}, },
"scrutiny": { "scrutiny": {
"failed": "Failed", "failed": "Неудачно",
"unknown": "Unknown", "unknown": "Неизвестный",
"passed": "Passed" "passed": "Пройдено"
}, },
"paperlessngx": { "paperlessngx": {
"inbox": "Inbox", "inbox": "Входящие",
"total": "Total" "total": "Всего"
}, },
"deluge": { "deluge": {
"download": "Download", "download": "Загрузка",
"upload": "Upload", "upload": "Отдача",
"leech": "Leech", "leech": "Пиры",
"seed": "Seed" "seed": "Сиды"
}, },
"flood": { "flood": {
"upload": "Upload", "upload": "Отдача",
"download": "Download", "download": "Загрузка",
"leech": "Leech", "leech": "Пиры",
"seed": "Seed" "seed": "Сиды"
}, },
"tdarr": { "tdarr": {
"queue": "Queue", "queue": "Очередь",
"processed": "Processed", "processed": "Обработано",
"errored": "Errored", "errored": "Ошибочно",
"saved": "Saved" "saved": "Сохранено"
}, },
"miniflux": { "miniflux": {
"read": "Read", "read": "Прочитанные",
"unread": "Unread" "unread": "Непрочитанные"
}, },
"nextdns": { "nextdns": {
"wait": "Please Wait", "wait": "Пожалуйста, подождите",
"no_devices": "No Device Data Received" "no_devices": "Данные устройства не получены"
}, },
"common": { "common": {
"bibyterate": "{{value, rate(bits: false; binary: true)}}", "bibyterate": "{{value, rate(bits: false; binary: true)}}",
"bibitrate": "{{value, rate(bits: true; binary: true)}}" "bibitrate": "{{value, rate(bits: true; binary: true)}}"
}, },
"omada": { "omada": {
"connectedSwitches": "Connected switches", "connectedSwitches": "Подключенные свитчи",
"connectedAp": "Connected APs", "connectedAp": "Подключенные точки доступа",
"activeUser": "Active devices", "activeUser": "Активные устройства",
"alerts": "Alerts", "alerts": "Оповещения",
"connectedGateway": "Connected gateways" "connectedGateway": "Подключенные шлюзы"
}, },
"downloadstation": { "downloadstation": {
"download": "Download", "download": "Загрузка",
"upload": "Upload", "upload": "Отдача",
"leech": "Leech", "leech": "Пиры",
"seed": "Seed" "seed": "Сиды"
}, },
"mikrotik": { "mikrotik": {
"cpuLoad": "CPU Load", "cpuLoad": "Загрузка процессора",
"memoryUsed": "Memory Used", "memoryUsed": "Использование памяти",
"uptime": "Uptime", "uptime": "Время работы",
"numberOfLeases": "Leases" "numberOfLeases": "Аренды"
}, },
"xteve": { "xteve": {
"streams_all": "All Streams", "streams_all": "Все трансляции",
"streams_active": "Active Streams", "streams_active": "Активные трансляции",
"streams_xepg": "XEPG Channels" "streams_xepg": "XEPG-каналы"
}, },
"opnsense": { "opnsense": {
"cpu": "CPU Load", "cpu": "Загрузка процессора",
"memory": "Active Memory", "memory": "Активная память",
"wanUpload": "WAN Upload", "wanUpload": "Отдача через WAN",
"wanDownload": "WAN Download" "wanDownload": "Загрузка через WAN"
}, },
"moonraker": { "moonraker": {
"printer_state": "Printer State", "printer_state": "Состояние принтера",
"print_status": "Print Status", "print_status": "Статус печати",
"print_progress": "Progress", "print_progress": "Прогресс",
"layers": "Layers" "layers": "Слои"
}, },
"medusa": { "medusa": {
"wanted": "Wanted", "wanted": "Хотел",
"queued": "Queued", "queued": "В очереди",
"series": "Series" "series": "Сериалы"
}, },
"octoprint": { "octoprint": {
"printer_state": "Status", "printer_state": "Статус",
"temp_tool": "Tool temp", "temp_tool": "Температура инструмента",
"temp_bed": "Bed temp", "temp_bed": "Температура стола",
"job_completion": "Completion" "job_completion": "Завершение"
}, },
"cloudflared": { "cloudflared": {
"origin_ip": "Origin IP", "origin_ip": "IP источника",
"status": "Status" "status": "Статус"
}, },
"proxmoxbackupserver": { "proxmoxbackupserver": {
"datastore_usage": "Datastore", "datastore_usage": "Хранилище данных",
"failed_tasks_24h": "Failed Tasks 24h", "failed_tasks_24h": "Неудачные задачи 24ч",
"cpu_usage": "CPU", "cpu_usage": "Процессор",
"memory_usage": "Memory" "memory_usage": "Память"
}, },
"immich": { "immich": {
"users": "Users", "users": "Пользователи",
"photos": "Photos", "photos": "Фотографии",
"videos": "Videos", "videos": "Видео",
"storage": "Storage" "storage": "Хранилище"
}, },
"uptimekuma": { "uptimekuma": {
"up": "Sites Up", "up": "Сайтов включено",
"down": "Sites Down", "down": "Сайтов выключено",
"uptime": "Uptime", "uptime": "Время работы",
"incident": "Incident", "incident": "Инцидент",
"m": "m" "m": "м"
}, },
"komga": { "komga": {
"libraries": "Libraries", "libraries": "Библиотеки",
"series": "Series", "series": "Серии",
"books": "Books" "books": "Книги"
}, },
"mylar": { "mylar": {
"series": "Series", "series": "Серии",
"issues": "Issues", "issues": "Проблемы",
"wanted": "Wanted" "wanted": "Хотел"
}, },
"photoprism": { "photoprism": {
"albums": "Albums", "albums": "Альбомы",
"photos": "Photos", "photos": "Фотографии",
"videos": "Videos", "videos": "Видео",
"people": "People" "people": "Люди"
}, },
"diskstation": { "diskstation": {
"days": "Days", "days": "Дней",
"uptime": "Uptime", "uptime": "Время работы",
"volumeAvailable": "Available" "volumeAvailable": "Доступно"
}, },
"fileflows": { "fileflows": {
"queue": "Queue", "queue": "Очередь",
"processing": "Processing", "processing": "Обработка",
"processed": "Processed", "processed": "Обработано",
"time": "Time" "time": "Время"
}, },
"grafana": { "grafana": {
"dashboards": "Dashboards", "dashboards": "Панели мониторинга",
"datasources": "Data Sources", "datasources": "Источники данных",
"totalalerts": "Total Alerts", "totalalerts": "Всего уведомлений",
"alertstriggered": "Alerts Triggered" "alertstriggered": "Уведомлений сработало"
}, },
"nextcloud": { "nextcloud": {
"cpuload": "Cpu Load", "cpuload": "Загрузка процессора",
"memoryusage": "Memory Usage", "memoryusage": "Использование памяти",
"freespace": "Free Space", "freespace": "Свободное место",
"activeusers": "Active Users" "activeusers": "Активные пользователи",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Статус",
"size": "Size", "size": "Размер",
"lastrun": "Last Run", "lastrun": "Последний запуск",
"nextrun": "Next Run", "nextrun": "Следующий запуск",
"failed": "Failed" "failed": "Неудачно"
}, },
"unmanic": { "unmanic": {
"active_workers": "Active Workers", "active_workers": "Активные воркеры",
"total_workers": "Total Workers", "total_workers": "Всего воркеров",
"records_total": "Queue Length" "records_total": "Длина запроса"
}, },
"healthchecks": { "healthchecks": {
"new": "New", "new": "Новые",
"up": "Online", "up": "Онлайн",
"grace": "In Grace Period", "grace": "В льготный период",
"down": "Offline", "down": "Офлайн",
"paused": "Paused", "paused": "Приостановлено",
"status": "Status", "status": "Статус",
"last_ping": "Last Ping", "last_ping": "Последний пинг",
"never": "No pings yet" "never": "Пока нет пингов"
}, },
"pterodactyl": { "pterodactyl": {
"servers": "Servers", "servers": "Сервера",
"nodes": "Nodes" "nodes": "Узлы"
}, },
"prometheus": { "prometheus": {
"targets_up": "Targets Up", "targets_up": "Целей включено",
"targets_down": "Targets Down", "targets_down": "Целей выключено",
"targets_total": "Total Targets" "targets_total": "Всего целей"
}, },
"minecraft": { "minecraft": {
"players": "Players", "players": "Игроков",
"version": "Version", "version": "Версия",
"status": "Status", "status": "Статус",
"up": "Online", "up": "Онлайн",
"down": "Offline" "down": "Офлайн"
}, },
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "Сегодня",
"gross_percent_1y": "One year", "gross_percent_1y": "1 год",
"gross_percent_max": "All time" "gross_percent_max": "За всё время"
}, },
"audiobookshelf": { "audiobookshelf": {
"podcasts": "Podcasts", "podcasts": "Подкасты",
"books": "Books", "books": "Книги",
"podcastsDuration": "Duration", "podcastsDuration": "Продолжительность",
"booksDuration": "Duration" "booksDuration": "Продолжительность"
},
"homeassistant": {
"people_home": "Людей дома",
"lights_on": "Включено света",
"switches_on": "Включено переключателей"
},
"freshrss": {
"subscriptions": "Подписки",
"unread": "Непрочитанные"
},
"channelsdvrserver": {
"shows": "Сериалы",
"recordings": "Записи",
"scheduled": "Запланировано",
"passes": "Пройдено"
},
"whatsupdocker": {
"monitoring": "Мониторинг",
"updates": "Обновления"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"disk": "Disk Usage",
"wanIP": "WAN IP",
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"home_power": "Consumption",
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -238,7 +238,8 @@
"plex": { "plex": {
"streams": "Active Streams", "streams": "Active Streams",
"movies": "Movies", "movies": "Movies",
"tv": "TV Shows" "tv": "TV Shows",
"albums": "Albums"
}, },
"sabnzbd": { "sabnzbd": {
"rate": "Rate", "rate": "Rate",
@@ -313,7 +314,8 @@
"pihole": { "pihole": {
"queries": "Queries", "queries": "Queries",
"blocked": "Blocked", "blocked": "Blocked",
"gravity": "Gravity" "gravity": "Gravity",
"blocked_percent": "Blocked %"
}, },
"adguard": { "adguard": {
"queries": "Queries", "queries": "Queries",
@@ -533,7 +535,9 @@
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users", "activeusers": "Active Users",
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage" "memoryusage": "Memory Usage",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"years": "{{number}}y",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"disk": "Disk Usage",
"down": "Down",
"temp": "Temp",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -0,0 +1,632 @@
{
"common": {
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
},
"jellyseerr": {
"available": "Na voljo",
"pending": "V teku",
"approved": "Odobreno"
},
"overseerr": {
"pending": "V teku",
"processing": "Procesiram",
"approved": "Odobreno",
"available": "Na voljo"
},
"pihole": {
"queries": "Poizvedbe",
"blocked": "Blokirano",
"gravity": "Gravitacija",
"blocked_percent": "Blokirano %"
},
"adguard": {
"filtered": "Filtrirano",
"latency": "Zakasnitev",
"queries": "Poizvedbe",
"blocked": "Blokirano"
},
"opnsense": {
"wanUpload": "WAN naloženo",
"wanDownload": "WAN prejeto",
"cpu": "CPU obremenitev",
"memory": "Aktiven spomin"
},
"octoprint": {
"temp_bed": "Temperatura postelje",
"job_completion": "Končano",
"printer_state": "Status",
"temp_tool": "Temperatura orodja"
},
"cloudflared": {
"origin_ip": "Izvorni IP",
"status": "Status"
},
"proxmoxbackupserver": {
"datastore_usage": "Shramba podatkov",
"failed_tasks_24h": "Opravila z napako 24h",
"cpu_usage": "CPU",
"memory_usage": "Spomin"
},
"mylar": {
"wanted": "Želeno",
"series": "Serije",
"issues": "Težave"
},
"photoprism": {
"albums": "Albumi",
"photos": "Slike",
"videos": "Videi",
"people": "Ljudje"
},
"grafana": {
"alertstriggered": "Sproženi alarmi",
"dashboards": "Nadzorne plošče",
"datasources": "Viri podatkov",
"totalalerts": "Skupaj alarmov"
},
"nextcloud": {
"cpuload": "CPU obremenitev",
"memoryusage": "Uporabljen spomin",
"freespace": "Prostor na voljo",
"activeusers": "Aktivni uporabniki",
"numfiles": "Datotek",
"numshares": "Deljeno"
},
"kopia": {
"status": "Stanje",
"size": "Velikost",
"lastrun": "Zadnji zagon",
"nextrun": "Naslednji zagon",
"failed": "Neuspešno"
},
"pterodactyl": {
"nodes": "Vozlišča",
"servers": "Strežniki"
},
"widget": {
"missing_type": "Manjka tip widgeta: {{type}}",
"api_error": "API napaka",
"information": "Informacija",
"raw_error": "Surova napaka",
"response_data": "Podatki iz odgovora",
"status": "Stanje",
"url": "URL"
},
"weather": {
"current": "Trenutna lokacija",
"allow": "Kliknite za dovolitev",
"updating": "Posodabljam",
"wait": "Prosimo počakajte"
},
"search": {
"placeholder": "Iskanje…"
},
"resources": {
"cpu": "CPU",
"mem": "MEM",
"total": "Skupaj",
"free": "Prosto",
"used": "V uporabi",
"load": "Bremenitev",
"temp": "TEMP",
"max": "Maks.",
"uptime": "Gor",
"months": "me",
"days": "d",
"hours": "u",
"minutes": "u"
},
"unifi": {
"devices": "Naprave",
"lan_devices": "LAN naprave",
"wlan_devices": "WLAN naprave",
"lan_users": "LAN uporabniki",
"wlan_users": "WLAN uporabniki",
"up": "Gor",
"down": "Dol",
"wait": "Prosimo počakajte",
"users": "Uporabniki",
"uptime": "Čas delovanja",
"days": "Dni",
"wan": "WAN",
"lan": "LAN",
"wlan": "WLAN",
"empty_data": "Neznani status podsistema"
},
"docker": {
"rx": "RX",
"tx": "TX",
"mem": "MEM",
"cpu": "CPU",
"running": "Deluje",
"offline": "Ni povezan",
"error": "Napaka",
"unknown": "Neznano",
"healthy": "Zdrav",
"starting": "Se zaganja",
"unhealthy": "Ni zdrav",
"not_found": "Ni najden",
"exited": "V izhodu",
"partial": "Delni"
},
"ping": {
"error": "Napaka",
"ping": "Ping"
},
"emby": {
"playing": "Predvaja",
"transcoding": "Transkodira",
"bitrate": "Pasovna širina",
"no_active": "Ni aktivne vsebine",
"movies": "Filmi",
"series": "Serije",
"episodes": "Epizode",
"songs": "Pesmi"
},
"tautulli": {
"transcoding": "Transkodira",
"bitrate": "Pasovna širina",
"playing": "Predvaja",
"no_active": "Ni aktivne vsebine"
},
"flood": {
"download": "Prenos",
"upload": "Nalaganje",
"leech": "Pijavka",
"seed": "Sejanje"
},
"changedetectionio": {
"totalObserved": "Skupaj opazovano",
"diffsDetected": "Zaznanih sprememb"
},
"omada": {
"connectedAp": "Povezanih AP",
"activeUser": "Aktivne naprave",
"alerts": "Opozorila",
"connectedGateway": "Povezan prehod",
"connectedSwitches": "Povezana stikala"
},
"nzbget": {
"rate": "Razmerje",
"remaining": "Še preostane",
"downloaded": "Preneseno"
},
"plex": {
"streams": "Aktivna vsebina",
"movies": "Filmi",
"tv": "TV serije",
"albums": "Albumi"
},
"sabnzbd": {
"rate": "Hitrost",
"queue": "Vrsta",
"timeleft": "Preostali čas"
},
"rutorrent": {
"active": "Aktiven",
"upload": "Nalaganje",
"download": "Prenašanje"
},
"transmission": {
"download": "Prenašanje",
"upload": "Nalaganje",
"leech": "Pijavk",
"seed": "Sejanje"
},
"qbittorrent": {
"download": "Prenos",
"upload": "Nalaganje",
"leech": "Pijavk",
"seed": "Sejanje"
},
"deluge": {
"download": "Prenos",
"upload": "Nalaganje",
"leech": "Pijavka",
"seed": "Sejanje"
},
"downloadstation": {
"download": "Prenos",
"upload": "Nalaganje",
"leech": "Pijavka",
"seed": "Sejanje"
},
"sonarr": {
"wanted": "Iskano",
"queued": "V vrsti",
"series": "Serije"
},
"radarr": {
"wanted": "Iskano",
"missing": "Manjka",
"queued": "V vrsti",
"movies": "Filmi"
},
"lidarr": {
"wanted": "Iskano",
"queued": "V vrsti",
"albums": "Albumi"
},
"readarr": {
"wanted": "Iskano",
"queued": "V vrsti",
"books": "Knjige"
},
"bazarr": {
"missingEpisodes": "Manjkajoče epizode",
"missingMovies": "Manjkajoči filmi"
},
"ombi": {
"pending": "V teku",
"approved": "Odobreno",
"available": "Na voljo"
},
"speedtest": {
"upload": "Nalaganje",
"download": "Prenašanje",
"ping": "Ping"
},
"portainer": {
"running": "Deluje",
"stopped": "Ustavljen",
"total": "Skupaj"
},
"tdarr": {
"queue": "Vrsta",
"processed": "Procesiran",
"errored": "Z napako",
"saved": "Shranjen"
},
"npm": {
"disabled": "Onemogočen",
"total": "Skupaj",
"enabled": "Omogočen"
},
"coinmarketcap": {
"configure": "Nastavite eno ali več kripto valut za sledenje",
"1hour": "1 ura",
"1day": "1 dan",
"7days": "7 dni",
"30days": "30 dni"
},
"traefik": {
"routers": "Usmerjevalniki",
"services": "Servisi",
"middleware": "Vmesna programska oprema"
},
"gotify": {
"apps": "Aplikacije",
"clients": "Klienti",
"messages": "Sporočila"
},
"navidrome": {
"nothing_streaming": "Ni aktivnega pretoka",
"please_wait": "Prosim počakajte"
},
"prowlarr": {
"enableIndexers": "Indekserji",
"numberOfGrabs": "Zajemi",
"numberOfQueries": "Poizvedbe",
"numberOfFailGrabs": "Neuspešni zajemi",
"numberOfFailQueries": "Neuspešne poizvedbe"
},
"jackett": {
"configured": "Nastavljeno",
"errored": "Z napakami"
},
"strelaysrv": {
"numActiveSessions": "Seje",
"numConnections": "Povezave",
"dataRelayed": "Preusmerjeno",
"transferRate": "Razmerje"
},
"mastodon": {
"user_count": "Uporabniki",
"status_count": "Objave",
"domain_count": "Domene"
},
"medusa": {
"wanted": "Želeno",
"queued": "V vrsti",
"series": "Serije"
},
"minecraft": {
"players": "Igralci",
"version": "Verzija",
"status": "Status",
"up": "Na spletu",
"down": "Brez povezave"
},
"miniflux": {
"read": "Prebrano",
"unread": "Neprebrano"
},
"proxmox": {
"lxc": "LXC",
"vms": "VM",
"mem": "MEM",
"cpu": "CPU"
},
"glances": {
"cpu": "CPU",
"mem": "MEM",
"wait": "Prosim počakajte",
"temp": "TEMP",
"uptime": "UP",
"days": "d",
"hours": "u"
},
"authentik": {
"users": "Uporabniki",
"loginsLast24H": "Prijave (24h)",
"failedLoginsLast24H": "Neveljavne prijave (24h)"
},
"quicklaunch": {
"bookmark": "Zaznamek",
"service": "Storitev",
"search": "Iskanje",
"custom": "Po meri",
"url": "URL",
"visit": "Obišči"
},
"wmo": {
"3-night": "Oblačno",
"45-day": "Megleno",
"0-day": "Sončno",
"0-night": "Jasno",
"1-day": "Večinoma sončno",
"1-night": "Večinoma jasno",
"45-night": "Megleno",
"2-day": "Delno oblačno",
"2-night": "Delno oblačno",
"3-day": "Oblačno",
"48-day": "Megleno",
"48-night": "Megleno",
"51-day": "Rahlo rosenje",
"51-night": "Rahlo rosenje",
"53-day": "Rosenje",
"53-night": "Rosenje",
"55-day": "Močnejše rosenje",
"55-night": "Močnejše rosenje",
"56-day": "Lahko zmrzovano pršenje",
"56-night": "Lahko zmrzovano pršenje",
"57-day": "Zmrzovano pršenje",
"63-night": "Dež",
"65-day": "Močnejši dež",
"65-night": "Močnejši dež",
"66-day": "Zmrznjen dež",
"66-night": "Zmrznjen dež",
"57-night": "Zmrzovano pršenje",
"61-day": "Rahel dež",
"61-night": "Rahel dež",
"67-day": "Zmrznjen dež",
"63-day": "Dež",
"67-night": "Zmrznjen dež",
"71-day": "Rahlo sneženje",
"71-night": "Rahlo sneženje",
"73-day": "Sneg",
"73-night": "Sneg",
"75-day": "Močnejši sneg",
"75-night": "Močnejši sneg",
"77-day": "Snežna zrna",
"77-night": "Snežna zrna",
"80-day": "Rahlo pršenje",
"85-night": "Snežne plohe",
"86-day": "Snežne plohe",
"80-night": "Rahlo pršenje",
"81-day": "Nalivi",
"81-night": "Nalivi",
"82-day": "Močnejši nalivi",
"82-night": "Močnejši nalivi",
"85-day": "Snežne plohe",
"86-night": "Snežne plohe",
"95-day": "Nevihta",
"95-night": "Nevihta",
"96-day": "Nevihta s točo",
"96-night": "Nevihta s točo",
"99-day": "Nevihta s točo",
"99-night": "Nevihta s točo"
},
"homebridge": {
"child_bridges": "Otroški mostovi",
"child_bridges_status": "{{ok}}/{{total}}",
"up": "Gor",
"available_update": "Sistem",
"updates": "Posodobitve",
"update_available": "Posodobitve na voljo",
"up_to_date": "Posodobljeno",
"pending": "V teku",
"down": "Dol"
},
"healthchecks": {
"new": "Nov",
"up": "Povezan",
"grace": "V podaljšanem roku",
"down": "Ni povezan",
"paused": "Pavziran",
"status": "Status",
"last_ping": "Zadnji Ping",
"never": "Še ni pinga"
},
"watchtower": {
"containers_scanned": "Skeniran",
"containers_updated": "Posodobljen",
"containers_failed": "Neuspešno"
},
"autobrr": {
"approvedPushes": "Potrjen",
"rejectedPushes": "Zavrnjen",
"filters": "Filtri",
"indexers": "Indekserji"
},
"tubearchivist": {
"downloads": "Vrsta",
"videos": "Videi",
"channels": "Kanali",
"playlists": "Seznami predvajanja"
},
"truenas": {
"load": "Obremenitev sistema",
"uptime": "Čas delovanja",
"alerts": "Alarmi",
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
},
"pyload": {
"speed": "Hitrost",
"active": "Aktiven",
"queue": "V vrsti",
"total": "Skupaj"
},
"gluetun": {
"public_ip": "Javni IP",
"region": "Regija",
"country": "Država"
},
"hdhomerun": {
"channels": "Kanali",
"hd": "HD"
},
"scrutiny": {
"passed": "Opravljeno",
"failed": "Z napako",
"unknown": "Neznano"
},
"paperlessngx": {
"inbox": "Prejeto",
"total": "Skupaj"
},
"nextdns": {
"wait": "Prosim počakajte",
"no_devices": "Podatki o napravi niso prejeti"
},
"mikrotik": {
"cpuLoad": "CPU obremenitev",
"memoryUsed": "Uporabljen spomin",
"uptime": "Čas delovanja",
"numberOfLeases": "Najemi"
},
"xteve": {
"streams_all": "Vsi pretoki",
"streams_active": "Aktivni pretoki",
"streams_xepg": "XEPG kanali"
},
"moonraker": {
"printer_state": "Stanje tiskalnika",
"print_status": "Stanje tiskanja",
"print_progress": "Napredek",
"layers": "Sloji"
},
"immich": {
"users": "Uporabniki",
"photos": "Slike",
"videos": "Videi",
"storage": "Shramba"
},
"uptimekuma": {
"up": "Deluje",
"down": "Ne deluje",
"uptime": "Čas delovanja",
"incident": "Incident",
"m": "m"
},
"komga": {
"libraries": "Knjižnice",
"series": "Serije",
"books": "Knjige"
},
"diskstation": {
"days": "Dni",
"uptime": "Čas delovanja",
"volumeAvailable": "Na voljo"
},
"fileflows": {
"queue": "Vrsta",
"processing": "Procesiram",
"processed": "Procesirano",
"time": "Čas"
},
"prometheus": {
"targets_up": "Tarče gor",
"targets_down": "Tarče dol",
"targets_total": "Skupaj tarč"
},
"unmanic": {
"active_workers": "Aktivne niti",
"total_workers": "Skupaj niti",
"records_total": "Dolžina vrste"
},
"ghostfolio": {
"gross_percent_today": "Danes",
"gross_percent_1y": "Eno leto",
"gross_percent_max": "Celoten čas"
},
"audiobookshelf": {
"podcasts": "Podcasti",
"books": "Knjige",
"podcastsDuration": "Trajanje",
"booksDuration": "Trajanje"
},
"homeassistant": {
"people_home": "Ljudje doma",
"lights_on": "Vklopljene luči",
"switches_on": "Vklopljena stikala"
},
"freshrss": {
"subscriptions": "Naročnine",
"unread": "Neprebrano"
},
"channelsdvrserver": {
"shows": "Epizode",
"recordings": "Posnetki",
"scheduled": "Načrtovano",
"passes": "Prehodi"
},
"whatsupdocker": {
"monitoring": "Se spremlja",
"updates": "Posodobitve"
},
"tailscale": {
"address": "Naslov",
"expires": "Poteče",
"never": "Nikoli",
"last_seen": "Viden",
"now": "Sedaj",
"years": "{{number}}l",
"weeks": "{{number}}t",
"days": "{{number}}d",
"hours": "{{number}}u",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} nazaj"
},
"qnap": {
"cpuUsage": "CPU",
"memUsage": "MEM",
"systemTempC": "Temperatura",
"poolUsage": "Prostor"
},
"pfsense": {
"load": "Povp. obremenitev",
"memory": "Poraba spomina",
"wanStatus": "WAN Status",
"up": "Nalaganje",
"down": "Prenašanje",
"temp": "Temperatura",
"disk": "Poraba diska",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Pretok gor",
"requests": "Trenutnih zahtev",
"requests_failed": "Neuspešnih zahtev"
},
"evcc": {
"pv_power": "Proizvodnja",
"battery_soc": "Baterija",
"grid_power": "Omrežje",
"home_power": "Poraba",
"charge_power": "Polnilec",
"watt_hour": "Wh"
}
}

View File

@@ -89,7 +89,8 @@
"plex": { "plex": {
"streams": "Active Streams", "streams": "Active Streams",
"movies": "Movies", "movies": "Movies",
"tv": "TV Shows" "tv": "TV Shows",
"albums": "Albums"
}, },
"sabnzbd": { "sabnzbd": {
"rate": "Rate", "rate": "Rate",
@@ -157,7 +158,8 @@
"pihole": { "pihole": {
"queries": "Queries", "queries": "Queries",
"blocked": "Blocked", "blocked": "Blocked",
"gravity": "Gravity" "gravity": "Gravity",
"blocked_percent": "Blocked %"
}, },
"adguard": { "adguard": {
"queries": "Queries", "queries": "Queries",
@@ -512,7 +514,9 @@
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"now": "Now",
"years": "{{number}}y",
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"memory": "Mem Usage",
"load": "Load Avg",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -129,7 +129,8 @@
"pihole": { "pihole": {
"blocked": "Blockerad", "blocked": "Blockerad",
"queries": "Förfrågningar", "queries": "Förfrågningar",
"gravity": "Gravity" "gravity": "Gravity",
"blocked_percent": "Blocked %"
}, },
"speedtest": { "speedtest": {
"upload": "Uppladdning", "upload": "Uppladdning",
@@ -228,7 +229,8 @@
"plex": { "plex": {
"streams": "Aktiva strömmar", "streams": "Aktiva strömmar",
"movies": "Filmer", "movies": "Filmer",
"tv": "TV-serier" "tv": "TV-serier",
"albums": "Albums"
}, },
"glances": { "glances": {
"cpu": "CPU", "cpu": "CPU",
@@ -512,7 +514,9 @@
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -147,7 +147,8 @@
"pihole": { "pihole": {
"queries": "ప్రశ్నలు", "queries": "ప్రశ్నలు",
"blocked": "నిరోధించబడింది", "blocked": "నిరోధించబడింది",
"gravity": "గురుత్వాకర్షణ" "gravity": "గురుత్వాకర్షణ",
"blocked_percent": "Blocked %"
}, },
"speedtest": { "speedtest": {
"upload": "అప్లోడ్", "upload": "అప్లోడ్",
@@ -228,7 +229,8 @@
"plex": { "plex": {
"streams": "యాక్టివ్ స్ట్రీమ్‌లు", "streams": "యాక్టివ్ స్ట్రీమ్‌లు",
"movies": "సినిమాలు", "movies": "సినిమాలు",
"tv": "దూరదర్శిని కార్యక్రమాలు" "tv": "దూరదర్శిని కార్యక్రమాలు",
"albums": "Albums"
}, },
"glances": { "glances": {
"cpu": "సీపియూ", "cpu": "సీపియూ",
@@ -512,7 +514,9 @@
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -156,7 +156,8 @@
"plex": { "plex": {
"streams": "Active Streams", "streams": "Active Streams",
"movies": "Movies", "movies": "Movies",
"tv": "TV Shows" "tv": "TV Shows",
"albums": "Albums"
}, },
"sabnzbd": { "sabnzbd": {
"rate": "Rate", "rate": "Rate",
@@ -241,7 +242,8 @@
"pihole": { "pihole": {
"queries": "Queries", "queries": "Queries",
"blocked": "Blocked", "blocked": "Blocked",
"gravity": "Gravity" "gravity": "Gravity",
"blocked_percent": "Blocked %"
}, },
"adguard": { "adguard": {
"queries": "Queries", "queries": "Queries",
@@ -512,7 +514,9 @@
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"scheduled": "Scheduled",
"passes": "Passes",
"shows": "Shows",
"recordings": "Recordings"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"address": "Address",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -89,7 +89,8 @@
"plex": { "plex": {
"streams": "Aktif Akış", "streams": "Aktif Akış",
"movies": "Filmler", "movies": "Filmler",
"tv": "TV Showları" "tv": "TV Showları",
"albums": "Albums"
}, },
"sabnzbd": { "sabnzbd": {
"rate": "Oran", "rate": "Oran",
@@ -157,7 +158,8 @@
"pihole": { "pihole": {
"queries": "Sorgular", "queries": "Sorgular",
"blocked": "Engellenen", "blocked": "Engellenen",
"gravity": "Yer Çekimi" "gravity": "Yer Çekimi",
"blocked_percent": "Blocked %"
}, },
"adguard": { "adguard": {
"queries": "Sorgular", "queries": "Sorgular",
@@ -512,7 +514,9 @@
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"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"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -208,7 +208,8 @@
"plex": { "plex": {
"streams": "Активні потоки", "streams": "Активні потоки",
"movies": "Фільми", "movies": "Фільми",
"tv": "TБ шоу" "tv": "TБ шоу",
"albums": "Альбоми"
}, },
"transmission": { "transmission": {
"download": "Завантаження", "download": "Завантаження",
@@ -276,7 +277,8 @@
"pihole": { "pihole": {
"queries": "Запити", "queries": "Запити",
"blocked": "Заблоковано", "blocked": "Заблоковано",
"gravity": "Гравітація" "gravity": "Гравітація",
"blocked_percent": "Заблоковано %"
}, },
"adguard": { "adguard": {
"queries": "Запити", "queries": "Запити",
@@ -512,7 +514,9 @@
"cpuload": "Навантаження Cpu", "cpuload": "Навантаження Cpu",
"memoryusage": "Використання пам'яті", "memoryusage": "Використання пам'яті",
"freespace": "Вільного місця", "freespace": "Вільного місця",
"activeusers": "Активні користувачі" "activeusers": "Активні користувачі",
"numfiles": "Файли",
"numshares": "Спільні елементи"
}, },
"kopia": { "kopia": {
"status": "Статус", "status": "Статус",
@@ -562,5 +566,67 @@
"books": "Книжки", "books": "Книжки",
"podcastsDuration": "Тривалість", "podcastsDuration": "Тривалість",
"booksDuration": "Тривалість" "booksDuration": "Тривалість"
},
"homeassistant": {
"people_home": "Люди вдома",
"lights_on": "Світло ввімкнено",
"switches_on": "Вмикається"
},
"freshrss": {
"subscriptions": "Передплата",
"unread": "Не прочитано"
},
"channelsdvrserver": {
"shows": "Вистави",
"recordings": "Записи",
"scheduled": "Заплановано",
"passes": "Перепустки"
},
"whatsupdocker": {
"monitoring": "Спостереження",
"updates": "Оновлення"
},
"tailscale": {
"address": "Адреса",
"expires": "Дійсний до",
"never": "Ніколи",
"last_seen": "Востаннє у мережі",
"now": "Зараз",
"years": "{{number}}р",
"weeks": "{{number}}тиж",
"days": "{{number}}д",
"hours": "{{number}}год",
"minutes": "{{number}}хв",
"seconds": "{{number}}с",
"ago": "{{value}} тому"
},
"qnap": {
"cpuUsage": "Використання CPU",
"memUsage": "Використання пам'яті",
"systemTempC": "Температура системи",
"poolUsage": "Використання пулу"
},
"pfsense": {
"load": "Середнє завантаження",
"memory": "Використання пам'яті",
"wanStatus": "Статус WAN",
"up": "Вгору",
"down": "Вниз",
"temp": "Температура",
"disk": "Використання диска",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Потоки",
"requests": "Поточні запити",
"requests_failed": "Невдалі запити"
},
"evcc": {
"pv_power": "Виробництво",
"battery_soc": "Батарея",
"grid_power": "Сітка",
"home_power": "Споживання",
"charge_power": "Зарядний пристрій",
"watt_hour": "Вт/год"
} }
} }

View File

@@ -92,7 +92,8 @@
"pihole": { "pihole": {
"queries": "Queries", "queries": "Queries",
"blocked": "Blocked", "blocked": "Blocked",
"gravity": "Gravity" "gravity": "Gravity",
"blocked_percent": "Blocked %"
}, },
"speedtest": { "speedtest": {
"upload": "Upload", "upload": "Upload",
@@ -228,7 +229,8 @@
"plex": { "plex": {
"streams": "Active Streams", "streams": "Active Streams",
"movies": "Movies", "movies": "Movies",
"tv": "TV Shows" "tv": "TV Shows",
"albums": "Albums"
}, },
"glances": { "glances": {
"cpu": "CPU", "cpu": "CPU",
@@ -512,7 +514,9 @@
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "Status", "status": "Status",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"hours": "{{number}}h",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -135,7 +135,8 @@
"pihole": { "pihole": {
"queries": "查詢", "queries": "查詢",
"blocked": "封鎖", "blocked": "封鎖",
"gravity": "重力" "gravity": "重力",
"blocked_percent": "Blocked %"
}, },
"adguard": { "adguard": {
"queries": "查詢", "queries": "查詢",
@@ -228,7 +229,8 @@
"plex": { "plex": {
"streams": "Active Streams", "streams": "Active Streams",
"movies": "Movies", "movies": "Movies",
"tv": "TV Shows" "tv": "TV Shows",
"albums": "Albums"
}, },
"glances": { "glances": {
"cpu": "CPU", "cpu": "CPU",
@@ -512,7 +514,9 @@
"cpuload": "Cpu Load", "cpuload": "Cpu Load",
"memoryusage": "Memory Usage", "memoryusage": "Memory Usage",
"freespace": "Free Space", "freespace": "Free Space",
"activeusers": "Active Users" "activeusers": "Active Users",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"lastrun": "Last Run", "lastrun": "Last Run",
@@ -562,5 +566,67 @@
"books": "Books", "books": "Books",
"podcastsDuration": "Duration", "podcastsDuration": "Duration",
"booksDuration": "Duration" "booksDuration": "Duration"
},
"homeassistant": {
"people_home": "People Home",
"lights_on": "Lights On",
"switches_on": "Switches On"
},
"freshrss": {
"subscriptions": "Subscriptions",
"unread": "Unread"
},
"channelsdvrserver": {
"shows": "Shows",
"recordings": "Recordings",
"scheduled": "Scheduled",
"passes": "Passes"
},
"whatsupdocker": {
"monitoring": "Monitoring",
"updates": "Updates"
},
"tailscale": {
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"now": "Now",
"years": "{{number}}y",
"weeks": "{{number}}w",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago"
},
"qnap": {
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -33,7 +33,7 @@
"cpu": "处理器", "cpu": "处理器",
"offline": "离线", "offline": "离线",
"error": "错误", "error": "错误",
"unknown": "未知", "unknown": "未知问题",
"starting": "启动中", "starting": "启动中",
"unhealthy": "不健康的", "unhealthy": "不健康的",
"not_found": "未找到", "not_found": "未找到",
@@ -92,7 +92,8 @@
"pihole": { "pihole": {
"queries": "查询", "queries": "查询",
"blocked": "阻止", "blocked": "阻止",
"gravity": "重力" "gravity": "重力",
"blocked_percent": "拦截 %"
}, },
"speedtest": { "speedtest": {
"upload": "上传", "upload": "上传",
@@ -124,7 +125,7 @@
"pending": "待办", "pending": "待办",
"approved": "已批准", "approved": "已批准",
"available": "可用", "available": "可用",
"processing": "Processing" "processing": "处理中"
}, },
"sabnzbd": { "sabnzbd": {
"rate": "速率", "rate": "速率",
@@ -228,14 +229,15 @@
"plex": { "plex": {
"streams": "活动流", "streams": "活动流",
"movies": "电影", "movies": "电影",
"tv": "电视节目" "tv": "电视节目",
"albums": "专辑"
}, },
"glances": { "glances": {
"cpu": "处理器", "cpu": "处理器",
"mem": "内存", "mem": "内存",
"wait": "请稍等", "wait": "请稍等",
"temp": "TEMP", "temp": "温度",
"uptime": "UP", "uptime": "运行时间",
"days": "天", "days": "天",
"hours": "时" "hours": "时"
}, },
@@ -260,8 +262,8 @@
"45-night": "有雾", "45-night": "有雾",
"48-night": "有雾", "48-night": "有雾",
"51-night": "小雨", "51-night": "小雨",
"53-day": "Drizzle", "53-day": "小雨",
"53-night": "Drizzle", "53-night": "小雨",
"55-day": "毛毛雨", "55-day": "毛毛雨",
"55-night": "毛毛雨", "55-night": "毛毛雨",
"56-day": "小冻毛雨", "56-day": "小冻毛雨",
@@ -314,7 +316,7 @@
"updates": "更新", "updates": "更新",
"update_available": "有可用的更新", "update_available": "有可用的更新",
"up_to_date": "Up to Date", "up_to_date": "Up to Date",
"child_bridges": "Child Bridges", "child_bridges": "子网桥",
"child_bridges_status": "{{ok}}/{{total}}", "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up", "up": "Up",
"pending": "待定中", "pending": "待定中",
@@ -327,8 +329,8 @@
"indexers": "索引器" "indexers": "索引器"
}, },
"watchtower": { "watchtower": {
"containers_scanned": "扫描", "containers_scanned": "扫描",
"containers_updated": "升级", "containers_updated": "升级",
"containers_failed": "失败" "containers_failed": "失败"
}, },
"tubearchivist": { "tubearchivist": {
@@ -354,8 +356,8 @@
"total": "Total" "total": "Total"
}, },
"gluetun": { "gluetun": {
"public_ip": "Public IP", "public_ip": "公网 IP",
"region": "Region", "region": "区域",
"country": "国家" "country": "国家"
}, },
"hdhomerun": { "hdhomerun": {
@@ -419,10 +421,10 @@
"seed": "做种" "seed": "做种"
}, },
"mikrotik": { "mikrotik": {
"cpuLoad": "处理器负载", "cpuLoad": "处理器",
"memoryUsed": "内存使用", "memoryUsed": "内存",
"uptime": "运行时间", "uptime": "运行时间",
"numberOfLeases": "已连接" "numberOfLeases": "租约"
}, },
"xteve": { "xteve": {
"streams_all": "所有播放活动", "streams_all": "所有播放活动",
@@ -430,15 +432,15 @@
"streams_xepg": "XEPG 频道" "streams_xepg": "XEPG 频道"
}, },
"opnsense": { "opnsense": {
"cpu": "处理器负载", "cpu": "处理器",
"memory": "空闲内存", "memory": "内存",
"wanUpload": "WAN上传", "wanUpload": "WAN上传",
"wanDownload": "WAN下载" "wanDownload": "WAN下载"
}, },
"moonraker": { "moonraker": {
"printer_state": "打印机状态", "printer_state": "打印机状态",
"print_status": "打印状态", "print_status": "打印状态",
"print_progress": "Progress", "print_progress": "打印进程",
"layers": "层" "layers": "层"
}, },
"medusa": { "medusa": {
@@ -447,14 +449,14 @@
"series": "Series" "series": "Series"
}, },
"octoprint": { "octoprint": {
"printer_state": "Status", "printer_state": "打印机状态",
"temp_tool": "喷头温度", "temp_tool": "喷头温度",
"temp_bed": "平台温度", "temp_bed": "平台温度",
"job_completion": "完成度" "job_completion": "完成度"
}, },
"cloudflared": { "cloudflared": {
"origin_ip": "源IP", "origin_ip": "源IP",
"status": "Status" "status": "状态"
}, },
"proxmoxbackupserver": { "proxmoxbackupserver": {
"datastore_usage": "数据存储", "datastore_usage": "数据存储",
@@ -509,10 +511,12 @@
"alertstriggered": "触发的警报" "alertstriggered": "触发的警报"
}, },
"nextcloud": { "nextcloud": {
"cpuload": "处理器负载", "cpuload": "处理器",
"memoryusage": "内存占用", "memoryusage": "内存",
"freespace": "剩余空间", "freespace": "剩余空间",
"activeusers": "活跃用户" "activeusers": "活跃用户",
"numfiles": "Files",
"numshares": "共享项目"
}, },
"kopia": { "kopia": {
"status": "状态", "status": "状态",
@@ -541,9 +545,9 @@
"nodes": "节点" "nodes": "节点"
}, },
"prometheus": { "prometheus": {
"targets_up": "Targets Up", "targets_up": "目标上线",
"targets_down": "Targets Down", "targets_down": "目标在线",
"targets_total": "Total Targets" "targets_total": "总目标"
}, },
"minecraft": { "minecraft": {
"players": "播放中", "players": "播放中",
@@ -562,5 +566,67 @@
"books": "图书", "books": "图书",
"podcastsDuration": "持续时间", "podcastsDuration": "持续时间",
"booksDuration": "持续时间" "booksDuration": "持续时间"
},
"homeassistant": {
"people_home": "房间",
"lights_on": "照明开",
"switches_on": "开关开"
},
"freshrss": {
"subscriptions": "订阅",
"unread": "未读"
},
"channelsdvrserver": {
"shows": "节目",
"recordings": "录像",
"scheduled": "已计划的",
"passes": "通行证"
},
"whatsupdocker": {
"monitoring": "监测中",
"updates": "可更新"
},
"tailscale": {
"address": "地址",
"expires": "失效",
"never": "从不",
"last_seen": "最后上线",
"days": "{{number}}d",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} 以前",
"now": "现在",
"years": "{{number}}年",
"weeks": "{{number}}周"
},
"qnap": {
"cpuUsage": "处理器",
"memUsage": "内存",
"systemTempC": "系统温度",
"poolUsage": "存储池"
},
"pfsense": {
"load": "平均负载",
"memory": "内存",
"wanStatus": "WAN 状态",
"up": "上传",
"down": "下载",
"temp": "温度",
"disk": "磁盘",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "上游",
"requests": "当前请求",
"requests_failed": "失败请求"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
} }
} }

View File

@@ -26,8 +26,8 @@
"starting": "啟動中", "starting": "啟動中",
"unhealthy": "不健康的", "unhealthy": "不健康的",
"not_found": "未找到", "not_found": "未找到",
"exited": "Exited", "exited": "已退出",
"partial": "Partial", "partial": "部分",
"healthy": "健康的" "healthy": "健康的"
}, },
"emby": { "emby": {
@@ -35,10 +35,10 @@
"transcoding": "轉碼", "transcoding": "轉碼",
"bitrate": "位元率", "bitrate": "位元率",
"no_active": "無播放活動", "no_active": "無播放活動",
"movies": "Movies", "movies": "電影",
"series": "Series", "series": "影集",
"episodes": "Episodes", "episodes": "",
"songs": "Songs" "songs": "曲目"
}, },
"tautulli": { "tautulli": {
"playing": "正在播放", "playing": "正在播放",
@@ -61,13 +61,13 @@
"load": "負載", "load": "負載",
"cpu": "CPU", "cpu": "CPU",
"mem": "記憶體", "mem": "記憶體",
"temp": "TEMP", "temp": "溫度",
"max": "Max", "max": "最大",
"uptime": "UP", "uptime": "運行時間",
"months": "mo", "months": "",
"days": "d", "days": "",
"hours": "h", "hours": "",
"minutes": "m" "minutes": ""
}, },
"nzbget": { "nzbget": {
"rate": "速率", "rate": "速率",
@@ -98,7 +98,7 @@
"readarr": { "readarr": {
"wanted": "關注中", "wanted": "關注中",
"queued": "已加入佇列", "queued": "已加入佇列",
"books": "書" "books": "書"
}, },
"ombi": { "ombi": {
"pending": "待下載", "pending": "待下載",
@@ -114,7 +114,8 @@
"pihole": { "pihole": {
"queries": "查詢", "queries": "查詢",
"blocked": "已阻擋", "blocked": "已阻擋",
"gravity": "Gravity" "gravity": "阻擋清單",
"blocked_percent": "Blocked %"
}, },
"speedtest": { "speedtest": {
"upload": "上行速率", "upload": "上行速率",
@@ -228,16 +229,17 @@
"plex": { "plex": {
"streams": "正在播放", "streams": "正在播放",
"movies": "電影", "movies": "電影",
"tv": "影集" "tv": "影集",
"albums": "專輯"
}, },
"glances": { "glances": {
"cpu": "CPU", "cpu": "CPU",
"mem": "記憶體", "mem": "記憶體",
"wait": "請稍後", "wait": "請稍後",
"temp": "TEMP", "temp": "溫度",
"uptime": "UP", "uptime": "運行時間",
"days": "d", "days": "",
"hours": "h" "hours": ""
}, },
"changedetectionio": { "changedetectionio": {
"totalObserved": "總監測數", "totalObserved": "總監測數",
@@ -306,8 +308,8 @@
"service": "服務", "service": "服務",
"search": "搜尋", "search": "搜尋",
"custom": "自訂", "custom": "自訂",
"visit": "Visit", "visit": "訪問",
"url": "URL" "url": "網址"
}, },
"homebridge": { "homebridge": {
"available_update": "系統", "available_update": "系統",
@@ -316,9 +318,9 @@
"up_to_date": "已更新至最新", "up_to_date": "已更新至最新",
"child_bridges": "Child Bridges", "child_bridges": "Child Bridges",
"child_bridges_status": "{{ok}}/{{total}}", "child_bridges_status": "{{ok}}/{{total}}",
"up": "Up", "up": "在線",
"pending": "Pending", "pending": "處理中",
"down": "Down" "down": "離線"
}, },
"autobrr": { "autobrr": {
"approvedPushes": "已核准", "approvedPushes": "已核准",
@@ -478,7 +480,7 @@
"komga": { "komga": {
"libraries": "文庫", "libraries": "文庫",
"series": "叢刊", "series": "叢刊",
"books": "書" "books": "書"
}, },
"mylar": { "mylar": {
"series": "系列", "series": "系列",
@@ -512,7 +514,9 @@
"cpuload": "處理器負載", "cpuload": "處理器負載",
"memoryusage": "記憶體用量", "memoryusage": "記憶體用量",
"freespace": "可用空間", "freespace": "可用空間",
"activeusers": "活躍用戶" "activeusers": "活躍用戶",
"numfiles": "Files",
"numshares": "Shared Items"
}, },
"kopia": { "kopia": {
"status": "狀態", "status": "狀態",
@@ -522,9 +526,9 @@
"failed": "失敗" "failed": "失敗"
}, },
"unmanic": { "unmanic": {
"active_workers": "Active Workers", "active_workers": "在線工作程序",
"total_workers": "Total Workers", "total_workers": "總工作程序",
"records_total": "Queue Length" "records_total": "佇列長度"
}, },
"healthchecks": { "healthchecks": {
"new": "新建立", "new": "新建立",
@@ -537,30 +541,92 @@
"never": "尚未檢查" "never": "尚未檢查"
}, },
"pterodactyl": { "pterodactyl": {
"servers": "Servers", "servers": "伺服器",
"nodes": "Nodes" "nodes": "節點"
}, },
"prometheus": { "prometheus": {
"targets_up": "Targets Up", "targets_up": "目標上線",
"targets_down": "Targets Down", "targets_down": "目標離線",
"targets_total": "Total Targets" "targets_total": "目標總數"
}, },
"minecraft": { "minecraft": {
"players": "Players", "players": "玩家",
"version": "Version", "version": "版本",
"status": "Status", "status": "狀態",
"up": "Online", "up": "上線",
"down": "Offline" "down": "離線"
}, },
"ghostfolio": { "ghostfolio": {
"gross_percent_today": "Today", "gross_percent_today": "今日",
"gross_percent_1y": "One year", "gross_percent_1y": "一年",
"gross_percent_max": "All time" "gross_percent_max": "所有時間"
}, },
"audiobookshelf": { "audiobookshelf": {
"podcasts": "Podcasts", "podcasts": "播客",
"books": "Books", "books": "叢書",
"podcastsDuration": "Duration", "podcastsDuration": "歷時",
"booksDuration": "Duration" "booksDuration": "歷時"
},
"homeassistant": {
"people_home": "在家人數",
"lights_on": "燈亮著",
"switches_on": "開關開著"
},
"freshrss": {
"subscriptions": "訂閱",
"unread": "未讀"
},
"channelsdvrserver": {
"shows": "節目",
"recordings": "錄影",
"scheduled": "已排定",
"passes": "通行證"
},
"whatsupdocker": {
"monitoring": "監測中",
"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"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"pv_power": "Production",
"battery_soc": "Battery",
"watt_hour": "Wh"
} }
} }

View File

@@ -4,7 +4,7 @@ export default function List({ bookmarks }) {
return ( return (
<ul className="mt-3 flex flex-col"> <ul className="mt-3 flex flex-col">
{bookmarks.map((bookmark) => ( {bookmarks.map((bookmark) => (
<Item key={bookmark.name} bookmark={bookmark} /> <Item key={`${bookmark.name}-${bookmark.href}`} bookmark={bookmark} />
))} ))}
</ul> </ul>
); );

View File

@@ -161,7 +161,7 @@ export default function QuickLaunch({servicesAndBookmarks, searchString, setSear
)} type="text" autoCorrect="false" ref={searchField} value={searchString} onChange={handleSearchChange} onKeyDown={handleSearchKeyDown} /> )} type="text" autoCorrect="false" ref={searchField} value={searchString} onChange={handleSearchChange} onKeyDown={handleSearchKeyDown} />
{results.length > 0 && <ul className="max-h-[60vh] overflow-y-auto m-2"> {results.length > 0 && <ul className="max-h-[60vh] overflow-y-auto m-2">
{results.map((r, i) => ( {results.map((r, i) => (
<li key={r.name}> <li key={r.container ?? r.app ?? `${r.name}-${r.href}`}>
<button type="button" data-index={i} onMouseEnter={handleItemHover} className={classNames( <button type="button" data-index={i} onMouseEnter={handleItemHover} className={classNames(
"flex flex-row w-full items-center justify-between rounded-md text-sm md:text-xl py-2 px-4 cursor-pointer text-theme-700 dark:text-theme-200", "flex flex-row w-full items-center justify-between rounded-md text-sm md:text-xl py-2 px-4 cursor-pointer text-theme-700 dark:text-theme-200",
i === currentItemIndex && "bg-theme-300/50 dark:bg-theme-700/50", i === currentItemIndex && "bg-theme-300/50 dark:bg-theme-700/50",

View File

@@ -1,14 +1,45 @@
import { useContext } from "react";
import Image from "next/future/image"; import Image from "next/future/image";
import { SettingsContext } from "utils/contexts/settings";
import { ThemeContext } from "utils/contexts/theme";
const iconSetURLs = {
'mdi': "https://cdn.jsdelivr.net/npm/@mdi/svg@latest/svg/",
'si' : "https://cdn.jsdelivr.net/npm/simple-icons@latest/icons/",
};
export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "logo" }) { export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "logo" }) {
const { settings } = useContext(SettingsContext);
const { theme } = useContext(ThemeContext);
// direct or relative URLs // direct or relative URLs
if (icon.startsWith("http") || icon.startsWith("/")) { if (icon.startsWith("http") || icon.startsWith("/")) {
return <Image src={`${icon}`} width={width} height={height} alt={alt} />; return (
<Image
src={`${icon}`}
width={width}
height={height}
style={{
width,
height,
objectFit: "contain",
maxHeight: "100%",
maxWidth: "100%",
}}
alt={alt}
/>
);
} }
// mdi- prefixed, material design icons // check mdi- or si- prefixed icons
if (icon.startsWith("mdi-")) { const prefix = icon.split("-")[0]
const iconName = icon.replace("mdi-", "").replace(".svg", "");
if (prefix in iconSetURLs) {
// get icon source
const iconName = icon.replace(`${prefix}-`, "").replace(".svg", "");
const iconSource = `${iconSetURLs[prefix]}${iconName}.svg`;
return ( return (
<div <div
style={{ style={{
@@ -16,21 +47,50 @@ export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "log
height, height,
maxWidth: '100%', maxWidth: '100%',
maxHeight: '100%', maxHeight: '100%',
background: "linear-gradient(180deg, rgb(var(--color-logo-start)), rgb(var(--color-logo-stop)))", background: settings.iconStyle === "theme" ?
mask: `url(https://cdn.jsdelivr.net/npm/@mdi/svg@latest/svg/${iconName}.svg) no-repeat center / contain`, `rgb(var(--color-${ theme === "dark" ? 300 : 900 }) / var(--tw-text-opacity, 1))` :
WebkitMask: `url(https://cdn.jsdelivr.net/npm/@mdi/svg@latest/svg/${iconName}.svg) no-repeat center / contain`, "linear-gradient(180deg, rgb(var(--color-logo-start)), rgb(var(--color-logo-stop)))",
mask: `url(${iconSource}) no-repeat center / contain`,
WebkitMask: `url(${iconSource}) no-repeat center / contain`,
}} }}
/> />
); );
} }
// fallback to dashboard-icons // fallback to dashboard-icons
if (icon.endsWith(".svg")) {
const iconName = icon.replace(".svg", "");
return (
<Image
src={`https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/svg/${iconName}.svg`}
width={width}
height={height}
style={{
width,
height,
objectFit: "contain",
maxHeight: "100%",
maxWidth: "100%"
}}
alt={alt}
/>
);
}
const iconName = icon.replace(".png", ""); const iconName = icon.replace(".png", "");
return ( return (
<Image <Image
src={`https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/${iconName}.png`} src={`https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/${iconName}.png`}
width={width} width={width}
height={height} height={height}
style={{
width,
height,
objectFit: "contain",
maxHeight: "100%",
maxWidth: "100%"
}}
alt={alt} alt={alt}
/> />
); );

View File

@@ -3,12 +3,13 @@ import classNames from "classnames";
import List from "components/services/list"; import List from "components/services/list";
import ResolvedIcon from "components/resolvedicon"; import ResolvedIcon from "components/resolvedicon";
export default function ServicesGroup({ services, layout }) { export default function ServicesGroup({ services, layout, fiveColumns }) {
return ( return (
<div <div
key={services.name} key={services.name}
className={classNames( className={classNames(
layout?.style === "row" ? "basis-full" : "basis-full md:basis-1/2 lg:basis-1/3 xl:basis-1/4", layout?.style === "row" ? "basis-full" : "basis-full md:basis-1/2 lg:basis-1/3 xl:basis-1/4",
layout?.style !== "row" && fiveColumns ? "3xl:basis-1/5" : "",
"flex-1 p-1" "flex-1 p-1"
)} )}
> >

View File

@@ -14,7 +14,8 @@ import ResolvedIcon from "components/resolvedicon";
export default function Item({ service }) { export default function Item({ service }) {
const hasLink = service.href && service.href !== "#"; const hasLink = service.href && service.href !== "#";
const { settings } = useContext(SettingsContext); const { settings } = useContext(SettingsContext);
const [statsOpen, setStatsOpen] = useState(false); const showStats = (service.showStats === false) ? false : settings.showStats;
const [statsOpen, setStatsOpen] = useState(service.showStats);
const [statsClosing, setStatsClosing] = useState(false); const [statsClosing, setStatsClosing] = useState(false);
// set stats to closed after 300ms // set stats to closed after 300ms
@@ -33,7 +34,7 @@ export default function Item({ service }) {
<div <div
className={`${ className={`${
hasLink ? "cursor-pointer " : " " hasLink ? "cursor-pointer " : " "
}transition-all h-15 mb-3 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`}
> >
<div className="flex select-none"> <div className="flex select-none">
{service.icon && {service.icon &&
@@ -107,21 +108,21 @@ export default function Item({ service }) {
{service.container && service.server && ( {service.container && service.server && (
<div <div
className={classNames( className={classNames(
statsOpen && !statsClosing ? "max-h-[110px] opacity-100" : " max-h-[0] opacity-0", showStats || (statsOpen && !statsClosing) ? "max-h-[110px] opacity-100" : " max-h-[0] opacity-0",
"w-full overflow-hidden transition-all duration-300 ease-in-out" "w-full overflow-hidden transition-all duration-300 ease-in-out"
)} )}
> >
{statsOpen && <Docker service={{ widget: { container: service.container, server: service.server } }} />} {(showStats || statsOpen) && <Docker service={{ widget: { container: service.container, server: service.server } }} />}
</div> </div>
)} )}
{service.app && ( {service.app && (
<div <div
className={classNames( className={classNames(
statsOpen && !statsClosing ? "max-h-[55px] opacity-100" : " max-h-[0] opacity-0", showStats || (statsOpen && !statsClosing) ? "max-h-[55px] opacity-100" : " max-h-[0] opacity-0",
"w-full overflow-hidden transition-all duration-300 ease-in-out" "w-full overflow-hidden transition-all duration-300 ease-in-out"
)} )}
> >
{statsOpen && <Kubernetes service={{ widget: { namespace: service.namespace, app: service.app, podSelector: service.podSelector } }} />} {(showStats || statsOpen) && <Kubernetes service={{ widget: { namespace: service.namespace, app: service.app, podSelector: service.podSelector } }} />}
</div> </div>
)} )}

View File

@@ -23,7 +23,7 @@ export default function List({ services, layout }) {
)} )}
> >
{services.map((service) => ( {services.map((service) => (
<Item key={service.name} service={service} /> <Item key={service.container ?? service.app ?? service.name} service={service} />
))} ))}
</ul> </ul>
); );

View File

@@ -25,7 +25,7 @@ export default function Ping({ service }) {
const statusText = `${service.ping}: HTTP status ${data.status}`; const statusText = `${service.ping}: HTTP status ${data.status}`;
if (data && data.status !== 200) { if (data.status > 403) {
return ( return (
<div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={statusText}> <div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={statusText}>
<div className="text-[8px] font-bold text-rose-500/80">{data.status}</div> <div className="text-[8px] font-bold text-rose-500/80">{data.status}</div>
@@ -33,12 +33,10 @@ export default function Ping({ service }) {
); );
} }
if (data && data.status === 200) { return (
return ( <div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={statusText}>
<div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={statusText}> <div className="text-[8px] font-bold text-emerald-500/80">{t("common.ms", { value: data.latency, style: "unit", unit: "millisecond", maximumFractionDigits: 0 })}</div>
<div className="text-[8px] font-bold text-emerald-500/80">{t("common.ms", { value: data.latency, style: "unit", unit: "millisecond", unitDisplay: "narrow", maximumFractionDigits: 0 })}</div> </div>
</div> );
);
}
} }

View File

@@ -1,8 +1,18 @@
import { useContext } from "react";
import Error from "./error"; import Error from "./error";
import { SettingsContext } from "utils/contexts/settings";
export default function Container({ error = false, children, service }) { export default function Container({ error = false, children, service }) {
const { settings } = useContext(SettingsContext);
if (error) { if (error) {
return <Error error={error} /> if (settings.hideErrors || service.widget.hide_errors) {
return null;
}
return <Error service={service} error={error} />
} }
let visibleChildren = children; let visibleChildren = children;
@@ -14,7 +24,7 @@ export default function Container({ error = false, children, service }) {
// fields: [ "resources.cpu", "resources.mem", "field"] // fields: [ "resources.cpu", "resources.mem", "field"]
// or even // or even
// fields: [ "resources.cpu", "widget_type.field" ] // fields: [ "resources.cpu", "widget_type.field" ]
visibleChildren = children.filter(child => fields.some(field => { visibleChildren = children?.filter(child => fields.some(field => {
let fullField = field; let fullField = field;
if (!field.includes(".")) { if (!field.includes(".")) {
fullField = `${type}.${field}`; fullField = `${type}.${field}`;

View File

@@ -9,12 +9,10 @@ function displayData(data) {
return (data.type === 'Buffer') ? Buffer.from(data).toString() : JSON.stringify(data, 4); return (data.type === 'Buffer') ? Buffer.from(data).toString() : JSON.stringify(data, 4);
} }
export default function Error({ error }) { export default function Error({ error: err }) {
const { t } = useTranslation(); const { t } = useTranslation();
if (error?.data?.error) { const { error } = err?.data ?? { error: err };
error = error.data.error; // eslint-disable-line no-param-reassign
}
return ( return (
<details className="px-1 pb-1"> <details className="px-1 pb-1">

View File

@@ -6,6 +6,12 @@ import { useTranslation } from "next-i18next";
import UsageBar from "../resources/usage-bar"; import UsageBar from "../resources/usage-bar";
const cpuSensorLabels = ["cpu_thermal", "Core", "Tctl"];
function convertToFahrenheit(t) {
return t * 9/5 + 32
}
export default function Widget({ options }) { export default function Widget({ options }) {
const { t, i18n } = useTranslation(); const { t, i18n } = useTranslation();
@@ -65,11 +71,20 @@ export default function Widget({ options }) {
} }
const unit = options.units === "imperial" ? "fahrenheit" : "celsius"; const unit = options.units === "imperial" ? "fahrenheit" : "celsius";
let mainTemp; let mainTemp = 0;
let maxTemp = 80; let maxTemp = 80;
if (options.cputemp && data.sensors) { const cpuSensors = data.sensors?.filter(s => cpuSensorLabels.some(label => s.label.startsWith(label)) && s.type === "temperature_core");
mainTemp = unit === "celsius" ? data.sensors.find(s => s.label.includes("cpu_thermal")).value : data.sensors.find(s => s.label.includes("cpu_thermal")).value * 5/9 + 32; if (options.cputemp && cpuSensors) {
if (data.sensors.warning) maxTemp = data.sensors.warning; 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);
if (unit === "fahrenheit") {
mainTemp = convertToFahrenheit(mainTemp);
maxTemp = convertToFahrenheit(maxTemp);
}
} catch (e) {
// cpu sensor retrieval failed
}
} }
const tempPercent = Math.round((mainTemp / maxTemp) * 100); const tempPercent = Math.round((mainTemp / maxTemp) * 100);
@@ -110,7 +125,7 @@ export default function Widget({ options }) {
<UsageBar percent={data.quicklook.mem} /> <UsageBar percent={data.quicklook.mem} />
</div> </div>
</div> </div>
{options.cputemp && mainTemp && {options.cputemp && mainTemp > 0 &&
(<div className="flex-none flex flex-row items-center mr-3 py-1.5"> (<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" /> <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]"> <div className="flex flex-col ml-3 text-left min-w-[85px]">

View File

@@ -6,7 +6,7 @@ import { useTranslation } from "next-i18next";
import UsageBar from "./usage-bar"; import UsageBar from "./usage-bar";
function convertToFahrenheit(t) { function convertToFahrenheit(t) {
return t * 5/9 + 32 return t * 9/5 + 32
} }
export default function CpuTemp({ expanded, units }) { export default function CpuTemp({ expanded, units }) {
@@ -47,16 +47,14 @@ export default function CpuTemp({ expanded, units }) {
); );
} }
let minTemp = 0;
let mainTemp = data.cputemp.main; let mainTemp = data.cputemp.main;
if (data.cputemp.cores?.length) { if (data.cputemp.cores?.length) {
mainTemp = data.cputemp.cores.reduce((a, b) => a + b) / data.cputemp.cores.length; mainTemp = data.cputemp.cores.reduce((a, b) => a + b) / data.cputemp.cores.length;
minTemp = Math.min(...data.cputemp.cores);
} }
const unit = units === "imperial" ? "fahrenheit" : "celsius"; const unit = units === "imperial" ? "fahrenheit" : "celsius";
mainTemp = (unit === "celsius") ? mainTemp : convertToFahrenheit(mainTemp); mainTemp = (unit === "celsius") ? mainTemp : convertToFahrenheit(mainTemp);
const maxTemp = (unit === "celsius") ? data.cputemp.max : convertToFahrenheit(data.cputemp.max); const maxTemp = (unit === "celsius") ? data.cputemp.max : convertToFahrenheit(data.cputemp.max);
const percent = Math.round(((mainTemp - minTemp) / (maxTemp - minTemp)) * 100); const percent = Math.round((mainTemp / maxTemp) * 100);
return ( return (
<div className="flex-none flex flex-row items-center mr-3 py-1.5"> <div className="flex-none flex flex-row items-center mr-3 py-1.5">

View File

@@ -44,7 +44,7 @@ export default function Memory({ expanded }) {
); );
} }
const percent = Math.round((data.memory.used / data.memory.total) * 100); const percent = Math.round((data.memory.active / data.memory.total) * 100);
return ( return (
<div className="flex-none flex flex-row items-center mr-3 py-1.5"> <div className="flex-none flex flex-row items-center mr-3 py-1.5">
@@ -52,7 +52,7 @@ export default function Memory({ expanded }) {
<div className="flex flex-col ml-3 text-left min-w-[85px]"> <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"> <span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
<div className="pl-0.5 pr-1"> <div className="pl-0.5 pr-1">
{t("common.bytes", { value: data.memory.free, maximumFractionDigits: 1, binary: true })} {t("common.bytes", { value: data.memory.available, maximumFractionDigits: 1, binary: true })}
</div> </div>
<div className="pr-1">{t("resources.free")}</div> <div className="pr-1">{t("resources.free")}</div>
</span> </span>

View File

@@ -30,7 +30,7 @@ export default async function handler(req, res) {
}); });
} }
const containerNames = containers.map((container) => container.Names[0]?.replace(/^\//, "")); const containerNames = containers.flatMap((container) => container.Names.map((name) => name.replace(/^\//, "")));
const containerExists = containerNames.includes(containerName); const containerExists = containerNames.includes(containerName);
if (containerExists) { if (containerExists) {

View File

@@ -30,7 +30,7 @@ export default async function handler(req, res) {
}); });
} }
const containerNames = containers.map((container) => container.Names[0]?.replace(/^\//, "")); const containerNames = containers.flatMap((container) => container.Names.map((name) => name.replace(/^\//, "")));
const containerExists = containerNames.includes(containerName); const containerExists = containerNames.includes(containerName);
if (containerExists) { if (containerExists) {

View File

@@ -19,8 +19,8 @@ export default async function handler(req, res) {
return hash(readFileSync(configYaml, "utf8")); return hash(readFileSync(configYaml, "utf8"));
}); });
// this ties hash to specific build which should force revaliation between versions // set to date by docker entrypoint, will force revalidation between restarts/recreates
const buildTime = process.env.NEXT_PUBLIC_BUILDTIME?.length ? process.env.NEXT_PUBLIC_BUILDTIME : ''; const buildTime = process.env.HOMEPAGE_BUILDTIME?.length ? process.env.HOMEPAGE_BUILDTIME : '';
const combinedHash = hash(hashes.join("") + buildTime); const combinedHash = hash(hashes.join("") + buildTime);

View File

@@ -21,7 +21,7 @@ export default async function handler(req, res) {
}); });
let endTime = performance.now(); let endTime = performance.now();
if (status >= 400) { if (status > 403) {
// try one more time as a GET in case HEAD is rejected for whatever reason // try one more time as a GET in case HEAD is rejected for whatever reason
startTime = performance.now(); startTime = performance.now();
[status] = await httpProxy(pingURL); [status] = await httpProxy(pingURL);

View File

@@ -286,15 +286,15 @@ function Home({ initialSettings }) {
)} )}
</div> </div>
{services && ( {services?.length > 0 && (
<div className="flex flex-wrap p-4 sm:p-8 sm:pt-4 items-start pb-2"> <div className="flex flex-wrap p-4 sm:p-8 sm:pt-4 items-start pb-2">
{services.map((group) => ( {services.map((group) => (
<ServicesGroup key={group.name} services={group} layout={initialSettings.layout?.[group.name]} /> <ServicesGroup key={group.name} services={group} layout={initialSettings.layout?.[group.name]} fiveColumns={settings.fiveColumns} />
))} ))}
</div> </div>
)} )}
{bookmarks && ( {bookmarks?.length > 0 && (
<div className={`grow flex flex-wrap pt-0 p-4 sm:p-8 gap-2 grid-cols-1 lg:grid-cols-2 lg:grid-cols-${Math.min(6, bookmarks.length)}`}> <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) => ( {bookmarks.map((group) => (
<BookmarksGroup key={group.name} group={group} /> <BookmarksGroup key={group.name} group={group} />
@@ -318,15 +318,26 @@ function Home({ initialSettings }) {
export default function Wrapper({ initialSettings, fallback }) { export default function Wrapper({ initialSettings, fallback }) {
const wrappedStyle = {}; const wrappedStyle = {};
let backgroundBlur = false;
let backgroundSaturate = false;
let backgroundBrightness = false;
if (initialSettings && initialSettings.background) { if (initialSettings && initialSettings.background) {
const opacity = initialSettings.backgroundOpacity ?? 1; let opacity = initialSettings.backgroundOpacity ?? 1;
let backgroundImage = initialSettings.background;
if (typeof initialSettings.background === 'object') {
backgroundImage = initialSettings.background.image;
backgroundBlur = initialSettings.background.blur !== undefined;
backgroundSaturate = initialSettings.background.saturate !== undefined;
backgroundBrightness = initialSettings.background.brightness !== undefined;
if (initialSettings.background.opacity !== undefined) opacity = initialSettings.background.opacity / 100;
}
const opacityValue = 1 - opacity; const opacityValue = 1 - opacity;
wrappedStyle.backgroundImage = ` wrappedStyle.backgroundImage = `
linear-gradient( linear-gradient(
rgb(var(--bg-color) / ${opacityValue}), rgb(var(--bg-color) / ${opacityValue}),
rgb(var(--bg-color) / ${opacityValue}) rgb(var(--bg-color) / ${opacityValue})
), ),
url(${initialSettings.background})`; url(${backgroundImage})`;
wrappedStyle.backgroundPosition = "center"; wrappedStyle.backgroundPosition = "center";
wrappedStyle.backgroundSize = "cover"; wrappedStyle.backgroundSize = "cover";
} }
@@ -345,7 +356,15 @@ export default function Wrapper({ initialSettings, fallback }) {
className="fixed overflow-auto w-full h-full bg-theme-50 dark:bg-theme-800 transition-all" className="fixed overflow-auto w-full h-full bg-theme-50 dark:bg-theme-800 transition-all"
style={wrappedStyle} style={wrappedStyle}
> >
<Index initialSettings={initialSettings} fallback={fallback} /> <div
id="inner_wrapper"
className={classNames(
backgroundBlur && `backdrop-blur${initialSettings.background.blur.length ? '-' : ""}${initialSettings.background.blur}`,
backgroundSaturate && `backdrop-saturate-${initialSettings.background.saturate}`,
backgroundBrightness && `backdrop-brightness-${initialSettings.background.brightness}`,
)}>
<Index initialSettings={initialSettings} fallback={fallback} />
</div>
</div> </div>
</div> </div>
); );

View File

@@ -1,6 +1,6 @@
/* eslint-disable no-console */ /* eslint-disable no-console */
import { join } from "path"; import { join } from "path";
import { existsSync, copyFile, readFileSync } from "fs"; import { existsSync, readFileSync, copyFileSync } from "fs";
import cache from "memory-cache"; import cache from "memory-cache";
import yaml from "js-yaml"; import yaml from "js-yaml";
@@ -13,13 +13,13 @@ export default function checkAndCopyConfig(config) {
const configYaml = join(process.cwd(), "config", config); const configYaml = join(process.cwd(), "config", config);
if (!existsSync(configYaml)) { if (!existsSync(configYaml)) {
const configSkeleton = join(process.cwd(), "src", "skeleton", config); const configSkeleton = join(process.cwd(), "src", "skeleton", config);
copyFile(configSkeleton, configYaml, (err) => { try {
if (err) { copyFileSync(configSkeleton, configYaml)
console.info("%s was copied to the config folder", config);
} catch (err) {
console.error("error copying config", err); console.error("error copying config", err);
throw err; throw err;
} }
console.info("%s was copied to the config folder", config);
});
return true; return true;
} }

View File

@@ -4,7 +4,7 @@ import path from "path";
import yaml from "js-yaml"; import yaml from "js-yaml";
import Docker from "dockerode"; import Docker from "dockerode";
import * as shvl from "shvl"; import * as shvl from "shvl";
import { NetworkingV1Api } from "@kubernetes/client-node"; import { CustomObjectsApi, NetworkingV1Api } from "@kubernetes/client-node";
import createLogger from "utils/logger"; import createLogger from "utils/logger";
import checkAndCopyConfig, { substituteEnvironmentVars } from "utils/config/config"; import checkAndCopyConfig, { substituteEnvironmentVars } from "utils/config/config";
@@ -32,6 +32,7 @@ export async function servicesFromConfig() {
services: servicesGroup[Object.keys(servicesGroup)[0]].map((entries) => ({ services: servicesGroup[Object.keys(servicesGroup)[0]].map((entries) => ({
name: Object.keys(entries)[0], name: Object.keys(entries)[0],
...entries[Object.keys(entries)[0]], ...entries[Object.keys(entries)[0]],
type: 'service'
})), })),
})); }));
@@ -82,6 +83,7 @@ export async function servicesFromDocker() {
constructedService = { constructedService = {
container: container.Names[0].replace(/^\//, ""), container: container.Names[0].replace(/^\//, ""),
server: serverName, server: serverName,
type: 'service'
}; };
} }
shvl.set(constructedService, label.replace("homepage.", ""), container.Labels[label]); shvl.set(constructedService, label.replace("homepage.", ""), container.Labels[label]);
@@ -145,6 +147,7 @@ export async function servicesFromKubernetes() {
return []; return [];
} }
const networking = kc.makeApiClient(NetworkingV1Api); const networking = kc.makeApiClient(NetworkingV1Api);
const crd = kc.makeApiClient(CustomObjectsApi);
const ingressList = await networking.listIngressForAllNamespaces(null, null, null, null) const ingressList = await networking.listIngressForAllNamespaces(null, null, null, null)
.then((response) => response.body) .then((response) => response.body)
@@ -152,6 +155,20 @@ export async function servicesFromKubernetes() {
logger.error("Error getting ingresses: %d %s %s", error.statusCode, error.body, error.response); logger.error("Error getting ingresses: %d %s %s", error.statusCode, error.body, error.response);
return null; return null;
}); });
const traefikIngressList = await crd.listClusterCustomObject("traefik.containo.us", "v1alpha1", "ingressroutes")
.then((response) => response.body)
.catch((error) => {
logger.error("Error getting traefik ingresses: %d %s %s", error.statusCode, error.body, error.response);
return null;
});
if (traefikIngressList && traefikIngressList.items.length > 0) {
const traefikServices = traefikIngressList.items
.filter((ingress) => ingress.metadata.annotations && ingress.metadata.annotations[`${ANNOTATION_BASE}/href`])
ingressList.items.push(...traefikServices);
}
if (!ingressList) { if (!ingressList) {
return []; return [];
} }
@@ -168,6 +185,7 @@ export async function servicesFromKubernetes() {
icon: ingress.metadata.annotations[`${ANNOTATION_BASE}/icon`] || '', icon: ingress.metadata.annotations[`${ANNOTATION_BASE}/icon`] || '',
description: ingress.metadata.annotations[`${ANNOTATION_BASE}/description`] || '', description: ingress.metadata.annotations[`${ANNOTATION_BASE}/description`] || '',
external: false, external: false,
type: 'service'
}; };
if (ingress.metadata.annotations[`${ANNOTATION_BASE}/external`]) { if (ingress.metadata.annotations[`${ANNOTATION_BASE}/external`]) {
constructedService.external = String(ingress.metadata.annotations[`${ANNOTATION_BASE}/external`]).toLowerCase() === "true" constructedService.external = String(ingress.metadata.annotations[`${ANNOTATION_BASE}/external`]).toLowerCase() === "true"
@@ -221,6 +239,7 @@ export function cleanServiceGroups(groups) {
name: serviceGroup.name, name: serviceGroup.name,
services: serviceGroup.services.map((service) => { services: serviceGroup.services.map((service) => {
const cleanedService = { ...service }; const cleanedService = { ...service };
if (cleanedService.showStats !== undefined) cleanedService.showStats = JSON.parse(cleanedService.showStats);
if (typeof service.weight === 'string') { if (typeof service.weight === 'string') {
const weight = parseInt(service.weight, 10); const weight = parseInt(service.weight, 10);
if (Number.isNaN(weight)) { if (Number.isNaN(weight)) {
@@ -238,6 +257,7 @@ export function cleanServiceGroups(groups) {
const { const {
type, // all widgets type, // all widgets
fields, fields,
hideErrors,
server, // docker widget server, // docker widget
container, container,
currency, // coinmarketcap widget currency, // coinmarketcap widget
@@ -247,10 +267,10 @@ export function cleanServiceGroups(groups) {
namespace, // kubernetes widget namespace, // kubernetes widget
app, app,
podSelector, podSelector,
wan, // opnsense widget, wan, // opnsense widget, pfsense widget
enableBlocks, // emby/jellyfin enableBlocks, // emby/jellyfin
enableNowPlaying, enableNowPlaying,
volume // diskstation widget volume, // diskstation widget
} = cleanedService.widget; } = cleanedService.widget;
const fieldsList = typeof fields === 'string' ? JSON.parse(fields) : fields; const fieldsList = typeof fields === 'string' ? JSON.parse(fields) : fields;
@@ -258,6 +278,7 @@ export function cleanServiceGroups(groups) {
cleanedService.widget = { cleanedService.widget = {
type, type,
fields: fieldsList || null, fields: fieldsList || null,
hide_errors: hideErrors || false,
service_name: service.name, service_name: service.name,
service_group: serviceGroup.name, service_group: serviceGroup.name,
}; };
@@ -278,12 +299,12 @@ export function cleanServiceGroups(groups) {
if (app) cleanedService.widget.app = app; if (app) cleanedService.widget.app = app;
if (podSelector) cleanedService.widget.podSelector = podSelector; if (podSelector) cleanedService.widget.podSelector = podSelector;
} }
if (type === "opnsense") { if (["opnsense", "pfsense"].includes(type)) {
if (wan) cleanedService.widget.wan = wan; if (wan) cleanedService.widget.wan = wan;
} }
if (type === "emby" || type === "jellyfin") { if (["emby", "jellyfin"].includes(type)) {
if (enableBlocks) cleanedService.widget.enableBlocks = enableBlocks === 'true'; if (enableBlocks !== undefined) cleanedService.widget.enableBlocks = JSON.parse(enableBlocks);
if (enableNowPlaying) cleanedService.widget.enableNowPlaying = enableNowPlaying === 'true'; if (enableNowPlaying !== undefined) cleanedService.widget.enableNowPlaying = JSON.parse(enableNowPlaying);
} }
if (type === "diskstation") { if (type === "diskstation") {
if (volume) cleanedService.widget.volume = volume; if (volume) cleanedService.widget.volume = volume;

View File

@@ -32,6 +32,7 @@ export default async function credentialedProxyHandler(req, res, map) {
"authentik", "authentik",
"cloudflared", "cloudflared",
"ghostfolio", "ghostfolio",
"tailscale",
"truenas", "truenas",
"pterodactyl", "pterodactyl",
].includes(widget.type)) ].includes(widget.type))
@@ -67,6 +68,10 @@ export default async function credentialedProxyHandler(req, res, map) {
let resultData = data; let resultData = data;
if (resultData.error?.url) {
resultData.error.url = sanitizeErrorURL(url);
}
if (status === 204 || status === 304) { if (status === 204 || status === 304) {
return res.status(status).end(); return res.status(status).end();
} }
@@ -75,15 +80,11 @@ export default async function credentialedProxyHandler(req, res, map) {
logger.error("HTTP Error %d calling %s", status, url.toString()); logger.error("HTTP Error %d calling %s", status, url.toString());
} }
if (!validateWidgetData(widget, endpoint, data)) { if (status === 200) {
if (data.error && data.error.url) { if (!validateWidgetData(widget, endpoint, resultData)) {
data.error.url = sanitizeErrorURL(url); return res.status(500).json({error: {message: "Invalid data", url: sanitizeErrorURL(url), data: resultData}});
} }
return res.status(500).json({error: {message: "Invalid data", url: sanitizeErrorURL(url), data}}); if (map) resultData = map(resultData);
}
if (status === 200 && map) {
resultData = map(data);
} }
if (contentType) res.setHeader("Content-Type", contentType); if (contentType) res.setHeader("Content-Type", contentType);

View File

@@ -39,15 +39,15 @@ export default async function genericProxyHandler(req, res, map) {
let resultData = data; let resultData = data;
if (!validateWidgetData(widget, endpoint, resultData)) { if (resultData.error?.url) {
if (resultData.error && resultData.error.url) { resultData.error.url = sanitizeErrorURL(url);
resultData.error.url = sanitizeErrorURL(url);
}
return res.status(status).json({error: {message: "Invalid data", url: sanitizeErrorURL(url), data: resultData}});
} }
if (status === 200 && map) { if (status === 200) {
resultData = map(data); if (!validateWidgetData(widget, endpoint, resultData)) {
return res.status(status).json({error: {message: "Invalid data", url: sanitizeErrorURL(url), data: resultData}});
}
if (map) resultData = map(resultData);
} }
if (contentType) res.setHeader("Content-Type", contentType); if (contentType) res.setHeader("Content-Type", contentType);
@@ -57,8 +57,15 @@ export default async function genericProxyHandler(req, res, map) {
} }
if (status >= 400) { if (status >= 400) {
logger.debug("HTTP Error %d calling %s//%s%s...", status, url.protocol, url.hostname, url.pathname); logger.debug(
return res.status(status).json({error: {message: "HTTP Error", url: sanitizeErrorURL(url), data}}); "HTTP Error %d calling %s//%s:%s%s...",
status,
url.protocol,
url.hostname,
url.port,
url.pathname
);
return res.status(status).json({error: {message: "HTTP Error", url: sanitizeErrorURL(url), resultData}});
} }
return res.status(status).send(resultData); return res.status(status).send(resultData);

View File

@@ -81,7 +81,13 @@ export async function httpProxy(url, params = {}) {
return [status, contentType, data, responseHeaders]; return [status, contentType, data, responseHeaders];
} }
catch (err) { catch (err) {
logger.error("Error calling %s//%s%s...", constructedUrl.protocol, constructedUrl.hostname, constructedUrl.pathname); logger.error(
"Error calling %s//%s:%s%s...",
constructedUrl.protocol,
constructedUrl.hostname,
constructedUrl.port,
constructedUrl.pathname
);
logger.error(err); logger.error(err);
return [500, "application/json", { error: {message: err?.message ?? "Unknown error", url, rawError: err} }, null]; return [500, "application/json", { error: {message: err?.message ?? "Unknown error", url, rawError: err} }, null];
} }

View File

@@ -7,7 +7,7 @@ export default function useWidgetAPI(widget, ...options) {
if (options && options[1]?.refreshInterval) { if (options && options[1]?.refreshInterval) {
config.refreshInterval = options[1].refreshInterval; config.refreshInterval = options[1].refreshInterval;
} }
const { data, error } = useSWR(formatProxyUrl(widget, ...options), config); const { data, error, mutate } = useSWR(formatProxyUrl(widget, ...options), config);
// make the data error the top-level error // make the data error the top-level error
return { data, error: data?.error ?? error } return { data, error: data?.error ?? error, mutate }
} }

View File

@@ -1,21 +1,34 @@
/* eslint-disable no-console */
import widgets from "widgets/widgets"; import widgets from "widgets/widgets";
export default function validateWidgetData(widget, endpoint, data) { export default function validateWidgetData(widget, endpoint, data) {
let valid = true; let valid = true;
let dataParsed; let dataParsed = data;
try { let error;
dataParsed = JSON.parse(data); let mapping;
} catch (e) { if (Buffer.isBuffer(data)) {
valid = false; try {
dataParsed = JSON.parse(data);
} catch (e) {
error = e;
valid = false;
}
} }
if (dataParsed && Object.entries(dataParsed).length) { if (dataParsed && Object.entries(dataParsed).length) {
const validate = widgets[widget.type]?.mappings?.[endpoint]?.validate; const mappings = widgets[widget.type]?.mappings;
validate?.forEach(key => { if (mappings) {
if (dataParsed[key] === undefined) { mapping = Object.values(mappings).find(m => m.endpoint === endpoint);
valid = false; mapping?.validate?.forEach(key => {
} if (dataParsed[key] === undefined) {
}); valid = false;
}
});
}
}
if (!valid) {
console.warn(`Invalid data for widget '${widget.type}' endpoint '${endpoint}':\nExpected:${mapping?.validate}\nParse error: ${error ?? "none"}\nData: ${JSON.stringify(data)}`);
} }
return valid; return valid;

View File

@@ -12,7 +12,7 @@ export default function Component({ service }) {
const { data: adguardData, error: adguardError } = useWidgetAPI(widget, "stats"); const { data: adguardData, error: adguardError } = useWidgetAPI(widget, "stats");
if (adguardError) { if (adguardError) {
return <Container error={adguardError} />; return <Container service={service} error={adguardError} />;
} }
if (!adguardData) { if (!adguardData) {

View File

@@ -12,7 +12,7 @@ export default function Component({ service }) {
if (librariesError) { if (librariesError) {
return <Container error={librariesError} />; return <Container service={service} error={librariesError} />;
} }
if (!librariesData) { if (!librariesData) {

View File

@@ -15,7 +15,7 @@ export default function Component({ service }) {
if (usersError || loginsError || failedLoginsError) { if (usersError || loginsError || failedLoginsError) {
const finalError = usersError ?? loginsError ?? failedLoginsError; const finalError = usersError ?? loginsError ?? failedLoginsError;
return <Container error={finalError} />; return <Container service={service} error={finalError} />;
} }
if (!usersData || !loginsData || !failedLoginsData) { if (!usersData || !loginsData || !failedLoginsData) {

View File

@@ -15,7 +15,7 @@ export default function Component({ service }) {
if (statsError || filtersError || indexersError) { if (statsError || filtersError || indexersError) {
const finalError = statsError ?? filtersError ?? indexersError; const finalError = statsError ?? filtersError ?? indexersError;
return <Container error={finalError} />; return <Container service={service} error={finalError} />;
} }
if (!statsData || !filtersData || !indexersData) { if (!statsData || !filtersData || !indexersData) {

View File

@@ -14,7 +14,7 @@ export default function Component({ service }) {
if (moviesError || episodesError) { if (moviesError || episodesError) {
const finalError = moviesError ?? episodesError; const finalError = moviesError ?? episodesError;
return <Container error={finalError} />; return <Container service={service} error={finalError} />;
} }
if (!episodesData || !moviesData) { if (!episodesData || !moviesData) {

View File

@@ -0,0 +1,39 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data: resultData, error: resultError } = useWidgetAPI(widget, "result");
if (resultError) {
return <Container service={service} error={resultError} />;
}
if (!resultData) {
return (
<Container service={service}>,
<Block label="caddy.upstreams" />
<Block label="caddy.requests" />
<Block label="caddy.requests_failed" />
</Container>
);
}
const upstreams = resultData.length;
const requests = resultData.reduce((acc, val) => acc + val.num_requests, 0);
const requestsFailed = resultData.reduce((acc, val) => acc + val.fails, 0);
return (
<Container service={service}>
<Block label="caddy.upstreams" value={t("common.number", { value: upstreams })} />
<Block label="caddy.requests" value={t("common.number", { value: requests })} />
<Block label="caddy.requests_failed" value={t("common.number", { value: requestsFailed })} />
</Container>
);
}

View File

@@ -0,0 +1,8 @@
import genericProxyHandler from "utils/proxy/handlers/generic";
const widget = {
api: "{url}/reverse_proxy/upstreams",
proxyHandler: genericProxyHandler,
};
export default widget;

View File

@@ -12,11 +12,16 @@ export default function Component({ service }) {
const { data, error } = useWidgetAPI(widget, "info"); const { data, error } = useWidgetAPI(widget, "info");
if (error) { if (error) {
return <Container error={error} />; return <Container service={service} error={error} />;
} }
if (!data) { if (!data) {
return <Container service={service} />; return (
<Container service={service}>
<Block label="changedetectionio.diffsDetected" />
<Block label="changedetectionio.totalObserved" />
</Container>
);
} }
const totalObserved = Object.keys(data).length; const totalObserved = Object.keys(data).length;

View File

@@ -0,0 +1,36 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data: channelsData, error: channelsError } = useWidgetAPI(widget, "status");
if (channelsError) {
return <Container service={service} error={channelsError} />;
}
if (!channelsData) {
return (
<Container service={service}>
<Block label="channelsdvrserver.shows" />
<Block label="channelsdvrserver.recordings" />
<Block label="channelsdvrserver.scheduled" />
<Block label="channelsdvrserver.passes" />
</Container>
);
}
return (
<Container service={service}>
<Block label="channelsdvrserver.shows" value={t("common.number", { value: channelsData.stats.groups })} />
<Block label="channelsdvrserver.recordings" value={t("common.number", { value: channelsData.stats.files })} />
<Block label="channelsdvrserver.scheduled" value={t("common.number", { value: channelsData.stats.jobs })} />
<Block label="channelsdvrserver.passes" value={t("common.number", { value: channelsData.stats.rules })} />
</Container>
);
}

View File

@@ -0,0 +1,14 @@
import genericProxyHandler from "utils/proxy/handlers/generic";
const widget = {
api: "{url}/{endpoint}",
proxyHandler: genericProxyHandler,
mappings: {
status: {
endpoint: "dvr",
},
},
};
export default widget;

View File

@@ -8,7 +8,7 @@ export default function Component({ service }) {
const { data: statsData, error: statsError } = useWidgetAPI(widget, "cfd_tunnel"); const { data: statsData, error: statsError } = useWidgetAPI(widget, "cfd_tunnel");
if (statsError) { if (statsError) {
return <Container error={statsError} />; return <Container service={service} error={statsError} />;
} }
if (!statsData) { if (!statsData) {

View File

@@ -38,7 +38,7 @@ export default function Component({ service }) {
} }
if (statsError) { if (statsError) {
return <Container error={statsError} />; return <Container service={service} error={statsError} />;
} }
if (!statsData || !dateRange) { if (!statsData || !dateRange) {

View File

@@ -6,7 +6,9 @@ const components = {
authentik: dynamic(() => import("./authentik/component")), authentik: dynamic(() => import("./authentik/component")),
autobrr: dynamic(() => import("./autobrr/component")), autobrr: dynamic(() => import("./autobrr/component")),
bazarr: dynamic(() => import("./bazarr/component")), bazarr: dynamic(() => import("./bazarr/component")),
caddy: dynamic(() => import("./caddy/component")),
changedetectionio: dynamic(() => import("./changedetectionio/component")), changedetectionio: dynamic(() => import("./changedetectionio/component")),
channelsdvrserver: dynamic(() => import("./channelsdvrserver/component")),
cloudflared: dynamic(() => import("./cloudflared/component")), cloudflared: dynamic(() => import("./cloudflared/component")),
coinmarketcap: dynamic(() => import("./coinmarketcap/component")), coinmarketcap: dynamic(() => import("./coinmarketcap/component")),
deluge: dynamic(() => import("./deluge/component")), deluge: dynamic(() => import("./deluge/component")),
@@ -15,13 +17,16 @@ const components = {
docker: dynamic(() => import("./docker/component")), docker: dynamic(() => import("./docker/component")),
kubernetes: dynamic(() => import("./kubernetes/component")), kubernetes: dynamic(() => import("./kubernetes/component")),
emby: dynamic(() => import("./emby/component")), emby: dynamic(() => import("./emby/component")),
evcc: dynamic(() => import("./evcc/component")),
fileflows: dynamic(() => import("./fileflows/component")), fileflows: dynamic(() => import("./fileflows/component")),
flood: dynamic(() => import("./flood/component")), flood: dynamic(() => import("./flood/component")),
freshrss: dynamic(() => import("./freshrss/component")),
ghostfolio: dynamic(() => import("./ghostfolio/component")), ghostfolio: dynamic(() => import("./ghostfolio/component")),
gluetun: dynamic(() => import("./gluetun/component")), gluetun: dynamic(() => import("./gluetun/component")),
gotify: dynamic(() => import("./gotify/component")), gotify: dynamic(() => import("./gotify/component")),
grafana: dynamic(() => import("./grafana/component")), grafana: dynamic(() => import("./grafana/component")),
hdhomerun: dynamic(() => import("./hdhomerun/component")), hdhomerun: dynamic(() => import("./hdhomerun/component")),
homeassistant: dynamic(() => import("./homeassistant/component")),
homebridge: dynamic(() => import("./homebridge/component")), homebridge: dynamic(() => import("./homebridge/component")),
healthchecks: dynamic(() => import("./healthchecks/component")), healthchecks: dynamic(() => import("./healthchecks/component")),
immich: dynamic(() => import("./immich/component")), immich: dynamic(() => import("./immich/component")),
@@ -49,6 +54,7 @@ const components = {
opnsense: dynamic(() => import("./opnsense/component")), opnsense: dynamic(() => import("./opnsense/component")),
overseerr: dynamic(() => import("./overseerr/component")), overseerr: dynamic(() => import("./overseerr/component")),
paperlessngx: dynamic(() => import("./paperlessngx/component")), paperlessngx: dynamic(() => import("./paperlessngx/component")),
pfsense: dynamic(() => import("./pfsense/component")),
photoprism: dynamic(() => import("./photoprism/component")), photoprism: dynamic(() => import("./photoprism/component")),
proxmoxbackupserver: dynamic(() => import("./proxmoxbackupserver/component")), proxmoxbackupserver: dynamic(() => import("./proxmoxbackupserver/component")),
pihole: dynamic(() => import("./pihole/component")), pihole: dynamic(() => import("./pihole/component")),
@@ -60,6 +66,7 @@ const components = {
pterodactyl: dynamic(() => import("./pterodactyl/component")), pterodactyl: dynamic(() => import("./pterodactyl/component")),
pyload: dynamic(() => import("./pyload/component")), pyload: dynamic(() => import("./pyload/component")),
qbittorrent: dynamic(() => import("./qbittorrent/component")), qbittorrent: dynamic(() => import("./qbittorrent/component")),
qnap: dynamic(() => import("./qnap/component")),
radarr: dynamic(() => import("./radarr/component")), radarr: dynamic(() => import("./radarr/component")),
readarr: dynamic(() => import("./readarr/component")), readarr: dynamic(() => import("./readarr/component")),
rutorrent: dynamic(() => import("./rutorrent/component")), rutorrent: dynamic(() => import("./rutorrent/component")),
@@ -68,6 +75,7 @@ const components = {
sonarr: dynamic(() => import("./sonarr/component")), sonarr: dynamic(() => import("./sonarr/component")),
speedtest: dynamic(() => import("./speedtest/component")), speedtest: dynamic(() => import("./speedtest/component")),
strelaysrv: dynamic(() => import("./strelaysrv/component")), strelaysrv: dynamic(() => import("./strelaysrv/component")),
tailscale: dynamic(() => import("./tailscale/component")),
tautulli: dynamic(() => import("./tautulli/component")), tautulli: dynamic(() => import("./tautulli/component")),
tdarr: dynamic(() => import("./tdarr/component")), tdarr: dynamic(() => import("./tdarr/component")),
traefik: dynamic(() => import("./traefik/component")), traefik: dynamic(() => import("./traefik/component")),
@@ -78,6 +86,7 @@ const components = {
unmanic: dynamic(() => import("./unmanic/component")), unmanic: dynamic(() => import("./unmanic/component")),
uptimekuma: dynamic(() => import("./uptimekuma/component")), uptimekuma: dynamic(() => import("./uptimekuma/component")),
watchtower: dynamic(() => import("./watchtower/component")), watchtower: dynamic(() => import("./watchtower/component")),
whatsupdocker: dynamic(() => import("./whatsupdocker/component")),
xteve: dynamic(() => import("./xteve/component")), xteve: dynamic(() => import("./xteve/component")),
}; };

View File

@@ -12,7 +12,7 @@ export default function Component({ service }) {
const { data: torrentData, error: torrentError } = useWidgetAPI(widget); const { data: torrentData, error: torrentError } = useWidgetAPI(widget);
if (torrentError) { if (torrentError) {
return <Container error={torrentError} />; return <Container service={service} error={torrentError} />;
} }
if (!torrentData) { if (!torrentData) {

View File

@@ -12,7 +12,7 @@ export default function Component({ service }) {
const { data: utilizationData, error: utilizationError } = useWidgetAPI(widget, "utilization"); const { data: utilizationData, error: utilizationError } = useWidgetAPI(widget, "utilization");
if (storageError || infoError || utilizationError) { if (storageError || infoError || utilizationError) {
return <Container error={ storageError ?? infoError ?? utilizationError } />; return <Container service={service} error={ storageError ?? infoError ?? utilizationError } />;
} }
if (!storageData || !infoData || !utilizationData) { if (!storageData || !infoData || !utilizationData) {

View File

@@ -19,7 +19,7 @@ export default function Component({ service }) {
if (statsError || statsData?.error || statusError || statusData?.error) { if (statsError || statsData?.error || statusError || statusData?.error) {
const finalError = statsError ?? statsData?.error ?? statusError ?? statusData?.error; const finalError = statsError ?? statsData?.error ?? statusError ?? statusData?.error;
return <Container error={finalError} />; return <Container service={service} error={finalError} />;
} }
if (statusData && !(statusData.status.includes("running") || statusData.status.includes("partial"))) { if (statusData && !(statusData.status.includes("running") || statusData.status.includes("partial"))) {

View File

@@ -10,7 +10,7 @@ export default function Component({ service }) {
const { data: listData, error: listError } = useWidgetAPI(widget, "list"); const { data: listData, error: listError } = useWidgetAPI(widget, "list");
if (listError) { if (listError) {
return <Container error={listError} />; return <Container service={service} error={listError} />;
} }
const tasks = listData?.data?.tasks; const tasks = listData?.data?.tasks;

View File

@@ -206,7 +206,7 @@ export default function Component({ service }) {
} }
if (sessionsError || countError) { if (sessionsError || countError) {
return <Container error={sessionsError ?? countError} />; return <Container service={service} error={sessionsError ?? countError} />;
} }
const enableBlocks = service.widget?.enableBlocks const enableBlocks = service.widget?.enableBlocks
@@ -272,7 +272,7 @@ export default function Component({ service }) {
); );
} }
if (playing.length === -1) if (playing.length > 0)
return ( return (
<> <>
{enableBlocks && <CountBlocks service={service} countData={countData} />} {enableBlocks && <CountBlocks service={service} countData={countData} />}

View File

@@ -0,0 +1,36 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data: stateData, error: stateError } = useWidgetAPI(widget, "state");
if (stateError) {
return <Container service={service} error={stateError} />;
}
if (!stateData) {
return (
<Container service={service}>,
<Block label="evcc.pv_power" />
<Block label="evcc.grid_power" />
<Block label="evcc.home_power" />
<Block label="evcc.charge_power"/>
</Container>
);
}
return (
<Container service={service}>
<Block label="evcc.pv_power" value={`${t("common.number", { value: stateData.result.pvPower })} ${t("evcc.watt_hour")}`} />
<Block label="evcc.grid_power" value={`${t("common.number", { value: stateData.result.gridPower })} ${t("evcc.watt_hour")}`} />
<Block label="evcc.home_power" value={`${t("common.number", { value: stateData.result.homePower })} ${t("evcc.watt_hour")}`} />
<Block label="evcc.charge_power" value={`${t("common.number", { value: stateData.result.loadpoints[0].chargePower })} ${t("evcc.watt_hour")}`} />
</Container>
);
}

View File

@@ -0,0 +1,14 @@
import genericProxyHandler from "utils/proxy/handlers/generic";
const widget = {
api: "{url}/api/{endpoint}",
proxyHandler: genericProxyHandler,
mappings: {
state: {
endpoint: "state",
}
},
};
export default widget;

View File

@@ -12,7 +12,7 @@ export default function Component({ service }) {
const { data: fileflowsData, error: fileflowsError } = useWidgetAPI(widget, "status"); const { data: fileflowsData, error: fileflowsError } = useWidgetAPI(widget, "status");
if (fileflowsError) { if (fileflowsError) {
return <Container error={fileflowsError} />; return <Container service={service} error={fileflowsError} />;
} }
if (!fileflowsData) { if (!fileflowsData) {

View File

@@ -12,7 +12,7 @@ export default function Component({ service }) {
const { data: torrentData, error: torrentError } = useWidgetAPI(widget, "torrents"); const { data: torrentData, error: torrentError } = useWidgetAPI(widget, "torrents");
if (torrentError || !torrentData?.torrents) { if (torrentError || !torrentData?.torrents) {
return <Container error={torrentError ?? {message: "No torrent data returned"}} />; return <Container service={service} error={torrentError ?? {message: "No torrent data returned"}} />;
} }
if (!torrentData || !torrentData.torrents) { if (!torrentData || !torrentData.torrents) {

View File

@@ -0,0 +1,33 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data: freshrssData, error: freshrssError } = useWidgetAPI(widget, "info");
if (freshrssError) {
return <Container service={service} error={freshrssError} />;
}
if (!freshrssData) {
return (
<Container service={service}>
<Block label="freshrss.unread" />
<Block label="freshrss.subscriptions" />
</Container>
);
}
return (
<Container service={service}>
<Block label="freshrss.unread" value={t("common.number", { value: freshrssData.unread })} />
<Block label="freshrss.subscriptions" value={t("common.number", { value: freshrssData.subscriptions })} />
</Container>
);
}

View File

@@ -0,0 +1,97 @@
import cache from "memory-cache";
import { httpProxy } from "utils/proxy/http";
import { formatApiCall } from "utils/proxy/api-helpers";
import getServiceWidget from "utils/config/service-helpers";
import createLogger from "utils/logger";
import widgets from "widgets/widgets";
const proxyName = "freshrssProxyHandler";
const sessionTokenCacheKey = `${proxyName}__sessionToken`;
const logger = createLogger(proxyName);
async function login(widget, service) {
const endpoint = "accounts/ClientLogin";
const api = widgets?.[widget.type]?.api
const loginUrl = new URL(formatApiCall(api, { endpoint, ...widget }));
const headers = { "Content-Type": "application/x-www-form-urlencoded" };
const [, , data,] = await httpProxy(loginUrl, {
method: "POST",
body: new URLSearchParams({
Email: widget.username,
Passwd: widget.password
}).toString(),
headers,
});
try {
const [, token] = data.toString().split("\n").find(line => line.startsWith("Auth=")).split("=")
cache.put(`${sessionTokenCacheKey}.${service}`, token);
return { token };
} catch (e) {
logger.error("Unable to login to FreshRSS API: %s", e);
}
return { token: false };
}
async function apiCall(widget, endpoint, service) {
const key = `${sessionTokenCacheKey}.${service}`;
const headers = {
"Authorization": `GoogleLogin auth=${cache.get(key)}`,
}
const url = new URL(formatApiCall(widgets[widget.type].api, { endpoint, ...widget }));
const method = "GET";
let [status, contentType, data, responseHeaders] = await httpProxy(url, {
method,
headers,
});
if (status === 401) {
logger.debug("FreshRSS API rejected the request, attempting to obtain new session token");
const { token } = await login(widget, service);
headers.Authorization = `GoogleLogin auth=${token}`;
// retry the request, now with the new session token
[status, contentType, data, responseHeaders] = await httpProxy(url, {
method,
headers,
});
}
if (status !== 200) {
logger.error("Error getting data from FreshRSS: %s status %d. Data: %s", url, status, data);
return { status, contentType, data: null, responseHeaders };
}
return { status, contentType, data: JSON.parse(data.toString()), responseHeaders };
}
export default async function freshrssProxyHandler(req, res) {
const { group, service } = req.query;
if (!group || !service) {
logger.debug("Invalid or missing service '%s' or group '%s'", service, group);
return res.status(400).json({ error: "Invalid proxy service type" });
}
const widget = await getServiceWidget(group, service);
if (!widget) {
logger.debug("Invalid or missing widget for service '%s' in group '%s'", service, group);
return res.status(400).json({ error: "Invalid proxy service type" });
}
if (!cache.get(`${sessionTokenCacheKey}.${service}`)) {
await login(widget, service);
}
const { data: subscriptionData } = await apiCall(widget, "reader/api/0/subscription/list", service);
const { data: unreadCountData } = await apiCall(widget, "reader/api/0/unread-count", service);
return res.status(200).send({
subscriptions: subscriptionData?.subscriptions.length,
unread: unreadCountData?.max
});
}

View File

@@ -0,0 +1,13 @@
import freshrssProxyHandler from "./proxy";
const widget = {
api: "{url}/api/greader.php/{endpoint}?output=json",
proxyHandler: freshrssProxyHandler,
mappings: {
info: {
endpoint: "/"
}
}
};
export default widget;

View File

@@ -18,7 +18,7 @@ export default function Component({ service }) {
if (ghostfolioErrorToday || ghostfolioErrorYear || ghostfolioErrorMax) { if (ghostfolioErrorToday || ghostfolioErrorYear || ghostfolioErrorMax) {
const finalError = ghostfolioErrorToday ?? ghostfolioErrorYear ?? ghostfolioErrorMax const finalError = ghostfolioErrorToday ?? ghostfolioErrorYear ?? ghostfolioErrorMax
return <Container error={finalError} />; return <Container service={service} error={finalError} />;
} }
if (!performanceToday || !performanceYear || !performanceMax) { if (!performanceToday || !performanceYear || !performanceMax) {

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