mirror of
https://github.com/gethomepage/homepage.git
synced 2025-12-07 09:35:54 -08:00
Compare commits
630 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3e01fc12e4 | ||
|
|
1fb7be7457 | ||
|
|
0d6ccb036e | ||
|
|
7af36eb106 | ||
|
|
1d80955649 | ||
|
|
a50e939123 | ||
|
|
6b2930ab8d | ||
|
|
347761fcad | ||
|
|
2fabaa700b | ||
|
|
68b6192d8c | ||
|
|
0101e8ccb9 | ||
|
|
2da66b504b | ||
|
|
b882065d5e | ||
|
|
0be0fa71d3 | ||
|
|
fe647fe67a | ||
|
|
ee5fa003ee | ||
|
|
19bcf40d31 | ||
|
|
d06d6f7e44 | ||
|
|
b5c4e36a53 | ||
|
|
4382bab64b | ||
|
|
678819d065 | ||
|
|
1dea651d8b | ||
|
|
c29e351afc | ||
|
|
2493e608e8 | ||
|
|
bfb326bd73 | ||
|
|
fabb65995c | ||
|
|
1ca12714e0 | ||
|
|
36717ede61 | ||
|
|
7fc313cc73 | ||
|
|
6794fa1429 | ||
|
|
1097a46669 | ||
|
|
193582c8ae | ||
|
|
aacc2fae9d | ||
|
|
ac99f65188 | ||
|
|
1f9ee368c6 | ||
|
|
4c4da54d99 | ||
|
|
7d51a9b10c | ||
|
|
e9722e8946 | ||
|
|
e03c891703 | ||
|
|
10cfe20e8a | ||
|
|
fd74618b8f | ||
|
|
b72d894a30 | ||
|
|
7ca6f36125 | ||
|
|
877a091fc0 | ||
|
|
6584a3194f | ||
|
|
8fa1831b31 | ||
|
|
a01713c6e6 | ||
|
|
637f745ee7 | ||
|
|
8e89f39979 | ||
|
|
2b0cddb05f | ||
|
|
f780deca62 | ||
|
|
a19304e7e7 | ||
|
|
3d0cc6aeeb | ||
|
|
7588dd03db | ||
|
|
b934fc429d | ||
|
|
07c0c0faf4 | ||
|
|
350e27c32b | ||
|
|
ea50a851f3 | ||
|
|
27958c9f69 | ||
|
|
3383b553d5 | ||
|
|
4245f1070a | ||
|
|
c92d1caf80 | ||
|
|
91e0ec2f83 | ||
|
|
774ca4b3b2 | ||
|
|
bcd9289849 | ||
|
|
0e9ca01c18 | ||
|
|
614ce65871 | ||
|
|
b085a1a2d1 | ||
|
|
715f3d9d27 | ||
|
|
a1fedf98e5 | ||
|
|
249dfa7a92 | ||
|
|
bb09d85d80 | ||
|
|
4f386bb2af | ||
|
|
d98607072c | ||
|
|
93440ae8d1 | ||
|
|
0f5deba5e3 | ||
|
|
e398e4acc5 | ||
|
|
0447bb0413 | ||
|
|
577f8fecfd | ||
|
|
9523f72c97 | ||
|
|
7bcd405f77 | ||
|
|
3ab5862bf1 | ||
|
|
a00ef03ce5 | ||
|
|
95ecc55467 | ||
|
|
db7fdd2a4f | ||
|
|
a2a6cd150f | ||
|
|
26d17e9a3a | ||
|
|
46b988eeea | ||
|
|
4682b5a9a2 | ||
|
|
e2c8b2000f | ||
|
|
ff7ee31497 | ||
|
|
f66dc86e24 | ||
|
|
a2204a3de9 | ||
|
|
4cf8302d4f | ||
|
|
63247f3a9f | ||
|
|
51a1562ea9 | ||
|
|
ece83fd531 | ||
|
|
86cb124894 | ||
|
|
4c55eee55b | ||
|
|
3061654eeb | ||
|
|
bcdbcb2cb7 | ||
|
|
7367bd4a1f | ||
|
|
fd0d644474 | ||
|
|
a054747285 | ||
|
|
2c62f180a9 | ||
|
|
dd4ee44302 | ||
|
|
3a29262256 | ||
|
|
5b3d1cc6e0 | ||
|
|
a55fe939cb | ||
|
|
c1a68a79ee | ||
|
|
8f0cd7e088 | ||
|
|
f656c2b46d | ||
|
|
f05ac3247d | ||
|
|
7e54b80d73 | ||
|
|
d4fd923be5 | ||
|
|
c79d45f91e | ||
|
|
0eab4e7943 | ||
|
|
28e39e46ae | ||
|
|
caa1b94fd6 | ||
|
|
967fd6817a | ||
|
|
f3b5d73533 | ||
|
|
18cf4e7d5d | ||
|
|
56644ac487 | ||
|
|
e6d95e29ee | ||
|
|
8673548c88 | ||
|
|
bd5c10e907 | ||
|
|
2bbe5b04c7 | ||
|
|
498089a8fa | ||
|
|
0a5eb1ae75 | ||
|
|
6dfddf739e | ||
|
|
febb4cc6d5 | ||
|
|
7dfa7412ef | ||
|
|
665ff66217 | ||
|
|
37d36750de | ||
|
|
5850a48ec9 | ||
|
|
1f85da934f | ||
|
|
4948485c50 | ||
|
|
fc668aa9d0 | ||
|
|
f28284fa77 | ||
|
|
cd14dbde58 | ||
|
|
5ee9f46a5a | ||
|
|
73db271c87 | ||
|
|
864470b53c | ||
|
|
1b984abd91 | ||
|
|
b960813ed9 | ||
|
|
d6363d4636 | ||
|
|
42681d8884 | ||
|
|
7da1fd3a41 | ||
|
|
1de449f925 | ||
|
|
e4a3570a77 | ||
|
|
0e83953ac7 | ||
|
|
8e548fb249 | ||
|
|
c3168df04b | ||
|
|
4b915467f2 | ||
|
|
4f53c1e4e4 | ||
|
|
f3f946a649 | ||
|
|
d633f70c45 | ||
|
|
c893a6e829 | ||
|
|
ae55441f44 | ||
|
|
d59dce8a36 | ||
|
|
fa3a438d30 | ||
|
|
c9a69c0c77 | ||
|
|
07cb004ecb | ||
|
|
678ddf9c11 | ||
|
|
618b006350 | ||
|
|
60c423f7cf | ||
|
|
bccef494d7 | ||
|
|
4539ef7bb0 | ||
|
|
abb9a6f66f | ||
|
|
98e5ceb93a | ||
|
|
fa5b4f9ebe | ||
|
|
06b24907b9 | ||
|
|
2f9bec8544 | ||
|
|
43a3a71f72 | ||
|
|
8261a504e4 | ||
|
|
a0c29cdd05 | ||
|
|
4c6cf7da18 | ||
|
|
8cf783bf43 | ||
|
|
55732ccac6 | ||
|
|
33bd39301e | ||
|
|
200706d612 | ||
|
|
891f770d1e | ||
|
|
7b8c84df5a | ||
|
|
f29b137a9e | ||
|
|
e97bdb9ec4 | ||
|
|
1291707e2f | ||
|
|
cdd7b2d44b | ||
|
|
3bc750bfe7 | ||
|
|
a5b041eb6f | ||
|
|
f3dad538f3 | ||
|
|
f61d8fb924 | ||
|
|
e3fd1dfc49 | ||
|
|
d00a6efc41 | ||
|
|
73b5175294 | ||
|
|
94540f828b | ||
|
|
940bb01c12 | ||
|
|
5d2d81d0dd | ||
|
|
48f2d4348d | ||
|
|
16cf1cba98 | ||
|
|
982f594040 | ||
|
|
ea025cedf0 | ||
|
|
70519a53a5 | ||
|
|
551b53e143 | ||
|
|
9f75009f42 | ||
|
|
148710dfd8 | ||
|
|
319042ea19 | ||
|
|
a9a7a7d6b1 | ||
|
|
0bd639cad8 | ||
|
|
febc8eaf73 | ||
|
|
268cdcab19 | ||
|
|
1caf6126c8 | ||
|
|
82ae597a23 | ||
|
|
be82a83f4d | ||
|
|
1e00867697 | ||
|
|
db030f2e72 | ||
|
|
03ed353762 | ||
|
|
d63d62885b | ||
|
|
b23ba74cce | ||
|
|
4150158b8d | ||
|
|
fde331a2c2 | ||
|
|
e40e995f66 | ||
|
|
f706e4eccd | ||
|
|
e5d42a65c7 | ||
|
|
9a5d9f241a | ||
|
|
b3ecf152f0 | ||
|
|
715d3abdb5 | ||
|
|
36eaaafd88 | ||
|
|
c8eccc71a4 | ||
|
|
abc4735b8f | ||
|
|
2fe14dbd9a | ||
|
|
1b9e0dbf41 | ||
|
|
edbfb857f1 | ||
|
|
a94fe86fb9 | ||
|
|
4f5d6ed099 | ||
|
|
e964dd5f74 | ||
|
|
40c18f2a46 | ||
|
|
defae64b65 | ||
|
|
7a7b695c6b | ||
|
|
31178f2212 | ||
|
|
2b8a120a9b | ||
|
|
3742fee9c0 | ||
|
|
a8f48920a4 | ||
|
|
79a4130e1a | ||
|
|
477d48e6c7 | ||
|
|
fcf3499098 | ||
|
|
b3d4397961 | ||
|
|
a6e3d28cc3 | ||
|
|
c1c9e70372 | ||
|
|
b027772787 | ||
|
|
99c6e6c43e | ||
|
|
1d48cf4fdc | ||
|
|
81d4c86368 | ||
|
|
4f6afc72fc | ||
|
|
269e70a086 | ||
|
|
675aaba5d4 | ||
|
|
30dc155526 | ||
|
|
c7a60f5645 | ||
|
|
e439c3e5da | ||
|
|
3a57f9f685 | ||
|
|
4b4537f532 | ||
|
|
80fe8ef62e | ||
|
|
99d859dc08 | ||
|
|
49b4997245 | ||
|
|
2d9cf1e06a | ||
|
|
ff2177fa5e | ||
|
|
18a597617d | ||
|
|
5443d17bf3 | ||
|
|
d31129ee03 | ||
|
|
cf7c68261f | ||
|
|
a59e8e6efd | ||
|
|
f1a33f10ed | ||
|
|
cead87dcd0 | ||
|
|
cb7abb62b8 | ||
|
|
7e005e51cc | ||
|
|
1ed1ce4001 | ||
|
|
8a92d92b22 | ||
|
|
6046f7911e | ||
|
|
a9d3873579 | ||
|
|
d402be2b78 | ||
|
|
2ca46b595b | ||
|
|
db2481cf0e | ||
|
|
865206802c | ||
|
|
668779ede1 | ||
|
|
1ca2407256 | ||
|
|
3240b7a169 | ||
|
|
4aeb3882af | ||
|
|
54ccd7ffb0 | ||
|
|
411e24ef94 | ||
|
|
5fecf9baa7 | ||
|
|
bdcd7835ac | ||
|
|
c023b414c1 | ||
|
|
d3f85bf628 | ||
|
|
ba21ae60d7 | ||
|
|
328875d0f5 | ||
|
|
4f3396cf32 | ||
|
|
be7aa5835a | ||
|
|
d87c5e100d | ||
|
|
ec25267235 | ||
|
|
cc36ad19ee | ||
|
|
1091447b8b | ||
|
|
143d684f72 | ||
|
|
38ee11543a | ||
|
|
f1e67f7504 | ||
|
|
43e7f9dbc0 | ||
|
|
68fe6afc21 | ||
|
|
5aaa50bae3 | ||
|
|
2896b6f4ed | ||
|
|
dd8e21632e | ||
|
|
b76c132953 | ||
|
|
193338fb00 | ||
|
|
5478555509 | ||
|
|
9354faf485 | ||
|
|
410d96ef03 | ||
|
|
7a48323558 | ||
|
|
b8e7979719 | ||
|
|
bf83acf066 | ||
|
|
a381da6a14 | ||
|
|
4bbca70c92 | ||
|
|
1fff750f6c | ||
|
|
4963eb4ec0 | ||
|
|
fcbeff9f2e | ||
|
|
f26ea08da8 | ||
|
|
fb06c9d51c | ||
|
|
e03c1ef990 | ||
|
|
c5465f8e42 | ||
|
|
7102f1bd67 | ||
|
|
b0d1449481 | ||
|
|
d7191477d1 | ||
|
|
42069d9502 | ||
|
|
65aaacd3d1 | ||
|
|
59e801e6cc | ||
|
|
cb87a0f45c | ||
|
|
31ae68567e | ||
|
|
41d04de4ff | ||
|
|
03abda2242 | ||
|
|
f30abd58e8 | ||
|
|
b0f53361fc | ||
|
|
583caf9d9e | ||
|
|
dabf2b25e7 | ||
|
|
03eb1b1112 | ||
|
|
a0665c17b8 | ||
|
|
66a565b637 | ||
|
|
922358a9c3 | ||
|
|
2031929dfb | ||
|
|
f0e16f2b0f | ||
|
|
7a7bca3deb | ||
|
|
8263e53025 | ||
|
|
e41fae1b81 | ||
|
|
7555b21211 | ||
|
|
1c7c11f093 | ||
|
|
7f7c99c361 | ||
|
|
79199dccfe | ||
|
|
1027eb00a0 | ||
|
|
f09bbd293c | ||
|
|
ad04c056ca | ||
|
|
e316175cce | ||
|
|
b50d001756 | ||
|
|
03a75e287a | ||
|
|
bc4c22b0a7 | ||
|
|
ad53770edd | ||
|
|
ee9af5cf05 | ||
|
|
9aa230fafb | ||
|
|
ad14d100df | ||
|
|
51b8b9e61e | ||
|
|
836c61effa | ||
|
|
14de8b690d | ||
|
|
d0a08edc3c | ||
|
|
2d56220115 | ||
|
|
16c4b8d8a4 | ||
|
|
062b0e468a | ||
|
|
a49f3114a0 | ||
|
|
538a718f15 | ||
|
|
f5e5e8bb40 | ||
|
|
affd585fad | ||
|
|
89a790a4a6 | ||
|
|
5b70cdc892 | ||
|
|
27d4117da7 | ||
|
|
4f4cf5beab | ||
|
|
73f850459d | ||
|
|
b764f58013 | ||
|
|
cb5c246aaf | ||
|
|
3b413c0030 | ||
|
|
811d18d18d | ||
|
|
a5a42fb9f7 | ||
|
|
57fdf5e76e | ||
|
|
92d3963804 | ||
|
|
61aff6bb56 | ||
|
|
1f41d36aa4 | ||
|
|
ec2df8fc49 | ||
|
|
cae12feac6 | ||
|
|
135f738249 | ||
|
|
bc981aae3d | ||
|
|
516423c8bd | ||
|
|
ef1dfc7323 | ||
|
|
ac2ec69b54 | ||
|
|
11a52de651 | ||
|
|
44ebf7c59f | ||
|
|
abac88e353 | ||
|
|
29d5ce063f | ||
|
|
b502726300 | ||
|
|
acf7afd2ae | ||
|
|
b53bc9f768 | ||
|
|
22bc651e13 | ||
|
|
32b95bbbc4 | ||
|
|
811758df81 | ||
|
|
48e68241c6 | ||
|
|
712b5c151d | ||
|
|
f79c1be558 | ||
|
|
81909f1fea | ||
|
|
b9df862ac0 | ||
|
|
5d671857cd | ||
|
|
2b59cfc4b9 | ||
|
|
f90c79bd70 | ||
|
|
28ace5e9da | ||
|
|
a90daa9e7e | ||
|
|
369f145be8 | ||
|
|
07e6700b3b | ||
|
|
e1a322cbba | ||
|
|
202d80b2da | ||
|
|
8aa9df891c | ||
|
|
4e7c2763eb | ||
|
|
a9286d86cd | ||
|
|
b98e716d3a | ||
|
|
8622017d5e | ||
|
|
28c8e5e5b2 | ||
|
|
f16b538689 | ||
|
|
595d4d1253 | ||
|
|
be9c281cad | ||
|
|
5b442c24c9 | ||
|
|
9fd107fef2 | ||
|
|
48a4486bcf | ||
|
|
a86d166348 | ||
|
|
77f4c8bf54 | ||
|
|
9617583ee8 | ||
|
|
0f7342a382 | ||
|
|
9c4e51e395 | ||
|
|
1511394546 | ||
|
|
93d625ed5d | ||
|
|
bba3f08a8f | ||
|
|
48130626d0 | ||
|
|
6324c895ea | ||
|
|
866bb1c330 | ||
|
|
20e3c16089 | ||
|
|
ccbe11e20c | ||
|
|
7d877fb8e0 | ||
|
|
56fe2336b9 | ||
|
|
5109ef682a | ||
|
|
d527899650 | ||
|
|
bdd4c10eb6 | ||
|
|
7a5f951c6a | ||
|
|
df1eab9369 | ||
|
|
0d7192ebc5 | ||
|
|
e358dfc9f4 | ||
|
|
344223769d | ||
|
|
c916b68463 | ||
|
|
a0499ffebb | ||
|
|
5d480b9eba | ||
|
|
8ef419f60d | ||
|
|
4c8b088b39 | ||
|
|
41e5fc2e9d | ||
|
|
a42fdca997 | ||
|
|
7b5a94b67c | ||
|
|
0e61006559 | ||
|
|
d55536c3f0 | ||
|
|
5c83ec4910 | ||
|
|
e011586078 | ||
|
|
543da08a1b | ||
|
|
f812c3c2c2 | ||
|
|
b95f07fdd0 | ||
|
|
3b33a04d94 | ||
|
|
22aab11bae | ||
|
|
ca500d3bc4 | ||
|
|
68981ccf74 | ||
|
|
00178e86a1 | ||
|
|
85b4230f8d | ||
|
|
cd97bd7e57 | ||
|
|
bd55e204fa | ||
|
|
6f93e322d0 | ||
|
|
81e9a7bcde | ||
|
|
90cc12b9d1 | ||
|
|
cf13d53c3d | ||
|
|
87ea01ce0a | ||
|
|
449cb11f7b | ||
|
|
3ee0621640 | ||
|
|
2857cc337a | ||
|
|
07fb55e17f | ||
|
|
dce095413f | ||
|
|
e39e10063d | ||
|
|
df19ad7016 | ||
|
|
892fc0842d | ||
|
|
5934db8954 | ||
|
|
6f9d795f69 | ||
|
|
ee3b5a5612 | ||
|
|
185e68f89d | ||
|
|
ab976baca6 | ||
|
|
563ece0bd9 | ||
|
|
7560715b73 | ||
|
|
afb18bc36a | ||
|
|
33a0c5a477 | ||
|
|
e745863294 | ||
|
|
33d61d2543 | ||
|
|
131ae3f0b9 | ||
|
|
597565c650 | ||
|
|
2d4f56114c | ||
|
|
30a187efde | ||
|
|
9b5518ba86 | ||
|
|
41710fb73b | ||
|
|
04e2b0aad8 | ||
|
|
1c75a20dcd | ||
|
|
a6b4508bf5 | ||
|
|
1009e4c634 | ||
|
|
3fc1d7ed3d | ||
|
|
ea47e922cc | ||
|
|
7e6383a3bf | ||
|
|
b11a970012 | ||
|
|
a05fc1777f | ||
|
|
0e13aa33af | ||
|
|
f215901895 | ||
|
|
2b920442a3 | ||
|
|
b3f1fe7d99 | ||
|
|
5c861a27c6 | ||
|
|
449b1f82b4 | ||
|
|
eb469e1918 | ||
|
|
befb2310ca | ||
|
|
cadf5028e0 | ||
|
|
8f00b7344f | ||
|
|
3496af1559 | ||
|
|
d290734099 | ||
|
|
272973922e | ||
|
|
437bf8d1f1 | ||
|
|
7a4a861778 | ||
|
|
defc1195b2 | ||
|
|
b4f700c185 | ||
|
|
9b0c0af8b8 | ||
|
|
69309e5be7 | ||
|
|
5cf06c969a | ||
|
|
728e0c4a87 | ||
|
|
20d161ae19 | ||
|
|
938f08481f | ||
|
|
8de022b721 | ||
|
|
527f4ee960 | ||
|
|
cbf98c3fa5 | ||
|
|
196a1f2d47 | ||
|
|
14d1196b30 | ||
|
|
e72c9fd83b | ||
|
|
a45ae11ff5 | ||
|
|
d8dd347ad1 | ||
|
|
997873baf2 | ||
|
|
1b3d51992b | ||
|
|
2407dbfaf5 | ||
|
|
b6a9e5b7bb | ||
|
|
550bea2aa3 | ||
|
|
75de30dd76 | ||
|
|
2acfcfbf2f | ||
|
|
db93a2128c | ||
|
|
33b947a571 | ||
|
|
5fe3c4077f | ||
|
|
0fd92d0433 | ||
|
|
94faf3faaf | ||
|
|
f40e130a0c | ||
|
|
e2bc98af4a | ||
|
|
79d568615a | ||
|
|
70fc037830 | ||
|
|
757b2db0bc | ||
|
|
b7f8f5d6a6 | ||
|
|
48d6fa7360 | ||
|
|
991c33b410 | ||
|
|
2ecdcf517c | ||
|
|
afc1584ffe | ||
|
|
98f1e29dc5 | ||
|
|
227fb3efee | ||
|
|
de47e87461 | ||
|
|
acc19ccca1 | ||
|
|
142be300e0 | ||
|
|
2f4a5adb3e | ||
|
|
fa70b606e5 | ||
|
|
3e18be8709 | ||
|
|
fc75fea5ad | ||
|
|
045620aa8c | ||
|
|
17e97df0f3 | ||
|
|
77c99e42a4 | ||
|
|
ba8cb2d148 | ||
|
|
14082aa58c | ||
|
|
e7ac03f10d | ||
|
|
87452abd03 | ||
|
|
12e9566254 | ||
|
|
ed2ed8bb96 | ||
|
|
790a964c69 | ||
|
|
d76fdc828d | ||
|
|
12de7b1c8c | ||
|
|
60a7fc7700 | ||
|
|
552700d7e1 | ||
|
|
0ed5935e2d | ||
|
|
700717b2b7 | ||
|
|
d11d2ce75a | ||
|
|
8dc4678584 | ||
|
|
7d1a393b44 | ||
|
|
1b19039da3 | ||
|
|
37a5c586c0 | ||
|
|
03ea447c75 | ||
|
|
2bed9ae486 | ||
|
|
125a3a0ce7 | ||
|
|
2a2597a72d | ||
|
|
cc59181163 | ||
|
|
5e1d916b6f | ||
|
|
f1f355ecd1 | ||
|
|
e59152db06 | ||
|
|
2bf597e385 | ||
|
|
1749adc1ee | ||
|
|
68a8310406 | ||
|
|
d40096cb0f | ||
|
|
c2d22e4839 | ||
|
|
4f3b0e7bcb | ||
|
|
75b7a5927a | ||
|
|
5d080e218f | ||
|
|
cd61166449 | ||
|
|
bd2f196ccd | ||
|
|
14a6ae4523 | ||
|
|
27837c6db8 | ||
|
|
03b347fc88 | ||
|
|
78efc220c4 | ||
|
|
fbd575bf70 | ||
|
|
7af9654c19 | ||
|
|
bbc343abae | ||
|
|
3556d7c183 | ||
|
|
57854ed168 | ||
|
|
442a76a57e | ||
|
|
dcb9d9e45c | ||
|
|
1de940dd90 | ||
|
|
6867258449 |
11
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
11
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -1,7 +1,7 @@
|
||||
name: Bug report
|
||||
description: Create a report to help us improve
|
||||
title: "[Bug] "
|
||||
labels: ["bug"]
|
||||
labels: ["bug, unconfirmed"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
@@ -69,11 +69,18 @@ body:
|
||||
attributes:
|
||||
label: Browser Logs
|
||||
description: Please review and provide any logs from the browser, if relevant
|
||||
- type: textarea
|
||||
id: troubleshooting
|
||||
attributes:
|
||||
label: Troubleshooting
|
||||
description: Please include output from your [troubleshooting tests](https://gethomepage.dev/en/more/troubleshooting/#service-widget-errors). If this is a service widget issue and you do not include any information here your issue will be closed. If it is not, indicate e.g. 'n/a'
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: other
|
||||
attributes:
|
||||
label: Other
|
||||
description: Please include output from your troubleshooting tests, if relevant. Include any other relevant details. E.g. service version or API version, docker version, etc.
|
||||
description: Include any other relevant details. E.g. service version or API version, docker version, etc.
|
||||
- type: checkboxes
|
||||
id: pre-flight
|
||||
attributes:
|
||||
|
||||
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -3,7 +3,10 @@
|
||||
<!--
|
||||
Please include a summary of the change. Screenshots and / or videos can also be helpful if appropriate.
|
||||
|
||||
New service widgets should include example(s) of relevant relevant API output as well as a PR to the docs for the new widget. See the development guidelines for new widgets: https://gethomepage.dev/en/more/development/#service-widget-guidelines
|
||||
*** Please see the development guidelines for new widgets: https://gethomepage.dev/en/more/development/#service-widget-guidelines
|
||||
*** If you do not follow these guidelines your PR will likely be closed without review.
|
||||
|
||||
New service widgets should include example(s) of relevant relevant API output as well as a PR to the docs for the new widget.
|
||||
-->
|
||||
|
||||
Closes # (issue)
|
||||
@@ -22,5 +25,6 @@ What type of change does your PR introduce to Homepage?
|
||||
## Checklist:
|
||||
|
||||
- [ ] If adding a service widget or a change that requires it, I have added a corresponding PR to the [documentation](https://github.com/benphelps/homepage-docs) here:
|
||||
- [ ] If adding a new widget I have reviewed the [guidelines](https://gethomepage.dev/en/more/development/#service-widget-guidelines).
|
||||
- [ ] If applicable, I have checked that all tests pass with e.g. `pnpm lint`.
|
||||
- [ ] If applicable, I have tested my code for new features & regressions on both mobile & desktop devices, using the latest version of major browsers.
|
||||
|
||||
@@ -179,18 +179,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "مطلوب",
|
||||
"queued": "في الإنتظار",
|
||||
"series": "سلسلة"
|
||||
"series": "سلسلة",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "مطلوب",
|
||||
"missing": "مفقود",
|
||||
"queued": "في الإنتظار",
|
||||
"movies": "أفلام"
|
||||
"movies": "أفلام",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "مطلوب",
|
||||
"queued": "في الإنتظار",
|
||||
"albums": "ألبومات"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "مطلوب",
|
||||
@@ -220,7 +224,8 @@
|
||||
"pihole": {
|
||||
"queries": "الاستعلامات",
|
||||
"blocked": "محظور",
|
||||
"gravity": "الجاذبية"
|
||||
"gravity": "الجاذبية",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "الاستعلامات",
|
||||
@@ -295,12 +300,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "معالج",
|
||||
"mem": "الذاكرة",
|
||||
"wait": "الرجاء الإنتظار",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "مفضلة",
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,18 +117,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
"series": "Series",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"movies": "Movies",
|
||||
"missing": "Missing"
|
||||
"missing": "Missing",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"albums": "Albums"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Wanted",
|
||||
@@ -158,7 +162,8 @@
|
||||
"pihole": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Gravity",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Queries",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"charge_power": "Charger",
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,9 @@
|
||||
"sonarr": {
|
||||
"wanted": "Volgut",
|
||||
"queued": "En cua",
|
||||
"series": "Sèries"
|
||||
"series": "Sèries",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"speedtest": {
|
||||
"ping": "Ping",
|
||||
@@ -99,7 +101,9 @@
|
||||
"wanted": "Volgut",
|
||||
"queued": "En cua",
|
||||
"movies": "Pel·lícules",
|
||||
"missing": "Faltant"
|
||||
"missing": "Faltant",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Volgut",
|
||||
@@ -125,7 +129,8 @@
|
||||
"pihole": {
|
||||
"queries": "Consultes",
|
||||
"blocked": "Bloquejat",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Gravity",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"portainer": {
|
||||
"running": "Executant",
|
||||
@@ -172,7 +177,7 @@
|
||||
"lidarr": {
|
||||
"wanted": "Volgut",
|
||||
"queued": "En cua",
|
||||
"albums": "Àlbums"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Consultes",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "Processador",
|
||||
"mem": "Memòria",
|
||||
"wait": "Si us plau, espereu",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total d'observats",
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Supervisió",
|
||||
"updates": "Actualitzacions"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"downloads": "Fronta"
|
||||
},
|
||||
"truenas": {
|
||||
"load": "Vytížení systému",
|
||||
"load": "Zatížení systému",
|
||||
"uptime": "Doba spuštění",
|
||||
"alerts": "Upozornění",
|
||||
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
|
||||
@@ -34,32 +34,32 @@
|
||||
"total": "Celkem",
|
||||
"free": "Volné",
|
||||
"used": "Využité",
|
||||
"load": "Vytížení",
|
||||
"load": "Zatížení",
|
||||
"mem": "RAM",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"max": "Max.",
|
||||
"uptime": "BĚŽÍ",
|
||||
"months": "měs.",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m",
|
||||
"temp": "TEMP"
|
||||
"temp": "TEPLOTA"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "Uživatelé",
|
||||
"uptime": "Čas od startu systému",
|
||||
"uptime": "Doba provozu systému",
|
||||
"days": "Dnů",
|
||||
"wan": "WAN",
|
||||
"lan": "LAN",
|
||||
"wlan": "WLAN",
|
||||
"devices": "Zařízení",
|
||||
"lan_devices": "LAN Zařízení",
|
||||
"wlan_devices": "WLAN Zařízení",
|
||||
"lan_users": "LAN Uživatelé",
|
||||
"wlan_users": "WLAN Uživatelé",
|
||||
"lan_devices": "Zařízení LAN",
|
||||
"wlan_devices": "Zařízení WLAN",
|
||||
"lan_users": "Uživatelé LAN",
|
||||
"wlan_users": "Uživatelé WLAN",
|
||||
"up": "BĚŽÍ",
|
||||
"down": "NEBĚŽÍ",
|
||||
"wait": "Počkejte prosím",
|
||||
"empty_data": "Status podsystému neznámý"
|
||||
"empty_data": "Stav podsystému neznámý"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "RX",
|
||||
@@ -70,7 +70,7 @@
|
||||
"error": "Chyba",
|
||||
"unknown": "Neznámý",
|
||||
"running": "Běží",
|
||||
"starting": "Startuje",
|
||||
"starting": "Spouští se",
|
||||
"unhealthy": "Nezdravý",
|
||||
"not_found": "Nenalezen",
|
||||
"exited": "Ukončen",
|
||||
@@ -79,13 +79,13 @@
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Přehrává",
|
||||
"transcoding": "Transkódování",
|
||||
"bitrate": "Bitrate",
|
||||
"transcoding": "Překódovávání",
|
||||
"bitrate": "Přenosová rychlost",
|
||||
"no_active": "Žádný aktivní stream",
|
||||
"movies": "Filmy",
|
||||
"series": "Seriály",
|
||||
"episodes": "Epizody",
|
||||
"songs": "Písničky"
|
||||
"songs": "Skladby"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Celkem zjištěno",
|
||||
@@ -93,8 +93,8 @@
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Přehrává",
|
||||
"transcoding": "Transkódování",
|
||||
"bitrate": "Bitrate",
|
||||
"transcoding": "Překódovávání",
|
||||
"bitrate": "Přenosová rychlost",
|
||||
"no_active": "Žádný aktivní stream"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -106,7 +106,7 @@
|
||||
"streams": "Aktivní streamy",
|
||||
"movies": "Filmy",
|
||||
"tv": "Seriály",
|
||||
"albums": "Albums"
|
||||
"albums": "Alba"
|
||||
},
|
||||
"sabnzbd": {
|
||||
"rate": "Rychlost",
|
||||
@@ -121,8 +121,8 @@
|
||||
"transmission": {
|
||||
"download": "Stahování",
|
||||
"upload": "Nahrávání",
|
||||
"leech": "Leecherů",
|
||||
"seed": "Seedů"
|
||||
"leech": "Leechované",
|
||||
"seed": "Seedované"
|
||||
},
|
||||
"qbittorrent": {
|
||||
"download": "Stahování",
|
||||
@@ -133,18 +133,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "Hledané",
|
||||
"queued": "Ve frontě",
|
||||
"series": "Seriály"
|
||||
"series": "Seriály",
|
||||
"unknown": "Unknown",
|
||||
"queue": "Queue"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Hledané",
|
||||
"missing": "Chybějící",
|
||||
"queued": "Ve frontě",
|
||||
"movies": "Filmy"
|
||||
"movies": "Filmy",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Hledané",
|
||||
"queued": "Ve frontě",
|
||||
"albums": "Alba"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Hledané",
|
||||
@@ -174,7 +178,8 @@
|
||||
"pihole": {
|
||||
"queries": "Dotazy",
|
||||
"blocked": "Blokováno",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Gravity",
|
||||
"blocked_percent": "Blokováno"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Dotazy",
|
||||
@@ -188,9 +193,9 @@
|
||||
"ping": "Ping"
|
||||
},
|
||||
"portainer": {
|
||||
"running": "Běží",
|
||||
"running": "Spuštěno",
|
||||
"stopped": "Zastaveno",
|
||||
"total": "Celkově"
|
||||
"total": "Celkem"
|
||||
},
|
||||
"traefik": {
|
||||
"routers": "Routery",
|
||||
@@ -307,12 +312,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "RAM",
|
||||
"wait": "Prosím počkejte",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"temp": "TEPLOTA",
|
||||
"uptime": "BĚŽÍ",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used",
|
||||
"load": "Load",
|
||||
"warn": "Warn"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Záložka",
|
||||
@@ -327,16 +336,16 @@
|
||||
"up_to_date": "Žádné",
|
||||
"available_update": "Systém",
|
||||
"updates": "Aktualizace",
|
||||
"child_bridges": "Podřadné můstky",
|
||||
"child_bridges": "Podřízené můstky",
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Zapnutý",
|
||||
"pending": "Čeká se",
|
||||
"down": "Vypnutý"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Naskenováno",
|
||||
"containers_scanned": "Prohledáno",
|
||||
"containers_updated": "Aktualizováno",
|
||||
"containers_failed": "Chyba"
|
||||
"containers_failed": "Selhalo"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Schváleno",
|
||||
@@ -368,7 +377,7 @@
|
||||
"ping": "Odezva"
|
||||
},
|
||||
"scrutiny": {
|
||||
"passed": "Přijato",
|
||||
"passed": "Úspěšné",
|
||||
"failed": "Neúspěšné",
|
||||
"unknown": "Neznámé"
|
||||
},
|
||||
@@ -378,15 +387,15 @@
|
||||
},
|
||||
"deluge": {
|
||||
"upload": "Nahrávání",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed",
|
||||
"leech": "Leechované",
|
||||
"seed": "Seedované",
|
||||
"download": "Stahování"
|
||||
},
|
||||
"flood": {
|
||||
"download": "Stahování",
|
||||
"upload": "Nahrávání",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
"leech": "Leechované",
|
||||
"seed": "Seedované"
|
||||
},
|
||||
"tdarr": {
|
||||
"queue": "Fronta",
|
||||
@@ -416,8 +425,8 @@
|
||||
"downloadstation": {
|
||||
"download": "Stahování",
|
||||
"upload": "Nahrávání",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
"leech": "Leechované",
|
||||
"seed": "Seedované"
|
||||
},
|
||||
"mikrotik": {
|
||||
"cpuLoad": "Zatížení procesoru",
|
||||
@@ -426,18 +435,18 @@
|
||||
"numberOfLeases": "Pronájmy"
|
||||
},
|
||||
"xteve": {
|
||||
"streams_all": "Všechny proudy",
|
||||
"streams_active": "Aktivní proudy",
|
||||
"streams_all": "Všechny streamy",
|
||||
"streams_active": "Aktivní streamy",
|
||||
"streams_xepg": "Kanály XEPG"
|
||||
},
|
||||
"opnsense": {
|
||||
"cpu": "Zatížení procesoru",
|
||||
"memory": "Aktivní paměť",
|
||||
"wanUpload": "Nahrávání WAN",
|
||||
"wanDownload": "WAN Stažení"
|
||||
"wanDownload": "Stahování WAN"
|
||||
},
|
||||
"moonraker": {
|
||||
"print_progress": "Progres",
|
||||
"print_progress": "Průběh",
|
||||
"printer_state": "Stav tiskárny",
|
||||
"print_status": "Stav tisku",
|
||||
"layers": "Vrstvy"
|
||||
@@ -493,7 +502,7 @@
|
||||
"people": "Lidé"
|
||||
},
|
||||
"diskstation": {
|
||||
"days": "Dni",
|
||||
"days": "dní",
|
||||
"uptime": "Doba provozu",
|
||||
"volumeAvailable": "K dispozici"
|
||||
},
|
||||
@@ -504,16 +513,18 @@
|
||||
"time": "Čas"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Přístrojové panely",
|
||||
"dashboards": "Nástěnky",
|
||||
"datasources": "Zdroje dat",
|
||||
"totalalerts": "Celkový počet upozornění",
|
||||
"alertstriggered": "Spuštěné výstrahy"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "CPU zatížení",
|
||||
"cpuload": "Zatížení procesoru",
|
||||
"memoryusage": "Využití paměti",
|
||||
"freespace": "Volný prostor",
|
||||
"activeusers": "Aktivní uživatelé"
|
||||
"activeusers": "Aktivní uživatelé",
|
||||
"numfiles": "Soubory",
|
||||
"numshares": "Sdílené položky"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Stav",
|
||||
@@ -565,22 +576,73 @@
|
||||
"booksDuration": "Trvání"
|
||||
},
|
||||
"homeassistant": {
|
||||
"people_home": "People Home",
|
||||
"lights_on": "Lights On",
|
||||
"switches_on": "Switches On"
|
||||
"people_home": "Lidí doma",
|
||||
"lights_on": "Rozsvícená světla",
|
||||
"switches_on": "Zapnuté přepínače"
|
||||
},
|
||||
"freshrss": {
|
||||
"subscriptions": "Subscriptions",
|
||||
"unread": "Unread"
|
||||
"subscriptions": "Odběry",
|
||||
"unread": "Nepřečteno"
|
||||
},
|
||||
"channelsdvrserver": {
|
||||
"shows": "Shows",
|
||||
"recordings": "Recordings",
|
||||
"scheduled": "Scheduled",
|
||||
"passes": "Passes"
|
||||
"shows": "Pořady",
|
||||
"recordings": "Nahrávky",
|
||||
"scheduled": "Naplánováno",
|
||||
"passes": "Průchody"
|
||||
},
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
"monitoring": "Sledování",
|
||||
"updates": "Aktualizace"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Adresa",
|
||||
"expires": "Vyprší",
|
||||
"never": "Nikdy",
|
||||
"last_seen": "Naposledy viděno",
|
||||
"now": "Nyní",
|
||||
"years": "{{number}}r",
|
||||
"weeks": "{{number}}t",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "Před {{value}}"
|
||||
},
|
||||
"qnap": {
|
||||
"memUsage": "Využití paměti",
|
||||
"systemTempC": "Teplota systému",
|
||||
"poolUsage": "Využití fondu",
|
||||
"cpuUsage": "Využití procesoru",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Prům. zatížení",
|
||||
"memory": "Využití paměti",
|
||||
"wanStatus": "Stav WAN",
|
||||
"up": "Běží",
|
||||
"down": "Neběží",
|
||||
"temp": "Teplota",
|
||||
"disk": "Využití disku",
|
||||
"wanIP": "IP WAN"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Odesílání dat",
|
||||
"requests": "Aktuální požadavky",
|
||||
"requests_failed": "Selhavší požadavky"
|
||||
},
|
||||
"evcc": {
|
||||
"watt_hour": "Wh",
|
||||
"pv_power": "Produkce",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,12 +9,14 @@
|
||||
"queued": "I Kø",
|
||||
"movies": "Film",
|
||||
"wanted": "Ønskede",
|
||||
"missing": "Mangler"
|
||||
"missing": "Mangler",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Ønsket",
|
||||
"queued": "I Kø",
|
||||
"albums": "Albums"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"jellyseerr": {
|
||||
"available": "Tilgængelig",
|
||||
@@ -68,12 +70,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "RAM",
|
||||
"wait": "Vent venligst",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"temp": "TEMP"
|
||||
"temp": "TEMP",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"wmo": {
|
||||
"1-day": "Hovedsageligt solrigt",
|
||||
@@ -260,7 +266,9 @@
|
||||
"sonarr": {
|
||||
"wanted": "Ønsket",
|
||||
"queued": "I Kø",
|
||||
"series": "Serier"
|
||||
"series": "Serier",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Ønskede",
|
||||
@@ -279,7 +287,8 @@
|
||||
"pihole": {
|
||||
"blocked": "Blokerede",
|
||||
"gravity": "Gravity",
|
||||
"queries": "Forespørgsler"
|
||||
"queries": "Forespørgsler",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"portainer": {
|
||||
"running": "Kørende",
|
||||
@@ -513,7 +522,9 @@
|
||||
"memoryusage": "Memory Usage",
|
||||
"cpuload": "Cpu Load",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"status": "Status",
|
||||
"url": "URL",
|
||||
"information": "Informationen",
|
||||
"raw_error": "Unbearbeiteter Fehler",
|
||||
"raw_error": "Roher Fehler",
|
||||
"response_data": "Empfangene Daten"
|
||||
},
|
||||
"search": {
|
||||
@@ -14,14 +14,14 @@
|
||||
"resources": {
|
||||
"total": "Gesamt",
|
||||
"free": "Frei",
|
||||
"used": "Gebraucht",
|
||||
"used": "In Verwendung",
|
||||
"load": "Last",
|
||||
"cpu": "CPU",
|
||||
"mem": "RAM",
|
||||
"cpu": "Prozessor",
|
||||
"mem": "Speicher",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"months": "Mo.",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
@@ -29,27 +29,27 @@
|
||||
"docker": {
|
||||
"rx": "Rx",
|
||||
"tx": "Tx",
|
||||
"mem": "Mem",
|
||||
"mem": "Speicher",
|
||||
"cpu": "Prozessor",
|
||||
"offline": "Offline",
|
||||
"error": "Fehler",
|
||||
"unknown": "Unbekannt",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"running": "Laufend",
|
||||
"starting": "Startet",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"not_found": "Nicht gefunden",
|
||||
"exited": "Beendet",
|
||||
"partial": "Teilweise",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Spielen",
|
||||
"transcoding": "Transcodierung",
|
||||
"playing": "Aktuelle Wiedergaben",
|
||||
"transcoding": "Transkodieren",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "Keine aktiven Streams",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"movies": "Filme",
|
||||
"series": "Serien",
|
||||
"episodes": "Folgen",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
@@ -66,13 +66,17 @@
|
||||
"sonarr": {
|
||||
"wanted": "Gesucht",
|
||||
"queued": "In Warteschlange",
|
||||
"series": "Serien"
|
||||
"series": "Serien",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Gesucht",
|
||||
"queued": "In Warteschlange",
|
||||
"movies": "Filme",
|
||||
"missing": "Fehlt"
|
||||
"missing": "Fehlt",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Gesucht",
|
||||
@@ -92,7 +96,8 @@
|
||||
"pihole": {
|
||||
"queries": "Abfragen",
|
||||
"blocked": "Blockiert",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Gravity",
|
||||
"blocked_percent": "Geblockt %"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "Upload",
|
||||
@@ -172,7 +177,7 @@
|
||||
"lidarr": {
|
||||
"wanted": "Gesucht",
|
||||
"queued": "In Warteschlange",
|
||||
"albums": "Alben"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Anfragen",
|
||||
@@ -215,30 +220,34 @@
|
||||
"wan": "WAN",
|
||||
"lan_users": "LAN Benutzer",
|
||||
"wlan_users": "WLAN Benutzer",
|
||||
"up": "SENDEN",
|
||||
"up": "BEREIT",
|
||||
"down": "EMPFANGEN",
|
||||
"wait": "Bitte warten",
|
||||
"lan": "LAN",
|
||||
"wlan": "WLAN",
|
||||
"devices": "Geräte",
|
||||
"lan_devices": "LAN-Geräte",
|
||||
"wlan_devices": "WLAN Geräte",
|
||||
"empty_data": "Subsystem status unbekannt"
|
||||
"wlan_devices": "WLAN-Geräte",
|
||||
"empty_data": "Subsystem-Status unbekannt"
|
||||
},
|
||||
"plex": {
|
||||
"streams": "Aktive Streams",
|
||||
"movies": "Filme",
|
||||
"tv": "TV Sendungen",
|
||||
"albums": "Albums"
|
||||
"albums": "Alben"
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "Prozessor",
|
||||
"mem": "RAM",
|
||||
"wait": "Bitte warten",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"days": "T",
|
||||
"hours": "S",
|
||||
"load": "Auslastung",
|
||||
"warn": "Warnung",
|
||||
"total": "Gesamt",
|
||||
"free": "Frei",
|
||||
"used": "Verwendet"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Gesamt beobachtet",
|
||||
@@ -318,7 +327,7 @@
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"pending": "Ausstehend",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "CPU Last",
|
||||
"memoryusage": "RAM Verbrauch",
|
||||
"freespace": "Freier Speicher",
|
||||
"activeusers": "Aktive Nutzer"
|
||||
"activeusers": "Aktive Nutzer",
|
||||
"numfiles": "Dateien",
|
||||
"numshares": "Geteilte Elemente"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -523,12 +534,12 @@
|
||||
"failed": "Fehlgeschlagen"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
"active_workers": "Aktive Worker",
|
||||
"total_workers": "Alle Worker",
|
||||
"records_total": "Länge der Warteschlange"
|
||||
},
|
||||
"healthchecks": {
|
||||
"grace": "In Grace Period",
|
||||
"grace": "In Karenzzeit",
|
||||
"new": "Neu",
|
||||
"up": "Online",
|
||||
"down": "Offline",
|
||||
@@ -542,9 +553,9 @@
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
"targets_up": "Ziele Up",
|
||||
"targets_down": "Ziele Down",
|
||||
"targets_total": "Alle Ziele"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Spieler",
|
||||
@@ -554,33 +565,84 @@
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_max": "All time",
|
||||
"gross_percent_max": "Alle Zeit",
|
||||
"gross_percent_today": "Heute",
|
||||
"gross_percent_1y": "Ein Jahr"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
"books": "Bücher",
|
||||
"podcastsDuration": "Dauer",
|
||||
"booksDuration": "Dauer"
|
||||
},
|
||||
"homeassistant": {
|
||||
"people_home": "People Home",
|
||||
"lights_on": "Lights On",
|
||||
"switches_on": "Switches On"
|
||||
"people_home": "Personen daheim",
|
||||
"lights_on": "Lichter an",
|
||||
"switches_on": "Schalter an"
|
||||
},
|
||||
"freshrss": {
|
||||
"subscriptions": "Subscriptions",
|
||||
"unread": "Unread"
|
||||
"subscriptions": "Abonnements",
|
||||
"unread": "Ungelesen"
|
||||
},
|
||||
"channelsdvrserver": {
|
||||
"shows": "Shows",
|
||||
"recordings": "Recordings",
|
||||
"scheduled": "Scheduled",
|
||||
"passes": "Passes"
|
||||
"recordings": "Aufnahmen",
|
||||
"scheduled": "Geplant",
|
||||
"passes": "Pässe"
|
||||
},
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
"monitoring": "Überwacht",
|
||||
"updates": "Aktualisierungen"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Adresse",
|
||||
"weeks": "{{number}}W",
|
||||
"days": "{{number}}T",
|
||||
"hours": "{{number}}S",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "Vor {{value}}",
|
||||
"expires": "Läuft ab",
|
||||
"last_seen": "Zuletzt gesehen",
|
||||
"never": "Nie",
|
||||
"now": "Jetzt",
|
||||
"years": "{{number}}J"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Nutzung",
|
||||
"memUsage": "MEM Nutzung",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Nutzung",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Ungültig"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Durchschnittliche Last",
|
||||
"temp": "Temp",
|
||||
"disk": "Datenträgernutzung",
|
||||
"wanIP": "WAN IP",
|
||||
"memory": "Speichernutzung",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Aktuelle Anfragen",
|
||||
"requests_failed": "Fehlgeschlagene Anfragen"
|
||||
},
|
||||
"evcc": {
|
||||
"watt_hour": "Wh",
|
||||
"pv_power": "Produktion",
|
||||
"battery_soc": "Batterie",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Verbrauch",
|
||||
"charge_power": "Ladegerät"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Gesamt",
|
||||
"connected": "Verbunden",
|
||||
"new_devices": "Neue Geräte",
|
||||
"down_alerts": "Down Alarme"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"resources": {
|
||||
"used": "χρησιμοποιημένο",
|
||||
"load": "Φόρτωση",
|
||||
"cpu": "CPU",
|
||||
"cpu": "Επεξεργαστής",
|
||||
"mem": "MEM",
|
||||
"temp": "ΘΕΡΜΟΚΡΑΣΪΑ",
|
||||
"total": "Σύνολο",
|
||||
@@ -149,8 +149,8 @@
|
||||
"songs": "Τραγούδια"
|
||||
},
|
||||
"flood": {
|
||||
"download": "Κατέβασμα",
|
||||
"upload": "Ανέβασμα",
|
||||
"download": "Λήξη",
|
||||
"upload": "Φόρτωση",
|
||||
"leech": "Αφαίμαξη",
|
||||
"seed": "Σπείρε"
|
||||
},
|
||||
@@ -159,21 +159,21 @@
|
||||
"diffsDetected": "Εντοπίστηκαν διαφορές"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Παίζει",
|
||||
"transcoding": "Διακωδικοποίηση",
|
||||
"playing": "Αναπαράγει",
|
||||
"transcoding": "Μετακωδικοποίηση",
|
||||
"bitrate": "Ρυθμός bit",
|
||||
"no_active": "Δεν υπάρχουν ενεργές ροές"
|
||||
},
|
||||
"nzbget": {
|
||||
"rate": "βαθμός",
|
||||
"rate": "Ρυθμός",
|
||||
"remaining": "Υπόλοιπο",
|
||||
"downloaded": "Κατεβασμένο"
|
||||
},
|
||||
"plex": {
|
||||
"streams": "Ενεργά Streams",
|
||||
"streams": "Ενεργές Ροές",
|
||||
"movies": "Ταινίες",
|
||||
"tv": "Σειρές",
|
||||
"albums": "Albums"
|
||||
"tv": "Τηλεοπτικές εκπομπές",
|
||||
"albums": "Άλμπουμ"
|
||||
},
|
||||
"sabnzbd": {
|
||||
"rate": "Βαθμός",
|
||||
@@ -199,39 +199,43 @@
|
||||
},
|
||||
"deluge": {
|
||||
"download": "Κατέβασμα",
|
||||
"upload": "Upload",
|
||||
"upload": "Ανέβασμα",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"sonarr": {
|
||||
"series": "Series",
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued"
|
||||
"series": "Σειρές",
|
||||
"wanted": "Επιθυμούντε",
|
||||
"queued": "Σε σειρά",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"downloadstation": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"download": "Μεταφόρτωση",
|
||||
"upload": "Φόρτωση",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Wanted",
|
||||
"missing": "Missing",
|
||||
"queued": "Queued",
|
||||
"movies": "Movies"
|
||||
"wanted": "Επιθυμούντε",
|
||||
"missing": "Απουσιάζει",
|
||||
"queued": "Σε σειρά",
|
||||
"movies": "Ταινίες",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"albums": "Albums"
|
||||
"wanted": "Θέλετε",
|
||||
"queued": "Στη σειρά",
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"books": "Books"
|
||||
"wanted": "Θέλετε",
|
||||
"queued": "Στη σειρά",
|
||||
"books": "Βιβλία"
|
||||
},
|
||||
"bazarr": {
|
||||
"missingEpisodes": "Missing Episodes",
|
||||
"missingEpisodes": "Επεισόδια που λείπουν",
|
||||
"missingMovies": "Missing Movies"
|
||||
},
|
||||
"ombi": {
|
||||
@@ -253,7 +257,8 @@
|
||||
"pihole": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Gravity",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Queries",
|
||||
@@ -354,12 +359,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used",
|
||||
"load": "Load"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
@@ -530,7 +539,9 @@
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -570,17 +581,68 @@
|
||||
"switches_on": "Switches On"
|
||||
},
|
||||
"freshrss": {
|
||||
"subscriptions": "Subscriptions",
|
||||
"unread": "Unread"
|
||||
"subscriptions": "Συνδρομές",
|
||||
"unread": "Αδιάβαστο"
|
||||
},
|
||||
"channelsdvrserver": {
|
||||
"shows": "Shows",
|
||||
"recordings": "Recordings",
|
||||
"scheduled": "Scheduled",
|
||||
"shows": "Εκπομπές",
|
||||
"recordings": "Εγγραφές",
|
||||
"scheduled": "Προγραμματισμένα",
|
||||
"passes": "Passes"
|
||||
},
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"never": "Never",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"expires": "Expires",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "Χρήση επεξεργαστή",
|
||||
"memUsage": "Χρήση μνήμης",
|
||||
"systemTempC": "Θερμοκρασία συστήματος",
|
||||
"poolUsage": "Χρήση πισίνας",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Τρέχοντα αιτήματα",
|
||||
"requests_failed": "Αποτυχημένα αιτήματα"
|
||||
},
|
||||
"evcc": {
|
||||
"watt_hour": "Wh",
|
||||
"pv_power": "Παραγωγή",
|
||||
"battery_soc": "Μπαταρία",
|
||||
"grid_power": "Πλέγμα",
|
||||
"home_power": "Κατανάλωση",
|
||||
"charge_power": "Φορτιστής"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,6 +91,14 @@
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"flood": {
|
||||
"download": "Download",
|
||||
@@ -102,6 +110,11 @@
|
||||
"subscriptions": "Subscriptions",
|
||||
"unread": "Unread"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
"diffsDetected": "Diffs Detected"
|
||||
@@ -158,6 +171,14 @@
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"deluge": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
@@ -173,18 +194,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
"series": "Series",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Wanted",
|
||||
"missing": "Missing",
|
||||
"queued": "Queued",
|
||||
"movies": "Movies"
|
||||
"movies": "Movies",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"albums": "Albums"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Wanted",
|
||||
@@ -211,9 +236,16 @@
|
||||
"approved": "Approved",
|
||||
"available": "Available"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
},
|
||||
"pihole": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"blocked_percent": "Blocked %",
|
||||
"gravity": "Gravity"
|
||||
},
|
||||
"adguard": {
|
||||
@@ -232,6 +264,20 @@
|
||||
"stopped": "Stopped",
|
||||
"total": "Total"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"tdarr": {
|
||||
"queue": "Queue",
|
||||
"processed": "Processed",
|
||||
@@ -315,10 +361,14 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"load": "Load",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"warn": "Warn",
|
||||
"uptime": "UP",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
@@ -493,6 +543,16 @@
|
||||
"origin_ip": "Origin IP",
|
||||
"status": "Status"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"proxmoxbackupserver": {
|
||||
"datastore_usage": "Datastore",
|
||||
"failed_tasks_24h": "Failed Tasks 24h",
|
||||
@@ -549,7 +609,9 @@
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
|
||||
@@ -131,18 +131,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Serio"
|
||||
"series": "Serio",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Wanted",
|
||||
"missing": "Missing",
|
||||
"queued": "Queued",
|
||||
"movies": "Filmoj"
|
||||
"movies": "Filmoj",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"albums": "Albumoj"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Wanted",
|
||||
@@ -172,7 +176,8 @@
|
||||
"pihole": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Gravity",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Queries",
|
||||
@@ -251,12 +256,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "Ĉefprocesoro",
|
||||
"mem": "Memoro",
|
||||
"wait": "Bonvolu atendi",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
@@ -513,7 +522,9 @@
|
||||
"activeusers": "Active Users",
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space"
|
||||
"freespace": "Free Space",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,13 +66,17 @@
|
||||
"sonarr": {
|
||||
"wanted": "Buscando",
|
||||
"queued": "En cola",
|
||||
"series": "Series"
|
||||
"series": "Series",
|
||||
"queue": "Poner a la cola",
|
||||
"unknown": "Desconocido"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Buscando",
|
||||
"queued": "En cola",
|
||||
"movies": "Películas",
|
||||
"missing": "Faltan"
|
||||
"missing": "Faltan",
|
||||
"queue": "Poner a la cola",
|
||||
"unknown": "Desconocido"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Buscando",
|
||||
@@ -92,7 +96,8 @@
|
||||
"pihole": {
|
||||
"queries": "Consultas",
|
||||
"blocked": "Bloqueado",
|
||||
"gravity": "Gravedad"
|
||||
"gravity": "Gravedad",
|
||||
"blocked_percent": "% bloqueado"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "Subida",
|
||||
@@ -172,7 +177,7 @@
|
||||
"lidarr": {
|
||||
"queued": "En cola",
|
||||
"wanted": "Buscando",
|
||||
"albums": "Álbumes"
|
||||
"artists": "Artistas"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Consultas",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "Procesador",
|
||||
"mem": "Memoria",
|
||||
"wait": "Espera por favor",
|
||||
"temp": "TEMPORAL",
|
||||
"uptime": "ARRIBA",
|
||||
"days": "Días",
|
||||
"hours": "Horas"
|
||||
"hours": "Horas",
|
||||
"load": "Cargar",
|
||||
"warn": "Advertir",
|
||||
"total": "Total",
|
||||
"free": "Libre",
|
||||
"used": "Utilizado"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observados",
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Carga de la CPU",
|
||||
"memoryusage": "Uso de la memoria",
|
||||
"freespace": "Espacio libre",
|
||||
"activeusers": "Usuarios activos"
|
||||
"activeusers": "Usuarios activos",
|
||||
"numfiles": "Archivos",
|
||||
"numshares": "Elementos compartidos"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Estado",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Supervisión",
|
||||
"updates": "Actualizaciones"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Dirección",
|
||||
"expires": "Caduca en",
|
||||
"never": "Nunca",
|
||||
"last_seen": "Visto por última vez",
|
||||
"now": "Ahora",
|
||||
"years": "{{number}}años",
|
||||
"hours": "{{number}}horas",
|
||||
"minutes": "{{number}}minutos",
|
||||
"seconds": "{{number}}segundos",
|
||||
"ago": "Hace {{value}}",
|
||||
"weeks": "{{number}}semanas",
|
||||
"days": "{{number}}días"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "Uso de la Cpu",
|
||||
"memUsage": "Uso de la memoria",
|
||||
"systemTempC": "Temperatura del sistema",
|
||||
"poolUsage": "Comprobación del uso del grupo de memoria",
|
||||
"volumeUsage": "Volumen utilizado",
|
||||
"invalid": "No válido"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Promedio de carga",
|
||||
"memory": "Memoria utilizada",
|
||||
"wanStatus": "Estado de la WAN",
|
||||
"up": "Arriba",
|
||||
"down": "Abajo",
|
||||
"temp": "Temperatura",
|
||||
"disk": "Uso del disco",
|
||||
"wanIP": "IP de la WAN"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstream (desarrollo de software)",
|
||||
"requests": "Peticiones actuales",
|
||||
"requests_failed": "Peticiones fallidas"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Producción",
|
||||
"battery_soc": "Batería",
|
||||
"grid_power": "Red",
|
||||
"home_power": "Consumo",
|
||||
"charge_power": "Cargador",
|
||||
"watt_hour": "vatio-hora (Wh)"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Conectado",
|
||||
"new_devices": "Nuevos dispositivos",
|
||||
"down_alerts": "Alertas"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,18 +94,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "Haluttu",
|
||||
"queued": "Jonossa",
|
||||
"series": "Sarja"
|
||||
"series": "Sarja",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Haluttu",
|
||||
"queued": "Jonossa",
|
||||
"movies": "Elokuvia",
|
||||
"missing": "Missing"
|
||||
"missing": "Missing",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Haluttu",
|
||||
"queued": "Jonossa",
|
||||
"albums": "Albumeja"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Haluttu",
|
||||
@@ -135,7 +139,8 @@
|
||||
"pihole": {
|
||||
"queries": "Kyselyjä",
|
||||
"blocked": "Estetty",
|
||||
"gravity": "Vakavuus"
|
||||
"gravity": "Vakavuus",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Kyselyjä",
|
||||
@@ -234,11 +239,15 @@
|
||||
"glances": {
|
||||
"wait": "Please wait",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numshares": "Shared Items",
|
||||
"numfiles": "Files"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"watt_hour": "Wh",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,13 +66,17 @@
|
||||
"sonarr": {
|
||||
"wanted": "Demande",
|
||||
"queued": "Attente",
|
||||
"series": "Séries"
|
||||
"series": "Séries",
|
||||
"queue": "Attente",
|
||||
"unknown": "Inconnu"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Demande",
|
||||
"queued": "Attente",
|
||||
"movies": "Films",
|
||||
"missing": "Manquant"
|
||||
"missing": "Manquant",
|
||||
"queue": "Attente",
|
||||
"unknown": "Inconnu"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Demande",
|
||||
@@ -92,7 +96,8 @@
|
||||
"pihole": {
|
||||
"queries": "Requêtes",
|
||||
"blocked": "Bloqué",
|
||||
"gravity": "Listes dom. bloqués"
|
||||
"gravity": "Listes dom. bloqués",
|
||||
"blocked_percent": "Bloqué %"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "Envoi",
|
||||
@@ -172,7 +177,7 @@
|
||||
"lidarr": {
|
||||
"wanted": "Demandé",
|
||||
"queued": "En queue",
|
||||
"albums": "Albums"
|
||||
"artists": "Artistes"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Requêtes",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "Cpu",
|
||||
"mem": "Mém",
|
||||
"wait": "Merci de patienter",
|
||||
"temp": "Temp",
|
||||
"uptime": "Up",
|
||||
"days": "j",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Charge",
|
||||
"warn": "Alerte",
|
||||
"total": "Total",
|
||||
"free": "Libre",
|
||||
"used": "Utilisé"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observé",
|
||||
@@ -392,7 +401,7 @@
|
||||
"queue": "À traiter",
|
||||
"processed": "Traité",
|
||||
"errored": "En erreur",
|
||||
"saved": "Economisé"
|
||||
"saved": "Libéré"
|
||||
},
|
||||
"miniflux": {
|
||||
"read": "Lu",
|
||||
@@ -513,7 +522,9 @@
|
||||
"freespace": "Espace Libre",
|
||||
"activeusers": "Utilisateurs Actifs",
|
||||
"cpuload": "Charge Cpu",
|
||||
"memoryusage": "Utilisation Mémoire"
|
||||
"memoryusage": "Utilisation Mémoire",
|
||||
"numfiles": "Fichiers",
|
||||
"numshares": "Partages"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Statut",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Conteneurs",
|
||||
"updates": "Mises à jour"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Adresse",
|
||||
"expires": "Expire",
|
||||
"never": "Jamais",
|
||||
"last_seen": "Vu pour la dernière fois",
|
||||
"now": "Maintenant",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "Il y a {{value}}"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "Cpu",
|
||||
"memUsage": "Mém",
|
||||
"systemTempC": "Temp",
|
||||
"poolUsage": "Pool",
|
||||
"volumeUsage": "Volume",
|
||||
"invalid": "Invalide"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Charge moy.",
|
||||
"memory": "Util. Mém.",
|
||||
"wanStatus": "Statut WAN",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Util. Disque",
|
||||
"wanIP": "IP WAN"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Demandes en cours",
|
||||
"requests_failed": "Demandes échouées"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Batterie",
|
||||
"grid_power": "Grille",
|
||||
"home_power": "Consommation",
|
||||
"charge_power": "Chargeur",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connecté",
|
||||
"new_devices": "Nouvel Appareil",
|
||||
"down_alerts": "Alertes"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,18 +94,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "מבוקש",
|
||||
"queued": "בתור",
|
||||
"series": "סדרות"
|
||||
"series": "סדרות",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "מבוקש",
|
||||
"queued": "בתור",
|
||||
"movies": "סרטים",
|
||||
"missing": "Missing"
|
||||
"missing": "Missing",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "מבוקש",
|
||||
"queued": "בתור",
|
||||
"albums": "אלבומים"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "מבוקש",
|
||||
@@ -135,7 +139,8 @@
|
||||
"pihole": {
|
||||
"queries": "שאילתות",
|
||||
"blocked": "נחסם",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Gravity",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "שאילתות",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"warn": "Warn",
|
||||
"load": "Load",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -155,18 +155,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
"series": "Series",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Wanted",
|
||||
"missing": "Missing",
|
||||
"queued": "Queued",
|
||||
"movies": "Movies"
|
||||
"movies": "Movies",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"albums": "Albums"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"overseerr": {
|
||||
"pending": "Pending",
|
||||
@@ -177,7 +181,8 @@
|
||||
"pihole": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Gravity",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Queries",
|
||||
@@ -241,12 +246,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,8 @@
|
||||
"pihole": {
|
||||
"queries": "Upiti",
|
||||
"blocked": "Blokirano",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Gravitacija",
|
||||
"blocked_percent": "Blokirano %"
|
||||
},
|
||||
"adguard": {
|
||||
"latency": "Kašnjenje",
|
||||
@@ -124,18 +125,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "Zatraženo",
|
||||
"queued": "U redu čekanja",
|
||||
"series": "Serije"
|
||||
"series": "Serije",
|
||||
"unknown": "Unknown",
|
||||
"queue": "Queue"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Zatraženo",
|
||||
"queued": "U redu čekanja",
|
||||
"movies": "Filmovi",
|
||||
"missing": "Nedostaje"
|
||||
"missing": "Nedostaje",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Zatraženo",
|
||||
"queued": "U redu čekanja",
|
||||
"albums": "Albumi"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Zatraženo",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Pričekaj",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"used": "Korišteno",
|
||||
"load": "Opterećenje",
|
||||
"warn": "Upozori",
|
||||
"total": "Ukupno",
|
||||
"free": "Slobodno"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Ukupno promatrano",
|
||||
@@ -473,7 +482,7 @@
|
||||
"up": "Aktivne stranice",
|
||||
"down": "Neaktivne stranice",
|
||||
"uptime": "Radno vrijeme",
|
||||
"incident": "Incident",
|
||||
"incident": "Slučaj",
|
||||
"m": "min"
|
||||
},
|
||||
"komga": {
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Cpu opterećenje",
|
||||
"memoryusage": "Korištenje memorije",
|
||||
"freespace": "Slobodna memorija",
|
||||
"activeusers": "Aktivni korisnici"
|
||||
"activeusers": "Aktivni korisnici",
|
||||
"numfiles": "Datoteke",
|
||||
"numshares": "Dijeljene stavke"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Stanje",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Aktualiziranja"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Adresa",
|
||||
"expires": "Isteče",
|
||||
"never": "Nikada",
|
||||
"last_seen": "Zadnje viđeno",
|
||||
"now": "Sada",
|
||||
"years": "{{number}} god",
|
||||
"weeks": "{{number}} tj",
|
||||
"days": "{{number}} dan(a)",
|
||||
"hours": "{{number}} h",
|
||||
"minutes": "{{number}} min",
|
||||
"seconds": "{{number}} s",
|
||||
"ago": "Prije {{value}}"
|
||||
},
|
||||
"qnap": {
|
||||
"systemTempC": "Temperatura sustava",
|
||||
"poolUsage": "Korištenje memorijskog skupa",
|
||||
"cpuUsage": "Korištenje procesora",
|
||||
"memUsage": "Korištenje memorije",
|
||||
"volumeUsage": "Korištenje jedinice memorije",
|
||||
"invalid": "Neispravno"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Prosječno opterećenje",
|
||||
"memory": "Korištenje memorije",
|
||||
"wanStatus": "Stanje WAN-a",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temperatura",
|
||||
"disk": "Korištenje diska",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Glavne grane",
|
||||
"requests": "Aktualni zahtjevi",
|
||||
"requests_failed": "Neuspjeli zahtjevi"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Proizvodnja",
|
||||
"battery_soc": "Baterija",
|
||||
"grid_power": "Raspored",
|
||||
"home_power": "Potrošnja",
|
||||
"charge_power": "Punjač",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Ukupno",
|
||||
"connected": "Povezano",
|
||||
"new_devices": "Novi uređaji",
|
||||
"down_alerts": "Obavijest o rušenju"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,9 +31,9 @@
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"lidarr": {
|
||||
"albums": "Albumok",
|
||||
"wanted": "Keresett",
|
||||
"queued": "Sorban áll"
|
||||
"queued": "Sorban áll",
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Keresett",
|
||||
@@ -108,13 +108,17 @@
|
||||
"sonarr": {
|
||||
"wanted": "Keresett",
|
||||
"queued": "Sorban áll",
|
||||
"series": "Sorozat"
|
||||
"series": "Sorozat",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Keresett",
|
||||
"queued": "Sorban áll",
|
||||
"movies": "Filmek",
|
||||
"missing": "Missing"
|
||||
"missing": "Missing",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"ombi": {
|
||||
"pending": "Függőben",
|
||||
@@ -135,7 +139,8 @@
|
||||
"pihole": {
|
||||
"queries": "Lekérdezések",
|
||||
"blocked": "Blokkolt",
|
||||
"gravity": "Gravitáció"
|
||||
"gravity": "Gravitáció",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Lekérdezések",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago",
|
||||
"hours": "{{number}}h"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
648
public/locales/id/common.json
Normal file
648
public/locales/id/common.json
Normal file
@@ -0,0 +1,648 @@
|
||||
{
|
||||
"nzbget": {
|
||||
"downloaded": "Downloaded",
|
||||
"rate": "Rate",
|
||||
"remaining": "Remaining"
|
||||
},
|
||||
"plex": {
|
||||
"streams": "Active Streams",
|
||||
"albums": "Albums",
|
||||
"movies": "Movies",
|
||||
"tv": "TV Shows"
|
||||
},
|
||||
"sabnzbd": {
|
||||
"rate": "Rate",
|
||||
"queue": "Queue",
|
||||
"timeleft": "Time Left"
|
||||
},
|
||||
"rutorrent": {
|
||||
"active": "Active",
|
||||
"upload": "Upload",
|
||||
"download": "Download"
|
||||
},
|
||||
"transmission": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"qbittorrent": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"deluge": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"downloadstation": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"sonarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Wanted",
|
||||
"missing": "Missing",
|
||||
"queued": "Queued",
|
||||
"movies": "Movies",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"books": "Books"
|
||||
},
|
||||
"bazarr": {
|
||||
"missingEpisodes": "Missing Episodes",
|
||||
"missingMovies": "Missing Movies"
|
||||
},
|
||||
"ombi": {
|
||||
"pending": "Pending",
|
||||
"approved": "Approved",
|
||||
"available": "Available"
|
||||
},
|
||||
"jellyseerr": {
|
||||
"approved": "Approved",
|
||||
"pending": "Pending",
|
||||
"available": "Available"
|
||||
},
|
||||
"overseerr": {
|
||||
"approved": "Approved",
|
||||
"available": "Available",
|
||||
"pending": "Pending",
|
||||
"processing": "Processing"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
},
|
||||
"pihole": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"blocked_percent": "Blocked %",
|
||||
"gravity": "Gravity"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"filtered": "Filtered",
|
||||
"latency": "Latency"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "Upload",
|
||||
"download": "Download",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"tdarr": {
|
||||
"queue": "Queue",
|
||||
"processed": "Processed",
|
||||
"errored": "Errored",
|
||||
"saved": "Saved"
|
||||
},
|
||||
"traefik": {
|
||||
"routers": "Routers",
|
||||
"services": "Services",
|
||||
"middleware": "Middleware"
|
||||
},
|
||||
"npm": {
|
||||
"disabled": "Disabled",
|
||||
"enabled": "Enabled",
|
||||
"total": "Total"
|
||||
},
|
||||
"navidrome": {
|
||||
"nothing_streaming": "No Active Streams",
|
||||
"please_wait": "Please Wait"
|
||||
},
|
||||
"coinmarketcap": {
|
||||
"configure": "Configure one or more crypto currencies to track",
|
||||
"1hour": "1 Hour",
|
||||
"1day": "1 Day",
|
||||
"7days": "7 Days",
|
||||
"30days": "30 Days"
|
||||
},
|
||||
"prowlarr": {
|
||||
"numberOfGrabs": "Grabs",
|
||||
"numberOfQueries": "Queries",
|
||||
"enableIndexers": "Indexers",
|
||||
"numberOfFailGrabs": "Fail Grabs",
|
||||
"numberOfFailQueries": "Fail Queries"
|
||||
},
|
||||
"gotify": {
|
||||
"apps": "Applications",
|
||||
"clients": "Clients",
|
||||
"messages": "Messages"
|
||||
},
|
||||
"jackett": {
|
||||
"configured": "Configured",
|
||||
"errored": "Errored"
|
||||
},
|
||||
"strelaysrv": {
|
||||
"numActiveSessions": "Sessions",
|
||||
"numConnections": "Connections",
|
||||
"dataRelayed": "Relayed",
|
||||
"transferRate": "Rate"
|
||||
},
|
||||
"mastodon": {
|
||||
"user_count": "Users",
|
||||
"status_count": "Posts",
|
||||
"domain_count": "Domains"
|
||||
},
|
||||
"medusa": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"authentik": {
|
||||
"loginsLast24H": "Logins (24h)",
|
||||
"failedLoginsLast24H": "Failed Logins (24h)",
|
||||
"users": "Users"
|
||||
},
|
||||
"proxmox": {
|
||||
"cpu": "CPU",
|
||||
"lxc": "LXC",
|
||||
"vms": "VMs",
|
||||
"mem": "MEM"
|
||||
},
|
||||
"glances": {
|
||||
"temp": "TEMP",
|
||||
"warn": "Warn",
|
||||
"uptime": "UP",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"cpu": "CPU",
|
||||
"load": "Load",
|
||||
"wait": "Please wait",
|
||||
"used": "Used",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"wmo": {
|
||||
"0-night": "Clear",
|
||||
"0-day": "Sunny",
|
||||
"1-day": "Mainly Sunny",
|
||||
"1-night": "Mainly Clear",
|
||||
"2-day": "Partly Cloudy",
|
||||
"2-night": "Partly Cloudy",
|
||||
"56-day": "Light Freezing Drizzle",
|
||||
"56-night": "Light Freezing Drizzle",
|
||||
"3-day": "Cloudy",
|
||||
"3-night": "Cloudy",
|
||||
"45-day": "Foggy",
|
||||
"45-night": "Foggy",
|
||||
"48-day": "Foggy",
|
||||
"48-night": "Foggy",
|
||||
"51-day": "Light Drizzle",
|
||||
"51-night": "Light Drizzle",
|
||||
"53-day": "Drizzle",
|
||||
"53-night": "Drizzle",
|
||||
"55-day": "Heavy Drizzle",
|
||||
"55-night": "Heavy Drizzle",
|
||||
"57-day": "Freezing Drizzle",
|
||||
"57-night": "Freezing Drizzle",
|
||||
"61-day": "Light Rain",
|
||||
"61-night": "Light Rain",
|
||||
"63-day": "Rain",
|
||||
"63-night": "Rain",
|
||||
"71-day": "Light Snow",
|
||||
"71-night": "Light Snow",
|
||||
"73-day": "Snow",
|
||||
"73-night": "Snow",
|
||||
"65-day": "Heavy Rain",
|
||||
"65-night": "Heavy Rain",
|
||||
"66-day": "Freezing Rain",
|
||||
"66-night": "Freezing Rain",
|
||||
"67-day": "Freezing Rain",
|
||||
"67-night": "Freezing Rain",
|
||||
"75-day": "Heavy Snow",
|
||||
"75-night": "Heavy Snow",
|
||||
"77-day": "Snow Grains",
|
||||
"77-night": "Snow Grains",
|
||||
"80-day": "Light Showers",
|
||||
"82-day": "Heavy Showers",
|
||||
"82-night": "Heavy Showers",
|
||||
"85-day": "Snow Showers",
|
||||
"85-night": "Snow Showers",
|
||||
"86-day": "Snow Showers",
|
||||
"86-night": "Snow Showers",
|
||||
"99-day": "Thunderstorm With Hail",
|
||||
"99-night": "Thunderstorm With Hail",
|
||||
"80-night": "Light Showers",
|
||||
"81-day": "Showers",
|
||||
"81-night": "Showers",
|
||||
"95-day": "Thunderstorm",
|
||||
"95-night": "Thunderstorm",
|
||||
"96-day": "Thunderstorm With Hail",
|
||||
"96-night": "Thunderstorm With Hail"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
"updates": "Updates",
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"healthchecks": {
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet",
|
||||
"new": "New",
|
||||
"up": "Online"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Scanned",
|
||||
"containers_updated": "Updated",
|
||||
"containers_failed": "Failed"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approved",
|
||||
"rejectedPushes": "Rejected",
|
||||
"filters": "Filters",
|
||||
"indexers": "Indexers"
|
||||
},
|
||||
"tubearchivist": {
|
||||
"downloads": "Queue",
|
||||
"videos": "Videos",
|
||||
"channels": "Channels",
|
||||
"playlists": "Playlists"
|
||||
},
|
||||
"truenas": {
|
||||
"load": "System Load",
|
||||
"uptime": "Uptime",
|
||||
"alerts": "Alerts",
|
||||
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
|
||||
},
|
||||
"pyload": {
|
||||
"speed": "Speed",
|
||||
"active": "Active",
|
||||
"queue": "Queue",
|
||||
"total": "Total"
|
||||
},
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
"hd": "HD"
|
||||
},
|
||||
"paperlessngx": {
|
||||
"inbox": "Inbox",
|
||||
"total": "Total"
|
||||
},
|
||||
"nextdns": {
|
||||
"wait": "Please Wait",
|
||||
"no_devices": "No Device Data Received"
|
||||
},
|
||||
"mikrotik": {
|
||||
"cpuLoad": "CPU Load",
|
||||
"memoryUsed": "Memory Used",
|
||||
"uptime": "Uptime",
|
||||
"numberOfLeases": "Leases"
|
||||
},
|
||||
"xteve": {
|
||||
"streams_all": "All Streams",
|
||||
"streams_active": "Active Streams",
|
||||
"streams_xepg": "XEPG Channels"
|
||||
},
|
||||
"opnsense": {
|
||||
"cpu": "CPU Load",
|
||||
"memory": "Active Memory",
|
||||
"wanUpload": "WAN Upload",
|
||||
"wanDownload": "WAN Download"
|
||||
},
|
||||
"moonraker": {
|
||||
"print_status": "Print Status",
|
||||
"printer_state": "Printer State",
|
||||
"print_progress": "Progress",
|
||||
"layers": "Layers"
|
||||
},
|
||||
"octoprint": {
|
||||
"printer_state": "Status",
|
||||
"temp_bed": "Bed temp",
|
||||
"job_completion": "Completion",
|
||||
"temp_tool": "Tool temp"
|
||||
},
|
||||
"cloudflared": {
|
||||
"origin_ip": "Origin IP",
|
||||
"status": "Status"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"proxmoxbackupserver": {
|
||||
"datastore_usage": "Datastore",
|
||||
"failed_tasks_24h": "Failed Tasks 24h",
|
||||
"cpu_usage": "CPU",
|
||||
"memory_usage": "Memory"
|
||||
},
|
||||
"immich": {
|
||||
"videos": "Videos",
|
||||
"storage": "Storage",
|
||||
"users": "Users",
|
||||
"photos": "Photos"
|
||||
},
|
||||
"uptimekuma": {
|
||||
"up": "Sites Up",
|
||||
"down": "Sites Down",
|
||||
"uptime": "Uptime",
|
||||
"incident": "Incident",
|
||||
"m": "m"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Libraries",
|
||||
"series": "Series",
|
||||
"books": "Books"
|
||||
},
|
||||
"diskstation": {
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"mylar": {
|
||||
"series": "Series",
|
||||
"issues": "Issues",
|
||||
"wanted": "Wanted"
|
||||
},
|
||||
"photoprism": {
|
||||
"people": "People",
|
||||
"albums": "Albums",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Queue",
|
||||
"processing": "Processing",
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
"totalalerts": "Total Alerts",
|
||||
"alertstriggered": "Alerts Triggered"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"nextrun": "Next Run",
|
||||
"size": "Size",
|
||||
"failed": "Failed",
|
||||
"lastrun": "Last Run"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_max": "All time",
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"podcastsDuration": "Duration",
|
||||
"books": "Books",
|
||||
"booksDuration": "Duration"
|
||||
},
|
||||
"homeassistant": {
|
||||
"people_home": "People Home",
|
||||
"lights_on": "Lights On",
|
||||
"switches_on": "Switches On"
|
||||
},
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"weather": {
|
||||
"wait": "Harap tunggu",
|
||||
"current": "Current Location",
|
||||
"allow": "Click to allow",
|
||||
"updating": "Updating"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "Telusuri…"
|
||||
},
|
||||
"unifi": {
|
||||
"lan_devices": "LAN Devices",
|
||||
"wlan_devices": "WLAN Devices",
|
||||
"lan_users": "LAN Users",
|
||||
"users": "Users",
|
||||
"uptime": "System Uptime",
|
||||
"days": "Days",
|
||||
"wan": "WAN",
|
||||
"lan": "LAN",
|
||||
"wlan": "WLAN",
|
||||
"devices": "Devices",
|
||||
"wlan_users": "WLAN Users",
|
||||
"up": "UP",
|
||||
"down": "DOWN",
|
||||
"wait": "Please wait",
|
||||
"empty_data": "Subsystem status unknown"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "RX",
|
||||
"tx": "TX",
|
||||
"mem": "MEM",
|
||||
"cpu": "CPU",
|
||||
"running": "Running",
|
||||
"offline": "Offline",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown",
|
||||
"healthy": "Healthy",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial"
|
||||
},
|
||||
"freshrss": {
|
||||
"unread": "Unread",
|
||||
"subscriptions": "Subscriptions"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"omada": {
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
},
|
||||
"portainer": {
|
||||
"running": "Running",
|
||||
"stopped": "Stopped",
|
||||
"total": "Total"
|
||||
},
|
||||
"miniflux": {
|
||||
"read": "Read",
|
||||
"unread": "Unread"
|
||||
},
|
||||
"scrutiny": {
|
||||
"passed": "Passed",
|
||||
"failed": "Failed",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"common": {
|
||||
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
|
||||
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
|
||||
},
|
||||
"widget": {
|
||||
"missing_type": "Missing Widget Type: {{type}}",
|
||||
"api_error": "API Error",
|
||||
"information": "Informasi",
|
||||
"status": "Status",
|
||||
"url": "URL",
|
||||
"raw_error": "Raw Error",
|
||||
"response_data": "Response Data"
|
||||
},
|
||||
"resources": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used",
|
||||
"load": "Load",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"hours": "h",
|
||||
"days": "d",
|
||||
"minutes": "m"
|
||||
},
|
||||
"ping": {
|
||||
"error": "Error",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Playing",
|
||||
"transcoding": "Transcoding",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "No Active Streams",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"flood": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
"diffsDetected": "Diffs Detected"
|
||||
},
|
||||
"channelsdvrserver": {
|
||||
"shows": "Shows",
|
||||
"recordings": "Recordings",
|
||||
"scheduled": "Scheduled",
|
||||
"passes": "Passes"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Playing",
|
||||
"transcoding": "Transcoding",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "No Active Streams"
|
||||
}
|
||||
}
|
||||
@@ -81,13 +81,17 @@
|
||||
"sonarr": {
|
||||
"series": "Serie",
|
||||
"wanted": "Richiesti",
|
||||
"queued": "In coda"
|
||||
"queued": "In coda",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Richiesti",
|
||||
"queued": "In coda",
|
||||
"movies": "Film",
|
||||
"missing": "Mancanti"
|
||||
"missing": "Mancanti",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Richiesti",
|
||||
@@ -107,7 +111,8 @@
|
||||
"pihole": {
|
||||
"queries": "Richieste",
|
||||
"blocked": "Bloccati",
|
||||
"gravity": "Severità"
|
||||
"gravity": "Severità",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"npm": {
|
||||
"enabled": "Attivi",
|
||||
@@ -172,7 +177,7 @@
|
||||
"lidarr": {
|
||||
"wanted": "Mancanti",
|
||||
"queued": "In coda",
|
||||
"albums": "Album"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Interrogazioni",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Attendere prego",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Totale Osservato",
|
||||
@@ -513,7 +522,9 @@
|
||||
"memoryusage": "Memory Usage",
|
||||
"cpuload": "Cpu Load",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"never": "Never",
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago",
|
||||
"days": "{{number}}d"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,38 +1,42 @@
|
||||
{
|
||||
"navidrome": {
|
||||
"nothing_streaming": "No Active Streams",
|
||||
"please_wait": "Please Wait"
|
||||
"nothing_streaming": "アクティブストリームなし",
|
||||
"please_wait": "お待ちください"
|
||||
},
|
||||
"npm": {
|
||||
"total": "Total",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled"
|
||||
"total": "合計",
|
||||
"enabled": "有効",
|
||||
"disabled": "無効"
|
||||
},
|
||||
"strelaysrv": {
|
||||
"numActiveSessions": "Sessions",
|
||||
"numConnections": "Connections",
|
||||
"numActiveSessions": "セッション",
|
||||
"numConnections": "コネクション",
|
||||
"dataRelayed": "Relayed",
|
||||
"transferRate": "Rate"
|
||||
"transferRate": "レート"
|
||||
},
|
||||
"glances": {
|
||||
"mem": "MEM",
|
||||
"cpu": "CPU",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"wait": "お待ちください",
|
||||
"temp": "温度",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"days": "日",
|
||||
"hours": "時間",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"autobrr": {
|
||||
"filters": "Filters",
|
||||
"filters": "フィルター",
|
||||
"indexers": "Indexers",
|
||||
"approvedPushes": "Approved",
|
||||
"rejectedPushes": "Rejected"
|
||||
"approvedPushes": "承認済",
|
||||
"rejectedPushes": "却下"
|
||||
},
|
||||
"gluetun": {
|
||||
"region": "Region",
|
||||
"country": "Country",
|
||||
"public_ip": "Public IP"
|
||||
"region": "地域",
|
||||
"country": "国",
|
||||
"public_ip": "パブリックIP"
|
||||
},
|
||||
"common": {
|
||||
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
|
||||
@@ -42,337 +46,342 @@
|
||||
"api_error": "APIエラー",
|
||||
"information": "情報",
|
||||
"missing_type": "見つからないウィジェットタイプ: {{type}}",
|
||||
"status": "ステータス",
|
||||
"status": "状態",
|
||||
"url": "URL",
|
||||
"raw_error": "生のエラー",
|
||||
"response_data": "レスポンスデータ"
|
||||
},
|
||||
"weather": {
|
||||
"current": "Current Location",
|
||||
"allow": "Click to allow",
|
||||
"updating": "Updating",
|
||||
"wait": "Please wait"
|
||||
"current": "現在地",
|
||||
"allow": "クリックで許可",
|
||||
"updating": "アップデート中",
|
||||
"wait": "お待ちください"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "Search…"
|
||||
"placeholder": "検索…"
|
||||
},
|
||||
"resources": {
|
||||
"cpu": "CPU",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used",
|
||||
"load": "Load",
|
||||
"total": "合計",
|
||||
"free": "フリー",
|
||||
"used": "使用",
|
||||
"load": "ロード",
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"temp": "温度",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
"months": "月",
|
||||
"days": "日",
|
||||
"hours": "時間",
|
||||
"minutes": "分"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "Users",
|
||||
"uptime": "System Uptime",
|
||||
"days": "Days",
|
||||
"users": "ユーザ",
|
||||
"uptime": "システム・アップタイム",
|
||||
"days": "日",
|
||||
"wan": "WAN",
|
||||
"lan": "LAN",
|
||||
"wlan": "WLAN",
|
||||
"devices": "Devices",
|
||||
"lan_devices": "LAN Devices",
|
||||
"wlan_devices": "WLAN Devices",
|
||||
"lan_users": "LAN Users",
|
||||
"wlan_users": "WLAN Users",
|
||||
"devices": "デバイス",
|
||||
"lan_devices": "LAN デバイス",
|
||||
"wlan_devices": "WLAN デバイス",
|
||||
"lan_users": "LAN ユーザ",
|
||||
"wlan_users": "WLAN ユーザ",
|
||||
"up": "UP",
|
||||
"down": "DOWN",
|
||||
"wait": "Please wait",
|
||||
"empty_data": "Subsystem status unknown"
|
||||
"wait": "お待ちください",
|
||||
"empty_data": "サブシステム状態・不明"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "RX",
|
||||
"tx": "TX",
|
||||
"mem": "MEM",
|
||||
"cpu": "CPU",
|
||||
"offline": "Offline",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
"offline": "オフライン",
|
||||
"error": "エラー",
|
||||
"unknown": "不明",
|
||||
"running": "起動中",
|
||||
"starting": "起動中",
|
||||
"unhealthy": "非健全",
|
||||
"not_found": "不明",
|
||||
"exited": "終了",
|
||||
"partial": "部分的",
|
||||
"healthy": "健全"
|
||||
},
|
||||
"ping": {
|
||||
"error": "Error",
|
||||
"error": "エラー",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Playing",
|
||||
"transcoding": "Transcoding",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "No Active Streams",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
"playing": "再生中",
|
||||
"transcoding": "変換中",
|
||||
"bitrate": "ビットレート",
|
||||
"no_active": "アクティブ・ストリーム無し",
|
||||
"movies": "映画",
|
||||
"series": "シリーズ",
|
||||
"episodes": "エピソード",
|
||||
"songs": "曲"
|
||||
},
|
||||
"flood": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"download": "ダウンロード",
|
||||
"upload": "アップロード",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
"diffsDetected": "Diffs Detected"
|
||||
"totalObserved": "全観測数",
|
||||
"diffsDetected": "変更数"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Playing",
|
||||
"transcoding": "Transcoding",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "No Active Streams"
|
||||
"playing": "再生中",
|
||||
"transcoding": "変換中",
|
||||
"bitrate": "ビットレート",
|
||||
"no_active": "アクティブストリームなし"
|
||||
},
|
||||
"omada": {
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
"connectedAp": "接続されたAP",
|
||||
"activeUser": "アクティブデバイス",
|
||||
"alerts": "アラート",
|
||||
"connectedGateway": "接続されたゲートウェイ",
|
||||
"connectedSwitches": "接続スイッチ"
|
||||
},
|
||||
"nzbget": {
|
||||
"rate": "Rate",
|
||||
"remaining": "Remaining",
|
||||
"downloaded": "Downloaded"
|
||||
"rate": "速度",
|
||||
"remaining": "残り",
|
||||
"downloaded": "ダウンロード"
|
||||
},
|
||||
"plex": {
|
||||
"streams": "Active Streams",
|
||||
"movies": "Movies",
|
||||
"tv": "TV Shows",
|
||||
"albums": "Albums"
|
||||
"streams": "アクティブストリーム",
|
||||
"movies": "映画",
|
||||
"tv": "テレビ番組",
|
||||
"albums": "アルバム"
|
||||
},
|
||||
"sabnzbd": {
|
||||
"rate": "Rate",
|
||||
"queue": "Queue",
|
||||
"timeleft": "Time Left"
|
||||
"rate": "速度",
|
||||
"queue": "キュー",
|
||||
"timeleft": "残り時間"
|
||||
},
|
||||
"rutorrent": {
|
||||
"active": "Active",
|
||||
"upload": "Upload",
|
||||
"download": "Download"
|
||||
"active": "アクティブ",
|
||||
"upload": "アップロード",
|
||||
"download": "ダウンロード"
|
||||
},
|
||||
"transmission": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"download": "ダウンロード",
|
||||
"upload": "アップロード",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"qbittorrent": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"download": "ダウンロード",
|
||||
"upload": "アップロード",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"deluge": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"download": "ダウンロード",
|
||||
"upload": "アップロード",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"downloadstation": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"download": "ダウンロード",
|
||||
"upload": "アップロード",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"sonarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
"wanted": "募集中",
|
||||
"queued": "待機中",
|
||||
"series": "シリーズ",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Wanted",
|
||||
"missing": "Missing",
|
||||
"queued": "Queued",
|
||||
"movies": "Movies"
|
||||
"wanted": "募集中",
|
||||
"missing": "不明",
|
||||
"queued": "キュー",
|
||||
"movies": "映画",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"albums": "Albums"
|
||||
"wanted": "募集中",
|
||||
"queued": "キュー",
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"books": "Books"
|
||||
"wanted": "募集中",
|
||||
"queued": "待機中",
|
||||
"books": "書籍"
|
||||
},
|
||||
"bazarr": {
|
||||
"missingEpisodes": "Missing Episodes",
|
||||
"missingMovies": "Missing Movies"
|
||||
"missingEpisodes": "欠番エピソード",
|
||||
"missingMovies": "不明・映画"
|
||||
},
|
||||
"ombi": {
|
||||
"pending": "Pending",
|
||||
"approved": "Approved",
|
||||
"available": "Available"
|
||||
"pending": "保留中",
|
||||
"approved": "承認済",
|
||||
"available": "利用可"
|
||||
},
|
||||
"jellyseerr": {
|
||||
"pending": "Pending",
|
||||
"approved": "Approved",
|
||||
"available": "Available"
|
||||
"pending": "保留中",
|
||||
"approved": "承認済",
|
||||
"available": "利用可"
|
||||
},
|
||||
"overseerr": {
|
||||
"pending": "Pending",
|
||||
"processing": "Processing",
|
||||
"approved": "Approved",
|
||||
"available": "Available"
|
||||
"pending": "保留中",
|
||||
"processing": "処理中",
|
||||
"approved": "承認済",
|
||||
"available": "利用可"
|
||||
},
|
||||
"pihole": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"gravity": "Gravity"
|
||||
"queries": "クエリ",
|
||||
"blocked": "ブロック中",
|
||||
"gravity": "グラビティ",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"filtered": "Filtered",
|
||||
"latency": "Latency"
|
||||
"queries": "クエリ",
|
||||
"blocked": "ブロック中",
|
||||
"filtered": "フィルタ済",
|
||||
"latency": "遅延"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "Upload",
|
||||
"download": "Download",
|
||||
"upload": "アップロード",
|
||||
"download": "ダウンロード",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"portainer": {
|
||||
"running": "Running",
|
||||
"stopped": "Stopped",
|
||||
"total": "Total"
|
||||
"running": "起動中",
|
||||
"stopped": "停止中",
|
||||
"total": "合計"
|
||||
},
|
||||
"tdarr": {
|
||||
"queue": "Queue",
|
||||
"processed": "Processed",
|
||||
"errored": "Errored",
|
||||
"saved": "Saved"
|
||||
"queue": "キュー",
|
||||
"processed": "処理済み",
|
||||
"errored": "エラー",
|
||||
"saved": "保存"
|
||||
},
|
||||
"traefik": {
|
||||
"routers": "Routers",
|
||||
"services": "Services",
|
||||
"middleware": "Middleware"
|
||||
"routers": "ルーター",
|
||||
"services": "サービス",
|
||||
"middleware": "ミドルウェア"
|
||||
},
|
||||
"coinmarketcap": {
|
||||
"configure": "Configure one or more crypto currencies to track",
|
||||
"1hour": "1 Hour",
|
||||
"1day": "1 Day",
|
||||
"7days": "7 Days",
|
||||
"30days": "30 Days"
|
||||
"configure": "1つ以上の暗号通貨を設定して追跡",
|
||||
"1hour": "1時間",
|
||||
"1day": "1日",
|
||||
"7days": "7日間",
|
||||
"30days": "30日間"
|
||||
},
|
||||
"gotify": {
|
||||
"apps": "Applications",
|
||||
"clients": "Clients",
|
||||
"messages": "Messages"
|
||||
"apps": "アプリケーション",
|
||||
"clients": "クライアント",
|
||||
"messages": "メッセージ"
|
||||
},
|
||||
"prowlarr": {
|
||||
"enableIndexers": "Indexers",
|
||||
"numberOfGrabs": "Grabs",
|
||||
"numberOfQueries": "Queries",
|
||||
"numberOfQueries": "クエリ",
|
||||
"numberOfFailGrabs": "Fail Grabs",
|
||||
"numberOfFailQueries": "Fail Queries"
|
||||
},
|
||||
"jackett": {
|
||||
"configured": "Configured",
|
||||
"errored": "Errored"
|
||||
"configured": "設定済",
|
||||
"errored": "エラー"
|
||||
},
|
||||
"mastodon": {
|
||||
"user_count": "Users",
|
||||
"status_count": "Posts",
|
||||
"domain_count": "Domains"
|
||||
"user_count": "ユーザー",
|
||||
"status_count": "ポスト",
|
||||
"domain_count": "ドメイン"
|
||||
},
|
||||
"miniflux": {
|
||||
"read": "Read",
|
||||
"unread": "Unread"
|
||||
},
|
||||
"authentik": {
|
||||
"users": "Users",
|
||||
"loginsLast24H": "Logins (24h)",
|
||||
"failedLoginsLast24H": "Failed Logins (24h)"
|
||||
"users": "ユーザー",
|
||||
"loginsLast24H": "ログイン (24時間)",
|
||||
"failedLoginsLast24H": "ログイン失敗(24時間)"
|
||||
},
|
||||
"proxmox": {
|
||||
"mem": "MEM",
|
||||
"cpu": "CPU",
|
||||
"lxc": "LXC",
|
||||
"vms": "VMs"
|
||||
"vms": "VM"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"bookmark": "ブックマーク",
|
||||
"service": "サービス",
|
||||
"search": "検索",
|
||||
"custom": "カスタム",
|
||||
"visit": "訪問",
|
||||
"url": "URL"
|
||||
},
|
||||
"wmo": {
|
||||
"0-day": "Sunny",
|
||||
"1-day": "Mainly Sunny",
|
||||
"0-night": "Clear",
|
||||
"1-night": "Mainly Clear",
|
||||
"2-day": "Partly Cloudy",
|
||||
"2-night": "Partly Cloudy",
|
||||
"3-day": "Cloudy",
|
||||
"3-night": "Cloudy",
|
||||
"45-day": "Foggy",
|
||||
"45-night": "Foggy",
|
||||
"48-day": "Foggy",
|
||||
"48-night": "Foggy",
|
||||
"51-day": "Light Drizzle",
|
||||
"51-night": "Light Drizzle",
|
||||
"53-day": "Drizzle",
|
||||
"53-night": "Drizzle",
|
||||
"55-day": "Heavy Drizzle",
|
||||
"55-night": "Heavy Drizzle",
|
||||
"56-day": "Light Freezing Drizzle",
|
||||
"56-night": "Light Freezing Drizzle",
|
||||
"57-day": "Freezing Drizzle",
|
||||
"57-night": "Freezing Drizzle",
|
||||
"61-day": "Light Rain",
|
||||
"61-night": "Light Rain",
|
||||
"63-day": "Rain",
|
||||
"63-night": "Rain",
|
||||
"67-night": "Freezing Rain",
|
||||
"71-day": "Light Snow",
|
||||
"65-day": "Heavy Rain",
|
||||
"65-night": "Heavy Rain",
|
||||
"66-day": "Freezing Rain",
|
||||
"66-night": "Freezing Rain",
|
||||
"67-day": "Freezing Rain",
|
||||
"71-night": "Light Snow",
|
||||
"73-day": "Snow",
|
||||
"73-night": "Snow",
|
||||
"75-day": "Heavy Snow",
|
||||
"75-night": "Heavy Snow",
|
||||
"77-day": "Snow Grains",
|
||||
"77-night": "Snow Grains",
|
||||
"80-day": "Light Showers",
|
||||
"80-night": "Light Showers",
|
||||
"81-day": "Showers",
|
||||
"81-night": "Showers",
|
||||
"82-day": "Heavy Showers",
|
||||
"82-night": "Heavy Showers",
|
||||
"85-day": "Snow Showers",
|
||||
"85-night": "Snow Showers",
|
||||
"86-day": "Snow Showers",
|
||||
"86-night": "Snow Showers",
|
||||
"95-day": "Thunderstorm",
|
||||
"95-night": "Thunderstorm",
|
||||
"96-day": "Thunderstorm With Hail",
|
||||
"96-night": "Thunderstorm With Hail",
|
||||
"99-day": "Thunderstorm With Hail",
|
||||
"99-night": "Thunderstorm With Hail"
|
||||
"0-day": "晴れ",
|
||||
"1-day": "ほぼ晴れ",
|
||||
"0-night": "晴れ",
|
||||
"1-night": "ほぼ晴れ",
|
||||
"2-day": "一時くもり",
|
||||
"2-night": "一部くもり",
|
||||
"3-day": "くもり",
|
||||
"3-night": "くもり",
|
||||
"45-day": "霧",
|
||||
"45-night": "霧",
|
||||
"48-day": "霧",
|
||||
"48-night": "霧",
|
||||
"51-day": "霧雨",
|
||||
"51-night": "霧雨",
|
||||
"53-day": "霧雨",
|
||||
"53-night": "霧雨",
|
||||
"55-day": "霧雨",
|
||||
"55-night": "霧雨",
|
||||
"56-day": "霧雨",
|
||||
"56-night": "霧雨",
|
||||
"57-day": "霧雨",
|
||||
"57-night": "霧雨",
|
||||
"61-day": "小雨",
|
||||
"61-night": "小雨",
|
||||
"63-day": "雨",
|
||||
"63-night": "雨",
|
||||
"67-night": "雨",
|
||||
"71-day": "雪",
|
||||
"65-day": "大雨",
|
||||
"65-night": "大雨",
|
||||
"66-day": "雨",
|
||||
"66-night": "雨",
|
||||
"67-day": "雨",
|
||||
"71-night": "雪",
|
||||
"73-day": "雪",
|
||||
"73-night": "雪",
|
||||
"75-day": "大雪",
|
||||
"75-night": "大雪",
|
||||
"77-day": "粒雪",
|
||||
"77-night": "粒雪",
|
||||
"80-day": "にわか雨",
|
||||
"80-night": "にわか雨",
|
||||
"81-day": "にわか雨",
|
||||
"81-night": "にわか雨",
|
||||
"82-day": "強いにわか雨",
|
||||
"82-night": "強いにわか雨",
|
||||
"85-day": "にわか雪",
|
||||
"85-night": "にわか雪",
|
||||
"86-day": "にわか雪",
|
||||
"86-night": "にわか雪",
|
||||
"95-day": "雷雨",
|
||||
"95-night": "雷雨",
|
||||
"96-day": "雷雨・ひょう",
|
||||
"96-night": "雷雨・ひょう",
|
||||
"99-day": "雷雨・ひょう",
|
||||
"99-night": "雷雨・ひょう"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
"updates": "Updates",
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"available_update": "システム",
|
||||
"updates": "アップデート",
|
||||
"update_available": "更新あり",
|
||||
"up_to_date": "最新",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
@@ -380,67 +389,67 @@
|
||||
"down": "Down"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Scanned",
|
||||
"containers_updated": "Updated",
|
||||
"containers_failed": "Failed"
|
||||
"containers_scanned": "スキャン済",
|
||||
"containers_updated": "更新済",
|
||||
"containers_failed": "失敗"
|
||||
},
|
||||
"tubearchivist": {
|
||||
"downloads": "Queue",
|
||||
"videos": "Videos",
|
||||
"channels": "Channels",
|
||||
"playlists": "Playlists"
|
||||
"downloads": "キュー",
|
||||
"videos": "ビデオ",
|
||||
"channels": "チャンネル",
|
||||
"playlists": "プレイリスト"
|
||||
},
|
||||
"truenas": {
|
||||
"load": "System Load",
|
||||
"uptime": "Uptime",
|
||||
"alerts": "Alerts",
|
||||
"load": "システム負荷",
|
||||
"uptime": "稼働時間",
|
||||
"alerts": "アラート",
|
||||
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
|
||||
},
|
||||
"pyload": {
|
||||
"speed": "Speed",
|
||||
"active": "Active",
|
||||
"queue": "Queue",
|
||||
"total": "Total"
|
||||
"speed": "スピード",
|
||||
"active": "アクティブ",
|
||||
"queue": "キュー",
|
||||
"total": "合計"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
"channels": "チャンネル",
|
||||
"hd": "HD"
|
||||
},
|
||||
"scrutiny": {
|
||||
"passed": "Passed",
|
||||
"failed": "Failed",
|
||||
"unknown": "Unknown"
|
||||
"passed": "合格",
|
||||
"failed": "失敗",
|
||||
"unknown": "不明"
|
||||
},
|
||||
"paperlessngx": {
|
||||
"inbox": "Inbox",
|
||||
"total": "Total"
|
||||
"inbox": "受信箱",
|
||||
"total": "合計"
|
||||
},
|
||||
"nextdns": {
|
||||
"wait": "Please Wait",
|
||||
"no_devices": "No Device Data Received"
|
||||
"wait": "お待ちください",
|
||||
"no_devices": "デバイス データを受信していません"
|
||||
},
|
||||
"mikrotik": {
|
||||
"cpuLoad": "CPU Load",
|
||||
"memoryUsed": "Memory Used",
|
||||
"uptime": "Uptime",
|
||||
"numberOfLeases": "Leases"
|
||||
"cpuLoad": "CPU負荷",
|
||||
"memoryUsed": "使用メモリ",
|
||||
"uptime": "稼働時間",
|
||||
"numberOfLeases": "リース"
|
||||
},
|
||||
"xteve": {
|
||||
"streams_all": "All Streams",
|
||||
"streams_active": "Active Streams",
|
||||
"streams_xepg": "XEPG Channels"
|
||||
"streams_all": "全ストリーム",
|
||||
"streams_active": "アクティブ・ストリーム",
|
||||
"streams_xepg": "XEPGチャンネル"
|
||||
},
|
||||
"opnsense": {
|
||||
"cpu": "CPU Load",
|
||||
"memory": "Active Memory",
|
||||
"wanUpload": "WAN Upload",
|
||||
"wanDownload": "WAN Download"
|
||||
"cpu": "CPU負荷",
|
||||
"memory": "アクティブ・メモリ",
|
||||
"wanUpload": "WANアップロード",
|
||||
"wanDownload": "WANダウンロード"
|
||||
},
|
||||
"moonraker": {
|
||||
"printer_state": "Printer State",
|
||||
"print_status": "Print Status",
|
||||
"print_progress": "Progress",
|
||||
"layers": "Layers"
|
||||
"printer_state": "プリンタの状態",
|
||||
"print_status": "印刷状況",
|
||||
"print_progress": "進捗状況",
|
||||
"layers": "レイヤー"
|
||||
},
|
||||
"medusa": {
|
||||
"wanted": "Wanted",
|
||||
@@ -448,139 +457,192 @@
|
||||
"series": "Series"
|
||||
},
|
||||
"octoprint": {
|
||||
"temp_bed": "Bed temp",
|
||||
"printer_state": "Status",
|
||||
"temp_tool": "Tool temp",
|
||||
"job_completion": "Completion"
|
||||
"temp_bed": "ベッド温度",
|
||||
"printer_state": "状態",
|
||||
"temp_tool": "ツール温度",
|
||||
"job_completion": "完了"
|
||||
},
|
||||
"cloudflared": {
|
||||
"origin_ip": "Origin IP",
|
||||
"status": "Status"
|
||||
"origin_ip": "オリジンIP",
|
||||
"status": "状態"
|
||||
},
|
||||
"proxmoxbackupserver": {
|
||||
"datastore_usage": "Datastore",
|
||||
"failed_tasks_24h": "Failed Tasks 24h",
|
||||
"failed_tasks_24h": "失敗タスク(24h)",
|
||||
"cpu_usage": "CPU",
|
||||
"memory_usage": "Memory"
|
||||
"memory_usage": "メモリ"
|
||||
},
|
||||
"immich": {
|
||||
"users": "Users",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"storage": "Storage"
|
||||
"users": "ユーザ",
|
||||
"photos": "写真",
|
||||
"videos": "ビデオ",
|
||||
"storage": "ストレージ"
|
||||
},
|
||||
"uptimekuma": {
|
||||
"up": "Sites Up",
|
||||
"down": "Sites Down",
|
||||
"uptime": "Uptime",
|
||||
"up": "サイトUp",
|
||||
"down": "サイトDown",
|
||||
"uptime": "稼働時間",
|
||||
"incident": "Incident",
|
||||
"m": "m"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Libraries",
|
||||
"series": "Series",
|
||||
"books": "Books"
|
||||
"libraries": "ライブラリ",
|
||||
"series": "シリーズ",
|
||||
"books": "書籍"
|
||||
},
|
||||
"mylar": {
|
||||
"series": "Series",
|
||||
"series": "シリーズ",
|
||||
"issues": "Issues",
|
||||
"wanted": "Wanted"
|
||||
},
|
||||
"photoprism": {
|
||||
"albums": "Albums",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"people": "People"
|
||||
"albums": "アルバム",
|
||||
"photos": "写真",
|
||||
"videos": "ビデオ",
|
||||
"people": "人"
|
||||
},
|
||||
"diskstation": {
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
"days": "日",
|
||||
"uptime": "稼働時間",
|
||||
"volumeAvailable": "利用可能"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Queue",
|
||||
"processing": "Processing",
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
"queue": "キュー",
|
||||
"processing": "処理中",
|
||||
"processed": "処理済み",
|
||||
"time": "時間"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
"totalalerts": "Total Alerts",
|
||||
"alertstriggered": "Alerts Triggered"
|
||||
"dashboards": "ダッシュ ボード",
|
||||
"datasources": "データソース",
|
||||
"totalalerts": "アラート総数",
|
||||
"alertstriggered": "トリガーされたアラート"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"cpuload": "CPU負荷",
|
||||
"memoryusage": "メモリ使用量",
|
||||
"freespace": "空き容量",
|
||||
"activeusers": "アクティブユーザー",
|
||||
"numfiles": "ファイル",
|
||||
"numshares": "共有アイテム"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
"status": "状態",
|
||||
"size": "サイズ",
|
||||
"lastrun": "最終実行",
|
||||
"nextrun": "次の実行",
|
||||
"failed": "失敗"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
"active_workers": "アクティブ・ワーカー",
|
||||
"total_workers": "トータル・ワーカー",
|
||||
"records_total": "キューの長さ"
|
||||
},
|
||||
"healthchecks": {
|
||||
"never": "No pings yet",
|
||||
"never": "まだPingはありません",
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping"
|
||||
"up": "オンライン",
|
||||
"grace": "猶予期間中",
|
||||
"down": "オフライン",
|
||||
"paused": "一時停止中",
|
||||
"status": "状態",
|
||||
"last_ping": "最後のPing"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
"servers": "サーバ",
|
||||
"nodes": "ノード"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
"targets_up": "ターゲットUp",
|
||||
"targets_down": "ターゲット Down",
|
||||
"targets_total": "ターゲット合計"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
"players": "プレイヤー",
|
||||
"version": "バージョン",
|
||||
"status": "状態",
|
||||
"up": "オンライン",
|
||||
"down": "オフライン"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_max": "All time",
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year"
|
||||
"gross_percent_max": "全期間",
|
||||
"gross_percent_today": "今日",
|
||||
"gross_percent_1y": "1年"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
"podcasts": "ポッドキャスト",
|
||||
"books": "書籍",
|
||||
"podcastsDuration": "時間",
|
||||
"booksDuration": "時間"
|
||||
},
|
||||
"homeassistant": {
|
||||
"people_home": "People Home",
|
||||
"lights_on": "Lights On",
|
||||
"switches_on": "Switches On"
|
||||
"people_home": "ホーム人数",
|
||||
"lights_on": "点灯",
|
||||
"switches_on": "スイッチオン"
|
||||
},
|
||||
"freshrss": {
|
||||
"subscriptions": "Subscriptions",
|
||||
"unread": "Unread"
|
||||
"subscriptions": "購読",
|
||||
"unread": "未読"
|
||||
},
|
||||
"channelsdvrserver": {
|
||||
"shows": "Shows",
|
||||
"recordings": "Recordings",
|
||||
"scheduled": "Scheduled",
|
||||
"shows": "ショー",
|
||||
"recordings": "レコーディング",
|
||||
"scheduled": "予定済",
|
||||
"passes": "Passes"
|
||||
},
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
"updates": "アップデート"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "アドレス",
|
||||
"expires": "失効",
|
||||
"never": "なし",
|
||||
"last_seen": "最終日時",
|
||||
"now": "現在",
|
||||
"years": "{{number}}年",
|
||||
"weeks": "{{number}}月",
|
||||
"days": "{{number}}日",
|
||||
"hours": "{{number}}時間",
|
||||
"minutes": "{{number}}分",
|
||||
"seconds": "{{number}}秒",
|
||||
"ago": "{{value}} 前"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"up": "Up",
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"watt_hour": "Wh",
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -163,18 +163,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "요청",
|
||||
"queued": "대기 중",
|
||||
"series": "시리즈"
|
||||
"series": "시리즈",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "요청",
|
||||
"missing": "빠짐",
|
||||
"queued": "대기 중",
|
||||
"movies": "영화"
|
||||
"movies": "영화",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "요청",
|
||||
"queued": "대기 중",
|
||||
"albums": "앨범"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "요청",
|
||||
@@ -204,7 +208,8 @@
|
||||
"pihole": {
|
||||
"queries": "쿼리",
|
||||
"blocked": "차단됨",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Gravity",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "쿼리",
|
||||
@@ -300,12 +305,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
@@ -534,7 +543,9 @@
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP",
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"down_alerts": "Down Alerts",
|
||||
"new_devices": "New Devices"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -154,18 +154,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
"series": "Series",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Wanted",
|
||||
"missing": "Missing",
|
||||
"queued": "Queued",
|
||||
"movies": "Filmas"
|
||||
"movies": "Filmas",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"albums": "Albumi"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Wanted",
|
||||
@@ -195,7 +199,8 @@
|
||||
"pihole": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Gravity",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Queries",
|
||||
@@ -289,12 +294,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"temp": "TEMP"
|
||||
"temp": "TEMP",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,8 +33,8 @@
|
||||
},
|
||||
"lidarr": {
|
||||
"queued": "Dibaris Gilir",
|
||||
"albums": "Album",
|
||||
"wanted": "Mahu"
|
||||
"wanted": "Mahu",
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Mahu",
|
||||
@@ -66,12 +66,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Sila tunggu",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Tandabuku",
|
||||
@@ -229,13 +233,17 @@
|
||||
"sonarr": {
|
||||
"wanted": "Mahu",
|
||||
"queued": "Dibaris Gilir",
|
||||
"series": "Bersiri"
|
||||
"series": "Bersiri",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Mahu",
|
||||
"missing": "Hilang",
|
||||
"queued": "Dibaris Gilir",
|
||||
"movies": "Filem"
|
||||
"movies": "Filem",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"bazarr": {
|
||||
"missingEpisodes": "Episod Yang Hilang",
|
||||
@@ -255,7 +263,8 @@
|
||||
"pihole": {
|
||||
"queries": "Permintaan",
|
||||
"blocked": "Disekat",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Gravity",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Permintaan",
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,13 +66,17 @@
|
||||
"sonarr": {
|
||||
"wanted": "Ønsket",
|
||||
"queued": "I kø",
|
||||
"series": "Serie"
|
||||
"series": "Serie",
|
||||
"unknown": "Unknown",
|
||||
"queue": "Queue"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Ønsket",
|
||||
"queued": "I kø",
|
||||
"movies": "Filmer",
|
||||
"missing": "Missing"
|
||||
"missing": "Missing",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Wanted",
|
||||
@@ -92,7 +96,8 @@
|
||||
"pihole": {
|
||||
"queries": "Spørringer",
|
||||
"blocked": "Blokkert",
|
||||
"gravity": "Gravitet"
|
||||
"gravity": "Gravitet",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "Opplasting",
|
||||
@@ -172,7 +177,7 @@
|
||||
"lidarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"albums": "Albums"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Queries",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,13 +82,17 @@
|
||||
"sonarr": {
|
||||
"wanted": "Gezocht",
|
||||
"queued": "In de wachtrij",
|
||||
"series": "Series"
|
||||
"series": "Series",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"movies": "Films",
|
||||
"wanted": "Gezocht",
|
||||
"queued": "In de wachtrij",
|
||||
"missing": "Missend"
|
||||
"missing": "Missend",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Gezocht",
|
||||
@@ -108,7 +112,8 @@
|
||||
"pihole": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Geblokkeerd",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Gravity",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"traefik": {
|
||||
"routers": "Routers",
|
||||
@@ -172,7 +177,7 @@
|
||||
"lidarr": {
|
||||
"wanted": "Gezocht",
|
||||
"queued": "In de wachtrij",
|
||||
"albums": "Albums"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Queries",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Totaal waargenomen",
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Cpu Belasting",
|
||||
"memoryusage": "Geheugen Gebruik",
|
||||
"freespace": "Vrije Ruimte",
|
||||
"activeusers": "Actieve Gebruikers"
|
||||
"activeusers": "Actieve Gebruikers",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,22 +16,22 @@
|
||||
"cpu": "CPU",
|
||||
"mem": "PAM",
|
||||
"temp": "TEMP.",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"max": "Maks",
|
||||
"uptime": "CZAS",
|
||||
"months": "miesiąc",
|
||||
"days": "dni",
|
||||
"hours": "h",
|
||||
"minutes": "minuty"
|
||||
"hours": "godz",
|
||||
"minutes": "min"
|
||||
},
|
||||
"emby": {
|
||||
"no_active": "Brak aktywnych strumieni",
|
||||
"playing": "Odtwarzanie",
|
||||
"transcoding": "Transkodowanie",
|
||||
"bitrate": "Bitrate",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
"movies": "Filmy",
|
||||
"series": "Seriale",
|
||||
"episodes": "Odcinki",
|
||||
"songs": "Piosenki"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Odtwarzanie",
|
||||
@@ -79,11 +79,11 @@
|
||||
"error": "Błąd",
|
||||
"unknown": "Nieznany",
|
||||
"running": "Działa",
|
||||
"starting": "Startować",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"starting": "Rozpoczynanie",
|
||||
"unhealthy": "Niezdrowe",
|
||||
"not_found": "Nie znaleziono",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"partial": "Częściowe",
|
||||
"healthy": "Zdrowy"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -110,18 +110,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "Poszukiwane",
|
||||
"queued": "W kolejce",
|
||||
"series": "Seriale"
|
||||
"series": "Seriale",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Poszukiwane",
|
||||
"queued": "W kolejce",
|
||||
"movies": "Filmy",
|
||||
"missing": "Brakujące"
|
||||
"missing": "Brakujące",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Poszukiwane",
|
||||
"queued": "W kolejce",
|
||||
"albums": "Albumy"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Poszukiwane",
|
||||
@@ -151,7 +155,8 @@
|
||||
"pihole": {
|
||||
"queries": "Zapytania",
|
||||
"blocked": "Zablokowane",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Grawitacja",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"traefik": {
|
||||
"routers": "Routery",
|
||||
@@ -229,16 +234,20 @@
|
||||
"streams": "Aktywne strumienie",
|
||||
"movies": "Filmy",
|
||||
"tv": "Seriale",
|
||||
"albums": "Albums"
|
||||
"albums": "Albumy"
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "Procesor",
|
||||
"mem": "Pamięć",
|
||||
"wait": "Proszę czekać",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"uptime": "CZAS",
|
||||
"days": "dni",
|
||||
"hours": "godz",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"diffsDetected": "Wykryto różnic",
|
||||
@@ -305,10 +314,10 @@
|
||||
"quicklaunch": {
|
||||
"bookmark": "Zakładka",
|
||||
"service": "Usługi",
|
||||
"search": "Search",
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
"search": "Wyszukaj",
|
||||
"custom": "Niestandardowe",
|
||||
"visit": "Odwiedź",
|
||||
"url": "Adres URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -318,7 +327,7 @@
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"pending": "Oczekujące",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
@@ -369,7 +378,7 @@
|
||||
},
|
||||
"scrutiny": {
|
||||
"passed": "Powodzenie",
|
||||
"failed": "Niepowodzenie",
|
||||
"failed": "Nieudane",
|
||||
"unknown": "Nieznane"
|
||||
},
|
||||
"paperlessngx": {
|
||||
@@ -445,13 +454,13 @@
|
||||
"medusa": {
|
||||
"wanted": "Poszukiwane",
|
||||
"queued": "Zakolejkowane",
|
||||
"series": "Seria"
|
||||
"series": "Seriale"
|
||||
},
|
||||
"octoprint": {
|
||||
"printer_state": "Status",
|
||||
"temp_tool": "Tool temp",
|
||||
"temp_bed": "Bed temp",
|
||||
"job_completion": "Completion"
|
||||
"job_completion": "Ukończono"
|
||||
},
|
||||
"cloudflared": {
|
||||
"origin_ip": "Origin IP",
|
||||
@@ -461,84 +470,86 @@
|
||||
"datastore_usage": "Datastore",
|
||||
"failed_tasks_24h": "Failed Tasks 24h",
|
||||
"cpu_usage": "CPU",
|
||||
"memory_usage": "Memory"
|
||||
"memory_usage": "Pamięć"
|
||||
},
|
||||
"immich": {
|
||||
"users": "Users",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"storage": "Storage"
|
||||
"users": "Użytkownicy",
|
||||
"photos": "Zdjęcia",
|
||||
"videos": "Filmy",
|
||||
"storage": "Pamięć"
|
||||
},
|
||||
"uptimekuma": {
|
||||
"up": "Sites Up",
|
||||
"down": "Sites Down",
|
||||
"uptime": "Uptime",
|
||||
"incident": "Incident",
|
||||
"m": "m"
|
||||
"down": "Niedziałające strony",
|
||||
"uptime": "Czas działania",
|
||||
"incident": "Incydent",
|
||||
"m": "min"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Libraries",
|
||||
"series": "Series",
|
||||
"books": "Books"
|
||||
"libraries": "Biblioteki",
|
||||
"series": "Seriale",
|
||||
"books": "Książki"
|
||||
},
|
||||
"mylar": {
|
||||
"series": "Series",
|
||||
"issues": "Issues",
|
||||
"series": "Seriale",
|
||||
"issues": "Zgłoszenia",
|
||||
"wanted": "Wanted"
|
||||
},
|
||||
"photoprism": {
|
||||
"albums": "Albums",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"people": "People"
|
||||
"albums": "Albumy",
|
||||
"photos": "Zdjęcia",
|
||||
"videos": "Filmy",
|
||||
"people": "Ludzie"
|
||||
},
|
||||
"diskstation": {
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available",
|
||||
"days": "Days"
|
||||
"uptime": "Czas działania",
|
||||
"volumeAvailable": "Dostępne",
|
||||
"days": "Dni"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Queue",
|
||||
"processing": "Processing",
|
||||
"queue": "Kolejka",
|
||||
"processing": "Przetwarzanie",
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
"time": "Czas"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
"datasources": "Źródła danych",
|
||||
"totalalerts": "Total Alerts",
|
||||
"alertstriggered": "Alerts Triggered"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"cpuload": "Obciążenie CPU",
|
||||
"memoryusage": "Użycie pamięci",
|
||||
"freespace": "Wolna przestrzeń",
|
||||
"activeusers": "Aktywni użytkownicy",
|
||||
"numfiles": "Pliki",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"size": "Rozmiar",
|
||||
"lastrun": "Ostatnie uruchomienie",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
"failed": "Nieudane"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"active_workers": "Aktywni pracownicy",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
"records_total": "Długość kolejki"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"new": "Nowy",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"paused": "Zatrzymane",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"servers": "Serwery",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
@@ -547,22 +558,22 @@
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"players": "Gracze",
|
||||
"version": "Wersja",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_today": "Dzisiaj",
|
||||
"gross_percent_1y": "Rok",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
"podcasts": "Podcasty",
|
||||
"books": "Książki",
|
||||
"podcastsDuration": "Czas trwania",
|
||||
"booksDuration": "Czas trwania"
|
||||
},
|
||||
"homeassistant": {
|
||||
"people_home": "People Home",
|
||||
@@ -570,17 +581,68 @@
|
||||
"switches_on": "Switches On"
|
||||
},
|
||||
"freshrss": {
|
||||
"subscriptions": "Subscriptions",
|
||||
"unread": "Unread"
|
||||
"subscriptions": "Subskrypcje",
|
||||
"unread": "Nieprzeczytane"
|
||||
},
|
||||
"channelsdvrserver": {
|
||||
"shows": "Shows",
|
||||
"recordings": "Recordings",
|
||||
"scheduled": "Scheduled",
|
||||
"recordings": "Nagrywanie",
|
||||
"scheduled": "W kolejce",
|
||||
"passes": "Passes"
|
||||
},
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
"updates": "Aktualizacje"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,18 +112,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "Desejado",
|
||||
"queued": "Na fila",
|
||||
"series": "Séries"
|
||||
"series": "Séries",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Desejado",
|
||||
"queued": "Na fila",
|
||||
"movies": "Filmes",
|
||||
"missing": "Faltando"
|
||||
"missing": "Faltando",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Desejado",
|
||||
"queued": "Na fila",
|
||||
"albums": "Álbuns"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Desejado",
|
||||
@@ -153,7 +157,8 @@
|
||||
"pihole": {
|
||||
"queries": "Consultas",
|
||||
"blocked": "Bloqueados",
|
||||
"gravity": "Gravidade"
|
||||
"gravity": "Gravidade",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Consultas",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Por favor aguarde",
|
||||
"temp": "TEMP",
|
||||
"uptime": "LIGADO",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Observados",
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Carga de CPU",
|
||||
"memoryusage": "Memória Utilizada",
|
||||
"freespace": "Espaço Livre",
|
||||
"activeusers": "Usuários Ativos"
|
||||
"activeusers": "Usuários Ativos",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"hours": "{{number}}h",
|
||||
"days": "{{number}}d",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"systemTempC": "System Temp",
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,13 +66,17 @@
|
||||
"sonarr": {
|
||||
"wanted": "Desejada",
|
||||
"queued": "Em fila",
|
||||
"series": "Séries"
|
||||
"series": "Séries",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Desejado",
|
||||
"queued": "Fila",
|
||||
"movies": "Filmes",
|
||||
"missing": "Faltando"
|
||||
"missing": "Faltando",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Desejados",
|
||||
@@ -92,7 +96,8 @@
|
||||
"pihole": {
|
||||
"queries": "Consultas",
|
||||
"blocked": "Bloqueado",
|
||||
"gravity": "Gravidade"
|
||||
"gravity": "Gravidade",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "Envio",
|
||||
@@ -185,7 +190,7 @@
|
||||
"lidarr": {
|
||||
"queued": "Enfileirado",
|
||||
"wanted": "Desejado",
|
||||
"albums": "Álbuns"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Consultas",
|
||||
@@ -246,12 +251,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Por favor, aguarde",
|
||||
"temp": "TEMP",
|
||||
"uptime": "Cima",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observado",
|
||||
@@ -522,7 +531,9 @@
|
||||
"cpuload": "Carga de CPU",
|
||||
"memoryusage": "Memória Utilizada",
|
||||
"freespace": "Espaço Livre",
|
||||
"activeusers": "Utilizadores Ativos"
|
||||
"activeusers": "Utilizadores Ativos",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Estado",
|
||||
@@ -591,5 +602,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanIP": "WAN IP",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
"pihole": {
|
||||
"queries": "Cereri",
|
||||
"blocked": "Blocate",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Gravity",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"adguard": {
|
||||
"blocked": "Blocate",
|
||||
@@ -133,18 +134,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "Dorite",
|
||||
"queued": "În coadă",
|
||||
"series": "Seriale"
|
||||
"series": "Seriale",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"queued": "În coadă",
|
||||
"wanted": "Dorite",
|
||||
"movies": "Filme",
|
||||
"missing": "Missing"
|
||||
"missing": "Missing",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Dorite",
|
||||
"queued": "În coadă",
|
||||
"albums": "Albume"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Dorite",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "Procesor",
|
||||
"mem": "Memorie",
|
||||
"wait": "Te rugam sa astepti",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -404,7 +413,7 @@
|
||||
},
|
||||
"common": {
|
||||
"bibyterate": "{{valoare, rata(bits: fals; binar: adevarat)}}",
|
||||
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
|
||||
"bibitrate": "{{valoare, rata(biti: adevarat; binar: adevarat)}}"
|
||||
},
|
||||
"omada": {
|
||||
"connectedAp": "Connected APs",
|
||||
@@ -513,7 +522,9 @@
|
||||
"activeusers": "Active Users",
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space"
|
||||
"freespace": "Free Space",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -581,6 +592,57 @@
|
||||
},
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
"updates": "Acutalizari"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts",
|
||||
"total": "Total",
|
||||
"connected": "Connected"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"status": "Статус",
|
||||
"information": "Информация",
|
||||
"url": "URL",
|
||||
"raw_error": "Raw Error",
|
||||
"raw_error": "Необработанная ошибка",
|
||||
"response_data": "Данные ответа"
|
||||
},
|
||||
"search": {
|
||||
@@ -66,18 +66,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "Хотел",
|
||||
"queued": "В очереди",
|
||||
"series": "Серии"
|
||||
"series": "Серии",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Хотел",
|
||||
"queued": "В очереди",
|
||||
"movies": "Фильмы",
|
||||
"missing": "Пропущено"
|
||||
"missing": "Пропущено",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"books": "Books"
|
||||
"wanted": "Хотел",
|
||||
"queued": "В очереди",
|
||||
"books": "Книги"
|
||||
},
|
||||
"ombi": {
|
||||
"pending": "Ожидание",
|
||||
@@ -92,7 +96,8 @@
|
||||
"pihole": {
|
||||
"queries": "Запросы",
|
||||
"blocked": "Заблокировано",
|
||||
"gravity": "Сила тяжести"
|
||||
"gravity": "Сила тяжести",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "Отдача",
|
||||
@@ -150,10 +155,10 @@
|
||||
},
|
||||
"prowlarr": {
|
||||
"enableIndexers": "Индексаторы",
|
||||
"numberOfGrabs": "Grabs",
|
||||
"numberOfGrabs": "Захваты",
|
||||
"numberOfQueries": "Запросы",
|
||||
"numberOfFailGrabs": "Fail Grabs",
|
||||
"numberOfFailQueries": "Fail Queries"
|
||||
"numberOfFailGrabs": "Неудачные захваты",
|
||||
"numberOfFailQueries": "Неудачные запросы"
|
||||
},
|
||||
"transmission": {
|
||||
"download": "Загрузка",
|
||||
@@ -172,7 +177,7 @@
|
||||
"lidarr": {
|
||||
"wanted": "Хотел",
|
||||
"queued": "В очереди",
|
||||
"albums": "Альбомы"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Запросы",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "Процессор",
|
||||
"mem": "Память",
|
||||
"wait": "Пожалуйста, подождите",
|
||||
"temp": "Температура",
|
||||
"uptime": "Работает",
|
||||
"days": "д",
|
||||
"hours": "ч"
|
||||
"hours": "ч",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Всего наблюдаемых",
|
||||
@@ -247,16 +256,16 @@
|
||||
"wmo": {
|
||||
"0-day": "Солнечно",
|
||||
"0-night": "Ясно",
|
||||
"71-night": "Light Snow",
|
||||
"73-day": "Snow",
|
||||
"73-night": "Snow",
|
||||
"75-day": "Heavy Snow",
|
||||
"75-night": "Heavy Snow",
|
||||
"77-day": "Snow Grains",
|
||||
"77-night": "Snow Grains",
|
||||
"80-day": "Light Showers",
|
||||
"80-night": "Light Showers",
|
||||
"81-day": "Showers",
|
||||
"71-night": "Лёгкий снег",
|
||||
"73-day": "Снег",
|
||||
"73-night": "Снег",
|
||||
"75-day": "Сильный снегопад",
|
||||
"75-night": "Сильный снегопад",
|
||||
"77-day": "Снежные зёрна",
|
||||
"77-night": "Снежные зёрна",
|
||||
"80-day": "Слабый дождь",
|
||||
"80-night": "Слабый дождь",
|
||||
"81-day": "Ливень",
|
||||
"1-day": "Преимущественно солнечно",
|
||||
"1-night": "Преимущественно ясно",
|
||||
"2-day": "Переменная облачность",
|
||||
@@ -273,41 +282,41 @@
|
||||
"53-night": "Моросит",
|
||||
"55-day": "Сильно моросит",
|
||||
"55-night": "Сильно моросит",
|
||||
"56-day": "Light Freezing Drizzle",
|
||||
"56-night": "Light Freezing Drizzle",
|
||||
"57-day": "Freezing Drizzle",
|
||||
"57-night": "Freezing Drizzle",
|
||||
"61-day": "Light Rain",
|
||||
"61-night": "Light Rain",
|
||||
"63-day": "Rain",
|
||||
"63-night": "Rain",
|
||||
"65-day": "Heavy Rain",
|
||||
"65-night": "Heavy Rain",
|
||||
"66-day": "Freezing Rain",
|
||||
"66-night": "Freezing Rain",
|
||||
"67-day": "Freezing Rain",
|
||||
"67-night": "Freezing Rain",
|
||||
"71-day": "Light Snow",
|
||||
"81-night": "Showers",
|
||||
"82-day": "Heavy Showers",
|
||||
"82-night": "Heavy Showers",
|
||||
"85-day": "Snow Showers",
|
||||
"85-night": "Snow Showers",
|
||||
"86-day": "Snow Showers",
|
||||
"86-night": "Snow Showers",
|
||||
"95-day": "Thunderstorm",
|
||||
"95-night": "Thunderstorm",
|
||||
"96-day": "Thunderstorm With Hail",
|
||||
"96-night": "Thunderstorm With Hail",
|
||||
"99-day": "Thunderstorm With Hail",
|
||||
"99-night": "Thunderstorm With Hail"
|
||||
"56-day": "Лёгкая изморозь",
|
||||
"56-night": "Лёгкая изморозь",
|
||||
"57-day": "Изморозь",
|
||||
"57-night": "Изморозь",
|
||||
"61-day": "Лёгкий дождь",
|
||||
"61-night": "Лёгкий дождь",
|
||||
"63-day": "Дождь",
|
||||
"63-night": "Дождь",
|
||||
"65-day": "Сильный дождь",
|
||||
"65-night": "Сильный дождь",
|
||||
"66-day": "Ледяной дождь",
|
||||
"66-night": "Ледяной дождь",
|
||||
"67-day": "Ледяной дождь",
|
||||
"67-night": "Ледяной дождь",
|
||||
"71-day": "Лёгкий снег",
|
||||
"81-night": "Ливень",
|
||||
"82-day": "Сильный ливень",
|
||||
"82-night": "Сильный ливень",
|
||||
"85-day": "Снегопад",
|
||||
"85-night": "Снегопад",
|
||||
"86-day": "Снегопад",
|
||||
"86-night": "Снегопад",
|
||||
"95-day": "Гроза",
|
||||
"95-night": "Гроза",
|
||||
"96-day": "Гроза с градом",
|
||||
"96-night": "Гроза с градом",
|
||||
"99-day": "Гроза с градом",
|
||||
"99-night": "Гроза с градом"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Закладка",
|
||||
"service": "Сервис",
|
||||
"search": "Поиск",
|
||||
"custom": "Пользовательский",
|
||||
"visit": "Visit",
|
||||
"visit": "Посетить",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
@@ -317,9 +326,9 @@
|
||||
"up_to_date": "Обновлено",
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"child_bridges": "Дочерние мосты",
|
||||
"up": "Up",
|
||||
"up": "Включено",
|
||||
"pending": "В ожидании",
|
||||
"down": "Down"
|
||||
"down": "Выключено"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Одобрено",
|
||||
@@ -330,7 +339,7 @@
|
||||
"watchtower": {
|
||||
"containers_scanned": "Отсканировано",
|
||||
"containers_updated": "Обновлено",
|
||||
"containers_failed": "Failed"
|
||||
"containers_failed": "Неудачно"
|
||||
},
|
||||
"tubearchivist": {
|
||||
"downloads": "Очередь",
|
||||
@@ -350,17 +359,17 @@
|
||||
},
|
||||
"pyload": {
|
||||
"speed": "Скорость",
|
||||
"active": "Active",
|
||||
"active": "Активный",
|
||||
"queue": "Очередь",
|
||||
"total": "Total"
|
||||
"total": "Всего"
|
||||
},
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country"
|
||||
"public_ip": "Публичный IP",
|
||||
"region": "Регион",
|
||||
"country": "Страна"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
"channels": "Каналы",
|
||||
"hd": "HD"
|
||||
},
|
||||
"ping": {
|
||||
@@ -368,12 +377,12 @@
|
||||
"ping": "Пинг"
|
||||
},
|
||||
"scrutiny": {
|
||||
"failed": "Failed",
|
||||
"unknown": "Unknown",
|
||||
"passed": "Passed"
|
||||
"failed": "Неудачно",
|
||||
"unknown": "Неизвестный",
|
||||
"passed": "Пройдено"
|
||||
},
|
||||
"paperlessngx": {
|
||||
"inbox": "Inbox",
|
||||
"inbox": "Входящие",
|
||||
"total": "Всего"
|
||||
},
|
||||
"deluge": {
|
||||
@@ -399,8 +408,8 @@
|
||||
"unread": "Непрочитанные"
|
||||
},
|
||||
"nextdns": {
|
||||
"wait": "Please Wait",
|
||||
"no_devices": "No Device Data Received"
|
||||
"wait": "Пожалуйста, подождите",
|
||||
"no_devices": "Данные устройства не получены"
|
||||
},
|
||||
"common": {
|
||||
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
|
||||
@@ -420,27 +429,27 @@
|
||||
"seed": "Сиды"
|
||||
},
|
||||
"mikrotik": {
|
||||
"cpuLoad": "CPU Load",
|
||||
"memoryUsed": "Memory Used",
|
||||
"uptime": "Uptime",
|
||||
"numberOfLeases": "Leases"
|
||||
"cpuLoad": "Загрузка процессора",
|
||||
"memoryUsed": "Использование памяти",
|
||||
"uptime": "Время работы",
|
||||
"numberOfLeases": "Аренды"
|
||||
},
|
||||
"xteve": {
|
||||
"streams_all": "All Streams",
|
||||
"streams_active": "Active Streams",
|
||||
"streams_xepg": "XEPG Channels"
|
||||
"streams_all": "Все трансляции",
|
||||
"streams_active": "Активные трансляции",
|
||||
"streams_xepg": "XEPG-каналы"
|
||||
},
|
||||
"opnsense": {
|
||||
"cpu": "CPU Load",
|
||||
"memory": "Active Memory",
|
||||
"wanUpload": "WAN Upload",
|
||||
"wanDownload": "WAN Download"
|
||||
"cpu": "Загрузка процессора",
|
||||
"memory": "Активная память",
|
||||
"wanUpload": "Отдача через WAN",
|
||||
"wanDownload": "Загрузка через WAN"
|
||||
},
|
||||
"moonraker": {
|
||||
"printer_state": "Printer State",
|
||||
"print_status": "Print Status",
|
||||
"print_progress": "Progress",
|
||||
"layers": "Layers"
|
||||
"printer_state": "Состояние принтера",
|
||||
"print_status": "Статус печати",
|
||||
"print_progress": "Прогресс",
|
||||
"layers": "Слои"
|
||||
},
|
||||
"medusa": {
|
||||
"wanted": "Хотел",
|
||||
@@ -448,89 +457,91 @@
|
||||
"series": "Сериалы"
|
||||
},
|
||||
"octoprint": {
|
||||
"printer_state": "Status",
|
||||
"temp_tool": "Tool temp",
|
||||
"temp_bed": "Bed temp",
|
||||
"job_completion": "Completion"
|
||||
"printer_state": "Статус",
|
||||
"temp_tool": "Температура инструмента",
|
||||
"temp_bed": "Температура стола",
|
||||
"job_completion": "Завершение"
|
||||
},
|
||||
"cloudflared": {
|
||||
"origin_ip": "Origin IP",
|
||||
"status": "Status"
|
||||
"origin_ip": "IP источника",
|
||||
"status": "Статус"
|
||||
},
|
||||
"proxmoxbackupserver": {
|
||||
"datastore_usage": "Datastore",
|
||||
"failed_tasks_24h": "Failed Tasks 24h",
|
||||
"cpu_usage": "CPU",
|
||||
"memory_usage": "Memory"
|
||||
"datastore_usage": "Хранилище данных",
|
||||
"failed_tasks_24h": "Неудачные задачи 24ч",
|
||||
"cpu_usage": "Процессор",
|
||||
"memory_usage": "Память"
|
||||
},
|
||||
"immich": {
|
||||
"users": "Users",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"storage": "Storage"
|
||||
"users": "Пользователи",
|
||||
"photos": "Фотографии",
|
||||
"videos": "Видео",
|
||||
"storage": "Хранилище"
|
||||
},
|
||||
"uptimekuma": {
|
||||
"up": "Sites Up",
|
||||
"down": "Sites Down",
|
||||
"uptime": "Uptime",
|
||||
"incident": "Incident",
|
||||
"m": "m"
|
||||
"up": "Сайтов включено",
|
||||
"down": "Сайтов выключено",
|
||||
"uptime": "Время работы",
|
||||
"incident": "Инцидент",
|
||||
"m": "м"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Libraries",
|
||||
"series": "Series",
|
||||
"books": "Books"
|
||||
"libraries": "Библиотеки",
|
||||
"series": "Серии",
|
||||
"books": "Книги"
|
||||
},
|
||||
"mylar": {
|
||||
"series": "Series",
|
||||
"issues": "Issues",
|
||||
"wanted": "Wanted"
|
||||
"series": "Серии",
|
||||
"issues": "Проблемы",
|
||||
"wanted": "Хотел"
|
||||
},
|
||||
"photoprism": {
|
||||
"albums": "Albums",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"people": "People"
|
||||
"albums": "Альбомы",
|
||||
"photos": "Фотографии",
|
||||
"videos": "Видео",
|
||||
"people": "Люди"
|
||||
},
|
||||
"diskstation": {
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
"days": "Дней",
|
||||
"uptime": "Время работы",
|
||||
"volumeAvailable": "Доступно"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Queue",
|
||||
"processing": "Processing",
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
"queue": "Очередь",
|
||||
"processing": "Обработка",
|
||||
"processed": "Обработано",
|
||||
"time": "Время"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
"totalalerts": "Total Alerts",
|
||||
"alertstriggered": "Alerts Triggered"
|
||||
"dashboards": "Панели мониторинга",
|
||||
"datasources": "Источники данных",
|
||||
"totalalerts": "Всего уведомлений",
|
||||
"alertstriggered": "Уведомлений сработало"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"cpuload": "Загрузка процессора",
|
||||
"memoryusage": "Использование памяти",
|
||||
"freespace": "Свободное место",
|
||||
"activeusers": "Активные пользователи",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
"status": "Статус",
|
||||
"size": "Размер",
|
||||
"lastrun": "Последний запуск",
|
||||
"nextrun": "Следующий запуск",
|
||||
"failed": "Неудачно"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
"active_workers": "Активные воркеры",
|
||||
"total_workers": "Всего воркеров",
|
||||
"records_total": "Длина запроса"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "Новые",
|
||||
"up": "Онлайн",
|
||||
"grace": "In Grace Period",
|
||||
"grace": "В льготный период",
|
||||
"down": "Офлайн",
|
||||
"paused": "Приостановлено",
|
||||
"status": "Статус",
|
||||
@@ -538,13 +549,13 @@
|
||||
"never": "Пока нет пингов"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
"servers": "Сервера",
|
||||
"nodes": "Узлы"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
"targets_up": "Целей включено",
|
||||
"targets_down": "Целей выключено",
|
||||
"targets_total": "Всего целей"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Игроков",
|
||||
@@ -554,33 +565,84 @@
|
||||
"down": "Офлайн"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
"gross_percent_today": "Сегодня",
|
||||
"gross_percent_1y": "1 год",
|
||||
"gross_percent_max": "За всё время"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
"podcasts": "Подкасты",
|
||||
"books": "Книги",
|
||||
"podcastsDuration": "Продолжительность",
|
||||
"booksDuration": "Продолжительность"
|
||||
},
|
||||
"homeassistant": {
|
||||
"people_home": "People Home",
|
||||
"lights_on": "Lights On",
|
||||
"switches_on": "Switches On"
|
||||
"people_home": "Людей дома",
|
||||
"lights_on": "Включено света",
|
||||
"switches_on": "Включено переключателей"
|
||||
},
|
||||
"freshrss": {
|
||||
"subscriptions": "Подписки",
|
||||
"unread": "Непрочитанные"
|
||||
},
|
||||
"channelsdvrserver": {
|
||||
"shows": "Shows",
|
||||
"shows": "Сериалы",
|
||||
"recordings": "Записи",
|
||||
"scheduled": "Запланировано",
|
||||
"passes": "Passes"
|
||||
"passes": "Пройдено"
|
||||
},
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
"monitoring": "Мониторинг",
|
||||
"updates": "Обновления"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP",
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"home_power": "Consumption",
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -273,18 +273,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
"series": "Series",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Wanted",
|
||||
"missing": "Missing",
|
||||
"queued": "Queued",
|
||||
"movies": "Movies"
|
||||
"movies": "Movies",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"albums": "Albums"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Wanted",
|
||||
@@ -314,7 +318,8 @@
|
||||
"pihole": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Gravity",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Queries",
|
||||
@@ -397,12 +402,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
@@ -534,7 +543,9 @@
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users",
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage"
|
||||
"memoryusage": "Memory Usage",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"years": "{{number}}y",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"disk": "Disk Usage",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,8 @@
|
||||
"pihole": {
|
||||
"queries": "Poizvedbe",
|
||||
"blocked": "Blokirano",
|
||||
"gravity": "Gravitacija"
|
||||
"gravity": "Gravitacija",
|
||||
"blocked_percent": "Blokirano %"
|
||||
},
|
||||
"adguard": {
|
||||
"filtered": "Filtrirano",
|
||||
@@ -68,7 +69,9 @@
|
||||
"cpuload": "CPU obremenitev",
|
||||
"memoryusage": "Uporabljen spomin",
|
||||
"freespace": "Prostor na voljo",
|
||||
"activeusers": "Aktivni uporabniki"
|
||||
"activeusers": "Aktivni uporabniki",
|
||||
"numfiles": "Datotek",
|
||||
"numshares": "Deljeno"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Stanje",
|
||||
@@ -193,10 +196,10 @@
|
||||
"streams": "Aktivna vsebina",
|
||||
"movies": "Filmi",
|
||||
"tv": "TV serije",
|
||||
"albums": "Albums"
|
||||
"albums": "Albumi"
|
||||
},
|
||||
"sabnzbd": {
|
||||
"rate": "Hitrost prenosa",
|
||||
"rate": "Hitrost",
|
||||
"queue": "Vrsta",
|
||||
"timeleft": "Preostali čas"
|
||||
},
|
||||
@@ -232,18 +235,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "Iskano",
|
||||
"queued": "V vrsti",
|
||||
"series": "Serije"
|
||||
"series": "Serije",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Iskano",
|
||||
"missing": "Manjkajoče",
|
||||
"missing": "Manjka",
|
||||
"queued": "V vrsti",
|
||||
"movies": "Filmi"
|
||||
"movies": "Filmi",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Iskano",
|
||||
"queued": "V vrsti",
|
||||
"albums": "Albumi"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Iskano",
|
||||
@@ -281,7 +288,7 @@
|
||||
"enabled": "Omogočen"
|
||||
},
|
||||
"coinmarketcap": {
|
||||
"configure": "Konfigurirajte eno ali več kripto valut za sledenje",
|
||||
"configure": "Nastavite eno ali več kripto valut za sledenje",
|
||||
"1hour": "1 ura",
|
||||
"1day": "1 dan",
|
||||
"7days": "7 dni",
|
||||
@@ -341,18 +348,22 @@
|
||||
},
|
||||
"proxmox": {
|
||||
"lxc": "LXC",
|
||||
"vms": "VM-ji",
|
||||
"vms": "VM",
|
||||
"mem": "MEM",
|
||||
"cpu": "CPU"
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Prosim počakajte",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "u"
|
||||
"hours": "u",
|
||||
"free": "Free",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"used": "Used"
|
||||
},
|
||||
"authentik": {
|
||||
"users": "Uporabniki",
|
||||
@@ -521,10 +532,10 @@
|
||||
"storage": "Shramba"
|
||||
},
|
||||
"uptimekuma": {
|
||||
"up": "Povezanih strani",
|
||||
"down": "Nepovezanih strani",
|
||||
"up": "Deluje",
|
||||
"down": "Ne deluje",
|
||||
"uptime": "Čas delovanja",
|
||||
"incident": "Težave",
|
||||
"incident": "Incident",
|
||||
"m": "m"
|
||||
},
|
||||
"komga": {
|
||||
@@ -561,11 +572,11 @@
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasti",
|
||||
"books": "Knjige",
|
||||
"podcastsDuration": "Dolžina",
|
||||
"booksDuration": "Dolžina"
|
||||
"podcastsDuration": "Trajanje",
|
||||
"booksDuration": "Trajanje"
|
||||
},
|
||||
"homeassistant": {
|
||||
"people_home": "Ljudi doma",
|
||||
"people_home": "Ljudje doma",
|
||||
"lights_on": "Vklopljene luči",
|
||||
"switches_on": "Vklopljena stikala"
|
||||
},
|
||||
@@ -580,7 +591,58 @@
|
||||
"passes": "Prehodi"
|
||||
},
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
"monitoring": "Se spremlja",
|
||||
"updates": "Posodobitve"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Naslov",
|
||||
"expires": "Poteče",
|
||||
"never": "Nikoli",
|
||||
"last_seen": "Viden",
|
||||
"now": "Sedaj",
|
||||
"years": "{{number}}l",
|
||||
"weeks": "{{number}}t",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}u",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} nazaj"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU",
|
||||
"memUsage": "MEM",
|
||||
"systemTempC": "Temperatura",
|
||||
"poolUsage": "Prostor",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Povp. obremenitev",
|
||||
"memory": "Poraba spomina",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Nalaganje",
|
||||
"down": "Prenašanje",
|
||||
"temp": "Temperatura",
|
||||
"disk": "Poraba diska",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Pretok gor",
|
||||
"requests": "Trenutnih zahtev",
|
||||
"requests_failed": "Neuspešnih zahtev"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Proizvodnja",
|
||||
"battery_soc": "Baterija",
|
||||
"grid_power": "Omrežje",
|
||||
"home_power": "Poraba",
|
||||
"charge_power": "Polnilec",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,18 +117,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
"series": "Series",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"movies": "Movies",
|
||||
"missing": "Missing"
|
||||
"missing": "Missing",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"albums": "Albums"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Wanted",
|
||||
@@ -158,7 +162,8 @@
|
||||
"pihole": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Gravity",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Queries",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"memory": "Mem Usage",
|
||||
"load": "Load Avg",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,18 +88,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "Eftersöker",
|
||||
"queued": "I kö",
|
||||
"series": "Serier"
|
||||
"series": "Serier",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Eftersöker",
|
||||
"queued": "I kö",
|
||||
"movies": "Filmer",
|
||||
"missing": "Missing"
|
||||
"missing": "Missing",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Eftersöker",
|
||||
"queued": "I kö",
|
||||
"albums": "Album"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Eftersökt",
|
||||
@@ -129,7 +133,8 @@
|
||||
"pihole": {
|
||||
"blocked": "Blockerad",
|
||||
"queries": "Förfrågningar",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Gravity",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "Uppladdning",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Vänligen vänta",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,18 +111,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "కావలెను",
|
||||
"queued": "క్యూయూఎడ్",
|
||||
"series": "సిరీస్"
|
||||
"series": "సిరీస్",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "కావలెను",
|
||||
"queued": "క్యూయూఎడ్",
|
||||
"movies": "సినిమాలు",
|
||||
"missing": "మిస్సింగ్"
|
||||
"missing": "మిస్సింగ్",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "కావలెను",
|
||||
"queued": "క్యూయూఎడ్",
|
||||
"albums": "ఆల్బములు"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"bazarr": {
|
||||
"missingEpisodes": "ఎపిసోడ్లు లేవు",
|
||||
@@ -147,7 +151,8 @@
|
||||
"pihole": {
|
||||
"queries": "ప్రశ్నలు",
|
||||
"blocked": "నిరోధించబడింది",
|
||||
"gravity": "గురుత్వాకర్షణ"
|
||||
"gravity": "గురుత్వాకర్షణ",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "అప్లోడ్",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "సీపియూ",
|
||||
"mem": "MEM",
|
||||
"wait": "దయచేసి వేచి ఉండండి",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "మొత్తం గమనించబడింది",
|
||||
@@ -513,7 +522,9 @@
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"cpuload": "Cpu Load",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,7 +190,9 @@
|
||||
"sonarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
"series": "Series",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"readarr": {
|
||||
"queued": "Queued",
|
||||
@@ -216,12 +218,14 @@
|
||||
"wanted": "Wanted",
|
||||
"missing": "Missing",
|
||||
"queued": "Queued",
|
||||
"movies": "Movies"
|
||||
"movies": "Movies",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"albums": "Albums"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"ombi": {
|
||||
"pending": "Pending",
|
||||
@@ -242,7 +246,8 @@
|
||||
"pihole": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Gravity",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Queries",
|
||||
@@ -309,12 +314,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"address": "Address",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,13 +24,13 @@
|
||||
"used": "Kullanımda",
|
||||
"load": "Yük",
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
"temp": "Geçici",
|
||||
"max": "En Yüksek",
|
||||
"uptime": "Çalışma Süresi",
|
||||
"months": "Ay",
|
||||
"days": "Gün",
|
||||
"hours": "Saat",
|
||||
"minutes": "Dakika"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "Kullanıcılar",
|
||||
@@ -57,23 +57,23 @@
|
||||
"offline": "Çevrimdışı",
|
||||
"error": "Hata",
|
||||
"unknown": "Bilinmiyor",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
"running": "Çalışan",
|
||||
"starting": "Başlatılıyor",
|
||||
"unhealthy": "Sağlıksız",
|
||||
"not_found": "Bulunamadı",
|
||||
"exited": "Durduruldu",
|
||||
"partial": "Parçalı",
|
||||
"healthy": "Sağlık"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Oynatılıyor",
|
||||
"transcoding": "Dönüştürülüyor",
|
||||
"bitrate": "Bit Oranı",
|
||||
"no_active": "Aktif akış yok",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
"movies": "Filmler",
|
||||
"series": "Diziler",
|
||||
"episodes": "Bölümler",
|
||||
"songs": "Şarkılar"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Oynatılıyor",
|
||||
@@ -90,7 +90,7 @@
|
||||
"streams": "Aktif Akış",
|
||||
"movies": "Filmler",
|
||||
"tv": "TV Showları",
|
||||
"albums": "Albums"
|
||||
"albums": "Albümler"
|
||||
},
|
||||
"sabnzbd": {
|
||||
"rate": "Oran",
|
||||
@@ -117,18 +117,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "Aranan",
|
||||
"queued": "Kuyrukta",
|
||||
"series": "Seriler"
|
||||
"series": "Seriler",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Aranan",
|
||||
"queued": "Kuyrukta",
|
||||
"movies": "Filmler",
|
||||
"missing": "Kayıp"
|
||||
"missing": "Kayıp",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Aranan",
|
||||
"queued": "Kuyrukta",
|
||||
"albums": "Albümler"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Aranan",
|
||||
@@ -158,7 +162,8 @@
|
||||
"pihole": {
|
||||
"queries": "Sorgular",
|
||||
"blocked": "Engellenen",
|
||||
"gravity": "Yer Çekimi"
|
||||
"gravity": "Yer Çekimi",
|
||||
"blocked_percent": "Engellenen %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Sorgular",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "İşlemci",
|
||||
"mem": "Bellek",
|
||||
"wait": "Lütfen bekleyiniz",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"temp": "Sıcaklık",
|
||||
"uptime": "Çalışma Süresi",
|
||||
"days": "Gün",
|
||||
"hours": "Saat",
|
||||
"load": "Yük",
|
||||
"warn": "Uyarı",
|
||||
"total": "Toplam",
|
||||
"free": "Boş",
|
||||
"used": "Kullanım"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Toplam Gözlenen",
|
||||
@@ -306,9 +315,9 @@
|
||||
"bookmark": "Yer İmi",
|
||||
"service": "Hizmet",
|
||||
"search": "Ara",
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
"custom": "Özel",
|
||||
"visit": "Ziyaret",
|
||||
"url": "Link"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "Sistem",
|
||||
@@ -379,14 +388,14 @@
|
||||
"deluge": {
|
||||
"download": "İndir",
|
||||
"upload": "Yükle",
|
||||
"leech": "Leech",
|
||||
"leech": "Tüketici",
|
||||
"seed": "Tohum"
|
||||
},
|
||||
"flood": {
|
||||
"download": "İndir",
|
||||
"upload": "Yükle",
|
||||
"leech": "Leech",
|
||||
"seed": "Tohum"
|
||||
"leech": "Tüketici",
|
||||
"seed": "Sağlayıcı"
|
||||
},
|
||||
"tdarr": {
|
||||
"queue": "Sıra",
|
||||
@@ -416,7 +425,7 @@
|
||||
"downloadstation": {
|
||||
"download": "İndir",
|
||||
"upload": "Yükle",
|
||||
"leech": "Leech",
|
||||
"leech": "Tüketici",
|
||||
"seed": "Tohum"
|
||||
},
|
||||
"mikrotik": {
|
||||
@@ -443,7 +452,7 @@
|
||||
"layers": "Katmanlar"
|
||||
},
|
||||
"medusa": {
|
||||
"wanted": "Wanted",
|
||||
"wanted": "Aranan",
|
||||
"queued": "Kuyrukta",
|
||||
"series": "Seri"
|
||||
},
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -547,11 +558,11 @@
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
"players": "Oyuncular",
|
||||
"version": "Versiyon",
|
||||
"status": "Durum",
|
||||
"up": "Çevrimiçi",
|
||||
"down": "Çevrimdışı"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
@@ -570,17 +581,68 @@
|
||||
"switches_on": "Switches On"
|
||||
},
|
||||
"freshrss": {
|
||||
"subscriptions": "Subscriptions",
|
||||
"unread": "Unread"
|
||||
"subscriptions": "Abonelikler",
|
||||
"unread": "Okunmamış"
|
||||
},
|
||||
"channelsdvrserver": {
|
||||
"shows": "Shows",
|
||||
"recordings": "Recordings",
|
||||
"scheduled": "Scheduled",
|
||||
"passes": "Passes"
|
||||
"shows": "Diziler",
|
||||
"recordings": "Kayıtlar",
|
||||
"scheduled": "Planlanmış",
|
||||
"passes": "Geçilenler"
|
||||
},
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"never": "Asla",
|
||||
"last_seen": "Son Görülme",
|
||||
"now": "Şimdi",
|
||||
"years": "{{number}} Yıl",
|
||||
"weeks": "{{number}} Hafta",
|
||||
"days": "{{number}} Gün",
|
||||
"hours": "{{number}} Saat",
|
||||
"minutes": "{{number}} Dakika",
|
||||
"seconds": "{{number}} Saniye",
|
||||
"ago": "{{value}} Önce",
|
||||
"address": "Adres",
|
||||
"expires": "Geciken"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "İşlemci Kullanımı",
|
||||
"memUsage": "Bellek Kullanımı",
|
||||
"systemTempC": "Sistem Sıcaklığı",
|
||||
"poolUsage": "Havuz Kullanımı",
|
||||
"volumeUsage": "Alan Kullanımı",
|
||||
"invalid": "Geçersiz"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Akış",
|
||||
"requests": "Anlık İstekler",
|
||||
"requests_failed": "Başarısız İstekler"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Üretim",
|
||||
"battery_soc": "Batarya",
|
||||
"grid_power": "Güç",
|
||||
"home_power": "Tüketim",
|
||||
"charge_power": "Şarj",
|
||||
"watt_hour": "Watt/Saat"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Toplam",
|
||||
"connected": "Bağlandı",
|
||||
"new_devices": "Yeni Cihazlar",
|
||||
"down_alerts": "Düşme Uyarıları"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
"total": "Всього",
|
||||
"free": "Вільно",
|
||||
"used": "Використано",
|
||||
"load": "Навантаження",
|
||||
"load": "Завантаження",
|
||||
"mem": "Пам'ять",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
@@ -232,18 +232,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "Розшукується",
|
||||
"queued": "У черзі",
|
||||
"series": "Серії"
|
||||
"series": "Серії",
|
||||
"queue": "Черга",
|
||||
"unknown": "Невідомо"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Розшукується",
|
||||
"missing": "Відсутній",
|
||||
"queued": "У черзі",
|
||||
"movies": "Фільми"
|
||||
"movies": "Фільми",
|
||||
"queue": "Черга",
|
||||
"unknown": "Невідомо"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Розшукується",
|
||||
"queued": "У черзі",
|
||||
"albums": "Альбоми"
|
||||
"artists": "Виконавці"
|
||||
},
|
||||
"traefik": {
|
||||
"middleware": "Проміжне програмне забезпечення",
|
||||
@@ -277,7 +281,8 @@
|
||||
"pihole": {
|
||||
"queries": "Запити",
|
||||
"blocked": "Заблоковано",
|
||||
"gravity": "Гравітація"
|
||||
"gravity": "Гравітація",
|
||||
"blocked_percent": "Заблоковано %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Запити",
|
||||
@@ -357,12 +362,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "Пам'ять",
|
||||
"wait": "Будь ласка, зачекайте",
|
||||
"temp": "TEMP",
|
||||
"uptime": "Відправка",
|
||||
"days": "д",
|
||||
"hours": "г"
|
||||
"hours": "г",
|
||||
"load": "Завантаження",
|
||||
"warn": "Увага",
|
||||
"total": "Всього",
|
||||
"free": "Вільний",
|
||||
"used": "Використовується"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Закладка",
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Навантаження Cpu",
|
||||
"memoryusage": "Використання пам'яті",
|
||||
"freespace": "Вільного місця",
|
||||
"activeusers": "Активні користувачі"
|
||||
"activeusers": "Активні користувачі",
|
||||
"numfiles": "Файли",
|
||||
"numshares": "Спільні елементи"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Статус",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Спостереження",
|
||||
"updates": "Оновлення"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Адреса",
|
||||
"expires": "Дійсний до",
|
||||
"never": "Ніколи",
|
||||
"last_seen": "Востаннє у мережі",
|
||||
"now": "Зараз",
|
||||
"years": "{{number}}р",
|
||||
"weeks": "{{number}}тиж",
|
||||
"days": "{{number}}д",
|
||||
"hours": "{{number}}год",
|
||||
"minutes": "{{number}}хв",
|
||||
"seconds": "{{number}}с",
|
||||
"ago": "{{value}} тому"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "Використання CPU",
|
||||
"memUsage": "Використання пам'яті",
|
||||
"systemTempC": "Температура системи",
|
||||
"poolUsage": "Використання пулу",
|
||||
"volumeUsage": "Гучність",
|
||||
"invalid": "Недійсний"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Середнє завантаження",
|
||||
"memory": "Використання пам'яті",
|
||||
"wanStatus": "Статус WAN",
|
||||
"up": "Вгору",
|
||||
"down": "Вниз",
|
||||
"temp": "Температура",
|
||||
"disk": "Використання диска",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Потоки",
|
||||
"requests": "Поточні запити",
|
||||
"requests_failed": "Невдалі запити"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Виробництво",
|
||||
"battery_soc": "Батарея",
|
||||
"grid_power": "Сітка",
|
||||
"home_power": "Споживання",
|
||||
"charge_power": "Зарядний пристрій",
|
||||
"watt_hour": "Вт/год"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Всього",
|
||||
"connected": "Підключено",
|
||||
"new_devices": "Нові пристрої",
|
||||
"down_alerts": "Сповіщення про збій"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,13 +66,17 @@
|
||||
"sonarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
"series": "Series",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"movies": "Phim",
|
||||
"missing": "Missing"
|
||||
"missing": "Missing",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Đang tìm",
|
||||
@@ -92,7 +96,8 @@
|
||||
"pihole": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "Gravity",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "Upload",
|
||||
@@ -172,7 +177,7 @@
|
||||
"lidarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"albums": "Albums"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Queries",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"hours": "{{number}}h",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,18 +94,22 @@
|
||||
"sonarr": {
|
||||
"wanted": "想睇",
|
||||
"queued": "排緊隊",
|
||||
"series": "電視劇"
|
||||
"series": "電視劇",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "想睇",
|
||||
"queued": "排緊隊",
|
||||
"movies": "電影",
|
||||
"missing": "Missing"
|
||||
"missing": "Missing",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "想睇",
|
||||
"queued": "排緊隊",
|
||||
"albums": "專輯"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "想睇",
|
||||
@@ -135,7 +139,8 @@
|
||||
"pihole": {
|
||||
"queries": "查詢",
|
||||
"blocked": "封鎖",
|
||||
"gravity": "重力"
|
||||
"gravity": "重力",
|
||||
"blocked_percent": "Blocked %"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "查詢",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"hours": "h",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -513,7 +522,9 @@
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
},
|
||||
"kopia": {
|
||||
"lastrun": "Last Run",
|
||||
@@ -582,5 +593,56 @@
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "Address",
|
||||
"expires": "Expires",
|
||||
"never": "Never",
|
||||
"last_seen": "Last Seen",
|
||||
"now": "Now",
|
||||
"years": "{{number}}y",
|
||||
"weeks": "{{number}}w",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} Ago"
|
||||
},
|
||||
"qnap": {
|
||||
"systemTempC": "System Temp",
|
||||
"poolUsage": "Pool Usage",
|
||||
"cpuUsage": "CPU Usage",
|
||||
"memUsage": "MEM Usage",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "Load Avg",
|
||||
"memory": "Mem Usage",
|
||||
"wanStatus": "WAN Status",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"temp": "Temp",
|
||||
"disk": "Disk Usage",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "Upstreams",
|
||||
"requests": "Current requests",
|
||||
"requests_failed": "Failed requests"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"cpu": "处理器",
|
||||
"offline": "离线",
|
||||
"error": "错误",
|
||||
"unknown": "未知",
|
||||
"unknown": "未知问题",
|
||||
"starting": "启动中",
|
||||
"unhealthy": "不健康的",
|
||||
"not_found": "未找到",
|
||||
@@ -66,13 +66,17 @@
|
||||
"sonarr": {
|
||||
"wanted": "想看",
|
||||
"queued": "排队",
|
||||
"series": "系列"
|
||||
"series": "系列",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "想看",
|
||||
"queued": "队列",
|
||||
"movies": "电影",
|
||||
"missing": "丢失"
|
||||
"missing": "丢失",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "订阅",
|
||||
@@ -92,7 +96,8 @@
|
||||
"pihole": {
|
||||
"queries": "查询",
|
||||
"blocked": "阻止",
|
||||
"gravity": "重力"
|
||||
"gravity": "重力",
|
||||
"blocked_percent": "拦截 %"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "上传",
|
||||
@@ -124,7 +129,7 @@
|
||||
"pending": "待办",
|
||||
"approved": "已批准",
|
||||
"available": "可用",
|
||||
"processing": "Processing"
|
||||
"processing": "处理中"
|
||||
},
|
||||
"sabnzbd": {
|
||||
"rate": "速率",
|
||||
@@ -172,7 +177,7 @@
|
||||
"lidarr": {
|
||||
"wanted": "订阅",
|
||||
"queued": "队列",
|
||||
"albums": "相册"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "查询",
|
||||
@@ -233,12 +238,16 @@
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "处理器",
|
||||
"mem": "内存",
|
||||
"wait": "请稍等",
|
||||
"temp": "温度",
|
||||
"uptime": "运行时间",
|
||||
"days": "天",
|
||||
"hours": "时"
|
||||
"hours": "时",
|
||||
"load": "Load",
|
||||
"warn": "Warn",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "观察到的总数",
|
||||
@@ -315,7 +324,7 @@
|
||||
"updates": "更新",
|
||||
"update_available": "有可用的更新",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges": "子网桥",
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "待定中",
|
||||
@@ -328,8 +337,8 @@
|
||||
"indexers": "索引器"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "以扫描",
|
||||
"containers_updated": "以升级",
|
||||
"containers_scanned": "已扫描",
|
||||
"containers_updated": "已升级",
|
||||
"containers_failed": "失败"
|
||||
},
|
||||
"tubearchivist": {
|
||||
@@ -355,8 +364,8 @@
|
||||
"total": "Total"
|
||||
},
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"public_ip": "公网 IP",
|
||||
"region": "区域",
|
||||
"country": "国家"
|
||||
},
|
||||
"hdhomerun": {
|
||||
@@ -420,10 +429,10 @@
|
||||
"seed": "做种"
|
||||
},
|
||||
"mikrotik": {
|
||||
"cpuLoad": "处理器负载",
|
||||
"memoryUsed": "内存使用",
|
||||
"cpuLoad": "处理器",
|
||||
"memoryUsed": "内存",
|
||||
"uptime": "运行时间",
|
||||
"numberOfLeases": "已连接"
|
||||
"numberOfLeases": "租约"
|
||||
},
|
||||
"xteve": {
|
||||
"streams_all": "所有播放活动",
|
||||
@@ -431,15 +440,15 @@
|
||||
"streams_xepg": "XEPG 频道"
|
||||
},
|
||||
"opnsense": {
|
||||
"cpu": "处理器负载",
|
||||
"memory": "空闲内存",
|
||||
"cpu": "处理器",
|
||||
"memory": "内存",
|
||||
"wanUpload": "WAN上传",
|
||||
"wanDownload": "WAN下载"
|
||||
},
|
||||
"moonraker": {
|
||||
"printer_state": "打印机状态",
|
||||
"print_status": "打印状态",
|
||||
"print_progress": "Progress",
|
||||
"print_progress": "打印进程",
|
||||
"layers": "层"
|
||||
},
|
||||
"medusa": {
|
||||
@@ -448,14 +457,14 @@
|
||||
"series": "Series"
|
||||
},
|
||||
"octoprint": {
|
||||
"printer_state": "Status",
|
||||
"printer_state": "打印机状态",
|
||||
"temp_tool": "喷头温度",
|
||||
"temp_bed": "平台温度",
|
||||
"job_completion": "完成度"
|
||||
},
|
||||
"cloudflared": {
|
||||
"origin_ip": "源IP",
|
||||
"status": "Status"
|
||||
"status": "状态"
|
||||
},
|
||||
"proxmoxbackupserver": {
|
||||
"datastore_usage": "数据存储",
|
||||
@@ -510,10 +519,12 @@
|
||||
"alertstriggered": "触发的警报"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "处理器负载",
|
||||
"memoryusage": "内存占用",
|
||||
"cpuload": "处理器",
|
||||
"memoryusage": "内存",
|
||||
"freespace": "剩余空间",
|
||||
"activeusers": "活跃用户"
|
||||
"activeusers": "活跃用户",
|
||||
"numfiles": "Files",
|
||||
"numshares": "共享项目"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "状态",
|
||||
@@ -542,12 +553,12 @@
|
||||
"nodes": "节点"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "目标离线",
|
||||
"targets_up": "目标上线",
|
||||
"targets_down": "目标在线",
|
||||
"targets_total": "总目标"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "播放中",
|
||||
"players": "玩家",
|
||||
"version": "版本",
|
||||
"status": "状态",
|
||||
"up": "在线的",
|
||||
@@ -565,9 +576,9 @@
|
||||
"booksDuration": "持续时间"
|
||||
},
|
||||
"homeassistant": {
|
||||
"people_home": "People Home",
|
||||
"lights_on": "Lights On",
|
||||
"switches_on": "Switches On"
|
||||
"people_home": "房间",
|
||||
"lights_on": "照明开",
|
||||
"switches_on": "开关开"
|
||||
},
|
||||
"freshrss": {
|
||||
"subscriptions": "订阅",
|
||||
@@ -577,10 +588,61 @@
|
||||
"shows": "节目",
|
||||
"recordings": "录像",
|
||||
"scheduled": "已计划的",
|
||||
"passes": "Passes"
|
||||
"passes": "通行证"
|
||||
},
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
"monitoring": "监测中",
|
||||
"updates": "可更新"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "地址",
|
||||
"expires": "失效",
|
||||
"never": "从不",
|
||||
"last_seen": "最后上线",
|
||||
"days": "{{number}}d",
|
||||
"hours": "{{number}}h",
|
||||
"minutes": "{{number}}m",
|
||||
"seconds": "{{number}}s",
|
||||
"ago": "{{value}} 以前",
|
||||
"now": "现在",
|
||||
"years": "{{number}}年",
|
||||
"weeks": "{{number}}周"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "处理器",
|
||||
"memUsage": "内存",
|
||||
"systemTempC": "系统温度",
|
||||
"poolUsage": "存储池",
|
||||
"volumeUsage": "Volume Usage",
|
||||
"invalid": "Invalid"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "平均负载",
|
||||
"memory": "内存",
|
||||
"wanStatus": "WAN 状态",
|
||||
"up": "上传",
|
||||
"down": "下载",
|
||||
"temp": "温度",
|
||||
"disk": "磁盘",
|
||||
"wanIP": "WAN IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "上游",
|
||||
"requests": "当前请求",
|
||||
"requests_failed": "失败请求"
|
||||
},
|
||||
"evcc": {
|
||||
"pv_power": "Production",
|
||||
"battery_soc": "Battery",
|
||||
"grid_power": "Grid",
|
||||
"home_power": "Consumption",
|
||||
"charge_power": "Charger",
|
||||
"watt_hour": "Wh"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "Total",
|
||||
"connected": "Connected",
|
||||
"new_devices": "New Devices",
|
||||
"down_alerts": "Down Alerts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"information": "資訊",
|
||||
"url": "網址",
|
||||
"raw_error": "原始錯誤",
|
||||
"response_data": "回復數據"
|
||||
"response_data": "回應資料"
|
||||
},
|
||||
"weather": {
|
||||
"current": "目前位置",
|
||||
@@ -21,24 +21,24 @@
|
||||
"mem": "記憶體",
|
||||
"cpu": "處理器",
|
||||
"error": "錯誤",
|
||||
"unknown": "未知的",
|
||||
"unknown": "未知",
|
||||
"running": "執行中",
|
||||
"starting": "啟動中",
|
||||
"unhealthy": "不健康的",
|
||||
"not_found": "未找到",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "健康的"
|
||||
"exited": "已退出",
|
||||
"partial": "部分",
|
||||
"healthy": "健康"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "正在播放",
|
||||
"transcoding": "轉碼",
|
||||
"bitrate": "位元率",
|
||||
"no_active": "無播放活動",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
"movies": "電影",
|
||||
"series": "影集",
|
||||
"episodes": "集",
|
||||
"songs": "曲目"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "正在播放",
|
||||
@@ -61,13 +61,13 @@
|
||||
"load": "負載",
|
||||
"cpu": "CPU",
|
||||
"mem": "記憶體",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
"temp": "溫度",
|
||||
"max": "最大",
|
||||
"uptime": "運作時間",
|
||||
"months": "月",
|
||||
"days": "日",
|
||||
"hours": "時",
|
||||
"minutes": "分"
|
||||
},
|
||||
"nzbget": {
|
||||
"rate": "速率",
|
||||
@@ -88,17 +88,21 @@
|
||||
"movies": "電影",
|
||||
"wanted": "關注中",
|
||||
"queued": "已加入佇列",
|
||||
"missing": "缺少"
|
||||
"missing": "缺少",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"sonarr": {
|
||||
"wanted": "關注中",
|
||||
"queued": "已加入佇列",
|
||||
"series": "影集"
|
||||
"series": "影集",
|
||||
"queue": "Queue",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "關注中",
|
||||
"queued": "已加入佇列",
|
||||
"books": "書籍"
|
||||
"books": "叢書"
|
||||
},
|
||||
"ombi": {
|
||||
"pending": "待下載",
|
||||
@@ -114,7 +118,8 @@
|
||||
"pihole": {
|
||||
"queries": "查詢",
|
||||
"blocked": "已阻擋",
|
||||
"gravity": "Gravity"
|
||||
"gravity": "阻擋清單",
|
||||
"blocked_percent": "已封鎖 %"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "上行速率",
|
||||
@@ -122,8 +127,8 @@
|
||||
"ping": "Ping"
|
||||
},
|
||||
"portainer": {
|
||||
"running": "運行中",
|
||||
"stopped": "未運行",
|
||||
"running": "運作中",
|
||||
"stopped": "已停止",
|
||||
"total": "全部"
|
||||
},
|
||||
"traefik": {
|
||||
@@ -162,7 +167,7 @@
|
||||
"seed": "已完成下載"
|
||||
},
|
||||
"jackett": {
|
||||
"configured": "已配置",
|
||||
"configured": "已設置",
|
||||
"errored": "發生錯誤"
|
||||
},
|
||||
"bazarr": {
|
||||
@@ -172,7 +177,7 @@
|
||||
"lidarr": {
|
||||
"wanted": "關注中",
|
||||
"queued": "已加入佇列",
|
||||
"albums": "專輯"
|
||||
"artists": "Artists"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "查詢",
|
||||
@@ -199,8 +204,8 @@
|
||||
},
|
||||
"authentik": {
|
||||
"users": "使用者",
|
||||
"loginsLast24H": "登錄(24h)",
|
||||
"failedLoginsLast24H": "登錄失敗(24h)"
|
||||
"loginsLast24H": "登入 (過去 24 小時)",
|
||||
"failedLoginsLast24H": "登入失敗 (過去 24 小時)"
|
||||
},
|
||||
"proxmox": {
|
||||
"mem": "記憶體",
|
||||
@@ -210,42 +215,46 @@
|
||||
},
|
||||
"unifi": {
|
||||
"users": "使用者",
|
||||
"uptime": "系統運行時間",
|
||||
"uptime": "系統運作時間",
|
||||
"days": "天",
|
||||
"wan": "WAN",
|
||||
"lan_users": "LAN使用者",
|
||||
"wlan_users": "WLAN使用者",
|
||||
"lan_users": "有線使用者",
|
||||
"wlan_users": "無線使用者",
|
||||
"up": "上線",
|
||||
"down": "離線",
|
||||
"wait": "請稍後",
|
||||
"lan": "LAN",
|
||||
"wlan": "WLAN",
|
||||
"devices": "設備",
|
||||
"lan_devices": "LAN設備",
|
||||
"wlan_devices": "WLAN設備",
|
||||
"lan_devices": "有線設備",
|
||||
"wlan_devices": "無線設備",
|
||||
"empty_data": "子系統狀態未知"
|
||||
},
|
||||
"plex": {
|
||||
"streams": "正在播放",
|
||||
"movies": "電影",
|
||||
"tv": "影集",
|
||||
"albums": "Albums"
|
||||
"albums": "專輯"
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "記憶體",
|
||||
"wait": "請稍後",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
"temp": "溫度",
|
||||
"uptime": "運行時間",
|
||||
"days": "天",
|
||||
"hours": "時",
|
||||
"free": "未使用",
|
||||
"used": "已使用",
|
||||
"load": "負載量",
|
||||
"warn": "警告",
|
||||
"total": "總共"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "總監測數",
|
||||
"diffsDetected": "偵測到的變更"
|
||||
},
|
||||
"wmo": {
|
||||
"0-day": "晴",
|
||||
"0-day": "晴天",
|
||||
"0-night": "晴朗",
|
||||
"71-day": "小雪",
|
||||
"71-night": "小雪",
|
||||
@@ -307,8 +316,8 @@
|
||||
"service": "服務",
|
||||
"search": "搜尋",
|
||||
"custom": "自訂",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
"visit": "造訪",
|
||||
"url": "網址"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "系統",
|
||||
@@ -317,9 +326,9 @@
|
||||
"up_to_date": "已更新至最新",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
"up": "在線",
|
||||
"pending": "處理中",
|
||||
"down": "離線"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "已核准",
|
||||
@@ -350,7 +359,7 @@
|
||||
},
|
||||
"pyload": {
|
||||
"speed": "速度",
|
||||
"active": "運行中",
|
||||
"active": "執行中",
|
||||
"queue": "佇列",
|
||||
"total": "全部"
|
||||
},
|
||||
@@ -479,7 +488,7 @@
|
||||
"komga": {
|
||||
"libraries": "文庫",
|
||||
"series": "叢刊",
|
||||
"books": "書刊"
|
||||
"books": "叢書"
|
||||
},
|
||||
"mylar": {
|
||||
"series": "系列",
|
||||
@@ -513,19 +522,21 @@
|
||||
"cpuload": "處理器負載",
|
||||
"memoryusage": "記憶體用量",
|
||||
"freespace": "可用空間",
|
||||
"activeusers": "活躍用戶"
|
||||
"activeusers": "活躍用戶",
|
||||
"numfiles": "檔案",
|
||||
"numshares": "已分享"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "狀態",
|
||||
"size": "檔案大小",
|
||||
"lastrun": "上次運行",
|
||||
"nextrun": "下次運行",
|
||||
"lastrun": "上次執行",
|
||||
"nextrun": "下次執行",
|
||||
"failed": "失敗"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
"active_workers": "在線工作程序",
|
||||
"total_workers": "總工作程序",
|
||||
"records_total": "佇列長度"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "新建立",
|
||||
@@ -538,49 +549,100 @@
|
||||
"never": "尚未檢查"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
"servers": "伺服器",
|
||||
"nodes": "節點"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
"targets_up": "目標上線",
|
||||
"targets_down": "目標離線",
|
||||
"targets_total": "目標總數"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
"players": "玩家",
|
||||
"version": "版本",
|
||||
"status": "狀態",
|
||||
"up": "上線",
|
||||
"down": "離線"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
"gross_percent_today": "今日",
|
||||
"gross_percent_1y": "一年",
|
||||
"gross_percent_max": "所有時間"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
"podcasts": "播客",
|
||||
"books": "叢書",
|
||||
"podcastsDuration": "歷時",
|
||||
"booksDuration": "歷時"
|
||||
},
|
||||
"homeassistant": {
|
||||
"people_home": "People Home",
|
||||
"lights_on": "Lights On",
|
||||
"switches_on": "Switches On"
|
||||
"people_home": "在家人數",
|
||||
"lights_on": "燈亮著",
|
||||
"switches_on": "開關開著"
|
||||
},
|
||||
"freshrss": {
|
||||
"subscriptions": "Subscriptions",
|
||||
"unread": "Unread"
|
||||
"subscriptions": "訂閱",
|
||||
"unread": "未讀"
|
||||
},
|
||||
"channelsdvrserver": {
|
||||
"shows": "Shows",
|
||||
"recordings": "Recordings",
|
||||
"scheduled": "Scheduled",
|
||||
"passes": "Passes"
|
||||
"shows": "節目",
|
||||
"recordings": "錄影",
|
||||
"scheduled": "已排定",
|
||||
"passes": "通行證"
|
||||
},
|
||||
"whatsupdocker": {
|
||||
"monitoring": "Monitoring",
|
||||
"updates": "Updates"
|
||||
"monitoring": "監測中",
|
||||
"updates": "可更新"
|
||||
},
|
||||
"tailscale": {
|
||||
"address": "位址",
|
||||
"expires": "已失效",
|
||||
"never": "未曾",
|
||||
"last_seen": "上次連線",
|
||||
"now": "現在",
|
||||
"years": "{{number}} 年",
|
||||
"hours": "{{number}} 小時",
|
||||
"minutes": "{{number}} 分鐘",
|
||||
"seconds": "{{number}} 秒",
|
||||
"ago": "{{value}} 前",
|
||||
"weeks": "{{number}} 週",
|
||||
"days": "{{number}} 天"
|
||||
},
|
||||
"qnap": {
|
||||
"cpuUsage": "CPU 使用率",
|
||||
"memUsage": "記憶體使用率",
|
||||
"systemTempC": "系統溫度",
|
||||
"poolUsage": "儲存池使用率",
|
||||
"volumeUsage": "儲存區用量",
|
||||
"invalid": "無效的"
|
||||
},
|
||||
"pfsense": {
|
||||
"load": "平均負載量",
|
||||
"memory": "記憶體使用率",
|
||||
"wanStatus": "網際網路狀態",
|
||||
"up": "已連線",
|
||||
"down": "已離線",
|
||||
"temp": "溫度",
|
||||
"disk": "硬碟使用率",
|
||||
"wanIP": "網際網路 IP"
|
||||
},
|
||||
"caddy": {
|
||||
"upstreams": "上行",
|
||||
"requests": "目前請求數",
|
||||
"requests_failed": "失敗請求"
|
||||
},
|
||||
"evcc": {
|
||||
"grid_power": "電網",
|
||||
"home_power": "電源使用率",
|
||||
"charge_power": "充電",
|
||||
"pv_power": "正式環境",
|
||||
"battery_soc": "電池",
|
||||
"watt_hour": "瓦時 (Wh)"
|
||||
},
|
||||
"pialert": {
|
||||
"total": "全部",
|
||||
"connected": "已連線",
|
||||
"new_devices": "新裝置",
|
||||
"down_alerts": "離線警告"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ export default function List({ bookmarks }) {
|
||||
return (
|
||||
<ul className="mt-3 flex flex-col">
|
||||
{bookmarks.map((bookmark) => (
|
||||
<Item key={bookmark.name} bookmark={bookmark} />
|
||||
<Item key={`${bookmark.name}-${bookmark.href}`} bookmark={bookmark} />
|
||||
))}
|
||||
</ul>
|
||||
);
|
||||
|
||||
@@ -161,7 +161,7 @@ export default function QuickLaunch({servicesAndBookmarks, searchString, setSear
|
||||
)} type="text" autoCorrect="false" ref={searchField} value={searchString} onChange={handleSearchChange} onKeyDown={handleSearchKeyDown} />
|
||||
{results.length > 0 && <ul className="max-h-[60vh] overflow-y-auto m-2">
|
||||
{results.map((r, i) => (
|
||||
<li key={r.container ?? r.app ?? r.name}>
|
||||
<li key={r.container ?? r.app ?? `${r.name}-${r.href}`}>
|
||||
<button type="button" data-index={i} onMouseEnter={handleItemHover} className={classNames(
|
||||
"flex flex-row w-full items-center justify-between rounded-md text-sm md:text-xl py-2 px-4 cursor-pointer text-theme-700 dark:text-theme-200",
|
||||
i === currentItemIndex && "bg-theme-300/50 dark:bg-theme-700/50",
|
||||
|
||||
@@ -24,6 +24,8 @@ export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "log
|
||||
width,
|
||||
height,
|
||||
objectFit: "contain",
|
||||
maxHeight: "100%",
|
||||
maxWidth: "100%",
|
||||
}}
|
||||
alt={alt}
|
||||
/>
|
||||
@@ -46,7 +48,7 @@ export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "log
|
||||
maxWidth: '100%',
|
||||
maxHeight: '100%',
|
||||
background: settings.iconStyle === "theme" ?
|
||||
`rgb(var(--color-${ theme === "dark" ? 300 : 900 }) / var(--tw-text-opacity))` :
|
||||
`rgb(var(--color-${ theme === "dark" ? 300 : 900 }) / var(--tw-text-opacity, 1))` :
|
||||
"linear-gradient(180deg, rgb(var(--color-logo-start)), rgb(var(--color-logo-stop)))",
|
||||
mask: `url(${iconSource}) no-repeat center / contain`,
|
||||
WebkitMask: `url(${iconSource}) no-repeat center / contain`,
|
||||
@@ -55,7 +57,27 @@ export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "log
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// fallback to dashboard-icons
|
||||
if (icon.endsWith(".svg")) {
|
||||
const iconName = icon.replace(".svg", "");
|
||||
return (
|
||||
<Image
|
||||
src={`https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/svg/${iconName}.svg`}
|
||||
width={width}
|
||||
height={height}
|
||||
style={{
|
||||
width,
|
||||
height,
|
||||
objectFit: "contain",
|
||||
maxHeight: "100%",
|
||||
maxWidth: "100%"
|
||||
}}
|
||||
alt={alt}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
const iconName = icon.replace(".png", "");
|
||||
return (
|
||||
<Image
|
||||
@@ -66,6 +88,8 @@ export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "log
|
||||
width,
|
||||
height,
|
||||
objectFit: "contain",
|
||||
maxHeight: "100%",
|
||||
maxWidth: "100%"
|
||||
}}
|
||||
alt={alt}
|
||||
/>
|
||||
|
||||
@@ -3,7 +3,7 @@ import classNames from "classnames";
|
||||
import List from "components/services/list";
|
||||
import ResolvedIcon from "components/resolvedicon";
|
||||
|
||||
export default function ServicesGroup({ services, layout, fiveColumns }) {
|
||||
export default function ServicesGroup({ group, services, layout, fiveColumns }) {
|
||||
return (
|
||||
<div
|
||||
key={services.name}
|
||||
@@ -21,7 +21,7 @@ export default function ServicesGroup({ services, layout, fiveColumns }) {
|
||||
}
|
||||
<h2 className="text-theme-800 dark:text-theme-300 text-xl font-medium">{services.name}</h2>
|
||||
</div>
|
||||
<List services={services.services} layout={layout} />
|
||||
<List group={group} services={services.services} layout={layout} />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import Kubernetes from "widgets/kubernetes/component";
|
||||
import { SettingsContext } from "utils/contexts/settings";
|
||||
import ResolvedIcon from "components/resolvedicon";
|
||||
|
||||
export default function Item({ service }) {
|
||||
export default function Item({ service, group }) {
|
||||
const hasLink = service.href && service.href !== "#";
|
||||
const { settings } = useContext(SettingsContext);
|
||||
const showStats = (service.showStats === false) ? false : settings.showStats;
|
||||
@@ -77,7 +77,7 @@ export default function Item({ service }) {
|
||||
<div className="absolute top-0 right-0 w-1/2 flex flex-row justify-end gap-2 mr-2">
|
||||
{service.ping && (
|
||||
<div className="flex-shrink-0 flex items-center justify-center cursor-pointer">
|
||||
<Ping service={service} />
|
||||
<Ping group={group} service={service.name} />
|
||||
<span className="sr-only">Ping status</span>
|
||||
</div>
|
||||
)}
|
||||
|
||||
@@ -14,7 +14,7 @@ const columnMap = [
|
||||
"grid-cols-1 md:grid-cols-2 lg:grid-cols-8",
|
||||
];
|
||||
|
||||
export default function List({ services, layout }) {
|
||||
export default function List({ group, services, layout }) {
|
||||
return (
|
||||
<ul
|
||||
className={classNames(
|
||||
@@ -23,7 +23,7 @@ export default function List({ services, layout }) {
|
||||
)}
|
||||
>
|
||||
{services.map((service) => (
|
||||
<Item key={service.container ?? service.app ?? service.name} service={service} />
|
||||
<Item key={service.container ?? service.app ?? service.name} service={service} group={group} />
|
||||
))}
|
||||
</ul>
|
||||
);
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { useTranslation } from "react-i18next";
|
||||
import useSWR from "swr";
|
||||
|
||||
export default function Ping({ service }) {
|
||||
export default function Ping({ group, service }) {
|
||||
const { t } = useTranslation();
|
||||
const { data, error } = useSWR(`/api/ping?${new URLSearchParams({ping: service.ping}).toString()}`, {
|
||||
const { data, error } = useSWR(`/api/ping?${new URLSearchParams({ group, service }).toString()}`, {
|
||||
refreshInterval: 30000
|
||||
});
|
||||
|
||||
@@ -23,7 +23,7 @@ export default function Ping({ service }) {
|
||||
);
|
||||
}
|
||||
|
||||
const statusText = `${service.ping}: HTTP status ${data.status}`;
|
||||
const statusText = `${service}: HTTP status ${data.status}`;
|
||||
|
||||
if (data.status > 403) {
|
||||
return (
|
||||
@@ -35,7 +35,7 @@ export default function Ping({ service }) {
|
||||
|
||||
return (
|
||||
<div className="w-auto px-1.5 py-0.5 text-center bg-theme-500/10 dark:bg-theme-900/50 rounded-b-[3px] overflow-hidden" title={statusText}>
|
||||
<div className="text-[8px] font-bold text-emerald-500/80">{t("common.ms", { value: data.latency, style: "unit", unit: "millisecond", unitDisplay: "narrow", maximumFractionDigits: 0 })}</div>
|
||||
<div className="text-[8px] font-bold text-emerald-500/80">{t("common.ms", { value: data.latency, style: "unit", unit: "millisecond", maximumFractionDigits: 0 })}</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
|
||||
@@ -15,7 +15,9 @@ export default function Container({ error = false, children, service }) {
|
||||
return <Error service={service} error={error} />
|
||||
}
|
||||
|
||||
let visibleChildren = children;
|
||||
const childrenArray = Array.isArray(children) ? children : [children];
|
||||
|
||||
let visibleChildren = childrenArray;
|
||||
const fields = service?.widget?.fields;
|
||||
const type = service?.widget?.type;
|
||||
if (fields && type) {
|
||||
@@ -24,7 +26,7 @@ export default function Container({ error = false, children, service }) {
|
||||
// fields: [ "resources.cpu", "resources.mem", "field"]
|
||||
// or even
|
||||
// fields: [ "resources.cpu", "widget_type.field" ]
|
||||
visibleChildren = children?.filter(child => fields.some(field => {
|
||||
visibleChildren = childrenArray?.filter(child => fields.some(field => {
|
||||
let fullField = field;
|
||||
if (!field.includes(".")) {
|
||||
fullField = `${type}.${field}`;
|
||||
|
||||
@@ -9,10 +9,12 @@ function displayData(data) {
|
||||
return (data.type === 'Buffer') ? Buffer.from(data).toString() : JSON.stringify(data, 4);
|
||||
}
|
||||
|
||||
export default function Error({ error: err }) {
|
||||
export default function Error({ error }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { error } = err?.data ?? { error: err };
|
||||
if (error?.data?.error) {
|
||||
error = error.data.error; // eslint-disable-line no-param-reassign
|
||||
}
|
||||
|
||||
return (
|
||||
<details className="px-1 pb-1">
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
import useSWR from "swr";
|
||||
import { useContext } from "react";
|
||||
import { BiError } from "react-icons/bi";
|
||||
import { FaMemory, FaRegClock, FaThermometerHalf } from "react-icons/fa";
|
||||
import { FiCpu } from "react-icons/fi";
|
||||
import { FiCpu, FiHardDrive } from "react-icons/fi";
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import UsageBar from "../resources/usage-bar";
|
||||
|
||||
import { SettingsContext } from "utils/contexts/settings";
|
||||
|
||||
const cpuSensorLabels = ["cpu_thermal", "Core", "Tctl"];
|
||||
|
||||
function convertToFahrenheit(t) {
|
||||
@@ -14,6 +17,7 @@ function convertToFahrenheit(t) {
|
||||
|
||||
export default function Widget({ options }) {
|
||||
const { t, i18n } = useTranslation();
|
||||
const { settings } = useContext(SettingsContext);
|
||||
|
||||
const { data, error } = useSWR(
|
||||
`/api/widgets/glances?${new URLSearchParams({ lang: i18n.language, ...options }).toString()}`, {
|
||||
@@ -88,8 +92,16 @@ export default function Widget({ options }) {
|
||||
}
|
||||
const tempPercent = Math.round((mainTemp / maxTemp) * 100);
|
||||
|
||||
let disks = [];
|
||||
|
||||
if (options.disk) {
|
||||
disks = Array.isArray(options.disk)
|
||||
? options.disk.map((disk) => data.fs.find((d) => d.mnt_point === disk)).filter((d) => d)
|
||||
: [data.fs.find((d) => d.mnt_point === options.disk)].filter((d) => d);
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="flex flex-col max-w:full sm:basis-auto self-center grow-0 flex-wrap ml-4">
|
||||
<a href={options.url} target={settings.target ?? "_blank"} className="flex flex-col max-w:full sm:basis-auto self-center grow-0 flex-wrap">
|
||||
<div className="flex flex-row self-center flex-wrap justify-between">
|
||||
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
|
||||
<FiCpu className="text-theme-800 dark:text-theme-200 w-5 h-5" />
|
||||
@@ -97,7 +109,7 @@ export default function Widget({ options }) {
|
||||
<div className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">
|
||||
{t("common.number", {
|
||||
value: data.quicklook.cpu,
|
||||
value: data.cpu.total,
|
||||
style: "unit",
|
||||
unit: "percent",
|
||||
maximumFractionDigits: 0,
|
||||
@@ -105,7 +117,20 @@ export default function Widget({ options }) {
|
||||
</div>
|
||||
<div className="pr-1">{t("glances.cpu")}</div>
|
||||
</div>
|
||||
<UsageBar percent={data.quicklook.cpu} />
|
||||
{options.expanded && (
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5 pr-1">
|
||||
{t("common.number", {
|
||||
value: data.load.min15,
|
||||
style: "unit",
|
||||
unit: "percent",
|
||||
maximumFractionDigits: 0,
|
||||
})}
|
||||
</div>
|
||||
<div className="pr-1">{t("glances.load")}</div>
|
||||
</span>
|
||||
)}
|
||||
<UsageBar percent={data.cpu.total} />
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
|
||||
@@ -113,18 +138,46 @@ export default function Widget({ options }) {
|
||||
<div className="flex flex-col ml-3 text-left min-w-[85px]">
|
||||
<div className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">
|
||||
{t("common.number", {
|
||||
value: data.quicklook.mem,
|
||||
style: "unit",
|
||||
unit: "percent",
|
||||
maximumFractionDigits: 0,
|
||||
{t("common.bytes", {
|
||||
value: data.mem.free,
|
||||
maximumFractionDigits: 1,
|
||||
binary: true,
|
||||
})}
|
||||
</div>
|
||||
<div className="pr-1">{t("glances.mem")}</div>
|
||||
<div className="pr-1">{t("glances.free")}</div>
|
||||
</div>
|
||||
<UsageBar percent={data.quicklook.mem} />
|
||||
{options.expanded && (
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5 pr-1">
|
||||
{t("common.bytes", {
|
||||
value: data.mem.total,
|
||||
maximumFractionDigits: 1,
|
||||
binary: true,
|
||||
})}
|
||||
</div>
|
||||
<div className="pr-1">{t("glances.total")}</div>
|
||||
</span>
|
||||
)}
|
||||
<UsageBar percent={data.mem.percent} />
|
||||
</div>
|
||||
</div>
|
||||
{disks.map((disk) => (
|
||||
<div key={disk.mnt_point} className="flex-none flex flex-row items-center mr-3 py-1.5">
|
||||
<FiHardDrive className="text-theme-800 dark:text-theme-200 w-5 h-5" />
|
||||
<div className="flex flex-col ml-3 text-left min-w-[85px]">
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">{t("common.bytes", { value: disk.free })}</div>
|
||||
<div className="pr-1">{t("glances.free")}</div>
|
||||
</span>
|
||||
{options.expanded && (
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5 pr-1">{t("common.bytes", { value: disk.size })}</div>
|
||||
<div className="pr-1">{t("glances.total")}</div>
|
||||
</span>
|
||||
)}
|
||||
<UsageBar percent={disk.percent} />
|
||||
</div>
|
||||
</div>))}
|
||||
{options.cputemp && mainTemp > 0 &&
|
||||
(<div className="flex-none flex flex-row items-center mr-3 py-1.5">
|
||||
<FaThermometerHalf className="text-theme-800 dark:text-theme-200 w-5 h-5" />
|
||||
@@ -140,6 +193,19 @@ export default function Widget({ options }) {
|
||||
</div>
|
||||
<div className="pr-1">{t("glances.temp")}</div>
|
||||
</span>
|
||||
{options.expanded && (
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5 pr-1">
|
||||
{t("common.number", {
|
||||
value: maxTemp,
|
||||
maximumFractionDigits: 1,
|
||||
style: "unit",
|
||||
unit
|
||||
})}
|
||||
</div>
|
||||
<div className="pr-1">{t("glances.warn")}</div>
|
||||
</span>
|
||||
)}
|
||||
<UsageBar percent={tempPercent} />
|
||||
</div>
|
||||
</div>)}
|
||||
@@ -160,6 +226,6 @@ export default function Widget({ options }) {
|
||||
{options.label && (
|
||||
<div className="pt-1 text-center text-theme-800 dark:text-theme-200 text-xs">{options.label}</div>
|
||||
)}
|
||||
</div>
|
||||
</a>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ export default function Greeting({ options }) {
|
||||
if (options.text) {
|
||||
return (
|
||||
<div className="flex flex-row items-center justify-start">
|
||||
<span className={`text-theme-800 dark:text-theme-200 ${textSizes[options.text_size || "xl"]}`}>
|
||||
<span className={`text-theme-800 dark:text-theme-200 mr-3 ${textSizes[options.text_size || "xl"]}`}>
|
||||
{options.text}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
18
src/components/widgets/queue/queueEntry.jsx
Normal file
18
src/components/widgets/queue/queueEntry.jsx
Normal file
@@ -0,0 +1,18 @@
|
||||
export default function QueueEntry({ title, activity, timeLeft, progress}) {
|
||||
return (
|
||||
<div className="text-theme-700 dark:text-theme-200 relative h-5 rounded-md bg-theme-200/50 dark:bg-theme-900/20 m-1 px-1 flex">
|
||||
<div
|
||||
className="absolute h-5 rounded-md bg-theme-200 dark:bg-theme-900/40 z-0 -ml-1"
|
||||
style={{
|
||||
width: `${progress}%`,
|
||||
}}
|
||||
/>
|
||||
<div className="text-xs z-10 self-center ml-2 relative h-4 grow mr-2">
|
||||
<div className="absolute w-full whitespace-nowrap text-ellipsis overflow-hidden text-left">{title}</div>
|
||||
</div>
|
||||
<div className="self-center text-xs flex justify-end mr-1.5 pl-1 z-10 text-ellipsis overflow-hidden whitespace-nowrap">
|
||||
{timeLeft ? `${activity} - ${timeLeft}` : activity}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -1,12 +1,22 @@
|
||||
import { performance } from "perf_hooks";
|
||||
|
||||
import { getServiceItem } from "utils/config/service-helpers";
|
||||
import createLogger from "utils/logger";
|
||||
import { httpProxy } from "utils/proxy/http";
|
||||
|
||||
const logger = createLogger("ping");
|
||||
|
||||
export default async function handler(req, res) {
|
||||
const { ping: pingURL } = req.query;
|
||||
const { group, service } = req.query;
|
||||
const serviceItem = await getServiceItem(group, service);
|
||||
if (!serviceItem) {
|
||||
logger.debug(`No service item found for group ${group} named ${service}`);
|
||||
return res.status(400).send({
|
||||
error: "Unable to find service, see log for details.",
|
||||
});
|
||||
}
|
||||
|
||||
const { ping: pingURL } = serviceItem;
|
||||
|
||||
if (!pingURL) {
|
||||
logger.debug("No ping URL specified");
|
||||
@@ -14,22 +24,29 @@ export default async function handler(req, res) {
|
||||
error: "No ping URL given",
|
||||
});
|
||||
}
|
||||
|
||||
let startTime = performance.now();
|
||||
let [status] = await httpProxy(pingURL, {
|
||||
method: "HEAD"
|
||||
});
|
||||
let endTime = performance.now();
|
||||
|
||||
if (status > 403) {
|
||||
// try one more time as a GET in case HEAD is rejected for whatever reason
|
||||
startTime = performance.now();
|
||||
[status] = await httpProxy(pingURL);
|
||||
endTime = performance.now();
|
||||
}
|
||||
|
||||
return res.status(200).json({
|
||||
status,
|
||||
latency: endTime - startTime
|
||||
});
|
||||
try {
|
||||
let startTime = performance.now();
|
||||
let [status] = await httpProxy(pingURL, {
|
||||
method: "HEAD"
|
||||
});
|
||||
let endTime = performance.now();
|
||||
|
||||
if (status > 403) {
|
||||
// try one more time as a GET in case HEAD is rejected for whatever reason
|
||||
startTime = performance.now();
|
||||
[status] = await httpProxy(pingURL);
|
||||
endTime = performance.now();
|
||||
}
|
||||
|
||||
return res.status(200).json({
|
||||
status,
|
||||
latency: endTime - startTime
|
||||
});
|
||||
} catch (e) {
|
||||
logger.debug("Error attempting ping: %s", JSON.stringify(e));
|
||||
return res.status(400).send({
|
||||
error: 'Error attempting ping, see logs.',
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,20 +40,32 @@ async function retrieveFromGlancesAPI(privateWidgetOptions, endpoint) {
|
||||
}
|
||||
|
||||
export default async function handler(req, res) {
|
||||
const { index } = req.query;
|
||||
const { index, cputemp: includeCpuTemp, uptime: includeUptime, disk: includeDisks } = req.query;
|
||||
|
||||
const privateWidgetOptions = await getPrivateWidgetOptions("glances", index);
|
||||
|
||||
try {
|
||||
const quicklookData = await retrieveFromGlancesAPI(privateWidgetOptions, "quicklook");
|
||||
|
||||
const cpuData = await retrieveFromGlancesAPI(privateWidgetOptions, "cpu");
|
||||
const loadData = await retrieveFromGlancesAPI(privateWidgetOptions, "load");
|
||||
const memoryData = await retrieveFromGlancesAPI(privateWidgetOptions, "mem");
|
||||
const data = {
|
||||
quicklook: quicklookData
|
||||
cpu: cpuData,
|
||||
load: loadData,
|
||||
mem: memoryData,
|
||||
}
|
||||
|
||||
// Disabled by default, dont call unless needed
|
||||
if (includeUptime) {
|
||||
data.uptime = await retrieveFromGlancesAPI(privateWidgetOptions, "uptime");
|
||||
}
|
||||
|
||||
if (includeCpuTemp) {
|
||||
data.sensors = await retrieveFromGlancesAPI(privateWidgetOptions, "sensors");
|
||||
}
|
||||
|
||||
if (includeDisks) {
|
||||
data.fs = await retrieveFromGlancesAPI(privateWidgetOptions, "fs");
|
||||
}
|
||||
|
||||
data.uptime = await retrieveFromGlancesAPI(privateWidgetOptions, "uptime");
|
||||
|
||||
data.sensors = await retrieveFromGlancesAPI(privateWidgetOptions, "sensors");
|
||||
|
||||
return res.status(200).send(data);
|
||||
} catch (e) {
|
||||
|
||||
@@ -52,18 +52,25 @@ export default async function handler(req, res) {
|
||||
memTotal += mem;
|
||||
});
|
||||
|
||||
const nodeMetrics = await metricsApi.getNodeMetrics();
|
||||
nodeMetrics.items.forEach((nodeMetric) => {
|
||||
const cpu = parseCpu(nodeMetric.usage.cpu);
|
||||
const mem = parseMemory(nodeMetric.usage.memory);
|
||||
cpuUsage += cpu;
|
||||
memUsage += mem;
|
||||
nodeMap[nodeMetric.metadata.name].cpu.load = cpu;
|
||||
nodeMap[nodeMetric.metadata.name].cpu.percent = (cpu / nodeMap[nodeMetric.metadata.name].cpu.total) * 100;
|
||||
nodeMap[nodeMetric.metadata.name].memory.used = mem;
|
||||
nodeMap[nodeMetric.metadata.name].memory.free = nodeMap[nodeMetric.metadata.name].memory.total - mem;
|
||||
nodeMap[nodeMetric.metadata.name].memory.percent = (mem / nodeMap[nodeMetric.metadata.name].memory.total) * 100;
|
||||
});
|
||||
try {
|
||||
const nodeMetrics = await metricsApi.getNodeMetrics();
|
||||
nodeMetrics.items.forEach((nodeMetric) => {
|
||||
const cpu = parseCpu(nodeMetric.usage.cpu);
|
||||
const mem = parseMemory(nodeMetric.usage.memory);
|
||||
cpuUsage += cpu;
|
||||
memUsage += mem;
|
||||
nodeMap[nodeMetric.metadata.name].cpu.load = cpu;
|
||||
nodeMap[nodeMetric.metadata.name].cpu.percent = (cpu / nodeMap[nodeMetric.metadata.name].cpu.total) * 100;
|
||||
nodeMap[nodeMetric.metadata.name].memory.used = mem;
|
||||
nodeMap[nodeMetric.metadata.name].memory.free = nodeMap[nodeMetric.metadata.name].memory.total - mem;
|
||||
nodeMap[nodeMetric.metadata.name].memory.percent = (mem / nodeMap[nodeMetric.metadata.name].memory.total) * 100;
|
||||
});
|
||||
} catch (error) {
|
||||
logger.error("Error getting metrics, ensure you have metrics-server installed: s", JSON.stringify(error));
|
||||
return res.status(500).send({
|
||||
error: "Error getting metrics, check logs for more details"
|
||||
});
|
||||
}
|
||||
|
||||
const cluster = {
|
||||
cpu: {
|
||||
|
||||
@@ -252,7 +252,7 @@ function Home({ initialSettings }) {
|
||||
/>
|
||||
<meta name="theme-color" content={themes[initialSettings.color || "slate"][initialSettings.theme || "dark"]} />
|
||||
</Head>
|
||||
<div className="relative container m-auto flex flex-col justify-between z-10 h-full">
|
||||
<div className="relative container m-auto flex flex-col justify-start z-10 h-full">
|
||||
<div
|
||||
className={classNames(
|
||||
"flex flex-row flex-wrap justify-between",
|
||||
@@ -286,15 +286,15 @@ function Home({ initialSettings }) {
|
||||
)}
|
||||
</div>
|
||||
|
||||
{services && (
|
||||
{services?.length > 0 && (
|
||||
<div className="flex flex-wrap p-4 sm:p-8 sm:pt-4 items-start pb-2">
|
||||
{services.map((group) => (
|
||||
<ServicesGroup key={group.name} services={group} layout={initialSettings.layout?.[group.name]} fiveColumns={settings.fiveColumns} />
|
||||
<ServicesGroup key={group.name} group={group.name} services={group} layout={initialSettings.layout?.[group.name]} fiveColumns={settings.fiveColumns} />
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
|
||||
{bookmarks && (
|
||||
{bookmarks?.length > 0 && (
|
||||
<div className={`grow flex flex-wrap pt-0 p-4 sm:p-8 gap-2 grid-cols-1 lg:grid-cols-2 lg:grid-cols-${Math.min(6, bookmarks.length)}`}>
|
||||
{bookmarks.map((group) => (
|
||||
<BookmarksGroup key={group.name} group={group} />
|
||||
@@ -302,14 +302,16 @@ function Home({ initialSettings }) {
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="flex p-8 pb-0 w-full justify-end">
|
||||
{!initialSettings?.color && <ColorToggle />}
|
||||
<Revalidate />
|
||||
{!initialSettings?.theme && <ThemeToggle />}
|
||||
</div>
|
||||
<div className="flex flex-col mt-auto p-8 w-full">
|
||||
<div className="flex w-full justify-end">
|
||||
{!initialSettings?.color && <ColorToggle />}
|
||||
<Revalidate />
|
||||
{!initialSettings?.theme && <ThemeToggle />}
|
||||
</div>
|
||||
|
||||
<div className="flex p-8 pt-4 w-full justify-end">
|
||||
{!initialSettings?.hideVersion && <Version />}
|
||||
<div className="flex mt-4 w-full justify-end">
|
||||
{!initialSettings?.hideVersion && <Version />}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
@@ -359,6 +361,7 @@ export default function Wrapper({ initialSettings, fallback }) {
|
||||
<div
|
||||
id="inner_wrapper"
|
||||
className={classNames(
|
||||
'fixed overflow-auto w-full h-full',
|
||||
backgroundBlur && `backdrop-blur${initialSettings.background.blur.length ? '-' : ""}${initialSettings.background.blur}`,
|
||||
backgroundSaturate && `backdrop-saturate-${initialSettings.background.saturate}`,
|
||||
backgroundBrightness && `backdrop-brightness-${initialSettings.background.brightness}`,
|
||||
|
||||
@@ -65,5 +65,20 @@ export function getSettings() {
|
||||
const settingsYaml = join(process.cwd(), "config", "settings.yaml");
|
||||
const rawFileContents = readFileSync(settingsYaml, "utf8");
|
||||
const fileContents = substituteEnvironmentVars(rawFileContents);
|
||||
return yaml.load(fileContents) ?? {};
|
||||
const initialSettings = yaml.load(fileContents) ?? {};
|
||||
|
||||
if (initialSettings.layout) {
|
||||
// support yaml list but old spec was object so convert to that
|
||||
// see https://github.com/benphelps/homepage/issues/1546
|
||||
if (Array.isArray(initialSettings.layout)) {
|
||||
const layoutItems = initialSettings.layout
|
||||
initialSettings.layout = {}
|
||||
layoutItems.forEach(i => {
|
||||
const name = Object.keys(i)[0]
|
||||
initialSettings.layout[name] = i[name]
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
return initialSettings
|
||||
}
|
||||
|
||||
@@ -63,10 +63,10 @@ export async function servicesFromDocker() {
|
||||
const serviceServers = await Promise.all(
|
||||
Object.keys(servers).map(async (serverName) => {
|
||||
try {
|
||||
const isSwarm = !!servers[serverName].swarm;
|
||||
const docker = new Docker(getDockerArguments(serverName).conn);
|
||||
const containers = await docker.listContainers({
|
||||
all: true,
|
||||
});
|
||||
const listProperties = { all: true };
|
||||
const containers = await ((isSwarm) ? docker.listServices(listProperties) : docker.listContainers(listProperties));
|
||||
|
||||
// bad docker connections can result in a <Buffer ...> object?
|
||||
// in any case, this ensures the result is the expected array
|
||||
@@ -76,17 +76,19 @@ export async function servicesFromDocker() {
|
||||
|
||||
const discovered = containers.map((container) => {
|
||||
let constructedService = null;
|
||||
const containerLabels = isSwarm ? shvl.get(container, 'Spec.Labels') : container.Labels;
|
||||
const containerName = isSwarm ? shvl.get(container, 'Spec.Name') : container.Names[0];
|
||||
|
||||
Object.keys(container.Labels).forEach((label) => {
|
||||
Object.keys(containerLabels).forEach((label) => {
|
||||
if (label.startsWith("homepage.")) {
|
||||
if (!constructedService) {
|
||||
constructedService = {
|
||||
container: container.Names[0].replace(/^\//, ""),
|
||||
container: containerName.replace(/^\//, ""),
|
||||
server: serverName,
|
||||
type: 'service'
|
||||
};
|
||||
}
|
||||
shvl.set(constructedService, label.replace("homepage.", ""), container.Labels[label]);
|
||||
shvl.set(constructedService, label.replace("homepage.", ""), substituteEnvironmentVars(containerLabels[label]));
|
||||
}
|
||||
});
|
||||
|
||||
@@ -168,14 +170,14 @@ export async function servicesFromKubernetes() {
|
||||
.filter((ingress) => ingress.metadata.annotations && ingress.metadata.annotations[`${ANNOTATION_BASE}/href`])
|
||||
ingressList.items.push(...traefikServices);
|
||||
}
|
||||
|
||||
|
||||
if (!ingressList) {
|
||||
return [];
|
||||
}
|
||||
const services = ingressList.items
|
||||
.filter((ingress) => ingress.metadata.annotations && ingress.metadata.annotations[`${ANNOTATION_BASE}/enabled`] === 'true')
|
||||
.map((ingress) => {
|
||||
const constructedService = {
|
||||
let constructedService = {
|
||||
app: ingress.metadata.name,
|
||||
namespace: ingress.metadata.namespace,
|
||||
href: ingress.metadata.annotations[`${ANNOTATION_BASE}/href`] || getUrlFromIngress(ingress),
|
||||
@@ -202,6 +204,12 @@ export async function servicesFromKubernetes() {
|
||||
}
|
||||
});
|
||||
|
||||
try {
|
||||
constructedService = JSON.parse(substituteEnvironmentVars(JSON.stringify(constructedService)));
|
||||
} catch (e) {
|
||||
logger.error("Error attempting k8s environment variable substitution.");
|
||||
}
|
||||
|
||||
return constructedService;
|
||||
});
|
||||
|
||||
@@ -267,10 +275,11 @@ export function cleanServiceGroups(groups) {
|
||||
namespace, // kubernetes widget
|
||||
app,
|
||||
podSelector,
|
||||
wan, // opnsense widget,
|
||||
wan, // opnsense widget, pfsense widget
|
||||
enableBlocks, // emby/jellyfin
|
||||
enableNowPlaying,
|
||||
volume, // diskstation widget
|
||||
volume, // diskstation widget,
|
||||
enableQueue, // sonarr/radarr
|
||||
} = cleanedService.widget;
|
||||
|
||||
const fieldsList = typeof fields === 'string' ? JSON.parse(fields) : fields;
|
||||
@@ -299,14 +308,17 @@ export function cleanServiceGroups(groups) {
|
||||
if (app) cleanedService.widget.app = app;
|
||||
if (podSelector) cleanedService.widget.podSelector = podSelector;
|
||||
}
|
||||
if (type === "opnsense") {
|
||||
if (["opnsense", "pfsense"].includes(type)) {
|
||||
if (wan) cleanedService.widget.wan = wan;
|
||||
}
|
||||
if (type === "emby" || type === "jellyfin") {
|
||||
if (["emby", "jellyfin"].includes(type)) {
|
||||
if (enableBlocks !== undefined) cleanedService.widget.enableBlocks = JSON.parse(enableBlocks);
|
||||
if (enableNowPlaying !== undefined) cleanedService.widget.enableNowPlaying = JSON.parse(enableNowPlaying);
|
||||
}
|
||||
if (type === "diskstation") {
|
||||
if (["sonarr", "radarr"].includes(type)) {
|
||||
if (enableQueue !== undefined) cleanedService.widget.enableQueue = JSON.parse(enableQueue);
|
||||
}
|
||||
if (["diskstation", "qnap"].includes(type)) {
|
||||
if (volume) cleanedService.widget.volume = volume;
|
||||
}
|
||||
}
|
||||
@@ -316,16 +328,13 @@ export function cleanServiceGroups(groups) {
|
||||
}));
|
||||
}
|
||||
|
||||
export default async function getServiceWidget(group, service) {
|
||||
export async function getServiceItem(group, service) {
|
||||
const configuredServices = await servicesFromConfig();
|
||||
|
||||
const serviceGroup = configuredServices.find((g) => g.name === group);
|
||||
if (serviceGroup) {
|
||||
const serviceEntry = serviceGroup.services.find((s) => s.name === service);
|
||||
if (serviceEntry) {
|
||||
const { widget } = serviceEntry;
|
||||
return widget;
|
||||
}
|
||||
if (serviceEntry) return serviceEntry;
|
||||
}
|
||||
|
||||
const discoveredServices = await servicesFromDocker();
|
||||
@@ -333,20 +342,24 @@ export default async function getServiceWidget(group, service) {
|
||||
const dockerServiceGroup = discoveredServices.find((g) => g.name === group);
|
||||
if (dockerServiceGroup) {
|
||||
const dockerServiceEntry = dockerServiceGroup.services.find((s) => s.name === service);
|
||||
if (dockerServiceEntry) {
|
||||
const { widget } = dockerServiceEntry;
|
||||
return widget;
|
||||
}
|
||||
if (dockerServiceEntry) return dockerServiceEntry;
|
||||
}
|
||||
|
||||
const kubernetesServices = await servicesFromKubernetes();
|
||||
const kubernetesServiceGroup = kubernetesServices.find((g) => g.name === group);
|
||||
if (kubernetesServiceGroup) {
|
||||
const kubernetesServiceEntry = kubernetesServiceGroup.services.find((s) => s.name === service);
|
||||
if (kubernetesServiceEntry) {
|
||||
const { widget } = kubernetesServiceEntry;
|
||||
return widget;
|
||||
}
|
||||
if (kubernetesServiceEntry) return kubernetesServiceEntry;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
export default async function getServiceWidget(group, service) {
|
||||
const serviceItem = await getServiceItem(group, service);
|
||||
if (serviceItem) {
|
||||
const { widget } = serviceItem;
|
||||
return widget;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
@@ -5,8 +5,6 @@ import yaml from "js-yaml";
|
||||
|
||||
import checkAndCopyConfig, { substituteEnvironmentVars } from "utils/config/config";
|
||||
|
||||
const exemptWidgets = ["search"];
|
||||
|
||||
export async function widgetsFromConfig() {
|
||||
checkAndCopyConfig("widgets.yaml");
|
||||
|
||||
@@ -32,15 +30,17 @@ export async function cleanWidgetGroups(widgets) {
|
||||
return widgets.map((widget, index) => {
|
||||
const sanitizedOptions = widget.options;
|
||||
const optionKeys = Object.keys(sanitizedOptions);
|
||||
if (!exemptWidgets.includes(widget.type)) {
|
||||
["url", "username", "password", "key"].forEach((pO) => {
|
||||
if (optionKeys.includes(pO)) {
|
||||
// allow URL in search
|
||||
if (widget.type !== "search" && pO !== "key") {
|
||||
delete sanitizedOptions[pO];
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// delete private options from the sanitized options
|
||||
["username", "password", "key"].forEach((pO) => {
|
||||
if (optionKeys.includes(pO)) {
|
||||
delete sanitizedOptions[pO];
|
||||
}
|
||||
});
|
||||
|
||||
// delete url from the sanitized options if the widget is not a search or glances widgeth
|
||||
if (widget.type !== "search" && widget.type !== "glances" && optionKeys.includes("url")) {
|
||||
delete sanitizedOptions.url;
|
||||
}
|
||||
|
||||
return {
|
||||
@@ -78,4 +78,4 @@ export async function getPrivateWidgetOptions(type, widgetIndex) {
|
||||
});
|
||||
|
||||
return (type !== undefined && widgetIndex !== undefined) ? privateOptions.find(o => o.type === type && o.options.index === parseInt(widgetIndex, 10))?.options : privateOptions;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ export default async function credentialedProxyHandler(req, res, map) {
|
||||
"authentik",
|
||||
"cloudflared",
|
||||
"ghostfolio",
|
||||
"tailscale",
|
||||
"truenas",
|
||||
"pterodactyl",
|
||||
].includes(widget.type))
|
||||
@@ -54,6 +55,12 @@ export default async function credentialedProxyHandler(req, res, map) {
|
||||
} else {
|
||||
headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`;
|
||||
}
|
||||
} else if (widget.type === "paperlessngx") {
|
||||
if (widget.key) {
|
||||
headers.Authorization = `Token ${widget.key}`;
|
||||
} else {
|
||||
headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`;
|
||||
}
|
||||
} else {
|
||||
headers["X-API-Key"] = `${widget.key}`;
|
||||
}
|
||||
|
||||
@@ -57,7 +57,14 @@ export default async function genericProxyHandler(req, res, map) {
|
||||
}
|
||||
|
||||
if (status >= 400) {
|
||||
logger.debug("HTTP Error %d calling %s//%s%s...", status, url.protocol, url.hostname, url.pathname);
|
||||
logger.debug(
|
||||
"HTTP Error %d calling %s//%s%s%s...",
|
||||
status,
|
||||
url.protocol,
|
||||
url.hostname,
|
||||
url.port ? `:${url.port}` : '',
|
||||
url.pathname
|
||||
);
|
||||
return res.status(status).json({error: {message: "HTTP Error", url: sanitizeErrorURL(url), resultData}});
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
/* eslint-disable prefer-promise-reject-errors */
|
||||
/* eslint-disable no-param-reassign */
|
||||
import { createUnzip } from "node:zlib";
|
||||
|
||||
import { http, https } from "follow-redirects";
|
||||
|
||||
import { addCookieToJar, setCookieHeader } from "./cookie-jar";
|
||||
@@ -28,12 +30,19 @@ function handleRequest(requestor, url, params) {
|
||||
|
||||
const request = requestor.request(url, params, (response) => {
|
||||
const data = [];
|
||||
const contentEncoding = response.headers['content-encoding']?.trim().toLowerCase();
|
||||
|
||||
response.on("data", (chunk) => {
|
||||
let responseContent = response;
|
||||
if (contentEncoding === 'gzip' || contentEncoding === 'deflate') {
|
||||
responseContent = createUnzip();
|
||||
response.pipe(responseContent);
|
||||
}
|
||||
|
||||
responseContent.on("data", (chunk) => {
|
||||
data.push(chunk);
|
||||
});
|
||||
|
||||
response.on("end", () => {
|
||||
responseContent.on("end", () => {
|
||||
addCookieToJar(url, response.headers);
|
||||
resolve([response.statusCode, response.headers["content-type"], Buffer.concat(data), response.headers]);
|
||||
});
|
||||
@@ -81,7 +90,13 @@ export async function httpProxy(url, params = {}) {
|
||||
return [status, contentType, data, responseHeaders];
|
||||
}
|
||||
catch (err) {
|
||||
logger.error("Error calling %s//%s%s...", constructedUrl.protocol, constructedUrl.hostname, constructedUrl.pathname);
|
||||
logger.error(
|
||||
"Error calling %s//%s%s%s...",
|
||||
constructedUrl.protocol,
|
||||
constructedUrl.hostname,
|
||||
constructedUrl.port ? `:${constructedUrl.port}` : '',
|
||||
constructedUrl.pathname
|
||||
);
|
||||
logger.error(err);
|
||||
return [500, "application/json", { error: {message: err?.message ?? "Unknown error", url, rawError: err} }, null];
|
||||
}
|
||||
|
||||
@@ -7,7 +7,11 @@ export default function useWidgetAPI(widget, ...options) {
|
||||
if (options && options[1]?.refreshInterval) {
|
||||
config.refreshInterval = options[1].refreshInterval;
|
||||
}
|
||||
const { data, error, mutate } = useSWR(formatProxyUrl(widget, ...options), config);
|
||||
let url = formatProxyUrl(widget, ...options)
|
||||
if (options[0] === "") {
|
||||
url = null
|
||||
}
|
||||
const { data, error, mutate } = useSWR(url, config);
|
||||
// make the data error the top-level error
|
||||
return { data, error: data?.error ?? error, mutate }
|
||||
}
|
||||
|
||||
39
src/widgets/caddy/component.jsx
Normal file
39
src/widgets/caddy/component.jsx
Normal file
@@ -0,0 +1,39 @@
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import Container from "components/services/widget/container";
|
||||
import Block from "components/services/widget/block";
|
||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
|
||||
export default function Component({ service }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { widget } = service;
|
||||
const { data: resultData, error: resultError } = useWidgetAPI(widget, "result");
|
||||
|
||||
|
||||
if (resultError) {
|
||||
return <Container service={service} error={resultError} />;
|
||||
}
|
||||
|
||||
if (!resultData) {
|
||||
return (
|
||||
<Container service={service}>,
|
||||
<Block label="caddy.upstreams" />
|
||||
<Block label="caddy.requests" />
|
||||
<Block label="caddy.requests_failed" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
const upstreams = resultData.length;
|
||||
const requests = resultData.reduce((acc, val) => acc + val.num_requests, 0);
|
||||
const requestsFailed = resultData.reduce((acc, val) => acc + val.fails, 0);
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="caddy.upstreams" value={t("common.number", { value: upstreams })} />
|
||||
<Block label="caddy.requests" value={t("common.number", { value: requests })} />
|
||||
<Block label="caddy.requests_failed" value={t("common.number", { value: requestsFailed })} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
8
src/widgets/caddy/widget.js
Normal file
8
src/widgets/caddy/widget.js
Normal file
@@ -0,0 +1,8 @@
|
||||
import genericProxyHandler from "utils/proxy/handlers/generic";
|
||||
|
||||
const widget = {
|
||||
api: "{url}/reverse_proxy/upstreams",
|
||||
proxyHandler: genericProxyHandler,
|
||||
};
|
||||
|
||||
export default widget;
|
||||
@@ -16,7 +16,12 @@ export default function Component({ service }) {
|
||||
}
|
||||
|
||||
if (!data) {
|
||||
return <Container service={service} />;
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="changedetectionio.diffsDetected" />
|
||||
<Block label="changedetectionio.totalObserved" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
const totalObserved = Object.keys(data).length;
|
||||
|
||||
@@ -6,6 +6,7 @@ const components = {
|
||||
authentik: dynamic(() => import("./authentik/component")),
|
||||
autobrr: dynamic(() => import("./autobrr/component")),
|
||||
bazarr: dynamic(() => import("./bazarr/component")),
|
||||
caddy: dynamic(() => import("./caddy/component")),
|
||||
changedetectionio: dynamic(() => import("./changedetectionio/component")),
|
||||
channelsdvrserver: dynamic(() => import("./channelsdvrserver/component")),
|
||||
cloudflared: dynamic(() => import("./cloudflared/component")),
|
||||
@@ -16,6 +17,7 @@ const components = {
|
||||
docker: dynamic(() => import("./docker/component")),
|
||||
kubernetes: dynamic(() => import("./kubernetes/component")),
|
||||
emby: dynamic(() => import("./emby/component")),
|
||||
evcc: dynamic(() => import("./evcc/component")),
|
||||
fileflows: dynamic(() => import("./fileflows/component")),
|
||||
flood: dynamic(() => import("./flood/component")),
|
||||
freshrss: dynamic(() => import("./freshrss/component")),
|
||||
@@ -52,8 +54,10 @@ const components = {
|
||||
opnsense: dynamic(() => import("./opnsense/component")),
|
||||
overseerr: dynamic(() => import("./overseerr/component")),
|
||||
paperlessngx: dynamic(() => import("./paperlessngx/component")),
|
||||
pfsense: dynamic(() => import("./pfsense/component")),
|
||||
photoprism: dynamic(() => import("./photoprism/component")),
|
||||
proxmoxbackupserver: dynamic(() => import("./proxmoxbackupserver/component")),
|
||||
pialert: dynamic(() => import("./pialert/component")),
|
||||
pihole: dynamic(() => import("./pihole/component")),
|
||||
plex: dynamic(() => import("./plex/component")),
|
||||
portainer: dynamic(() => import("./portainer/component")),
|
||||
@@ -63,6 +67,7 @@ const components = {
|
||||
pterodactyl: dynamic(() => import("./pterodactyl/component")),
|
||||
pyload: dynamic(() => import("./pyload/component")),
|
||||
qbittorrent: dynamic(() => import("./qbittorrent/component")),
|
||||
qnap: dynamic(() => import("./qnap/component")),
|
||||
radarr: dynamic(() => import("./radarr/component")),
|
||||
readarr: dynamic(() => import("./readarr/component")),
|
||||
rutorrent: dynamic(() => import("./rutorrent/component")),
|
||||
@@ -71,6 +76,7 @@ const components = {
|
||||
sonarr: dynamic(() => import("./sonarr/component")),
|
||||
speedtest: dynamic(() => import("./speedtest/component")),
|
||||
strelaysrv: dynamic(() => import("./strelaysrv/component")),
|
||||
tailscale: dynamic(() => import("./tailscale/component")),
|
||||
tautulli: dynamic(() => import("./tautulli/component")),
|
||||
tdarr: dynamic(() => import("./tdarr/component")),
|
||||
traefik: dynamic(() => import("./traefik/component")),
|
||||
|
||||
36
src/widgets/evcc/component.jsx
Normal file
36
src/widgets/evcc/component.jsx
Normal file
@@ -0,0 +1,36 @@
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import Container from "components/services/widget/container";
|
||||
import Block from "components/services/widget/block";
|
||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
|
||||
export default function Component({ service }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { widget } = service;
|
||||
const { data: stateData, error: stateError } = useWidgetAPI(widget, "state");
|
||||
|
||||
if (stateError) {
|
||||
return <Container service={service} error={stateError} />;
|
||||
}
|
||||
|
||||
if (!stateData) {
|
||||
return (
|
||||
<Container service={service}>,
|
||||
<Block label="evcc.pv_power" />
|
||||
<Block label="evcc.grid_power" />
|
||||
<Block label="evcc.home_power" />
|
||||
<Block label="evcc.charge_power"/>
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="evcc.pv_power" value={`${t("common.number", { value: stateData.result.pvPower })} ${t("evcc.watt_hour")}`} />
|
||||
<Block label="evcc.grid_power" value={`${t("common.number", { value: stateData.result.gridPower })} ${t("evcc.watt_hour")}`} />
|
||||
<Block label="evcc.home_power" value={`${t("common.number", { value: stateData.result.homePower })} ${t("evcc.watt_hour")}`} />
|
||||
<Block label="evcc.charge_power" value={`${t("common.number", { value: stateData.result.loadpoints[0].chargePower })} ${t("evcc.watt_hour")}`} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
14
src/widgets/evcc/widget.js
Normal file
14
src/widgets/evcc/widget.js
Normal 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;
|
||||
@@ -71,6 +71,14 @@ export default async function homeassistantProxyHandler(req, res) {
|
||||
|
||||
let queries = defaultQueries;
|
||||
if (!widget.fields && widget.custom) {
|
||||
if (typeof widget.custom === 'string') {
|
||||
try {
|
||||
widget.custom = JSON.parse(widget.custom)
|
||||
} catch (error) {
|
||||
logger.debug("Error parsing HASS widget custom label: %s", JSON.stringify(error));
|
||||
return res.status(400).json({ error: "Error parsing widget custom label" });
|
||||
}
|
||||
}
|
||||
queries = widget.custom.slice(0, 4);
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ export default function Component({ service }) {
|
||||
`/api/kubernetes/stats/${widget.namespace}/${widget.app}?${podSelectorString}`);
|
||||
|
||||
if (statsError || statusError) {
|
||||
return <Container service={service} error={t("widget.api_error")} />;
|
||||
return <Container service={service} error={statsError ?? statusError} />;
|
||||
}
|
||||
|
||||
if (statusData && statusData.status !== "running") {
|
||||
|
||||
@@ -9,21 +9,21 @@ export default function Component({ service }) {
|
||||
|
||||
const { widget } = service;
|
||||
|
||||
const { data: albumsData, error: albumsError } = useWidgetAPI(widget, "album");
|
||||
const { data: artistsData, error: artistsError } = useWidgetAPI(widget, "artist");
|
||||
const { data: wantedData, error: wantedError } = useWidgetAPI(widget, "wanted/missing");
|
||||
const { data: queueData, error: queueError } = useWidgetAPI(widget, "queue/status");
|
||||
|
||||
if (albumsError || wantedError || queueError) {
|
||||
const finalError = albumsError ?? wantedError ?? queueError;
|
||||
if (artistsError || wantedError || queueError) {
|
||||
const finalError = artistsError ?? wantedError ?? queueError;
|
||||
return <Container service={service} error={finalError} />;
|
||||
}
|
||||
|
||||
if (!albumsData || !wantedData || !queueData) {
|
||||
if (!artistsData || !wantedData || !queueData) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="lidarr.wanted" />
|
||||
<Block label="lidarr.queued" />
|
||||
<Block label="lidarr.albums" />
|
||||
<Block label="lidarr.artists" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
@@ -32,7 +32,7 @@ export default function Component({ service }) {
|
||||
<Container service={service}>
|
||||
<Block label="lidarr.wanted" value={t("common.number", { value: wantedData.totalRecords })} />
|
||||
<Block label="lidarr.queued" value={t("common.number", { value: queueData.totalCount })} />
|
||||
<Block label="lidarr.albums" value={t("common.number", { value: albumsData.have })} />
|
||||
<Block label="lidarr.artists" value={t("common.number", { value: artistsData.length })} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,16 +1,12 @@
|
||||
import genericProxyHandler from "utils/proxy/handlers/generic";
|
||||
import { jsonArrayFilter } from "utils/proxy/api-helpers";
|
||||
|
||||
const widget = {
|
||||
api: "{url}/api/v1/{endpoint}?apikey={key}",
|
||||
proxyHandler: genericProxyHandler,
|
||||
|
||||
mappings: {
|
||||
album: {
|
||||
endpoint: "album",
|
||||
map: (data) => ({
|
||||
have: jsonArrayFilter(data, (item) => item?.statistics?.percentOfTracks === 100).length,
|
||||
}),
|
||||
artist: {
|
||||
endpoint: "artist",
|
||||
},
|
||||
"wanted/missing": {
|
||||
endpoint: "wanted/missing",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { useTranslation } from "next-i18next";
|
||||
import { useMemo } from "react";
|
||||
|
||||
import Container from "components/services/widget/container";
|
||||
import Block from "components/services/widget/block";
|
||||
@@ -10,6 +11,25 @@ export default function Component({ service }) {
|
||||
const { widget } = service;
|
||||
const { data: nextcloudData, error: nextcloudError } = useWidgetAPI(widget, "serverinfo");
|
||||
|
||||
// Support for deprecated fields (cpuload, memoryusage)
|
||||
const [showCpuLoad, showMemoryUsage] = useMemo(() => {
|
||||
// Default values if fields is not set
|
||||
if (!widget.fields) return [false, false];
|
||||
|
||||
// Allows for backwards compatibility with existing values of fields
|
||||
if (widget.fields.length <= 4) return [true, true];
|
||||
|
||||
// If all fields are enabled, drop cpuload and memoryusage
|
||||
if (widget.fields.length === 6) return [false, false];
|
||||
|
||||
const hasCpuLoad = widget.fields?.includes('cpuload');
|
||||
const hasMemoryUsage = widget.fields?.includes('memoryusage');
|
||||
|
||||
// If (for some reason) 5 fields are set, drop memoryusage
|
||||
if (hasCpuLoad && hasMemoryUsage) return [true, false];
|
||||
return [!hasCpuLoad, !hasMemoryUsage]
|
||||
}, [widget.fields]);
|
||||
|
||||
if (nextcloudError) {
|
||||
return <Container service={service} error={nextcloudError} />;
|
||||
}
|
||||
@@ -17,23 +37,27 @@ export default function Component({ service }) {
|
||||
if (!nextcloudData) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="nextcloud.cpuload" />
|
||||
<Block label="nextcloud.memoryusage" />
|
||||
{showCpuLoad && <Block label="nextcloud.cpuload" />}
|
||||
{showMemoryUsage && <Block label="nextcloud.memoryusage" />}
|
||||
<Block label="nextcloud.freespace" />
|
||||
<Block label="nextcloud.activeusers" />
|
||||
<Block label="nextcloud.numfiles" />
|
||||
<Block label="nextcloud.numshares" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
const nextcloudInfo = nextcloudData.ocs.data.nextcloud;
|
||||
const { nextcloud: nextcloudInfo, activeUsers } = nextcloudData.ocs.data;
|
||||
const memoryUsage = 100 * ((parseFloat(nextcloudInfo.system.mem_total) - parseFloat(nextcloudInfo.system.mem_free)) / parseFloat(nextcloudInfo.system.mem_total));
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="nextcloud.cpuload" value={t("common.percent", { value: nextcloudInfo.system.cpuload[0] })} />
|
||||
<Block label="nextcloud.memoryusage" value={t("common.percent", { value:memoryUsage })} />
|
||||
{showCpuLoad && <Block label="nextcloud.cpuload" value={t("common.percent", { value: nextcloudInfo.system.cpuload[0] })} />}
|
||||
{showMemoryUsage && <Block label="nextcloud.memoryusage" value={t("common.percent", { value:memoryUsage })} />}
|
||||
<Block label="nextcloud.freespace" value={t("common.bbytes", { value: nextcloudInfo.system.freespace, maximumFractionDigits: 1 })} />
|
||||
<Block label="nextcloud.activeusers" value={t("common.number", { value: nextcloudData.ocs.data.activeUsers.last5minutes })} />
|
||||
<Block label="nextcloud.activeusers" value={t("common.number", { value: activeUsers.last24hours })} />
|
||||
<Block label="nextcloud.numfiles" value={t("common.number", { value: nextcloudInfo.storage.num_files })} />
|
||||
<Block label="nextcloud.numshares" value={t("common.number", { value: nextcloudInfo.shares.num_shares })} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import genericProxyHandler from "utils/proxy/handlers/generic";
|
||||
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
|
||||
|
||||
const widget = {
|
||||
api: "{url}/api/{endpoint}",
|
||||
proxyHandler: genericProxyHandler,
|
||||
proxyHandler: credentialedProxyHandler,
|
||||
|
||||
mappings: {
|
||||
"statistics": {
|
||||
|
||||
51
src/widgets/pfsense/component.jsx
Normal file
51
src/widgets/pfsense/component.jsx
Normal file
@@ -0,0 +1,51 @@
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import Container from "components/services/widget/container";
|
||||
import Block from "components/services/widget/block";
|
||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
|
||||
export default function Component({ service }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { widget } = service;
|
||||
|
||||
const { data: systemData, error: systemError } = useWidgetAPI(widget, "system");
|
||||
const { data: interfaceData, error: interfaceError } = useWidgetAPI(widget, "interface");
|
||||
|
||||
const showWanIP = widget.fields?.filter(f => f !== 'wanIP').length <= 4 && widget.fields?.includes('wanIP');
|
||||
const showDiskUsage = widget.fields?.filter(f => f !== 'disk').length <= 4 && widget.fields?.includes('disk');
|
||||
|
||||
if (systemError || interfaceError) {
|
||||
const finalError = systemError ?? interfaceError;
|
||||
return <Container service={service} error={finalError} />;
|
||||
}
|
||||
|
||||
if (!systemData || !interfaceData) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="pfsense.load" />
|
||||
<Block label="pfsense.memory" />
|
||||
<Block label="pfsense.temp" />
|
||||
<Block label="pfsense.wanStatus" />
|
||||
{showWanIP && <Block label="pfsense.wanIP" />}
|
||||
{showDiskUsage && <Block label="pfsense.disk" />}
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
const wan = interfaceData.data.filter(l => l.hwif === widget.wan)[0];
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="pfsense.load" value={systemData.data.load_avg[0]} />
|
||||
<Block label="pfsense.memory" value={t("common.percent", { value: (systemData.data.mem_usage * 100).toFixed(2) })} />
|
||||
<Block label="pfsense.temp" value={t("common.number", { value: systemData.data.temp_c, style: "unit", unit: "celsius" })} />
|
||||
<Block label="pfsense.wanStatus" value={wan.status === "up" ?
|
||||
<span className="text-green-500">{t("pfsense.up")}</span>:
|
||||
<span className="text-red-500">{t("pfsense.down")}</span>}
|
||||
/>
|
||||
{showWanIP && <Block label="pfsense.wanIP" value={wan.ipaddr} />}
|
||||
{showDiskUsage && <Block label="pfsense.disk" value={t("common.percent", { value: (systemData.data.disk_usage * 100).toFixed(2) })} />}
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
24
src/widgets/pfsense/widget.js
Normal file
24
src/widgets/pfsense/widget.js
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
import genericProxyHandler from "utils/proxy/handlers/generic";
|
||||
|
||||
const widget = {
|
||||
api: "{url}/api/v1/{endpoint}",
|
||||
proxyHandler: genericProxyHandler,
|
||||
|
||||
mappings: {
|
||||
system: {
|
||||
endpoint: "status/system",
|
||||
validate: [
|
||||
"data"
|
||||
]
|
||||
},
|
||||
interface: {
|
||||
endpoint: "status/interface",
|
||||
validate: [
|
||||
"data"
|
||||
]
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
export default widget;
|
||||
37
src/widgets/pialert/component.jsx
Normal file
37
src/widgets/pialert/component.jsx
Normal file
@@ -0,0 +1,37 @@
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import Container from "components/services/widget/container";
|
||||
import Block from "components/services/widget/block";
|
||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
|
||||
export default function Component({ service }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { widget } = service;
|
||||
|
||||
const { data: pialertData, error: pialertError } = useWidgetAPI(widget, "data");
|
||||
|
||||
if (pialertError) {
|
||||
return <Container service={service} error={pialertError} />;
|
||||
}
|
||||
|
||||
if (!pialertData) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="pialert.total" />
|
||||
<Block label="pialert.connected" />
|
||||
<Block label="pialert.new_devices" />
|
||||
<Block label="pialert.down_alerts" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="pialert.total" value={t("common.number", { value: parseInt(pialertData[0], 10) })} />
|
||||
<Block label="pialert.connected" value={t("common.number", { value: parseInt(pialertData[1], 10) })} />
|
||||
<Block label="pialert.new_devices" value={t("common.number", { value: parseInt(pialertData[3], 10) })} />
|
||||
<Block label="pialert.down_alerts" value={t("common.number", { value: parseInt(pialertData[4], 10) })} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
14
src/widgets/pialert/widget.js
Normal file
14
src/widgets/pialert/widget.js
Normal file
@@ -0,0 +1,14 @@
|
||||
import genericProxyHandler from "utils/proxy/handlers/generic";
|
||||
|
||||
const widget = {
|
||||
api: "{url}/php/server/devices.php?action=getDevicesTotals",
|
||||
proxyHandler: genericProxyHandler,
|
||||
|
||||
mappings: {
|
||||
"data": {
|
||||
endpoint: "data",
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default widget;
|
||||
@@ -20,6 +20,7 @@ export default function Component({ service }) {
|
||||
<Container service={service}>
|
||||
<Block label="pihole.queries" />
|
||||
<Block label="pihole.blocked" />
|
||||
<Block label="pihole.blocked_percent" />
|
||||
<Block label="pihole.gravity" />
|
||||
</Container>
|
||||
);
|
||||
@@ -29,6 +30,7 @@ export default function Component({ service }) {
|
||||
<Container service={service}>
|
||||
<Block label="pihole.queries" value={t("common.number", { value: parseInt(piholeData.dns_queries_today, 10) })} />
|
||||
<Block label="pihole.blocked" value={t("common.number", { value: parseInt(piholeData.ads_blocked_today, 10) })} />
|
||||
<Block label="pihole.blocked_percent" value={t("common.percent", { value: parseFloat(piholeData.ads_percentage_today.toPrecision(3)) })} />
|
||||
<Block label="pihole.gravity" value={t("common.number", { value: parseInt(piholeData.domains_being_blocked, 10) })} />
|
||||
</Container>
|
||||
);
|
||||
|
||||
@@ -10,6 +10,7 @@ const widget = {
|
||||
validate: [
|
||||
"dns_queries_today",
|
||||
"ads_blocked_today",
|
||||
"ads_percentage_today",
|
||||
"domains_being_blocked"
|
||||
]
|
||||
},
|
||||
|
||||
@@ -1,12 +1,8 @@
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import Container from "components/services/widget/container";
|
||||
import Block from "components/services/widget/block";
|
||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
|
||||
export default function Component({ service }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { widget } = service;
|
||||
|
||||
const { data: containersData, error: containersError } = useWidgetAPI(widget, "docker/containers/json", {
|
||||
@@ -27,8 +23,9 @@ export default function Component({ service }) {
|
||||
);
|
||||
}
|
||||
|
||||
if (containersData.error) {
|
||||
return <Container service={service} error={t("widget.api_error")} />;
|
||||
if (containersData.error || containersData.message) {
|
||||
// containersData can be itself an error object e.g. if environment fails
|
||||
return <Container service={service} error={ containersData?.error ?? containersData } />;
|
||||
}
|
||||
|
||||
const running = containersData.filter((c) => c.State === "running").length;
|
||||
|
||||
@@ -8,7 +8,7 @@ const logger = createLogger("qbittorrentProxyHandler");
|
||||
async function login(widget) {
|
||||
logger.debug("qBittorrent is rejecting the request, logging in.");
|
||||
const loginUrl = new URL(`${widget.url}/api/v2/auth/login`).toString();
|
||||
const loginBody = `username=${encodeURI(widget.username)}&password=${encodeURI(widget.password)}`;
|
||||
const loginBody = `username=${encodeURIComponent(widget.username)}&password=${encodeURIComponent(widget.password)}`;
|
||||
const loginParams = {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
||||
|
||||
79
src/widgets/qnap/component.jsx
Normal file
79
src/widgets/qnap/component.jsx
Normal file
@@ -0,0 +1,79 @@
|
||||
/* eslint no-underscore-dangle: ["error", { "allow": ["_text", "_cdata"] }] */
|
||||
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import Container from "components/services/widget/container";
|
||||
import Block from "components/services/widget/block";
|
||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
|
||||
export default function Component({ service }) {
|
||||
const { t } = useTranslation("common");
|
||||
|
||||
const { widget } = service;
|
||||
|
||||
const { data: statusData, error: statusError } = useWidgetAPI(widget, "status");
|
||||
|
||||
if (statusError) {
|
||||
return <Container service={service} error={statusError} />;
|
||||
}
|
||||
|
||||
if (!statusData) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="qnap.cpuUsage" />
|
||||
<Block label="qnap.memUsage" />
|
||||
<Block label="qnap.systemTempC" />
|
||||
<Block label={(widget.volume) ? "qnap.volumeUsage" : "qnap.poolUsage" } />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
const cpuUsage = statusData.system.cpu_usage._cdata.replace(' %','');
|
||||
const totalMemory = statusData.system.total_memory._cdata;
|
||||
const freeMemory = statusData.system.free_memory._cdata;
|
||||
const systemTempC = statusData.system.sys_tempc._text;
|
||||
let volumeTotalSize = 0;
|
||||
let volumeFreeSize = 0;
|
||||
let validVolume = true;
|
||||
|
||||
if (Array.isArray(statusData.volume.volumeUseList.volumeUse)) {
|
||||
if (widget.volume) {
|
||||
const volumeSelected = statusData.volume.volumeList.volume.findIndex(vl => vl.volumeLabel._cdata === widget.volume);
|
||||
if (volumeSelected !== -1) {
|
||||
volumeTotalSize = statusData.volume.volumeUseList.volumeUse[volumeSelected].total_size._cdata;
|
||||
volumeFreeSize = statusData.volume.volumeUseList.volumeUse[volumeSelected].free_size._cdata;
|
||||
} else {
|
||||
validVolume = false;
|
||||
}
|
||||
} else {
|
||||
statusData.volume.volumeUseList.volumeUse.forEach((volume) => {
|
||||
volumeTotalSize += parseInt(volume.total_size._cdata, 10);
|
||||
volumeFreeSize += parseInt(volume.free_size._cdata, 10);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
volumeTotalSize = statusData.volume.volumeUseList.volumeUse.total_size._cdata;
|
||||
volumeFreeSize = statusData.volume.volumeUseList.volumeUse.free_size._cdata;
|
||||
}
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block
|
||||
label="qnap.cpuUsage"
|
||||
value={t("common.percent", { value: (cpuUsage) })}
|
||||
/>
|
||||
<Block
|
||||
label="qnap.memUsage"
|
||||
value={t("common.percent", { value: (((totalMemory - freeMemory) / totalMemory) * 100).toFixed(0) })}
|
||||
/>
|
||||
<Block
|
||||
label="qnap.systemTempC"
|
||||
value={t("common.number", { value: systemTempC, maximumFractionDigits: 1, style: "unit", unit: "celsius" })}
|
||||
/>
|
||||
<Block
|
||||
label={(widget.volume) ? "qnap.volumeUsage" : "qnap.poolUsage" }
|
||||
value={(validVolume) ? t("common.percent", { value: (((volumeTotalSize - volumeFreeSize) / volumeTotalSize) * 100).toFixed(0) }) : t("qnap.invalid") }
|
||||
/>
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
104
src/widgets/qnap/proxy.js
Normal file
104
src/widgets/qnap/proxy.js
Normal file
@@ -0,0 +1,104 @@
|
||||
/* eslint no-underscore-dangle: ["error", { "allow": ["_text", "_cdata"] }] */
|
||||
|
||||
import cache from "memory-cache";
|
||||
import { xml2json } from "xml-js";
|
||||
|
||||
import { httpProxy } from "utils/proxy/http";
|
||||
import { formatApiCall } from "utils/proxy/api-helpers";
|
||||
import getServiceWidget from "utils/config/service-helpers";
|
||||
import createLogger from "utils/logger";
|
||||
|
||||
const proxyName = "qnapProxyHandler";
|
||||
const sessionTokenCacheKey = `${proxyName}__sessionToken`;
|
||||
const logger = createLogger(proxyName);
|
||||
|
||||
async function login(widget, service) {
|
||||
const endpoint = "{url}/cgi-bin/authLogin.cgi";
|
||||
const loginUrl = new URL(formatApiCall(endpoint, widget));
|
||||
const headers = { "Content-Type": "application/x-www-form-urlencoded" };
|
||||
|
||||
const [, , data,] = await httpProxy(loginUrl, {
|
||||
method: "POST",
|
||||
body: new URLSearchParams({
|
||||
user: widget.username,
|
||||
pwd: Buffer.from(`${widget.password}`).toString("base64")
|
||||
}).toString(),
|
||||
headers,
|
||||
});
|
||||
|
||||
try {
|
||||
const dataDecoded = xml2json(data.toString(), { compact: true });
|
||||
const jsonData = JSON.parse(dataDecoded);
|
||||
const token = jsonData.QDocRoot.authSid._cdata;
|
||||
cache.put(`${sessionTokenCacheKey}.${service}`, token);
|
||||
return { token };
|
||||
} catch (e) {
|
||||
logger.error("Unable to login to QNAP API: %s", e);
|
||||
}
|
||||
|
||||
return { token: false };
|
||||
}
|
||||
|
||||
async function apiCall(widget, endpoint, service) {
|
||||
let key = cache.get(`${sessionTokenCacheKey}.${service}`);
|
||||
|
||||
let apiUrl = new URL(formatApiCall(`${endpoint}&sid=${key}`, widget));
|
||||
let [status, contentType, data, responseHeaders] = await httpProxy(apiUrl);
|
||||
|
||||
if (status === 404) {
|
||||
logger.error("QNAP API rejected the request, attempting to obtain new session token");
|
||||
key = await login(widget, service);
|
||||
apiUrl = new URL(formatApiCall(`${endpoint}&sid=${key}`, widget));
|
||||
[status, contentType, data, responseHeaders] = await httpProxy(apiUrl);
|
||||
}
|
||||
|
||||
if (status !== 200) {
|
||||
logger.error("Error getting data from QNAP: %s status %d. Data: %s", apiUrl, status, data);
|
||||
return { status, contentType, data: null, responseHeaders };
|
||||
}
|
||||
|
||||
let dataDecoded = JSON.parse(xml2json(data.toString(), { compact: true }).toString());
|
||||
|
||||
if (dataDecoded.QDocRoot.authPassed._cdata === '0') {
|
||||
logger.error("QNAP API rejected the request, attempting to obtain new session token");
|
||||
key = await login(widget, service);
|
||||
apiUrl = new URL(formatApiCall(`${endpoint}&sid=${key}`, widget));
|
||||
[status, contentType, data, responseHeaders] = await httpProxy(apiUrl);
|
||||
|
||||
if (status !== 200) {
|
||||
logger.error("Error getting data from QNAP: %s status %d. Data: %s", apiUrl, status, data);
|
||||
return { status, contentType, data: null, responseHeaders };
|
||||
}
|
||||
|
||||
dataDecoded = JSON.parse(xml2json(data.toString(), { compact: true }).toString());
|
||||
}
|
||||
|
||||
return { status, contentType, data: dataDecoded, responseHeaders };
|
||||
}
|
||||
|
||||
export default async function qnapProxyHandler(req, res) {
|
||||
const { group, service } = req.query;
|
||||
|
||||
if (!group || !service) {
|
||||
logger.debug("Invalid or missing service '%s' or group '%s'", service, group);
|
||||
return res.status(400).json({ error: "Invalid proxy service type" });
|
||||
}
|
||||
|
||||
const widget = await getServiceWidget(group, service);
|
||||
if (!widget) {
|
||||
logger.debug("Invalid or missing widget for service '%s' in group '%s'", service, group);
|
||||
return res.status(400).json({ error: "Invalid proxy service type" });
|
||||
}
|
||||
|
||||
if (!cache.get(`${sessionTokenCacheKey}.${service}`)) {
|
||||
await login(widget, service);
|
||||
}
|
||||
|
||||
const { data: systemStatsData } = await apiCall(widget, "{url}/cgi-bin/management/manaRequest.cgi?subfunc=sysinfo&hd=no&multicpu=1", service);
|
||||
const { data: volumeStatsData } = await apiCall(widget, "{url}/cgi-bin/management/chartReq.cgi?chart_func=disk_usage&disk_select=all&include=all", service);
|
||||
|
||||
return res.status(200).send({
|
||||
system: systemStatsData.QDocRoot.func.ownContent.root,
|
||||
volume: volumeStatsData.QDocRoot
|
||||
});
|
||||
}
|
||||
8
src/widgets/qnap/widget.js
Normal file
8
src/widgets/qnap/widget.js
Normal file
@@ -0,0 +1,8 @@
|
||||
import qnapProxyHandler from "./proxy";
|
||||
|
||||
const widget = {
|
||||
api: "{url}",
|
||||
proxyHandler: qnapProxyHandler,
|
||||
};
|
||||
|
||||
export default widget;
|
||||
@@ -1,22 +1,41 @@
|
||||
import { useTranslation } from "next-i18next";
|
||||
import { useCallback } from 'react';
|
||||
|
||||
import QueueEntry from "../../components/widgets/queue/queueEntry";
|
||||
|
||||
import Container from "components/services/widget/container";
|
||||
import Block from "components/services/widget/block";
|
||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
|
||||
function getProgress(sizeLeft, size) {
|
||||
return sizeLeft === 0 ? 100 : (1 - sizeLeft / size) * 100
|
||||
}
|
||||
|
||||
export default function Component({ service }) {
|
||||
const { t } = useTranslation();
|
||||
const { widget } = service;
|
||||
|
||||
const { data: moviesData, error: moviesError } = useWidgetAPI(widget, "movie");
|
||||
const { data: queuedData, error: queuedError } = useWidgetAPI(widget, "queue/status");
|
||||
const { data: queueDetailsData, error: queueDetailsError } = useWidgetAPI(widget, "queue/details");
|
||||
|
||||
if (moviesError || queuedError) {
|
||||
const finalError = moviesError ?? queuedError;
|
||||
const formatDownloadState = useCallback((downloadState) => {
|
||||
switch (downloadState) {
|
||||
case "importPending":
|
||||
return "import pending";
|
||||
case "failedPending":
|
||||
return "failed pending";
|
||||
default:
|
||||
return downloadState;
|
||||
}
|
||||
}, []);
|
||||
|
||||
if (moviesError || queuedError || queueDetailsError) {
|
||||
const finalError = moviesError ?? queuedError ?? queueDetailsError;
|
||||
return <Container service={service} error={finalError} />;
|
||||
}
|
||||
|
||||
if (!moviesData || !queuedData) {
|
||||
if (!moviesData || !queuedData || !queueDetailsData) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="radarr.wanted" />
|
||||
@@ -27,12 +46,27 @@ export default function Component({ service }) {
|
||||
);
|
||||
}
|
||||
|
||||
const enableQueue = widget?.enableQueue && Array.isArray(queueDetailsData) && queueDetailsData.length > 0;
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="radarr.wanted" value={t("common.number", { value: moviesData.wanted })} />
|
||||
<Block label="radarr.missing" value={t("common.number", { value: moviesData.missing })} />
|
||||
<Block label="radarr.queued" value={t("common.number", { value: queuedData.totalCount })} />
|
||||
<Block label="radarr.movies" value={t("common.number", { value: moviesData.have })} />
|
||||
</Container>
|
||||
<>
|
||||
<Container service={service}>
|
||||
<Block label="radarr.wanted" value={t("common.number", { value: moviesData.wanted })} />
|
||||
<Block label="radarr.missing" value={t("common.number", { value: moviesData.missing })} />
|
||||
<Block label="radarr.queued" value={t("common.number", { value: queuedData.totalCount })} />
|
||||
<Block label="radarr.movies" value={t("common.number", { value: moviesData.have })} />
|
||||
</Container>
|
||||
{enableQueue &&
|
||||
queueDetailsData.map((queueEntry) => (
|
||||
<QueueEntry
|
||||
progress={getProgress(queueEntry.sizeLeft, queueEntry.size)}
|
||||
timeLeft={queueEntry.timeLeft}
|
||||
title={moviesData.all.find((entry) => entry.id === queueEntry.movieId)?.title ?? t("radarr.unknown")}
|
||||
activity={formatDownloadState(queueEntry.trackedDownloadState)}
|
||||
key={`${queueEntry.movieId}-${queueEntry.sizeLeft}`}
|
||||
/>
|
||||
))
|
||||
}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import genericProxyHandler from "utils/proxy/handlers/generic";
|
||||
import { jsonArrayFilter } from "utils/proxy/api-helpers";
|
||||
import { asJson, jsonArrayFilter } from "utils/proxy/api-helpers";
|
||||
|
||||
const widget = {
|
||||
api: "{url}/api/v3/{endpoint}?apikey={key}",
|
||||
@@ -12,6 +12,7 @@ const widget = {
|
||||
wanted: jsonArrayFilter(data, (item) => item.monitored && !item.hasFile && item.isAvailable).length,
|
||||
have: jsonArrayFilter(data, (item) => item.hasFile).length,
|
||||
missing: jsonArrayFilter(data, (item) => item.monitored && !item.hasFile).length,
|
||||
all: asJson(data),
|
||||
}),
|
||||
},
|
||||
"queue/status": {
|
||||
@@ -20,6 +21,37 @@ const widget = {
|
||||
"totalCount"
|
||||
]
|
||||
},
|
||||
"queue/details": {
|
||||
endpoint: "queue/details",
|
||||
map: (data) => asJson(data).map((entry) => ({
|
||||
trackedDownloadState: entry.trackedDownloadState,
|
||||
trackedDownloadStatus: entry.trackedDownloadStatus,
|
||||
timeLeft: entry.timeleft,
|
||||
size: entry.size,
|
||||
sizeLeft: entry.sizeleft,
|
||||
movieId: entry.movieId ?? entry.id,
|
||||
status: entry.status
|
||||
})).sort((a, b) => {
|
||||
const downloadingA = a.trackedDownloadState === "downloading"
|
||||
const downloadingB = b.trackedDownloadState === "downloading"
|
||||
if (downloadingA && !downloadingB) {
|
||||
return -1;
|
||||
}
|
||||
if (downloadingB && !downloadingA) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
const percentA = a.sizeLeft / a.size;
|
||||
const percentB = b.sizeLeft / b.size;
|
||||
if (percentA < percentB) {
|
||||
return -1;
|
||||
}
|
||||
if (percentA > percentB) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
})
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -1,9 +1,26 @@
|
||||
import { useTranslation } from "next-i18next";
|
||||
import { useCallback } from 'react';
|
||||
|
||||
import QueueEntry from "../../components/widgets/queue/queueEntry";
|
||||
|
||||
import Container from "components/services/widget/container";
|
||||
import Block from "components/services/widget/block";
|
||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
|
||||
function getProgress(sizeLeft, size) {
|
||||
return sizeLeft === 0 ? 100 : (1 - sizeLeft / size) * 100
|
||||
}
|
||||
|
||||
function getTitle(queueEntry, seriesData) {
|
||||
let title = ''
|
||||
const seriesTitle = seriesData.find((entry) => entry.id === queueEntry.seriesId)?.title;
|
||||
if (seriesTitle) title += `${seriesTitle}: `;
|
||||
const { episodeTitle } = queueEntry;
|
||||
if (episodeTitle) title += episodeTitle;
|
||||
if (title === '') return null;
|
||||
return title;
|
||||
}
|
||||
|
||||
export default function Component({ service }) {
|
||||
const { t } = useTranslation();
|
||||
const { widget } = service;
|
||||
@@ -11,13 +28,25 @@ export default function Component({ service }) {
|
||||
const { data: wantedData, error: wantedError } = useWidgetAPI(widget, "wanted/missing");
|
||||
const { data: queuedData, error: queuedError } = useWidgetAPI(widget, "queue");
|
||||
const { data: seriesData, error: seriesError } = useWidgetAPI(widget, "series");
|
||||
const { data: queueDetailsData, error: queueDetailsError } = useWidgetAPI(widget, "queue/details");
|
||||
|
||||
if (wantedError || queuedError || seriesError) {
|
||||
const finalError = wantedError ?? queuedError ?? seriesError;
|
||||
const formatDownloadState = useCallback((downloadState) => {
|
||||
switch (downloadState) {
|
||||
case "importPending":
|
||||
return "import pending";
|
||||
case "failedPending":
|
||||
return "failed pending";
|
||||
default:
|
||||
return downloadState;
|
||||
}
|
||||
}, []);
|
||||
|
||||
if (wantedError || queuedError || seriesError || queueDetailsError) {
|
||||
const finalError = wantedError ?? queuedError ?? seriesError ?? queueDetailsError;
|
||||
return <Container service={service} error={finalError} />;
|
||||
}
|
||||
|
||||
if (!wantedData || !queuedData || !seriesData) {
|
||||
if (!wantedData || !queuedData || !seriesData || !queueDetailsData) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="sonarr.wanted" />
|
||||
@@ -27,11 +56,26 @@ export default function Component({ service }) {
|
||||
);
|
||||
}
|
||||
|
||||
const enableQueue = widget?.enableQueue && Array.isArray(queueDetailsData) && queueDetailsData.length > 0;
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="sonarr.wanted" value={t("common.number", { value: wantedData.totalRecords })} />
|
||||
<Block label="sonarr.queued" value={t("common.number", { value: queuedData.totalRecords })} />
|
||||
<Block label="sonarr.series" value={t("common.number", { value: seriesData.total })} />
|
||||
</Container>
|
||||
<>
|
||||
<Container service={service}>
|
||||
<Block label="sonarr.wanted" value={t("common.number", { value: wantedData.totalRecords })} />
|
||||
<Block label="sonarr.queued" value={t("common.number", { value: queuedData.totalRecords })} />
|
||||
<Block label="sonarr.series" value={t("common.number", { value: seriesData.length })} />
|
||||
</Container>
|
||||
{enableQueue &&
|
||||
queueDetailsData.map((queueEntry) => (
|
||||
<QueueEntry
|
||||
progress={getProgress(queueEntry.sizeLeft, queueEntry.size)}
|
||||
timeLeft={queueEntry.timeLeft}
|
||||
title={getTitle(queueEntry, seriesData) ?? t("sonarr.unknown")}
|
||||
activity={formatDownloadState(queueEntry.trackedDownloadState)}
|
||||
key={`${queueEntry.seriesId}-${queueEntry.sizeLeft}`}
|
||||
/>
|
||||
))
|
||||
}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -8,9 +8,10 @@ const widget = {
|
||||
mappings: {
|
||||
series: {
|
||||
endpoint: "series",
|
||||
map: (data) => ({
|
||||
total: asJson(data).length,
|
||||
})
|
||||
map: (data) => asJson(data).map((entry) => ({
|
||||
title: entry.title,
|
||||
id: entry.id
|
||||
}))
|
||||
},
|
||||
queue: {
|
||||
endpoint: "queue",
|
||||
@@ -24,6 +25,39 @@ const widget = {
|
||||
"totalRecords"
|
||||
]
|
||||
},
|
||||
"queue/details": {
|
||||
endpoint: "queue/details",
|
||||
map: (data) => asJson(data).map((entry) => ({
|
||||
trackedDownloadState: entry.trackedDownloadState,
|
||||
trackedDownloadStatus: entry.trackedDownloadStatus,
|
||||
timeLeft: entry.timeleft,
|
||||
size: entry.size,
|
||||
sizeLeft: entry.sizeleft,
|
||||
seriesId: entry.seriesId,
|
||||
episodeTitle: entry.episode?.title ?? entry.title,
|
||||
episodeId: entry.episodeId ?? entry.id,
|
||||
status: entry.status,
|
||||
})).sort((a, b) => {
|
||||
const downloadingA = a.trackedDownloadState === "downloading"
|
||||
const downloadingB = b.trackedDownloadState === "downloading"
|
||||
if (downloadingA && !downloadingB) {
|
||||
return -1;
|
||||
}
|
||||
if (downloadingB && !downloadingA) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
const percentA = a.sizeLeft / a.size;
|
||||
const percentB = b.sizeLeft / b.size;
|
||||
if (percentA < percentB) {
|
||||
return -1;
|
||||
}
|
||||
if (percentA > percentB) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
})
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -38,7 +38,6 @@ export default function Component({ service }) {
|
||||
value: speedtestData.data.ping,
|
||||
style: "unit",
|
||||
unit: "millisecond",
|
||||
unitDisplay: "narrow",
|
||||
})}
|
||||
/>
|
||||
</Container>
|
||||
|
||||
72
src/widgets/tailscale/component.jsx
Normal file
72
src/widgets/tailscale/component.jsx
Normal file
@@ -0,0 +1,72 @@
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import Container from "components/services/widget/container";
|
||||
import Block from "components/services/widget/block";
|
||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
|
||||
export default function Component({ service }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { widget } = service;
|
||||
|
||||
const { data: statsData, error: statsError } = useWidgetAPI(widget, "device");
|
||||
|
||||
if (statsError) {
|
||||
return <Container service={service} error={statsError} />;
|
||||
}
|
||||
|
||||
if (!statsData) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="tailscale.address" />
|
||||
<Block label="tailscale.last_seen" />
|
||||
<Block label="tailscale.expires" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
const {
|
||||
addresses: [address],
|
||||
keyExpiryDisabled,
|
||||
lastSeen,
|
||||
expires,
|
||||
} = statsData;
|
||||
|
||||
const now = new Date();
|
||||
const compareDifferenceInTwoDates = (priorDate, futureDate) => {
|
||||
const diff = futureDate.getTime() - priorDate.getTime();
|
||||
const diffInYears = Math.ceil(diff / (1000 * 60 * 60 * 24 * 365));
|
||||
if (diffInYears > 1) return t("tailscale.years", { number: diffInYears });
|
||||
const diffInWeeks = Math.ceil(diff / (1000 * 60 * 60 * 24 * 7));
|
||||
if (diffInWeeks > 1) return t("tailscale.weeks", { number: diffInWeeks });
|
||||
const diffInDays = Math.ceil(diff / (1000 * 60 * 60 * 24));
|
||||
if (diffInDays > 1) return t("tailscale.days", { number: diffInDays });
|
||||
const diffInHours = Math.ceil(diff / (1000 * 60 * 60));
|
||||
if (diffInHours > 1) return t("tailscale.hours", { number: diffInHours });
|
||||
const diffInMinutes = Math.ceil(diff / (1000 * 60));
|
||||
if (diffInMinutes > 1) return t("tailscale.minutes", { number: diffInMinutes });
|
||||
const diffInSeconds = Math.ceil(diff / 1000);
|
||||
if (diffInSeconds > 10) return t("tailscale.seconds", { number: diffInSeconds });
|
||||
return "Now";
|
||||
};
|
||||
|
||||
const getLastSeen = () => {
|
||||
const date = new Date(lastSeen);
|
||||
const diff = compareDifferenceInTwoDates(date, now);
|
||||
return diff === "Now" ? t("tailscale.now") : t("tailscale.ago", { value: diff });
|
||||
};
|
||||
|
||||
const getExpiry = () => {
|
||||
if (keyExpiryDisabled) return t("tailscale.never");
|
||||
const date = new Date(expires);
|
||||
return compareDifferenceInTwoDates(now, date);
|
||||
};
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="tailscale.address" value={address} />
|
||||
<Block label="tailscale.last_seen" value={getLastSeen()} />
|
||||
<Block label="tailscale.expires" value={getExpiry()} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
14
src/widgets/tailscale/widget.js
Normal file
14
src/widgets/tailscale/widget.js
Normal file
@@ -0,0 +1,14 @@
|
||||
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
|
||||
|
||||
const widget = {
|
||||
api: "https://api.tailscale.com/api/v2/{endpoint}/{deviceid}",
|
||||
proxyHandler: credentialedProxyHandler,
|
||||
|
||||
mappings: {
|
||||
device: {
|
||||
endpoint: "device",
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default widget;
|
||||
@@ -3,6 +3,7 @@ import audiobookshelf from "./audiobookshelf/widget";
|
||||
import authentik from "./authentik/widget";
|
||||
import autobrr from "./autobrr/widget";
|
||||
import bazarr from "./bazarr/widget";
|
||||
import caddy from "./caddy/widget";
|
||||
import changedetectionio from "./changedetectionio/widget";
|
||||
import channelsdvrserver from "./channelsdvrserver/widget";
|
||||
import cloudflared from "./cloudflared/widget";
|
||||
@@ -11,6 +12,7 @@ import deluge from "./deluge/widget";
|
||||
import diskstation from "./diskstation/widget";
|
||||
import downloadstation from "./downloadstation/widget";
|
||||
import emby from "./emby/widget";
|
||||
import evcc from "./evcc/widget";
|
||||
import fileflows from "./fileflows/widget";
|
||||
import flood from "./flood/widget";
|
||||
import freshrss from "./freshrss/widget";
|
||||
@@ -46,8 +48,10 @@ import ombi from "./ombi/widget";
|
||||
import opnsense from "./opnsense/widget";
|
||||
import overseerr from "./overseerr/widget";
|
||||
import paperlessngx from "./paperlessngx/widget";
|
||||
import pfsense from "./pfsense/widget";
|
||||
import photoprism from "./photoprism/widget";
|
||||
import proxmoxbackupserver from "./proxmoxbackupserver/widget";
|
||||
import pialert from "./pialert/widget";
|
||||
import pihole from "./pihole/widget";
|
||||
import plex from "./plex/widget";
|
||||
import portainer from "./portainer/widget";
|
||||
@@ -57,6 +61,7 @@ import proxmox from "./proxmox/widget";
|
||||
import pterodactyl from "./pterodactyl/widget";
|
||||
import pyload from "./pyload/widget";
|
||||
import qbittorrent from "./qbittorrent/widget";
|
||||
import qnap from "./qnap/widget";
|
||||
import radarr from "./radarr/widget";
|
||||
import readarr from "./readarr/widget";
|
||||
import rutorrent from "./rutorrent/widget";
|
||||
@@ -65,6 +70,7 @@ import scrutiny from "./scrutiny/widget";
|
||||
import sonarr from "./sonarr/widget";
|
||||
import speedtest from "./speedtest/widget";
|
||||
import strelaysrv from "./strelaysrv/widget";
|
||||
import tailscale from "./tailscale/widget";
|
||||
import tautulli from "./tautulli/widget";
|
||||
import tdarr from "./tdarr/widget";
|
||||
import traefik from "./traefik/widget";
|
||||
@@ -84,6 +90,7 @@ const widgets = {
|
||||
authentik,
|
||||
autobrr,
|
||||
bazarr,
|
||||
caddy,
|
||||
changedetectionio,
|
||||
channelsdvrserver,
|
||||
cloudflared,
|
||||
@@ -92,6 +99,7 @@ const widgets = {
|
||||
diskstation,
|
||||
downloadstation,
|
||||
emby,
|
||||
evcc,
|
||||
fileflows,
|
||||
flood,
|
||||
freshrss,
|
||||
@@ -128,8 +136,10 @@ const widgets = {
|
||||
opnsense,
|
||||
overseerr,
|
||||
paperlessngx,
|
||||
pfsense,
|
||||
photoprism,
|
||||
proxmoxbackupserver,
|
||||
pialert,
|
||||
pihole,
|
||||
plex,
|
||||
portainer,
|
||||
@@ -139,6 +149,7 @@ const widgets = {
|
||||
pterodactyl,
|
||||
pyload,
|
||||
qbittorrent,
|
||||
qnap,
|
||||
radarr,
|
||||
readarr,
|
||||
rutorrent,
|
||||
@@ -147,6 +158,7 @@ const widgets = {
|
||||
sonarr,
|
||||
speedtest,
|
||||
strelaysrv,
|
||||
tailscale,
|
||||
tautulli,
|
||||
tdarr,
|
||||
traefik,
|
||||
|
||||
@@ -32,4 +32,27 @@ module.exports = {
|
||||
},
|
||||
},
|
||||
plugins: [tailwindForms, tailwindScrollbars],
|
||||
};
|
||||
// always include these in build as classes are dynamically constructed
|
||||
safelist: [
|
||||
'backdrop-blur',
|
||||
'backdrop-blur-sm',
|
||||
'backdrop-blur-md',
|
||||
'backdrop-blur-xl',
|
||||
'backdrop-saturate-0',
|
||||
'backdrop-saturate-50',
|
||||
'backdrop-saturate-100',
|
||||
'backdrop-saturate-150',
|
||||
'backdrop-saturate-200',
|
||||
'backdrop-brightness-0',
|
||||
'backdrop-brightness-50',
|
||||
'backdrop-brightness-75',
|
||||
'backdrop-brightness-90',
|
||||
'backdrop-brightness-95',
|
||||
'backdrop-brightness-100',
|
||||
'backdrop-brightness-105',
|
||||
'backdrop-brightness-110',
|
||||
'backdrop-brightness-125',
|
||||
'backdrop-brightness-150',
|
||||
'backdrop-brightness-200',
|
||||
],
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user